diff --git a/composer.json b/composer.json
index 711dd619a2a3be70e2e101f149a3b6e2a202a367..7d460ed48638948a8a52ab80742d0a08ea362b93 100644
--- a/composer.json
+++ b/composer.json
@@ -10,15 +10,15 @@
   ],
   "require": {
     "sdboyer/gliph": "0.1.*",
-    "symfony/class-loader": "2.4.*",
-    "symfony/dependency-injection": "2.4.*",
-    "symfony/event-dispatcher": "2.4.*",
-    "symfony/http-foundation": "2.4.*",
-    "symfony/http-kernel": "2.4.*",
-    "symfony/routing": "2.4.*",
-    "symfony/serializer": "2.4.*",
-    "symfony/validator": "2.4.*",
-    "symfony/yaml": "2.4.*",
+    "symfony/class-loader": "2.3.*",
+    "symfony/dependency-injection": "2.3.*",
+    "symfony/event-dispatcher": "2.3.*",
+    "symfony/http-foundation": "2.3.*",
+    "symfony/http-kernel": "2.3.*",
+    "symfony/routing": "2.3.*",
+    "symfony/serializer": "2.3.*",
+    "symfony/validator": "2.3.*",
+    "symfony/yaml": "2.3.*",
     "twig/twig": "1.12.*",
     "doctrine/common": "dev-bmaster#99b44f52a1b844f9c4c34e618b160664d5c27daf",
     "doctrine/annotations": "dev-master#463d926a8dcc49271cb7db5a08364a70ed6e3cd3",
diff --git a/composer.lock b/composer.lock
index 8879c53fda820441eaea8b0ee14ea81561c53951..185081677568408c7d267235f239abfb078259f2 100644
--- a/composer.lock
+++ b/composer.lock
@@ -3,7 +3,7 @@
         "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": "b3a05b2f0a069c6d34b65b604a216a92",
+    "hash": "06006c1512fb829fcdb498b7e515901d",
     "packages": [
         {
             "name": "doctrine/annotations",
@@ -1225,17 +1225,17 @@
         },
         {
             "name": "symfony/class-loader",
-            "version": "v2.4.1",
+            "version": "v2.3.4",
             "target-dir": "Symfony/Component/ClassLoader",
             "source": {
                 "type": "git",
                 "url": "https://github.com/symfony/ClassLoader.git",
-                "reference": "6a2ebedbc780130f07b3a15363743d08eb46820c"
+                "reference": "622d370a07321329f5259c6f96d5c636104ad46b"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/symfony/ClassLoader/zipball/6a2ebedbc780130f07b3a15363743d08eb46820c",
-                "reference": "6a2ebedbc780130f07b3a15363743d08eb46820c",
+                "url": "https://api.github.com/repos/symfony/ClassLoader/zipball/622d370a07321329f5259c6f96d5c636104ad46b",
+                "reference": "622d370a07321329f5259c6f96d5c636104ad46b",
                 "shasum": ""
             },
             "require": {
@@ -1247,7 +1247,7 @@
             "type": "library",
             "extra": {
                 "branch-alias": {
-                    "dev-master": "2.4-dev"
+                    "dev-master": "2.3-dev"
                 }
             },
             "autoload": {
@@ -1271,7 +1271,7 @@
             ],
             "description": "Symfony ClassLoader Component",
             "homepage": "http://symfony.com",
-            "time": "2013-11-26 16:40:27"
+            "time": "2013-08-13 20:18:00"
         },
         {
             "name": "symfony/debug",
@@ -1331,17 +1331,17 @@
         },
         {
             "name": "symfony/dependency-injection",
-            "version": "v2.4.1",
+            "version": "v2.3.4",
             "target-dir": "Symfony/Component/DependencyInjection",
             "source": {
                 "type": "git",
                 "url": "https://github.com/symfony/DependencyInjection.git",
-                "reference": "7e5bde3a607dde1f8ddef5180759068ad53d259c"
+                "reference": "3678aa969e5bfeb8515a1f3047c63e8104723f5c"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/symfony/DependencyInjection/zipball/7e5bde3a607dde1f8ddef5180759068ad53d259c",
-                "reference": "7e5bde3a607dde1f8ddef5180759068ad53d259c",
+                "url": "https://api.github.com/repos/symfony/DependencyInjection/zipball/3678aa969e5bfeb8515a1f3047c63e8104723f5c",
+                "reference": "3678aa969e5bfeb8515a1f3047c63e8104723f5c",
                 "shasum": ""
             },
             "require": {
@@ -1349,7 +1349,6 @@
             },
             "require-dev": {
                 "symfony/config": "~2.2",
-                "symfony/expression-language": "~2.4",
                 "symfony/yaml": "~2.0"
             },
             "suggest": {
@@ -1360,7 +1359,7 @@
             "type": "library",
             "extra": {
                 "branch-alias": {
-                    "dev-master": "2.4-dev"
+                    "dev-master": "2.3-dev"
                 }
             },
             "autoload": {
@@ -1384,21 +1383,21 @@
             ],
             "description": "Symfony DependencyInjection Component",
             "homepage": "http://symfony.com",
-            "time": "2014-01-01 09:02:49"
+            "time": "2013-07-25 17:13:25"
         },
         {
             "name": "symfony/event-dispatcher",
-            "version": "v2.4.1",
+            "version": "v2.3.4",
             "target-dir": "Symfony/Component/EventDispatcher",
             "source": {
                 "type": "git",
                 "url": "https://github.com/symfony/EventDispatcher.git",
-                "reference": "e3ba42f6a70554ed05749e61b829550f6ac33601"
+                "reference": "41c9826457c65fa3cf746f214985b7ca9cba42f8"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/symfony/EventDispatcher/zipball/e3ba42f6a70554ed05749e61b829550f6ac33601",
-                "reference": "e3ba42f6a70554ed05749e61b829550f6ac33601",
+                "url": "https://api.github.com/repos/symfony/EventDispatcher/zipball/41c9826457c65fa3cf746f214985b7ca9cba42f8",
+                "reference": "41c9826457c65fa3cf746f214985b7ca9cba42f8",
                 "shasum": ""
             },
             "require": {
@@ -1414,7 +1413,7 @@
             "type": "library",
             "extra": {
                 "branch-alias": {
-                    "dev-master": "2.4-dev"
+                    "dev-master": "2.3-dev"
                 }
             },
             "autoload": {
@@ -1438,21 +1437,21 @@
             ],
             "description": "Symfony EventDispatcher Component",
             "homepage": "http://symfony.com",
-            "time": "2013-12-28 08:12:03"
+            "time": "2013-07-21 12:12:18"
         },
         {
             "name": "symfony/http-foundation",
-            "version": "v2.4.1",
+            "version": "v2.3.4",
             "target-dir": "Symfony/Component/HttpFoundation",
             "source": {
                 "type": "git",
                 "url": "https://github.com/symfony/HttpFoundation.git",
-                "reference": "6c6b8a7bcd7e2cc920cd6acace563fdbf121d844"
+                "reference": "fdf130fe65457aedbc4639a22f4ef9d3be5c002c"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/symfony/HttpFoundation/zipball/6c6b8a7bcd7e2cc920cd6acace563fdbf121d844",
-                "reference": "6c6b8a7bcd7e2cc920cd6acace563fdbf121d844",
+                "url": "https://api.github.com/repos/symfony/HttpFoundation/zipball/fdf130fe65457aedbc4639a22f4ef9d3be5c002c",
+                "reference": "fdf130fe65457aedbc4639a22f4ef9d3be5c002c",
                 "shasum": ""
             },
             "require": {
@@ -1461,7 +1460,7 @@
             "type": "library",
             "extra": {
                 "branch-alias": {
-                    "dev-master": "2.4-dev"
+                    "dev-master": "2.3-dev"
                 }
             },
             "autoload": {
@@ -1488,21 +1487,21 @@
             ],
             "description": "Symfony HttpFoundation Component",
             "homepage": "http://symfony.com",
-            "time": "2014-01-05 02:10:50"
+            "time": "2013-08-26 05:49:51"
         },
         {
             "name": "symfony/http-kernel",
-            "version": "v2.4.1",
+            "version": "v2.3.4",
             "target-dir": "Symfony/Component/HttpKernel",
             "source": {
                 "type": "git",
                 "url": "https://github.com/symfony/HttpKernel.git",
-                "reference": "0605eedeb52c4d3a3144128d8336395a57be60d4"
+                "reference": "9d35da40f07bbe7a4f8dfbc41555d2b69de674bf"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/symfony/HttpKernel/zipball/0605eedeb52c4d3a3144128d8336395a57be60d4",
-                "reference": "0605eedeb52c4d3a3144128d8336395a57be60d4",
+                "url": "https://api.github.com/repos/symfony/HttpKernel/zipball/9d35da40f07bbe7a4f8dfbc41555d2b69de674bf",
+                "reference": "9d35da40f07bbe7a4f8dfbc41555d2b69de674bf",
                 "shasum": ""
             },
             "require": {
@@ -1510,7 +1509,7 @@
                 "psr/log": "~1.0",
                 "symfony/debug": "~2.3",
                 "symfony/event-dispatcher": "~2.1",
-                "symfony/http-foundation": "~2.4"
+                "symfony/http-foundation": "~2.2"
             },
             "require-dev": {
                 "symfony/browser-kit": "~2.2",
@@ -1535,7 +1534,7 @@
             "type": "library",
             "extra": {
                 "branch-alias": {
-                    "dev-master": "2.4-dev"
+                    "dev-master": "2.3-dev"
                 }
             },
             "autoload": {
@@ -1559,7 +1558,7 @@
             ],
             "description": "Symfony HttpKernel Component",
             "homepage": "http://symfony.com",
-            "time": "2014-01-05 02:12:11"
+            "time": "2013-08-27 08:58:24"
         },
         {
             "name": "symfony/process",
@@ -1608,99 +1607,39 @@
             "homepage": "http://symfony.com",
             "time": "2013-08-22 06:42:25"
         },
-        {
-            "name": "symfony/property-access",
-            "version": "v2.4.1",
-            "target-dir": "Symfony/Component/PropertyAccess",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/symfony/PropertyAccess.git",
-                "reference": "274951234150e303c83099a2429be6be35629fe9"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/symfony/PropertyAccess/zipball/274951234150e303c83099a2429be6be35629fe9",
-                "reference": "274951234150e303c83099a2429be6be35629fe9",
-                "shasum": ""
-            },
-            "require": {
-                "php": ">=5.3.3"
-            },
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "2.4-dev"
-                }
-            },
-            "autoload": {
-                "psr-0": {
-                    "Symfony\\Component\\PropertyAccess\\": ""
-                }
-            },
-            "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 PropertyAccess Component",
-            "homepage": "http://symfony.com",
-            "keywords": [
-                "access",
-                "array",
-                "extraction",
-                "index",
-                "injection",
-                "object",
-                "property",
-                "property path",
-                "reflection"
-            ],
-            "time": "2013-11-13 21:30:16"
-        },
         {
             "name": "symfony/routing",
-            "version": "v2.4.1",
+            "version": "v2.3.4",
             "target-dir": "Symfony/Component/Routing",
             "source": {
                 "type": "git",
                 "url": "https://github.com/symfony/Routing.git",
-                "reference": "4abfb500aab8be458c9e3a227ea56b190584f78a"
+                "reference": "69af3f07dbf3ae93dd513dbc373f561cb2e7f143"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/symfony/Routing/zipball/4abfb500aab8be458c9e3a227ea56b190584f78a",
-                "reference": "4abfb500aab8be458c9e3a227ea56b190584f78a",
+                "url": "https://api.github.com/repos/symfony/Routing/zipball/69af3f07dbf3ae93dd513dbc373f561cb2e7f143",
+                "reference": "69af3f07dbf3ae93dd513dbc373f561cb2e7f143",
                 "shasum": ""
             },
             "require": {
                 "php": ">=5.3.3"
             },
             "require-dev": {
-                "doctrine/annotations": "~1.0",
+                "doctrine/common": "~2.2",
                 "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"
+                "doctrine/common": "",
+                "symfony/config": "",
+                "symfony/yaml": ""
             },
             "type": "library",
             "extra": {
                 "branch-alias": {
-                    "dev-master": "2.4-dev"
+                    "dev-master": "2.3-dev"
                 }
             },
             "autoload": {
@@ -1724,27 +1663,21 @@
             ],
             "description": "Symfony Routing Component",
             "homepage": "http://symfony.com",
-            "keywords": [
-                "router",
-                "routing",
-                "uri",
-                "url"
-            ],
-            "time": "2014-01-05 02:10:50"
+            "time": "2013-08-23 15:14:07"
         },
         {
             "name": "symfony/serializer",
-            "version": "v2.4.1",
+            "version": "v2.3.4",
             "target-dir": "Symfony/Component/Serializer",
             "source": {
                 "type": "git",
                 "url": "https://github.com/symfony/Serializer.git",
-                "reference": "60c54346958604379392672a3a998650a169a7f4"
+                "reference": "457ba76395955926a67ea692957b0872dead5278"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/symfony/Serializer/zipball/60c54346958604379392672a3a998650a169a7f4",
-                "reference": "60c54346958604379392672a3a998650a169a7f4",
+                "url": "https://api.github.com/repos/symfony/Serializer/zipball/457ba76395955926a67ea692957b0872dead5278",
+                "reference": "457ba76395955926a67ea692957b0872dead5278",
                 "shasum": ""
             },
             "require": {
@@ -1753,7 +1686,7 @@
             "type": "library",
             "extra": {
                 "branch-alias": {
-                    "dev-master": "2.4-dev"
+                    "dev-master": "2.3-dev"
                 }
             },
             "autoload": {
@@ -1777,7 +1710,7 @@
             ],
             "description": "Symfony Serializer Component",
             "homepage": "http://symfony.com",
-            "time": "2014-01-01 08:14:50"
+            "time": "2013-07-21 12:12:18"
         },
         {
             "name": "symfony/translation",
@@ -1836,35 +1769,31 @@
         },
         {
             "name": "symfony/validator",
-            "version": "v2.4.1",
+            "version": "v2.3.4",
             "target-dir": "Symfony/Component/Validator",
             "source": {
                 "type": "git",
                 "url": "https://github.com/symfony/Validator.git",
-                "reference": "7ea4e53f8d68bf3ae9cca28765d49d7930618730"
+                "reference": "8f6f6be47fb8e1179cd225b1f949630e26221e42"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/symfony/Validator/zipball/7ea4e53f8d68bf3ae9cca28765d49d7930618730",
-                "reference": "7ea4e53f8d68bf3ae9cca28765d49d7930618730",
+                "url": "https://api.github.com/repos/symfony/Validator/zipball/8f6f6be47fb8e1179cd225b1f949630e26221e42",
+                "reference": "8f6f6be47fb8e1179cd225b1f949630e26221e42",
                 "shasum": ""
             },
             "require": {
                 "php": ">=5.3.3",
-                "symfony/property-access": "~2.2",
                 "symfony/translation": "~2.0"
             },
             "require-dev": {
-                "doctrine/annotations": "~1.0",
-                "doctrine/cache": "~1.0",
                 "symfony/config": "~2.2",
                 "symfony/http-foundation": "~2.1",
                 "symfony/intl": "~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",
+                "doctrine/common": "",
                 "symfony/config": "",
                 "symfony/http-foundation": "",
                 "symfony/intl": "",
@@ -1873,7 +1802,7 @@
             "type": "library",
             "extra": {
                 "branch-alias": {
-                    "dev-master": "2.4-dev"
+                    "dev-master": "2.3-dev"
                 }
             },
             "autoload": {
@@ -1897,21 +1826,21 @@
             ],
             "description": "Symfony Validator Component",
             "homepage": "http://symfony.com",
-            "time": "2014-01-01 08:14:50"
+            "time": "2013-08-24 15:26:22"
         },
         {
             "name": "symfony/yaml",
-            "version": "v2.4.1",
+            "version": "v2.3.4",
             "target-dir": "Symfony/Component/Yaml",
             "source": {
                 "type": "git",
                 "url": "https://github.com/symfony/Yaml.git",
-                "reference": "4e1a237fc48145fae114b96458d799746ad89aa0"
+                "reference": "5a279f1b5f5e1045a6c432354d9ea727ff3a9847"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/symfony/Yaml/zipball/4e1a237fc48145fae114b96458d799746ad89aa0",
-                "reference": "4e1a237fc48145fae114b96458d799746ad89aa0",
+                "url": "https://api.github.com/repos/symfony/Yaml/zipball/5a279f1b5f5e1045a6c432354d9ea727ff3a9847",
+                "reference": "5a279f1b5f5e1045a6c432354d9ea727ff3a9847",
                 "shasum": ""
             },
             "require": {
@@ -1920,7 +1849,7 @@
             "type": "library",
             "extra": {
                 "branch-alias": {
-                    "dev-master": "2.4-dev"
+                    "dev-master": "2.3-dev"
                 }
             },
             "autoload": {
@@ -1944,7 +1873,7 @@
             ],
             "description": "Symfony Yaml Component",
             "homepage": "http://symfony.com",
-            "time": "2013-12-28 08:12:03"
+            "time": "2013-08-24 15:26:22"
         },
         {
             "name": "twig/twig",
diff --git a/core/modules/language/lib/Drupal/language/HttpKernel/PathProcessorLanguage.php b/core/modules/language/lib/Drupal/language/HttpKernel/PathProcessorLanguage.php
index 589e0b635bd4800a471701a87aafa9fd4306421c..d212c7b2896d0b584ecb28d212260ddecf2aa218 100644
--- a/core/modules/language/lib/Drupal/language/HttpKernel/PathProcessorLanguage.php
+++ b/core/modules/language/lib/Drupal/language/HttpKernel/PathProcessorLanguage.php
@@ -143,7 +143,7 @@ public function processOutbound($path, &$options = array(), Request $request = N
           list( , $port) = explode(':', $normalized_base_url);
           $options['base_url'] .= ':' . $port;
         }
-        elseif (($url_scheme == 'http' && $port != 80) || ($url_scheme == 'https' && $port != 443)) {
+        elseif ($port != 80) {
           $options['base_url'] .= ':' . $port;
         }
 
diff --git a/core/modules/language/lib/Drupal/language/Tests/LanguageUrlRewritingTest.php b/core/modules/language/lib/Drupal/language/Tests/LanguageUrlRewritingTest.php
index e785bd8efbefc023614035716f4c0b52d84ddafc..07ee9a9762f32d8b2643496fee1374fb4245c1fc 100644
--- a/core/modules/language/lib/Drupal/language/Tests/LanguageUrlRewritingTest.php
+++ b/core/modules/language/lib/Drupal/language/Tests/LanguageUrlRewritingTest.php
@@ -125,9 +125,7 @@ function testDomainNameNegotiationPort() {
     // URLs as well.
     $index_php = strpos(url('', array('absolute' => TRUE)), 'index.php') !== FALSE;
 
-    $request = Request::createFromGlobals();
-    $server = $request->server->all();
-    $request = $this->prepareRequestForGenerator(TRUE, array('HTTP_HOST' => $server['HTTP_HOST'] . ':88'));
+    $request = $this->prepareRequestForGenerator(TRUE, array('SERVER_PORT' => '88'));
 
     // Create an absolute French link.
     $language = language_load('fr');
diff --git a/core/vendor/autoload.php b/core/vendor/autoload.php
index 6f10559d6e606de040749a7cec0be4c0b502f5c7..aea9b1796da5457119c19a9da0dbca822f121851 100644
--- a/core/vendor/autoload.php
+++ b/core/vendor/autoload.php
@@ -4,4 +4,4 @@
 
 require_once __DIR__ . '/composer' . '/autoload_real.php';
 
-return ComposerAutoloaderInit3a54ed71987dfc252758278dbd0c6099::getLoader();
+return ComposerAutoloaderInit50432d86c534be2ddddf85d27e021721::getLoader();
diff --git a/core/vendor/composer/autoload_namespaces.php b/core/vendor/composer/autoload_namespaces.php
index 83fb6eda09c2f1f77cc21467eb141d54660e5165..f6dbb7cc1c34109b40d28fe9e88a9cd3ab57d045 100644
--- a/core/vendor/composer/autoload_namespaces.php
+++ b/core/vendor/composer/autoload_namespaces.php
@@ -15,7 +15,6 @@
     'Symfony\\Component\\Translation\\' => array($vendorDir . '/symfony/translation'),
     'Symfony\\Component\\Serializer\\' => array($vendorDir . '/symfony/serializer'),
     'Symfony\\Component\\Routing\\' => array($vendorDir . '/symfony/routing'),
-    'Symfony\\Component\\PropertyAccess\\' => array($vendorDir . '/symfony/property-access'),
     'Symfony\\Component\\Process\\' => array($vendorDir . '/symfony/process'),
     'Symfony\\Component\\HttpKernel\\' => array($vendorDir . '/symfony/http-kernel'),
     'Symfony\\Component\\HttpFoundation\\' => array($vendorDir . '/symfony/http-foundation'),
diff --git a/core/vendor/composer/autoload_real.php b/core/vendor/composer/autoload_real.php
index 0d236cfeb6c6d117217d72f29d17ef8798ab208b..035394bca571811271567a019de8b40b2c9141c2 100644
--- a/core/vendor/composer/autoload_real.php
+++ b/core/vendor/composer/autoload_real.php
@@ -2,7 +2,7 @@
 
 // autoload_real.php @generated by Composer
 
-class ComposerAutoloaderInit3a54ed71987dfc252758278dbd0c6099
+class ComposerAutoloaderInit50432d86c534be2ddddf85d27e021721
 {
     private static $loader;
 
@@ -19,9 +19,9 @@ public static function getLoader()
             return self::$loader;
         }
 
-        spl_autoload_register(array('ComposerAutoloaderInit3a54ed71987dfc252758278dbd0c6099', 'loadClassLoader'), true, true);
+        spl_autoload_register(array('ComposerAutoloaderInit50432d86c534be2ddddf85d27e021721', 'loadClassLoader'), true, true);
         self::$loader = $loader = new \Composer\Autoload\ClassLoader();
-        spl_autoload_unregister(array('ComposerAutoloaderInit3a54ed71987dfc252758278dbd0c6099', 'loadClassLoader'));
+        spl_autoload_unregister(array('ComposerAutoloaderInit50432d86c534be2ddddf85d27e021721', 'loadClassLoader'));
 
         $vendorDir = dirname(__DIR__);
         $baseDir = dirname(dirname($vendorDir));
diff --git a/core/vendor/composer/installed.json b/core/vendor/composer/installed.json
index eb44290b16dc0853e103d6fd7dd7d8850f770d49..51c9889d13949d66313feda89daa3db1c32f6dfe 100644
--- a/core/vendor/composer/installed.json
+++ b/core/vendor/composer/installed.json
@@ -1139,34 +1139,28 @@
         ]
     },
     {
-        "name": "symfony/debug",
+        "name": "symfony/class-loader",
         "version": "v2.3.4",
         "version_normalized": "2.3.4.0",
-        "target-dir": "Symfony/Component/Debug",
+        "target-dir": "Symfony/Component/ClassLoader",
         "source": {
             "type": "git",
-            "url": "https://github.com/symfony/Debug.git",
-            "reference": "729f6d19cfc401c4942e43fcc1059103bd6df130"
+            "url": "https://github.com/symfony/ClassLoader.git",
+            "reference": "622d370a07321329f5259c6f96d5c636104ad46b"
         },
         "dist": {
             "type": "zip",
-            "url": "https://api.github.com/repos/symfony/Debug/zipball/729f6d19cfc401c4942e43fcc1059103bd6df130",
-            "reference": "729f6d19cfc401c4942e43fcc1059103bd6df130",
+            "url": "https://api.github.com/repos/symfony/ClassLoader/zipball/622d370a07321329f5259c6f96d5c636104ad46b",
+            "reference": "622d370a07321329f5259c6f96d5c636104ad46b",
             "shasum": ""
         },
         "require": {
             "php": ">=5.3.3"
         },
         "require-dev": {
-            "symfony/http-foundation": "~2.1",
-            "symfony/http-kernel": "~2.1"
-        },
-        "suggest": {
-            "symfony/class-loader": "",
-            "symfony/http-foundation": "",
-            "symfony/http-kernel": ""
+            "symfony/finder": "~2.0"
         },
-        "time": "2013-08-08 14:16:10",
+        "time": "2013-08-13 20:18:00",
         "type": "library",
         "extra": {
             "branch-alias": {
@@ -1176,7 +1170,7 @@
         "installation-source": "dist",
         "autoload": {
             "psr-0": {
-                "Symfony\\Component\\Debug\\": ""
+                "Symfony\\Component\\ClassLoader\\": ""
             }
         },
         "notification-url": "https://packagist.org/downloads/",
@@ -1193,37 +1187,38 @@
                 "homepage": "http://symfony.com/contributors"
             }
         ],
-        "description": "Symfony Debug Component",
+        "description": "Symfony ClassLoader Component",
         "homepage": "http://symfony.com"
     },
     {
-        "name": "symfony/translation",
+        "name": "symfony/dependency-injection",
         "version": "v2.3.4",
         "version_normalized": "2.3.4.0",
-        "target-dir": "Symfony/Component/Translation",
+        "target-dir": "Symfony/Component/DependencyInjection",
         "source": {
             "type": "git",
-            "url": "https://github.com/symfony/Translation.git",
-            "reference": "65f888291f0896ad492f9abc6dc05c998373aded"
+            "url": "https://github.com/symfony/DependencyInjection.git",
+            "reference": "3678aa969e5bfeb8515a1f3047c63e8104723f5c"
         },
         "dist": {
             "type": "zip",
-            "url": "https://api.github.com/repos/symfony/Translation/zipball/65f888291f0896ad492f9abc6dc05c998373aded",
-            "reference": "65f888291f0896ad492f9abc6dc05c998373aded",
+            "url": "https://api.github.com/repos/symfony/DependencyInjection/zipball/3678aa969e5bfeb8515a1f3047c63e8104723f5c",
+            "reference": "3678aa969e5bfeb8515a1f3047c63e8104723f5c",
             "shasum": ""
         },
         "require": {
             "php": ">=5.3.3"
         },
         "require-dev": {
-            "symfony/config": "~2.0",
-            "symfony/yaml": "~2.2"
+            "symfony/config": "~2.2",
+            "symfony/yaml": "~2.0"
         },
         "suggest": {
             "symfony/config": "",
+            "symfony/proxy-manager-bridge": "Generate service proxies to lazy load them",
             "symfony/yaml": ""
         },
-        "time": "2013-08-26 05:49:51",
+        "time": "2013-07-25 17:13:25",
         "type": "library",
         "extra": {
             "branch-alias": {
@@ -1233,7 +1228,7 @@
         "installation-source": "dist",
         "autoload": {
             "psr-0": {
-                "Symfony\\Component\\Translation\\": ""
+                "Symfony\\Component\\DependencyInjection\\": ""
             }
         },
         "notification-url": "https://packagist.org/downloads/",
@@ -1250,29 +1245,38 @@
                 "homepage": "http://symfony.com/contributors"
             }
         ],
-        "description": "Symfony Translation Component",
+        "description": "Symfony DependencyInjection Component",
         "homepage": "http://symfony.com"
     },
     {
-        "name": "symfony/process",
+        "name": "symfony/debug",
         "version": "v2.3.4",
         "version_normalized": "2.3.4.0",
-        "target-dir": "Symfony/Component/Process",
+        "target-dir": "Symfony/Component/Debug",
         "source": {
             "type": "git",
-            "url": "https://github.com/symfony/Process.git",
-            "reference": "1e91553e1cedd0b8fb1da6ea4f89b02e21713d5b"
+            "url": "https://github.com/symfony/Debug.git",
+            "reference": "729f6d19cfc401c4942e43fcc1059103bd6df130"
         },
         "dist": {
             "type": "zip",
-            "url": "https://api.github.com/repos/symfony/Process/zipball/1e91553e1cedd0b8fb1da6ea4f89b02e21713d5b",
-            "reference": "1e91553e1cedd0b8fb1da6ea4f89b02e21713d5b",
+            "url": "https://api.github.com/repos/symfony/Debug/zipball/729f6d19cfc401c4942e43fcc1059103bd6df130",
+            "reference": "729f6d19cfc401c4942e43fcc1059103bd6df130",
             "shasum": ""
         },
         "require": {
             "php": ">=5.3.3"
         },
-        "time": "2013-08-22 06:42:25",
+        "require-dev": {
+            "symfony/http-foundation": "~2.1",
+            "symfony/http-kernel": "~2.1"
+        },
+        "suggest": {
+            "symfony/class-loader": "",
+            "symfony/http-foundation": "",
+            "symfony/http-kernel": ""
+        },
+        "time": "2013-08-08 14:16:10",
         "type": "library",
         "extra": {
             "branch-alias": {
@@ -1282,7 +1286,7 @@
         "installation-source": "dist",
         "autoload": {
             "psr-0": {
-                "Symfony\\Component\\Process\\": ""
+                "Symfony\\Component\\Debug\\": ""
             }
         },
         "notification-url": "https://packagist.org/downloads/",
@@ -1299,34 +1303,43 @@
                 "homepage": "http://symfony.com/contributors"
             }
         ],
-        "description": "Symfony Process Component",
+        "description": "Symfony Debug Component",
         "homepage": "http://symfony.com"
     },
     {
-        "name": "sdboyer/gliph",
-        "version": "0.1.4",
-        "version_normalized": "0.1.4.0",
+        "name": "symfony/http-foundation",
+        "version": "v2.3.4",
+        "version_normalized": "2.3.4.0",
+        "target-dir": "Symfony/Component/HttpFoundation",
         "source": {
             "type": "git",
-            "url": "https://github.com/sdboyer/gliph.git",
-            "reference": "aad932ef7d808105341cc9a36538e9fe2cb5ee82"
+            "url": "https://github.com/symfony/HttpFoundation.git",
+            "reference": "fdf130fe65457aedbc4639a22f4ef9d3be5c002c"
         },
         "dist": {
             "type": "zip",
-            "url": "https://api.github.com/repos/sdboyer/gliph/zipball/aad932ef7d808105341cc9a36538e9fe2cb5ee82",
-            "reference": "aad932ef7d808105341cc9a36538e9fe2cb5ee82",
+            "url": "https://api.github.com/repos/symfony/HttpFoundation/zipball/fdf130fe65457aedbc4639a22f4ef9d3be5c002c",
+            "reference": "fdf130fe65457aedbc4639a22f4ef9d3be5c002c",
             "shasum": ""
         },
         "require": {
-            "php": ">=5.3"
+            "php": ">=5.3.3"
         },
-        "time": "2013-09-27 01:15:21",
+        "time": "2013-08-26 05:49:51",
         "type": "library",
+        "extra": {
+            "branch-alias": {
+                "dev-master": "2.3-dev"
+            }
+        },
         "installation-source": "dist",
         "autoload": {
             "psr-0": {
-                "Gliph": "src/"
-            }
+                "Symfony\\Component\\HttpFoundation\\": ""
+            },
+            "classmap": [
+                "Symfony/Component/HttpFoundation/Resources/stubs"
+            ]
         },
         "notification-url": "https://packagist.org/downloads/",
         "license": [
@@ -1334,61 +1347,54 @@
         ],
         "authors": [
             {
-                "name": "Sam Boyer",
-                "email": "tech@samboyer.org"
+                "name": "Fabien Potencier",
+                "email": "fabien@symfony.com"
+            },
+            {
+                "name": "Symfony Community",
+                "homepage": "http://symfony.com/contributors"
             }
         ],
-        "description": "A graph library for PHP.",
-        "homepage": "http://github.com/sdboyer/gliph",
-        "keywords": [
-            "gliph",
-            "graph",
-            "library",
-            "php",
-            "spl"
-        ]
+        "description": "Symfony HttpFoundation Component",
+        "homepage": "http://symfony.com"
     },
     {
-        "name": "symfony-cmf/routing",
-        "version": "1.1.0",
-        "version_normalized": "1.1.0.0",
-        "target-dir": "Symfony/Cmf/Component/Routing",
+        "name": "symfony/event-dispatcher",
+        "version": "v2.3.4",
+        "version_normalized": "2.3.4.0",
+        "target-dir": "Symfony/Component/EventDispatcher",
         "source": {
             "type": "git",
-            "url": "https://github.com/symfony-cmf/Routing.git",
-            "reference": "9f8607950cbf888ec678713a35f3d0088857c85f"
+            "url": "https://github.com/symfony/EventDispatcher.git",
+            "reference": "41c9826457c65fa3cf746f214985b7ca9cba42f8"
         },
         "dist": {
             "type": "zip",
-            "url": "https://api.github.com/repos/symfony-cmf/Routing/zipball/9f8607950cbf888ec678713a35f3d0088857c85f",
-            "reference": "9f8607950cbf888ec678713a35f3d0088857c85f",
+            "url": "https://api.github.com/repos/symfony/EventDispatcher/zipball/41c9826457c65fa3cf746f214985b7ca9cba42f8",
+            "reference": "41c9826457c65fa3cf746f214985b7ca9cba42f8",
             "shasum": ""
         },
         "require": {
-            "php": ">=5.3.3",
-            "psr/log": "~1.0",
-            "symfony/http-kernel": "~2.2",
-            "symfony/routing": "~2.2"
+            "php": ">=5.3.3"
         },
         "require-dev": {
-            "symfony/config": "~2.2",
-            "symfony/dependency-injection": "~2.0",
-            "symfony/event-dispatcher": "~2.1"
+            "symfony/dependency-injection": "~2.0"
         },
         "suggest": {
-            "symfony/event-dispatcher": "DynamicRouter can optionally trigger an event at the start of matching. Minimal version ~2.1"
+            "symfony/dependency-injection": "",
+            "symfony/http-kernel": ""
         },
-        "time": "2013-10-14 15:32:46",
+        "time": "2013-07-21 12:12:18",
         "type": "library",
         "extra": {
             "branch-alias": {
-                "dev-master": "1.1-dev"
+                "dev-master": "2.3-dev"
             }
         },
         "installation-source": "dist",
         "autoload": {
             "psr-0": {
-                "Symfony\\Cmf\\Component\\Routing": ""
+                "Symfony\\Component\\EventDispatcher\\": ""
             }
         },
         "notification-url": "https://packagist.org/downloads/",
@@ -1397,97 +1403,131 @@
         ],
         "authors": [
             {
-                "name": "Symfony CMF Community",
-                "homepage": "https://github.com/symfony-cmf/Routing/contributors"
+                "name": "Fabien Potencier",
+                "email": "fabien@symfony.com"
+            },
+            {
+                "name": "Symfony Community",
+                "homepage": "http://symfony.com/contributors"
             }
         ],
-        "description": "Extends the Symfony2 routing component for dynamic routes and chaining several routers",
-        "homepage": "http://cmf.symfony.com",
-        "keywords": [
-            "database",
-            "routing"
-        ]
+        "description": "Symfony EventDispatcher Component",
+        "homepage": "http://symfony.com"
     },
     {
-        "name": "phpunit/php-file-iterator",
-        "version": "1.3.4",
-        "version_normalized": "1.3.4.0",
+        "name": "symfony/http-kernel",
+        "version": "v2.3.4",
+        "version_normalized": "2.3.4.0",
+        "target-dir": "Symfony/Component/HttpKernel",
         "source": {
             "type": "git",
-            "url": "https://github.com/sebastianbergmann/php-file-iterator.git",
-            "reference": "acd690379117b042d1c8af1fafd61bde001bf6bb"
+            "url": "https://github.com/symfony/HttpKernel.git",
+            "reference": "9d35da40f07bbe7a4f8dfbc41555d2b69de674bf"
         },
         "dist": {
             "type": "zip",
-            "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/acd690379117b042d1c8af1fafd61bde001bf6bb",
-            "reference": "acd690379117b042d1c8af1fafd61bde001bf6bb",
+            "url": "https://api.github.com/repos/symfony/HttpKernel/zipball/9d35da40f07bbe7a4f8dfbc41555d2b69de674bf",
+            "reference": "9d35da40f07bbe7a4f8dfbc41555d2b69de674bf",
             "shasum": ""
         },
         "require": {
-            "php": ">=5.3.3"
+            "php": ">=5.3.3",
+            "psr/log": "~1.0",
+            "symfony/debug": "~2.3",
+            "symfony/event-dispatcher": "~2.1",
+            "symfony/http-foundation": "~2.2"
         },
-        "time": "2013-10-10 15:34:57",
+        "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": ""
+        },
+        "time": "2013-08-27 08:58:24",
         "type": "library",
+        "extra": {
+            "branch-alias": {
+                "dev-master": "2.3-dev"
+            }
+        },
         "installation-source": "dist",
         "autoload": {
-            "classmap": [
-                "File/"
-            ]
+            "psr-0": {
+                "Symfony\\Component\\HttpKernel\\": ""
+            }
         },
         "notification-url": "https://packagist.org/downloads/",
-        "include-path": [
-            ""
-        ],
         "license": [
-            "BSD-3-Clause"
+            "MIT"
         ],
         "authors": [
             {
-                "name": "Sebastian Bergmann",
-                "email": "sb@sebastian-bergmann.de",
-                "role": "lead"
+                "name": "Fabien Potencier",
+                "email": "fabien@symfony.com"
+            },
+            {
+                "name": "Symfony Community",
+                "homepage": "http://symfony.com/contributors"
             }
         ],
-        "description": "FilterIterator implementation that filters files based on a list of suffixes.",
-        "homepage": "https://github.com/sebastianbergmann/php-file-iterator/",
-        "keywords": [
-            "filesystem",
-            "iterator"
-        ]
+        "description": "Symfony HttpKernel Component",
+        "homepage": "http://symfony.com"
     },
     {
-        "name": "doctrine/annotations",
-        "version": "dev-master",
-        "version_normalized": "9999999-dev",
+        "name": "symfony/routing",
+        "version": "v2.3.4",
+        "version_normalized": "2.3.4.0",
+        "target-dir": "Symfony/Component/Routing",
         "source": {
             "type": "git",
-            "url": "https://github.com/doctrine/annotations.git",
-            "reference": "463d926a8dcc49271cb7db5a08364a70ed6e3cd3"
+            "url": "https://github.com/symfony/Routing.git",
+            "reference": "69af3f07dbf3ae93dd513dbc373f561cb2e7f143"
         },
         "dist": {
             "type": "zip",
-            "url": "https://api.github.com/repos/doctrine/annotations/zipball/463d926a8dcc49271cb7db5a08364a70ed6e3cd3",
-            "reference": "463d926a8dcc49271cb7db5a08364a70ed6e3cd3",
+            "url": "https://api.github.com/repos/symfony/Routing/zipball/69af3f07dbf3ae93dd513dbc373f561cb2e7f143",
+            "reference": "69af3f07dbf3ae93dd513dbc373f561cb2e7f143",
             "shasum": ""
         },
         "require": {
-            "doctrine/lexer": "1.*",
-            "php": ">=5.3.2"
+            "php": ">=5.3.3"
         },
         "require-dev": {
-            "doctrine/cache": "1.*"
+            "doctrine/common": "~2.2",
+            "psr/log": "~1.0",
+            "symfony/config": "~2.2",
+            "symfony/yaml": "~2.0"
         },
-        "time": "2013-11-19 05:59:59",
+        "suggest": {
+            "doctrine/common": "",
+            "symfony/config": "",
+            "symfony/yaml": ""
+        },
+        "time": "2013-08-23 15:14:07",
         "type": "library",
         "extra": {
             "branch-alias": {
-                "dev-master": "1.0.x-dev"
+                "dev-master": "2.3-dev"
             }
         },
         "installation-source": "dist",
         "autoload": {
             "psr-0": {
-                "Doctrine\\Common\\Annotations\\": "lib/"
+                "Symfony\\Component\\Routing\\": ""
             }
         },
         "notification-url": "https://packagist.org/downloads/",
@@ -1496,157 +1536,104 @@
         ],
         "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": "Fabien Potencier",
+                "email": "fabien@symfony.com"
             },
             {
-                "name": "Johannes Schmitt",
-                "email": "schmittjoh@gmail.com",
-                "homepage": "http://jmsyst.com",
-                "role": "Developer of wrapped JMSSerializerBundle"
+                "name": "Symfony Community",
+                "homepage": "http://symfony.com/contributors"
             }
         ],
-        "description": "Docblock Annotations Parser",
-        "homepage": "http://www.doctrine-project.org",
-        "keywords": [
-            "annotations",
-            "docblock",
-            "parser"
-        ]
+        "description": "Symfony Routing Component",
+        "homepage": "http://symfony.com"
     },
     {
-        "name": "doctrine/common",
-        "version": "dev-bmaster",
-        "version_normalized": "dev-bmaster",
+        "name": "symfony/serializer",
+        "version": "v2.3.4",
+        "version_normalized": "2.3.4.0",
+        "target-dir": "Symfony/Component/Serializer",
         "source": {
             "type": "git",
-            "url": "https://github.com/dawehner/common.git",
-            "reference": "99b44f52a1b844f9c4c34e618b160664d5c27daf"
+            "url": "https://github.com/symfony/Serializer.git",
+            "reference": "457ba76395955926a67ea692957b0872dead5278"
         },
         "dist": {
             "type": "zip",
-            "url": "https://api.github.com/repos/dawehner/common/zipball/99b44f52a1b844f9c4c34e618b160664d5c27daf",
-            "reference": "99b44f52a1b844f9c4c34e618b160664d5c27daf",
+            "url": "https://api.github.com/repos/symfony/Serializer/zipball/457ba76395955926a67ea692957b0872dead5278",
+            "reference": "457ba76395955926a67ea692957b0872dead5278",
             "shasum": ""
         },
-        "archive": {
-            "exclude": [
-                "!vendor",
-                "tests",
-                "*phpunit.xml",
-                ".travis.yml",
-                "build.xml",
-                "build.properties",
-                "composer.phar"
-            ]
-        },
         "require": {
-            "doctrine/annotations": "1.*",
-            "doctrine/cache": "1.*",
-            "doctrine/collections": "1.*",
-            "doctrine/inflector": "1.*",
-            "doctrine/lexer": "1.*",
-            "php": ">=5.3.2"
+            "php": ">=5.3.3"
         },
-        "time": "2013-12-12 18:37:37",
+        "time": "2013-07-21 12:12:18",
         "type": "library",
         "extra": {
             "branch-alias": {
-                "dev-master": "2.5.x-dev"
+                "dev-master": "2.3-dev"
             }
         },
         "installation-source": "dist",
         "autoload": {
             "psr-0": {
-                "Doctrine\\Common\\": "lib/"
+                "Symfony\\Component\\Serializer\\": ""
             }
         },
+        "notification-url": "https://packagist.org/downloads/",
         "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": "Fabien Potencier",
+                "email": "fabien@symfony.com"
             },
             {
-                "name": "Johannes Schmitt",
-                "email": "schmittjoh@gmail.com"
+                "name": "Symfony Community",
+                "homepage": "http://symfony.com/contributors"
             }
         ],
-        "description": "Common Library for Doctrine projects",
-        "homepage": "http://www.doctrine-project.org",
-        "keywords": [
-            "annotations",
-            "collections",
-            "eventmanager",
-            "persistence",
-            "spl"
-        ],
-        "support": {
-            "source": "https://github.com/dawehner/common/tree/bmaster"
-        }
+        "description": "Symfony Serializer Component",
+        "homepage": "http://symfony.com"
     },
     {
-        "name": "symfony/class-loader",
-        "version": "v2.4.1",
-        "version_normalized": "2.4.1.0",
-        "target-dir": "Symfony/Component/ClassLoader",
+        "name": "symfony/translation",
+        "version": "v2.3.4",
+        "version_normalized": "2.3.4.0",
+        "target-dir": "Symfony/Component/Translation",
         "source": {
             "type": "git",
-            "url": "https://github.com/symfony/ClassLoader.git",
-            "reference": "6a2ebedbc780130f07b3a15363743d08eb46820c"
+            "url": "https://github.com/symfony/Translation.git",
+            "reference": "65f888291f0896ad492f9abc6dc05c998373aded"
         },
         "dist": {
             "type": "zip",
-            "url": "https://api.github.com/repos/symfony/ClassLoader/zipball/6a2ebedbc780130f07b3a15363743d08eb46820c",
-            "reference": "6a2ebedbc780130f07b3a15363743d08eb46820c",
+            "url": "https://api.github.com/repos/symfony/Translation/zipball/65f888291f0896ad492f9abc6dc05c998373aded",
+            "reference": "65f888291f0896ad492f9abc6dc05c998373aded",
             "shasum": ""
         },
         "require": {
             "php": ">=5.3.3"
         },
         "require-dev": {
-            "symfony/finder": "~2.0"
+            "symfony/config": "~2.0",
+            "symfony/yaml": "~2.2"
+        },
+        "suggest": {
+            "symfony/config": "",
+            "symfony/yaml": ""
         },
-        "time": "2013-11-26 16:40:27",
+        "time": "2013-08-26 05:49:51",
         "type": "library",
         "extra": {
             "branch-alias": {
-                "dev-master": "2.4-dev"
+                "dev-master": "2.3-dev"
             }
         },
         "installation-source": "dist",
         "autoload": {
             "psr-0": {
-                "Symfony\\Component\\ClassLoader\\": ""
+                "Symfony\\Component\\Translation\\": ""
             }
         },
         "notification-url": "https://packagist.org/downloads/",
@@ -1663,49 +1650,53 @@
                 "homepage": "http://symfony.com/contributors"
             }
         ],
-        "description": "Symfony ClassLoader Component",
+        "description": "Symfony Translation Component",
         "homepage": "http://symfony.com"
     },
     {
-        "name": "symfony/dependency-injection",
-        "version": "v2.4.1",
-        "version_normalized": "2.4.1.0",
-        "target-dir": "Symfony/Component/DependencyInjection",
+        "name": "symfony/validator",
+        "version": "v2.3.4",
+        "version_normalized": "2.3.4.0",
+        "target-dir": "Symfony/Component/Validator",
         "source": {
             "type": "git",
-            "url": "https://github.com/symfony/DependencyInjection.git",
-            "reference": "7e5bde3a607dde1f8ddef5180759068ad53d259c"
+            "url": "https://github.com/symfony/Validator.git",
+            "reference": "8f6f6be47fb8e1179cd225b1f949630e26221e42"
         },
         "dist": {
             "type": "zip",
-            "url": "https://api.github.com/repos/symfony/DependencyInjection/zipball/7e5bde3a607dde1f8ddef5180759068ad53d259c",
-            "reference": "7e5bde3a607dde1f8ddef5180759068ad53d259c",
+            "url": "https://api.github.com/repos/symfony/Validator/zipball/8f6f6be47fb8e1179cd225b1f949630e26221e42",
+            "reference": "8f6f6be47fb8e1179cd225b1f949630e26221e42",
             "shasum": ""
         },
         "require": {
-            "php": ">=5.3.3"
+            "php": ">=5.3.3",
+            "symfony/translation": "~2.0"
         },
         "require-dev": {
             "symfony/config": "~2.2",
-            "symfony/expression-language": "~2.4",
+            "symfony/http-foundation": "~2.1",
+            "symfony/intl": "~2.3",
             "symfony/yaml": "~2.0"
         },
         "suggest": {
+            "doctrine/common": "",
             "symfony/config": "",
-            "symfony/proxy-manager-bridge": "Generate service proxies to lazy load them",
+            "symfony/http-foundation": "",
+            "symfony/intl": "",
             "symfony/yaml": ""
         },
-        "time": "2014-01-01 09:02:49",
+        "time": "2013-08-24 15:26:22",
         "type": "library",
         "extra": {
             "branch-alias": {
-                "dev-master": "2.4-dev"
+                "dev-master": "2.3-dev"
             }
         },
         "installation-source": "dist",
         "autoload": {
             "psr-0": {
-                "Symfony\\Component\\DependencyInjection\\": ""
+                "Symfony\\Component\\Validator\\": ""
             }
         },
         "notification-url": "https://packagist.org/downloads/",
@@ -1722,43 +1713,40 @@
                 "homepage": "http://symfony.com/contributors"
             }
         ],
-        "description": "Symfony DependencyInjection Component",
+        "description": "Symfony Validator Component",
         "homepage": "http://symfony.com"
     },
     {
-        "name": "symfony/http-foundation",
-        "version": "v2.4.1",
-        "version_normalized": "2.4.1.0",
-        "target-dir": "Symfony/Component/HttpFoundation",
+        "name": "symfony/yaml",
+        "version": "v2.3.4",
+        "version_normalized": "2.3.4.0",
+        "target-dir": "Symfony/Component/Yaml",
         "source": {
             "type": "git",
-            "url": "https://github.com/symfony/HttpFoundation.git",
-            "reference": "6c6b8a7bcd7e2cc920cd6acace563fdbf121d844"
+            "url": "https://github.com/symfony/Yaml.git",
+            "reference": "5a279f1b5f5e1045a6c432354d9ea727ff3a9847"
         },
         "dist": {
             "type": "zip",
-            "url": "https://api.github.com/repos/symfony/HttpFoundation/zipball/6c6b8a7bcd7e2cc920cd6acace563fdbf121d844",
-            "reference": "6c6b8a7bcd7e2cc920cd6acace563fdbf121d844",
+            "url": "https://api.github.com/repos/symfony/Yaml/zipball/5a279f1b5f5e1045a6c432354d9ea727ff3a9847",
+            "reference": "5a279f1b5f5e1045a6c432354d9ea727ff3a9847",
             "shasum": ""
         },
         "require": {
             "php": ">=5.3.3"
         },
-        "time": "2014-01-05 02:10:50",
+        "time": "2013-08-24 15:26:22",
         "type": "library",
         "extra": {
             "branch-alias": {
-                "dev-master": "2.4-dev"
+                "dev-master": "2.3-dev"
             }
         },
         "installation-source": "dist",
         "autoload": {
             "psr-0": {
-                "Symfony\\Component\\HttpFoundation\\": ""
-            },
-            "classmap": [
-                "Symfony/Component/HttpFoundation/Resources/stubs"
-            ]
+                "Symfony\\Component\\Yaml\\": ""
+            }
         },
         "notification-url": "https://packagist.org/downloads/",
         "license": [
@@ -1774,46 +1762,39 @@
                 "homepage": "http://symfony.com/contributors"
             }
         ],
-        "description": "Symfony HttpFoundation Component",
+        "description": "Symfony Yaml Component",
         "homepage": "http://symfony.com"
     },
     {
-        "name": "symfony/event-dispatcher",
-        "version": "v2.4.1",
-        "version_normalized": "2.4.1.0",
-        "target-dir": "Symfony/Component/EventDispatcher",
+        "name": "symfony/process",
+        "version": "v2.3.4",
+        "version_normalized": "2.3.4.0",
+        "target-dir": "Symfony/Component/Process",
         "source": {
             "type": "git",
-            "url": "https://github.com/symfony/EventDispatcher.git",
-            "reference": "e3ba42f6a70554ed05749e61b829550f6ac33601"
+            "url": "https://github.com/symfony/Process.git",
+            "reference": "1e91553e1cedd0b8fb1da6ea4f89b02e21713d5b"
         },
         "dist": {
             "type": "zip",
-            "url": "https://api.github.com/repos/symfony/EventDispatcher/zipball/e3ba42f6a70554ed05749e61b829550f6ac33601",
-            "reference": "e3ba42f6a70554ed05749e61b829550f6ac33601",
+            "url": "https://api.github.com/repos/symfony/Process/zipball/1e91553e1cedd0b8fb1da6ea4f89b02e21713d5b",
+            "reference": "1e91553e1cedd0b8fb1da6ea4f89b02e21713d5b",
             "shasum": ""
         },
         "require": {
             "php": ">=5.3.3"
         },
-        "require-dev": {
-            "symfony/dependency-injection": "~2.0"
-        },
-        "suggest": {
-            "symfony/dependency-injection": "",
-            "symfony/http-kernel": ""
-        },
-        "time": "2013-12-28 08:12:03",
+        "time": "2013-08-22 06:42:25",
         "type": "library",
         "extra": {
             "branch-alias": {
-                "dev-master": "2.4-dev"
+                "dev-master": "2.3-dev"
             }
         },
         "installation-source": "dist",
         "autoload": {
             "psr-0": {
-                "Symfony\\Component\\EventDispatcher\\": ""
+                "Symfony\\Component\\Process\\": ""
             }
         },
         "notification-url": "https://packagist.org/downloads/",
@@ -1830,63 +1811,33 @@
                 "homepage": "http://symfony.com/contributors"
             }
         ],
-        "description": "Symfony EventDispatcher Component",
+        "description": "Symfony Process Component",
         "homepage": "http://symfony.com"
     },
     {
-        "name": "symfony/http-kernel",
-        "version": "v2.4.1",
-        "version_normalized": "2.4.1.0",
-        "target-dir": "Symfony/Component/HttpKernel",
+        "name": "sdboyer/gliph",
+        "version": "0.1.4",
+        "version_normalized": "0.1.4.0",
         "source": {
             "type": "git",
-            "url": "https://github.com/symfony/HttpKernel.git",
-            "reference": "0605eedeb52c4d3a3144128d8336395a57be60d4"
+            "url": "https://github.com/sdboyer/gliph.git",
+            "reference": "aad932ef7d808105341cc9a36538e9fe2cb5ee82"
         },
         "dist": {
             "type": "zip",
-            "url": "https://api.github.com/repos/symfony/HttpKernel/zipball/0605eedeb52c4d3a3144128d8336395a57be60d4",
-            "reference": "0605eedeb52c4d3a3144128d8336395a57be60d4",
+            "url": "https://api.github.com/repos/sdboyer/gliph/zipball/aad932ef7d808105341cc9a36538e9fe2cb5ee82",
+            "reference": "aad932ef7d808105341cc9a36538e9fe2cb5ee82",
             "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": ""
+            "php": ">=5.3"
         },
-        "time": "2014-01-05 02:12:11",
+        "time": "2013-09-27 01:15:21",
         "type": "library",
-        "extra": {
-            "branch-alias": {
-                "dev-master": "2.4-dev"
-            }
-        },
         "installation-source": "dist",
         "autoload": {
             "psr-0": {
-                "Symfony\\Component\\HttpKernel\\": ""
+                "Gliph": "src/"
             }
         },
         "notification-url": "https://packagist.org/downloads/",
@@ -1895,60 +1846,61 @@
         ],
         "authors": [
             {
-                "name": "Fabien Potencier",
-                "email": "fabien@symfony.com"
-            },
-            {
-                "name": "Symfony Community",
-                "homepage": "http://symfony.com/contributors"
+                "name": "Sam Boyer",
+                "email": "tech@samboyer.org"
             }
         ],
-        "description": "Symfony HttpKernel Component",
-        "homepage": "http://symfony.com"
+        "description": "A graph library for PHP.",
+        "homepage": "http://github.com/sdboyer/gliph",
+        "keywords": [
+            "gliph",
+            "graph",
+            "library",
+            "php",
+            "spl"
+        ]
     },
     {
-        "name": "symfony/routing",
-        "version": "v2.4.1",
-        "version_normalized": "2.4.1.0",
-        "target-dir": "Symfony/Component/Routing",
+        "name": "symfony-cmf/routing",
+        "version": "1.1.0",
+        "version_normalized": "1.1.0.0",
+        "target-dir": "Symfony/Cmf/Component/Routing",
         "source": {
             "type": "git",
-            "url": "https://github.com/symfony/Routing.git",
-            "reference": "4abfb500aab8be458c9e3a227ea56b190584f78a"
+            "url": "https://github.com/symfony-cmf/Routing.git",
+            "reference": "9f8607950cbf888ec678713a35f3d0088857c85f"
         },
         "dist": {
             "type": "zip",
-            "url": "https://api.github.com/repos/symfony/Routing/zipball/4abfb500aab8be458c9e3a227ea56b190584f78a",
-            "reference": "4abfb500aab8be458c9e3a227ea56b190584f78a",
+            "url": "https://api.github.com/repos/symfony-cmf/Routing/zipball/9f8607950cbf888ec678713a35f3d0088857c85f",
+            "reference": "9f8607950cbf888ec678713a35f3d0088857c85f",
             "shasum": ""
         },
         "require": {
-            "php": ">=5.3.3"
+            "php": ">=5.3.3",
+            "psr/log": "~1.0",
+            "symfony/http-kernel": "~2.2",
+            "symfony/routing": "~2.2"
         },
         "require-dev": {
-            "doctrine/annotations": "~1.0",
-            "psr/log": "~1.0",
             "symfony/config": "~2.2",
-            "symfony/expression-language": "~2.4",
-            "symfony/yaml": "~2.0"
+            "symfony/dependency-injection": "~2.0",
+            "symfony/event-dispatcher": "~2.1"
         },
         "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"
+            "symfony/event-dispatcher": "DynamicRouter can optionally trigger an event at the start of matching. Minimal version ~2.1"
         },
-        "time": "2014-01-05 02:10:50",
+        "time": "2013-10-14 15:32:46",
         "type": "library",
         "extra": {
             "branch-alias": {
-                "dev-master": "2.4-dev"
+                "dev-master": "1.1-dev"
             }
         },
         "installation-source": "dist",
         "autoload": {
             "psr-0": {
-                "Symfony\\Component\\Routing\\": ""
+                "Symfony\\Cmf\\Component\\Routing": ""
             }
         },
         "notification-url": "https://packagist.org/downloads/",
@@ -1957,180 +1909,97 @@
         ],
         "authors": [
             {
-                "name": "Fabien Potencier",
-                "email": "fabien@symfony.com"
-            },
-            {
-                "name": "Symfony Community",
-                "homepage": "http://symfony.com/contributors"
+                "name": "Symfony CMF Community",
+                "homepage": "https://github.com/symfony-cmf/Routing/contributors"
             }
         ],
-        "description": "Symfony Routing Component",
-        "homepage": "http://symfony.com",
+        "description": "Extends the Symfony2 routing component for dynamic routes and chaining several routers",
+        "homepage": "http://cmf.symfony.com",
         "keywords": [
-            "router",
-            "routing",
-            "uri",
-            "url"
+            "database",
+            "routing"
         ]
     },
     {
-        "name": "symfony/serializer",
-        "version": "v2.4.1",
-        "version_normalized": "2.4.1.0",
-        "target-dir": "Symfony/Component/Serializer",
+        "name": "phpunit/php-file-iterator",
+        "version": "1.3.4",
+        "version_normalized": "1.3.4.0",
         "source": {
             "type": "git",
-            "url": "https://github.com/symfony/Serializer.git",
-            "reference": "60c54346958604379392672a3a998650a169a7f4"
+            "url": "https://github.com/sebastianbergmann/php-file-iterator.git",
+            "reference": "acd690379117b042d1c8af1fafd61bde001bf6bb"
         },
         "dist": {
             "type": "zip",
-            "url": "https://api.github.com/repos/symfony/Serializer/zipball/60c54346958604379392672a3a998650a169a7f4",
-            "reference": "60c54346958604379392672a3a998650a169a7f4",
+            "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/acd690379117b042d1c8af1fafd61bde001bf6bb",
+            "reference": "acd690379117b042d1c8af1fafd61bde001bf6bb",
             "shasum": ""
         },
         "require": {
             "php": ">=5.3.3"
         },
-        "time": "2014-01-01 08:14:50",
+        "time": "2013-10-10 15:34:57",
         "type": "library",
-        "extra": {
-            "branch-alias": {
-                "dev-master": "2.4-dev"
-            }
-        },
         "installation-source": "dist",
         "autoload": {
-            "psr-0": {
-                "Symfony\\Component\\Serializer\\": ""
-            }
+            "classmap": [
+                "File/"
+            ]
         },
         "notification-url": "https://packagist.org/downloads/",
-        "license": [
-            "MIT"
-        ],
-        "authors": [
-            {
-                "name": "Fabien Potencier",
-                "email": "fabien@symfony.com"
-            },
-            {
-                "name": "Symfony Community",
-                "homepage": "http://symfony.com/contributors"
-            }
+        "include-path": [
+            ""
         ],
-        "description": "Symfony Serializer Component",
-        "homepage": "http://symfony.com"
-    },
-    {
-        "name": "symfony/property-access",
-        "version": "v2.4.1",
-        "version_normalized": "2.4.1.0",
-        "target-dir": "Symfony/Component/PropertyAccess",
-        "source": {
-            "type": "git",
-            "url": "https://github.com/symfony/PropertyAccess.git",
-            "reference": "274951234150e303c83099a2429be6be35629fe9"
-        },
-        "dist": {
-            "type": "zip",
-            "url": "https://api.github.com/repos/symfony/PropertyAccess/zipball/274951234150e303c83099a2429be6be35629fe9",
-            "reference": "274951234150e303c83099a2429be6be35629fe9",
-            "shasum": ""
-        },
-        "require": {
-            "php": ">=5.3.3"
-        },
-        "time": "2013-11-13 21:30:16",
-        "type": "library",
-        "extra": {
-            "branch-alias": {
-                "dev-master": "2.4-dev"
-            }
-        },
-        "installation-source": "dist",
-        "autoload": {
-            "psr-0": {
-                "Symfony\\Component\\PropertyAccess\\": ""
-            }
-        },
-        "notification-url": "https://packagist.org/downloads/",
         "license": [
-            "MIT"
+            "BSD-3-Clause"
         ],
         "authors": [
             {
-                "name": "Fabien Potencier",
-                "email": "fabien@symfony.com"
-            },
-            {
-                "name": "Symfony Community",
-                "homepage": "http://symfony.com/contributors"
+                "name": "Sebastian Bergmann",
+                "email": "sb@sebastian-bergmann.de",
+                "role": "lead"
             }
         ],
-        "description": "Symfony PropertyAccess Component",
-        "homepage": "http://symfony.com",
+        "description": "FilterIterator implementation that filters files based on a list of suffixes.",
+        "homepage": "https://github.com/sebastianbergmann/php-file-iterator/",
         "keywords": [
-            "access",
-            "array",
-            "extraction",
-            "index",
-            "injection",
-            "object",
-            "property",
-            "property path",
-            "reflection"
+            "filesystem",
+            "iterator"
         ]
     },
     {
-        "name": "symfony/validator",
-        "version": "v2.4.1",
-        "version_normalized": "2.4.1.0",
-        "target-dir": "Symfony/Component/Validator",
+        "name": "doctrine/annotations",
+        "version": "dev-master",
+        "version_normalized": "9999999-dev",
         "source": {
             "type": "git",
-            "url": "https://github.com/symfony/Validator.git",
-            "reference": "7ea4e53f8d68bf3ae9cca28765d49d7930618730"
+            "url": "https://github.com/doctrine/annotations.git",
+            "reference": "463d926a8dcc49271cb7db5a08364a70ed6e3cd3"
         },
         "dist": {
             "type": "zip",
-            "url": "https://api.github.com/repos/symfony/Validator/zipball/7ea4e53f8d68bf3ae9cca28765d49d7930618730",
-            "reference": "7ea4e53f8d68bf3ae9cca28765d49d7930618730",
+            "url": "https://api.github.com/repos/doctrine/annotations/zipball/463d926a8dcc49271cb7db5a08364a70ed6e3cd3",
+            "reference": "463d926a8dcc49271cb7db5a08364a70ed6e3cd3",
             "shasum": ""
         },
         "require": {
-            "php": ">=5.3.3",
-            "symfony/property-access": "~2.2",
-            "symfony/translation": "~2.0"
+            "doctrine/lexer": "1.*",
+            "php": ">=5.3.2"
         },
         "require-dev": {
-            "doctrine/annotations": "~1.0",
-            "doctrine/cache": "~1.0",
-            "symfony/config": "~2.2",
-            "symfony/http-foundation": "~2.1",
-            "symfony/intl": "~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",
-            "symfony/config": "",
-            "symfony/http-foundation": "",
-            "symfony/intl": "",
-            "symfony/yaml": ""
+            "doctrine/cache": "1.*"
         },
-        "time": "2014-01-01 08:14:50",
+        "time": "2013-11-19 05:59:59",
         "type": "library",
         "extra": {
             "branch-alias": {
-                "dev-master": "2.4-dev"
+                "dev-master": "1.0.x-dev"
             }
         },
         "installation-source": "dist",
         "autoload": {
             "psr-0": {
-                "Symfony\\Component\\Validator\\": ""
+                "Doctrine\\Common\\Annotations\\": "lib/"
             }
         },
         "notification-url": "https://packagist.org/downloads/",
@@ -2139,64 +2008,122 @@
         ],
         "authors": [
             {
-                "name": "Fabien Potencier",
-                "email": "fabien@symfony.com"
+                "name": "Jonathan Wage",
+                "email": "jonwage@gmail.com",
+                "homepage": "http://www.jwage.com/",
+                "role": "Creator"
             },
             {
-                "name": "Symfony Community",
-                "homepage": "http://symfony.com/contributors"
+                "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": "http://jmsyst.com",
+                "role": "Developer of wrapped JMSSerializerBundle"
             }
         ],
-        "description": "Symfony Validator Component",
-        "homepage": "http://symfony.com"
+        "description": "Docblock Annotations Parser",
+        "homepage": "http://www.doctrine-project.org",
+        "keywords": [
+            "annotations",
+            "docblock",
+            "parser"
+        ]
     },
     {
-        "name": "symfony/yaml",
-        "version": "v2.4.1",
-        "version_normalized": "2.4.1.0",
-        "target-dir": "Symfony/Component/Yaml",
+        "name": "doctrine/common",
+        "version": "dev-bmaster",
+        "version_normalized": "dev-bmaster",
         "source": {
             "type": "git",
-            "url": "https://github.com/symfony/Yaml.git",
-            "reference": "4e1a237fc48145fae114b96458d799746ad89aa0"
+            "url": "https://github.com/dawehner/common.git",
+            "reference": "99b44f52a1b844f9c4c34e618b160664d5c27daf"
         },
         "dist": {
             "type": "zip",
-            "url": "https://api.github.com/repos/symfony/Yaml/zipball/4e1a237fc48145fae114b96458d799746ad89aa0",
-            "reference": "4e1a237fc48145fae114b96458d799746ad89aa0",
+            "url": "https://api.github.com/repos/dawehner/common/zipball/99b44f52a1b844f9c4c34e618b160664d5c27daf",
+            "reference": "99b44f52a1b844f9c4c34e618b160664d5c27daf",
             "shasum": ""
         },
+        "archive": {
+            "exclude": [
+                "!vendor",
+                "tests",
+                "*phpunit.xml",
+                ".travis.yml",
+                "build.xml",
+                "build.properties",
+                "composer.phar"
+            ]
+        },
         "require": {
-            "php": ">=5.3.3"
+            "doctrine/annotations": "1.*",
+            "doctrine/cache": "1.*",
+            "doctrine/collections": "1.*",
+            "doctrine/inflector": "1.*",
+            "doctrine/lexer": "1.*",
+            "php": ">=5.3.2"
         },
-        "time": "2013-12-28 08:12:03",
+        "time": "2013-12-12 18:37:37",
         "type": "library",
         "extra": {
             "branch-alias": {
-                "dev-master": "2.4-dev"
+                "dev-master": "2.5.x-dev"
             }
         },
         "installation-source": "dist",
         "autoload": {
             "psr-0": {
-                "Symfony\\Component\\Yaml\\": ""
+                "Doctrine\\Common\\": "lib/"
             }
         },
-        "notification-url": "https://packagist.org/downloads/",
         "license": [
             "MIT"
         ],
         "authors": [
             {
-                "name": "Fabien Potencier",
-                "email": "fabien@symfony.com"
+                "name": "Guilherme Blanco",
+                "email": "guilhermeblanco@gmail.com"
             },
             {
-                "name": "Symfony Community",
-                "homepage": "http://symfony.com/contributors"
+                "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"
             }
         ],
-        "description": "Symfony Yaml Component",
-        "homepage": "http://symfony.com"
+        "description": "Common Library for Doctrine projects",
+        "homepage": "http://www.doctrine-project.org",
+        "keywords": [
+            "annotations",
+            "collections",
+            "eventmanager",
+            "persistence",
+            "spl"
+        ],
+        "support": {
+            "source": "https://github.com/dawehner/common/tree/bmaster"
+        }
     }
 ]
diff --git a/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/CHANGELOG.md b/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/CHANGELOG.md
index b770166735bf28b0d2186f058b8ca8d0a2700f3f..54ffb642e69dd3e8cabcf1fb38886bf9703039e8 100644
--- a/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/CHANGELOG.md
+++ b/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/CHANGELOG.md
@@ -1,11 +1,6 @@
 CHANGELOG
 =========
 
-2.4.0
------
-
- * deprecated the DebugClassLoader as it has been moved to the Debug component instead
-
 2.3.0
 -----
 
diff --git a/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/ClassCollectionLoader.php b/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/ClassCollectionLoader.php
index b2be33ad88ec1d9ee8c7322d32a6be0055bedb61..be1c7e2b5563a99df74456a663c203fbb5b77343 100644
--- a/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/ClassCollectionLoader.php
+++ b/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/ClassCollectionLoader.php
@@ -53,7 +53,7 @@ public static function load($classes, $cacheDir, $name, $autoReload, $adaptive =
             $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);
+            $name = $name.'-'.substr(md5(implode('|', $classes)), 0, 5);
         }
 
         $classes = array_unique($classes);
diff --git a/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/ClassMapGenerator.php b/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/ClassMapGenerator.php
index 59c99d0f1b75d0832a67e91c1aedbbb1bbe08789..3b09305954f3417c08198459369fcbed6521db46 100644
--- a/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/ClassMapGenerator.php
+++ b/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/ClassMapGenerator.php
@@ -39,7 +39,7 @@ public static function dump($dirs, $file)
     /**
      * Iterate over all files in the given directory searching for classes
      *
-     * @param \Iterator|string $dir The directory to search in or an iterator
+     * @param Iterator|string $dir The directory to search in or an iterator
      *
      * @return array A class map array
      */
diff --git a/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/DebugClassLoader.php b/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/DebugClassLoader.php
index 8edd4c1999fa768f0ce40ec2112e47307e538f47..842f4744c0f66be3b0ef8697fac82b0bf2c0dd6b 100644
--- a/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/DebugClassLoader.php
+++ b/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/DebugClassLoader.php
@@ -22,8 +22,6 @@
  * @author Christophe Coevoet <stof@notk.org>
  *
  * @api
- *
- * @deprecated Deprecated since version 2.4, to be removed in 3.0. Use the DebugClassLoader provided by the Debug component instead.
  */
 class DebugClassLoader
 {
@@ -41,16 +39,6 @@ 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.
      */
diff --git a/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/README.md b/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/README.md
index fc222b1c9e3988a6c0753af83644b50905b53836..5ac31c64890d52e03f60187b9fb980512d579707 100644
--- a/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/README.md
+++ b/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/README.md
@@ -65,5 +65,5 @@ Resources
 You can run the unit tests with the following command:
 
     $ cd path/to/Symfony/Component/ClassLoader/
-    $ composer.phar install
+    $ composer.phar install --dev
     $ phpunit
diff --git a/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/Tests/ClassCollectionLoaderTest.php b/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/Tests/ClassCollectionLoaderTest.php
index 7b71854da381de04cb0ac934562fa455fd48b13f..dfa51e37fed1335d881d0ccaa60f61cedb134a6a 100644
--- a/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/Tests/ClassCollectionLoaderTest.php
+++ b/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/Tests/ClassCollectionLoaderTest.php
@@ -189,7 +189,7 @@ public function getFixNamespaceDeclarationsDataWithoutTokenizer()
     }
 
     /**
-     * @expectedException \InvalidArgumentException
+     * @expectedException InvalidArgumentException
      */
     public function testUnableToLoadClassException()
     {
diff --git a/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/Tests/ClassLoaderTest.php b/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/Tests/ClassLoaderTest.php
index a870935797cda98feaf2eab6db80ca930464e82e..9dae537442f5455f234be5b5ae797fa16fb8979f 100644
--- a/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/Tests/ClassLoaderTest.php
+++ b/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/Tests/ClassLoaderTest.php
@@ -72,7 +72,7 @@ public function testLoadNonexistentClass($className, $testClassName, $message)
     public function getLoadNonexistentClassTests()
     {
         return array(
-            array('\\Pearlike3_Bar', '\\Pearlike3_Bar', '->loadClass() loads non existing Pearlike3_Bar class with a leading slash'),
+            array('\\Pearlike3_Bar', '\\Pearlike3_Bar', '->loadClass() loads non exising Pearlike3_Bar class with a leading slash'),
         );
     }
 
diff --git a/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/Tests/ClassMapGeneratorTest.php b/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/Tests/ClassMapGeneratorTest.php
index b8600fc54ed7b4567dc88cce8c11394da3cae6b3..18f64f75887ef749a2b08f3c048e6e617700bafb 100644
--- a/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/Tests/ClassMapGeneratorTest.php
+++ b/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/Tests/ClassMapGeneratorTest.php
@@ -120,6 +120,10 @@ public function getTestCreateMapTests()
 
     public function testCreateMapFinderSupport()
     {
+        if (!class_exists('Symfony\\Component\\Finder\\Finder')) {
+            $this->markTestSkipped('Finder component is not available');
+        }
+
         $finder = new \Symfony\Component\Finder\Finder();
         $finder->files()->in(__DIR__.'/Fixtures/beta/NamespaceCollision');
 
diff --git a/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/Tests/DebugClassLoaderTest.php b/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/Tests/DebugClassLoaderTest.php
new file mode 100644
index 0000000000000000000000000000000000000000..873515c3369f594a814363d3b7aed6ecabaa4bd8
--- /dev/null
+++ b/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/Tests/DebugClassLoaderTest.php
@@ -0,0 +1,52 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@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;
+use Symfony\Component\ClassLoader\DebugClassLoader;
+
+class DebugClassLoaderTest extends \PHPUnit_Framework_TestCase
+{
+    private $loader;
+
+    protected function setUp()
+    {
+        $this->loader = new ClassLoader();
+        spl_autoload_register(array($this->loader, 'loadClass'));
+    }
+
+    protected function tearDown()
+    {
+        spl_autoload_unregister(array($this->loader, 'loadClass'));
+    }
+
+    public function testIdempotence()
+    {
+        DebugClassLoader::enable();
+        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('classFinder');
+                $reflProp->setAccessible(true);
+
+                $this->assertNotInstanceOf('Symfony\Component\ClassLoader\DebugClassLoader', $reflProp->getValue($function[0]));
+
+                return;
+            }
+        }
+
+        throw new \Exception('DebugClassLoader did not register');
+    }
+}
diff --git a/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/composer.json b/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/composer.json
index b28f4f55cb269344ee728494bc931d7562d0695f..06a1c624b24b3dc9b2b4ef558ffd067a41f88956 100644
--- a/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/composer.json
+++ b/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/composer.json
@@ -28,7 +28,7 @@
     "target-dir": "Symfony/Component/ClassLoader",
     "extra": {
         "branch-alias": {
-            "dev-master": "2.4-dev"
+            "dev-master": "2.3-dev"
         }
     }
 }
diff --git a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/CHANGELOG.md b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/CHANGELOG.md
index 9a41e85705514b5a1970ff0bb2ad477a59745eca..4839bd8bee7b41eb1e8c23ba9aece86a267784d6 100644
--- a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/CHANGELOG.md
+++ b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/CHANGELOG.md
@@ -1,12 +1,6 @@
 CHANGELOG
 =========
 
-2.4.0
------
-
- * added support for expressions in service definitions
- * added ContainerAwareTrait to add default container aware behavior to a class
-
 2.2.0
 -----
 
diff --git a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Compiler/CheckCircularReferencesPass.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Compiler/CheckCircularReferencesPass.php
index e81110dc0140466454c8ad40042fe3d40b4ac6c5..03528fefa9efad0503a792adb4e65f065eb8b4ce 100644
--- a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Compiler/CheckCircularReferencesPass.php
+++ b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Compiler/CheckCircularReferencesPass.php
@@ -28,7 +28,6 @@ class CheckCircularReferencesPass implements CompilerPassInterface
 {
     private $currentId;
     private $currentPath;
-    private $checkedNodes;
 
     /**
      * Checks the ContainerBuilder object for circular references.
@@ -39,7 +38,6 @@ public function process(ContainerBuilder $container)
     {
         $graph = $container->getCompiler()->getServiceReferenceGraph();
 
-        $this->checkedNodes = array();
         foreach ($graph->getNodes() as $id => $node) {
             $this->currentId = $id;
             $this->currentPath = array($id);
@@ -60,20 +58,15 @@ private function checkOutEdges(array $edges)
         foreach ($edges as $edge) {
             $node      = $edge->getDestNode();
             $id        = $node->getId();
+            $searchKey = array_search($id, $this->currentPath);
+            $this->currentPath[] = $id;
 
-            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);
+            if (false !== $searchKey) {
+                throw new ServiceCircularReferenceException($id, array_slice($this->currentPath, $searchKey));
             }
+
+            $this->checkOutEdges($node->getOutEdges());
+            array_pop($this->currentPath);
         }
     }
 }
diff --git a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Compiler/CheckDefinitionValidityPass.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Compiler/CheckDefinitionValidityPass.php
index c8978f377f44cf287fa8fb6db342035bce12b3aa..e536331c6e279653dfc3a0df36c92fa228400c4b 100644
--- a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Compiler/CheckDefinitionValidityPass.php
+++ b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Compiler/CheckDefinitionValidityPass.php
@@ -74,17 +74,6 @@ public function process(ContainerBuilder $container)
                    $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/Symfony/Component/DependencyInjection/Compiler/Compiler.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Compiler/Compiler.php
index 4dfa9cf31cb38763b2e0e7cde2700470cf02fd58..01f224b8232574c7a209c7e4a49add7693c9ba6b 100644
--- a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Compiler/Compiler.php
+++ b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Compiler/Compiler.php
@@ -12,6 +12,7 @@
 namespace Symfony\Component\DependencyInjection\Compiler;
 
 use Symfony\Component\DependencyInjection\ContainerBuilder;
+use Symfony\Component\DependencyInjection\Compiler\PassConfig;
 
 /**
  * This class is used to remove circular dependencies between individual passes.
@@ -23,7 +24,7 @@
 class Compiler
 {
     private $passConfig;
-    private $log = array();
+    private $log;
     private $loggingFormatter;
     private $serviceReferenceGraph;
 
@@ -35,6 +36,7 @@ public function __construct()
         $this->passConfig = new PassConfig();
         $this->serviceReferenceGraph = new ServiceReferenceGraph();
         $this->loggingFormatter = new LoggingFormatter();
+        $this->log = array();
     }
 
     /**
diff --git a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Compiler/InlineServiceDefinitionsPass.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Compiler/InlineServiceDefinitionsPass.php
index ba1688f5e86752f8ad816b43e8ed7d338e36f996..ab8895a8c9a54ef1b5d69a14526cee8a1fe87c8c 100644
--- a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Compiler/InlineServiceDefinitionsPass.php
+++ b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Compiler/InlineServiceDefinitionsPass.php
@@ -117,7 +117,7 @@ private function isInlineableDefinition(ContainerBuilder $container, $id, Defini
             return true;
         }
 
-        if ($definition->isPublic() || $definition->isLazy()) {
+        if ($definition->isPublic()) {
             return false;
         }
 
@@ -125,10 +125,6 @@ private function isInlineableDefinition(ContainerBuilder $container, $id, Defini
             return true;
         }
 
-        if ($this->currentId == $id) {
-            return false;
-        }
-
         $ids = array();
         foreach ($this->graph->getNode($id)->getInEdges() as $edge) {
             $ids[] = $edge->getSourceNode()->getId();
diff --git a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Compiler/PassConfig.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Compiler/PassConfig.php
index ac395db22e9a27e810f65f9aea3beebf953122c1..e863f75640fb15c618129b1f67f042f7505f0092 100644
--- a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Compiler/PassConfig.php
+++ b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Compiler/PassConfig.php
@@ -31,9 +31,9 @@ class PassConfig
     const TYPE_REMOVE = 'removing';
 
     private $mergePass;
-    private $afterRemovingPasses = array();
-    private $beforeOptimizationPasses = array();
-    private $beforeRemovingPasses = array();
+    private $afterRemovingPasses;
+    private $beforeOptimizationPasses;
+    private $beforeRemovingPasses;
     private $optimizationPasses;
     private $removingPasses;
 
@@ -44,6 +44,10 @@ public function __construct()
     {
         $this->mergePass = new MergeExtensionConfigurationPass();
 
+        $this->afterRemovingPasses = array();
+        $this->beforeOptimizationPasses = array();
+        $this->beforeRemovingPasses = array();
+
         $this->optimizationPasses = array(
             new ResolveDefinitionTemplatesPass(),
             new ResolveParameterPlaceHoldersPass(),
diff --git a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Compiler/ResolveDefinitionTemplatesPass.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Compiler/ResolveDefinitionTemplatesPass.php
index 4699ac34148e2c2e89a07cbd99d009de46f99f5e..c5187f3b91d1f600085121ae566b4bed35d957bc 100644
--- a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Compiler/ResolveDefinitionTemplatesPass.php
+++ b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Compiler/ResolveDefinitionTemplatesPass.php
@@ -112,7 +112,7 @@ private function resolveDefinition($id, DefinitionDecorator $definition)
         if (isset($changes['public'])) {
             $def->setPublic($definition->isPublic());
         }
-        if (isset($changes['lazy'])) {
+        if (isset($changes['lazy'])){
             $def->setLazy($definition->isLazy());
         }
 
diff --git a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Compiler/ServiceReferenceGraph.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Compiler/ServiceReferenceGraph.php
index 1de14fa62f96b90303a376d6ec0978017188f6df..fbd33eeee16f9a90491664ca57a43d34c25287a4 100644
--- a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Compiler/ServiceReferenceGraph.php
+++ b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Compiler/ServiceReferenceGraph.php
@@ -26,7 +26,15 @@ class ServiceReferenceGraph
     /**
      * @var ServiceReferenceGraphNode[]
      */
-    private $nodes = array();
+    private $nodes;
+
+    /**
+     * Constructor.
+     */
+    public function __construct()
+    {
+        $this->nodes = array();
+    }
 
     /**
      * Checks if the graph has a specific node.
diff --git a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Compiler/ServiceReferenceGraphNode.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Compiler/ServiceReferenceGraphNode.php
index 283f6de5ba0ef7d014b10579a5963424aa87825a..3fd50771d54e2408291bb6b37e1316d2ce9d9c43 100644
--- a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Compiler/ServiceReferenceGraphNode.php
+++ b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Compiler/ServiceReferenceGraphNode.php
@@ -24,8 +24,8 @@
 class ServiceReferenceGraphNode
 {
     private $id;
-    private $inEdges = array();
-    private $outEdges = array();
+    private $inEdges;
+    private $outEdges;
     private $value;
 
     /**
@@ -38,6 +38,8 @@ public function __construct($id, $value)
     {
         $this->id = $id;
         $this->value = $value;
+        $this->inEdges = array();
+        $this->outEdges = array();
     }
 
     /**
diff --git a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Container.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Container.php
index c4d8f16f32ee6ce891102aedee35f644c6465e16..ab0abf316fc9ade238e4bf6926c3c606f5188887 100644
--- a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Container.php
+++ b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Container.php
@@ -67,13 +67,13 @@ class Container implements IntrospectableContainerInterface
      */
     protected $parameterBag;
 
-    protected $services = array();
-    protected $methodMap = array();
-    protected $aliases = array();
-    protected $scopes = array();
-    protected $scopeChildren = array();
-    protected $scopedServices = array();
-    protected $scopeStacks = array();
+    protected $services;
+    protected $methodMap;
+    protected $aliases;
+    protected $scopes;
+    protected $scopeChildren;
+    protected $scopedServices;
+    protected $scopeStacks;
     protected $loading = array();
 
     /**
@@ -85,7 +85,14 @@ class Container implements IntrospectableContainerInterface
      */
     public function __construct(ParameterBagInterface $parameterBag = null)
     {
-        $this->parameterBag = $parameterBag ?: new ParameterBag();
+        $this->parameterBag = null === $parameterBag ? new ParameterBag() : $parameterBag;
+
+        $this->services       = array();
+        $this->aliases        = array();
+        $this->scopes         = array();
+        $this->scopeChildren  = array();
+        $this->scopedServices = array();
+        $this->scopeStacks    = array();
 
         $this->set('service_container', $this);
     }
@@ -207,7 +214,7 @@ public function set($id, $service, $scope = self::SCOPE_CONTAINER)
 
         $this->services[$id] = $service;
 
-        if (method_exists($this, $method = 'synchronize'.strtr($id, array('_' => '', '.' => '_', '\\' => '_')).'Service')) {
+        if (method_exists($this, $method = 'synchronize'.strtr($id, array('_' => '', '.' => '_')).'Service')) {
             $this->$method();
         }
 
@@ -233,10 +240,9 @@ public function has($id)
     {
         $id = strtolower($id);
 
-        return isset($this->services[$id])
-            || array_key_exists($id, $this->services)
-            || isset($this->aliases[$id])
-            || method_exists($this, 'get'.strtr($id, array('_' => '', '.' => '_', '\\' => '_')).'Service')
+        return array_key_exists($id, $this->services)
+            || array_key_exists($id, $this->aliases)
+            || method_exists($this, 'get'.strtr($id, array('_' => '', '.' => '_')).'Service')
         ;
     }
 
@@ -261,21 +267,16 @@ public function has($id)
      */
     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.
-        foreach (array(false, true) as $strtolower) {
-            if ($strtolower) {
-                $id = strtolower($id);
-            }
-            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];
-            }
+        $id = strtolower($id);
+
+        // resolve aliases
+        if (isset($this->aliases[$id])) {
+            $id = $this->aliases[$id];
+        }
+
+        // re-use shared service instance if it exists
+        if (array_key_exists($id, $this->services)) {
+            return $this->services[$id];
         }
 
         if (isset($this->loading[$id])) {
@@ -284,7 +285,7 @@ public function get($id, $invalidBehavior = self::EXCEPTION_ON_INVALID_REFERENCE
 
         if (isset($this->methodMap[$id])) {
             $method = $this->methodMap[$id];
-        } elseif (method_exists($this, $method = 'get'.strtr($id, array('_' => '', '.' => '_', '\\' => '_')).'Service')) {
+        } elseif (method_exists($this, $method = 'get'.strtr($id, array('_' => '', '.' => '_')).'Service')) {
             // $method is set to the right value, proceed
         } else {
             if (self::EXCEPTION_ON_INVALID_REFERENCE === $invalidBehavior) {
@@ -338,9 +339,7 @@ public function get($id, $invalidBehavior = self::EXCEPTION_ON_INVALID_REFERENCE
      */
     public function initialized($id)
     {
-        $id = strtolower($id);
-
-        return isset($this->services[$id]) || array_key_exists($id, $this->services);
+        return array_key_exists(strtolower($id), $this->services);
     }
 
     /**
@@ -525,7 +524,7 @@ public function isScopeActive($name)
      */
     public static function camelize($id)
     {
-        return strtr(ucwords(strtr($id, array('_' => ' ', '.' => '_ ', '\\' => '_ '))), array(' ' => ''));
+        return strtr(ucwords(strtr($id, array('_' => ' ', '.' => '_ '))), array(' ' => ''));
     }
 
     /**
diff --git a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/ContainerAwareTrait.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/ContainerAwareTrait.php
deleted file mode 100644
index 57280aad60da278010f11d51282b6d45eb133a3d..0000000000000000000000000000000000000000
--- a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/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/Symfony/Component/DependencyInjection/ContainerBuilder.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/ContainerBuilder.php
index 0e07ec6b159b12285ca9e77abc4e47bbd13e5639..733d016d660857cbca327776de15bb95adec3c24 100644
--- a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/ContainerBuilder.php
+++ b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/ContainerBuilder.php
@@ -24,7 +24,6 @@
 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;
 
 /**
  * ContainerBuilder is a DI container that provides an API to easily describe services.
@@ -79,11 +78,6 @@ class ContainerBuilder extends Container implements TaggedContainerInterface
      */
     private $proxyInstantiator;
 
-    /**
-     * @var ExpressionLanguage|null
-     */
-    private $expressionLanguage;
-
     /**
      * Sets the track resources flag.
      *
@@ -311,7 +305,11 @@ public function loadFromExtension($extension, array $values = array())
      */
     public function addCompilerPass(CompilerPassInterface $pass, $type = PassConfig::TYPE_BEFORE_OPTIMIZATION)
     {
-        $this->getCompiler()->addPass($pass, $type);
+        if (null === $this->compiler) {
+            $this->compiler = new Compiler();
+        }
+
+        $this->compiler->addPass($pass, $type);
 
         $this->addObjectResource($pass);
 
@@ -327,7 +325,11 @@ public function addCompilerPass(CompilerPassInterface $pass, $type = PassConfig:
      */
     public function getCompilerPassConfig()
     {
-        return $this->getCompiler()->getPassConfig();
+        if (null === $this->compiler) {
+            $this->compiler = new Compiler();
+        }
+
+        return $this->compiler->getPassConfig();
     }
 
     /**
@@ -608,17 +610,15 @@ public function prependExtensionConfig($name, array $config)
      */
     public function compile()
     {
-        $compiler = $this->getCompiler();
+        if (null === $this->compiler) {
+            $this->compiler = new Compiler();
+        }
 
         if ($this->trackResources) {
-            foreach ($compiler->getPassConfig()->getPasses() as $pass) {
+            foreach ($this->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));
@@ -626,6 +626,8 @@ public function compile()
             }
         }
 
+        $this->compiler->compile($this);
+
         $this->extensionConfigs = array();
 
         parent::compile();
@@ -991,12 +993,11 @@ public function createService(Definition $definition, $id, $tryProxy = true)
     }
 
     /**
-     * Replaces service references by the real service instance and evaluates expressions.
+     * Replaces service references by the real service instance.
      *
      * @param mixed $value A value
      *
-     * @return mixed The same value with all service references replaced by
-     *               the real service instances and all expressions evaluated
+     * @return mixed The same value with all service references replaced by the real service instances
      */
     public function resolveServices($value)
     {
@@ -1008,8 +1009,6 @@ public function resolveServices($value)
             $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;
@@ -1160,16 +1159,4 @@ private function shareService(Definition $definition, $service, $id)
             }
         }
     }
-
-    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;
-    }
 }
diff --git a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Definition.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Definition.php
index 428fee27c3a21d1bb781be40b25a26d85bf0dfd6..1168444389ef1b3edd266201b34ffedb72f52087 100644
--- a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Definition.php
+++ b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Definition.php
@@ -28,24 +28,24 @@ class Definition
     private $factoryClass;
     private $factoryMethod;
     private $factoryService;
-    private $scope = ContainerInterface::SCOPE_CONTAINER;
-    private $properties = array();
-    private $calls = array();
+    private $scope;
+    private $properties;
+    private $calls;
     private $configurator;
-    private $tags = array();
-    private $public = true;
-    private $synthetic = false;
-    private $abstract = false;
-    private $synchronized = false;
-    private $lazy = false;
+    private $tags;
+    private $public;
+    private $synthetic;
+    private $abstract;
+    private $synchronized;
+    private $lazy;
 
     protected $arguments;
 
     /**
      * Constructor.
      *
-     * @param string|null $class     The service class
-     * @param array       $arguments An array of arguments to pass to the service constructor
+     * @param string $class     The service class
+     * @param array  $arguments An array of arguments to pass to the service constructor
      *
      * @api
      */
@@ -53,6 +53,15 @@ public function __construct($class = null, array $arguments = array())
     {
         $this->class = $class;
         $this->arguments = $arguments;
+        $this->calls = array();
+        $this->scope = ContainerInterface::SCOPE_CONTAINER;
+        $this->tags = array();
+        $this->public = true;
+        $this->synthetic = false;
+        $this->synchronized = false;
+        $this->lazy = false;
+        $this->abstract = false;
+        $this->properties = array();
     }
 
     /**
@@ -75,7 +84,7 @@ public function setFactoryClass($factoryClass)
     /**
      * Gets the factory class.
      *
-     * @return string|null The factory class name
+     * @return string The factory class name
      *
      * @api
      */
@@ -103,7 +112,7 @@ public function setFactoryMethod($factoryMethod)
     /**
      * Gets the factory method.
      *
-     * @return string|null The factory method name
+     * @return string The factory method name
      *
      * @api
      */
@@ -131,7 +140,7 @@ public function setFactoryService($factoryService)
     /**
      * Gets the factory service id.
      *
-     * @return string|null The factory service id
+     * @return string The factory service id
      *
      * @api
      */
@@ -159,7 +168,7 @@ public function setClass($class)
     /**
      * Gets the service class.
      *
-     * @return string|null The service class
+     * @return string The service class
      *
      * @api
      */
@@ -499,7 +508,7 @@ public function setFile($file)
     /**
      * Gets the file to require before creating the service.
      *
-     * @return string|null The full pathname to include
+     * @return string The full pathname to include
      *
      * @api
      */
@@ -695,7 +704,7 @@ public function setConfigurator($callable)
     /**
      * Gets the configurator to call after the service is fully initialized.
      *
-     * @return callable|null The PHP callable to call
+     * @return callable The PHP callable to call
      *
      * @api
      */
diff --git a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/DefinitionDecorator.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/DefinitionDecorator.php
index b7eed8c564d4d0d582c4c90cc24ec6cad9becdae..1f72b8f16b2e8d277770e5658a389cb67e255cdc 100644
--- a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/DefinitionDecorator.php
+++ b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/DefinitionDecorator.php
@@ -24,7 +24,7 @@
 class DefinitionDecorator extends Definition
 {
     private $parent;
-    private $changes = array();
+    private $changes;
 
     /**
      * Constructor.
@@ -38,6 +38,7 @@ public function __construct($parent)
         parent::__construct();
 
         $this->parent = $parent;
+        $this->changes = array();
     }
 
     /**
diff --git a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Dumper/PhpDumper.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Dumper/PhpDumper.php
index 7be1fe2ece19304c63faefd3c2f7d971d68fa429..8888d3f3f433aa26b5e0609edb00693fae7b6645 100644
--- a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Dumper/PhpDumper.php
+++ b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Dumper/PhpDumper.php
@@ -23,8 +23,6 @@
 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;
 
 /**
  * PhpDumper dumps a service container as a PHP class.
@@ -53,7 +51,6 @@ class PhpDumper extends Dumper
     private $referenceVariables;
     private $variableCount;
     private $reservedVariables = array('instance', 'class');
-    private $expressionLanguage;
 
     /**
      * @var \Symfony\Component\DependencyInjection\LazyProxy\PhpDumper\DumperInterface
@@ -89,7 +86,6 @@ public function setProxyDumper(ProxyDumper $proxyDumper)
      *
      *  * class:      The class name
      *  * base_class: The base class name
-     *  * namespace:  The class namespace
      *
      * @param array $options An array of options
      *
@@ -102,10 +98,9 @@ public function dump(array $options = array())
         $options = array_merge(array(
             'class'      => 'ProjectServiceContainer',
             'base_class' => 'Container',
-            'namespace' => '',
         ), $options);
 
-        $code = $this->startClass($options['class'], $options['base_class'], $options['namespace']);
+        $code = $this->startClass($options['class'], $options['base_class']);
 
         if ($this->container->isFrozen()) {
             $code .= $this->addFrozenConstructor();
@@ -193,7 +188,7 @@ private function addServiceLocalTempVariables($cId, $definition)
      */
     private function addProxyClasses()
     {
-        /* @var $definitions Definition[] */
+        /* @var $proxyDefinitions Definition[] */
         $definitions = array_filter(
             $this->container->getDefinitions(),
             array($this->getProxyDumper(), 'isProxyCandidate')
@@ -446,12 +441,6 @@ private function addServiceInlinedDefinitionsSetup($id, $definition)
                 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);
@@ -711,24 +700,24 @@ private function addNewInstance($id, Definition $definition, $return, $instantia
      *
      * @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)
+    private function startClass($class, $baseClass)
     {
         $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;
+use Symfony\Component\DependencyInjection\Reference;
+use Symfony\Component\DependencyInjection\Parameter;
 $bagClass
 
 /**
@@ -980,8 +969,6 @@ private function exportParameters($parameters, $path = '', $indent = 12)
                 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 = var_export($value, true);
             }
@@ -1118,7 +1105,7 @@ private function getDefinitionsFromArguments(array $arguments)
      *
      * @return Boolean
      */
-    private function hasReference($id, array $arguments, $deep = false, array $visited = array())
+    private function hasReference($id, array $arguments, $deep = false, $visited = array())
     {
         foreach ($arguments as $argument) {
             if (is_array($argument)) {
@@ -1126,15 +1113,14 @@ private function hasReference($id, array $arguments, $deep = false, array $visit
                     return true;
                 }
             } elseif ($argument instanceof Reference) {
-                $argumentId = (string) $argument;
-                if ($id === $argumentId) {
+                if ($id === (string) $argument) {
                     return true;
                 }
 
-                if ($deep && !isset($visited[$argumentId])) {
-                    $visited[$argumentId] = true;
+                if ($deep && !isset($visited[(string) $argument])) {
+                    $visited[(string) $argument] = true;
 
-                    $service = $this->container->getDefinition($argumentId);
+                    $service = $this->container->getDefinition((string) $argument);
                     $arguments = array_merge($service->getMethodCalls(), $service->getArguments(), $service->getProperties());
 
                     if ($this->hasReference($id, $arguments, $deep, $visited)) {
@@ -1206,8 +1192,6 @@ private function dumpValue($value, $interpolate = true)
             }
 
             return $this->getServiceCall((string) $value, $value);
-        } elseif ($value instanceof Expression) {
-            return $this->getExpressionLanguage()->compile((string) $value, array('container'));
         } elseif ($value instanceof Parameter) {
             return $this->dumpParameter($value);
         } elseif (true === $interpolate && is_string($value)) {
@@ -1330,16 +1314,4 @@ private function getNextVariableName()
             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.');
-            }
-            $this->expressionLanguage = new ExpressionLanguage();
-        }
-
-        return $this->expressionLanguage;
-    }
 }
diff --git a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Dumper/XmlDumper.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Dumper/XmlDumper.php
index 31bec31b22456e8c84a638abe0d90602343dc769..a311af348e348fe8d726186bd8ceb09f546cfd62 100644
--- a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Dumper/XmlDumper.php
+++ b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Dumper/XmlDumper.php
@@ -17,7 +17,6 @@
 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.
@@ -260,10 +259,6 @@ private function convertParameters($parameters, $type, \DOMElement $parent, $key
             } 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');
diff --git a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Dumper/YamlDumper.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Dumper/YamlDumper.php
index b4748545dc2a7b446583f58b186ea51f826e0248..807e656283b556ce27672591125fc5c6cddde7e7 100644
--- a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Dumper/YamlDumper.php
+++ b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Dumper/YamlDumper.php
@@ -19,7 +19,6 @@
 use Symfony\Component\DependencyInjection\Reference;
 use Symfony\Component\DependencyInjection\Exception\RuntimeException;
 use Symfony\Component\DependencyInjection\ContainerBuilder;
-use Symfony\Component\ExpressionLanguage\Expression;
 
 /**
  * YamlDumper dumps a service container as a YAML string.
@@ -75,10 +74,6 @@ private function addService($id, $definition)
             $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) {
@@ -236,8 +231,6 @@ private function dumpValue($value)
             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.');
         }
@@ -274,11 +267,6 @@ private function getParameterCall($id)
         return sprintf('%%%s%%', $id);
     }
 
-    private function getExpressionCall($expression)
-    {
-        return sprintf('@=%s', $expression);
-    }
-
     /**
      * Prepares parameters.
      *
diff --git a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/ExpressionLanguage.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/ExpressionLanguage.php
deleted file mode 100644
index 2e7edcd32f62fcf4e58a06b689591d38f9c49a96..0000000000000000000000000000000000000000
--- a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/ExpressionLanguage.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;
-
-use Symfony\Component\ExpressionLanguage\ExpressionLanguage as BaseExpressionLanguage;
-
-/**
- * Adds some function to the default ExpressionLanguage.
- *
- * To get a service, use service('request').
- * To get a parameter, use parameter('kernel.debug').
- *
- * @author Fabien Potencier <fabien@symfony.com>
- */
-class ExpressionLanguage extends BaseExpressionLanguage
-{
-    protected function registerFunctions()
-    {
-        parent::registerFunctions();
-
-        $this->register('service', function ($arg) {
-            return sprintf('$this->get(%s)', $arg);
-        }, function (array $variables, $value) {
-            return $variables['container']->get($value);
-        });
-
-        $this->register('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/Symfony/Component/DependencyInjection/Extension/ExtensionInterface.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Extension/ExtensionInterface.php
index 424f02088e311c5437824e239211dfb1e9c07bff..fc015e1459b47ace7575d98a0cddd3e709af0905 100644
--- a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Extension/ExtensionInterface.php
+++ b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Extension/ExtensionInterface.php
@@ -28,7 +28,7 @@ interface ExtensionInterface
      * @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
+     * @throws InvalidArgumentException When provided tag is not defined in this extension
      *
      * @api
      */
diff --git a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/LazyProxy/PhpDumper/DumperInterface.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/LazyProxy/PhpDumper/DumperInterface.php
index 878d965b1c39de6216cfe3fa970d98cafa54655d..475d26f3a1c64d613a2c026a74f32c14e8fedc78 100644
--- a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/LazyProxy/PhpDumper/DumperInterface.php
+++ b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/LazyProxy/PhpDumper/DumperInterface.php
@@ -14,7 +14,7 @@
 use Symfony\Component\DependencyInjection\Definition;
 
 /**
- * Lazy proxy dumper capable of generating the instantiation logic PHP code for proxied services.
+ * Lazy proxy dumper capable of generating the instantiation logic php code for proxied services.
  *
  * @author Marco Pivetta <ocramius@gmail.com>
  */
diff --git a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Loader/PhpFileLoader.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Loader/PhpFileLoader.php
index e866a29f7067a7958ac9e75a7878f97eca68632f..f2bf441d25fb2e5c28a13b70f070fc3cf214fc23 100644
--- a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Loader/PhpFileLoader.php
+++ b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Loader/PhpFileLoader.php
@@ -17,7 +17,7 @@
  * 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.
+ * used form the file to change the container.
  *
  * @author Fabien Potencier <fabien@symfony.com>
  */
diff --git a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Loader/XmlFileLoader.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Loader/XmlFileLoader.php
index 9b2d46d28ef276e780a81e846351af6d07d583b7..9f25ab7683cd2789ba02f495e0cf58dfc6772e71 100644
--- a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Loader/XmlFileLoader.php
+++ b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Loader/XmlFileLoader.php
@@ -187,10 +187,6 @@ private function parseDefinition($id, $service, $file)
                     continue;
                 }
 
-                if (false !== strpos($name, '-') && false === strpos($name, '_') && !array_key_exists($normalizedName = str_replace('-', '_', $name), $parameters)) {
-                    $parameters[$normalizedName] = SimpleXMLElement::phpize($value);
-                }
-                // keep not normalized key for BC too
                 $parameters[$name] = SimpleXMLElement::phpize($value);
             }
 
@@ -237,11 +233,10 @@ private function processAnonymousServices(SimpleXMLElement $xml, $file)
         if (false !== $nodes = $xml->xpath('//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['id'] = $id;
+                $node['id'] = sprintf('%s_%d', md5($file), ++$count);
 
-                $definitions[$id] = array($node->service, $file, false);
-                $node->service['id'] = $id;
+                $definitions[(string) $node['id']] = array($node->service, $file, false);
+                $node->service['id'] = (string) $node['id'];
             }
         }
 
@@ -249,11 +244,10 @@ private function processAnonymousServices(SimpleXMLElement $xml, $file)
         if (false !== $nodes = $xml->xpath('//container:services/container:service[not(@id)]')) {
             foreach ($nodes as $node) {
                 // give it a unique name
-                $id = sprintf('%s_%d', hash('sha256', $file), ++$count);
-                $node['id'] = $id;
+                $node['id'] = sprintf('%s_%d', md5($file), ++$count);
 
-                $definitions[$id] = array($node, $file, true);
-                $node->service['id'] = $id;
+                $definitions[(string) $node['id']] = array($node, $file, true);
+                $node->service['id'] = (string) $node['id'];
             }
         }
 
diff --git a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Loader/YamlFileLoader.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Loader/YamlFileLoader.php
index e081be5c2abd732bdf64e7765530c6069213d9cc..ce135fa81f9292a45c5b168259b17eefc6083687 100644
--- a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Loader/YamlFileLoader.php
+++ b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Loader/YamlFileLoader.php
@@ -19,7 +19,6 @@
 use Symfony\Component\DependencyInjection\Exception\InvalidArgumentException;
 use Symfony\Component\Config\Resource\FileResource;
 use Symfony\Component\Yaml\Parser as YamlParser;
-use Symfony\Component\ExpressionLanguage\Expression;
 
 /**
  * YamlFileLoader loads YAML files service definitions.
@@ -225,8 +224,8 @@ private function parseDefinition($id, $service, $file)
                 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.', $id, $name, $attribute, $file));
+                    if (!is_scalar($value)) {
+                        throw new InvalidArgumentException(sprintf('A "tags" attribute must be of a scalar-type for service "%s", tag "%s" in %s.', $id, $name, $file));
                     }
                 }
 
@@ -312,8 +311,6 @@ 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);
diff --git a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Loader/schema/dic/services/services-1.0.xsd b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Loader/schema/dic/services/services-1.0.xsd
index f7b578767bb5ad8abd8eca329ba2d1f74002fd46..f1c2003c62258909fdcfc7ddf848f95ac252e622 100644
--- a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Loader/schema/dic/services/services-1.0.xsd
+++ b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Loader/schema/dic/services/services-1.0.xsd
@@ -121,12 +121,10 @@
 
   <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" />
@@ -166,7 +164,6 @@
     <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>
diff --git a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/ParameterBag/ParameterBag.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/ParameterBag/ParameterBag.php
index dabd1c6215673ca199709ae0c4269e7768d4b0aa..494d231e9f29fb3079680ce149a6e2db82a62d5a 100644
--- a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/ParameterBag/ParameterBag.php
+++ b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/ParameterBag/ParameterBag.php
@@ -24,8 +24,8 @@
  */
 class ParameterBag implements ParameterBagInterface
 {
-    protected $parameters = array();
-    protected $resolved = false;
+    protected $parameters;
+    protected $resolved;
 
     /**
      * Constructor.
@@ -36,7 +36,9 @@ class ParameterBag implements ParameterBagInterface
      */
     public function __construct(array $parameters = array())
     {
+        $this->parameters = array();
         $this->add($parameters);
+        $this->resolved = false;
     }
 
     /**
diff --git a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/README.md b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/README.md
index 29d1cd0aa0c5d73773eb879f890cc16d3ab3eded..ab67595240401c8d9f26ae85dd545445c9acf9bb 100644
--- a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/README.md
+++ b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/README.md
@@ -69,5 +69,5 @@ Resources
 You can run the unit tests with the following command:
 
     $ cd path/to/Symfony/Component/DependencyInjection/
-    $ composer.phar install
+    $ composer.phar install --dev
     $ phpunit
diff --git a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Reference.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Reference.php
index 725747055c1dfa8b8b04f31513e9a22b46a23dc9..1517da29885a7a1c503c89f5b28dfdc2b75189f0 100644
--- a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Reference.php
+++ b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Reference.php
@@ -47,7 +47,7 @@ public function __construct($id, $invalidBehavior = ContainerInterface::EXCEPTIO
      */
     public function __toString()
     {
-        return $this->id;
+        return (string) $this->id;
     }
 
     /**
diff --git a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/SimpleXMLElement.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/SimpleXMLElement.php
index db855f66d1e89e19ea7d09c929df47296f5c70b7..cc5e31198715158cc8d4c79afb33a9a9906e1333 100644
--- a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/SimpleXMLElement.php
+++ b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/SimpleXMLElement.php
@@ -12,7 +12,6 @@
 namespace Symfony\Component\DependencyInjection;
 
 use Symfony\Component\Config\Util\XmlUtils;
-use Symfony\Component\ExpressionLanguage\Expression;
 
 /**
  * SimpleXMLElement class.
@@ -22,7 +21,7 @@
 class SimpleXMLElement extends \SimpleXMLElement
 {
     /**
-     * Converts an attribute as a PHP type.
+     * Converts an attribute as a php type.
      *
      * @param string $name
      *
@@ -34,7 +33,7 @@ public function getAttributeAsPhp($name)
     }
 
     /**
-     * Returns arguments as valid PHP types.
+     * Returns arguments as valid php types.
      *
      * @param string  $name
      * @param Boolean $lowercase
@@ -78,9 +77,6 @@ public function getArgumentsAsPhp($name, $lowercase = 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;
@@ -99,7 +95,7 @@ public function getArgumentsAsPhp($name, $lowercase = true)
     }
 
     /**
-     * Converts an xml value to a PHP type.
+     * Converts an xml value to a php type.
      *
      * @param mixed $value
      *
diff --git a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Compiler/CheckDefinitionValidityPassTest.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Compiler/CheckDefinitionValidityPassTest.php
index b5e49842e7af4e9df575759ff9dd5452ca78eb4e..06845a2b86d3262236d9a6fd1627a0714a352504 100644
--- a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Compiler/CheckDefinitionValidityPassTest.php
+++ b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Compiler/CheckDefinitionValidityPassTest.php
@@ -18,7 +18,7 @@
 class CheckDefinitionValidityPassTest extends \PHPUnit_Framework_TestCase
 {
     /**
-     * @expectedException \Symfony\Component\DependencyInjection\Exception\RuntimeException
+     * @expectedException \RuntimeException
      */
     public function testProcessDetectsSyntheticNonPublicDefinitions()
     {
@@ -29,7 +29,7 @@ public function testProcessDetectsSyntheticNonPublicDefinitions()
     }
 
     /**
-     * @expectedException \Symfony\Component\DependencyInjection\Exception\RuntimeException
+     * @expectedException \RuntimeException
      */
     public function testProcessDetectsSyntheticPrototypeDefinitions()
     {
@@ -40,7 +40,7 @@ public function testProcessDetectsSyntheticPrototypeDefinitions()
     }
 
     /**
-     * @expectedException \Symfony\Component\DependencyInjection\Exception\RuntimeException
+     * @expectedException \RuntimeException
      */
     public function testProcessDetectsNonSyntheticNonAbstractDefinitionWithoutClass()
     {
@@ -61,28 +61,6 @@ public function testProcess()
         $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();
diff --git a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Compiler/InlineServiceDefinitionsPassTest.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Compiler/InlineServiceDefinitionsPassTest.php
index 6458a335d8911eacf17faaec798503df5b4042ae..f22f0da9f877e62e3e0c6d186f8fe47159f3b439 100644
--- a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Compiler/InlineServiceDefinitionsPassTest.php
+++ b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Compiler/InlineServiceDefinitionsPassTest.php
@@ -12,8 +12,10 @@
 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\Compiler;
 use Symfony\Component\DependencyInjection\Compiler\RepeatedPass;
 use Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass;
 use Symfony\Component\DependencyInjection\Reference;
@@ -124,41 +126,6 @@ public function testProcessInlinesOnlyIfSameScope()
         $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()));
diff --git a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/ContainerBuilderTest.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/ContainerBuilderTest.php
index dd08c97c114ecc85440d8dba490e36c2b5bfef7b..a5e7531b68af082cc5fc591c7ac830f89b6a88a8 100644
--- a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/ContainerBuilderTest.php
+++ b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/ContainerBuilderTest.php
@@ -21,12 +21,10 @@
 use Symfony\Component\DependencyInjection\ContainerInterface;
 use Symfony\Component\DependencyInjection\Definition;
 use Symfony\Component\DependencyInjection\Exception\RuntimeException;
-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
 {
@@ -379,15 +377,6 @@ public function testCreateSyntheticService()
         $builder->get('foo');
     }
 
-    public function testCreateServiceWithExpression()
-    {
-        $builder = new ContainerBuilder();
-        $builder->setParameter('bar', 'bar');
-        $builder->register('bar', 'BarClass');
-        $builder->register('foo', '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
      */
@@ -397,7 +386,6 @@ public function testResolveServices()
         $builder->register('foo', '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');
     }
 
     /**
@@ -415,6 +403,7 @@ public function testMerge()
         $container->setResourceTracking(false);
         $config = new ContainerBuilder(new ParameterBag(array('foo' => '%bar%')));
         $container->merge($config);
+////// FIXME
         $container->compile();
         $this->assertEquals(array('bar' => 'foo', 'foo' => 'foo'), $container->getParameterBag()->all(), '->merge() evaluates the values of the parameters towards already defined ones');
 
@@ -422,6 +411,7 @@ public function testMerge()
         $container->setResourceTracking(false);
         $config = new ContainerBuilder(new ParameterBag(array('foo' => '%bar%', 'baz' => '%foo%')));
         $container->merge($config);
+////// FIXME
         $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');
 
@@ -449,7 +439,7 @@ public function testMerge()
 
     /**
      * @covers Symfony\Component\DependencyInjection\ContainerBuilder::merge
-     * @expectedException \LogicException
+     * @expectedException LogicException
      */
     public function testMergeLogicException()
     {
@@ -497,6 +487,10 @@ public function testFindDefinition()
      */
     public function testAddObjectResource()
     {
+        if (!class_exists('Symfony\Component\Config\Resource\FileResource')) {
+            $this->markTestSkipped('The "Config" component is not available');
+        }
+
         $container = new ContainerBuilder();
 
         $container->setResourceTracking(false);
@@ -523,6 +517,10 @@ public function testAddObjectResource()
      */
     public function testAddClassResource()
     {
+        if (!class_exists('Symfony\Component\Config\Resource\FileResource')) {
+            $this->markTestSkipped('The "Config" component is not available');
+        }
+
         $container = new ContainerBuilder();
 
         $container->setResourceTracking(false);
@@ -549,6 +547,10 @@ public function testAddClassResource()
      */
     public function testCompilesClassDefinitionsOfLazyServices()
     {
+        if (!class_exists('Symfony\Component\Config\Resource\FileResource')) {
+            $this->markTestSkipped('The "Config" component is not available');
+        }
+
         $container = new ContainerBuilder();
 
         $this->assertEmpty($container->getResources(), 'No resources get registered without resource tracking');
@@ -575,6 +577,10 @@ function (ResourceInterface $resource) use ($classesPath) {
      */
     public function testResources()
     {
+        if (!class_exists('Symfony\Component\Config\Resource\FileResource')) {
+            $this->markTestSkipped('The "Config" component is not available');
+        }
+
         $container = new ContainerBuilder();
         $container->addResource($a = new FileResource(__DIR__.'/Fixtures/xml/services1.xml'));
         $container->addResource($b = new FileResource(__DIR__.'/Fixtures/xml/services2.xml'));
@@ -649,7 +655,7 @@ public function testPrivateServiceUser()
     }
 
     /**
-     * @expectedException \BadMethodCallException
+     * @expectedException BadMethodCallException
      */
     public function testThrowsExceptionWhenSetServiceOnAFrozenContainer()
     {
@@ -661,10 +667,14 @@ public function testThrowsExceptionWhenSetServiceOnAFrozenContainer()
     }
 
     /**
-     * @expectedException \BadMethodCallException
+     * @expectedException BadMethodCallException
      */
     public function testThrowsExceptionWhenAddServiceOnAFrozenContainer()
     {
+        if (!class_exists('Symfony\Component\Config\Resource\FileResource')) {
+            $this->markTestSkipped('The "Config" component is not available');
+        }
+
         $container = new ContainerBuilder();
         $container->compile();
         $container->set('a', new \stdClass());
@@ -672,6 +682,10 @@ public function testThrowsExceptionWhenAddServiceOnAFrozenContainer()
 
     public function testNoExceptionWhenSetSyntheticServiceOnAFrozenContainer()
     {
+        if (!class_exists('Symfony\Component\Config\Resource\FileResource')) {
+            $this->markTestSkipped('The "Config" component is not available');
+        }
+
         $container = new ContainerBuilder();
         $def = new Definition('stdClass');
         $def->setSynthetic(true);
@@ -728,7 +742,7 @@ public function testSynchronizedServiceWithScopes()
     }
 
     /**
-     * @expectedException \BadMethodCallException
+     * @expectedException BadMethodCallException
      */
     public function testThrowsExceptionWhenSetDefinitionOnAFrozenContainer()
     {
@@ -759,39 +773,6 @@ public function testExtensionConfig()
         $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->assertEquals(true, $classInList);
-    }
 }
 
 class FooClass {}
diff --git a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/ContainerTest.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/ContainerTest.php
index e145c7a10c1aa5b983f21625a472291f77c19a72..6c49982bea6c0510240c3fd5779f284cafd8e658 100644
--- a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/ContainerTest.php
+++ b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/ContainerTest.php
@@ -51,7 +51,6 @@ public function dataForTestCamelize()
             array('.foo', '_Foo'),
             array('foo_', 'Foo'),
             array('foo.', 'Foo_'),
-            array('foo\bar', 'Foo_Bar'),
         );
     }
 
@@ -188,7 +187,6 @@ public function testGet()
         $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()');
@@ -260,7 +258,6 @@ public function testHas()
         $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');
     }
 
     /**
diff --git a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/CrossCheckTest.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/CrossCheckTest.php
index 692d73dbcdc2e0b627a8481cd74b5ba40e932522..3464a6af3c66eb8fa24e3f0d768e9fb6af277a7a 100644
--- a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/CrossCheckTest.php
+++ b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/CrossCheckTest.php
@@ -18,6 +18,13 @@ class CrossCheckTest extends \PHPUnit_Framework_TestCase
 {
     protected static $fixturesPath;
 
+    protected function setUp()
+    {
+        if (!class_exists('Symfony\Component\Config\Loader\Loader')) {
+            $this->markTestSkipped('The "Config" component is not available');
+        }
+    }
+
     public static function setUpBeforeClass()
     {
         self::$fixturesPath = __DIR__.'/Fixtures/';
diff --git a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/DefinitionDecoratorTest.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/DefinitionDecoratorTest.php
index a266e9b31a4e07bfad204ecd2b87486d219edbc2..8be8b64230ef2166e2df9ffeed70c55dcc93de82 100644
--- a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/DefinitionDecoratorTest.php
+++ b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/DefinitionDecoratorTest.php
@@ -81,7 +81,7 @@ public function testSetArgument()
     }
 
     /**
-     * @expectedException \InvalidArgumentException
+     * @expectedException InvalidArgumentException
      */
     public function testReplaceArgumentShouldRequireIntegerIndex()
     {
@@ -106,7 +106,7 @@ public function testReplaceArgument()
     }
 
     /**
-     * @expectedException \OutOfBoundsException
+     * @expectedException OutOfBoundsException
      */
     public function testGetArgumentShouldCheckBounds()
     {
diff --git a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/DefinitionTest.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/DefinitionTest.php
index 4ffd7c079267a81178db7bfa5c8cc50e4d7ee7ca..d41c6a8e2b2aecd5cb624dedb29a2d339a200966 100644
--- a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/DefinitionTest.php
+++ b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/DefinitionTest.php
@@ -275,7 +275,7 @@ public function testSetArgument()
     }
 
     /**
-     * @expectedException \OutOfBoundsException
+     * @expectedException OutOfBoundsException
      */
     public function testGetArgumentShouldCheckBounds()
     {
@@ -286,7 +286,7 @@ public function testGetArgumentShouldCheckBounds()
     }
 
     /**
-     * @expectedException \OutOfBoundsException
+     * @expectedException OutOfBoundsException
      */
     public function testReplaceArgumentShouldCheckBounds()
     {
diff --git a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Dumper/PhpDumperTest.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Dumper/PhpDumperTest.php
index 98b05d2501ee06522e751f26478042dd981e342e..8bd31b076c398094a75ba910ac3c1432b3c94d5d 100644
--- a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Dumper/PhpDumperTest.php
+++ b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Dumper/PhpDumperTest.php
@@ -31,7 +31,7 @@ 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');
+        $this->assertStringEqualsFile(self::$fixturesPath.'/php/services1-1.php', $dumper->dump(array('class' => 'Container', 'base_class' => 'AbstractContainer')), '->dump() takes a class and a base_class options');
 
         $container = new ContainerBuilder();
         new PhpDumper($container);
@@ -81,7 +81,7 @@ public function testDumpOptimizationString()
     }
 
     /**
-     * @expectedException \InvalidArgumentException
+     * @expectedException InvalidArgumentException
      */
     public function testExportParameters()
     {
@@ -121,7 +121,7 @@ public function testAddService()
     }
 
     /**
-     * @expectedException \InvalidArgumentException
+     * @expectedException InvalidArgumentException
      * @expectedExceptionMessage Service id "bar$" cannot be converted to a valid PHP method name.
      */
     public function testAddServiceInvalidServiceId()
@@ -181,19 +181,4 @@ public function testOverrideServiceWhenUsingADumpedContainerAndServiceIsUsedFrom
 
         $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/Symfony/Component/DependencyInjection/Tests/Dumper/YamlDumperTest.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Dumper/YamlDumperTest.php
index f9747a7c2fae963dd3a8a780046fbda018359081..ca7aec054e48174ff6eecbc6b8b5cd8be628bfc3 100644
--- a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Dumper/YamlDumperTest.php
+++ b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Dumper/YamlDumperTest.php
@@ -18,6 +18,13 @@ class YamlDumperTest extends \PHPUnit_Framework_TestCase
 {
     protected static $fixturesPath;
 
+    protected function setUp()
+    {
+        if (!class_exists('Symfony\Component\Yaml\Yaml')) {
+            $this->markTestSkipped('The "Yaml" component is not available');
+        }
+    }
+
     public static function setUpBeforeClass()
     {
         self::$fixturesPath = realpath(__DIR__.'/../Fixtures/');
diff --git a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/containers/container9.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/containers/container9.php
index 19882c0211c3e6cd3288d794e3600023e22791ac..6abe5e2a917f2a556405f69b36cf685a1f4105e7 100644
--- a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/containers/container9.php
+++ b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/containers/container9.php
@@ -6,7 +6,6 @@
 use Symfony\Component\DependencyInjection\ContainerBuilder;
 use Symfony\Component\DependencyInjection\Reference;
 use Symfony\Component\DependencyInjection\Parameter;
-use Symfony\Component\ExpressionLanguage\Expression;
 
 $container = new ContainerBuilder();
 $container->
@@ -16,7 +15,7 @@
     setFactoryClass('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%')))->
+    setProperties(array('foo' => 'bar', 'moo' => new Reference('foo.baz')))->
     addMethodCall('setBar', array(new Reference('bar')))->
     addMethodCall('initialize')->
     setConfigurator('sc_configure')
@@ -51,8 +50,7 @@
     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() ~ parameter("foo")')))
+    addMethodCall('setBar', array(new Reference('foobaz', ContainerInterface::IGNORE_ON_INVALID_REFERENCE)))
 ;
 $container->
     register('factory_service', 'Bar')->
diff --git a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/includes/classes.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/includes/classes.php
index 70c3d275b889835a94f8ba84403e7335862050c2..48e1c2c84e12dbe0643007ee0cdbf678f2e8b716 100644
--- a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/includes/classes.php
+++ b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/includes/classes.php
@@ -8,7 +8,6 @@ function sc_configure($instance)
 class BarClass
 {
     protected $baz;
-    public $foo = 'foo';
 
     public function setBaz(BazClass $baz)
     {
diff --git a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services1.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services1.php
index 084e7891af906945e5812934c04f748a66f04fe0..bc093efe7b7724cc3e080f1ad05e07d117f031a3 100644
--- a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services1.php
+++ b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services1.php
@@ -6,6 +6,8 @@
 use Symfony\Component\DependencyInjection\Exception\InvalidArgumentException;
 use Symfony\Component\DependencyInjection\Exception\LogicException;
 use Symfony\Component\DependencyInjection\Exception\RuntimeException;
+use Symfony\Component\DependencyInjection\Reference;
+use Symfony\Component\DependencyInjection\Parameter;
 use Symfony\Component\DependencyInjection\ParameterBag\ParameterBag;
 
 /**
diff --git a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services10.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services10.php
index d1f9c0d1664cb1dbfd0511ec6942d5ec7a28f954..8796df8ae53957c5db307a168e78aecdf3bc5d27 100644
--- a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services10.php
+++ b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services10.php
@@ -6,6 +6,8 @@
 use Symfony\Component\DependencyInjection\Exception\InvalidArgumentException;
 use Symfony\Component\DependencyInjection\Exception\LogicException;
 use Symfony\Component\DependencyInjection\Exception\RuntimeException;
+use Symfony\Component\DependencyInjection\Reference;
+use Symfony\Component\DependencyInjection\Parameter;
 use Symfony\Component\DependencyInjection\ParameterBag\FrozenParameterBag;
 
 /**
diff --git a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services8.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services8.php
index f922d2000c7ed11ac387f2690ee0698ef3ae3df4..77712e8297d171d1ac3b1d2a5a4880284c4ca0d2 100644
--- a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services8.php
+++ b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services8.php
@@ -6,6 +6,8 @@
 use Symfony\Component\DependencyInjection\Exception\InvalidArgumentException;
 use Symfony\Component\DependencyInjection\Exception\LogicException;
 use Symfony\Component\DependencyInjection\Exception\RuntimeException;
+use Symfony\Component\DependencyInjection\Reference;
+use Symfony\Component\DependencyInjection\Parameter;
 use Symfony\Component\DependencyInjection\ParameterBag\ParameterBag;
 
 /**
diff --git a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services9.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services9.php
index 3fafcf175735160a7862840b730ab625cb44fc68..9361a0e87c5ad585aba772b43bd067e416d27ebf 100644
--- a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services9.php
+++ b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services9.php
@@ -6,6 +6,8 @@
 use Symfony\Component\DependencyInjection\Exception\InvalidArgumentException;
 use Symfony\Component\DependencyInjection\Exception\LogicException;
 use Symfony\Component\DependencyInjection\Exception\RuntimeException;
+use Symfony\Component\DependencyInjection\Reference;
+use Symfony\Component\DependencyInjection\Parameter;
 use Symfony\Component\DependencyInjection\ParameterBag\ParameterBag;
 
 /**
@@ -123,7 +125,6 @@ protected function getFooService()
         $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;
@@ -197,7 +198,6 @@ protected function getMethodCall1Service()
         if ($this->has('foobaz')) {
             $instance->setBar($this->get('foobaz', ContainerInterface::NULL_ON_INVALID_REFERENCE));
         }
-        $instance->setBar(($this->get("foo")->foo() . $this->getParameter("foo")));
 
         return $instance;
     }
diff --git a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services9_compiled.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services9_compiled.php
index c4b8e47586f9218f6abd62873373e9a9ee7dc43a..b60cbff8e8bbe57679baaa7828c0cf5d1b7a7847 100644
--- a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services9_compiled.php
+++ b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services9_compiled.php
@@ -6,6 +6,8 @@
 use Symfony\Component\DependencyInjection\Exception\InvalidArgumentException;
 use Symfony\Component\DependencyInjection\Exception\LogicException;
 use Symfony\Component\DependencyInjection\Exception\RuntimeException;
+use Symfony\Component\DependencyInjection\Reference;
+use Symfony\Component\DependencyInjection\Parameter;
 use Symfony\Component\DependencyInjection\ParameterBag\FrozenParameterBag;
 
 /**
@@ -131,7 +133,6 @@ protected function getFooService()
         $instance->initialize();
         $instance->foo = 'bar';
         $instance->moo = $a;
-        $instance->qux = array('bar' => 'foo is bar', 'foobar' => 'bar');
         sc_configure($instance);
 
         return $instance;
@@ -202,7 +203,6 @@ protected function getMethodCall1Service()
 
         $instance->setBar($this->get('foo'));
         $instance->setBar(NULL);
-        $instance->setBar(($this->get("foo")->foo() . $this->getParameter("foo")));
 
         return $instance;
     }
diff --git a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/xml/services10.xml b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/xml/services10.xml
deleted file mode 100644
index a4da1bf74cf7852c64efd012d760ab1c3a17c1cf..0000000000000000000000000000000000000000
--- a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/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/Symfony/Component/DependencyInjection/Tests/Fixtures/xml/services2.xml b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/xml/services2.xml
index 43cf86c54751a340a79d85c8c3278a23800c4a66..6e8a6ce364dceb9bb4d176250473a12cd960c60e 100644
--- a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/xml/services2.xml
+++ b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/xml/services2.xml
@@ -27,6 +27,5 @@
     <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/Symfony/Component/DependencyInjection/Tests/Fixtures/xml/services6.xml b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/xml/services6.xml
index ffc038234fae3eb9af756f8b8279a062401f06e8..abd9fbc1529b14482bca8cd1a31286c8f75f7226 100644
--- a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/xml/services6.xml
+++ b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/xml/services6.xml
@@ -32,9 +32,6 @@
     </service>
     <service id="method_call1" class="FooClass">
       <call method="setBar" />
-      <call method="setBar">
-        <argument type="expression">service("foo").foo() ~ parameter("foo")</argument>
-      </call>
     </service>
     <service id="method_call2" class="FooClass">
       <call method="setBar">
diff --git a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/xml/services9.xml b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/xml/services9.xml
index e53b03ed70913f03d00da42c8cb585080bedb83b..cb3a1f69ded5b01eee87f44c95e7eb22282108a5 100644
--- a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/xml/services9.xml
+++ b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/xml/services9.xml
@@ -19,10 +19,6 @@
       <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>
@@ -53,9 +49,6 @@
       <call method="setBar">
         <argument type="service" id="foobaz" on-invalid="ignore"/>
       </call>
-      <call method="setBar">
-        <argument type="expression">service("foo").foo() ~ parameter("foo")</argument>
-      </call>
     </service>
     <service id="factory_service" class="Bar" factory-method="getInstance" factory-service="foo.baz"/>
     <service id="foo_with_inline" class="Foo">
diff --git a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/yaml/badtag3.yml b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/yaml/badtag3.yml
index 72ec4e8f0bc6f72b5145bf775e512fe69812b88a..8137fab63fc0a4f1f7667fe03adbfa00a715bc35 100644
--- a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/yaml/badtag3.yml
+++ b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/yaml/badtag3.yml
@@ -3,4 +3,4 @@ services:
         class:    FooClass
         tags:
           # tag-attribute is not a scalar
-          - { name: foo, bar: { foo: foo, bar: bar } }
+          - { name: foo, foo: { foo: foo, bar: bar } }
diff --git a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/yaml/services6.yml b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/yaml/services6.yml
index d3c793f2e31c3e1c9ac9c0f60f1f0f1c941c9259..7ba9453bdd6dd7b6108a7bf71225defd426eff2b 100644
--- a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/yaml/services6.yml
+++ b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/yaml/services6.yml
@@ -15,7 +15,6 @@ services:
         calls:
             - [ setBar, [] ]
             - [ setBar ]
-            - [ setBar, ['@=service("foo").foo() ~ parameter("foo")'] ]
     method_call2:
         class: FooClass
         calls:
diff --git a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/yaml/services9.yml b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/yaml/services9.yml
index 6de64ee4639667008b100b1236a3f23b8a0f39f0..6a4c3d5d97a033c664f964316fa933a3c46df457 100644
--- a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/yaml/services9.yml
+++ b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/yaml/services9.yml
@@ -12,7 +12,7 @@ services:
         factory_class: 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%' } }
+        properties: { foo: bar, moo: '@foo.baz' }
         calls:
             - [setBar, ['@bar']]
             - [initialize, {  }]
@@ -38,7 +38,6 @@ services:
             - [setBar, ['@?foo2']]
             - [setBar, ['@?foo3']]
             - [setBar, ['@?foobaz']]
-            - [setBar, ['@=service("foo").foo() ~ parameter("foo")']]
 
     factory_service:
         class: Bar
@@ -51,7 +50,6 @@ services:
 
     inlined:
         class: Bar
-        public: false
         properties: { pub: pub }
         calls:
             - [setBaz, ['@baz']]
diff --git a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Loader/ClosureLoaderTest.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Loader/ClosureLoaderTest.php
index 483e30b78b81877ed877d5df47aac9f204cba376..33594d640cf6bc590525246cc8d80f606616e336 100644
--- a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Loader/ClosureLoaderTest.php
+++ b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Loader/ClosureLoaderTest.php
@@ -16,6 +16,13 @@
 
 class ClosureLoaderTest extends \PHPUnit_Framework_TestCase
 {
+    protected function setUp()
+    {
+        if (!class_exists('Symfony\Component\Config\Loader\Loader')) {
+            $this->markTestSkipped('The "Config" component is not available');
+        }
+    }
+
     /**
      * @covers Symfony\Component\DependencyInjection\Loader\ClosureLoader::supports
      */
diff --git a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Loader/IniFileLoaderTest.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Loader/IniFileLoaderTest.php
index b9f402b70189f7aac1908d93dcbde5af5e3ed540..220ad7fe4d871cd025944bf74d2b40c24e49a434 100644
--- a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Loader/IniFileLoaderTest.php
+++ b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Loader/IniFileLoaderTest.php
@@ -29,6 +29,10 @@ public static function setUpBeforeClass()
 
     protected function setUp()
     {
+        if (!class_exists('Symfony\Component\Config\Loader\Loader')) {
+            $this->markTestSkipped('The "Config" component is not available');
+        }
+
         $this->container = new ContainerBuilder();
         $this->loader    = new IniFileLoader($this->container, new FileLocator(self::$fixturesPath.'/ini'));
     }
diff --git a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Loader/PhpFileLoaderTest.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Loader/PhpFileLoaderTest.php
index 505f710cbeb1ac31cdfe9f3400d5e10c1f8dd962..3a97dc27da5eb52a5a4fda3c007d5e2ecec31c5f 100644
--- a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Loader/PhpFileLoaderTest.php
+++ b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Loader/PhpFileLoaderTest.php
@@ -18,6 +18,13 @@
 
 class PhpFileLoaderTest extends \PHPUnit_Framework_TestCase
 {
+    protected function setUp()
+    {
+        if (!class_exists('Symfony\Component\Config\Loader\Loader')) {
+            $this->markTestSkipped('The "Config" component is not available');
+        }
+    }
+
     /**
      * @covers Symfony\Component\DependencyInjection\Loader\PhpFileLoader::supports
      */
diff --git a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Loader/XmlFileLoaderTest.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Loader/XmlFileLoaderTest.php
index 74db3c8eff5d45188a94e07aac8cc204b28136a7..d8138f947541ad7fd314bdabe59305cca9987068 100644
--- a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Loader/XmlFileLoaderTest.php
+++ b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Loader/XmlFileLoaderTest.php
@@ -22,12 +22,18 @@
 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;
 
+    protected function setUp()
+    {
+        if (!class_exists('Symfony\Component\Config\Loader\Loader')) {
+            $this->markTestSkipped('The "Config" component is not available');
+        }
+    }
+
     public static function setUpBeforeClass()
     {
         self::$fixturesPath = realpath(__DIR__.'/../Fixtures/');
@@ -93,33 +99,17 @@ public function testLoadParameters()
         $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'),
-            ),
-            'foo_bar' => new Reference('foo_bar'),
-            'mixedcase' => array('MixedCaseKey' => 'value'),
-            'constant' => PHP_EOL,
-        );
+        $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')), 'foo_bar' => new Reference('foo_bar'), 'mixedcase' => array('MixedCaseKey' => 'value'));
 
         $this->assertEquals($expected, $actual, '->load() converts XML values to PHP ones');
     }
 
     public function testLoadImports()
     {
+        if (!class_exists('Symfony\Component\Yaml\Yaml')) {
+            $this->markTestSkipped('The "Yaml" component is not available');
+        }
+
         $container = new ContainerBuilder();
         $resolver = new LoaderResolver(array(
             new IniFileLoader($container, new FileLocator(self::$fixturesPath.'/xml')),
@@ -130,30 +120,7 @@ public function testLoadImports()
         $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'),
-            ),
-            'foo_bar' => new Reference('foo_bar'),
-            'mixedcase' => array('MixedCaseKey' => 'value'),
-            'constant' => PHP_EOL,
-            'bar' => '%foo%',
-            'imported_from_ini' => true,
-            'imported_from_yaml' => true
-        );
+        $expected = array('a string', 'foo' => 'bar', 'values' => array(true, false), 'foo_bar' => new Reference('foo_bar'), 'mixedcase' => array('MixedCaseKey' => 'value'), 'bar' => '%foo%', 'imported_from_ini' => true, 'imported_from_yaml' => true);
 
         $this->assertEquals(array_keys($expected), array_keys($actual), '->load() imports and merges imported files');
 
@@ -212,7 +179,7 @@ public function testLoadServices()
         $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() ~ parameter("foo")')))), $services['method_call1']->getMethodCalls(), '->load() parses the method_call tag');
+        $this->assertEquals(array(array('setBar', array())), $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->assertNull($services['factory_service']->getClass());
         $this->assertEquals('getInstance', $services['factory_service']->getFactoryMethod());
@@ -231,29 +198,6 @@ public function testLoadServices()
         $this->assertFalse($aliases['another_alias_for_foo']->isPublic());
     }
 
-    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");
diff --git a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Loader/YamlFileLoaderTest.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Loader/YamlFileLoaderTest.php
index c7cb0cde5f01b048f081e503b2bed36248f3be42..e452e5d221d196ae61b161455899d71b8162796f 100644
--- a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Loader/YamlFileLoaderTest.php
+++ b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Loader/YamlFileLoaderTest.php
@@ -20,12 +20,22 @@
 use Symfony\Component\DependencyInjection\Loader\IniFileLoader;
 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;
 
+    protected function setUp()
+    {
+        if (!class_exists('Symfony\Component\Config\Loader\Loader')) {
+            $this->markTestSkipped('The "Config" component is not available');
+        }
+
+        if (!class_exists('Symfony\Component\Yaml\Yaml')) {
+            $this->markTestSkipped('The "Yaml" component is not available');
+        }
+    }
+
     public static function setUpBeforeClass()
     {
         self::$fixturesPath = realpath(__DIR__.'/../Fixtures/');
@@ -114,7 +124,7 @@ public function testLoadServices()
         $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() ~ parameter("foo")')))), $services['method_call1']->getMethodCalls(), '->load() parses the method_call tag');
+        $this->assertEquals(array(array('setBar', array()), array('setBar', array())), $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('baz_factory', $services['factory_service']->getFactoryService());
 
@@ -199,7 +209,7 @@ public function testTagWithAttributeArrayThrowsException()
             $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');
+            $this->assertStringStartsWith('A "tags" attribute must be of a scalar-type for service ', $e->getMessage(), '->load() throws an InvalidArgumentException if a tag-attribute is not a scalar');
         }
     }
 }
diff --git a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/composer.json b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/composer.json
index 1a29489d2bafde3f36d3beba22331cf28460f8ed..2631da96df2f877d8164989e227f60c03201b77e 100644
--- a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/composer.json
+++ b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/composer.json
@@ -20,8 +20,7 @@
     },
     "require-dev": {
         "symfony/yaml": "~2.0",
-        "symfony/config": "~2.2",
-        "symfony/expression-language": "~2.4"
+        "symfony/config": "~2.2"
     },
     "suggest": {
         "symfony/yaml": "",
@@ -35,7 +34,7 @@
     "minimum-stability": "dev",
     "extra": {
         "branch-alias": {
-            "dev-master": "2.4-dev"
+            "dev-master": "2.3-dev"
         }
     }
 }
diff --git a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/services10.xml b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/services10.xml
deleted file mode 100644
index 824d8b5d753969de96af6c55f6d0a153b3fc2c5b..0000000000000000000000000000000000000000
--- a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/services10.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/event-dispatcher/Symfony/Component/EventDispatcher/Event.php b/core/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/Event.php
index e25e7f1ebae42902adc7e1fe6f11646be968c32c..42f09eaa5118e30b49c4af3160fd21a762b7d3b6 100644
--- a/core/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/Event.php
+++ b/core/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/Event.php
@@ -76,8 +76,6 @@ public function stopPropagation()
      *
      * @param EventDispatcherInterface $dispatcher
      *
-     * @deprecated Deprecated in 2.4, to be removed in 3.0. The event dispatcher is passed to the listener call.
-     *
      * @api
      */
     public function setDispatcher(EventDispatcherInterface $dispatcher)
@@ -90,8 +88,6 @@ public function setDispatcher(EventDispatcherInterface $dispatcher)
      *
      * @return EventDispatcherInterface
      *
-     * @deprecated Deprecated in 2.4, to be removed in 3.0. The event dispatcher is passed to the listener call.
-     *
      * @api
      */
     public function getDispatcher()
@@ -104,8 +100,6 @@ public function getDispatcher()
      *
      * @return string
      *
-     * @deprecated Deprecated in 2.4, to be removed in 3.0. The event name is passed to the listener call.
-     *
      * @api
      */
     public function getName()
@@ -118,8 +112,6 @@ public function getName()
      *
      * @param string $name The event name.
      *
-     * @deprecated Deprecated in 2.4, to be removed in 3.0. The event name is passed to the listener call.
-     *
      * @api
      */
     public function setName($name)
diff --git a/core/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/EventDispatcher.php b/core/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/EventDispatcher.php
index ad48d4311d8e6979d63617fbecd8871e42f71564..eb1fb5949efbba0bf5baac46ee6e5dc3b699d9ec 100644
--- a/core/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/EventDispatcher.php
+++ b/core/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/EventDispatcher.php
@@ -154,14 +154,14 @@ public function removeSubscriber(EventSubscriberInterface $subscriber)
      * 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.
+     * @param array[callback] $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);
+            call_user_func($listener, $event);
             if ($event->isPropagationStopped()) {
                 break;
             }
diff --git a/core/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/GenericEvent.php b/core/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/GenericEvent.php
index c226fdf2e599b8d4a556bcf1c2d2819610579e16..3a5efcfecc262c3d96efe28427615422c5dd13e2 100644
--- a/core/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/GenericEvent.php
+++ b/core/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/GenericEvent.php
@@ -21,7 +21,7 @@
 class GenericEvent extends Event implements \ArrayAccess, \IteratorAggregate
 {
     /**
-     * Event subject.
+     * Observer pattern subject.
      *
      * @var mixed usually object or callable
      */
diff --git a/core/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/README.md b/core/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/README.md
index 22bf74fdc9d66f38a250218276cc6d0b492806ce..11f6b1888e3953da7c2baaf3068a08784ac31ac1 100644
--- a/core/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/README.md
+++ b/core/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/README.md
@@ -1,8 +1,8 @@
 EventDispatcher Component
 =========================
 
-The Symfony2 EventDispatcher component implements the Mediator pattern in a
-simple and effective way to make your projects truly extensible.
+EventDispatcher implements a lightweight version of the Observer design
+pattern.
 
     use Symfony\Component\EventDispatcher\EventDispatcher;
     use Symfony\Component\EventDispatcher\Event;
@@ -21,5 +21,5 @@ Resources
 You can run the unit tests with the following command:
 
     $ cd path/to/Symfony/Component/EventDispatcher/
-    $ composer.phar install
+    $ composer.phar install --dev
     $ phpunit
diff --git a/core/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/Tests/ContainerAwareEventDispatcherTest.php b/core/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/Tests/ContainerAwareEventDispatcherTest.php
index 965a0c6bcfb5c0c4346afab39dcf7c0a4ff66d4a..71f3ad05215ecdf15117050fef95b6d3e2e75ea6 100644
--- a/core/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/Tests/ContainerAwareEventDispatcherTest.php
+++ b/core/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/Tests/ContainerAwareEventDispatcherTest.php
@@ -19,6 +19,13 @@
 
 class ContainerAwareEventDispatcherTest extends \PHPUnit_Framework_TestCase
 {
+    protected function setUp()
+    {
+        if (!class_exists('Symfony\Component\DependencyInjection\Container')) {
+            $this->markTestSkipped('The "DependencyInjection" component is not available');
+        }
+    }
+
     public function testAddAListenerService()
     {
         $event = new Event();
diff --git a/core/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/Tests/EventDispatcherTest.php b/core/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/Tests/EventDispatcherTest.php
index 50af44549b0c392cde33ecfdfaf2a011c217113e..ad7e4484541b3b0e9ebd6612fe4e0bd50d835ab5 100644
--- a/core/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/Tests/EventDispatcherTest.php
+++ b/core/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/Tests/EventDispatcherTest.php
@@ -23,9 +23,6 @@ class EventDispatcherTest extends \PHPUnit_Framework_TestCase
     const preBar = 'pre.bar';
     const postBar = 'post.bar';
 
-    /**
-     * @var EventDispatcher
-     */
     private $dispatcher;
 
     private $listener;
@@ -240,6 +237,7 @@ public function testRemoveSubscriberWithMultipleListeners()
 
     public function testEventReceivesTheDispatcherInstance()
     {
+        $test = $this;
         $this->dispatcher->addListener('test', function ($event) use (&$dispatcher) {
             $dispatcher = $event->getDispatcher();
         });
@@ -247,17 +245,6 @@ public function testEventReceivesTheDispatcherInstance()
         $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
      *
@@ -270,7 +257,7 @@ public function testWorkaroundForPhpBug62976()
     {
         $dispatcher = new EventDispatcher();
         $dispatcher->addListener('bug.62976', new CallableClass());
-        $dispatcher->removeListener('bug.62976', function () {});
+        $dispatcher->removeListener('bug.62976', function() {});
         $this->assertTrue($dispatcher->hasListeners('bug.62976'));
     }
 }
@@ -302,18 +289,6 @@ public function postFoo(Event $e)
     }
 }
 
-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()
diff --git a/core/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/Tests/EventTest.php b/core/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/Tests/EventTest.php
index 7a20fe6bf3a41f7c3f5031ebc7d1b9047f2a4711..52aa9ad68a8f431320f23210fb7d87343b56c38f 100644
--- a/core/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/Tests/EventTest.php
+++ b/core/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/Tests/EventTest.php
@@ -35,7 +35,7 @@ class EventTest extends \PHPUnit_Framework_TestCase
      */
     protected function setUp()
     {
-        $this->event = new Event();
+        $this->event = new Event;
         $this->dispatcher = new EventDispatcher();
     }
 
@@ -46,7 +46,7 @@ protected function setUp()
     protected function tearDown()
     {
         $this->event = null;
-        $this->dispatcher = null;
+        $this->eventDispatcher = null;
     }
 
     public function testIsPropagationStopped()
diff --git a/core/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/Tests/GenericEventTest.php b/core/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/Tests/GenericEventTest.php
index c1e22f4451365139d2f6d5be0a932478c4288b51..8dd6f5b419acca67b20521ad694cde5fec6f5821 100644
--- a/core/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/Tests/GenericEventTest.php
+++ b/core/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/Tests/GenericEventTest.php
@@ -33,7 +33,7 @@ protected function setUp()
     {
         parent::setUp();
 
-        $this->subject = new \stdClass();
+        $this->subject = new \StdClass();
         $this->event = new GenericEvent($this->subject, array('name' => 'Event'), 'foo');
     }
 
diff --git a/core/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/composer.json b/core/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/composer.json
index e748c506c1883db2a0a39210e43dd68309ed6117..1db2ecfd6c8709d0f1dd06369224851ed9682d61 100644
--- a/core/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/composer.json
+++ b/core/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/composer.json
@@ -32,7 +32,7 @@
     "minimum-stability": "dev",
     "extra": {
         "branch-alias": {
-            "dev-master": "2.4-dev"
+            "dev-master": "2.3-dev"
         }
     }
 }
diff --git a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/AcceptHeaderItem.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/AcceptHeaderItem.php
index 0cec4eda1317fcd79818bd3064983279bd7d662a..9d4c3132d32e88d4dcddf03c75869992c01d7d1c 100644
--- a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/AcceptHeaderItem.php
+++ b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/AcceptHeaderItem.php
@@ -90,7 +90,7 @@ public function __toString()
     {
         $string = $this->value.($this->quality < 1 ? ';q='.$this->quality : '');
         if (count($this->attributes) > 0) {
-            $string .= ';'.implode(';', array_map(function ($name, $value) {
+            $string .= ';'.implode(';', array_map(function($name, $value) {
                 return sprintf(preg_match('/[,;=]/', $value) ? '%s="%s"' : '%s=%s', $name, $value);
             }, array_keys($this->attributes), $this->attributes));
         }
diff --git a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/BinaryFileResponse.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/BinaryFileResponse.php
index 4d2743580727957c9486dd37a96776abe6073b57..06d530ddf833cf53f751b36a4a0113f8ea8dc13d 100644
--- a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/BinaryFileResponse.php
+++ b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/BinaryFileResponse.php
@@ -34,13 +34,13 @@ class BinaryFileResponse extends Response
     /**
      * Constructor.
      *
-     * @param \SplFileInfo|string $file               The file to stream
-     * @param integer             $status             The response status code
-     * @param array               $headers            An array of response headers
-     * @param boolean             $public             Files are public by default
-     * @param null|string         $contentDisposition The type of Content-Disposition to set automatically with the filename
-     * @param boolean             $autoEtag           Whether the ETag header should be automatically set
-     * @param boolean             $autoLastModified   Whether the Last-Modified header should be automatically set
+     * @param SplFileInfo|string $file               The file to stream
+     * @param integer            $status             The response status code
+     * @param array              $headers            An array of response headers
+     * @param boolean            $public             Files are public by default
+     * @param null|string        $contentDisposition The type of Content-Disposition to set automatically with the filename
+     * @param boolean            $autoEtag           Whether the ETag header should be automatically set
+     * @param boolean            $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)
     {
@@ -54,13 +54,7 @@ public function __construct($file, $status = 200, $headers = array(), $public =
     }
 
     /**
-     * @param \SplFileInfo|string $file               The file to stream
-     * @param integer             $status             The response status code
-     * @param array               $headers            An array of response headers
-     * @param boolean             $public             Files are public by default
-     * @param null|string         $contentDisposition The type of Content-Disposition to set automatically with the filename
-     * @param boolean             $autoEtag           Whether the ETag header should be automatically set
-     * @param boolean             $autoLastModified   Whether the Last-Modified header should be automatically set
+     * {@inheritdoc}
      */
     public static function create($file = null, $status = 200, $headers = array(), $public = true, $contentDisposition = null, $autoEtag = false, $autoLastModified = true)
     {
@@ -70,10 +64,10 @@ public static function create($file = null, $status = 200, $headers = array(), $
     /**
      * Sets the file to stream.
      *
-     * @param \SplFileInfo|string $file The file to stream
-     * @param string              $contentDisposition
-     * @param Boolean             $autoEtag
-     * @param Boolean             $autoLastModified
+     * @param SplFileInfo|string $file The file to stream
+     * @param string             $contentDisposition
+     * @param Boolean            $autoEtag
+     * @param Boolean            $autoLastModified
      *
      * @return BinaryFileResponse
      *
@@ -183,7 +177,7 @@ public function prepare(Request $request)
             $path = $this->file->getRealPath();
             if (strtolower($type) == 'x-accel-redirect') {
                 // Do X-Accel-Mapping substitutions.
-                foreach (explode(',', $request->headers->get('X-Accel-Mapping', '')) as $mapping) {
+                foreach (explode(',', $request->headers->get('X-Accel-Mapping', ''))  as $mapping) {
                     $mapping = explode('=', $mapping, 2);
 
                     if (2 == count($mapping)) {
@@ -216,18 +210,14 @@ public function prepare(Request $request)
                     $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;
+                $start = max($start, 0);
+                $end = min($end, $fileSize - 1);
 
-                        $this->setStatusCode(206);
-                        $this->headers->set('Content-Range', sprintf('bytes %s-%s/%s', $start, $end, $fileSize));
-                        $this->headers->set('Content-Length', $end - $start + 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));
             }
         }
 
diff --git a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/CHANGELOG.md b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/CHANGELOG.md
index 061d47e7eec94c3a0707abec26328239e0aa4778..41e8eb2ec32a7b988861f3c91f6316ef1d972954 100644
--- a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/CHANGELOG.md
+++ b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/CHANGELOG.md
@@ -1,13 +1,6 @@
 CHANGELOG
 =========
 
-2.4.0
------
-
- * added RequestStack
- * added Request::getEncodings()
- * added accessors methods to session handlers
-
 2.3.0
 -----
 
diff --git a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/ExpressionRequestMatcher.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/ExpressionRequestMatcher.php
deleted file mode 100644
index e9c8441ce314b2f5a9eb88350b888fe83030636a..0000000000000000000000000000000000000000
--- a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/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/Symfony/Component/HttpFoundation/File/File.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/File/File.php
index 4fabfb910692ea5d81c916b79cdbf6740042c3a1..9002b510851a8883cc081cb23fc7f2271066120b 100644
--- a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/File/File.php
+++ b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/File/File.php
@@ -137,7 +137,7 @@ protected function getTargetFile($directory, $name = null)
             throw new FileException(sprintf('Unable to write in the "%s" directory', $directory));
         }
 
-        $target = rtrim($directory, '/\\').DIRECTORY_SEPARATOR.(null === $name ? $this->getBasename() : $this->getName($name));
+        $target = $directory.DIRECTORY_SEPARATOR.(null === $name ? $this->getBasename() : $this->getName($name));
 
         return new File($target, false);
     }
diff --git a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/File/UploadedFile.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/File/UploadedFile.php
index 16c4cdb65eda94e9bb2010a8138229b56e22a063..1f23c35c6b8b45c3662aeab0526363cb9a325637 100644
--- a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/File/UploadedFile.php
+++ b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/File/UploadedFile.php
@@ -252,7 +252,7 @@ public function move($directory, $name = null)
             return $target;
         }
 
-        throw new FileException($this->getErrorMessage());
+        throw new FileException($this->getErrorMessage($this->getError()));
     }
 
     /**
@@ -262,37 +262,30 @@ public function move($directory, $name = null)
      */
     public static function getMaxFilesize()
     {
-        $iniMax = strtolower(ini_get('upload_max_filesize'));
+        $max = strtolower(ini_get('upload_max_filesize'));
 
-        if ('' === $iniMax) {
+        if ('' === $max) {
             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 = intval($max);
-        }
+        if (preg_match('#^\+?(0x?)?(.*?)([kmg]?)$#', $max, $match)) {
+            $shifts = array('' => 0, 'k' => 10, 'm' => 20, 'g' => 30);
+            $bases = array('' => 10, '0' => 8, '0x' => 16);
 
-        switch (substr($iniMax, -1)) {
-            case 't': $max *= 1024;
-            case 'g': $max *= 1024;
-            case 'm': $max *= 1024;
-            case 'k': $max *= 1024;
+            return intval($match[2], $bases[$match[1]]) << $shifts[$match[3]];
         }
 
-        return $max;
+        return 0;
     }
 
     /**
      * Returns an informative upload error message.
      *
+     * @param int $code The error code returned by an upload attempt
+     *
      * @return string The error message regarding the specified error code
      */
-    public function getErrorMessage()
+    private function getErrorMessage($errorCode)
     {
         static $errors = array(
             UPLOAD_ERR_INI_SIZE   => 'The file "%s" exceeds your upload_max_filesize ini directive (limit is %d kb).',
@@ -301,13 +294,12 @@ public function getErrorMessage()
             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.',
+            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);
+       return sprintf($message, $this->getClientOriginalName(), $maxFilesize);
     }
 }
diff --git a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/HeaderBag.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/HeaderBag.php
index 2b9ef0e443e151ac4db6930bd8887d9fa90b48a6..b579eb991a146cdb2883dd355ff5b3999781fa5a 100644
--- a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/HeaderBag.php
+++ b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/HeaderBag.php
@@ -20,8 +20,8 @@
  */
 class HeaderBag implements \IteratorAggregate, \Countable
 {
-    protected $headers = array();
-    protected $cacheControl = array();
+    protected $headers;
+    protected $cacheControl;
 
     /**
      * Constructor.
@@ -32,6 +32,8 @@ class HeaderBag implements \IteratorAggregate, \Countable
      */
     public function __construct(array $headers = array())
     {
+        $this->cacheControl = array();
+        $this->headers = array();
         foreach ($headers as $key => $values) {
             $this->set($key, $values);
         }
diff --git a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/IpUtils.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/IpUtils.php
index 98b848108cb5d58b13520f53e61aa4234057fea3..7c3742e768f91c405d73513f44602bc7b5ab4873 100644
--- a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/IpUtils.php
+++ b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/IpUtils.php
@@ -24,10 +24,10 @@ class IpUtils
     private function __construct() {}
 
     /**
-     * Checks if an IPv4 or IPv6 address is contained in the list of given IPs or subnets
+     * Validates an IPv4 or IPv6 address.
      *
-     * @param string       $requestIp   IP to check
-     * @param string|array $ips         List of IPs or subnets (can be a string if only a single one)
+     * @param string       $requestIp
+     * @param string|array $ips
      *
      * @return boolean Whether the IP is valid
      */
@@ -49,11 +49,10 @@ public static function checkIp($requestIp, $ips)
     }
 
     /**
-     * Compares two IPv4 addresses.
-     * In case a subnet is given, it checks if it contains the request IP.
+     * Validates an IPv4 address.
      *
-     * @param string $requestIp IPv4 address to check
-     * @param string $ip        IPv4 address or subnet in CIDR notation
+     * @param string $requestIp
+     * @param string $ip
      *
      * @return boolean Whether the IP is valid
      */
@@ -74,14 +73,13 @@ public static function checkIp4($requestIp, $ip)
     }
 
     /**
-     * Compares two IPv6 addresses.
-     * In case a subnet is given, it checks if it contains the request IP.
+     * Validates an IPv6 address.
      *
      * @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
+     * @param string $requestIp
+     * @param string $ip
      *
      * @return boolean Whether the IP is valid
      *
diff --git a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/JsonResponse.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/JsonResponse.php
index 6dfa75cd2ddc4a25431608810caeed58cd413918..eafccaa844dc05ec163095407d324049137fa6c8 100644
--- a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/JsonResponse.php
+++ b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/JsonResponse.php
@@ -55,11 +55,11 @@ public static function create($data = null, $status = 200, $headers = array())
     /**
      * Sets the JSONP callback.
      *
-     * @param string|null $callback The JSONP callback or null to use none
+     * @param string $callback
      *
      * @return JsonResponse
      *
-     * @throws \InvalidArgumentException When the callback name is not valid
+     * @throws \InvalidArgumentException
      */
     public function setCallback($callback = null)
     {
@@ -85,18 +85,12 @@ public function setCallback($callback = null)
      * @param mixed $data
      *
      * @return JsonResponse
-     *
-     * @throws \InvalidArgumentException
      */
     public function setData($data = array())
     {
         // Encode <, >, ', &, and " for RFC4627-compliant JSON, which may also be embedded into HTML.
         $this->data = json_encode($data, JSON_HEX_TAG | JSON_HEX_APOS | JSON_HEX_AMP | JSON_HEX_QUOT);
 
-        if (JSON_ERROR_NONE !== json_last_error()) {
-            throw new \InvalidArgumentException($this->transformJsonError());
-        }
-
         return $this->update();
     }
 
@@ -122,31 +116,4 @@ protected function update()
 
         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/Symfony/Component/HttpFoundation/ParameterBag.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/ParameterBag.php
index a4ac98cffebf92d963596dbcc47d5fdc81b4f335..c8720cdc12e2b3c9e79da36f3db907dfaaf03007 100644
--- a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/ParameterBag.php
+++ b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/ParameterBag.php
@@ -266,7 +266,7 @@ public function getInt($key, $default = 0, $deep = false)
      *
      * @return mixed
      */
-    public function filter($key, $default = null, $deep = false, $filter = FILTER_DEFAULT, $options = array())
+    public function filter($key, $default = null, $deep = false, $filter=FILTER_DEFAULT, $options=array())
     {
         $value = $this->get($key, $default, $deep);
 
diff --git a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/README.md b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/README.md
index ea6a790a641a3095f36e243600e3061c770fbe47..ed49b4e15e41956b3369db867a91e8b517da16b0 100644
--- a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/README.md
+++ b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/README.md
@@ -44,5 +44,5 @@ Resources
 You can run the unit tests with the following command:
 
     $ cd path/to/Symfony/Component/HttpFoundation/
-    $ composer.phar install
+    $ composer.phar install --dev
     $ phpunit
diff --git a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/RedirectResponse.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/RedirectResponse.php
index fbf377bae02b68009f0323e89f666f1eb8db5dfc..54f57216b03a41f4120f913902fa0c044d4ccd18 100644
--- a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/RedirectResponse.php
+++ b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/RedirectResponse.php
@@ -27,7 +27,7 @@ class RedirectResponse extends Response
      *
      * @param string  $url     The URL to redirect to
      * @param integer $status  The status code (302 by default)
-     * @param array   $headers The headers (Location is always set to the given URL)
+     * @param array   $headers The headers (Location is always set to the given url)
      *
      * @throws \InvalidArgumentException
      *
diff --git a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Request.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Request.php
index 88a61b642dd88fe038f312bf76e8af9fb7096c56..4641eadab132fb285603229a4058075ce210519a 100644
--- a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Request.php
+++ b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Request.php
@@ -64,8 +64,6 @@ class Request
     protected static $httpMethodParameterOverride = false;
 
     /**
-     * Custom parameters
-     *
      * @var \Symfony\Component\HttpFoundation\ParameterBag
      *
      * @api
@@ -73,8 +71,6 @@ class Request
     public $attributes;
 
     /**
-     * Request body parameters ($_POST)
-     *
      * @var \Symfony\Component\HttpFoundation\ParameterBag
      *
      * @api
@@ -82,8 +78,6 @@ class Request
     public $request;
 
     /**
-     * Query string parameters ($_GET)
-     *
      * @var \Symfony\Component\HttpFoundation\ParameterBag
      *
      * @api
@@ -91,8 +85,6 @@ class Request
     public $query;
 
     /**
-     * Server and execution environment parameters ($_SERVER)
-     *
      * @var \Symfony\Component\HttpFoundation\ServerBag
      *
      * @api
@@ -100,8 +92,6 @@ class Request
     public $server;
 
     /**
-     * Uploaded files ($_FILES)
-     *
      * @var \Symfony\Component\HttpFoundation\FileBag
      *
      * @api
@@ -109,8 +99,6 @@ class Request
     public $files;
 
     /**
-     * Cookies ($_COOKIE)
-     *
      * @var \Symfony\Component\HttpFoundation\ParameterBag
      *
      * @api
@@ -118,8 +106,6 @@ class Request
     public $cookies;
 
     /**
-     * Headers (taken from the $_SERVER)
-     *
      * @var \Symfony\Component\HttpFoundation\HeaderBag
      *
      * @api
@@ -141,11 +127,6 @@ class Request
      */
     protected $charsets;
 
-    /**
-     * @var array
-     */
-    protected $encodings;
-
     /**
      * @var array
      */
@@ -201,8 +182,6 @@ class Request
      */
     protected static $formats;
 
-    protected static $requestFactory;
-
     /**
      * Constructor.
      *
@@ -249,7 +228,6 @@ public function initialize(array $query = array(), array $request = array(), arr
         $this->content = $content;
         $this->languages = null;
         $this->charsets = null;
-        $this->encodings = null;
         $this->acceptableContentTypes = null;
         $this->pathInfo = null;
         $this->requestUri = null;
@@ -268,7 +246,7 @@ public function initialize(array $query = array(), array $request = array(), arr
      */
     public static function createFromGlobals()
     {
-        $request = self::createRequestFromFactory($_GET, $_POST, array(), $_COOKIE, $_FILES, $_SERVER);
+        $request = new static($_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'))
@@ -368,39 +346,16 @@ public static function create($uri, $method = 'GET', $parameters = array(), $coo
                 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, '', '&');
+            $query = array_replace($qs, $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;
+        return new static($query, $request, array(), $cookies, $files, $server, $content);
     }
 
     /**
@@ -441,7 +396,6 @@ public function duplicate(array $query = null, array $request = null, array $att
         }
         $dup->languages = null;
         $dup->charsets = null;
-        $dup->encodings = null;
         $dup->acceptableContentTypes = null;
         $dup->pathInfo = null;
         $dup->requestUri = null;
@@ -450,12 +404,8 @@ public function duplicate(array $query = null, array $request = null, array $att
         $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($format = $this->getRequestFormat(null));
+        if (!$dup->get('_format')) {
+            $dup->setRequestFormat($this->getRequestFormat());
         }
 
         return $dup;
@@ -517,7 +467,7 @@ public function overrideGlobals()
 
         $request = array('g' => $_GET, 'p' => $_POST, 'c' => $_COOKIE);
 
-        $requestOrder = ini_get('request_order') ?: ini_get('variables_order');
+        $requestOrder = ini_get('request_order') ?: ini_get('variable_order');
         $requestOrder = preg_replace('#[^cgp]#', '', strtolower($requestOrder)) ?: 'gp';
 
         $_REQUEST = array();
@@ -769,9 +719,9 @@ public function setSession(SessionInterface $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.
+     * The most trusted IP address is first, and the less trusted one last.
+     * The "real" client IP address is the last one, but this is also the
+     * less trusted one.
      *
      * Use this method carefully; you should use getClientIp() instead.
      *
@@ -792,18 +742,19 @@ public function getClientIps()
         }
 
         $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
+        $clientIps[] = $ip;
 
-        $ip = $clientIps[0]; // Fallback to this when the client IP falls into the range of trusted proxies
+        $trustedProxies = !self::$trustedProxies ? array($ip) : self::$trustedProxies;
+        $ip = $clientIps[0];
 
-        // Eliminate all IPs from the forwarded IP chain which are trusted proxies
         foreach ($clientIps as $key => $clientIp) {
-            if (IpUtils::checkIp($clientIp, self::$trustedProxies)) {
+            if (IpUtils::checkIp($clientIp, $trustedProxies)) {
                 unset($clientIps[$key]);
+
+                continue;
             }
         }
 
-        // Now the IP chain contains only untrusted proxies and the client IP
         return $clientIps ? array_reverse($clientIps) : array($ip);
     }
 
@@ -895,14 +846,14 @@ public function getBasePath()
     }
 
     /**
-     * Returns the root URL from which this request is executed.
+     * 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)
+     * @return string The raw url (i.e. not urldecoded)
      *
      * @api
      */
@@ -954,14 +905,6 @@ public function getPort()
             }
         }
 
-        if ($host = $this->headers->get('HOST')) {
-            if (false !== $pos = strrpos($host, ':')) {
-                return intval(substr($host, $pos + 1));
-            }
-
-            return 'https' === $this->getScheme() ? 443 : 80;
-        }
-
         return $this->server->get('SERVER_PORT');
     }
 
@@ -996,7 +939,7 @@ public function getUserInfo()
 
         $pass = $this->getPassword();
         if ('' != $pass) {
-            $userinfo .= ":$pass";
+           $userinfo .= ":$pass";
         }
 
         return $userinfo;
@@ -1120,7 +1063,7 @@ public function getQueryString()
     public function isSecure()
     {
         if (self::$trustedProxies && 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'));
+            return in_array(strtolower($proto), array('https', 'on', '1'));
         }
 
         return 'on' == strtolower($this->server->get('HTTPS')) || 1 == $this->server->get('HTTPS');
@@ -1162,7 +1105,7 @@ public function getHost()
         // 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)
         if ($host && !preg_match('/^\[?(?:[a-zA-Z0-9-:\]_]+\.?)+$/', $host)) {
-            throw new \UnexpectedValueException(sprintf('Invalid Host "%s"', $host));
+            throw new \UnexpectedValueException('Invalid Host "'.$host.'"');
         }
 
         if (count(self::$trustedHostPatterns) > 0) {
@@ -1180,7 +1123,7 @@ public function getHost()
                 }
             }
 
-            throw new \UnexpectedValueException(sprintf('Untrusted Host "%s"', $host));
+            throw new \UnexpectedValueException('Untrusted Host "'.$host.'"');
         }
 
         return $host;
@@ -1559,20 +1502,6 @@ public function getCharsets()
         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
      *
@@ -1629,13 +1558,13 @@ protected function prepareRequestUri()
             $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)
+            // 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
+            // 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));
@@ -1684,7 +1613,7 @@ protected function prepareBaseUrl()
                 $seg     = $segs[$index];
                 $baseUrl = '/'.$seg.$baseUrl;
                 ++$index;
-            } while ($last > $index && (false !== $pos = strpos($path, $baseUrl)) && 0 != $pos);
+            } while (($last > $index) && (false !== ($pos = strpos($path, $baseUrl))) && (0 != $pos));
         }
 
         // Does the baseUrl have anything in common with the request_uri?
@@ -1701,7 +1630,7 @@ protected function prepareBaseUrl()
         }
 
         $truncatedRequestUri = $requestUri;
-        if (false !== $pos = strpos($requestUri, '?')) {
+        if (($pos = strpos($requestUri, '?')) !== false) {
             $truncatedRequestUri = substr($requestUri, 0, $pos);
         }
 
@@ -1714,7 +1643,7 @@ protected function prepareBaseUrl()
         // 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) {
+        if ((strlen($requestUri) >= strlen($baseUrl)) && ((false !== ($pos = strpos($requestUri, $baseUrl))) && ($pos !== 0))) {
             $baseUrl = substr($requestUri, 0, $pos + strlen($baseUrl));
         }
 
@@ -1767,7 +1696,7 @@ protected function preparePathInfo()
             $requestUri = substr($requestUri, 0, $pos);
         }
 
-        if (null !== $baseUrl && false === $pathInfo = substr($requestUri, strlen($baseUrl))) {
+        if ((null !== $baseUrl) && (false === ($pathInfo = substr($requestUri, strlen($baseUrl))))) {
             // If substr() returns false then PATH_INFO is set to an empty string
             return '/';
         } elseif (null === $baseUrl) {
@@ -1836,19 +1765,4 @@ private function getUrlencodedPrefix($string, $prefix)
 
         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);
-    }
 }
diff --git a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/RequestStack.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/RequestStack.php
deleted file mode 100644
index 4b0ef28deefd347644dd5e623ce85376b8f17eb9..0000000000000000000000000000000000000000
--- a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/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 null;
-        }
-
-        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 null;
-        }
-
-        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 null;
-        }
-
-        return $this->requests[$pos];
-    }
-}
diff --git a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Response.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Response.php
index bc9a193c7dc2c298501a8eac8b85a7a919e83ad2..25c49c9419d84ec9229482fa77a5054a9c699c90 100644
--- a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Response.php
+++ b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Response.php
@@ -20,67 +20,6 @@
  */
 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;  // RFC-reschke-http-status-308-07
-    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
      */
@@ -188,7 +127,7 @@ class Response
     /**
      * Constructor.
      *
-     * @param mixed   $content The response content, see setContent()
+     * @param string  $content The response content
      * @param integer $status  The response status code
      * @param array   $headers An array of response headers
      *
@@ -215,7 +154,7 @@ public function __construct($content = '', $status = 200, $headers = array())
      *     return Response::create($body, 200)
      *         ->setSharedMaxAge(300);
      *
-     * @param mixed   $content The response content, see setContent()
+     * @param string  $content The response content
      * @param integer $status  The response status code
      * @param array   $headers An array of response headers
      *
@@ -284,7 +223,7 @@ public function prepare(Request $request)
         $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')) {
+        } elseif (0 === strpos($headers->get('Content-Type'), 'text/') && false === strpos($headers->get('Content-Type'), 'charset')) {
             // add the charset
             $headers->set('Content-Type', $headers->get('Content-Type').'; charset='.$charset);
         }
@@ -332,12 +271,12 @@ public function sendHeaders()
         }
 
         // status
-        header(sprintf('HTTP/%s %s %s', $this->version, $this->statusCode, $this->statusText), true, $this->statusCode);
+        header(sprintf('HTTP/%s %s %s', $this->version, $this->statusCode, $this->statusText));
 
         // headers
         foreach ($this->headers->allPreserveCase() as $name => $values) {
             foreach ($values as $value) {
-                header($name.': '.$value, false, $this->statusCode);
+                header($name.': '.$value, false);
             }
         }
 
@@ -403,9 +342,9 @@ public function send()
     /**
      * Sets the response content.
      *
-     * Valid types are strings, numbers, null, and objects that implement a __toString() method.
+     * Valid types are strings, numbers, and objects that implement a __toString() method.
      *
-     * @param mixed $content Content that can be cast to string
+     * @param mixed $content
      *
      * @return Response
      *
@@ -1242,7 +1181,7 @@ public function isEmpty()
     }
 
     /**
-     * Check if we need to remove Cache-Control for SSL encrypted downloads when using IE < 9
+     * Check if we need to remove Cache-Control for ssl encrypted downloads when using IE < 9
      *
      * @link http://support.microsoft.com/kb/323308
      */
diff --git a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/ServerBag.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/ServerBag.php
index de6dbc9fb533bfd73e78ae15ce3b1399ac398653..d7aadc6bb65f45c538d8cdea71f0634a0a718c41 100644
--- a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/ServerBag.php
+++ b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/ServerBag.php
@@ -64,17 +64,11 @@ public function getHeaders()
                 $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)));
-                    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;
+            // Decode AUTHORIZATION header into PHP_AUTH_USER and PHP_AUTH_PW when authorization header is basic
+            if ((null !== $authorizationHeader) && (0 === stripos($authorizationHeader, 'basic'))) {
+                $exploded = explode(':', base64_decode(substr($authorizationHeader, 6)));
+                if (count($exploded) == 2) {
+                    list($headers['PHP_AUTH_USER'], $headers['PHP_AUTH_PW']) = $exploded;
                 }
             }
         }
@@ -82,8 +76,6 @@ public function getHeaders()
         // 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/Symfony/Component/HttpFoundation/Session/Attribute/AttributeBag.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/Attribute/AttributeBag.php
index af416d6d3a4c444443cf3f44e7bd1a6f6d02329c..e9d0257152ec99ab4fbbc2bb5885e5018013b691 100644
--- a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/Attribute/AttributeBag.php
+++ b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/Attribute/AttributeBag.php
@@ -31,7 +31,7 @@ class AttributeBag implements AttributeBagInterface, \IteratorAggregate, \Counta
     /**
      * Constructor.
      *
-     * @param string $storageKey The key used to store attributes in the session
+     * @param string $storageKey The key used to store attributes in the session.
      */
     public function __construct($storageKey = '_sf2_attributes')
     {
@@ -148,7 +148,7 @@ public function getIterator()
     /**
      * Returns the number of attributes.
      *
-     * @return integer The number of attributes
+     * @return int The number of attributes
      */
     public function count()
     {
diff --git a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/Attribute/AttributeBagInterface.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/Attribute/AttributeBagInterface.php
index 6356056edddeea07349aa3f8069d5b1b54f0d42b..5f1f37be25c31410ce47f68fabcd6d208eb34f24 100644
--- a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/Attribute/AttributeBagInterface.php
+++ b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/Attribute/AttributeBagInterface.php
@@ -33,7 +33,7 @@ public function has($name);
      * Returns an attribute.
      *
      * @param string $name    The attribute name
-     * @param mixed  $default The default value if not found
+     * @param mixed  $default The default value if not found.
      *
      * @return mixed
      */
@@ -66,7 +66,7 @@ public function replace(array $attributes);
      *
      * @param string $name
      *
-     * @return mixed The removed value or null when it does not exist
+     * @return mixed The removed value
      */
     public function remove($name);
 }
diff --git a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/Attribute/NamespacedAttributeBag.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/Attribute/NamespacedAttributeBag.php
index 7cafb2241c838027147c90a9ca487c80c19651ff..c0dd358e85117884be151fedcf1810fc58eb9909 100644
--- a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/Attribute/NamespacedAttributeBag.php
+++ b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/Attribute/NamespacedAttributeBag.php
@@ -149,8 +149,8 @@ protected function &resolveAttributePath($name, $writeContext = false)
      */
     protected function resolveKey($name)
     {
-        if (false !== $pos = strrpos($name, $this->namespaceCharacter)) {
-            $name = substr($name, $pos+1);
+        if (strpos($name, $this->namespaceCharacter) !== false) {
+            $name = substr($name, strrpos($name, $this->namespaceCharacter)+1, strlen($name));
         }
 
         return $name;
diff --git a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/Flash/AutoExpireFlashBag.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/Flash/AutoExpireFlashBag.php
index 25a62604d2607819b9803ceef2bd1df429644eb4..c6e41de62e287141550a92f8f31e9510b8461095 100644
--- a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/Flash/AutoExpireFlashBag.php
+++ b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/Flash/AutoExpireFlashBag.php
@@ -25,7 +25,7 @@ class AutoExpireFlashBag implements FlashBagInterface
      *
      * @var array
      */
-    private $flashes = array('display' => array(), 'new' => array());
+    private $flashes = array();
 
     /**
      * The storage key for flashes in the session
@@ -42,6 +42,7 @@ class AutoExpireFlashBag implements FlashBagInterface
     public function __construct($storageKey = '_sf2_flashes')
     {
         $this->storageKey = $storageKey;
+        $this->flashes = array('display' => array(), 'new' => array());
     }
 
     /**
diff --git a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/Flash/FlashBag.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/Flash/FlashBag.php
index 2bd7786d7a918a9d3fefe519438c75d80c423946..d62e3835abe08af1ebea6de0cd25126111768d1d 100644
--- a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/Flash/FlashBag.php
+++ b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/Flash/FlashBag.php
@@ -14,8 +14,6 @@
 /**
  * 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
@@ -78,7 +76,7 @@ public function add($type, $message)
     /**
      * {@inheritdoc}
      */
-    public function peek($type, array $default = array())
+    public function peek($type, array $default =array())
     {
         return $this->has($type) ? $this->flashes[$type] : $default;
     }
@@ -169,8 +167,6 @@ public function clear()
     /**
      * Returns an iterator for flashes.
      *
-     * @deprecated Will be removed in 3.0.
-     *
      * @return \ArrayIterator An \ArrayIterator instance
      */
     public function getIterator()
diff --git a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/Session.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/Session.php
index ac626fd58998db6d67c02771b013c62dfb8a5b80..15df09770994ecac6f8a678f908caed62e16ae0d 100644
--- a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/Session.php
+++ b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/Session.php
@@ -16,6 +16,7 @@
 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\SessionBagInterface;
 use Symfony\Component\HttpFoundation\Session\Storage\NativeSessionStorage;
 
 /**
diff --git a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/SessionInterface.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/SessionInterface.php
index dc2f7bc4f339c4ce6d99489141d90d89c36f7a89..a94fad00d6f0facc1ab260ff830aca7ceb2f94d6 100644
--- a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/SessionInterface.php
+++ b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/SessionInterface.php
@@ -163,7 +163,7 @@ public function replace(array $attributes);
      *
      * @param string $name
      *
-     * @return mixed The removed value or null when it does not exist
+     * @return mixed The removed value
      *
      * @api
      */
diff --git a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/Storage/Handler/MemcacheSessionHandler.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/Storage/Handler/MemcacheSessionHandler.php
index b2384505ae60db91f0c8f40cb13ac40d7f4bcf3f..4a5e63989a4638ca72747ba1b0c1386c23bf4a72 100644
--- a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/Storage/Handler/MemcacheSessionHandler.php
+++ b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/Storage/Handler/MemcacheSessionHandler.php
@@ -106,14 +106,4 @@ public function gc($lifetime)
         // 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/Symfony/Component/HttpFoundation/Session/Storage/Handler/MemcachedSessionHandler.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/Storage/Handler/MemcachedSessionHandler.php
index ed7d6edf4b824a1ddb287d4bf93efca14ee2758e..b3ca0bd3cdcf9e9315c1827c5165f7d308328bc4 100644
--- a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/Storage/Handler/MemcachedSessionHandler.php
+++ b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/Storage/Handler/MemcachedSessionHandler.php
@@ -112,14 +112,4 @@ public function gc($lifetime)
         // 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/Symfony/Component/HttpFoundation/Session/Storage/Handler/MongoDbSessionHandler.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/Storage/Handler/MongoDbSessionHandler.php
index 4d819fe3f8cc962d23a8c7a87f2d6699d4cda990..69ebae9542cc32233f291a76fdeb1093cd384fe0 100644
--- a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/Storage/Handler/MongoDbSessionHandler.php
+++ b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/Storage/Handler/MongoDbSessionHandler.php
@@ -160,14 +160,4 @@ private function getCollection()
 
         return $this->collection;
     }
-
-    /**
-     * Return a Mongo instance
-     *
-     * @return \Mongo
-     */
-    protected function getMongo()
-    {
-        return $this->mongo;
-    }
 }
diff --git a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/Storage/Handler/PdoSessionHandler.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/Storage/Handler/PdoSessionHandler.php
index baf8eea8f610edfac96affa016f34c1f47883aa3..347cbee706a08660839d71dc5496790d226ca771 100644
--- a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/Storage/Handler/PdoSessionHandler.php
+++ b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/Storage/Handler/PdoSessionHandler.php
@@ -240,14 +240,4 @@ private function createNewSession($id, $data = '')
 
         return true;
     }
-
-    /**
-     * Return a PDO instance
-     *
-     * @return \PDO
-     */
-    protected function getConnection()
-    {
-        return $this->pdo;
-    }
 }
diff --git a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/Storage/Handler/WriteCheckSessionHandler.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/Storage/Handler/WriteCheckSessionHandler.php
deleted file mode 100644
index c43c9d05feb0be478ac5dc6cca7f898e5f3d7ac0..0000000000000000000000000000000000000000
--- a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/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, $sessionId)
-    {
-        return $this->wrappedSessionHandler->open($savePath, $sessionId);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function read($sessionId)
-    {
-        $session = $this->wrappedSessionHandler->read($sessionId);
-
-        $this->readSessions[$sessionId] = $session;
-
-        return $session;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function write($sessionId, $sessionData)
-    {
-        if (isset($this->readSessions[$sessionId]) && $sessionData === $this->readSessions[$sessionId]) {
-            return true;
-        }
-
-        return $this->wrappedSessionHandler->write($sessionId, $sessionData);
-    }
-}
diff --git a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/Storage/MetadataBag.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/Storage/MetadataBag.php
index 44212979c307db1a97e45add7997a93bc10f4714..892d004b5d6116454de3f16f339186b19191da3f 100644
--- a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/Storage/MetadataBag.php
+++ b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/Storage/MetadataBag.php
@@ -39,7 +39,7 @@ class MetadataBag implements SessionBagInterface
     /**
      * @var array
      */
-    protected $meta = array(self::CREATED => 0, self::UPDATED => 0, self::LIFETIME => 0);
+    protected $meta = array();
 
     /**
      * Unix timestamp.
@@ -48,21 +48,15 @@ class MetadataBag implements SessionBagInterface
      */
     private $lastUsed;
 
-    /**
-     * @var integer
-     */
-    private $updateThreshold;
-
     /**
      * Constructor.
      *
-     * @param string  $storageKey      The key used to store bag in the session.
-     * @param integer $updateThreshold The time to wait between two UPDATED updates
+     * @param string $storageKey The key used to store bag in the session.
      */
-    public function __construct($storageKey = '_sf2_meta', $updateThreshold = 0)
+    public function __construct($storageKey = '_sf2_meta')
     {
         $this->storageKey = $storageKey;
-        $this->updateThreshold = $updateThreshold;
+        $this->meta = array(self::CREATED => 0, self::UPDATED => 0, self::LIFETIME => 0);
     }
 
     /**
@@ -74,11 +68,7 @@ public function initialize(array &$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;
-            }
+            $this->meta[self::UPDATED] = time();
         } else {
             $this->stampCreated();
         }
diff --git a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/Storage/MockArraySessionStorage.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/Storage/MockArraySessionStorage.php
index 8b1c2137f6a8a2e0433de5a27781f307c95f3e0a..a1fcf539f8fdab9a21b25a2d3b98a63855cf7e34 100644
--- a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/Storage/MockArraySessionStorage.php
+++ b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/Storage/MockArraySessionStorage.php
@@ -12,6 +12,7 @@
 namespace Symfony\Component\HttpFoundation\Session\Storage;
 
 use Symfony\Component\HttpFoundation\Session\SessionBagInterface;
+use Symfony\Component\HttpFoundation\Session\Storage\MetadataBag;
 
 /**
  * MockArraySessionStorage mocks the session for unit tests.
@@ -163,7 +164,6 @@ public function save()
         }
         // nothing to do since we don't persist the session data
         $this->closed = false;
-        $this->started = false;
     }
 
     /**
@@ -249,7 +249,7 @@ public function getMetadataBag()
      */
     protected function generateId()
     {
-        return hash('sha256', uniqid(mt_rand()));
+        return sha1(uniqid(mt_rand()));
     }
 
     protected function loadSession()
diff --git a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/Storage/NativeSessionStorage.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/Storage/NativeSessionStorage.php
index 083df9de40f9d63a6cdceb934d50978bda2baa5c..d86ff33d1db0aee5c8ff2f670d6660b2518aa140 100644
--- a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/Storage/NativeSessionStorage.php
+++ b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/Storage/NativeSessionStorage.php
@@ -13,6 +13,7 @@
 
 use Symfony\Component\HttpFoundation\Session\SessionBagInterface;
 use Symfony\Component\HttpFoundation\Session\Storage\Handler\NativeSessionHandler;
+use Symfony\Component\HttpFoundation\Session\Storage\MetadataBag;
 use Symfony\Component\HttpFoundation\Session\Storage\Proxy\NativeProxy;
 use Symfony\Component\HttpFoundation\Session\Storage\Proxy\AbstractProxy;
 use Symfony\Component\HttpFoundation\Session\Storage\Proxy\SessionHandlerProxy;
@@ -162,7 +163,7 @@ public function start()
      */
     public function getId()
     {
-        if (!$this->started && !$this->closed) {
+        if (!$this->started) {
             return ''; // returning empty is consistent with session_id() behaviour
         }
 
@@ -218,8 +219,6 @@ public function regenerate($destroy = false, $lifetime = null)
             } else {
                 session_start();
             }
-
-            $this->loadSession();
         }
 
         return $ret;
@@ -238,7 +237,6 @@ public function save()
         }
 
         $this->closed = true;
-        $this->started = false;
     }
 
     /**
diff --git a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/Storage/PhpBridgeSessionStorage.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/Storage/PhpBridgeSessionStorage.php
index f70b5e6227af4a1ea7916f01b9649f390726908c..0f0020397ad55e38c92af50923ddcdce6d3a2b5c 100644
--- a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/Storage/PhpBridgeSessionStorage.php
+++ b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/Storage/PhpBridgeSessionStorage.php
@@ -11,6 +11,7 @@
 
 namespace Symfony\Component\HttpFoundation\Session\Storage;
 
+use Symfony\Component\HttpFoundation\Session\Storage\MetadataBag;
 use Symfony\Component\HttpFoundation\Session\Storage\Proxy\AbstractProxy;
 use Symfony\Component\HttpFoundation\Session\Storage\Handler\NativeSessionHandler;
 
diff --git a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/Storage/SessionStorageInterface.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/Storage/SessionStorageInterface.php
index 74f19c5216dcb8fa706d9ffc770184dc99f2fd69..711eaa29a3125f459697d72b030ab5e8cfe18aa6 100644
--- a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/Storage/SessionStorageInterface.php
+++ b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/Storage/SessionStorageInterface.php
@@ -12,6 +12,7 @@
 namespace Symfony\Component\HttpFoundation\Session\Storage;
 
 use Symfony\Component\HttpFoundation\Session\SessionBagInterface;
+use Symfony\Component\HttpFoundation\Session\Storage\MetadataBag;
 
 /**
  * StorageInterface.
diff --git a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/StreamedResponse.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/StreamedResponse.php
index d9fece658f49a7c5d8e15750e4456c762449289d..ae579beaa954b9cbd1ee7c96b04373a98382994f 100644
--- a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/StreamedResponse.php
+++ b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/StreamedResponse.php
@@ -34,9 +34,9 @@ class StreamedResponse extends Response
     /**
      * Constructor.
      *
-     * @param callable|null $callback A valid PHP callback or null to set it later
-     * @param integer       $status   The response status code
-     * @param array         $headers  An array of response headers
+     * @param mixed   $callback A valid PHP callback
+     * @param integer $status   The response status code
+     * @param array   $headers  An array of response headers
      *
      * @api
      */
@@ -51,13 +51,7 @@ public function __construct($callback = null, $status = 200, $headers = array())
     }
 
     /**
-     * Factory method for chainability
-     *
-     * @param callable|null $callback A valid PHP callback or null to set it later
-     * @param integer       $status   The response status code
-     * @param array         $headers  An array of response headers
-     *
-     * @return StreamedResponse
+     * {@inheritDoc}
      */
     public static function create($callback = null, $status = 200, $headers = array())
     {
@@ -67,7 +61,7 @@ public static function create($callback = null, $status = 200, $headers = array(
     /**
      * Sets the PHP callback associated with this Response.
      *
-     * @param callable $callback A valid PHP callback
+     * @param mixed $callback A valid PHP callback
      *
      * @throws \LogicException
      */
diff --git a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/BinaryFileResponseTest.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/BinaryFileResponseTest.php
index 75863168d1dbd8d9acefa49f4019799132d20937..c3d324fa9f07c37c32632cb45576155c201088aa 100644
--- a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/BinaryFileResponseTest.php
+++ b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/BinaryFileResponseTest.php
@@ -84,73 +84,12 @@ 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=-35', 0, 35, 'bytes 0-34/35'),
+            array('bytes=-40', 0, 35, 'bytes 0-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());
-        $this->assertEquals('binary', $response->headers->get('Content-Transfer-Encoding'));
-    }
-
-    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('binary', $response->headers->get('Content-Transfer-Encoding'));
-        #$this->assertEquals('', $response->headers->get('Content-Range'));
-    }
-
-    public function provideInvalidRanges()
-    {
-        return array(
-            array('bytes=-40'),
-            array('bytes=30-40')
+            array('bytes=30-40', 30, 5, 'bytes 30-34/35')
         );
     }
 
diff --git a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/CookieTest.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/CookieTest.php
index def1c7a378f2160586f3a9c6f1e16cec2fd207ab..f4c9ec157450348936cd6e0f489794270989fdc2 100644
--- a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/CookieTest.php
+++ b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/CookieTest.php
@@ -38,7 +38,7 @@ public function invalidNames()
 
     /**
      * @dataProvider invalidNames
-     * @expectedException \InvalidArgumentException
+     * @expectedException InvalidArgumentException
      * @covers Symfony\Component\HttpFoundation\Cookie::__construct
      */
     public function testInstantiationThrowsExceptionIfCookieNameContainsInvalidCharacters($name)
@@ -47,11 +47,11 @@ public function testInstantiationThrowsExceptionIfCookieNameContainsInvalidChara
     }
 
     /**
-     * @expectedException \InvalidArgumentException
+     * @expectedException InvalidArgumentException
      */
     public function testInvalidExpiration()
     {
-        $cookie = new Cookie('MyCookie', 'foo', 'bar');
+        $cookie = new Cookie('MyCookie', 'foo','bar');
     }
 
     /**
diff --git a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/File/MimeType/MimeTypeTest.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/File/MimeType/MimeTypeTest.php
index 1078fc2d414af2ebbae7d9372b39fd4861fb14d7..7bf10a297e19cf60723d20fdb0e4a971281620fe 100644
--- a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/File/MimeType/MimeTypeTest.php
+++ b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/File/MimeType/MimeTypeTest.php
@@ -9,7 +9,7 @@
  * file that was distributed with this source code.
  */
 
-namespace Symfony\Component\HttpFoundation\Tests\File\MimeType;
+namespace Symfony\Component\HttpFoundation\Tests\File;
 
 use Symfony\Component\HttpFoundation\File\File;
 use Symfony\Component\HttpFoundation\File\MimeType\MimeTypeGuesser;
diff --git a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/File/UploadedFileTest.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/File/UploadedFileTest.php
index 5b48970d5e15897bc00db702fc7f6edde66fad7c..f6ea340091ba565434ea492130e96a6d232a9195 100644
--- a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/File/UploadedFileTest.php
+++ b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/File/UploadedFileTest.php
@@ -224,7 +224,7 @@ public function testIsValid()
             null,
             filesize(__DIR__.'/Fixtures/test.gif'),
             UPLOAD_ERR_OK,
-            true
+                true
         );
 
         $this->assertTrue($file->isValid());
diff --git a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/JsonResponseTest.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/JsonResponseTest.php
index ef392ca59dbe682e841ccef0ebf39b87bbb9d832..8f1383fba9b828615e5aa4830faf76d1602ebe01 100644
--- a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/JsonResponseTest.php
+++ b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/JsonResponseTest.php
@@ -159,27 +159,18 @@ public function testSetCallback()
         $this->assertEquals('text/javascript', $response->headers->get('Content-Type'));
     }
 
-    public function testJsonEncodeFlags()
-    {
-        $response = new JsonResponse('<>\'&"');
-
-        $this->assertEquals('"\u003C\u003E\u0027\u0026\u0022"', $response->getContent());
-    }
-
-    /**
-     * @expectedException \InvalidArgumentException
-     */
     public function testSetCallbackInvalidIdentifier()
     {
         $response = new JsonResponse('foo');
+
+        $this->setExpectedException('InvalidArgumentException');
         $response->setCallback('+invalid');
     }
 
-    /**
-     * @expectedException \InvalidArgumentException
-     */
-    public function testSetContent()
+    public function testJsonEncodeFlags()
     {
-        JsonResponse::create("\xB1\x31");
+        $response = new JsonResponse('<>\'&"');
+
+        $this->assertEquals('"\u003C\u003E\u0027\u0026\u0022"', $response->getContent());
     }
 }
diff --git a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/ParameterBagTest.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/ParameterBagTest.php
index 7f4f243b481bb94f5a79d3be0bba710fc2d87a72..6cd42bf91dd0fd31594175d4681dea5af3277ea9 100644
--- a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/ParameterBagTest.php
+++ b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/ParameterBagTest.php
@@ -205,10 +205,10 @@ public function testFilter()
 
         $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->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->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,
diff --git a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/RedirectResponseTest.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/RedirectResponseTest.php
index 2a097d6fd422a5b7233879e3846664d0f093c1fb..330d9fee51fbfdaeb1e17e483049f0b8ba1425ef 100644
--- a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/RedirectResponseTest.php
+++ b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/RedirectResponseTest.php
@@ -11,7 +11,7 @@
 
 namespace Symfony\Component\HttpFoundation\Tests;
 
-use Symfony\Component\HttpFoundation\RedirectResponse;
+use \Symfony\Component\HttpFoundation\RedirectResponse;
 
 class RedirectResponseTest extends \PHPUnit_Framework_TestCase
 {
diff --git a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/RequestTest.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/RequestTest.php
index db331f283d05b6bfff8e48d72a2e14f953cdfdaa..ba95c4aea965d0adbd4cdeb6d0c74f4cf70ed7cc 100644
--- a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/RequestTest.php
+++ b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/RequestTest.php
@@ -211,10 +211,6 @@ public function testCreate()
         $this->assertEquals('testnopass', $request->getUser());
         $this->assertNull($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());
     }
 
     /**
@@ -254,6 +250,9 @@ public function testCreateCheckPrecedence()
         $this->assertEquals('foo=bar', $request->getQueryString());
     }
 
+    /**
+     * @covers Symfony\Component\HttpFoundation\Request::duplicate
+     */
     public function testDuplicate()
     {
         $request = new Request(array('foo' => 'bar'), array('foo' => 'bar'), array('foo' => 'bar'), array(), array(), array('HTTP_FOO' => 'bar'));
@@ -272,21 +271,6 @@ public function testDuplicate()
         $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
@@ -669,18 +653,18 @@ public function testGetHost()
         $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');
+        $request->initialize(array(), array(), array(), array(), array(), array('HTTP_HOST' => 'www.exemple.com'));
+        $this->assertEquals('www.exemple.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');
+        $request->initialize(array(), array(), array(), array(), array(), array('HTTP_HOST' => 'www.exemple.com:8080'));
+        $this->assertEquals('www.exemple.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.exemple.com'));
+        $this->assertEquals('www.exemple.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'));
+        $request->initialize(array(), array(), array(), array(), array(), array('SERVER_NAME' => 'www.exemple.com', 'HTTP_HOST' => 'www.host.com'));
         $this->assertEquals('www.host.com', $request->getHost(), '->getHost() value from Host header has priority over SERVER_NAME ');
     }
 
@@ -715,31 +699,12 @@ public function testGetPort()
         ));
         $port = $request->getPort();
 
-        $this->assertEquals(80, $port, 'If X_FORWARDED_PROTO is set to HTTP return 80.');
-
-        $request = Request::create('http://example.com', 'GET', array(), array(), array(), array(
-            'HTTP_X_FORWARDED_PROTO' => 'On'
-        ));
-        $port = $request->getPort();
-        $this->assertEquals(443, $port, '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'
-        ));
-        $port = $request->getPort();
-        $this->assertEquals(443, $port, '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.');
-
+        $this->assertEquals(80, $port, 'If X_FORWARDED_PROTO is set to http return 80.');
         Request::setTrustedProxies(array());
     }
 
     /**
-     * @expectedException \RuntimeException
+     * @expectedException RuntimeException
      */
     public function testGetHostWithFakeHttpHostValue()
     {
@@ -881,14 +846,14 @@ public function testGetClientIpsProvider()
 
     public function testGetContentWorksTwiceInDefaultMode()
     {
-        $req = new Request();
+        $req = new Request;
         $this->assertEquals('', $req->getContent());
         $this->assertEquals('', $req->getContent());
     }
 
     public function testGetContentReturnsResource()
     {
-        $req = new Request();
+        $req = new Request;
         $retval = $req->getContent(true);
         $this->assertInternalType('resource', $retval);
         $this->assertEquals("", fread($retval, 1));
@@ -896,12 +861,12 @@ public function testGetContentReturnsResource()
     }
 
     /**
-     * @expectedException \LogicException
+     * @expectedException LogicException
      * @dataProvider getContentCantBeCalledTwiceWithResourcesProvider
      */
     public function testGetContentCantBeCalledTwiceWithResources($first, $second)
     {
-        $req = new Request();
+        $req = new Request;
         $req->getContent($first);
         $req->getContent($second);
     }
@@ -1001,12 +966,6 @@ public function testOverrideGlobals()
 
         $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);
-
         // restore initial $_SERVER array
         $_SERVER = $server;
     }
@@ -1163,22 +1122,6 @@ public function testGetCharsets()
         $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();
@@ -1361,7 +1304,7 @@ public function getBaseUrlData()
      */
     public function testUrlencodedStringPrefix($string, $prefix, $expect)
     {
-        $request = new Request();
+        $request = new Request;
 
         $me = new \ReflectionMethod($request, 'getUrlencodedPrefix');
         $me->setAccessible(true);
@@ -1442,13 +1385,6 @@ public function testTrustedProxies()
         $this->assertEquals(443, $request->getPort());
         $this->assertTrue($request->isSecure());
 
-        // check various X_FORWARDED_PROTO header values
-        $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');
@@ -1477,24 +1413,6 @@ public function testTrustedProxies()
         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
      */
@@ -1507,7 +1425,7 @@ public function testIISRequestUri($headers, $server, $expectedRequestUri)
         $this->assertEquals($expectedRequestUri, $request->getRequestUri(), '->getRequestUri() is correct');
 
         $subRequestUri = '/bar/foo';
-        $subRequest = Request::create($subRequestUri, 'get', array(), array(), array(), $request->server->all());
+        $subRequest = $request::create($subRequestUri, 'get', array(), array(), array(), $request->server->all());
         $this->assertEquals($subRequestUri, $subRequest->getRequestUri(), '->getRequestUri() is correct in sub request');
     }
 
@@ -1608,35 +1526,12 @@ public function testTrustedHosts()
         // 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);
-    }
 }
 
 class RequestContentProxy extends Request
@@ -1646,11 +1541,3 @@ 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/Symfony/Component/HttpFoundation/Tests/ResponseTest.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/ResponseTest.php
index 11eb38c72372fa23feea71fcceb3dee626680360..3a084954c4430b0e715d1d1ccc34781a3fb0b62c 100644
--- a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/ResponseTest.php
+++ b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/ResponseTest.php
@@ -79,19 +79,6 @@ public function testIsCacheable()
         $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();
@@ -131,50 +118,6 @@ public function testIsNotModified()
         $this->assertFalse($modified);
     }
 
-    public function testIsNotModifiedNotSafe()
-    {
-        $request = Request::create('/homepage', 'POST');
-
-        $response = new Response();
-        $this->assertFalse($response->isNotModified($request));
-    }
-
-    public function testIsNotModifiedLastModified()
-    {
-        $modified = 'Sun, 25 Aug 2013 18: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', '');
-        $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 testIsValidateable()
     {
         $response = new Response('', 200, array('Last-Modified' => $this->createDateTimeOneHourAgo()->format(DATE_RFC2822)));
@@ -418,44 +361,11 @@ 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());
 
-        $response->setContent('content');
-        $response->setStatusCode(304);
-        $response->prepare($request);
         $this->assertEquals('', $response->getContent());
     }
 
-    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');
@@ -724,7 +634,7 @@ public function testSetContent($content)
     }
 
     /**
-     * @expectedException \UnexpectedValueException
+     * @expectedException UnexpectedValueException
      * @dataProvider invalidContentProvider
      */
     public function testSetContentInvalid($content)
@@ -758,7 +668,7 @@ public function testSettersAreChainable()
     public function validContentProvider()
     {
         return array(
-            'obj'    => array(new StringableObject()),
+            'obj'    => array(new StringableObject),
             'string' => array('Foo'),
             'int'    => array(2),
         );
diff --git a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/ServerBagTest.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/ServerBagTest.php
index 89920f1fbc546b1103e6cc1fcebaf185e57c072d..f8e487d7f87435061a8602618f129d7fbc1b7fa9 100644
--- a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/ServerBagTest.php
+++ b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/ServerBagTest.php
@@ -89,28 +89,6 @@ public function testHttpBasicAuthWithPhpCgiEmptyPassword()
         ), $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 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';
diff --git a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/Session/Storage/Handler/MemcacheSessionHandlerTest.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/Session/Storage/Handler/MemcacheSessionHandlerTest.php
index 8d38ab3de991ec38b084f30cfc183ca646bdc0d9..da0440d4289e862fc867c504ef2a5a16e4b3ab65 100644
--- a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/Session/Storage/Handler/MemcacheSessionHandlerTest.php
+++ b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/Session/Storage/Handler/MemcacheSessionHandlerTest.php
@@ -121,12 +121,4 @@ public function getOptionFixtures()
             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/Symfony/Component/HttpFoundation/Tests/Session/Storage/Handler/MemcachedSessionHandlerTest.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/Session/Storage/Handler/MemcachedSessionHandlerTest.php
index 72be3272526f6ebfed93d01abf720fad45151c09..985fae488877178a0d840c21338c7907072435be 100644
--- a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/Session/Storage/Handler/MemcachedSessionHandlerTest.php
+++ b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/Session/Storage/Handler/MemcachedSessionHandlerTest.php
@@ -116,12 +116,4 @@ public function getOptionFixtures()
             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/Symfony/Component/HttpFoundation/Tests/Session/Storage/Handler/MongoDbSessionHandlerTest.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/Session/Storage/Handler/MongoDbSessionHandlerTest.php
index d907ce4a9031d1f24c2ef3661dd8af3521fffdf1..1cfd1175cbe188bbd52f6c2c90ee412dca6b23d8 100644
--- a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/Session/Storage/Handler/MongoDbSessionHandlerTest.php
+++ b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/Session/Storage/Handler/MongoDbSessionHandlerTest.php
@@ -31,7 +31,7 @@ protected function setUp()
             $this->markTestSkipped('MongoDbSessionHandler requires the PHP "mongo" extension.');
         }
 
-        $mongoClass = version_compare(phpversion('mongo'), '1.3.0', '<') ? 'Mongo' : 'MongoClient';
+        $mongoClass = (version_compare(phpversion('mongo'), '1.3.0', '<')) ? 'Mongo' : 'MongoClient';
 
         $this->mongo = $this->getMockBuilder($mongoClass)
             ->disableOriginalConstructor()
@@ -49,7 +49,7 @@ protected function setUp()
     }
 
     /**
-     * @expectedException \InvalidArgumentException
+     * @expectedException InvalidArgumentException
      */
     public function testConstructorShouldThrowExceptionForInvalidMongo()
     {
@@ -57,7 +57,7 @@ public function testConstructorShouldThrowExceptionForInvalidMongo()
     }
 
     /**
-     * @expectedException \InvalidArgumentException
+     * @expectedException InvalidArgumentException
      */
     public function testConstructorShouldThrowExceptionForMissingOptions()
     {
@@ -90,7 +90,7 @@ public function testWrite()
 
         $collection->expects($this->once())
             ->method('update')
-            ->will($this->returnCallback(function ($criteria, $updateData, $options) use ($that, &$data) {
+            ->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);
 
@@ -118,7 +118,7 @@ public function testReplaceSessionData()
 
         $collection->expects($this->exactly(2))
             ->method('update')
-            ->will($this->returnCallback(function ($criteria, $updateData, $options) use (&$data) {
+            ->will($this->returnCallback(function($criteria, $updateData, $options) use (&$data) {
                 $data = $updateData;
             }));
 
@@ -161,21 +161,11 @@ public function testGc()
 
         $collection->expects($this->once())
             ->method('remove')
-            ->will($this->returnCallback(function ($criteria) use ($that) {
+            ->will($this->returnCallback(function($criteria) use ($that) {
                 $that->assertInstanceOf('MongoDate', $criteria[$that->options['time_field']]['$lt']);
                 $that->assertGreaterThanOrEqual(time() - -1, $criteria[$that->options['time_field']]['$lt']->sec);
             }));
 
         $this->assertTrue($this->storage->gc(-1));
     }
-
-    public function testGetConnection()
-    {
-        $method = new \ReflectionMethod($this->storage, 'getMongo');
-        $method->setAccessible(true);
-
-        $mongoClass = (version_compare(phpversion('mongo'), '1.3.0', '<')) ? '\Mongo' : '\MongoClient';
-
-        $this->assertInstanceOf($mongoClass, $method->invoke($this->storage));
-    }
 }
diff --git a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/Session/Storage/Handler/NullSessionHandlerTest.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/Session/Storage/Handler/NullSessionHandlerTest.php
index 371ab6f3fa067e5c3a6400115893465c9d15861f..45a47ce8fa563738e2ae669a1c32c4332ca9dd3b 100644
--- a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/Session/Storage/Handler/NullSessionHandlerTest.php
+++ b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/Session/Storage/Handler/NullSessionHandlerTest.php
@@ -22,7 +22,7 @@
  *
  * @runTestsInSeparateProcesses
  */
-class NullSessionHandlerTest extends \PHPUnit_Framework_TestCase
+class NullSessionStorageTest extends \PHPUnit_Framework_TestCase
 {
     public function testSaveHandlers()
     {
diff --git a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/Session/Storage/Handler/PdoSessionHandlerTest.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/Session/Storage/Handler/PdoSessionHandlerTest.php
index 06da0096f3c476290be18ab1b6cb4fefbd3cd4ea..1abf3844c6fdfc2544b80a4bf307a08d4a34794a 100644
--- a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/Session/Storage/Handler/PdoSessionHandlerTest.php
+++ b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/Session/Storage/Handler/PdoSessionHandlerTest.php
@@ -98,14 +98,4 @@ public function testSessionGC()
         $storage->gc(-1);
         $this->assertEquals(0, count($this->pdo->query('SELECT * FROM sessions')->fetchAll()));
     }
-
-    public function testGetConnection()
-    {
-        $storage = new PdoSessionHandler($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/Symfony/Component/HttpFoundation/Tests/Session/Storage/Handler/WriteCheckSessionHandlerTest.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/Session/Storage/Handler/WriteCheckSessionHandlerTest.php
deleted file mode 100644
index dcfd94bd1ecfbe4b5886186e3f19a8f444dc25fd..0000000000000000000000000000000000000000
--- a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/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->assertEquals(true, $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->assertEquals(true, $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->assertEquals(true, $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->assertEquals(true, $writeCheckSessionHandler->write('foo', 'baZZZ'));
-    }
-}
diff --git a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/Session/Storage/MetadataBagTest.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/Session/Storage/MetadataBagTest.php
index c502c38ae613e23f6d15646848dbe1688d606692..ef70281ce08d30d50122e44dc1f98575702ca5d4 100644
--- a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/Session/Storage/MetadataBagTest.php
+++ b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/Session/Storage/MetadataBagTest.php
@@ -43,23 +43,27 @@ protected function tearDown()
 
     public function testInitialize()
     {
-        $sessionMetadata = array();
+        $p = new \ReflectionProperty('Symfony\Component\HttpFoundation\Session\Storage\MetadataBag', 'meta');
+        $p->setAccessible(true);
 
         $bag1 = new MetadataBag();
-        $bag1->initialize($sessionMetadata);
+        $array = array();
+        $bag1->initialize($array);
         $this->assertGreaterThanOrEqual(time(), $bag1->getCreated());
         $this->assertEquals($bag1->getCreated(), $bag1->getLastUsed());
 
         sleep(1);
         $bag2 = new MetadataBag();
-        $bag2->initialize($sessionMetadata);
+        $array2 = $p->getValue($bag1);
+        $bag2->initialize($array2);
         $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);
+        $array3 = $p->getValue($bag2);
+        $bag3->initialize($array3);
         $this->assertEquals($bag1->getCreated(), $bag3->getCreated());
         $this->assertGreaterThan($bag2->getLastUsed(), $bag3->getLastUsed());
         $this->assertNotEquals($bag3->getCreated(), $bag3->getLastUsed());
@@ -100,36 +104,4 @@ 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/Symfony/Component/HttpFoundation/Tests/Session/Storage/MockArraySessionStorageTest.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/Session/Storage/MockArraySessionStorageTest.php
index c56ea4a60071e038cf603bce6db9ac5d29ca07b6..2a6f6bb7e8fe56019f7e5fae1bd0f65d82a98530 100644
--- a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/Session/Storage/MockArraySessionStorageTest.php
+++ b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/Session/Storage/MockArraySessionStorageTest.php
@@ -97,7 +97,7 @@ public function testGetId()
     }
 
     /**
-     * @expectedException \RuntimeException
+     * @expectedException RuntimeException
      */
     public function testUnstartedSave()
     {
diff --git a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/Session/Storage/MockFileSessionStorageTest.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/Session/Storage/MockFileSessionStorageTest.php
index 329c090d8d9171f8f37454ba8f5d29f986f65837..d42c62a25ca07ad3c62ee7bf567a06884e73bfe0 100644
--- a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/Session/Storage/MockFileSessionStorageTest.php
+++ b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/Session/Storage/MockFileSessionStorageTest.php
@@ -107,7 +107,7 @@ public function testMultipleInstances()
     }
 
     /**
-     * @expectedException \RuntimeException
+     * @expectedException RuntimeException
      */
     public function testSaveWithoutStart()
     {
diff --git a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/Session/Storage/NativeSessionStorageTest.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/Session/Storage/NativeSessionStorageTest.php
index 691ee1459347a921910943fec55e5e79bda0c363..14ae52f97be356a126af5f9783dc8499bd1c4b43 100644
--- a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/Session/Storage/NativeSessionStorageTest.php
+++ b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/Session/Storage/NativeSessionStorageTest.php
@@ -59,7 +59,7 @@ protected function tearDown()
     protected function getStorage(array $options = array())
     {
         $storage = new NativeSessionStorage($options);
-        $storage->registerBag(new AttributeBag());
+        $storage->registerBag(new AttributeBag);
 
         return $storage;
     }
@@ -85,12 +85,8 @@ public function testGetId()
     {
         $storage = $this->getStorage();
         $this->assertEquals('', $storage->getId());
-
         $storage->start();
         $this->assertNotEquals('', $storage->getId());
-
-        $storage->save();
-        $this->assertNotEquals('', $storage->getId());
     }
 
     public function testRegenerate()
@@ -158,7 +154,7 @@ public function testCookieOptions()
     public function testSetSaveHandlerException()
     {
         $storage = $this->getStorage();
-        $storage->setSaveHandler(new \stdClass);
+        $storage->setSaveHandler(new \StdClass);
     }
 
     public function testSetSaveHandler53()
diff --git a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/Session/Storage/PhpBridgeSessionStorageTest.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/Session/Storage/PhpBridgeSessionStorageTest.php
index 0510f3fe9a5a87a72016e8b46ab1e18a19641f50..d5a66d61efc5f3c61dbfc9c54e8d973baef9fc73 100644
--- a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/Session/Storage/PhpBridgeSessionStorageTest.php
+++ b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/Session/Storage/PhpBridgeSessionStorageTest.php
@@ -23,7 +23,7 @@
  *
  * @runTestsInSeparateProcesses
  */
-class PhpBridgeSessionStorageTest extends \PHPUnit_Framework_TestCase
+class PhpSessionStorageTest extends \PHPUnit_Framework_TestCase
 {
     private $savePath;
 
@@ -53,7 +53,7 @@ protected function tearDown()
     protected function getStorage()
     {
         $storage = new PhpBridgeSessionStorage();
-        $storage->registerBag(new AttributeBag());
+        $storage->registerBag(new AttributeBag);
 
         return $storage;
     }
diff --git a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/Session/Storage/Proxy/AbstractProxyTest.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/Session/Storage/Proxy/AbstractProxyTest.php
index 58b632aeb0e50831f9293df655e1b0374e7ee6de..6b8bba0d5b0d35aa23a4dacd28c7361bcb638500 100644
--- a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/Session/Storage/Proxy/AbstractProxyTest.php
+++ b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/Session/Storage/Proxy/AbstractProxyTest.php
@@ -22,7 +22,7 @@ class ConcreteProxy extends AbstractProxy
 
 class ConcreteSessionHandlerInterfaceProxy extends AbstractProxy implements \SessionHandlerInterface
 {
-    public function open($savePath, $sessionName)
+   public function open($savePath, $sessionName)
     {
     }
 
diff --git a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/composer.json b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/composer.json
index 09f5b24aa0aedae9ba67aa08fe27368dbfcb6f70..f77e08ebd6ace99f45752d2ff7ba9dcd3f435bcd 100644
--- a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/composer.json
+++ b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/composer.json
@@ -26,7 +26,7 @@
     "minimum-stability": "dev",
     "extra": {
         "branch-alias": {
-            "dev-master": "2.4-dev"
+            "dev-master": "2.3-dev"
         }
     }
 }
diff --git a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Bundle/Bundle.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Bundle/Bundle.php
index 2fdbe1ccd0faa0593da28b19a95199b8c1208cde..215d1e1862d9bd419be7352a5ab37469bf1d960b 100644
--- a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Bundle/Bundle.php
+++ b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Bundle/Bundle.php
@@ -29,8 +29,8 @@
 abstract class Bundle extends ContainerAware implements BundleInterface
 {
     protected $name;
+    protected $reflected;
     protected $extension;
-    protected $path;
 
     /**
      * Boots the Bundle.
@@ -109,9 +109,11 @@ public function getContainerExtension()
      */
     public function getNamespace()
     {
-        $class = get_class($this);
+        if (null === $this->reflected) {
+            $this->reflected = new \ReflectionObject($this);
+        }
 
-        return substr($class, 0, strrpos($class, '\\'));
+        return $this->reflected->getNamespaceName();
     }
 
     /**
@@ -123,12 +125,11 @@ public function getNamespace()
      */
     public function getPath()
     {
-        if (null === $this->path) {
-            $reflected = new \ReflectionObject($this);
-            $this->path = dirname($reflected->getFileName());
+        if (null === $this->reflected) {
+            $this->reflected = new \ReflectionObject($this);
         }
 
-        return $this->path;
+        return dirname($this->reflected->getFileName());
     }
 
     /**
@@ -159,7 +160,7 @@ final public function getName()
         $name = get_class($this);
         $pos = strrpos($name, '\\');
 
-        return $this->name = false === $pos ? $name : substr($name, $pos + 1);
+        return $this->name = false === $pos ? $name :  substr($name, $pos + 1);
     }
 
     /**
@@ -187,14 +188,7 @@ public function registerCommands(Application $application)
             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);
+            $r = new \ReflectionClass($ns.'\\'.$file->getBasename('.php'));
             if ($r->isSubclassOf('Symfony\\Component\\Console\\Command\\Command') && !$r->isAbstract() && !$r->getConstructor()->getNumberOfRequiredParameters()) {
                 $application->add($r->newInstance());
             }
diff --git a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/CHANGELOG.md b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/CHANGELOG.md
index 66219ae11637b5cf4d606707455601b0e97e8756..c06dd3fa57e07261609ac31a82eae46349b457f1 100644
--- a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/CHANGELOG.md
+++ b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/CHANGELOG.md
@@ -1,12 +1,6 @@
 CHANGELOG
 =========
 
-2.4.0
------
-
- * added event listeners for the session
- * added the KernelEvents::FINISH_REQUEST event
-
 2.3.0
 -----
 
diff --git a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/CacheWarmer/CacheWarmerAggregate.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/CacheWarmer/CacheWarmerAggregate.php
index bd96057ded64c8e6e576a2febd6a162311b28c9a..eb26ac59e62dca1052d0c0e0507092a2b8846694 100644
--- a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/CacheWarmer/CacheWarmerAggregate.php
+++ b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/CacheWarmer/CacheWarmerAggregate.php
@@ -18,14 +18,13 @@
  */
 class CacheWarmerAggregate implements CacheWarmerInterface
 {
-    protected $warmers = array();
-    protected $optionalsEnabled = false;
+    protected $warmers;
+    protected $optionalsEnabled;
 
     public function __construct(array $warmers = array())
     {
-        foreach ($warmers as $warmer) {
-            $this->add($warmer);
-        }
+        $this->setWarmers($warmers);
+        $this->optionalsEnabled = false;
     }
 
     public function enableOptionalWarmers()
diff --git a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Client.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Client.php
index b40d7006d696cde716ad206097a7d472b6cba397..bb427b35af22d441810ed7db26bdc4992003a237 100644
--- a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Client.php
+++ b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Client.php
@@ -11,15 +11,16 @@
 
 namespace Symfony\Component\HttpKernel;
 
+use Symfony\Component\HttpFoundation\File\UploadedFile;
+use Symfony\Component\HttpFoundation\Request;
+use Symfony\Component\HttpFoundation\Response;
 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;
+use Symfony\Component\HttpKernel\TerminableInterface;
 
 /**
  * Client simulates a browser and makes requests to a Kernel object.
@@ -42,11 +43,11 @@ class Client extends BaseClient
      */
     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);
+
+        $this->followRedirects = false;
     }
 
     /**
@@ -103,7 +104,7 @@ protected function getScript($request)
         $requirePath = str_replace("'", "\\'", $r->getFileName());
         $symfonyPath = str_replace("'", "\\'", realpath(__DIR__.'/../../..'));
 
-        $code = <<<EOF
+        return <<<EOF
 <?php
 
 require_once '$requirePath';
@@ -113,22 +114,7 @@ protected function getScript($request)
 \$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);
+echo serialize(\$kernel->handle(unserialize('$request')));
 EOF;
     }
 
diff --git a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Controller/ControllerResolver.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Controller/ControllerResolver.php
index 46484498474c12005edb0168a2230d463075bf1e..047ade1062cad87e2bd512f1c64f0cd90d9880a2 100644
--- a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Controller/ControllerResolver.php
+++ b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Controller/ControllerResolver.php
@@ -40,11 +40,18 @@ public function __construct(LoggerInterface $logger = null)
     }
 
     /**
-     * {@inheritdoc}
+     * Returns the Controller instance associated with a Request.
      *
      * This method looks for a '_controller' request attribute that represents
      * the controller name (a string like ClassName::MethodName).
      *
+     * @param Request $request A Request instance
+     *
+     * @return mixed|Boolean A PHP callable representing the Controller,
+     *                       or false if this resolver is not able to determine the controller
+     *
+     * @throws \InvalidArgumentException|\LogicException If the controller can't be found
+     *
      * @api
      */
     public function getController(Request $request)
@@ -79,7 +86,14 @@ public function getController(Request $request)
     }
 
     /**
-     * {@inheritdoc}
+     * Returns the arguments to pass to the controller.
+     *
+     * @param Request $request    A Request instance
+     * @param mixed   $controller A PHP callable
+     *
+     * @return array
+     *
+     * @throws \RuntimeException When value for argument given is not provided
      *
      * @api
      */
diff --git a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Controller/ControllerResolverInterface.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Controller/ControllerResolverInterface.php
index 6f805ed2dab77586fd3962f1d5dad882f435b6d5..f58f50db53292d2c777c9a221a277768014c12e6 100644
--- a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Controller/ControllerResolverInterface.php
+++ b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Controller/ControllerResolverInterface.php
@@ -38,10 +38,10 @@ interface ControllerResolverInterface
      *
      * @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
+     * @return mixed|Boolean 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
+     * @throws \InvalidArgumentException|\LogicException If the controller can't be found
      *
      * @api
      */
@@ -50,8 +50,8 @@ 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
+     * @param Request $request    A Request instance
+     * @param mixed   $controller A PHP callable
      *
      * @return array An array of arguments to pass to the controller
      *
diff --git a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/DataCollector/ConfigDataCollector.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/DataCollector/ConfigDataCollector.php
index 51b6d7ae01a44618f246a8a78af39396107ddfb6..47529fd19048d2b01c165d7e6f8d71e537cb5658 100644
--- a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/DataCollector/ConfigDataCollector.php
+++ b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/DataCollector/ConfigDataCollector.php
@@ -13,6 +13,7 @@
 
 use Symfony\Component\HttpKernel\KernelInterface;
 use Symfony\Component\HttpKernel\Kernel;
+use Symfony\Component\HttpKernel\DataCollector\DataCollector;
 use Symfony\Component\HttpFoundation\Request;
 use Symfony\Component\HttpFoundation\Response;
 
diff --git a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/DataCollector/DataCollector.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/DataCollector/DataCollector.php
index 1835938a07263ac046b81328bbcbe45bbae068a7..7d9c28943b72f419899ec85b9859d3d8b2ae179d 100644
--- a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/DataCollector/DataCollector.php
+++ b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/DataCollector/DataCollector.php
@@ -11,25 +11,17 @@
 
 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;
 
-    /**
-     * @var ValueExporter
-     */
-    private $valueExporter;
-
     public function serialize()
     {
         return serialize($this->data);
@@ -49,10 +41,35 @@ public function unserialize($data)
      */
     protected function varToString($var)
     {
-        if (null === $this->valueExporter) {
-            $this->valueExporter = new ValueExporter();
+        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 $this->valueExporter->exportValue($var);
+        return (string) $var;
     }
 }
diff --git a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/DataCollector/EventDataCollector.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/DataCollector/EventDataCollector.php
index 418ed686c64d8456e93cb3e320bba110c35c1bbb..cd7f7870177c2bc836f5920a9addc2cb8a08aecb 100644
--- a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/DataCollector/EventDataCollector.php
+++ b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/DataCollector/EventDataCollector.php
@@ -13,7 +13,6 @@
 
 use Symfony\Component\HttpFoundation\Request;
 use Symfony\Component\HttpFoundation\Response;
-use Symfony\Component\EventDispatcher\EventDispatcherInterface;
 use Symfony\Component\EventDispatcher\Debug\TraceableEventDispatcherInterface;
 
 /**
@@ -21,15 +20,8 @@
  *
  * @author Fabien Potencier <fabien@symfony.com>
  */
-class EventDataCollector extends DataCollector implements LateDataCollectorInterface
+class EventDataCollector extends DataCollector
 {
-    protected $dispatcher;
-
-    public function __construct(EventDispatcherInterface $dispatcher = null)
-    {
-        $this->dispatcher = $dispatcher;
-    }
-
     /**
      * {@inheritdoc}
      */
@@ -41,14 +33,6 @@ public function collect(Request $request, Response $response, \Exception $except
         );
     }
 
-    public function lateCollect()
-    {
-        if ($this->dispatcher instanceof TraceableEventDispatcherInterface) {
-            $this->setCalledListeners($this->dispatcher->getCalledListeners());
-            $this->setNotCalledListeners($this->dispatcher->getNotCalledListeners());
-        }
-    }
-
     /**
      * Sets the called listeners.
      *
diff --git a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/DataCollector/LateDataCollectorInterface.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/DataCollector/LateDataCollectorInterface.php
deleted file mode 100644
index 012332de479f742c4df52b8c4077af57d53ef6e8..0000000000000000000000000000000000000000
--- a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/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/Symfony/Component/HttpKernel/DataCollector/LoggerDataCollector.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/DataCollector/LoggerDataCollector.php
index ba2ea44c5ed32f986d752f417b85e54421346910..f08720e8073bb9e877b838e526c3988ef06edda1 100644
--- a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/DataCollector/LoggerDataCollector.php
+++ b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/DataCollector/LoggerDataCollector.php
@@ -21,7 +21,7 @@
  *
  * @author Fabien Potencier <fabien@symfony.com>
  */
-class LoggerDataCollector extends DataCollector implements LateDataCollectorInterface
+class LoggerDataCollector extends DataCollector
 {
     private $logger;
 
@@ -36,14 +36,6 @@ public function __construct($logger = null)
      * {@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 = array(
diff --git a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/DataCollector/MemoryDataCollector.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/DataCollector/MemoryDataCollector.php
index e36f1f457e7b139c1b384874853ee5ba90050ea7..5540a1b27ac93ddb9a44e9424ef995312cfe0b00 100644
--- a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/DataCollector/MemoryDataCollector.php
+++ b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/DataCollector/MemoryDataCollector.php
@@ -19,13 +19,13 @@
  *
  * @author Fabien Potencier <fabien@symfony.com>
  */
-class MemoryDataCollector extends DataCollector implements LateDataCollectorInterface
+class MemoryDataCollector extends DataCollector
 {
     public function __construct()
     {
         $this->data = array(
             'memory'       => 0,
-            'memory_limit' => $this->convertToBytes(ini_get('memory_limit')),
+            'memory_limit' => $this->convertToBytes(strtolower(ini_get('memory_limit'))),
         );
     }
 
@@ -37,14 +37,6 @@ public function collect(Request $request, Response $response, \Exception $except
         $this->updateMemoryUsage();
     }
 
-    /**
-     * {@inheritdoc}
-     */
-    public function lateCollect()
-    {
-        $this->updateMemoryUsage();
-    }
-
     /**
      * Gets the memory.
      *
@@ -87,23 +79,13 @@ private function convertToBytes($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 = intval($max);
-        }
+        if (preg_match('#^\+?(0x?)?(.*?)([kmg]?)$#', $memoryLimit, $match)) {
+            $shifts = array('' => 0, 'k' => 10, 'm' => 20, 'g' => 30);
+            $bases = array('' => 10, '0' => 8, '0x' => 16);
 
-        switch (substr($memoryLimit, -1)) {
-            case 't': $max *= 1024;
-            case 'g': $max *= 1024;
-            case 'm': $max *= 1024;
-            case 'k': $max *= 1024;
+            return intval($match[2], $bases[$match[1]]) << $shifts[$match[3]];
         }
 
-        return $max;
+        return 0;
     }
 }
diff --git a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/DataCollector/RequestDataCollector.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/DataCollector/RequestDataCollector.php
index 4473605e843fc6020bb243bd604ec858c490b852..934c8477a52888f8fc7cb132e7b5c6d6a1366a22 100644
--- a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/DataCollector/RequestDataCollector.php
+++ b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/DataCollector/RequestDataCollector.php
@@ -50,15 +50,11 @@ public function collect(Request $request, Response $response, \Exception $except
 
         $attributes = array();
         foreach ($request->attributes->all() as $key => $value) {
-            if ('_route' === $key && is_object($value)) {
-                $attributes['_route'] = $this->varToString($value->getPath());
-            } elseif ('_route_params' === $key) {
-                foreach ($value as $key => $v) {
-                    $attributes['_route_params'][$key] = $this->varToString($v);
-                }
-            } else {
-                $attributes[$key] = $this->varToString($value);
+            if ('_route' == $key && is_object($value)) {
+                $value = $value->getPath();
             }
+
+            $attributes[$key] = $this->varToString($value);
         }
 
         $content = null;
diff --git a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/DataCollector/RouterDataCollector.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/DataCollector/RouterDataCollector.php
index 8757412c63c5d7d8633d734ceb836c173f43397f..80e250ad0f689c653fea8d05a6137ee2305e0853 100644
--- a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/DataCollector/RouterDataCollector.php
+++ b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/DataCollector/RouterDataCollector.php
@@ -14,6 +14,7 @@
 use Symfony\Component\HttpFoundation\Request;
 use Symfony\Component\HttpFoundation\Response;
 use Symfony\Component\HttpFoundation\RedirectResponse;
+use Symfony\Component\HttpKernel\DataCollector\DataCollector;
 use Symfony\Component\HttpKernel\Event\FilterControllerEvent;
 
 /**
@@ -49,8 +50,6 @@ public function collect(Request $request, Response $response, \Exception $except
                 $this->data['route'] = $this->guessRoute($request, $this->controllers[$request]);
             }
         }
-
-        unset($this->controllers[$request]);
     }
 
     protected function guessRoute(Request $request, $controller)
diff --git a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/DataCollector/TimeDataCollector.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/DataCollector/TimeDataCollector.php
index 4b5b00f0bf369aa7026fc5915b6fdc9931b1cd7c..74d7616bf9cfc31a64cd4fe49940e84d61720167 100644
--- a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/DataCollector/TimeDataCollector.php
+++ b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/DataCollector/TimeDataCollector.php
@@ -11,24 +11,23 @@
 
 namespace Symfony\Component\HttpKernel\DataCollector;
 
+use Symfony\Component\HttpKernel\DataCollector\DataCollector;
+use Symfony\Component\HttpKernel\KernelInterface;
 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
+class TimeDataCollector extends DataCollector
 {
     protected $kernel;
-    protected $stopwatch;
 
-    public function __construct(KernelInterface $kernel = null, $stopwatch = null)
+    public function __construct(KernelInterface $kernel = null)
     {
         $this->kernel = $kernel;
-        $this->stopwatch = $stopwatch;
     }
 
     /**
@@ -43,23 +42,11 @@ public function collect(Request $request, Response $response, \Exception $except
         }
 
         $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.
      *
diff --git a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/DataCollector/Util/ValueExporter.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/DataCollector/Util/ValueExporter.php
deleted file mode 100644
index f3aeb80cb227c4e6e35b09e3c6fef8d14b4506ba..0000000000000000000000000000000000000000
--- a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/DataCollector/Util/ValueExporter.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\DataCollector\Util;
-
-/**
- * @author Bernhard Schussek <bschussek@gmail.com>
- */
-class ValueExporter
-{
-    /**
-     * Converts a PHP value to a string.
-     *
-     * @param mixed $value The PHP value
-     *
-     * @return string The string representation of the given value
-     */
-    public function exportValue($value)
-    {
-        if (is_object($value)) {
-            return sprintf('Object(%s)', get_class($value));
-        }
-
-        if (is_array($value)) {
-            $a = array();
-            foreach ($value as $k => $v) {
-                $a[] = sprintf('%s => %s', $k, $this->exportValue($v));
-            }
-
-            return sprintf("Array(%s)", implode(', ', $a));
-        }
-
-        if (is_resource($value)) {
-            return sprintf('Resource(%s)', get_resource_type($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/Symfony/Component/HttpKernel/Debug/TraceableEventDispatcher.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Debug/TraceableEventDispatcher.php
index c8905fe304a7f67c2b810a538dd979910ca26fbe..6bfd7a01dd38d8fd31b410a58279397863609969 100644
--- a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Debug/TraceableEventDispatcher.php
+++ b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Debug/TraceableEventDispatcher.php
@@ -13,8 +13,10 @@
 
 use Symfony\Component\Stopwatch\Stopwatch;
 use Symfony\Component\HttpKernel\KernelEvents;
-use Symfony\Component\HttpKernel\Profiler\Profiler;
 use Psr\Log\LoggerInterface;
+use Symfony\Component\HttpKernel\Profiler\Profile;
+use Symfony\Component\HttpKernel\Profiler\Profiler;
+use Symfony\Component\HttpKernel\HttpKernelInterface;
 use Symfony\Component\EventDispatcher\Event;
 use Symfony\Component\EventDispatcher\EventDispatcherInterface;
 use Symfony\Component\EventDispatcher\EventSubscriberInterface;
@@ -30,13 +32,13 @@
 class TraceableEventDispatcher implements EventDispatcherInterface, TraceableEventDispatcherInterface
 {
     private $logger;
-    private $called = array();
+    private $called;
     private $stopwatch;
+    private $profiler;
     private $dispatcher;
-    private $wrappedListeners = array();
-    private $firstCalledEvent = array();
+    private $wrappedListeners;
+    private $firstCalledEvent;
     private $id;
-    private $lastEventId = 0;
 
     /**
      * Constructor.
@@ -50,21 +52,19 @@ public function __construct(EventDispatcherInterface $dispatcher, Stopwatch $sto
         $this->dispatcher = $dispatcher;
         $this->stopwatch = $stopwatch;
         $this->logger = $logger;
+        $this->called = array();
+        $this->wrappedListeners = array();
+        $this->firstCalledEvent = array();
     }
 
     /**
      * 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 Deprecated since version 2.4, to be removed in 3.0.
      */
     public function setProfiler(Profiler $profiler = null)
     {
+        $this->profiler = $profiler;
     }
 
     /**
@@ -124,7 +124,7 @@ public function dispatch($eventName, Event $event = null)
             $event = new Event();
         }
 
-        $this->id = $eventId = ++$this->lastEventId;
+        $this->id = spl_object_hash($event);
 
         $this->preDispatch($eventName, $event);
 
@@ -139,13 +139,11 @@ public function dispatch($eventName, Event $event = null)
         $this->dispatcher->dispatch($eventName, $event);
 
         // reset the id as another event might have been dispatched during the dispatching of this event
-        $this->id = $eventId;
+        $this->id = spl_object_hash($event);
 
         unset($this->firstCalledEvent[$eventName]);
 
-        if ($e->isStarted()) {
-            $e->stop();
-        }
+        $e->stop();
 
         $this->postDispatch($eventName, $event);
 
@@ -259,7 +257,7 @@ public function preListenerCall($eventName, $listener)
      * @param object $listener  The listener
      * @param string $eventName The event name
      *
-     * @return array Information about the listener
+     * @return array Informations about the listener
      */
     private function getListenerInfo($listener, $eventName)
     {
@@ -315,6 +313,57 @@ private function getListenerInfo($listener, $eventName)
         return $info;
     }
 
+    /**
+     * Updates the stopwatch data in the profile hierarchy.
+     *
+     * @param string  $token          Profile token
+     * @param Boolean $updateChildren Whether to update the children altogether
+     */
+    private function updateProfiles($token, $updateChildren)
+    {
+        if (!$this->profiler || !$profile = $this->profiler->loadProfile($token)) {
+            return;
+        }
+
+        $this->saveInfoInProfile($profile, $updateChildren);
+    }
+
+    /**
+     * Update the profiles with the timing and events information and saves them.
+     *
+     * @param Profile $profile        The root profile
+     * @param Boolean $updateChildren Whether to update the children altogether
+     */
+    private function saveInfoInProfile(Profile $profile, $updateChildren)
+    {
+        try {
+            $collector = $profile->getCollector('memory');
+            $collector->updateMemoryUsage();
+        } catch (\InvalidArgumentException $e) {
+        }
+
+        try {
+            $collector = $profile->getCollector('time');
+            $collector->setEvents($this->stopwatch->getSectionEvents($profile->getToken()));
+        } catch (\InvalidArgumentException $e) {
+        }
+
+        try {
+            $collector = $profile->getCollector('events');
+            $collector->setCalledListeners($this->getCalledListeners());
+            $collector->setNotCalledListeners($this->getNotCalledListeners());
+        } catch (\InvalidArgumentException $e) {
+        }
+
+        $this->profiler->saveProfile($profile);
+
+        if ($updateChildren) {
+            foreach ($profile->getChildren() as $child) {
+                $this->saveInfoInProfile($child, true);
+            }
+        }
+    }
+
     private function preDispatch($eventName, Event $event)
     {
         // wrap all listeners before they are called
@@ -363,14 +412,23 @@ private function postDispatch($eventName, Event $event)
             case KernelEvents::RESPONSE:
                 $token = $event->getResponse()->headers->get('X-Debug-Token');
                 $this->stopwatch->stopSection($token);
+                if (HttpKernelInterface::MASTER_REQUEST === $event->getRequestType()) {
+                    // The profiles can only be updated once they have been created
+                    // that is after the 'kernel.response' event of the main request
+                    $this->updateProfiles($token, true);
+                }
                 break;
             case KernelEvents::TERMINATE:
+                $token = $event->getResponse()->headers->get('X-Debug-Token');
                 // 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) {}
+                // The children profiles have been updated by the previous 'kernel.response'
+                // event. Only the root profile need to be updated with the 'kernel.terminate'
+                // timing informations.
+                $this->updateProfiles($token, false);
                 break;
         }
 
@@ -389,11 +447,9 @@ private function wrapListener($eventName, $listener)
         return function (Event $event) use ($self, $eventName, $listener) {
             $e = $self->preListenerCall($eventName, $listener);
 
-            call_user_func($listener, $event, $eventName, $self);
+            call_user_func($listener, $event);
 
-            if ($e->isStarted()) {
-                $e->stop();
-            }
+            $e->stop();
 
             if ($event->isPropagationStopped()) {
                 $self->logSkippedListeners($eventName, $event, $listener);
diff --git a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/DependencyInjection/AddClassesToCachePass.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/DependencyInjection/AddClassesToCachePass.php
index b1f34158109ea62f7b0f2d642ff426f1940d590c..7e694eba7a0a1c857a3be316e3cc55b189f4acee 100644
--- a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/DependencyInjection/AddClassesToCachePass.php
+++ b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/DependencyInjection/AddClassesToCachePass.php
@@ -13,6 +13,7 @@
 
 use Symfony\Component\DependencyInjection\ContainerBuilder;
 use Symfony\Component\DependencyInjection\Compiler\CompilerPassInterface;
+use Symfony\Component\HttpKernel\DependencyInjection\Extension;
 use Symfony\Component\HttpKernel\Kernel;
 
 /**
diff --git a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/DependencyInjection/ContainerAwareHttpKernel.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/DependencyInjection/ContainerAwareHttpKernel.php
index 69e7937d18c1167922379984230d7d8525acc209..c9b8a211d429163a12c67f3411d44a94b16166aa 100644
--- a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/DependencyInjection/ContainerAwareHttpKernel.php
+++ b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/DependencyInjection/ContainerAwareHttpKernel.php
@@ -12,7 +12,6 @@
 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;
@@ -36,11 +35,10 @@ class ContainerAwareHttpKernel extends HttpKernel
      * @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
      */
-    public function __construct(EventDispatcherInterface $dispatcher, ContainerInterface $container, ControllerResolverInterface $controllerResolver, RequestStack $requestStack = null)
+    public function __construct(EventDispatcherInterface $dispatcher, ContainerInterface $container, ControllerResolverInterface $controllerResolver)
     {
-        parent::__construct($dispatcher, $controllerResolver, $requestStack);
+        parent::__construct($dispatcher, $controllerResolver);
 
         $this->container = $container;
 
diff --git a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/DependencyInjection/RegisterListenersPass.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/DependencyInjection/RegisterListenersPass.php
index e48c409d8d00da1852761daf36838185fc08c856..ee00fbb6656bc9fc3761f68c097a4f743cccc299 100644
--- a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/DependencyInjection/RegisterListenersPass.php
+++ b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/DependencyInjection/RegisterListenersPass.php
@@ -50,27 +50,18 @@ public function __construct($dispatcherService = 'event_dispatcher', $listenerTa
 
     public function process(ContainerBuilder $container)
     {
-        if (!$container->hasDefinition($this->dispatcherService) && !$container->hasAlias($this->dispatcherService)) {
+        if (!$container->hasDefinition($this->dispatcherService)) {
             return;
         }
 
-        $definition = $container->findDefinition($this->dispatcherService);
+        $definition = $container->getDefinition($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));
+                    throw new \InvalidArgumentException(sprintf('Service "%s" must define the "event" attribute on "kernel.event_listener" tags.', $id));
                 }
 
                 if (!isset($event['method'])) {
@@ -86,13 +77,8 @@ public function process(ContainerBuilder $container)
         }
 
         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));
-            }
-
             // We must assume that the class value has been correctly filled, even if the service is created by a factory
-            $class = $def->getClass();
+            $class = $container->getDefinition($id)->getClass();
 
             $refClass = new \ReflectionClass($class);
             $interface = 'Symfony\Component\EventDispatcher\EventSubscriberInterface';
diff --git a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Event/FinishRequestEvent.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Event/FinishRequestEvent.php
deleted file mode 100644
index ee724843cd843b6adbdcc16d87482f97a7304944..0000000000000000000000000000000000000000
--- a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/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/Symfony/Component/HttpKernel/Event/GetResponseForControllerResultEvent.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Event/GetResponseForControllerResultEvent.php
index fcb38daaa8c72b530d3244625ae6297fa89cf3ab..1bc0f98fd0a1670422f6c9ba3dbc0a93de23082c 100644
--- a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Event/GetResponseForControllerResultEvent.php
+++ b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Event/GetResponseForControllerResultEvent.php
@@ -56,7 +56,7 @@ public function getControllerResult()
     /**
      * Assigns the return value of the controller.
      *
-     * @param mixed $controllerResult The controller return value
+     * @param mixed The controller return value
      *
      * @api
      */
diff --git a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Event/KernelEvent.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Event/KernelEvent.php
index 98763253daddcebcf1c72cd002478fb9a8189a36..e57eed4d16f24827cac1f2b5e9e01ca92f80f79f 100644
--- a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Event/KernelEvent.php
+++ b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Event/KernelEvent.php
@@ -86,16 +86,4 @@ public function getRequestType()
     {
         return $this->requestType;
     }
-
-    /**
-     * Checks if this is a master request.
-     *
-     * @return Boolean 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/Symfony/Component/HttpKernel/EventListener/EsiListener.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/EventListener/EsiListener.php
index 686778afc4ad8de72fe911e895513c376d942fc8..b90562b5d386c661e64d264059b32cdd4bba9f82 100644
--- a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/EventListener/EsiListener.php
+++ b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/EventListener/EsiListener.php
@@ -11,6 +11,7 @@
 
 namespace Symfony\Component\HttpKernel\EventListener;
 
+use Symfony\Component\HttpKernel\HttpKernelInterface;
 use Symfony\Component\HttpKernel\Event\FilterResponseEvent;
 use Symfony\Component\HttpKernel\KernelEvents;
 use Symfony\Component\HttpKernel\HttpCache\Esi;
@@ -42,7 +43,7 @@ public function __construct(Esi $esi = null)
      */
     public function onKernelResponse(FilterResponseEvent $event)
     {
-        if (!$event->isMasterRequest() || null === $this->esi) {
+        if (HttpKernelInterface::MASTER_REQUEST !== $event->getRequestType() || null === $this->esi) {
             return;
         }
 
diff --git a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/EventListener/ExceptionListener.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/EventListener/ExceptionListener.php
index 33ce993b079c454880af6004eb0a72c1d68d20f4..55950b29edace05e2e366e03bc1e24d8d7fdab18 100644
--- a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/EventListener/ExceptionListener.php
+++ b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/EventListener/ExceptionListener.php
@@ -12,7 +12,6 @@
 namespace Symfony\Component\HttpKernel\EventListener;
 
 use Psr\Log\LoggerInterface;
-use Symfony\Component\HttpFoundation\Request;
 use Symfony\Component\HttpKernel\Log\DebugLoggerInterface;
 use Symfony\Component\HttpKernel\Event\GetResponseForExceptionEvent;
 use Symfony\Component\HttpKernel\KernelEvents;
@@ -52,7 +51,18 @@ public function onKernelException(GetResponseForExceptionEvent $event)
 
         $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);
+        $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 in 2.4, to be removed in 3.0
+            'format'      => $request->getRequestFormat(),
+        );
+
+        $request = $request->duplicate(null, null, $attributes);
+        $request->setMethod('GET');
 
         try {
             $response = $event->getKernel()->handle($request, HttpKernelInterface::SUB_REQUEST, true);
@@ -99,29 +109,4 @@ protected function logException(\Exception $exception, $message, $original = tru
             error_log($message);
         }
     }
-
-    /**
-     * 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 in 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/Symfony/Component/HttpKernel/EventListener/LocaleListener.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/EventListener/LocaleListener.php
index bdcf4c7644a7604d046c1fc5be3d6d1d95609990..0b864c02f2bc42ceb003091e09e7f9fa22ad7485 100644
--- a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/EventListener/LocaleListener.php
+++ b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/EventListener/LocaleListener.php
@@ -12,9 +12,7 @@
 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;
@@ -22,90 +20,47 @@
 /**
  * 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)
+    public function __construct($defaultLocale = 'en', RequestContextAwareInterface $router = 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 Deprecated since version 2.4, to be removed in 3.0.
-     */
     public function setRequest(Request $request = null)
     {
         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 function onKernelRequest(GetResponseEvent $event)
+    {
+        $request = $event->getRequest();
+        $request->setDefaultLocale($this->defaultLocale);
+
+        $this->setRequest($request);
+    }
+
     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/Symfony/Component/HttpKernel/EventListener/ProfilerListener.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/EventListener/ProfilerListener.php
index 995c998b6ff1361cfbd4de1449db4516a25fe29c..5b2228ba1a58fc391ed7dfb2c1704713d3cc31fa 100644
--- a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/EventListener/ProfilerListener.php
+++ b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/EventListener/ProfilerListener.php
@@ -11,14 +11,14 @@
 
 namespace Symfony\Component\HttpKernel\EventListener;
 
+use Symfony\Component\HttpKernel\HttpKernelInterface;
 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\Profile;
 use Symfony\Component\HttpKernel\Profiler\Profiler;
 use Symfony\Component\HttpFoundation\RequestMatcherInterface;
-use Symfony\Component\HttpFoundation\RequestStack;
 use Symfony\Component\EventDispatcher\EventSubscriberInterface;
 
 /**
@@ -33,10 +33,9 @@ class ProfilerListener implements EventSubscriberInterface
     protected $onlyException;
     protected $onlyMasterRequests;
     protected $exception;
-    protected $requests = array();
+    protected $children;
+    protected $requests;
     protected $profiles;
-    protected $requestStack;
-    protected $parents;
 
     /**
      * Constructor.
@@ -46,15 +45,14 @@ class ProfilerListener implements EventSubscriberInterface
      * @param Boolean                 $onlyException      true if the profiler only collects data when an exception occurs, false otherwise
      * @param Boolean                 $onlyMasterRequests true if the profiler only collects data when the request is a master request, false otherwise
      */
-    public function __construct(Profiler $profiler, RequestMatcherInterface $matcher = null, $onlyException = false, $onlyMasterRequests = false, RequestStack $requestStack = null)
+    public function __construct(Profiler $profiler, RequestMatcherInterface $matcher = null, $onlyException = false, $onlyMasterRequests = false)
     {
         $this->profiler = $profiler;
         $this->matcher = $matcher;
         $this->onlyException = (Boolean) $onlyException;
         $this->onlyMasterRequests = (Boolean) $onlyMasterRequests;
-        $this->profiles = new \SplObjectStorage();
-        $this->parents = new \SplObjectStorage();
-        $this->requestStack = $requestStack;
+        $this->children = new \SplObjectStorage();
+        $this->profiles = array();
     }
 
     /**
@@ -64,21 +62,16 @@ public function __construct(Profiler $profiler, RequestMatcherInterface $matcher
      */
     public function onKernelException(GetResponseForExceptionEvent $event)
     {
-        if ($this->onlyMasterRequests && !$event->isMasterRequest()) {
+        if ($this->onlyMasterRequests && HttpKernelInterface::MASTER_REQUEST !== $event->getRequestType()) {
             return;
         }
 
         $this->exception = $event->getException();
     }
 
-    /**
-     * @deprecated Deprecated since version 2.4, to be removed in 3.0.
-     */
     public function onKernelRequest(GetResponseEvent $event)
     {
-        if (null === $this->requestStack) {
-            $this->requests[] = $event->getRequest();
-        }
+        $this->requests[] = $event->getRequest();
     }
 
     /**
@@ -88,7 +81,7 @@ public function onKernelRequest(GetResponseEvent $event)
      */
     public function onKernelResponse(FilterResponseEvent $event)
     {
-        $master = $event->isMasterRequest();
+        $master = HttpKernelInterface::MASTER_REQUEST === $event->getRequestType();
         if ($this->onlyMasterRequests && !$master) {
             return;
         }
@@ -109,36 +102,40 @@ public function onKernelResponse(FilterResponseEvent $event)
             return;
         }
 
-        $this->profiles[$request] = $profile;
+        $this->profiles[] = $profile;
 
-        if (null !== $this->requestStack) {
-            $this->parents[$request] = $this->requestStack->getParentRequest();
-        } elseif (!$master) {
-            // to be removed when requestStack is required
-            array_pop($this->requests);
+        if (null !== $exception) {
+            foreach ($this->profiles as $profile) {
+                $this->profiler->saveProfile($profile);
+            }
 
-            $this->parents[$request] = end($this->requests);
+            return;
         }
-    }
 
-    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]) {
-                $this->profiles[$parentRequest]->addChild($this->profiles[$request]);
+        // keep the profile as the child of its parent
+        if (!$master) {
+            array_pop($this->requests);
+
+            $parent = end($this->requests);
+
+            // when simulating requests, we might not have the parent
+            if ($parent) {
+                $profiles = isset($this->children[$parent]) ? $this->children[$parent] : array();
+                $profiles[] = $profile;
+                $this->children[$parent] = $profiles;
             }
         }
 
-        // save profiles
-        foreach ($this->profiles as $request) {
-            $this->profiler->saveProfile($this->profiles[$request]);
+        if (isset($this->children[$request])) {
+            foreach ($this->children[$request] as $child) {
+                $profile->addChild($child);
+            }
+            $this->children[$request] = array();
         }
 
-        $this->profiles = new \SplObjectStorage();
-        $this->parents = new \SplObjectStorage();
-        $this->requests = array();
+        if ($master) {
+            $this->saveProfiles($profile);
+        }
     }
 
     public static function getSubscribedEvents()
@@ -149,7 +146,19 @@ public static function getSubscribedEvents()
             KernelEvents::REQUEST => array('onKernelRequest', 1024),
             KernelEvents::RESPONSE => array('onKernelResponse', -100),
             KernelEvents::EXCEPTION => 'onKernelException',
-            KernelEvents::TERMINATE => array('onKernelTerminate', -1024),
         );
     }
+
+    /**
+     * Saves the profile hierarchy.
+     *
+     * @param Profile $profile The root profile
+     */
+    private function saveProfiles(Profile $profile)
+    {
+        $this->profiler->saveProfile($profile);
+        foreach ($profile->getChildren() as $profile) {
+            $this->saveProfiles($profile);
+        }
+    }
 }
diff --git a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/EventListener/ResponseListener.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/EventListener/ResponseListener.php
index eeb2b0fcb23552f10027a5cf287e112d9ec9f804..669980cf2b61613c136cea132ff9750937e55344 100644
--- a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/EventListener/ResponseListener.php
+++ b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/EventListener/ResponseListener.php
@@ -12,6 +12,7 @@
 namespace Symfony\Component\HttpKernel\EventListener;
 
 use Symfony\Component\HttpKernel\Event\FilterResponseEvent;
+use Symfony\Component\HttpKernel\HttpKernelInterface;
 use Symfony\Component\HttpKernel\KernelEvents;
 use Symfony\Component\EventDispatcher\EventSubscriberInterface;
 
@@ -36,7 +37,7 @@ public function __construct($charset)
      */
     public function onKernelResponse(FilterResponseEvent $event)
     {
-        if (!$event->isMasterRequest()) {
+        if (HttpKernelInterface::MASTER_REQUEST !== $event->getRequestType()) {
             return;
         }
 
diff --git a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/EventListener/RouterListener.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/EventListener/RouterListener.php
index 27ac632b6faeea575dcf03ea15c6950d7f1af689..f68716c144f89e9ccb927f45730bf8759b2ef2e2 100644
--- a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/EventListener/RouterListener.php
+++ b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/EventListener/RouterListener.php
@@ -13,11 +13,9 @@
 
 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;
@@ -30,11 +28,6 @@
 /**
  * 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
@@ -43,20 +36,17 @@ class RouterListener implements EventSubscriberInterface
     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
      *
      * @throws \InvalidArgumentException
      */
-    public function __construct($matcher, RequestContext $context = null, LoggerInterface $logger = null, RequestStack $requestStack = null)
+    public function __construct($matcher, RequestContext $context = null, LoggerInterface $logger = null)
     {
         if (!$matcher instanceof UrlMatcherInterface && !$matcher instanceof RequestMatcherInterface) {
             throw new \InvalidArgumentException('Matcher must either implement UrlMatcherInterface or RequestMatcherInterface.');
@@ -68,20 +58,18 @@ public function __construct($matcher, RequestContext $context = null, LoggerInte
 
         $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.
+     * The application should call this method whenever the Request
+     * object changes (entering a Request scope for instance, but
+     * also when leaving a Request scope -- especially when they are
+     * nested).
      *
      * @param Request|null $request A Request instance
-     *
-     * @deprecated Deprecated since version 2.4, to be moved to a private function in 3.0.
      */
     public function setRequest(Request $request = null)
     {
@@ -91,15 +79,6 @@ public function setRequest(Request $request = null)
         $this->request = $request;
     }
 
-    public function onKernelFinishRequest(FinishRequestEvent $event)
-    {
-        if (null === $this->requestStack) {
-            return; // removed when requestStack is required
-        }
-
-        $this->setRequest($this->requestStack->getParentRequest());
-    }
-
     public function onKernelRequest(GetResponseEvent $event)
     {
         $request = $event->getRequest();
@@ -107,10 +86,7 @@ public function onKernelRequest(GetResponseEvent $event)
         // initialize the context that is also used by the generator (assuming matcher and generator share the same context instance)
         // we call setRequest 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->setRequest($request);
-        }
+        $this->setRequest($request);
 
         if ($request->attributes->has('_controller')) {
             // routing is already done
@@ -137,13 +113,9 @@ public function onKernelRequest(GetResponseEvent $event)
         } 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()));
+            $message = sprintf('No route found for "%s %s": Method Not Allowed (Allow: %s)', $request->getMethod(), $request->getPathInfo(), strtoupper(implode(', ', $e->getAllowedMethods())));
 
             throw new MethodNotAllowedHttpException($e->getAllowedMethods(), $message, $e);
         }
@@ -163,7 +135,6 @@ 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/Symfony/Component/HttpKernel/EventListener/SessionListener.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/EventListener/SessionListener.php
deleted file mode 100644
index d1023b297c0fa3790c84b5e00f977d2a7bd9c06a..0000000000000000000000000000000000000000
--- a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/EventListener/SessionListener.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\EventListener;
-
-use Symfony\Component\HttpKernel\HttpKernelInterface;
-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 (HttpKernelInterface::MASTER_REQUEST !== $event->getRequestType()) {
-            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 of null if no session is available
-     */
-    abstract protected function getSession();
-}
diff --git a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/EventListener/StreamedResponseListener.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/EventListener/StreamedResponseListener.php
index 571cd74e343d0d4b2885785b9f84d80e3ee1f22c..88505fac6e7a63a01e4cf1524731be7291681790 100644
--- a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/EventListener/StreamedResponseListener.php
+++ b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/EventListener/StreamedResponseListener.php
@@ -13,6 +13,7 @@
 
 use Symfony\Component\HttpFoundation\StreamedResponse;
 use Symfony\Component\HttpKernel\Event\FilterResponseEvent;
+use Symfony\Component\HttpKernel\HttpKernelInterface;
 use Symfony\Component\HttpKernel\KernelEvents;
 use Symfony\Component\EventDispatcher\EventSubscriberInterface;
 
@@ -31,7 +32,7 @@ class StreamedResponseListener implements EventSubscriberInterface
      */
     public function onKernelResponse(FilterResponseEvent $event)
     {
-        if (!$event->isMasterRequest()) {
+        if (HttpKernelInterface::MASTER_REQUEST !== $event->getRequestType()) {
             return;
         }
 
diff --git a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/EventListener/TestSessionListener.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/EventListener/TestSessionListener.php
deleted file mode 100644
index ee047a6accbdf475340ad4fd6d36f1992a081052..0000000000000000000000000000000000000000
--- a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/EventListener/TestSessionListener.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\HttpKernel\EventListener;
-
-use Symfony\Component\HttpFoundation\Cookie;
-use Symfony\Component\HttpKernel\HttpKernelInterface;
-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 (HttpKernelInterface::MASTER_REQUEST !== $event->getRequestType()) {
-            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 (HttpKernelInterface::MASTER_REQUEST !== $event->getRequestType()) {
-            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 of null if no session is available
-     */
-    abstract protected function getSession();
-}
diff --git a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Fragment/EsiFragmentRenderer.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Fragment/EsiFragmentRenderer.php
index a491a85ade22ada35edcf36d2c86efbc4b0cebe5..68b1a87da65cac43747f0ee969086a775c8d1dde 100644
--- a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Fragment/EsiFragmentRenderer.php
+++ b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Fragment/EsiFragmentRenderer.php
@@ -35,7 +35,7 @@ class EsiFragmentRenderer extends RoutableFragmentRenderer
      * @param Esi                    $esi            An Esi instance
      * @param InlineFragmentRenderer $inlineStrategy The inline strategy to use when ESI is not supported
      */
-    public function __construct(Esi $esi = null, InlineFragmentRenderer $inlineStrategy)
+    public function __construct(Esi $esi, InlineFragmentRenderer $inlineStrategy)
     {
         $this->esi = $esi;
         $this->inlineStrategy = $inlineStrategy;
@@ -56,7 +56,7 @@ public function __construct(Esi $esi = null, InlineFragmentRenderer $inlineStrat
      */
     public function render($uri, Request $request, array $options = array())
     {
-        if (!$this->esi || !$this->esi->hasSurrogateEsiCapability($request)) {
+        if (!$this->esi->hasSurrogateEsiCapability($request)) {
             return $this->inlineStrategy->render($uri, $request, $options);
         }
 
diff --git a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Fragment/FragmentHandler.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Fragment/FragmentHandler.php
index 0297304844397ea3d44dce68d1dcfd0dace1dc02..af9b9ba98b744e0ef9f0d724a05c9d3a80c3effb 100644
--- a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Fragment/FragmentHandler.php
+++ b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Fragment/FragmentHandler.php
@@ -14,7 +14,6 @@
 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;
 
 /**
@@ -23,11 +22,6 @@
  * 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
@@ -35,22 +29,18 @@
 class FragmentHandler
 {
     private $debug;
-    private $renderers = array();
+    private $renderers;
     private $request;
-    private $requestStack;
 
     /**
      * Constructor.
      *
-     * RequestStack will become required in 3.0.
-     *
-     * @param FragmentRendererInterface[] $renderers    An array of FragmentRendererInterface instances
-     * @param Boolean                     $debug        Whether the debug mode is enabled or not
-     * @param RequestStack|null           $requestStack The Request stack that controls the lifecycle of requests
+     * @param FragmentRendererInterface[] $renderers An array of FragmentRendererInterface instances
+     * @param Boolean                     $debug     Whether the debug mode is enabled or not
      */
-    public function __construct(array $renderers = array(), $debug = false, RequestStack $requestStack = null)
+    public function __construct(array $renderers = array(), $debug = false)
     {
-        $this->requestStack = $requestStack;
+        $this->renderers = array();
         foreach ($renderers as $renderer) {
             $this->addRenderer($renderer);
         }
@@ -70,13 +60,7 @@ public function addRenderer(FragmentRendererInterface $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 Deprecated since version 2.4, to be removed in 3.0.
+     * @param Request $request The current Request
      */
     public function setRequest(Request $request = null)
     {
@@ -97,7 +81,7 @@ public function setRequest(Request $request = null)
      * @return string|null The Response content or null when the Response is streamed
      *
      * @throws \InvalidArgumentException when the renderer does not exist
-     * @throws \LogicException           when the Request is not successful
+     * @throws \RuntimeException         when the Response is not successful
      */
     public function render($uri, $renderer = 'inline', array $options = array())
     {
@@ -109,11 +93,11 @@ public function render($uri, $renderer = 'inline', array $options = array())
             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.');
+        if (null === $this->request) {
+            throw new \LogicException('Rendering a fragment can only be done when handling a master Request.');
         }
 
-        return $this->deliver($this->renderers[$renderer]->render($uri, $request, $options));
+        return $this->deliver($this->renderers[$renderer]->render($uri, $this->request, $options));
     }
 
     /**
@@ -131,7 +115,7 @@ public function render($uri, $renderer = 'inline', array $options = array())
     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()));
+            throw new \RuntimeException(sprintf('Error when rendering "%s" (Status code is %s).', $this->request->getUri(), $response->getStatusCode()));
         }
 
         if (!$response instanceof StreamedResponse) {
@@ -140,9 +124,4 @@ protected function deliver(Response $response)
 
         $response->sendContent();
     }
-
-    private function getRequest()
-    {
-        return $this->requestStack ? $this->requestStack->getCurrentRequest() : $this->request;
-    }
 }
diff --git a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Fragment/FragmentRendererInterface.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Fragment/FragmentRendererInterface.php
index ae172df80da3c380895f15bc2b24473a88dd2f5a..a758d2c582004b6bfebaaea3fe843c43374dcb26 100644
--- a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Fragment/FragmentRendererInterface.php
+++ b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Fragment/FragmentRendererInterface.php
@@ -13,7 +13,6 @@
 
 use Symfony\Component\HttpFoundation\Request;
 use Symfony\Component\HttpKernel\Controller\ControllerReference;
-use Symfony\Component\HttpFoundation\Response;
 
 /**
  * Interface implemented by all rendering strategies.
diff --git a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Fragment/HIncludeFragmentRenderer.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Fragment/HIncludeFragmentRenderer.php
index 8fc45724e76b3d780d8b9daf31c84c0ddefb6639..882bc2b0f28a69a976edbf289941f1cc814d7751 100644
--- a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Fragment/HIncludeFragmentRenderer.php
+++ b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Fragment/HIncludeFragmentRenderer.php
@@ -91,8 +91,7 @@ public function render($uri, Request $request, array $options = array())
                 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()));
+            $uri = $this->signer->sign($this->generateFragmentUri($uri, $request));
         }
 
         // We need to replace ampersands in the URI with the encoded form in order to return valid html/xml content.
diff --git a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Fragment/InlineFragmentRenderer.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Fragment/InlineFragmentRenderer.php
index c6ca3d475e8828ba92ab621c88223e8f73dbd6c1..a3f37c359ae7c768018fa2bfaa9f014d545fb78f 100644
--- a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Fragment/InlineFragmentRenderer.php
+++ b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Fragment/InlineFragmentRenderer.php
@@ -32,8 +32,7 @@ class InlineFragmentRenderer extends RoutableFragmentRenderer
     /**
      * Constructor.
      *
-     * @param HttpKernelInterface      $kernel     A HttpKernelInterface instance
-     * @param EventDispatcherInterface $dispatcher A EventDispatcherInterface instance
+     * @param HttpKernelInterface $kernel A HttpKernelInterface instance
      */
     public function __construct(HttpKernelInterface $kernel, EventDispatcherInterface $dispatcher = null)
     {
@@ -61,15 +60,14 @@ public function render($uri, Request $request, array $options = array())
             $attributes = $reference->attributes;
             $reference->attributes = array();
 
-            // The request format and locale might have been overridden by the user
+            // The request format and locale might have been overriden 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);
-
+            $uri = $this->generateFragmentUri($uri, $request);
             $reference->attributes = array_merge($attributes, $reference->attributes);
         }
 
@@ -132,7 +130,7 @@ protected function createSubRequest($uri, Request $request)
 
         $server['REMOTE_ADDR'] = '127.0.0.1';
 
-        $subRequest = Request::create($uri, 'get', array(), $cookies, array(), $server);
+        $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'));
         }
diff --git a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Fragment/RoutableFragmentRenderer.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Fragment/RoutableFragmentRenderer.php
index bdf710b27a567c705ae9decf8ab7e3243d91a0d4..1f3b84f6190417431b196dd691dccc7f7e59d554 100644
--- a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Fragment/RoutableFragmentRenderer.php
+++ b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Fragment/RoutableFragmentRenderer.php
@@ -40,18 +40,12 @@ public function setFragmentPath($path)
      * Generates a fragment URI for a given controller.
      *
      * @param ControllerReference  $reference A ControllerReference instance
-     * @param Request              $request   A Request instance
-     * @param Boolean              $absolute  Whether to generate an absolute URL or not
-     * @param Boolean              $strict    Whether to allow non-scalar attributes or not
+     * @param Request              $request    A Request instance
      *
      * @return string A fragment URI
      */
-    protected function generateFragmentUri(ControllerReference $reference, Request $request, $absolute = false, $strict = true)
+    protected function generateFragmentUri(ControllerReference $reference, Request $request)
     {
-        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
@@ -68,23 +62,6 @@ protected function generateFragmentUri(ControllerReference $reference, Request $
 
         $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)) {
-                throw new \LogicException(sprintf('Controller attributes cannot contain non-scalar values (value for key "%s" is not a scalar).', $key));
-            }
-        }
+        return $request->getUriForPath($this->fragmentPath.'?'.http_build_query($reference->query, '', '&'));
     }
 }
diff --git a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/HttpCache/HttpCache.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/HttpCache/HttpCache.php
index f80d6f03e73cec733e03e6ab9a2da50d2cd15376..63cde7e5b22253088a05799ea8823ad4ebd30cbd 100644
--- a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/HttpCache/HttpCache.php
+++ b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/HttpCache/HttpCache.php
@@ -19,6 +19,7 @@
 use Symfony\Component\HttpKernel\TerminableInterface;
 use Symfony\Component\HttpFoundation\Request;
 use Symfony\Component\HttpFoundation\Response;
+use Symfony\Component\HttpKernel\HttpCache\Esi;
 
 /**
  * Cache provides HTTP caching.
@@ -34,8 +35,7 @@ class HttpCache implements HttpKernelInterface, TerminableInterface
     private $request;
     private $esi;
     private $esiCacheStrategy;
-    private $options = array();
-    private $traces = array();
+    private $traces;
 
     /**
      * Constructor.
@@ -81,7 +81,6 @@ public function __construct(HttpKernelInterface $kernel, StoreInterface $store,
     {
         $this->store = $store;
         $this->kernel = $kernel;
-        $this->esi = $esi;
 
         // needed in case there is a fatal error because the backend is too slow to respond
         register_shutdown_function(array($this->store, 'cleanup'));
@@ -95,6 +94,8 @@ public function __construct(HttpKernelInterface $kernel, StoreInterface $store,
             'stale_while_revalidate' => 2,
             'stale_if_error'         => 60,
         ), $options);
+        $this->esi = $esi;
+        $this->traces = array();
     }
 
     /**
@@ -267,7 +268,7 @@ protected function invalidate(Request $request, $catch = false)
                 // 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());
+                        $subRequest = $request::create($uri, 'get', array(), array(), array(), $request->server->all());
 
                         $this->store->invalidate($subRequest);
                     }
diff --git a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/HttpCache/Store.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/HttpCache/Store.php
index 1d55ab4118f2aefab2eb6d44d14b643c6c60932b..a1cda1fd27095b9dea7ffe7a9d54ab2bc37badc3 100644
--- a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/HttpCache/Store.php
+++ b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/HttpCache/Store.php
@@ -50,9 +50,7 @@ public function cleanup()
     {
         // unlock everything
         foreach ($this->locks as $lock) {
-            if (file_exists($lock)) {
-                @unlink($lock);
-            }
+            @unlink($lock);
         }
 
         $error = error_get_last();
@@ -216,7 +214,7 @@ public function write(Request $request, Response $response)
      */
     protected function generateContentDigest(Response $response)
     {
-        return 'en'.hash('sha256', $response->getContent());
+        return 'en'.sha1($response->getContent());
     }
 
     /**
@@ -366,25 +364,6 @@ 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.
      *
@@ -398,7 +377,7 @@ private function getCacheKey(Request $request)
             return $this->keyCache[$request];
         }
 
-        return $this->keyCache[$request] = $this->generateCacheKey($request);
+        return $this->keyCache[$request] = 'md'.sha1($request->getUri());
     }
 
     /**
diff --git a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/HttpKernel.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/HttpKernel.php
index 0be8e1b4dbb7c11e8e1d72fcc94d5fc218519ffc..837a16ff370e936dec4247f7f1b29937b2dd803f 100644
--- a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/HttpKernel.php
+++ b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/HttpKernel.php
@@ -16,13 +16,11 @@
 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;
 
@@ -37,22 +35,19 @@ 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
+     * @param EventDispatcherInterface    $dispatcher An EventDispatcherInterface instance
+     * @param ControllerResolverInterface $resolver   A ControllerResolverInterface instance
      *
      * @api
      */
-    public function __construct(EventDispatcherInterface $dispatcher, ControllerResolverInterface $resolver, RequestStack $requestStack = null)
+    public function __construct(EventDispatcherInterface $dispatcher, ControllerResolverInterface $resolver)
     {
         $this->dispatcher = $dispatcher;
         $this->resolver = $resolver;
-        $this->requestStack = $requestStack ?: new RequestStack();
     }
 
     /**
@@ -66,8 +61,6 @@ public function handle(Request $request, $type = HttpKernelInterface::MASTER_REQ
             return $this->handleRaw($request, $type);
         } catch (\Exception $e) {
             if (false === $catch) {
-                $this->finishRequest($request, $type);
-
                 throw $e;
             }
 
@@ -100,8 +93,6 @@ public function terminate(Request $request, Response $response)
      */
     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);
@@ -165,27 +156,9 @@ private function filterResponse(Response $response, Request $request, $type)
 
         $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.
      *
@@ -206,8 +179,6 @@ private function handleException(\Exception $e, $request, $type)
         $e = $event->getException();
 
         if (!$event->hasResponse()) {
-            $this->finishRequest($request, $type);
-
             throw $e;
         }
 
diff --git a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Kernel.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Kernel.php
index 94353c0422115f2b291fcfff4aeb0dd1ec8ad698..96a746ee8007325dbacec85556d338ac3dcde3c3 100644
--- a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Kernel.php
+++ b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Kernel.php
@@ -24,6 +24,7 @@
 use Symfony\Component\DependencyInjection\Loader\ClosureLoader;
 use Symfony\Component\HttpFoundation\Request;
 use Symfony\Component\HttpFoundation\Response;
+use Symfony\Component\HttpKernel\HttpKernelInterface;
 use Symfony\Component\HttpKernel\Bundle\BundleInterface;
 use Symfony\Component\HttpKernel\Config\FileLocator;
 use Symfony\Component\HttpKernel\DependencyInjection\MergeExtensionConfigurationPass;
@@ -47,23 +48,24 @@ abstract class Kernel implements KernelInterface, TerminableInterface
     /**
      * @var BundleInterface[]
      */
-    protected $bundles = array();
+    protected $bundles;
 
     protected $bundleMap;
     protected $container;
     protected $rootDir;
     protected $environment;
     protected $debug;
-    protected $booted = false;
+    protected $booted;
     protected $name;
     protected $startTime;
     protected $loadClassCache;
+    protected $errorReportingLevel;
 
-    const VERSION         = '2.4.1';
-    const VERSION_ID      = '20401';
+    const VERSION         = '2.3.4';
+    const VERSION_ID      = '20304';
     const MAJOR_VERSION   = '2';
-    const MINOR_VERSION   = '4';
-    const RELEASE_VERSION = '1';
+    const MINOR_VERSION   = '3';
+    const RELEASE_VERSION = '4';
     const EXTRA_VERSION   = '';
 
     /**
@@ -78,8 +80,10 @@ public function __construct($environment, $debug)
     {
         $this->environment = $environment;
         $this->debug = (Boolean) $debug;
+        $this->booted = false;
         $this->rootDir = $this->getRootDir();
         $this->name = $this->getName();
+        $this->bundles = array();
 
         if ($this->debug) {
             $this->startTime = microtime(true);
@@ -186,7 +190,7 @@ public function handle(Request $request, $type = HttpKernelInterface::MASTER_REQ
     }
 
     /**
-     * Gets a HTTP kernel from the container
+     * Gets a http kernel from the container
      *
      * @return HttpKernel
      */
@@ -494,9 +498,7 @@ protected function initializeBundles()
         }
 
         // look for orphans
-        if (!empty($directChildren) && count($diff = array_diff_key($directChildren, $this->bundles))) {
-            $diff = array_keys($diff);
-
+        if (count($diff = array_values(array_diff(array_keys($directChildren), array_keys($this->bundles))))) {
             throw new \LogicException(sprintf('Bundle "%s" extends bundle "%s", which is not registered.', $directChildren[$diff[0]], $diff[0]));
         }
 
@@ -711,7 +713,7 @@ protected function dumpContainer(ConfigCache $cache, ContainerBuilder $container
 
         $content = $dumper->dump(array('class' => $class, 'base_class' => $baseClass));
         if (!$this->debug) {
-            $content = static::stripComments($content);
+            $content = self::stripComments($content);
         }
 
         $cache->write($content, $container->getResources());
diff --git a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/KernelEvents.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/KernelEvents.php
index 5e6ebcb8d9926b324f2ab7f38b18f752632d32c4..fce48ac3a6ed8f244eaf41d9b3c159f6615e6e6f 100644
--- a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/KernelEvents.php
+++ b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/KernelEvents.php
@@ -102,14 +102,4 @@ final class KernelEvents
      * @var string
      */
     const TERMINATE = 'kernel.terminate';
-
-    /**
-     * The REQUEST_FINISHED 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/Symfony/Component/HttpKernel/KernelInterface.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/KernelInterface.php
index 6905a1279c3cb43a7fbc32d679ed76877c59c556..dd37b60e03252026157131a665e035c3ae343e4a 100644
--- a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/KernelInterface.php
+++ b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/KernelInterface.php
@@ -12,6 +12,7 @@
 namespace Symfony\Component\HttpKernel;
 
 use Symfony\Component\DependencyInjection\ContainerInterface;
+use Symfony\Component\HttpKernel\HttpKernelInterface;
 use Symfony\Component\HttpKernel\Bundle\BundleInterface;
 use Symfony\Component\Config\Loader\LoaderInterface;
 
diff --git a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Profiler/BaseMemcacheProfilerStorage.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Profiler/BaseMemcacheProfilerStorage.php
index fd6bd96e2d853f25bac8879fe33796fad2ce4fb9..69ff9730540e73746b49060e8788eb1bbca2b94f 100644
--- a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Profiler/BaseMemcacheProfilerStorage.php
+++ b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Profiler/BaseMemcacheProfilerStorage.php
@@ -89,7 +89,7 @@ public function find($ip, $url, $limit, $method, $start = null, $end = null)
             --$limit;
         }
 
-        usort($result, function ($a, $b) {
+        usort($result, function($a, $b) {
             if ($a['time'] === $b['time']) {
                 return 0;
             }
diff --git a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Profiler/FileProfilerStorage.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Profiler/FileProfilerStorage.php
index e225b0dd2eeb13eda8d684ac89932a1a3b8afd42..9265fc13f5c589d71861d8f4543c84d6b43bef8a 100644
--- a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Profiler/FileProfilerStorage.php
+++ b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Profiler/FileProfilerStorage.php
@@ -70,7 +70,7 @@ public function find($ip, $url, $limit, $method, $start = null, $end = null)
             }
 
             if (!empty($start) && $csvTime < $start) {
-                continue;
+               continue;
             }
 
             if (!empty($end) && $csvTime > $end) {
diff --git a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Profiler/MemcacheProfilerStorage.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Profiler/MemcacheProfilerStorage.php
index 2034a19db1e6b7157410e571d37d8c9b177a38e1..a78cec0c8a3273b2149f2524e53c8de66f4b8bc3 100644
--- a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Profiler/MemcacheProfilerStorage.php
+++ b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Profiler/MemcacheProfilerStorage.php
@@ -42,7 +42,7 @@ protected function getMemcache()
             $host = $matches[1] ?: $matches[2];
             $port = $matches[3];
 
-            $memcache = new Memcache();
+            $memcache = new Memcache;
             $memcache->addServer($host, $port);
 
             $this->memcache = $memcache;
diff --git a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Profiler/MemcachedProfilerStorage.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Profiler/MemcachedProfilerStorage.php
index 31f313639085164a1cfd904e9db90cce137c3c7f..f7f68423589a4901e2005c45fa6692832616fbd6 100644
--- a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Profiler/MemcachedProfilerStorage.php
+++ b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Profiler/MemcachedProfilerStorage.php
@@ -42,7 +42,7 @@ protected function getMemcached()
             $host = $matches[1] ?: $matches[2];
             $port = $matches[3];
 
-            $memcached = new Memcached();
+            $memcached = new Memcached;
 
             //disable compression to allow appending
             $memcached->setOption(Memcached::OPT_COMPRESSION, false);
diff --git a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Profiler/Profiler.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Profiler/Profiler.php
index b545b4acd510f00ae1db5473b9abb562ab2a8c12..49f3137e1525170f51f2f33937a83bd50d88c5c0 100644
--- a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Profiler/Profiler.php
+++ b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Profiler/Profiler.php
@@ -13,8 +13,8 @@
 
 use Symfony\Component\HttpFoundation\Request;
 use Symfony\Component\HttpFoundation\Response;
+use Symfony\Component\HttpKernel\Profiler\ProfilerStorageInterface;
 use Symfony\Component\HttpKernel\DataCollector\DataCollectorInterface;
-use Symfony\Component\HttpKernel\DataCollector\LateDataCollectorInterface;
 use Psr\Log\LoggerInterface;
 
 /**
@@ -109,13 +109,6 @@ public function loadProfile($token)
      */
     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.');
         }
@@ -211,7 +204,7 @@ public function collect(Request $request, Response $response, \Exception $except
             return;
         }
 
-        $profile = new Profile(substr(hash('sha256', uniqid(mt_rand(), true)), 0, 6));
+        $profile = new Profile(substr(sha1(uniqid(mt_rand(), true)), 0, 6));
         $profile->setTime(time());
         $profile->setUrl($request->getUri());
         $profile->setIp($request->getClientIp());
@@ -222,8 +215,8 @@ public function collect(Request $request, Response $response, \Exception $except
         foreach ($this->collectors as $collector) {
             $collector->collect($request, $response, $exception);
 
-            // we need to clone for sub-requests
-            $profile->addCollector(clone $collector);
+            // forces collectors to become "read/only" (they loose their object dependencies)
+            $profile->addCollector(unserialize(serialize($collector)));
         }
 
         return $profile;
diff --git a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Profiler/RedisProfilerStorage.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Profiler/RedisProfilerStorage.php
index de2decfbf59edde781f06f581a03469788a47b2a..d62d6c7996d0add01eb88c7a764079c1f98cf6b3 100644
--- a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Profiler/RedisProfilerStorage.php
+++ b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Profiler/RedisProfilerStorage.php
@@ -11,6 +11,8 @@
 
 namespace Symfony\Component\HttpKernel\Profiler;
 
+use Redis;
+
 /**
  * RedisProfilerStorage stores profiling information in Redis.
  *
@@ -30,7 +32,7 @@ class RedisProfilerStorage implements ProfilerStorageInterface
     protected $lifetime;
 
     /**
-     * @var \Redis
+     * @var Redis
      */
     private $redis;
 
@@ -197,7 +199,7 @@ public function write(Profile $profile)
     /**
      * Internal convenience method that returns the instance of Redis.
      *
-     * @return \Redis
+     * @return Redis
      *
      * @throws \RuntimeException
      */
@@ -214,7 +216,7 @@ protected function getRedis()
                 throw new \RuntimeException('RedisProfilerStorage requires that the redis extension is loaded.');
             }
 
-            $redis = new \Redis;
+            $redis = new Redis;
             $redis->connect($data['host'], $data['port']);
 
             if (isset($data['path'])) {
@@ -236,7 +238,7 @@ protected function getRedis()
     /**
      * Set instance of the Redis
      *
-     * @param \Redis $redis
+     * @param Redis $redis
      */
     public function setRedis($redis)
     {
diff --git a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/README.md b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/README.md
index 7aa0656b3afb70c1c69b3266689bab236d9b0e60..e0f3c987c477fdcc0f30d5df25b52ee61814aae9 100644
--- a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/README.md
+++ b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/README.md
@@ -85,5 +85,5 @@ Resources
 You can run the unit tests with the following command:
 
     $ cd path/to/Symfony/Component/HttpKernel/
-    $ composer.phar install
+    $ composer.phar install --dev
     $ phpunit
diff --git a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/Bundle/BundleTest.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/Bundle/BundleTest.php
index a451b7aba021205a2de7764e125015c1c1b1d91e..8affb5f300bfbb315d426a02d790355a1f71ed61 100644
--- a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/Bundle/BundleTest.php
+++ b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/Bundle/BundleTest.php
@@ -11,18 +11,28 @@
 
 namespace Symfony\Component\HttpKernel\Tests\Bundle;
 
-use Symfony\Bundle\FrameworkBundle\DependencyInjection\Compiler\AddConsoleCommandPass;
-use Symfony\Component\DependencyInjection\ContainerBuilder;
-use Symfony\Component\DependencyInjection\Definition;
 use Symfony\Component\HttpKernel\Bundle\Bundle;
+
+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;
-use Symfony\Component\HttpKernel\Tests\Fixtures\ExtensionPresentBundle\ExtensionPresentBundle;
 
 class BundleTest extends \PHPUnit_Framework_TestCase
 {
     public function testRegisterCommands()
     {
+        if (!class_exists('Symfony\Component\Console\Application')) {
+            $this->markTestSkipped('The "Console" component is not available');
+        }
+
+        if (!interface_exists('Symfony\Component\DependencyInjection\ContainerAwareInterface')) {
+            $this->markTestSkipped('The "DependencyInjection" component is not available');
+        }
+
+        if (!class_exists('Symfony\Component\Finder\Finder')) {
+            $this->markTestSkipped('The "Finder" component is not available');
+        }
+
         $cmd = new FooCommand();
         $app = $this->getMock('Symfony\Component\Console\Application');
         $app->expects($this->once())->method('add')->with($this->equalTo($cmd));
@@ -33,25 +43,6 @@ public function testRegisterCommands()
         $bundle2 = new ExtensionAbsentBundle();
 
         $this->assertNull($bundle2->registerCommands($app));
-    }
 
-    public function testRegisterCommandsIngoreCommandAsAService()
-    {
-        $container = new ContainerBuilder();
-        $container->addCompilerPass(new AddConsoleCommandPass());
-        $definition = new Definition('Symfony\Component\HttpKernel\Tests\Fixtures\ExtensionPresentBundle\Command\FooCommand');
-        $definition->addTag('console.command');
-        $container->setDefinition('my-command', $definition);
-        $container->compile();
-
-        $application = $this->getMock('Symfony\Component\Console\Application');
-        // Never called, because it's the
-        // Symfony\Bundle\FrameworkBundle\Console\Application that register
-        // commands as a service
-        $application->expects($this->never())->method('add');
-
-        $bundle = new ExtensionPresentBundle();
-        $bundle->setContainer($container);
-        $bundle->registerCommands($application);
     }
 }
diff --git a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/ClientTest.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/ClientTest.php
index c58c9588d5d491c646ccec7847aec6fff5504c86..755d7f614c97de2f7d5634a1d27c46453c8ca9f8 100644
--- a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/ClientTest.php
+++ b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/ClientTest.php
@@ -22,6 +22,13 @@
 
 class ClientTest extends \PHPUnit_Framework_TestCase
 {
+    protected function setUp()
+    {
+        if (!class_exists('Symfony\Component\BrowserKit\Client')) {
+            $this->markTestSkipped('The "BrowserKit" component is not available');
+        }
+    }
+
     public function testDoRequest()
     {
         $client = new Client(new TestHttpKernel());
@@ -43,6 +50,14 @@ public function testDoRequest()
 
     public function testGetScript()
     {
+        if (!class_exists('Symfony\Component\Process\Process')) {
+            $this->markTestSkipped('The "Process" component is not available');
+        }
+
+        if (!class_exists('Symfony\Component\ClassLoader\ClassLoader')) {
+            $this->markTestSkipped('The "ClassLoader" component is not available');
+        }
+
         $client = new TestClient(new TestHttpKernel());
         $client->insulate();
         $client->request('GET', '/');
diff --git a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/Controller/ControllerResolverTest.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/Controller/ControllerResolverTest.php
index dd14186dd2676f095c098f83587dd50fa31892af..aa401f44d6f4c35169b9783106f79911d8c3ebc5 100644
--- a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/Controller/ControllerResolverTest.php
+++ b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/Controller/ControllerResolverTest.php
@@ -9,14 +9,20 @@
  * file that was distributed with this source code.
  */
 
-namespace Symfony\Component\HttpKernel\Tests\Controller;
+namespace Symfony\Component\HttpKernel\Tests;
 
 use Symfony\Component\HttpKernel\Controller\ControllerResolver;
-use Symfony\Component\HttpKernel\Tests\Logger;
 use Symfony\Component\HttpFoundation\Request;
 
 class ControllerResolverTest extends \PHPUnit_Framework_TestCase
 {
+    protected function setUp()
+    {
+        if (!class_exists('Symfony\Component\HttpFoundation\Request')) {
+            $this->markTestSkipped('The "HttpFoundation" component is not available');
+        }
+    }
+
     public function testGetController()
     {
         $logger = new Logger();
@@ -26,9 +32,9 @@ public function testGetController()
         $this->assertFalse($resolver->getController($request), '->getController() returns false when the request has no _controller attribute');
         $this->assertEquals(array('Unable to look for the controller as the "_controller" parameter is missing'), $logger->getLogs('warning'));
 
-        $request->attributes->set('_controller', 'Symfony\Component\HttpKernel\Tests\Controller\ControllerResolverTest::testGetController');
+        $request->attributes->set('_controller', 'Symfony\Component\HttpKernel\Tests\ControllerResolverTest::testGetController');
         $controller = $resolver->getController($request);
-        $this->assertInstanceOf('Symfony\Component\HttpKernel\Tests\Controller\ControllerResolverTest', $controller[0], '->getController() returns a PHP callable');
+        $this->assertInstanceOf('Symfony\Component\HttpKernel\Tests\ControllerResolverTest', $controller[0], '->getController() returns a PHP callable');
 
         $request->attributes->set('_controller', $lambda = function () {});
         $controller = $resolver->getController($request);
@@ -38,21 +44,21 @@ public function testGetController()
         $controller = $resolver->getController($request);
         $this->assertSame($this, $controller);
 
-        $request->attributes->set('_controller', 'Symfony\Component\HttpKernel\Tests\Controller\ControllerResolverTest');
+        $request->attributes->set('_controller', 'Symfony\Component\HttpKernel\Tests\ControllerResolverTest');
         $controller = $resolver->getController($request);
-        $this->assertInstanceOf('Symfony\Component\HttpKernel\Tests\Controller\ControllerResolverTest', $controller);
+        $this->assertInstanceOf('Symfony\Component\HttpKernel\Tests\ControllerResolverTest', $controller);
 
         $request->attributes->set('_controller', array($this, 'controllerMethod1'));
         $controller = $resolver->getController($request);
         $this->assertSame(array($this, 'controllerMethod1'), $controller);
 
-        $request->attributes->set('_controller', array('Symfony\Component\HttpKernel\Tests\Controller\ControllerResolverTest', 'controllerMethod4'));
+        $request->attributes->set('_controller', array('Symfony\Component\HttpKernel\Tests\ControllerResolverTest', 'controllerMethod4'));
         $controller = $resolver->getController($request);
-        $this->assertSame(array('Symfony\Component\HttpKernel\Tests\Controller\ControllerResolverTest', 'controllerMethod4'), $controller);
+        $this->assertSame(array('Symfony\Component\HttpKernel\Tests\ControllerResolverTest', 'controllerMethod4'), $controller);
 
-        $request->attributes->set('_controller', 'Symfony\Component\HttpKernel\Tests\Controller\some_controller_function');
+        $request->attributes->set('_controller', 'Symfony\Component\HttpKernel\Tests\some_controller_function');
         $controller = $resolver->getController($request);
-        $this->assertSame('Symfony\Component\HttpKernel\Tests\Controller\some_controller_function', $controller);
+        $this->assertSame('Symfony\Component\HttpKernel\Tests\some_controller_function', $controller);
 
         $request->attributes->set('_controller', 'foo');
         try {
@@ -70,7 +76,7 @@ public function testGetController()
             $this->assertInstanceOf('\InvalidArgumentException', $e, '->getController() throws an \InvalidArgumentException if the _controller attribute contains a non-existent class');
         }
 
-        $request->attributes->set('_controller', 'Symfony\Component\HttpKernel\Tests\Controller\ControllerResolverTest::bar');
+        $request->attributes->set('_controller', 'Symfony\Component\HttpKernel\Tests\ControllerResolverTest::bar');
         try {
             $resolver->getController($request);
             $this->fail('->getController() throws an \InvalidArgumentException if the _controller attribute contains a non-existent method');
@@ -120,7 +126,7 @@ public function testGetArguments()
         $request = Request::create('/');
         $request->attributes->set('foo', 'foo');
         $request->attributes->set('foobar', 'foobar');
-        $controller = 'Symfony\Component\HttpKernel\Tests\Controller\some_controller_function';
+        $controller = 'Symfony\Component\HttpKernel\Tests\some_controller_function';
         $this->assertEquals(array('foo', 'foobar'), $resolver->getArguments($request, $controller));
 
         $request = Request::create('/');
@@ -147,7 +153,7 @@ public function testGetArguments()
     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'));
+        $mock->expects($this->once())->method('createController')->will($this->returnValue('Symfony\Component\HttpKernel\Tests\some_controller_function'));
 
         $request = Request::create('/');
         $request->attributes->set('_controller', 'foobar');
diff --git a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/DataCollector/ConfigDataCollectorTest.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/DataCollector/ConfigDataCollectorTest.php
index 0c7396158631f810f6c593627ff4be97e4380783..192c8083e02725cdbcd869900b0c2e33518c93be 100644
--- a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/DataCollector/ConfigDataCollectorTest.php
+++ b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/DataCollector/ConfigDataCollectorTest.php
@@ -19,6 +19,13 @@
 
 class ConfigDataCollectorTest extends \PHPUnit_Framework_TestCase
 {
+    protected function setUp()
+    {
+        if (!class_exists('Symfony\Component\HttpFoundation\Request')) {
+            $this->markTestSkipped('The "HttpFoundation" component is not available');
+        }
+    }
+
     public function testCollect()
     {
         $kernel = new KernelForTest('test', true);
diff --git a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/DataCollector/ExceptionDataCollectorTest.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/DataCollector/ExceptionDataCollectorTest.php
index ebea3ea6e1fc6fcaa503b247643d12a1e3b8b5b7..54a8aabe671b9e922c6c9c73a43caec6a494fce8 100644
--- a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/DataCollector/ExceptionDataCollectorTest.php
+++ b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/DataCollector/ExceptionDataCollectorTest.php
@@ -18,6 +18,13 @@
 
 class ExceptionDataCollectorTest extends \PHPUnit_Framework_TestCase
 {
+    protected function setUp()
+    {
+        if (!class_exists('Symfony\Component\HttpFoundation\Request')) {
+            $this->markTestSkipped('The "HttpFoundation" component is not available');
+        }
+    }
+
     public function testCollect()
     {
         $e = new \Exception('foo',500);
diff --git a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/DataCollector/LoggerDataCollectorTest.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/DataCollector/LoggerDataCollectorTest.php
index 7cd4d06c7ad6016218098edb0249cb79dac9d344..ea82d9d3157339eb7df2078ec6b210ef813deb46 100644
--- a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/DataCollector/LoggerDataCollectorTest.php
+++ b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/DataCollector/LoggerDataCollectorTest.php
@@ -13,9 +13,18 @@
 
 use Symfony\Component\HttpKernel\DataCollector\LoggerDataCollector;
 use Symfony\Component\HttpKernel\Debug\ErrorHandler;
+use Symfony\Component\HttpFoundation\Request;
+use Symfony\Component\HttpFoundation\Response;
 
 class LoggerDataCollectorTest extends \PHPUnit_Framework_TestCase
 {
+    protected function setUp()
+    {
+        if (!class_exists('Symfony\Component\HttpFoundation\Request')) {
+            $this->markTestSkipped('The "HttpFoundation" component is not available');
+        }
+    }
+
     /**
      * @dataProvider getCollectTestData
      */
@@ -26,7 +35,7 @@ public function testCollect($nb, $logs, $expectedLogs, $expectedDeprecationCount
         $logger->expects($this->exactly(2))->method('getLogs')->will($this->returnValue($logs));
 
         $c = new LoggerDataCollector($logger);
-        $c->lateCollect();
+        $c->collect(new Request(), new Response());
 
         $this->assertSame('logger', $c->getName());
         $this->assertSame($nb, $c->countErrors());
diff --git a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/DataCollector/MemoryDataCollectorTest.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/DataCollector/MemoryDataCollectorTest.php
index 340b42881688293241a6b0c6af51293118863e64..607a580aefc9400d0f8715a78f624a60122d2a98 100644
--- a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/DataCollector/MemoryDataCollectorTest.php
+++ b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/DataCollector/MemoryDataCollectorTest.php
@@ -17,6 +17,13 @@
 
 class MemoryDataCollectorTest extends \PHPUnit_Framework_TestCase
 {
+    protected function setUp()
+    {
+        if (!class_exists('Symfony\Component\HttpFoundation\Request')) {
+            $this->markTestSkipped('The "HttpFoundation" component is not available');
+        }
+    }
+
     public function testCollect()
     {
         $collector = new MemoryDataCollector();
@@ -49,7 +56,6 @@ public function getBytesConversionTestData()
             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/Symfony/Component/HttpKernel/Tests/DataCollector/RequestDataCollectorTest.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/DataCollector/RequestDataCollectorTest.php
index bb80781ebeb56a1f0325c22f547f8094976f5bfa..8c14604b28cd172f1ed322dc3a8d3db273dc4d06 100644
--- a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/DataCollector/RequestDataCollectorTest.php
+++ b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/DataCollector/RequestDataCollectorTest.php
@@ -22,6 +22,13 @@
 
 class RequestDataCollectorTest extends \PHPUnit_Framework_TestCase
 {
+    protected function setUp()
+    {
+        if (!class_exists('Symfony\Component\HttpFoundation\Request')) {
+            $this->markTestSkipped('The "HttpFoundation" component is not available');
+        }
+    }
+
     /**
      * @dataProvider provider
      */
@@ -31,23 +38,21 @@ public function testCollect(Request $request, Response $response)
 
         $c->collect($request, $response);
 
-        $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', $c->getRequestAttributes());
-        $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->assertInstanceOf('Symfony\Component\HttpFoundation\HeaderBag', $c->getResponseHeaders());
-        $this->assertSame('OK', $c->getStatusText());
-        $this->assertSame(200, $c->getStatusCode());
-        $this->assertSame('application/json', $c->getContentType());
+        $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',$c->getRequestAttributes());
+        $this->assertInstanceOf('Symfony\Component\HttpFoundation\ParameterBag',$c->getRequestRequest());
+        $this->assertInstanceOf('Symfony\Component\HttpFoundation\ParameterBag',$c->getRequestQuery());
+        $this->assertEquals('html',$c->getFormat());
+        $this->assertEquals(array(),$c->getSessionAttributes());
+        $this->assertEquals('en',$c->getLocale());
+
+        $this->assertInstanceOf('Symfony\Component\HttpFoundation\HeaderBag',$c->getResponseHeaders());
+        $this->assertEquals('OK',$c->getStatusText());
+        $this->assertEquals(200,$c->getStatusCode());
+        $this->assertEquals('application/json',$c->getContentType());
     }
 
     /**
@@ -75,7 +80,7 @@ public function testControllerInspection(Request $request, Response $response)
 
             array(
                 'Closure',
-                function () { return 'foo'; },
+                function() { return 'foo'; },
                 array(
                     'class' => __NAMESPACE__.'\{closure}',
                     'method' => null,
@@ -140,7 +145,7 @@ function () { return 'foo'; },
         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]));
+            $this->assertEquals($controllerTest[2], $c->getController(), sprintf('Testing: %s', $controllerTest[0]));
         }
     }
 
@@ -152,8 +157,6 @@ public function provider()
 
         $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'));
 
         $response = new Response();
         $response->setStatusCode(200);
diff --git a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/DataCollector/TimeDataCollectorTest.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/DataCollector/TimeDataCollectorTest.php
index b5d64bffe350a1e68f8a350d2fb3650ac511984b..13abb6769694315b04a212077314c8b35a8a5707 100644
--- a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/DataCollector/TimeDataCollectorTest.php
+++ b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/DataCollector/TimeDataCollectorTest.php
@@ -17,9 +17,16 @@
 
 class TimeDataCollectorTest extends \PHPUnit_Framework_TestCase
 {
+    protected function setUp()
+    {
+        if (!class_exists('Symfony\Component\HttpFoundation\Request')) {
+            $this->markTestSkipped('The "HttpFoundation" component is not available');
+        }
+    }
+
     public function testCollect()
     {
-        $c = new TimeDataCollector();
+        $c = new TimeDataCollector;
 
         $request = new Request();
         $request->server->set('REQUEST_TIME', 1);
@@ -35,7 +42,7 @@ public function testCollect()
         $this->assertEquals(2000, $c->getStartTime());
 
         $request = new Request();
-        $c->collect($request, new Response());
+        $c->collect($request, new Response);
         $this->assertEquals(0, $c->getStartTime());
 
         $kernel = $this->getMock('Symfony\Component\HttpKernel\KernelInterface');
diff --git a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/Debug/TraceableEventDispatcherTest.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/Debug/TraceableEventDispatcherTest.php
index d30837d2c68555c83adb90d6bda9d8c79f37a9cb..a5f507cd4eeaa35cafdf644939ffdc27fa33f0fc 100644
--- a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/Debug/TraceableEventDispatcherTest.php
+++ b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/Debug/TraceableEventDispatcherTest.php
@@ -22,6 +22,17 @@
 
 class TraceableEventDispatcherTest extends \PHPUnit_Framework_TestCase
 {
+    protected function setUp()
+    {
+        if (!class_exists('Symfony\Component\EventDispatcher\EventDispatcher')) {
+            $this->markTestSkipped('The "EventDispatcher" component is not available');
+        }
+
+        if (!class_exists('Symfony\Component\HttpFoundation\Request')) {
+            $this->markTestSkipped('The "HttpFoundation" component is not available');
+        }
+    }
+
     public function testAddRemoveListener()
     {
         $dispatcher = new EventDispatcher();
@@ -148,22 +159,6 @@ public function testDispatchNested()
         $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 testStopwatchSections()
     {
         $dispatcher = new TraceableEventDispatcher(new EventDispatcher(), $stopwatch = new Stopwatch());
diff --git a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/DependencyInjection/ContainerAwareHttpKernelTest.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/DependencyInjection/ContainerAwareHttpKernelTest.php
index 83182e63eae5bf55a4e75bb84028067a866024a1..61372cd3a0c8e87c38bef951030d79cdefa32f8d 100644
--- a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/DependencyInjection/ContainerAwareHttpKernelTest.php
+++ b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/DependencyInjection/ContainerAwareHttpKernelTest.php
@@ -13,13 +13,27 @@
 
 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;
 
 class ContainerAwareHttpKernelTest extends \PHPUnit_Framework_TestCase
 {
+    protected function setUp()
+    {
+        if (!class_exists('Symfony\Component\DependencyInjection\Container')) {
+            $this->markTestSkipped('The "DependencyInjection" component is not available');
+        }
+
+        if (!class_exists('Symfony\Component\EventDispatcher\EventDispatcher')) {
+            $this->markTestSkipped('The "EventDispatcher" component is not available');
+        }
+
+        if (!class_exists('Symfony\Component\HttpFoundation\Request')) {
+            $this->markTestSkipped('The "HttpFoundation" component is not available');
+        }
+    }
+
     /**
      * @dataProvider getProviderTypes
      */
@@ -27,49 +41,59 @@ 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)
+        $container
+            ->expects($this->once())
+            ->method('enterScope')
+            ->with($this->equalTo('request'))
+        ;
+        $container
+            ->expects($this->once())
+            ->method('leaveScope')
+            ->with($this->equalTo('request'))
+        ;
+        $container
+            ->expects($this->at(0))
+            ->method('hasScope')
+            ->with($this->equalTo('request'))
+            ->will($this->returnValue(false));
+        $container
+            ->expects($this->at(1))
+            ->method('addScope')
+            ->with($this->isInstanceOf('Symfony\Component\DependencyInjection\Scope'));
+        // enterScope()
+        $container
+            ->expects($this->at(3))
+            ->method('set')
+            ->with($this->equalTo('request'), $this->equalTo($request), $this->equalTo('request'))
+        ;
+        $container
+            ->expects($this->at(4))
+            ->method('set')
+            ->with($this->equalTo('request'), $this->equalTo(null), $this->equalTo('request'))
         ;
 
         $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');
-    }
+        $resolver = $this->getMock('Symfony\\Component\\HttpKernel\\Controller\\ControllerResolverInterface');
+        $kernel = new ContainerAwareHttpKernel($dispatcher, $container, $resolver);
 
-    /**
-     * @dataProvider getProviderTypes
-     */
-    public function testVerifyRequestStackPushPopDuringHandle($type)
-    {
-        $request = new Request();
-        $expected = new Response();
-        $controller = function () use ($expected) {
+        $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');
+        $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()));
 
-        $container = $this->getMock('Symfony\Component\DependencyInjection\ContainerInterface');
-        $dispatcher = new EventDispatcher();
-        $resolver = $this->getResolverMockFor($controller, $request);
-        $kernel = new ContainerAwareHttpKernel($dispatcher, $container, $resolver, $stack);
+        $actual = $kernel->handle($request, $type);
 
-        $kernel->handle($request, $type);
+        $this->assertSame($expected, $actual, '->handle() returns the response');
     }
 
     /**
@@ -79,23 +103,51 @@ 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)
+        $container
+            ->expects($this->once())
+            ->method('enterScope')
+            ->with($this->equalTo('request'))
+        ;
+        $container
+            ->expects($this->once())
+            ->method('leaveScope')
+            ->with($this->equalTo('request'))
+        ;
+        $container
+            ->expects($this->at(0))
+            ->method('hasScope')
+            ->with($this->equalTo('request'))
+            ->will($this->returnValue(true));
+        // enterScope()
+        $container
+            ->expects($this->at(2))
+            ->method('set')
+            ->with($this->equalTo('request'), $this->equalTo($request), $this->equalTo('request'))
+        ;
+        $container
+            ->expects($this->at(3))
+            ->method('set')
+            ->with($this->equalTo('request'), $this->equalTo(null), $this->equalTo('request'))
         ;
 
         $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);
+        $kernel = new ContainerAwareHttpKernel($dispatcher, $container, $resolver);
+
+        $controller = function() use ($expected) {
+            throw $expected;
+        };
+
+        $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()));
 
         try {
             $kernel->handle($request, $type);
@@ -114,52 +166,4 @@ public function getProviderTypes()
             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/Symfony/Component/HttpKernel/Tests/DependencyInjection/MergeExtensionConfigurationPassTest.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/DependencyInjection/MergeExtensionConfigurationPassTest.php
index 0df6a454b6602024d35f1e1d8fdbcc795845fd57..0800758b1d877fba051c1a489d1640a924a2a665 100644
--- a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/DependencyInjection/MergeExtensionConfigurationPassTest.php
+++ b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/DependencyInjection/MergeExtensionConfigurationPassTest.php
@@ -9,12 +9,23 @@
  * file that was distributed with this source code.
  */
 
-namespace Symfony\Component\HttpKernel\Tests\DependencyInjection;
+namespace Symfony\Component\HttpKernel\Tests;
 
 use Symfony\Component\HttpKernel\DependencyInjection\MergeExtensionConfigurationPass;
 
 class MergeExtensionConfigurationPassTest extends \PHPUnit_Framework_TestCase
 {
+    protected function setUp()
+    {
+        if (!class_exists('Symfony\Component\DependencyInjection\Container')) {
+            $this->markTestSkipped('The "DependencyInjection" component is not available');
+        }
+
+        if (!class_exists('Symfony\Component\Config\FileLocator')) {
+            $this->markTestSkipped('The "Config" component is not available');
+        }
+    }
+
     public function testAutoloadMainExtension()
     {
         $container = $this->getMock('Symfony\\Component\\DependencyInjection\\ContainerBuilder');
diff --git a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/DependencyInjection/RegisterListenersPassTest.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/DependencyInjection/RegisterListenersPassTest.php
index b82053ece6f092163487ec087ce3db41c863cd02..d1e825a8241b25b59f5069f6fa37568b3bf526c0 100644
--- a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/DependencyInjection/RegisterListenersPassTest.php
+++ b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/DependencyInjection/RegisterListenersPassTest.php
@@ -12,6 +12,7 @@
 namespace Symfony\Component\HttpKernel\Tests\DependencyInjection;
 
 use Symfony\Component\DependencyInjection\ContainerBuilder;
+use Symfony\Component\DependencyInjection\Definition;
 use Symfony\Component\HttpKernel\DependencyInjection\RegisterListenersPass;
 
 class RegisterListenersPassTest extends \PHPUnit_Framework_TestCase
@@ -30,9 +31,6 @@ public function testEventSubscriberWithoutInterface()
         );
 
         $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'));
@@ -62,9 +60,6 @@ public function testValidEventSubscriber()
         );
 
         $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\HttpKernel\Tests\DependencyInjection\SubscriberService'));
@@ -83,55 +78,9 @@ public function testValidEventSubscriber()
             ->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);
-    }
 }
 
 class SubscriberService implements \Symfony\Component\EventDispatcher\EventSubscriberInterface
diff --git a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/EventListener/EsiListenerTest.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/EventListener/EsiListenerTest.php
index 56f68535f1e2147e17d18b7a33f399150be6f510..2eddc572a46d18c6188d0c7980a2ca1414e0e48b 100644
--- a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/EventListener/EsiListenerTest.php
+++ b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/EventListener/EsiListenerTest.php
@@ -22,6 +22,13 @@
 
 class EsiListenerTest extends \PHPUnit_Framework_TestCase
 {
+    protected function setUp()
+    {
+        if (!class_exists('Symfony\Component\EventDispatcher\EventDispatcher')) {
+            $this->markTestSkipped('The "EventDispatcher" component is not available');
+        }
+    }
+
     public function testFilterDoesNothingForSubRequests()
     {
         $dispatcher = new EventDispatcher();
diff --git a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/EventListener/ExceptionListenerTest.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/EventListener/ExceptionListenerTest.php
index 30e8c74ecd294c96fc2bc982d9952448ba9a53d5..c6a01281a7d5cdb8db6cacea6f0cdf2d46c68f14 100644
--- a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/EventListener/ExceptionListenerTest.php
+++ b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/EventListener/ExceptionListenerTest.php
@@ -26,6 +26,17 @@
  */
 class ExceptionListenerTest extends \PHPUnit_Framework_TestCase
 {
+    protected function setUp()
+    {
+        if (!class_exists('Symfony\Component\EventDispatcher\EventDispatcher')) {
+            $this->markTestSkipped('The "EventDispatcher" component is not available');
+        }
+
+        if (!class_exists('Symfony\Component\HttpFoundation\Request')) {
+            $this->markTestSkipped('The "HttpFoundation" component is not available');
+        }
+    }
+
     public function testConstruct()
     {
         $logger = new TestLogger();
diff --git a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/EventListener/FragmentListenerTest.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/EventListener/FragmentListenerTest.php
index ec9360a431eb6b343add7258bb8646f90b2de0f7..153d8a44ff9cc4deacc82f73dafd6399f0d6d8fe 100644
--- a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/EventListener/FragmentListenerTest.php
+++ b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/EventListener/FragmentListenerTest.php
@@ -19,6 +19,13 @@
 
 class FragmentListenerTest extends \PHPUnit_Framework_TestCase
 {
+    protected function setUp()
+    {
+        if (!class_exists('Symfony\Component\EventDispatcher\EventDispatcher')) {
+            $this->markTestSkipped('The "EventDispatcher" component is not available');
+        }
+    }
+
     public function testOnlyTriggeredOnFragmentRoute()
     {
         $request = Request::create('http://example.com/foo?_path=foo%3Dbar%26_controller%3Dfoo');
diff --git a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/EventListener/LocaleListenerTest.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/EventListener/LocaleListenerTest.php
index d128753ffab067f128338d274c690d0b61bc237a..e5e4e3a286dfc2e33bc6fb43515bc3e05ea44536 100644
--- a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/EventListener/LocaleListenerTest.php
+++ b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/EventListener/LocaleListenerTest.php
@@ -11,24 +11,23 @@
 
 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\HttpFoundation\Request;
 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);
+        if (!class_exists('Symfony\Component\EventDispatcher\EventDispatcher')) {
+            $this->markTestSkipped('The "EventDispatcher" component is not available');
+        }
     }
 
     public function testDefaultLocaleWithoutSession()
     {
-        $listener = new LocaleListener('fr', null, $this->requestStack);
+        $listener = new LocaleListener('fr');
         $event = $this->getEvent($request = Request::create('/'));
 
         $listener->onKernelRequest($event);
@@ -42,7 +41,7 @@ public function testLocaleFromRequestAttribute()
         $request->cookies->set('foo', 'value');
 
         $request->attributes->set('_locale', 'es');
-        $listener = new LocaleListener('fr', null, $this->requestStack);
+        $listener = new LocaleListener('fr');
         $event = $this->getEvent($request);
 
         $listener->onKernelRequest($event);
@@ -50,22 +49,6 @@ public function testLocaleFromRequestAttribute()
     }
 
     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()
     {
         if (!class_exists('Symfony\Component\Routing\Router')) {
             $this->markTestSkipped('The "Routing" component is not available');
@@ -78,22 +61,18 @@ public function testRouterResetWithParentRequestOnKernelFinishRequest()
         $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);
+        $request = Request::create('/');
 
-        $listener = new LocaleListener('fr', $router, $this->requestStack);
-        $listener->onKernelFinishRequest($event);
+        $request->attributes->set('_locale', 'es');
+        $listener = new LocaleListener('fr', $router);
+        $listener->onKernelRequest($this->getEvent($request));
     }
 
     public function testRequestLocaleIsNotOverridden()
     {
         $request = Request::create('/');
         $request->setLocale('de');
-        $listener = new LocaleListener('fr', null, $this->requestStack);
+        $listener = new LocaleListener('fr');
         $event = $this->getEvent($request);
 
         $listener->onKernelRequest($event);
diff --git a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/EventListener/ProfilerListenerTest.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/EventListener/ProfilerListenerTest.php
deleted file mode 100644
index 772dfd0a4c11694ee482312d9d23f6fe88411e3d..0000000000000000000000000000000000000000
--- a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/EventListener/ProfilerListenerTest.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\Tests\EventListener;
-
-use Symfony\Component\HttpKernel\Event\FilterResponseEvent;
-use Symfony\Component\HttpKernel\Event\PostResponseEvent;
-use Symfony\Component\HttpKernel\EventListener\ProfilerListener;
-use Symfony\Component\HttpKernel\Event\GetResponseEvent;
-use Symfony\Component\HttpKernel\Kernel;
-
-class ProfilerListenerTest extends \PHPUnit_Framework_TestCase
-{
-    /**
-     * Test to ensure BC without RequestStack
-     *
-     * @deprecated Deprecated since version 2.4, to be removed in 3.0.
-     */
-    public function testEventsWithoutRequestStack()
-    {
-        $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));
-    }
-}
diff --git a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/EventListener/ResponseListenerTest.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/EventListener/ResponseListenerTest.php
index 2698f8e7625ff06ec555406f007ea666ac2572bf..3f8e852104454e48f199783158d42d04590ebe38 100644
--- a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/EventListener/ResponseListenerTest.php
+++ b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/EventListener/ResponseListenerTest.php
@@ -27,6 +27,10 @@ class ResponseListenerTest extends \PHPUnit_Framework_TestCase
 
     protected function setUp()
     {
+        if (!class_exists('Symfony\Component\EventDispatcher\EventDispatcher')) {
+            $this->markTestSkipped('The "EventDispatcher" component is not available');
+        }
+
         $this->dispatcher = new EventDispatcher();
         $listener = new ResponseListener('UTF-8');
         $this->dispatcher->addListener(KernelEvents::RESPONSE, array($listener, 'onKernelResponse'));
diff --git a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/EventListener/RouterListenerTest.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/EventListener/RouterListenerTest.php
index ac742b35e08ce64e7ae5373627f40415daae1882..3ba56a8da78b86d23762c014d8d0194a024835a5 100644
--- a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/EventListener/RouterListenerTest.php
+++ b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/EventListener/RouterListenerTest.php
@@ -11,20 +11,23 @@
 
 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\HttpFoundation\Request;
 use Symfony\Component\HttpKernel\HttpKernelInterface;
 use Symfony\Component\HttpKernel\Event\GetResponseEvent;
 use Symfony\Component\Routing\RequestContext;
 
 class RouterListenerTest extends \PHPUnit_Framework_TestCase
 {
-    private $requestStack;
-
-    public function setUp()
+    protected function setUp()
     {
-        $this->requestStack = $this->getMock('Symfony\Component\HttpFoundation\RequestStack', array(), array(), '', false);
+        if (!class_exists('Symfony\Component\EventDispatcher\EventDispatcher')) {
+            $this->markTestSkipped('The "EventDispatcher" component is not available');
+        }
+
+        if (!class_exists('Symfony\Component\Routing\Router')) {
+            $this->markTestSkipped('The "Routing" component is not available');
+        }
     }
 
     /**
@@ -42,7 +45,7 @@ public function testPort($defaultHttpPort, $defaultHttpsPort, $uri, $expectedHtt
                      ->method('getContext')
                      ->will($this->returnValue($context));
 
-        $listener = new RouterListener($urlMatcher, null, null, $this->requestStack);
+        $listener = new RouterListener($urlMatcher);
         $event = $this->createGetResponseEventForUri($uri);
         $listener->onKernelRequest($event);
 
@@ -80,7 +83,7 @@ private function createGetResponseEventForUri($uri)
      */
     public function testInvalidMatcher()
     {
-        new RouterListener(new \stdClass(), null, null, $this->requestStack);
+        new RouterListener(new \stdClass());
     }
 
     public function testRequestMatcher()
@@ -95,7 +98,7 @@ public function testRequestMatcher()
                        ->with($this->isInstanceOf('Symfony\Component\HttpFoundation\Request'))
                        ->will($this->returnValue(array()));
 
-        $listener = new RouterListener($requestMatcher, new RequestContext(), null, $this->requestStack);
+        $listener = new RouterListener($requestMatcher, new RequestContext());
         $listener->onKernelRequest($event);
     }
 
@@ -116,7 +119,7 @@ public function testSubRequestWithDifferentMethod()
                        ->method('getContext')
                        ->will($this->returnValue($context));
 
-        $listener = new RouterListener($requestMatcher, new RequestContext(), null, $this->requestStack);
+        $listener = new RouterListener($requestMatcher, new RequestContext());
         $listener->onKernelRequest($event);
 
         // sub-request with another HTTP method
diff --git a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/EventListener/TestSessionListenerTest.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/EventListener/TestSessionListenerTest.php
deleted file mode 100644
index 907c20375fee65231a9d83a1c5df3758facbbc0d..0000000000000000000000000000000000000000
--- a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/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/Symfony/Component/HttpKernel/Tests/Fixtures/KernelForTest.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/Fixtures/KernelForTest.php
index 5fd61bbc7e7ce0713466f9d3d64f3b2a743119c5..e24daef2b353a0974edf7788c73efad52c4e7f95 100644
--- a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/Fixtures/KernelForTest.php
+++ b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/Fixtures/KernelForTest.php
@@ -23,15 +23,32 @@ public function getBundleMap()
 
     public function registerBundles()
     {
-        return array();
+    }
+
+    public function init()
+    {
+    }
+
+    public function registerBundleDirs()
+    {
     }
 
     public function registerContainerConfiguration(LoaderInterface $loader)
     {
     }
 
+    public function initializeBundles()
+    {
+        parent::initializeBundles();
+    }
+
     public function isBooted()
     {
         return $this->booted;
     }
+
+    public function setIsBooted($value)
+    {
+        $this->booted = (Boolean) $value;
+    }
 }
diff --git a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/Fragment/EsiFragmentRendererTest.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/Fragment/EsiFragmentRendererTest.php
index 8acf45d96f6d715d4bc4cd0c5426b355daeb2d4f..5bbfdace9bde80643660c1cb2faf5a4c9080f615 100644
--- a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/Fragment/EsiFragmentRendererTest.php
+++ b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/Fragment/EsiFragmentRendererTest.php
@@ -9,7 +9,7 @@
  * file that was distributed with this source code.
  */
 
-namespace Symfony\Component\HttpKernel\Tests\Fragment;
+namespace Symfony\Component\HttpKernel\Tests\Fragment\FragmentRenderer;
 
 use Symfony\Component\HttpKernel\Controller\ControllerReference;
 use Symfony\Component\HttpKernel\Fragment\EsiFragmentRenderer;
@@ -18,6 +18,13 @@
 
 class EsiFragmentRendererTest extends \PHPUnit_Framework_TestCase
 {
+    protected function setUp()
+    {
+        if (!class_exists('Symfony\Component\HttpFoundation\Request')) {
+            $this->markTestSkipped('The "HttpFoundation" component is not available');
+        }
+    }
+
     public function testRenderFallbackToInlineStrategyIfNoRequest()
     {
         $strategy = new EsiFragmentRenderer(new Esi(), $this->getInlineStrategy(true));
@@ -41,7 +48,7 @@ public function testRender()
         $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());
-        $this->assertEquals('<esi:include src="/_fragment?_path=_format%3Dhtml%26_locale%3Dfr%26_controller%3Dmain_controller" alt="/_fragment?_path=_format%3Dhtml%26_locale%3Dfr%26_controller%3Dalt_controller" />', $strategy->render(new ControllerReference('main_controller', array(), array()), $request, array('alt' => new ControllerReference('alt_controller', array(), array())))->getContent());
+        $this->assertEquals('<esi:include src="http://localhost/_fragment?_path=_format%3Dhtml%26_locale%3Dfr%26_controller%3Dmain_controller" alt="http://localhost/_fragment?_path=_format%3Dhtml%26_locale%3Dfr%26_controller%3Dalt_controller" />', $strategy->render(new ControllerReference('main_controller', array(), array()), $request, array('alt' => new ControllerReference('alt_controller', array(), array())))->getContent());
     }
 
     private function getInlineStrategy($called = false)
diff --git a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/Fragment/FragmentHandlerTest.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/Fragment/FragmentHandlerTest.php
index 1893d85b80ac09d62cde5738ecb622e82441ba29..cec8ae98403a711f4193490b509bf90eb9c822b8 100644
--- a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/Fragment/FragmentHandlerTest.php
+++ b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/Fragment/FragmentHandlerTest.php
@@ -17,32 +17,17 @@
 
 class FragmentHandlerTest extends \PHPUnit_Framework_TestCase
 {
-    private $requestStack;
-
-    public 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 = new FragmentHandler();
         $handler->render('/', 'foo');
     }
 
     /**
-     * @expectedException \InvalidArgumentException
+     * @expectedException InvalidArgumentException
      */
     public function testRenderWithUnknownRenderer()
     {
@@ -52,7 +37,7 @@ public function testRenderWithUnknownRenderer()
     }
 
     /**
-     * @expectedException \RuntimeException
+     * @expectedException RuntimeException
      * @expectedExceptionMessage Error when rendering "http://localhost/" (Status code is 404).
      */
     public function testDeliverWithUnsuccessfulResponse()
@@ -87,8 +72,9 @@ protected function getHandler($returnValue, $arguments = array())
             call_user_func_array(array($e, 'with'), $arguments);
         }
 
-        $handler = new FragmentHandler(array(), null, $this->requestStack);
+        $handler = new FragmentHandler();
         $handler->addRenderer($renderer);
+        $handler->setRequest(Request::create('/'));
 
         return $handler;
     }
diff --git a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/Fragment/HIncludeFragmentRendererTest.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/Fragment/HIncludeFragmentRendererTest.php
index 2f266dba77cd0c72f5a39ce131c66396055c3d20..20840f35e0e7783e372b97464acefaadd4488296 100644
--- a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/Fragment/HIncludeFragmentRendererTest.php
+++ b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/Fragment/HIncludeFragmentRendererTest.php
@@ -9,7 +9,7 @@
  * file that was distributed with this source code.
  */
 
-namespace Symfony\Component\HttpKernel\Tests\Fragment;
+namespace Symfony\Component\HttpKernel\Fragment\Tests\FragmentRenderer;
 
 use Symfony\Component\HttpKernel\Controller\ControllerReference;
 use Symfony\Component\HttpKernel\Fragment\HIncludeFragmentRenderer;
@@ -18,6 +18,13 @@
 
 class HIncludeFragmentRendererTest extends \PHPUnit_Framework_TestCase
 {
+    protected function setUp()
+    {
+        if (!class_exists('Symfony\Component\HttpFoundation\Request')) {
+            $this->markTestSkipped('The "HttpFoundation" component is not available');
+        }
+    }
+
     /**
      * @expectedException \LogicException
      */
@@ -31,7 +38,7 @@ 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());
+        $this->assertEquals('<hx:include src="http://localhost/_fragment?_path=_format%3Dhtml%26_locale%3Den%26_controller%3Dmain_controller&amp;_hash=g4b3vtCnhkZBFKrciEFwG7fucVo%3D"></hx:include>', $strategy->render(new ControllerReference('main_controller', array(), array()), Request::create('/'))->getContent());
     }
 
     public function testRenderWithUri()
diff --git a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/Fragment/InlineFragmentRendererTest.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/Fragment/InlineFragmentRendererTest.php
index c7252c9cba558980f505f68f2efaad8b3b2dcb25..ffc0c0aab09caca62908df2775249baaa3deba78 100644
--- a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/Fragment/InlineFragmentRendererTest.php
+++ b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/Fragment/InlineFragmentRendererTest.php
@@ -9,7 +9,7 @@
  * file that was distributed with this source code.
  */
 
-namespace Symfony\Component\HttpKernel\Tests\Fragment;
+namespace Symfony\Component\HttpKernel\Fragment\Tests\FragmentRenderer;
 
 use Symfony\Component\HttpKernel\Controller\ControllerReference;
 use Symfony\Component\HttpKernel\HttpKernel;
@@ -21,6 +21,17 @@
 
 class InlineFragmentRendererTest extends \PHPUnit_Framework_TestCase
 {
+    protected function setUp()
+    {
+        if (!class_exists('Symfony\Component\EventDispatcher\EventDispatcher')) {
+            $this->markTestSkipped('The "EventDispatcher" component is not available');
+        }
+
+        if (!class_exists('Symfony\Component\HttpFoundation\Request')) {
+            $this->markTestSkipped('The "HttpFoundation" component is not available');
+        }
+    }
+
     public function testRender()
     {
         $strategy = new InlineFragmentRenderer($this->getKernel($this->returnValue(new Response('foo'))));
@@ -56,24 +67,6 @@ public function testRenderWithObjectsAsAttributes()
         $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);
@@ -90,7 +83,7 @@ public function testRenderWithTrustedHeaderDisabled()
         $strategy = new InlineFragmentRenderer($kernel);
 
         $strategy->render('/', Request::create('/'));
-
+        
         Request::setTrustedHeaderName(Request::HEADER_CLIENT_IP, $trustedHeaderName);
     }
 
@@ -204,13 +197,3 @@ public function testESIHeaderIsKeptInSubrequestWithTrustedHeaderDisabled()
         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/Symfony/Component/HttpKernel/Tests/Fragment/RoutableFragmentRendererTest.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/Fragment/RoutableFragmentRendererTest.php
index 4af3601b410960acde262db60cef42744286770c..69385dccbd2f83c5f290af416df2a85d13aeb405 100644
--- a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/Fragment/RoutableFragmentRendererTest.php
+++ b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/Fragment/RoutableFragmentRendererTest.php
@@ -9,10 +9,11 @@
  * file that was distributed with this source code.
  */
 
-namespace Symfony\Component\HttpKernel\Tests\Fragment;
+namespace Symfony\Component\HttpKernel\Fragment\Tests\FragmentRenderer;
 
 use Symfony\Component\HttpFoundation\Request;
 use Symfony\Component\HttpKernel\Controller\ControllerReference;
+use Symfony\Component\HttpKernel\Fragment\RoutableFragmentRenderer;
 
 class RoutableFragmentRendererTest extends \PHPUnit_Framework_TestCase
 {
@@ -21,26 +22,17 @@ class RoutableFragmentRendererTest extends \PHPUnit_Framework_TestCase
      */
     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));
+        $this->assertEquals($uri, $this->getRenderer()->doGenerateFragmentUri($controller, Request::create('/')));
     }
 
     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())),
+            array('http://localhost/_fragment?_path=_format%3Dhtml%26_locale%3Den%26_controller%3Dcontroller', new ControllerReference('controller', array(), array())),
+            array('http://localhost/_fragment?_path=_format%3Dxml%26_locale%3Den%26_controller%3Dcontroller', new ControllerReference('controller', array('_format' => 'xml'), array())),
+            array('http://localhost/_fragment?_path=foo%3Dfoo%26_format%3Djson%26_locale%3Den%26_controller%3Dcontroller', new ControllerReference('controller', array('foo' => 'foo', '_format' => 'json'), array())),
+            array('http://localhost/_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('http://localhost/_fragment?foo=foo&_path=_format%3Dhtml%26_locale%3Den%26_controller%3Dcontroller', new ControllerReference('controller', array(), array('foo' => 'foo'))),
         );
     }
 
@@ -51,48 +43,22 @@ public function testGenerateFragmentUriWithARequest()
         $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())),
-        );
+        $this->assertEquals('http://localhost/_fragment?_path=_format%3Djson%26_locale%3Dfr%26_controller%3Dcontroller', $this->getRenderer()->doGenerateFragmentUri($controller, $request));
     }
 
-    private function callGenerateFragmentUriMethod(ControllerReference $reference, Request $request, $absolute = false)
+    private function getRenderer()
     {
-        $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);
+        return new Renderer();
     }
 }
 
-class Foo
+class Renderer extends RoutableFragmentRenderer
 {
-    public $foo;
-
-    public function getFoo()
-    {
-        return $this->foo;
-    }
+    public function render($uri, Request $request, array $options = array()) {}
+    public function getName() {}
 
-    public function doGenerateFragmentUri(ControllerReference $reference, Request $request, $absolute = false, $strict = true)
+    public function doGenerateFragmentUri(ControllerReference $reference, Request $request)
     {
-        return parent::generateFragmentUri($reference, $request, $absolute, $strict);
+        return parent::generateFragmentUri($reference, $request);
     }
 }
diff --git a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/HttpCache/EsiTest.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/HttpCache/EsiTest.php
index c50970638901ed2c20c8241504477faffb027b23..7180da1ff3b79ac9d186dc8b1fee33160efdda29 100644
--- a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/HttpCache/EsiTest.php
+++ b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/HttpCache/EsiTest.php
@@ -17,6 +17,13 @@
 
 class EsiTest extends \PHPUnit_Framework_TestCase
 {
+    protected function setUp()
+    {
+        if (!class_exists('Symfony\Component\HttpFoundation\Request')) {
+            $this->markTestSkipped('The "HttpFoundation" component is not available');
+        }
+    }
+
     public function testHasSurrogateEsiCapability()
     {
         $esi = new Esi();
@@ -126,7 +133,7 @@ public function testProcessEscapesPhpTags()
     }
 
     /**
-     * @expectedException \RuntimeException
+     * @expectedException RuntimeException
      */
     public function testProcessWhenNoSrcInAnEsi()
     {
@@ -166,7 +173,7 @@ public function testHandle()
     }
 
     /**
-     * @expectedException \RuntimeException
+     * @expectedException RuntimeException
      */
     public function testHandleWhenResponseIsNot200()
     {
diff --git a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/HttpCache/HttpCacheTest.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/HttpCache/HttpCacheTest.php
index a2b38bd807c02bc58cbae21143dfc77a22ef4b79..a8064b832b7ff2fbda1c9162b6886bd65e47ce86 100644
--- a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/HttpCache/HttpCacheTest.php
+++ b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/HttpCache/HttpCacheTest.php
@@ -19,8 +19,19 @@
 
 class HttpCacheTest extends HttpCacheTestCase
 {
+    protected function setUp()
+    {
+        if (!class_exists('Symfony\Component\HttpFoundation\Request')) {
+            $this->markTestSkipped('The "HttpFoundation" component is not available');
+        }
+    }
+
     public function testTerminateDelegatesTerminationOnlyForTerminableInterface()
     {
+        if (!class_exists('Symfony\Component\DependencyInjection\Container')) {
+            $this->markTestSkipped('The "DependencyInjection" component is not available');
+        }
+
         $storeMock = $this->getMockBuilder('Symfony\\Component\\HttpKernel\\HttpCache\\StoreInterface')
             ->disableOriginalConstructor()
             ->getMock();
@@ -623,7 +634,7 @@ public function testFetchesFullResponseWhenCacheStaleAndNoValidatorsPresent()
         $r = new \ReflectionObject($this->store);
         $m = $r->getMethod('save');
         $m->setAccessible(true);
-        $m->invoke($this->store, 'md'.hash('sha256', 'http://localhost/'), serialize($tmp));
+        $m->invoke($this->store, 'md'.sha1('http://localhost/'), serialize($tmp));
 
         // build subsequent request; should be found but miss due to freshness
         $this->request('GET', '/');
diff --git a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/HttpCache/HttpCacheTestCase.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/HttpCache/HttpCacheTestCase.php
index 9a1c7d767fdaa2dbe25e94678023afb47a33a73c..4377f61fbeac529b0676ee27c4ffa7c5c1dad0db 100644
--- a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/HttpCache/HttpCacheTestCase.php
+++ b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/HttpCache/HttpCacheTestCase.php
@@ -31,6 +31,10 @@ class HttpCacheTestCase extends \PHPUnit_Framework_TestCase
 
     protected function setUp()
     {
+        if (!class_exists('Symfony\Component\HttpFoundation\Request')) {
+            $this->markTestSkipped('The "HttpFoundation" component is not available');
+        }
+
         $this->kernel = null;
 
         $this->cache = null;
diff --git a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/HttpCache/StoreTest.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/HttpCache/StoreTest.php
index d8cf75ff7a9a879301c2bd19f592dcf6b739946c..6a3e5653a781cf0b6b79de965b630d28314bb271 100644
--- a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/HttpCache/StoreTest.php
+++ b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/HttpCache/StoreTest.php
@@ -23,6 +23,10 @@ class StoreTest extends \PHPUnit_Framework_TestCase
 
     protected function setUp()
     {
+        if (!class_exists('Symfony\Component\HttpFoundation\Request')) {
+            $this->markTestSkipped('The "HttpFoundation" component is not available');
+        }
+
         $this->request = Request::create('/');
         $this->response = new Response('hello world', 200, array());
 
@@ -89,7 +93,7 @@ public function testSetsTheXContentDigestResponseHeaderBeforeStoring()
         $entries = $this->getStoreMetadata($cacheKey);
         list ($req, $res) = $entries[0];
 
-        $this->assertEquals('en9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08', $res['x-content-digest'][0]);
+        $this->assertEquals('ena94a8fe5ccb19ba61c4c0873d391e987982fbbd3', $res['x-content-digest'][0]);
     }
 
     public function testFindsAStoredEntryWithLookup()
@@ -139,7 +143,7 @@ public function testRestoresResponseContentFromEntityStoreWithLookup()
     {
         $this->storeSimpleEntry();
         $response = $this->store->lookup($this->request);
-        $this->assertEquals($this->getStorePath('en'.hash('sha256', 'test')), $response->getContent());
+        $this->assertEquals($this->getStorePath('en'.sha1('test')), $response->getContent());
     }
 
     public function testInvalidatesMetaAndEntityStoreEntriesWithInvalidate()
@@ -182,9 +186,9 @@ public function testStoresMultipleResponsesForEachVaryCombination()
         $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->assertEquals($this->getStorePath('en'.sha1('test 3')), $this->store->lookup($req3)->getContent());
+        $this->assertEquals($this->getStorePath('en'.sha1('test 2')), $this->store->lookup($req2)->getContent());
+        $this->assertEquals($this->getStorePath('en'.sha1('test 1')), $this->store->lookup($req1)->getContent());
 
         $this->assertCount(3, $this->getStoreMetadata($key));
     }
@@ -194,17 +198,17 @@ 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());
+        $this->assertEquals($this->getStorePath('en'.sha1('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());
+        $this->assertEquals($this->getStorePath('en'.sha1('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->assertEquals($this->getStorePath('en'.sha1('test 3')), $this->store->lookup($req3)->getContent());
 
         $this->assertCount(2, $this->getStoreMetadata($key));
     }
diff --git a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/HttpCache/TestHttpKernel.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/HttpCache/TestHttpKernel.php
index da8c34c17768017ee50c6ddef830d8fb436ba8cd..cf23d7bf8abf7740f38c881bb94f97a8e8c6b442 100644
--- a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/HttpCache/TestHttpKernel.php
+++ b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/HttpCache/TestHttpKernel.php
@@ -23,9 +23,9 @@ class TestHttpKernel extends HttpKernel implements ControllerResolverInterface
     protected $body;
     protected $status;
     protected $headers;
-    protected $called = false;
+    protected $called;
     protected $customizer;
-    protected $catch = false;
+    protected $catch;
     protected $backendRequest;
 
     public function __construct($body, $status, $headers, \Closure $customizer = null)
@@ -34,6 +34,8 @@ public function __construct($body, $status, $headers, \Closure $customizer = nul
         $this->status = $status;
         $this->headers = $headers;
         $this->customizer = $customizer;
+        $this->called = false;
+        $this->catch = false;
 
         parent::__construct(new EventDispatcher(), $this);
     }
diff --git a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/HttpCache/TestMultipleHttpKernel.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/HttpCache/TestMultipleHttpKernel.php
index 89ef406bbb15f4aed143851eb51b50ccf90caa13..6dd3d9e499d6165f604655eacb47585e8a6bb572 100644
--- a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/HttpCache/TestMultipleHttpKernel.php
+++ b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/HttpCache/TestMultipleHttpKernel.php
@@ -20,14 +20,20 @@
 
 class TestMultipleHttpKernel extends HttpKernel implements ControllerResolverInterface
 {
-    protected $bodies = array();
-    protected $statuses = array();
-    protected $headers = array();
-    protected $call = false;
+    protected $bodies;
+    protected $statuses;
+    protected $headers;
+    protected $catch;
+    protected $call;
     protected $backendRequest;
 
     public function __construct($responses)
     {
+        $this->bodies   = array();
+        $this->statuses = array();
+        $this->headers  = array();
+        $this->call     = false;
+
         foreach ($responses as $response) {
             $this->bodies[]   = $response['body'];
             $this->statuses[] = $response['status'];
diff --git a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/HttpKernelTest.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/HttpKernelTest.php
index 700b111228beea542d8a7e92542c6b77caa97fcd..367e3e2d41d699b7e97255c0d689178c4155a1c5 100644
--- a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/HttpKernelTest.php
+++ b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/HttpKernelTest.php
@@ -23,8 +23,19 @@
 
 class HttpKernelTest extends \PHPUnit_Framework_TestCase
 {
+    protected function setUp()
+    {
+        if (!class_exists('Symfony\Component\EventDispatcher\EventDispatcher')) {
+            $this->markTestSkipped('The "EventDispatcher" component is not available');
+        }
+
+        if (!class_exists('Symfony\Component\HttpFoundation\Request')) {
+            $this->markTestSkipped('The "HttpFoundation" component is not available');
+        }
+    }
+
     /**
-     * @expectedException \RuntimeException
+     * @expectedException RuntimeException
      */
     public function testHandleWhenControllerThrowsAnExceptionAndRawIsTrue()
     {
@@ -34,7 +45,7 @@ public function testHandleWhenControllerThrowsAnExceptionAndRawIsTrue()
     }
 
     /**
-     * @expectedException \RuntimeException
+     * @expectedException RuntimeException
      */
     public function testHandleWhenControllerThrowsAnExceptionAndRawIsFalseAndNoListenerIsRegistered()
     {
@@ -136,7 +147,7 @@ public function testHandleWhenNoControllerIsFound()
     }
 
     /**
-     * @expectedException \LogicException
+     * @expectedException LogicException
      */
     public function testHandleWhenTheControllerIsNotACallable()
     {
@@ -188,7 +199,7 @@ public function testHandleWhenTheControllerIsAStaticArray()
     }
 
     /**
-     * @expectedException \LogicException
+     * @expectedException LogicException
      */
     public function testHandleWhenTheControllerDoesNotReturnAResponse()
     {
@@ -238,24 +249,10 @@ public function testTerminate()
         $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'); };
+            $controller = function() { return new Response('Hello'); };
         }
 
         $resolver = $this->getMock('Symfony\\Component\\HttpKernel\\Controller\\ControllerResolverInterface');
diff --git a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/KernelTest.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/KernelTest.php
index f4aba74c721d567894130316767960c369452b11..b36f9093f1b6efca30e7426a645e59b380329cbe 100644
--- a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/KernelTest.php
+++ b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/KernelTest.php
@@ -12,6 +12,7 @@
 namespace Symfony\Component\HttpKernel\Tests;
 
 use Symfony\Component\HttpKernel\Kernel;
+use Symfony\Component\HttpKernel\Bundle\Bundle;
 use Symfony\Component\HttpKernel\HttpKernelInterface;
 use Symfony\Component\HttpFoundation\Request;
 use Symfony\Component\HttpFoundation\Response;
@@ -21,6 +22,13 @@
 
 class KernelTest extends \PHPUnit_Framework_TestCase
 {
+    protected function setUp()
+    {
+        if (!class_exists('Symfony\Component\DependencyInjection\Container')) {
+            $this->markTestSkipped('The "DependencyInjection" component is not available');
+        }
+    }
+
     public function testConstructor()
     {
         $env = 'test_env';
@@ -51,22 +59,33 @@ public function testClone()
 
     public function testBootInitializesBundlesAndContainer()
     {
-        $kernel = $this->getKernel(array('initializeBundles', 'initializeContainer'));
+        $kernel = $this->getMockBuilder('Symfony\Component\HttpKernel\Tests\Fixtures\KernelForTest')
+            ->disableOriginalConstructor()
+            ->setMethods(array('initializeBundles', 'initializeContainer', 'getBundles'))
+            ->getMock();
         $kernel->expects($this->once())
             ->method('initializeBundles');
         $kernel->expects($this->once())
             ->method('initializeContainer');
+        $kernel->expects($this->once())
+            ->method('getBundles')
+            ->will($this->returnValue(array()));
 
         $kernel->boot();
     }
 
     public function testBootSetsTheContainerToTheBundles()
     {
-        $bundle = $this->getMock('Symfony\Component\HttpKernel\Bundle\Bundle');
+        $bundle = $this->getMockBuilder('Symfony\Component\HttpKernel\Bundle\Bundle')
+            ->disableOriginalConstructor()
+            ->getMock();
         $bundle->expects($this->once())
             ->method('setContainer');
 
-        $kernel = $this->getKernel(array('initializeBundles', 'initializeContainer', 'getBundles'));
+        $kernel = $this->getMockBuilder('Symfony\Component\HttpKernel\Tests\Fixtures\KernelForTest')
+            ->disableOriginalConstructor()
+            ->setMethods(array('initializeBundles', 'initializeContainer', 'getBundles'))
+            ->getMock();
         $kernel->expects($this->once())
             ->method('getBundles')
             ->will($this->returnValue(array($bundle)));
@@ -76,11 +95,13 @@ public function testBootSetsTheContainerToTheBundles()
 
     public function testBootSetsTheBootedFlagToTrue()
     {
-        // use test kernel to access isBooted()
         $kernel = $this->getMockBuilder('Symfony\Component\HttpKernel\Tests\Fixtures\KernelForTest')
-            ->setConstructorArgs(array('test', false))
-            ->setMethods(array('initializeBundles', 'initializeContainer'))
+            ->disableOriginalConstructor()
+            ->setMethods(array('initializeBundles', 'initializeContainer', 'getBundles'))
             ->getMock();
+        $kernel->expects($this->once())
+            ->method('getBundles')
+            ->will($this->returnValue(array()));
 
         $kernel->boot();
 
@@ -89,8 +110,14 @@ public function testBootSetsTheBootedFlagToTrue()
 
     public function testClassCacheIsLoaded()
     {
-        $kernel = $this->getKernel(array('initializeBundles', 'initializeContainer', 'doLoadClassCache'));
+        $kernel = $this->getMockBuilder('Symfony\Component\HttpKernel\Tests\Fixtures\KernelForTest')
+            ->disableOriginalConstructor()
+            ->setMethods(array('initializeBundles', 'initializeContainer', 'getBundles', 'doLoadClassCache'))
+            ->getMock();
         $kernel->loadClassCache('name', '.extension');
+        $kernel->expects($this->any())
+            ->method('getBundles')
+            ->will($this->returnValue(array()));
         $kernel->expects($this->once())
             ->method('doLoadClassCache')
             ->with('name', '.extension');
@@ -100,7 +127,13 @@ public function testClassCacheIsLoaded()
 
     public function testClassCacheIsNotLoadedByDefault()
     {
-        $kernel = $this->getKernel(array('initializeBundles', 'initializeContainer'));
+        $kernel = $this->getMockBuilder('Symfony\Component\HttpKernel\Tests\Fixtures\KernelForTest')
+            ->disableOriginalConstructor()
+            ->setMethods(array('initializeBundles', 'initializeContainer', 'getBundles', 'doLoadClassCache'))
+            ->getMock();
+        $kernel->expects($this->any())
+            ->method('getBundles')
+            ->will($this->returnValue(array()));
         $kernel->expects($this->never())
             ->method('doLoadClassCache');
 
@@ -109,17 +142,27 @@ public function testClassCacheIsNotLoadedByDefault()
 
     public function testClassCacheIsNotLoadedWhenKernelIsNotBooted()
     {
-        $kernel = $this->getKernel(array('initializeBundles', 'initializeContainer', 'doLoadClassCache'));
+        $kernel = $this->getMockBuilder('Symfony\Component\HttpKernel\Tests\Fixtures\KernelForTest')
+            ->disableOriginalConstructor()
+            ->setMethods(array('initializeBundles', 'initializeContainer', 'getBundles', 'doLoadClassCache'))
+            ->getMock();
         $kernel->loadClassCache();
+        $kernel->expects($this->any())
+            ->method('getBundles')
+            ->will($this->returnValue(array()));
         $kernel->expects($this->never())
             ->method('doLoadClassCache');
     }
 
     public function testBootKernelSeveralTimesOnlyInitializesBundlesOnce()
     {
-        $kernel = $this->getKernel(array('initializeBundles', 'initializeContainer'));
+        $kernel = $this->getMockBuilder('Symfony\Component\HttpKernel\Tests\Fixtures\KernelForTest')
+            ->disableOriginalConstructor()
+            ->setMethods(array('initializeBundles', 'initializeContainer', 'getBundles'))
+            ->getMock();
         $kernel->expects($this->once())
-            ->method('initializeBundles');
+            ->method('getBundles')
+            ->will($this->returnValue(array()));
 
         $kernel->boot();
         $kernel->boot();
@@ -127,29 +170,40 @@ public function testBootKernelSeveralTimesOnlyInitializesBundlesOnce()
 
     public function testShutdownCallsShutdownOnAllBundles()
     {
-        $bundle = $this->getMock('Symfony\Component\HttpKernel\Bundle\Bundle');
+        $bundle = $this->getMockBuilder('Symfony\Component\HttpKernel\Bundle\Bundle')
+            ->disableOriginalConstructor()
+            ->getMock();
         $bundle->expects($this->once())
             ->method('shutdown');
 
-        $kernel = $this->getKernel(array(), array($bundle));
+        $kernel = $this->getMockBuilder('Symfony\Component\HttpKernel\Tests\Fixtures\KernelForTest')
+            ->disableOriginalConstructor()
+            ->setMethods(array('getBundles'))
+            ->getMock();
+        $kernel->expects($this->once())
+            ->method('getBundles')
+            ->will($this->returnValue(array($bundle)));
 
-        $kernel->boot();
         $kernel->shutdown();
     }
 
     public function testShutdownGivesNullContainerToAllBundles()
     {
-        $bundle = $this->getMock('Symfony\Component\HttpKernel\Bundle\Bundle');
-        $bundle->expects($this->at(3))
+        $bundle = $this->getMockBuilder('Symfony\Component\HttpKernel\Bundle\Bundle')
+            ->disableOriginalConstructor()
+            ->getMock();
+        $bundle->expects($this->once())
             ->method('setContainer')
             ->with(null);
 
-        $kernel = $this->getKernel(array('getBundles'));
-        $kernel->expects($this->any())
+        $kernel = $this->getMockBuilder('Symfony\Component\HttpKernel\Tests\Fixtures\KernelForTest')
+            ->disableOriginalConstructor()
+            ->setMethods(array('getBundles'))
+            ->getMock();
+        $kernel->expects($this->once())
             ->method('getBundles')
             ->will($this->returnValue(array($bundle)));
 
-        $kernel->boot();
         $kernel->shutdown();
     }
 
@@ -167,7 +221,11 @@ public function testHandleCallsHandleOnHttpKernel()
             ->method('handle')
             ->with($request, $type, $catch);
 
-        $kernel = $this->getKernel(array('getHttpKernel'));
+        $kernel = $this->getMockBuilder('Symfony\Component\HttpKernel\Tests\Fixtures\KernelForTest')
+            ->disableOriginalConstructor()
+            ->setMethods(array('getHttpKernel'))
+            ->getMock();
+
         $kernel->expects($this->once())
             ->method('getHttpKernel')
             ->will($this->returnValue($httpKernelMock));
@@ -185,7 +243,11 @@ public function testHandleBootsTheKernel()
             ->disableOriginalConstructor()
             ->getMock();
 
-        $kernel = $this->getKernel(array('getHttpKernel', 'boot'));
+        $kernel = $this->getMockBuilder('Symfony\Component\HttpKernel\Tests\Fixtures\KernelForTest')
+            ->disableOriginalConstructor()
+            ->setMethods(array('getHttpKernel', 'boot'))
+            ->getMock();
+
         $kernel->expects($this->once())
             ->method('getHttpKernel')
             ->will($this->returnValue($httpKernelMock));
@@ -193,6 +255,10 @@ public function testHandleBootsTheKernel()
         $kernel->expects($this->once())
             ->method('boot');
 
+        // required as this value is initialized
+        // in the kernel constructor, which we don't call
+        $kernel->setIsBooted(false);
+
         $kernel->handle($request, $type, $catch);
     }
 
@@ -268,8 +334,8 @@ public function doStuff()
 
         $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.
+        // Heredocs are preserved, making the output mixing unix and windows line
+        // endings, switching to "\n" everywhere on windows to avoid failure.
         if (defined('PHP_WINDOWS_VERSION_MAJOR')) {
             $expected = str_replace("\r\n", "\n", $expected);
             $output = str_replace("\r\n", "\n", $output);
@@ -303,7 +369,10 @@ protected function getKernelMockForIsClassInActiveBundleTest()
     {
         $bundle = new FooBarBundle();
 
-        $kernel = $this->getKernel(array('getBundles'));
+        $kernel = $this->getMockBuilder('Symfony\Component\HttpKernel\Tests\Fixtures\KernelForTest')
+            ->disableOriginalConstructor()
+            ->setMethods(array('getBundles'))
+            ->getMock();
         $kernel->expects($this->once())
             ->method('getBundles')
             ->will($this->returnValue(array($bundle)));
@@ -347,7 +416,7 @@ public function testSerialize()
      */
     public function testLocateResourceThrowsExceptionWhenNameIsNotValid()
     {
-        $this->getKernel()->locateResource('Foo');
+        $this->getKernelForInvalidLocateResource()->locateResource('Foo');
     }
 
     /**
@@ -355,7 +424,7 @@ public function testLocateResourceThrowsExceptionWhenNameIsNotValid()
      */
     public function testLocateResourceThrowsExceptionWhenNameIsUnsafe()
     {
-        $this->getKernel()->locateResource('@FooBundle/../bar');
+        $this->getKernelForInvalidLocateResource()->locateResource('@FooBundle/../bar');
     }
 
     /**
@@ -363,7 +432,7 @@ public function testLocateResourceThrowsExceptionWhenNameIsUnsafe()
      */
     public function testLocateResourceThrowsExceptionWhenBundleDoesNotExist()
     {
-        $this->getKernel()->locateResource('@FooBundle/config/routing.xml');
+        $this->getKernelForInvalidLocateResource()->locateResource('@FooBundle/config/routing.xml');
     }
 
     /**
@@ -371,7 +440,7 @@ public function testLocateResourceThrowsExceptionWhenBundleDoesNotExist()
      */
     public function testLocateResourceThrowsExceptionWhenResourceDoesNotExist()
     {
-        $kernel = $this->getKernel(array('getBundle'));
+        $kernel = $this->getKernel();
         $kernel
             ->expects($this->once())
             ->method('getBundle')
@@ -383,7 +452,7 @@ public function testLocateResourceThrowsExceptionWhenResourceDoesNotExist()
 
     public function testLocateResourceReturnsTheFirstThatMatches()
     {
-        $kernel = $this->getKernel(array('getBundle'));
+        $kernel = $this->getKernel();
         $kernel
             ->expects($this->once())
             ->method('getBundle')
@@ -398,7 +467,7 @@ public function testLocateResourceReturnsTheFirstThatMatchesWithParent()
         $parent = $this->getBundle(__DIR__.'/Fixtures/Bundle1Bundle');
         $child = $this->getBundle(__DIR__.'/Fixtures/Bundle2Bundle');
 
-        $kernel = $this->getKernel(array('getBundle'));
+        $kernel = $this->getKernel();
         $kernel
             ->expects($this->exactly(2))
             ->method('getBundle')
@@ -414,7 +483,7 @@ public function testLocateResourceReturnsAllMatches()
         $parent = $this->getBundle(__DIR__.'/Fixtures/Bundle1Bundle');
         $child = $this->getBundle(__DIR__.'/Fixtures/Bundle2Bundle');
 
-        $kernel = $this->getKernel(array('getBundle'));
+        $kernel = $this->getKernel();
         $kernel
             ->expects($this->once())
             ->method('getBundle')
@@ -429,7 +498,7 @@ public function testLocateResourceReturnsAllMatches()
 
     public function testLocateResourceReturnsAllMatchesBis()
     {
-        $kernel = $this->getKernel(array('getBundle'));
+        $kernel = $this->getKernel();
         $kernel
             ->expects($this->once())
             ->method('getBundle')
@@ -447,7 +516,7 @@ public function testLocateResourceReturnsAllMatchesBis()
 
     public function testLocateResourceIgnoresDirOnNonResource()
     {
-        $kernel = $this->getKernel(array('getBundle'));
+        $kernel = $this->getKernel();
         $kernel
             ->expects($this->once())
             ->method('getBundle')
@@ -462,7 +531,7 @@ public function testLocateResourceIgnoresDirOnNonResource()
 
     public function testLocateResourceReturnsTheDirOneForResources()
     {
-        $kernel = $this->getKernel(array('getBundle'));
+        $kernel = $this->getKernel();
         $kernel
             ->expects($this->once())
             ->method('getBundle')
@@ -477,7 +546,7 @@ public function testLocateResourceReturnsTheDirOneForResources()
 
     public function testLocateResourceReturnsTheDirOneForResourcesAndBundleOnes()
     {
-        $kernel = $this->getKernel(array('getBundle'));
+        $kernel = $this->getKernel();
         $kernel
             ->expects($this->once())
             ->method('getBundle')
@@ -496,7 +565,7 @@ 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 = $this->getKernel();
         $kernel
             ->expects($this->exactly(4))
             ->method('getBundle')
@@ -531,7 +600,7 @@ public function testLocateResourceOverrideBundleAndResourcesFolders()
 
     public function testLocateResourceOnDirectories()
     {
-        $kernel = $this->getKernel(array('getBundle'));
+        $kernel = $this->getKernel();
         $kernel
             ->expects($this->exactly(2))
             ->method('getBundle')
@@ -547,7 +616,7 @@ public function testLocateResourceOnDirectories()
             $kernel->locateResource('@FooBundle/Resources', __DIR__.'/Fixtures/Resources')
         );
 
-        $kernel = $this->getKernel(array('getBundle'));
+        $kernel = $this->getKernel();
         $kernel
             ->expects($this->exactly(2))
             ->method('getBundle')
@@ -569,19 +638,13 @@ 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
-            ->getMockBuilder('Symfony\Component\HttpKernel\Tests\Fixtures\KernelForTest')
-            ->setMethods(array('registerBundles'))
-            ->setConstructorArgs(array('test', false))
-            ->getMock()
-        ;
+        $kernel = $this->getKernel();
         $kernel
             ->expects($this->once())
             ->method('registerBundles')
             ->will($this->returnValue(array($parent, $child)))
         ;
-        $kernel->boot();
+        $kernel->initializeBundles();
 
         $map = $kernel->getBundleMap();
         $this->assertEquals(array($child, $parent), $map['ParentABundle']);
@@ -593,20 +656,14 @@ public function testInitializeBundlesSupportInheritanceCascade()
         $parent = $this->getBundle(null, 'GrandParentBBundle', 'ParentBBundle');
         $child = $this->getBundle(null, 'ParentBBundle', 'ChildBBundle');
 
-        // use test kernel so we can access getBundleMap()
-        $kernel = $this
-            ->getMockBuilder('Symfony\Component\HttpKernel\Tests\Fixtures\KernelForTest')
-            ->setMethods(array('registerBundles'))
-            ->setConstructorArgs(array('test', false))
-            ->getMock()
-        ;
+        $kernel = $this->getKernel();
         $kernel
             ->expects($this->once())
             ->method('registerBundles')
             ->will($this->returnValue(array($grandparent, $parent, $child)))
         ;
 
-        $kernel->boot();
+        $kernel->initializeBundles();
 
         $map = $kernel->getBundleMap();
         $this->assertEquals(array($child, $parent, $grandparent), $map['GrandParentBBundle']);
@@ -616,45 +673,43 @@ public function testInitializeBundlesSupportInheritanceCascade()
 
     /**
      * @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();
+
+        $kernel = $this->getKernel();
+        $kernel
+            ->expects($this->once())
+            ->method('registerBundles')
+            ->will($this->returnValue(array($child)))
+        ;
+        $kernel->initializeBundles();
     }
 
     public function testInitializeBundlesSupportsArbitraryBundleRegistrationOrder()
     {
-        $grandparent = $this->getBundle(null, null, 'GrandParentCBundle');
-        $parent = $this->getBundle(null, 'GrandParentCBundle', 'ParentCBundle');
-        $child = $this->getBundle(null, 'ParentCBundle', 'ChildCBundle');
+        $grandparent = $this->getBundle(null, null, 'GrandParentCCundle');
+        $parent = $this->getBundle(null, 'GrandParentCCundle', 'ParentCCundle');
+        $child = $this->getBundle(null, 'ParentCCundle', 'ChildCCundle');
 
-        // use test kernel so we can access getBundleMap()
-        $kernel = $this
-            ->getMockBuilder('Symfony\Component\HttpKernel\Tests\Fixtures\KernelForTest')
-            ->setMethods(array('registerBundles'))
-            ->setConstructorArgs(array('test', false))
-            ->getMock()
-        ;
+        $kernel = $this->getKernel();
         $kernel
             ->expects($this->once())
             ->method('registerBundles')
             ->will($this->returnValue(array($parent, $grandparent, $child)))
         ;
 
-        $kernel->boot();
+        $kernel->initializeBundles();
 
         $map = $kernel->getBundleMap();
-        $this->assertEquals(array($child, $parent, $grandparent), $map['GrandParentCBundle']);
-        $this->assertEquals(array($child, $parent), $map['ParentCBundle']);
-        $this->assertEquals(array($child), $map['ChildCBundle']);
+        $this->assertEquals(array($child, $parent, $grandparent), $map['GrandParentCCundle']);
+        $this->assertEquals(array($child, $parent), $map['ParentCCundle']);
+        $this->assertEquals(array($child), $map['ChildCCundle']);
     }
 
     /**
      * @expectedException \LogicException
-     * @expectedExceptionMessage Bundle "ParentCBundle" is directly extended by two bundles "ChildC2Bundle" and "ChildC1Bundle".
      */
     public function testInitializeBundlesThrowsExceptionWhenABundleIsDirectlyExtendedByTwoBundles()
     {
@@ -662,41 +717,59 @@ public function testInitializeBundlesThrowsExceptionWhenABundleIsDirectlyExtende
         $child1 = $this->getBundle(null, 'ParentCBundle', 'ChildC1Bundle');
         $child2 = $this->getBundle(null, 'ParentCBundle', 'ChildC2Bundle');
 
-        $kernel = $this->getKernel(array(), array($parent, $child1, $child2));
-        $kernel->boot();
+        $kernel = $this->getKernel();
+        $kernel
+            ->expects($this->once())
+            ->method('registerBundles')
+            ->will($this->returnValue(array($parent, $child1, $child2)))
+        ;
+        $kernel->initializeBundles();
     }
 
     /**
      * @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();
+        $kernel = $this->getKernel();
+        $kernel
+            ->expects($this->once())
+            ->method('registerBundles')
+            ->will($this->returnValue(array($fooBundle, $barBundle)))
+        ;
+        $kernel->initializeBundles();
     }
 
     /**
      * @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();
+        $kernel = $this->getKernel();
+        $kernel
+            ->expects($this->once())
+            ->method('registerBundles')
+            ->will($this->returnValue(array($circularRef)))
+        ;
+        $kernel->initializeBundles();
     }
 
     public function testTerminateReturnsSilentlyIfKernelIsNotBooted()
     {
-        $kernel = $this->getKernel(array('getHttpKernel'));
+        $kernel = $this->getMockBuilder('Symfony\Component\HttpKernel\Tests\Fixtures\KernelForTest')
+            ->disableOriginalConstructor()
+            ->setMethods(array('getHttpKernel'))
+            ->getMock();
+
         $kernel->expects($this->never())
             ->method('getHttpKernel');
 
+        $kernel->setIsBooted(false);
         $kernel->terminate(Request::create('/'), new Response());
     }
 
@@ -711,12 +784,16 @@ public function testTerminateDelegatesTerminationOnlyForTerminableInterface()
             ->expects($this->never())
             ->method('terminate');
 
-        $kernel = $this->getKernel(array('getHttpKernel'));
+        $kernel = $this->getMockBuilder('Symfony\Component\HttpKernel\Tests\Fixtures\KernelForTest')
+            ->disableOriginalConstructor()
+            ->setMethods(array('getHttpKernel'))
+            ->getMock();
+
         $kernel->expects($this->once())
             ->method('getHttpKernel')
             ->will($this->returnValue($httpKernelMock));
 
-        $kernel->boot();
+        $kernel->setIsBooted(true);
         $kernel->terminate(Request::create('/'), new Response());
 
         // implements TerminableInterface
@@ -729,20 +806,19 @@ public function testTerminateDelegatesTerminationOnlyForTerminableInterface()
             ->expects($this->once())
             ->method('terminate');
 
-        $kernel = $this->getKernel(array('getHttpKernel'));
+        $kernel = $this->getMockBuilder('Symfony\Component\HttpKernel\Tests\Fixtures\KernelForTest')
+            ->disableOriginalConstructor()
+            ->setMethods(array('getHttpKernel'))
+            ->getMock();
+
         $kernel->expects($this->exactly(2))
             ->method('getHttpKernel')
             ->will($this->returnValue($httpKernelMock));
 
-        $kernel->boot();
+        $kernel->setIsBooted(true);
         $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
@@ -778,28 +854,22 @@ protected function getBundle($dir = null, $parent = null, $className = null, $bu
         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())
+    protected function getKernel()
     {
-        $kernel = $this
-            ->getMockBuilder('Symfony\Component\HttpKernel\Kernel')
-            ->setMethods($methods)
-            ->setConstructorArgs(array('test', false))
-            ->getMockForAbstractClass()
+        return $this
+            ->getMockBuilder('Symfony\Component\HttpKernel\Tests\Fixtures\KernelForTest')
+            ->setMethods(array('getBundle', 'registerBundles'))
+            ->disableOriginalConstructor()
+            ->getMock()
         ;
+    }
 
-        $kernel->expects($this->any())
-            ->method('registerBundles')
-            ->will($this->returnValue($bundles))
+    protected function getKernelForInvalidLocateResource()
+    {
+        return $this
+            ->getMockBuilder('Symfony\Component\HttpKernel\Kernel')
+            ->disableOriginalConstructor()
+            ->getMockForAbstractClass()
         ;
-
-        return $kernel;
     }
 }
diff --git a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/Profiler/Mock/MemcacheMock.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/Profiler/Mock/MemcacheMock.php
index 9ff962c5b75e73dd4caeab4bd83e4d90b0e66468..014f5492fc8e96a6bd99bb9368fa12a74edc9c06 100644
--- a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/Profiler/Mock/MemcacheMock.php
+++ b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/Profiler/Mock/MemcacheMock.php
@@ -18,8 +18,14 @@
  */
 class MemcacheMock
 {
-    private $connected = false;
-    private $storage = array();
+    private $connected;
+    private $storage;
+
+    public function __construct()
+    {
+        $this->connected = false;
+        $this->storage = array();
+    }
 
     /**
      * Open memcached server connection
diff --git a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/Profiler/Mock/MemcachedMock.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/Profiler/Mock/MemcachedMock.php
index d28d54211d1116658c07f0db0a3a5d949968f3d0..2b17d70d2832e12ac4966b56ef7dfea7dacbaffc 100644
--- a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/Profiler/Mock/MemcachedMock.php
+++ b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/Profiler/Mock/MemcachedMock.php
@@ -18,8 +18,14 @@
  */
 class MemcachedMock
 {
-    private $connected = false;
-    private $storage = array();
+    private $connected;
+    private $storage;
+
+    public function __construct()
+    {
+        $this->connected = false;
+        $this->storage = array();
+    }
 
     /**
      * Set a Memcached option
diff --git a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/Profiler/Mock/RedisMock.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/Profiler/Mock/RedisMock.php
index 4a89e2db8872844487413d126f0e815d58af6b76..ca2980edde4664cd5077ba5d58452d281c37cbc9 100644
--- a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/Profiler/Mock/RedisMock.php
+++ b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/Profiler/Mock/RedisMock.php
@@ -18,8 +18,15 @@
  */
 class RedisMock
 {
-    private $connected = false;
-    private $storage = array();
+
+    private $connected;
+    private $storage;
+
+    public function __construct()
+    {
+        $this->connected = false;
+        $this->storage = array();
+    }
 
     /**
      * Add a server to connection pool
diff --git a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/Profiler/ProfilerTest.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/Profiler/ProfilerTest.php
index ede7c3f14b0d7d4bd2f696d029a0e5b649811d7d..2a41531ecb1869549c2e3f981de6dfa7251679b0 100644
--- a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/Profiler/ProfilerTest.php
+++ b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/Profiler/ProfilerTest.php
@@ -19,6 +19,13 @@
 
 class ProfilerTest extends \PHPUnit_Framework_TestCase
 {
+    protected function setUp()
+    {
+        if (!class_exists('Symfony\Component\HttpFoundation\Request')) {
+            $this->markTestSkipped('The "HttpFoundation" component is not available');
+        }
+    }
+
     public function testCollect()
     {
         if (!class_exists('SQLite3') && (!class_exists('PDO') || !in_array('sqlite', \PDO::getAvailableDrivers()))) {
diff --git a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/UriSigner.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/UriSigner.php
index 7ede0c32f76e5a60737ac4abe4435f943c06b85a..665e99e2efb27ac25ad943a124bd394f49a98f96 100644
--- a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/UriSigner.php
+++ b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/UriSigner.php
@@ -67,6 +67,6 @@ public function check($uri)
 
     private function computeHash($uri)
     {
-        return urlencode(base64_encode(hash_hmac('sha256', $uri, $this->secret, true)));
+        return urlencode(base64_encode(hash_hmac('sha1', $uri, $this->secret, true)));
     }
 }
diff --git a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/composer.json b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/composer.json
index a09b0013271c71eaff15efaeb940ef7fff767126..af659da9040924f3d34ea05fa8ad4d23832f39fb 100644
--- a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/composer.json
+++ b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/composer.json
@@ -18,7 +18,7 @@
     "require": {
         "php": ">=5.3.3",
         "symfony/event-dispatcher": "~2.1",
-        "symfony/http-foundation": "~2.4",
+        "symfony/http-foundation": "~2.2",
         "symfony/debug": "~2.3",
         "psr/log": "~1.0"
     },
@@ -49,7 +49,7 @@
     "minimum-stability": "dev",
     "extra": {
         "branch-alias": {
-            "dev-master": "2.4-dev"
+            "dev-master": "2.3-dev"
         }
     }
 }
diff --git a/core/vendor/symfony/property-access/Symfony/Component/PropertyAccess/.gitattributes b/core/vendor/symfony/property-access/Symfony/Component/PropertyAccess/.gitattributes
deleted file mode 100644
index 80481513cff2c5c6cde0c1bff5655bcde5f34976..0000000000000000000000000000000000000000
--- a/core/vendor/symfony/property-access/Symfony/Component/PropertyAccess/.gitattributes
+++ /dev/null
@@ -1,2 +0,0 @@
-/Tests export-ignore
-phpunit.xml.dist export-ignore
diff --git a/core/vendor/symfony/property-access/Symfony/Component/PropertyAccess/CHANGELOG.md b/core/vendor/symfony/property-access/Symfony/Component/PropertyAccess/CHANGELOG.md
deleted file mode 100644
index 071ef3b5201b09b7b4e01e065935d3cea2bbdf9c..0000000000000000000000000000000000000000
--- a/core/vendor/symfony/property-access/Symfony/Component/PropertyAccess/CHANGELOG.md
+++ /dev/null
@@ -1,14 +0,0 @@
-CHANGELOG
-=========
-
-2.3.0
-------
-
- * added PropertyAccessorBuilder, to enable or disable the support of "__call"
- * added support for "__call" in the PropertyAccessor (disabled by default)
- * [BC BREAK] changed PropertyAccessor to continue its search for a property or
-   method even if a non-public match was found. Before, a PropertyAccessDeniedException
-   was thrown in this case. Class PropertyAccessDeniedException was removed
-   now.
- * deprecated PropertyAccess::getPropertyAccessor
- * added PropertyAccess::createPropertyAccessor and PropertyAccess::createPropertyAccessorBuilder
diff --git a/core/vendor/symfony/property-access/Symfony/Component/PropertyAccess/Exception/AccessException.php b/core/vendor/symfony/property-access/Symfony/Component/PropertyAccess/Exception/AccessException.php
deleted file mode 100644
index b3a854646efce5d600db7b1cc5c65d38b31248ac..0000000000000000000000000000000000000000
--- a/core/vendor/symfony/property-access/Symfony/Component/PropertyAccess/Exception/AccessException.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\PropertyAccess\Exception;
-
-/**
- * Thrown when a property path is not available.
- *
- * @author Stéphane Escandell <stephane.escandell@gmail.com>
- */
-class AccessException extends RuntimeException
-{
-}
diff --git a/core/vendor/symfony/property-access/Symfony/Component/PropertyAccess/Exception/ExceptionInterface.php b/core/vendor/symfony/property-access/Symfony/Component/PropertyAccess/Exception/ExceptionInterface.php
deleted file mode 100644
index d1fcdac94253c2f8fa45418798ce45ee3e0ac4ab..0000000000000000000000000000000000000000
--- a/core/vendor/symfony/property-access/Symfony/Component/PropertyAccess/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\PropertyAccess\Exception;
-
-/**
- * Marker interface for the PropertyAccess component.
- *
- * @author Bernhard Schussek <bschussek@gmail.com>
- */
-interface ExceptionInterface
-{
-}
diff --git a/core/vendor/symfony/property-access/Symfony/Component/PropertyAccess/Exception/InvalidPropertyPathException.php b/core/vendor/symfony/property-access/Symfony/Component/PropertyAccess/Exception/InvalidPropertyPathException.php
deleted file mode 100644
index 69de31cee49763485f0438d400e57b74cafc55ab..0000000000000000000000000000000000000000
--- a/core/vendor/symfony/property-access/Symfony/Component/PropertyAccess/Exception/InvalidPropertyPathException.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\PropertyAccess\Exception;
-
-/**
- * Thrown when a property path is malformed.
- *
- * @author Bernhard Schussek <bschussek@gmail.com>
- */
-class InvalidPropertyPathException extends RuntimeException
-{
-}
diff --git a/core/vendor/symfony/property-access/Symfony/Component/PropertyAccess/Exception/NoSuchIndexException.php b/core/vendor/symfony/property-access/Symfony/Component/PropertyAccess/Exception/NoSuchIndexException.php
deleted file mode 100644
index 597b9904a22a0c6dcb837a86de62526e411f2601..0000000000000000000000000000000000000000
--- a/core/vendor/symfony/property-access/Symfony/Component/PropertyAccess/Exception/NoSuchIndexException.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\PropertyAccess\Exception;
-
-/**
- * Thrown when an index cannot be found.
- *
- * @author Stéphane Escandell <stephane.escandell@gmail.com>
- */
-class NoSuchIndexException extends AccessException
-{
-}
diff --git a/core/vendor/symfony/property-access/Symfony/Component/PropertyAccess/Exception/NoSuchPropertyException.php b/core/vendor/symfony/property-access/Symfony/Component/PropertyAccess/Exception/NoSuchPropertyException.php
deleted file mode 100644
index 1c7eda5f83839b3e7eb0860e5698ce21602d013a..0000000000000000000000000000000000000000
--- a/core/vendor/symfony/property-access/Symfony/Component/PropertyAccess/Exception/NoSuchPropertyException.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\PropertyAccess\Exception;
-
-/**
- * Thrown when a property cannot be found.
- *
- * @author Bernhard Schussek <bschussek@gmail.com>
- */
-class NoSuchPropertyException extends AccessException
-{
-}
diff --git a/core/vendor/symfony/property-access/Symfony/Component/PropertyAccess/Exception/OutOfBoundsException.php b/core/vendor/symfony/property-access/Symfony/Component/PropertyAccess/Exception/OutOfBoundsException.php
deleted file mode 100644
index a3c45597dabc19cac8bf51616eca6b2e6c45f991..0000000000000000000000000000000000000000
--- a/core/vendor/symfony/property-access/Symfony/Component/PropertyAccess/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\PropertyAccess\Exception;
-
-/**
- * Base OutOfBoundsException for the PropertyAccess component.
- *
- * @author Bernhard Schussek <bschussek@gmail.com>
- */
-class OutOfBoundsException extends \OutOfBoundsException implements ExceptionInterface
-{
-}
diff --git a/core/vendor/symfony/property-access/Symfony/Component/PropertyAccess/Exception/RuntimeException.php b/core/vendor/symfony/property-access/Symfony/Component/PropertyAccess/Exception/RuntimeException.php
deleted file mode 100644
index 9fe843e309d8c87765efff1b4297b2d000d3ac54..0000000000000000000000000000000000000000
--- a/core/vendor/symfony/property-access/Symfony/Component/PropertyAccess/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\PropertyAccess\Exception;
-
-/**
- * Base RuntimeException for the PropertyAccess component.
- *
- * @author Bernhard Schussek <bschussek@gmail.com>
- */
-class RuntimeException extends \RuntimeException implements ExceptionInterface
-{
-}
diff --git a/core/vendor/symfony/property-access/Symfony/Component/PropertyAccess/Exception/UnexpectedTypeException.php b/core/vendor/symfony/property-access/Symfony/Component/PropertyAccess/Exception/UnexpectedTypeException.php
deleted file mode 100644
index 029d48c22a9eb364a2b9f2c7a5e04c4abdfff0ac..0000000000000000000000000000000000000000
--- a/core/vendor/symfony/property-access/Symfony/Component/PropertyAccess/Exception/UnexpectedTypeException.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\PropertyAccess\Exception;
-
-/**
- * Thrown when a value does not match an expected type.
- *
- * @author Bernhard Schussek <bschussek@gmail.com>
- */
-class UnexpectedTypeException extends RuntimeException
-{
-    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/property-access/Symfony/Component/PropertyAccess/LICENSE b/core/vendor/symfony/property-access/Symfony/Component/PropertyAccess/LICENSE
deleted file mode 100644
index 88a57f8d8da49126c6f7d225d567ad216ace4d83..0000000000000000000000000000000000000000
--- a/core/vendor/symfony/property-access/Symfony/Component/PropertyAccess/LICENSE
+++ /dev/null
@@ -1,19 +0,0 @@
-Copyright (c) 2004-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/symfony/property-access/Symfony/Component/PropertyAccess/PropertyAccess.php b/core/vendor/symfony/property-access/Symfony/Component/PropertyAccess/PropertyAccess.php
deleted file mode 100644
index 3b234df9d27536a6926b759b8d884ff775d41494..0000000000000000000000000000000000000000
--- a/core/vendor/symfony/property-access/Symfony/Component/PropertyAccess/PropertyAccess.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\PropertyAccess;
-
-/**
- * Entry point of the PropertyAccess component.
- *
- * @author Bernhard Schussek <bschussek@gmail.com>
- */
-final class PropertyAccess
-{
-    /**
-     * Creates a property accessor with the default configuration.
-     *
-     * @return PropertyAccessor The new property accessor
-     */
-    public static function createPropertyAccessor()
-    {
-        return self::createPropertyAccessorBuilder()->getPropertyAccessor();
-    }
-
-    /**
-     * Creates a property accessor builder.
-     *
-     * @return PropertyAccessorBuilder The new property accessor builder
-     */
-    public static function createPropertyAccessorBuilder()
-    {
-        return new PropertyAccessorBuilder();
-    }
-
-    /**
-     * Alias of {@link getPropertyAccessor}.
-     *
-     * @return PropertyAccessor The new property accessor
-     *
-     * @deprecated Deprecated since version 2.3, to be removed in 3.0. Use
-     *             {@link createPropertyAccessor()} instead.
-     */
-    public static function getPropertyAccessor()
-    {
-        return self::createPropertyAccessor();
-    }
-
-    /**
-     * This class cannot be instantiated.
-     */
-    private function __construct()
-    {
-    }
-}
diff --git a/core/vendor/symfony/property-access/Symfony/Component/PropertyAccess/PropertyAccessor.php b/core/vendor/symfony/property-access/Symfony/Component/PropertyAccess/PropertyAccessor.php
deleted file mode 100644
index d48891ef275d8e573e5f5b0ca7e117238abd71e7..0000000000000000000000000000000000000000
--- a/core/vendor/symfony/property-access/Symfony/Component/PropertyAccess/PropertyAccessor.php
+++ /dev/null
@@ -1,457 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\PropertyAccess;
-
-use Symfony\Component\PropertyAccess\Exception\NoSuchPropertyException;
-use Symfony\Component\PropertyAccess\Exception\NoSuchIndexException;
-use Symfony\Component\PropertyAccess\Exception\UnexpectedTypeException;
-
-/**
- * Default implementation of {@link PropertyAccessorInterface}.
- *
- * @author Bernhard Schussek <bschussek@gmail.com>
- */
-class PropertyAccessor implements PropertyAccessorInterface
-{
-    const VALUE = 0;
-    const IS_REF = 1;
-
-    /**
-     * @var Boolean
-     */
-    private $magicCall;
-
-    /**
-     * @var Boolean
-     */
-    private $throwExceptionOnInvalidIndex;
-
-    /**
-     * Should not be used by application code. Use
-     * {@link PropertyAccess::createPropertyAccessor()} instead.
-     */
-    public function __construct($magicCall = false, $throwExceptionOnInvalidIndex = false)
-    {
-        $this->magicCall = $magicCall;
-        $this->throwExceptionOnInvalidIndex = $throwExceptionOnInvalidIndex;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getValue($objectOrArray, $propertyPath)
-    {
-        if (is_string($propertyPath)) {
-            $propertyPath = new PropertyPath($propertyPath);
-        } elseif (!$propertyPath instanceof PropertyPathInterface) {
-            throw new UnexpectedTypeException($propertyPath, 'string or Symfony\Component\PropertyAccess\PropertyPathInterface');
-        }
-
-        $propertyValues =& $this->readPropertiesUntil($objectOrArray, $propertyPath, $propertyPath->getLength(), $this->throwExceptionOnInvalidIndex);
-
-        return $propertyValues[count($propertyValues) - 1][self::VALUE];
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function setValue(&$objectOrArray, $propertyPath, $value)
-    {
-        if (is_string($propertyPath)) {
-            $propertyPath = new PropertyPath($propertyPath);
-        } elseif (!$propertyPath instanceof PropertyPathInterface) {
-            throw new UnexpectedTypeException($propertyPath, 'string or Symfony\Component\PropertyAccess\PropertyPathInterface');
-        }
-
-        $propertyValues =& $this->readPropertiesUntil($objectOrArray, $propertyPath, $propertyPath->getLength() - 1);
-        $overwrite = true;
-
-        // Add the root object to the list
-        array_unshift($propertyValues, array(
-            self::VALUE => &$objectOrArray,
-            self::IS_REF => true,
-        ));
-
-        for ($i = count($propertyValues) - 1; $i >= 0; --$i) {
-            $objectOrArray =& $propertyValues[$i][self::VALUE];
-
-            if ($overwrite) {
-                if (!is_object($objectOrArray) && !is_array($objectOrArray)) {
-                    throw new UnexpectedTypeException($objectOrArray, 'object or array');
-                }
-
-                $property = $propertyPath->getElement($i);
-                //$singular = $propertyPath->singulars[$i];
-                $singular = null;
-
-                if ($propertyPath->isIndex($i)) {
-                    $this->writeIndex($objectOrArray, $property, $value);
-                } else {
-                    $this->writeProperty($objectOrArray, $property, $singular, $value);
-                }
-            }
-
-            $value =& $objectOrArray;
-            $overwrite = !$propertyValues[$i][self::IS_REF];
-        }
-    }
-
-    /**
-     * Reads the path from an object up to a given path index.
-     *
-     * @param object|array          $objectOrArray The object or array to read from
-     * @param PropertyPathInterface $propertyPath  The property path to read
-     * @param integer               $lastIndex     The index up to which should be read
-     *
-     * @return array The values read in the path.
-     *
-     * @throws UnexpectedTypeException If a value within the path is neither object nor array.
-     */
-    private function &readPropertiesUntil(&$objectOrArray, PropertyPathInterface $propertyPath, $lastIndex, $throwExceptionOnNonexistantIndex = false)
-    {
-        $propertyValues = array();
-
-        for ($i = 0; $i < $lastIndex; ++$i) {
-            if (!is_object($objectOrArray) && !is_array($objectOrArray)) {
-                throw new UnexpectedTypeException($objectOrArray, 'object or array');
-            }
-
-            $property = $propertyPath->getElement($i);
-            $isIndex = $propertyPath->isIndex($i);
-            $isArrayAccess = is_array($objectOrArray) || $objectOrArray instanceof \ArrayAccess;
-
-            // Create missing nested arrays on demand
-            if ($isIndex && $isArrayAccess && !isset($objectOrArray[$property])) {
-                if ($throwExceptionOnNonexistantIndex) {
-                    throw new NoSuchIndexException(sprintf('Cannot read property "%s". Available properties are "%s"', $property, print_r(array_keys($objectOrArray), true)));
-                }
-                $objectOrArray[$property] = $i + 1 < $propertyPath->getLength() ? array() : null;
-            }
-
-            if ($isIndex) {
-                $propertyValue =& $this->readIndex($objectOrArray, $property);
-            } else {
-                $propertyValue =& $this->readProperty($objectOrArray, $property);
-            }
-
-            $objectOrArray =& $propertyValue[self::VALUE];
-
-            $propertyValues[] =& $propertyValue;
-        }
-
-        return $propertyValues;
-    }
-
-    /**
-     * Reads a key from an array-like structure.
-     *
-     * @param \ArrayAccess|array $array The array or \ArrayAccess object to read from
-     * @param string|integer     $index The key to read
-     *
-     * @return mixed The value of the key
-     *
-     * @throws NoSuchPropertyException If the array does not implement \ArrayAccess or it is not an array
-     */
-    private function &readIndex(&$array, $index)
-    {
-        if (!$array instanceof \ArrayAccess && !is_array($array)) {
-            throw new NoSuchPropertyException(sprintf('Index "%s" cannot be read from object of type "%s" because it doesn\'t implement \ArrayAccess', $index, get_class($array)));
-        }
-
-        // Use an array instead of an object since performance is very crucial here
-        $result = array(
-            self::VALUE => null,
-            self::IS_REF => false
-        );
-
-        if (isset($array[$index])) {
-            if (is_array($array)) {
-                $result[self::VALUE] =& $array[$index];
-                $result[self::IS_REF] = true;
-            } else {
-                $result[self::VALUE] = $array[$index];
-                // Objects are always passed around by reference
-                $result[self::IS_REF] = is_object($array[$index]) ? true : false;
-            }
-        }
-
-        return $result;
-    }
-
-    /**
-     * Reads the a property from an object or array.
-     *
-     * @param object $object   The object to read from.
-     * @param string $property The property to read.
-     *
-     * @return mixed The value of the read property
-     *
-     * @throws NoSuchPropertyException If the property does not exist or is not
-     *                                 public.
-     */
-    private function &readProperty(&$object, $property)
-    {
-        // Use an array instead of an object since performance is
-        // very crucial here
-        $result = array(
-            self::VALUE => null,
-            self::IS_REF => false
-        );
-
-        if (!is_object($object)) {
-            throw new NoSuchPropertyException(sprintf('Cannot read property "%s" from an array. Maybe you should write the property path as "[%s]" instead?', $property, $property));
-        }
-
-        $camelProp = $this->camelize($property);
-        $reflClass = new \ReflectionClass($object);
-        $getter = 'get'.$camelProp;
-        $isser = 'is'.$camelProp;
-        $hasser = 'has'.$camelProp;
-        $classHasProperty = $reflClass->hasProperty($property);
-
-        if ($reflClass->hasMethod($getter) && $reflClass->getMethod($getter)->isPublic()) {
-            $result[self::VALUE] = $object->$getter();
-        } elseif ($reflClass->hasMethod($isser) && $reflClass->getMethod($isser)->isPublic()) {
-            $result[self::VALUE] = $object->$isser();
-        } elseif ($reflClass->hasMethod($hasser) && $reflClass->getMethod($hasser)->isPublic()) {
-            $result[self::VALUE] = $object->$hasser();
-        } elseif ($reflClass->hasMethod('__get') && $reflClass->getMethod('__get')->isPublic()) {
-            $result[self::VALUE] = $object->$property;
-        } elseif ($classHasProperty && $reflClass->getProperty($property)->isPublic()) {
-            $result[self::VALUE] =& $object->$property;
-            $result[self::IS_REF] = true;
-        } elseif (!$classHasProperty && property_exists($object, $property)) {
-            // Needed to support \stdClass instances. We need to explicitly
-            // exclude $classHasProperty, otherwise if in the previous clause
-            // a *protected* property was found on the class, property_exists()
-            // returns true, consequently the following line will result in a
-            // fatal error.
-            $result[self::VALUE] =& $object->$property;
-            $result[self::IS_REF] = true;
-        } elseif ($this->magicCall && $reflClass->hasMethod('__call') && $reflClass->getMethod('__call')->isPublic()) {
-            // we call the getter and hope the __call do the job
-            $result[self::VALUE] = $object->$getter();
-        } else {
-            $methods = array($getter, $isser, $hasser, '__get');
-            if ($this->magicCall) {
-                $methods[] = '__call';
-            }
-
-            throw new NoSuchPropertyException(sprintf(
-                'Neither the property "%s" nor one of the methods "%s()" '.
-                'exist and have public access in class "%s".',
-                $property,
-                implode('()", "', $methods),
-                $reflClass->name
-            ));
-        }
-
-        // Objects are always passed around by reference
-        if (is_object($result[self::VALUE])) {
-            $result[self::IS_REF] = true;
-        }
-
-        return $result;
-    }
-
-    /**
-     * Sets the value of the property at the given index in the path
-     *
-     * @param \ArrayAccess|array $array An array or \ArrayAccess object to write to
-     * @param string|integer     $index The index to write at
-     * @param mixed              $value The value to write
-     *
-     * @throws NoSuchPropertyException If the array does not implement \ArrayAccess or it is not an array
-     */
-    private function writeIndex(&$array, $index, $value)
-    {
-        if (!$array instanceof \ArrayAccess && !is_array($array)) {
-            throw new NoSuchPropertyException(sprintf('Index "%s" cannot be modified in object of type "%s" because it doesn\'t implement \ArrayAccess', $index, get_class($array)));
-        }
-
-        $array[$index] = $value;
-    }
-
-    /**
-     * Sets the value of the property at the given index in the path
-     *
-     * @param object|array $object   The object or array to write to
-     * @param string       $property The property to write
-     * @param string|null  $singular The singular form of the property name or null
-     * @param mixed        $value    The value to write
-     *
-     * @throws NoSuchPropertyException If the property does not exist or is not
-     *                                 public.
-     */
-    private function writeProperty(&$object, $property, $singular, $value)
-    {
-        $guessedAdders = '';
-
-        if (!is_object($object)) {
-            throw new NoSuchPropertyException(sprintf('Cannot write property "%s" to an array. Maybe you should write the property path as "[%s]" instead?', $property, $property));
-        }
-
-        $reflClass = new \ReflectionClass($object);
-        $plural = $this->camelize($property);
-
-        // Any of the two methods is required, but not yet known
-        $singulars = null !== $singular ? array($singular) : (array) StringUtil::singularify($plural);
-
-        if (is_array($value) || $value instanceof \Traversable) {
-            $methods = $this->findAdderAndRemover($reflClass, $singulars);
-
-            if (null !== $methods) {
-                // At this point the add and remove methods have been found
-                // Use iterator_to_array() instead of clone in order to prevent side effects
-                // see https://github.com/symfony/symfony/issues/4670
-                $itemsToAdd = is_object($value) ? iterator_to_array($value) : $value;
-                $itemToRemove = array();
-                $propertyValue = $this->readProperty($object, $property);
-                $previousValue = $propertyValue[self::VALUE];
-
-                if (is_array($previousValue) || $previousValue instanceof \Traversable) {
-                    foreach ($previousValue as $previousItem) {
-                        foreach ($value as $key => $item) {
-                            if ($item === $previousItem) {
-                                // Item found, don't add
-                                unset($itemsToAdd[$key]);
-
-                                // Next $previousItem
-                                continue 2;
-                            }
-                        }
-
-                        // Item not found, add to remove list
-                        $itemToRemove[] = $previousItem;
-                    }
-                }
-
-                foreach ($itemToRemove as $item) {
-                    call_user_func(array($object, $methods[1]), $item);
-                }
-
-                foreach ($itemsToAdd as $item) {
-                    call_user_func(array($object, $methods[0]), $item);
-                }
-
-                return;
-            } else {
-                // It is sufficient to include only the adders in the error
-                // message. If the user implements the adder but not the remover,
-                // an exception will be thrown in findAdderAndRemover() that
-                // the remover has to be implemented as well.
-                $guessedAdders = '"add'.implode('()", "add', $singulars).'()", ';
-            }
-        }
-
-        $setter = 'set'.$this->camelize($property);
-        $classHasProperty = $reflClass->hasProperty($property);
-
-        if ($reflClass->hasMethod($setter) && $reflClass->getMethod($setter)->isPublic()) {
-            $object->$setter($value);
-        } elseif ($reflClass->hasMethod('__set') && $reflClass->getMethod('__set')->isPublic()) {
-            $object->$property = $value;
-        } elseif ($classHasProperty && $reflClass->getProperty($property)->isPublic()) {
-            $object->$property = $value;
-        } elseif (!$classHasProperty && property_exists($object, $property)) {
-            // Needed to support \stdClass instances. We need to explicitly
-            // exclude $classHasProperty, otherwise if in the previous clause
-            // a *protected* property was found on the class, property_exists()
-            // returns true, consequently the following line will result in a
-            // fatal error.
-            $object->$property = $value;
-        } elseif ($this->magicCall && $reflClass->hasMethod('__call') && $reflClass->getMethod('__call')->isPublic()) {
-            // we call the getter and hope the __call do the job
-            $object->$setter($value);
-        } else {
-            throw new NoSuchPropertyException(sprintf(
-                'Neither the property "%s" nor one of the methods %s"%s()", '.
-                '"__set()" or "__call()" exist and have public access in class "%s".',
-                $property,
-                $guessedAdders,
-                $setter,
-                $reflClass->name
-            ));
-        }
-    }
-
-    /**
-     * Camelizes a given string.
-     *
-     * @param  string $string Some string
-     *
-     * @return string The camelized version of the string
-     */
-    private function camelize($string)
-    {
-        return preg_replace_callback('/(^|_|\.)+(.)/', function ($match) { return ('.' === $match[1] ? '_' : '').strtoupper($match[2]); }, $string);
-    }
-
-    /**
-     * Searches for add and remove methods.
-     *
-     * @param \ReflectionClass $reflClass The reflection class for the given object
-     * @param array            $singulars The singular form of the property name or null
-     *
-     * @return array|null An array containing the adder and remover when found, null otherwise
-     *
-     * @throws NoSuchPropertyException If the property does not exist
-     */
-    private function findAdderAndRemover(\ReflectionClass $reflClass, array $singulars)
-    {
-        foreach ($singulars as $singular) {
-            $addMethod = 'add'.$singular;
-            $removeMethod = 'remove'.$singular;
-
-            $addMethodFound = $this->isAccessible($reflClass, $addMethod, 1);
-            $removeMethodFound = $this->isAccessible($reflClass, $removeMethod, 1);
-
-            if ($addMethodFound && $removeMethodFound) {
-                return array($addMethod, $removeMethod);
-            }
-
-            if ($addMethodFound xor $removeMethodFound) {
-                throw new NoSuchPropertyException(sprintf(
-                    'Found the public method "%s()", but did not find a public "%s()" on class %s',
-                    $addMethodFound ? $addMethod : $removeMethod,
-                    $addMethodFound ? $removeMethod : $addMethod,
-                    $reflClass->name
-                ));
-            }
-        }
-
-        return null;
-    }
-
-    /**
-     * Returns whether a method is public and has a specific number of required parameters.
-     *
-     * @param  \ReflectionClass $class      The class of the method
-     * @param  string           $methodName The method name
-     * @param  integer          $parameters The number of parameters
-     *
-     * @return Boolean Whether the method is public and has $parameters
-     *                                      required parameters
-     */
-    private function isAccessible(\ReflectionClass $class, $methodName, $parameters)
-    {
-        if ($class->hasMethod($methodName)) {
-            $method = $class->getMethod($methodName);
-
-            if ($method->isPublic() && $method->getNumberOfRequiredParameters() === $parameters) {
-                return true;
-            }
-        }
-
-        return false;
-    }
-}
diff --git a/core/vendor/symfony/property-access/Symfony/Component/PropertyAccess/PropertyAccessorBuilder.php b/core/vendor/symfony/property-access/Symfony/Component/PropertyAccess/PropertyAccessorBuilder.php
deleted file mode 100644
index 50b872f3a35c73fda36afe3b8a3e0cf8acf6cdfc..0000000000000000000000000000000000000000
--- a/core/vendor/symfony/property-access/Symfony/Component/PropertyAccess/PropertyAccessorBuilder.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\PropertyAccess;
-
-/**
- * A configurable builder for PropertyAccessorInterface objects.
- *
- * @author Jérémie Augustin <jeremie.augustin@pixel-cookers.com>
- */
-class PropertyAccessorBuilder
-{
-    /**
-     * @var Boolean
-     */
-    private $magicCall = false;
-
-    /**
-     * @var Boolean
-     */
-    private $throwExceptionOnInvalidIndex = false;
-
-    /**
-     * Enables the use of "__call" by the PropertyAccessor.
-     *
-     * @return PropertyAccessorBuilder The builder object
-     */
-    public function enableMagicCall()
-    {
-        $this->magicCall = true;
-
-        return $this;
-    }
-
-    /**
-     * Disables the use of "__call" by the PropertyAccessor.
-     *
-     * @return PropertyAccessorBuilder The builder object
-     */
-    public function disableMagicCall()
-    {
-        $this->magicCall = false;
-
-        return $this;
-    }
-
-    /**
-     * @return Boolean true if the use of "__call" by the PropertyAccessor is enabled
-     */
-    public function isMagicCallEnabled()
-    {
-        return $this->magicCall;
-    }
-
-    /**
-     * Enables exceptions in read context for array by PropertyAccessor
-     *
-     * @return PropertyAccessorBuilder The builder object
-     */
-    public function enableExceptionOnInvalidIndex()
-    {
-        $this->throwExceptionOnInvalidIndex = true;
-
-        return $this;
-    }
-
-    /**
-     * Disables exceptions in read context for array by PropertyAccessor
-     *
-     * @return PropertyAccessorBuilder The builder object
-     */
-    public function disableExceptionOnInvalidIndex()
-    {
-        $this->throwExceptionOnInvalidIndex = false;
-
-        return $this;
-    }
-
-    /**
-     * @return Boolean true is exceptions in read context for array is enabled
-     */
-    public function isExceptionOnInvalidIndexEnabled()
-    {
-        return $this->throwExceptionOnInvalidIndex;
-    }
-
-    /**
-     * Builds and returns a new propertyAccessor object.
-     *
-     * @return PropertyAccessorInterface The built propertyAccessor
-     */
-    public function getPropertyAccessor()
-    {
-        return new PropertyAccessor($this->magicCall, $this->throwExceptionOnInvalidIndex);
-    }
-}
diff --git a/core/vendor/symfony/property-access/Symfony/Component/PropertyAccess/PropertyAccessorInterface.php b/core/vendor/symfony/property-access/Symfony/Component/PropertyAccess/PropertyAccessorInterface.php
deleted file mode 100644
index 1eed7c7b074cf4f91e23d8980349128ff68b8d09..0000000000000000000000000000000000000000
--- a/core/vendor/symfony/property-access/Symfony/Component/PropertyAccess/PropertyAccessorInterface.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\PropertyAccess;
-
-/**
- * Writes and reads values to/from an object/array graph.
- *
- * @author Bernhard Schussek <bschussek@gmail.com>
- */
-interface PropertyAccessorInterface
-{
-    /**
-     * Sets the value at the end of the property path of the object
-     *
-     * Example:
-     *
-     *     use Symfony\Component\PropertyAccess\PropertyAccess;
-     *
-     *     $propertyAccessor = PropertyAccess::getPropertyAccessor();
-     *
-     *     echo $propertyAccessor->setValue($object, 'child.name', 'Fabien');
-     *     // equals echo $object->getChild()->setName('Fabien');
-     *
-     * This method first tries to find a public setter for each property in the
-     * path. The name of the setter must be the camel-cased property name
-     * prefixed with "set".
-     *
-     * If the setter does not exist, this method tries to find a public
-     * property. The value of the property is then changed.
-     *
-     * If neither is found, an exception is thrown.
-     *
-     * @param object|array                 $objectOrArray The object or array to modify
-     * @param string|PropertyPathInterface $propertyPath  The property path to modify
-     * @param mixed                        $value         The value to set at the end of the property path
-     *
-     * @throws Exception\NoSuchPropertyException If a property does not exist or is not public.
-     * @throws Exception\UnexpectedTypeException If a value within the path is neither object
-     *                                           nor array
-     */
-    public function setValue(&$objectOrArray, $propertyPath, $value);
-
-    /**
-     * Returns the value at the end of the property path of the object
-     *
-     * Example:
-     *
-     *     use Symfony\Component\PropertyAccess\PropertyAccess;
-     *
-     *     $propertyAccessor = PropertyAccess::getPropertyAccessor();
-     *
-     *     echo $propertyAccessor->getValue($object, 'child.name);
-     *     // equals echo $object->getChild()->getName();
-     *
-     * This method first tries to find a public getter for each property in the
-     * path. The name of the getter must be the camel-cased property name
-     * prefixed with "get", "is", or "has".
-     *
-     * If the getter does not exist, this method tries to find a public
-     * property. The value of the property is then returned.
-     *
-     * If none of them are found, an exception is thrown.
-     *
-     * @param object|array                 $objectOrArray The object or array to traverse
-     * @param string|PropertyPathInterface $propertyPath  The property path to read
-     *
-     * @return mixed The value at the end of the property path
-     *
-     * @throws Exception\NoSuchPropertyException If a property does not exist or is not public.
-     */
-    public function getValue($objectOrArray, $propertyPath);
-}
diff --git a/core/vendor/symfony/property-access/Symfony/Component/PropertyAccess/PropertyPath.php b/core/vendor/symfony/property-access/Symfony/Component/PropertyAccess/PropertyPath.php
deleted file mode 100644
index 840fc71572339fed682f1ed4f807572745e7244d..0000000000000000000000000000000000000000
--- a/core/vendor/symfony/property-access/Symfony/Component/PropertyAccess/PropertyPath.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\PropertyAccess;
-
-use Symfony\Component\PropertyAccess\Exception\InvalidPropertyPathException;
-use Symfony\Component\PropertyAccess\Exception\OutOfBoundsException;
-use Symfony\Component\PropertyAccess\Exception\UnexpectedTypeException;
-
-/**
- * Default implementation of {@link PropertyPathInterface}.
- *
- * @author Bernhard Schussek <bschussek@gmail.com>
- */
-class PropertyPath implements \IteratorAggregate, PropertyPathInterface
-{
-    /**
-     * Character used for separating between plural and singular of an element.
-     * @var string
-     */
-    const SINGULAR_SEPARATOR = '|';
-
-    /**
-     * The elements of the property path
-     * @var array
-     */
-    private $elements = array();
-
-    /**
-     * The singular forms of the elements in the property path.
-     * @var array
-     */
-    private $singulars = array();
-
-    /**
-     * The number of elements in the property path
-     * @var integer
-     */
-    private $length;
-
-    /**
-     * Contains a Boolean for each property in $elements denoting whether this
-     * element is an index. It is a property otherwise.
-     * @var array
-     */
-    private $isIndex = array();
-
-    /**
-     * String representation of the path
-     * @var string
-     */
-    private $pathAsString;
-
-    /**
-     * Constructs a property path from a string.
-     *
-     * @param PropertyPath|string $propertyPath The property path as string or instance
-     *
-     * @throws UnexpectedTypeException      If the given path is not a string
-     * @throws InvalidPropertyPathException If the syntax of the property path is not valid
-     */
-    public function __construct($propertyPath)
-    {
-        // Can be used as copy constructor
-        if ($propertyPath instanceof PropertyPath) {
-            /* @var PropertyPath $propertyPath */
-            $this->elements = $propertyPath->elements;
-            $this->singulars = $propertyPath->singulars;
-            $this->length = $propertyPath->length;
-            $this->isIndex = $propertyPath->isIndex;
-            $this->pathAsString = $propertyPath->pathAsString;
-
-            return;
-        }
-        if (!is_string($propertyPath)) {
-            throw new UnexpectedTypeException($propertyPath, 'string or Symfony\Component\PropertyAccess\PropertyPath');
-        }
-
-        if ('' === $propertyPath) {
-            throw new InvalidPropertyPathException('The property path should not be empty.');
-        }
-
-        $this->pathAsString = $propertyPath;
-        $position = 0;
-        $remaining = $propertyPath;
-
-        // first element is evaluated differently - no leading dot for properties
-        $pattern = '/^(([^\.\[]+)|\[([^\]]+)\])(.*)/';
-
-        while (preg_match($pattern, $remaining, $matches)) {
-            if ('' !== $matches[2]) {
-                $element = $matches[2];
-                $this->isIndex[] = false;
-            } else {
-                $element = $matches[3];
-                $this->isIndex[] = true;
-            }
-            // Disabled this behaviour as the syntax is not yet final
-            //$pos = strpos($element, self::SINGULAR_SEPARATOR);
-            $pos = false;
-            $singular = null;
-
-            if (false !== $pos) {
-                $singular = substr($element, $pos + 1);
-                $element = substr($element, 0, $pos);
-            }
-
-            $this->elements[] = $element;
-            $this->singulars[] = $singular;
-
-            $position += strlen($matches[1]);
-            $remaining = $matches[4];
-            $pattern = '/^(\.(\w+)|\[([^\]]+)\])(.*)/';
-        }
-
-        if ('' !== $remaining) {
-            throw new InvalidPropertyPathException(sprintf(
-                'Could not parse property path "%s". Unexpected token "%s" at position %d',
-                $propertyPath,
-                $remaining{0},
-                $position
-            ));
-        }
-
-        $this->length = count($this->elements);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function __toString()
-    {
-        return $this->pathAsString;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getLength()
-    {
-        return $this->length;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getParent()
-    {
-        if ($this->length <= 1) {
-            return null;
-        }
-
-        $parent = clone $this;
-
-        --$parent->length;
-        $parent->pathAsString = substr($parent->pathAsString, 0, max(strrpos($parent->pathAsString, '.'), strrpos($parent->pathAsString, '[')));
-        array_pop($parent->elements);
-        array_pop($parent->singulars);
-        array_pop($parent->isIndex);
-
-        return $parent;
-    }
-
-    /**
-     * Returns a new iterator for this path
-     *
-     * @return PropertyPathIteratorInterface
-     */
-    public function getIterator()
-    {
-        return new PropertyPathIterator($this);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getElements()
-    {
-        return $this->elements;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getElement($index)
-    {
-        if (!isset($this->elements[$index])) {
-            throw new OutOfBoundsException(sprintf('The index %s is not within the property path', $index));
-        }
-
-        return $this->elements[$index];
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function isProperty($index)
-    {
-        if (!isset($this->isIndex[$index])) {
-            throw new OutOfBoundsException(sprintf('The index %s is not within the property path', $index));
-        }
-
-        return !$this->isIndex[$index];
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function isIndex($index)
-    {
-        if (!isset($this->isIndex[$index])) {
-            throw new OutOfBoundsException(sprintf('The index %s is not within the property path', $index));
-        }
-
-        return $this->isIndex[$index];
-    }
-}
diff --git a/core/vendor/symfony/property-access/Symfony/Component/PropertyAccess/PropertyPathBuilder.php b/core/vendor/symfony/property-access/Symfony/Component/PropertyAccess/PropertyPathBuilder.php
deleted file mode 100644
index f4eb0fb93ff508c64aef2868ba161ef0e8e30f01..0000000000000000000000000000000000000000
--- a/core/vendor/symfony/property-access/Symfony/Component/PropertyAccess/PropertyPathBuilder.php
+++ /dev/null
@@ -1,306 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\PropertyAccess;
-
-use Symfony\Component\PropertyAccess\Exception\OutOfBoundsException;
-
-/**
- * @author Bernhard Schussek <bschussek@gmail.com>
- */
-class PropertyPathBuilder
-{
-    /**
-     * @var array
-     */
-    private $elements = array();
-
-    /**
-     * @var array
-     */
-    private $isIndex = array();
-
-    /**
-     * Creates a new property path builder.
-     *
-     * @param null|PropertyPathInterface|string $path The path to initially store
-     *                                                in the builder. Optional.
-     */
-    public function __construct($path = null)
-    {
-        if (null !== $path) {
-            $this->append($path);
-        }
-    }
-
-    /**
-     * Appends a (sub-) path to the current path.
-     *
-     * @param PropertyPathInterface|string $path   The path to append.
-     * @param integer                      $offset The offset where the appended
-     *                                             piece starts in $path.
-     * @param integer                      $length The length of the appended piece.
-     *                                             If 0, the full path is appended.
-     */
-    public function append($path, $offset = 0, $length = 0)
-    {
-        if (is_string($path)) {
-            $path = new PropertyPath($path);
-        }
-
-        if (0 === $length) {
-            $end = $path->getLength();
-        } else {
-            $end = $offset + $length;
-        }
-
-        for (; $offset < $end; ++$offset) {
-            $this->elements[] = $path->getElement($offset);
-            $this->isIndex[] = $path->isIndex($offset);
-        }
-    }
-
-    /**
-     * Appends an index element to the current path.
-     *
-     * @param string $name The name of the appended index
-     */
-    public function appendIndex($name)
-    {
-        $this->elements[] = $name;
-        $this->isIndex[] = true;
-    }
-
-    /**
-     * Appends a property element to the current path.
-     *
-     * @param string $name The name of the appended property
-     */
-    public function appendProperty($name)
-    {
-        $this->elements[] = $name;
-        $this->isIndex[] = false;
-    }
-
-    /**
-     * Removes elements from the current path.
-     *
-     * @param integer $offset The offset at which to remove
-     * @param integer $length The length of the removed piece
-     *
-     * @throws OutOfBoundsException if offset is invalid
-     */
-    public function remove($offset, $length = 1)
-    {
-        if (!isset($this->elements[$offset])) {
-            throw new OutOfBoundsException(sprintf('The offset %s is not within the property path', $offset));
-        }
-
-        $this->resize($offset, $length, 0);
-    }
-
-    /**
-     * Replaces a sub-path by a different (sub-) path.
-     *
-     * @param integer                      $offset     The offset at which to replace.
-     * @param integer                      $length     The length of the piece to replace.
-     * @param PropertyPathInterface|string $path       The path to insert.
-     * @param integer                      $pathOffset The offset where the inserted piece
-     *                                                 starts in $path.
-     * @param integer                      $pathLength The length of the inserted piece.
-     *                                                 If 0, the full path is inserted.
-     *
-     * @throws OutOfBoundsException If the offset is invalid
-     */
-    public function replace($offset, $length, $path, $pathOffset = 0, $pathLength = 0)
-    {
-        if (is_string($path)) {
-            $path = new PropertyPath($path);
-        }
-
-        if ($offset < 0 && abs($offset) <= $this->getLength()) {
-            $offset = $this->getLength() + $offset;
-        } elseif (!isset($this->elements[$offset])) {
-            throw new OutOfBoundsException('The offset ' . $offset . ' is not within the property path');
-        }
-
-        if (0 === $pathLength) {
-            $pathLength = $path->getLength() - $pathOffset;
-        }
-
-        $this->resize($offset, $length, $pathLength);
-
-        for ($i = 0; $i < $pathLength; ++$i) {
-            $this->elements[$offset + $i] = $path->getElement($pathOffset + $i);
-            $this->isIndex[$offset + $i] = $path->isIndex($pathOffset + $i);
-        }
-    }
-
-    /**
-     * Replaces a property element by an index element.
-     *
-     * @param integer $offset The offset at which to replace
-     * @param string  $name   The new name of the element. Optional.
-     *
-     * @throws OutOfBoundsException If the offset is invalid
-     */
-    public function replaceByIndex($offset, $name = null)
-    {
-        if (!isset($this->elements[$offset])) {
-            throw new OutOfBoundsException(sprintf('The offset %s is not within the property path', $offset));
-        }
-
-        if (null !== $name) {
-            $this->elements[$offset] = $name;
-        }
-
-        $this->isIndex[$offset] = true;
-    }
-
-    /**
-     * Replaces an index element by a property element.
-     *
-     * @param integer $offset The offset at which to replace
-     * @param string  $name   The new name of the element. Optional.
-     *
-     * @throws OutOfBoundsException If the offset is invalid
-     */
-    public function replaceByProperty($offset, $name = null)
-    {
-        if (!isset($this->elements[$offset])) {
-            throw new OutOfBoundsException(sprintf('The offset %s is not within the property path', $offset));
-        }
-
-        if (null !== $name) {
-            $this->elements[$offset] = $name;
-        }
-
-        $this->isIndex[$offset] = false;
-    }
-
-    /**
-     * Returns the length of the current path.
-     *
-     * @return integer The path length
-     */
-    public function getLength()
-    {
-        return count($this->elements);
-    }
-
-    /**
-     * Returns the current property path.
-     *
-     * @return PropertyPathInterface The constructed property path
-     */
-    public function getPropertyPath()
-    {
-        $pathAsString = $this->__toString();
-
-        return '' !== $pathAsString ? new PropertyPath($pathAsString) : null;
-    }
-
-    /**
-     * Returns the current property path as string.
-     *
-     * @return string The property path as string
-     */
-    public function __toString()
-    {
-        $string = '';
-
-        foreach ($this->elements as $offset => $element) {
-            if ($this->isIndex[$offset]) {
-                $element = '['.$element.']';
-            } elseif ('' !== $string) {
-                $string .= '.';
-            }
-
-            $string .= $element;
-        }
-
-        return $string;
-    }
-
-    /**
-     * Resizes the path so that a chunk of length $cutLength is
-     * removed at $offset and another chunk of length $insertionLength
-     * can be inserted.
-     *
-     * @param  integer $offset          The offset where the removed chunk starts
-     * @param  integer $cutLength       The length of the removed chunk
-     * @param  integer $insertionLength The length of the inserted chunk
-     */
-    private function resize($offset, $cutLength, $insertionLength)
-    {
-        // Nothing else to do in this case
-        if ($insertionLength === $cutLength) {
-            return;
-        }
-
-        $length = count($this->elements);
-
-        if ($cutLength > $insertionLength) {
-            // More elements should be removed than inserted
-            $diff = $cutLength - $insertionLength;
-            $newLength = $length - $diff;
-
-            // Shift elements to the left (left-to-right until the new end)
-            // Max allowed offset to be shifted is such that
-            // $offset + $diff < $length (otherwise invalid index access)
-            // i.e. $offset < $length - $diff = $newLength
-            for ($i = $offset; $i < $newLength; ++$i) {
-                $this->elements[$i] = $this->elements[$i + $diff];
-                $this->isIndex[$i] = $this->isIndex[$i + $diff];
-            }
-
-            // All remaining elements should be removed
-            for (; $i < $length; ++$i) {
-                unset($this->elements[$i]);
-                unset($this->isIndex[$i]);
-            }
-        } else {
-            $diff = $insertionLength - $cutLength;
-
-            $newLength = $length + $diff;
-            $indexAfterInsertion = $offset + $insertionLength;
-
-            // $diff <= $insertionLength
-            // $indexAfterInsertion >= $insertionLength
-            // => $diff <= $indexAfterInsertion
-
-            // In each of the following loops, $i >= $diff must hold,
-            // otherwise ($i - $diff) becomes negative.
-
-            // Shift old elements to the right to make up space for the
-            // inserted elements. This needs to be done left-to-right in
-            // order to preserve an ascending array index order
-            // Since $i = max($length, $indexAfterInsertion) and $indexAfterInsertion >= $diff,
-            // $i >= $diff is guaranteed.
-            for ($i = max($length, $indexAfterInsertion); $i < $newLength; ++$i) {
-                $this->elements[$i] = $this->elements[$i - $diff];
-                $this->isIndex[$i] = $this->isIndex[$i - $diff];
-            }
-
-            // Shift remaining elements to the right. Do this right-to-left
-            // so we don't overwrite elements before copying them
-            // The last written index is the immediate index after the inserted
-            // string, because the indices before that will be overwritten
-            // anyway.
-            // Since $i >= $indexAfterInsertion and $indexAfterInsertion >= $diff,
-            // $i >= $diff is guaranteed.
-            for ($i = $length - 1; $i >= $indexAfterInsertion; --$i) {
-                $this->elements[$i] = $this->elements[$i - $diff];
-                $this->isIndex[$i] = $this->isIndex[$i - $diff];
-            }
-        }
-    }
-}
diff --git a/core/vendor/symfony/property-access/Symfony/Component/PropertyAccess/PropertyPathInterface.php b/core/vendor/symfony/property-access/Symfony/Component/PropertyAccess/PropertyPathInterface.php
deleted file mode 100644
index 95f34ffae6daf224ce9a800a051886c84c5e2fe1..0000000000000000000000000000000000000000
--- a/core/vendor/symfony/property-access/Symfony/Component/PropertyAccess/PropertyPathInterface.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\PropertyAccess;
-
-/**
- * A sequence of property names or array indices.
- *
- * @author Bernhard Schussek <bschussek@gmail.com>
- */
-interface PropertyPathInterface extends \Traversable
-{
-    /**
-     * Returns the string representation of the property path
-     *
-     * @return string The path as string
-     */
-    public function __toString();
-
-    /**
-     * Returns the length of the property path, i.e. the number of elements.
-     *
-     * @return integer The path length
-     */
-    public function getLength();
-
-    /**
-     * Returns the parent property path.
-     *
-     * The parent property path is the one that contains the same items as
-     * this one except for the last one.
-     *
-     * If this property path only contains one item, null is returned.
-     *
-     * @return PropertyPath The parent path or null
-     */
-    public function getParent();
-
-    /**
-     * Returns the elements of the property path as array
-     *
-     * @return array An array of property/index names
-     */
-    public function getElements();
-
-    /**
-     * Returns the element at the given index in the property path
-     *
-     * @param  integer $index The index key
-     *
-     * @return string A property or index name
-     *
-     * @throws Exception\OutOfBoundsException If the offset is invalid
-     */
-    public function getElement($index);
-
-    /**
-     * Returns whether the element at the given index is a property
-     *
-     * @param  integer $index The index in the property path
-     *
-     * @return Boolean Whether the element at this index is a property
-     *
-     * @throws Exception\OutOfBoundsException If the offset is invalid
-     */
-    public function isProperty($index);
-
-    /**
-     * Returns whether the element at the given index is an array index
-     *
-     * @param  integer $index The index in the property path
-     *
-     * @return Boolean Whether the element at this index is an array index
-     *
-     * @throws Exception\OutOfBoundsException If the offset is invalid
-     */
-    public function isIndex($index);
-}
diff --git a/core/vendor/symfony/property-access/Symfony/Component/PropertyAccess/PropertyPathIterator.php b/core/vendor/symfony/property-access/Symfony/Component/PropertyAccess/PropertyPathIterator.php
deleted file mode 100644
index d6cd49caa077a90561ca7cddf6da54e063eff378..0000000000000000000000000000000000000000
--- a/core/vendor/symfony/property-access/Symfony/Component/PropertyAccess/PropertyPathIterator.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\PropertyAccess;
-
-/**
- * Traverses a property path and provides additional methods to find out
- * information about the current element
- *
- * @author Bernhard Schussek <bschussek@gmail.com>
- */
-class PropertyPathIterator extends \ArrayIterator implements PropertyPathIteratorInterface
-{
-    /**
-     * The traversed property path
-     * @var PropertyPathInterface
-     */
-    protected $path;
-
-    /**
-     * Constructor.
-     *
-     * @param PropertyPathInterface $path The property path to traverse
-     */
-    public function __construct(PropertyPathInterface $path)
-    {
-        parent::__construct($path->getElements());
-
-        $this->path = $path;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function isIndex()
-    {
-        return $this->path->isIndex($this->key());
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function isProperty()
-    {
-        return $this->path->isProperty($this->key());
-    }
-}
diff --git a/core/vendor/symfony/property-access/Symfony/Component/PropertyAccess/PropertyPathIteratorInterface.php b/core/vendor/symfony/property-access/Symfony/Component/PropertyAccess/PropertyPathIteratorInterface.php
deleted file mode 100644
index cb43f8d7ea5907f76ff7f90c5d18f219b88cb05b..0000000000000000000000000000000000000000
--- a/core/vendor/symfony/property-access/Symfony/Component/PropertyAccess/PropertyPathIteratorInterface.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\PropertyAccess;
-
-/**
- * @author Bernhard Schussek <bschussek@gmail.com>
- */
-interface PropertyPathIteratorInterface extends \Iterator, \SeekableIterator
-{
-    /**
-     * Returns whether the current element in the property path is an array
-     * index.
-     *
-     * @return Boolean
-     */
-    public function isIndex();
-
-    /**
-     * Returns whether the current element in the property path is a property
-     * name.
-     *
-     * @return Boolean
-     */
-    public function isProperty();
-}
diff --git a/core/vendor/symfony/property-access/Symfony/Component/PropertyAccess/README.md b/core/vendor/symfony/property-access/Symfony/Component/PropertyAccess/README.md
deleted file mode 100644
index 79b6ebca5aa70f4aca7e5218d2ab693f638be1e5..0000000000000000000000000000000000000000
--- a/core/vendor/symfony/property-access/Symfony/Component/PropertyAccess/README.md
+++ /dev/null
@@ -1,14 +0,0 @@
-PropertyAccess Component
-========================
-
-PropertyAccess reads/writes values from/to object/array graphs using a simple
-string notation.
-
-Resources
----------
-
-You can run the unit tests with the following command:
-
-    $ cd path/to/Symfony/Component/PropertyAccess/
-    $ composer.phar install
-    $ phpunit
diff --git a/core/vendor/symfony/property-access/Symfony/Component/PropertyAccess/StringUtil.php b/core/vendor/symfony/property-access/Symfony/Component/PropertyAccess/StringUtil.php
deleted file mode 100644
index 509bce4b92d8c46a3e1f2e77a084518b8a25b3a9..0000000000000000000000000000000000000000
--- a/core/vendor/symfony/property-access/Symfony/Component/PropertyAccess/StringUtil.php
+++ /dev/null
@@ -1,201 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\PropertyAccess;
-
-/**
- * Creates singulars from plurals.
- *
- * @author Bernhard Schussek <bschussek@gmail.com>
- */
-class StringUtil
-{
-    /**
-     * Map english plural to singular suffixes
-     *
-     * @var array
-     *
-     * @see http://english-zone.com/spelling/plurals.html
-     * @see http://www.scribd.com/doc/3271143/List-of-100-Irregular-Plural-Nouns-in-English
-     */
-    private static $pluralMap = array(
-        // First entry: plural suffix, reversed
-        // Second entry: length of plural suffix
-        // Third entry: Whether the suffix may succeed a vocal
-        // Fourth entry: Whether the suffix may succeed a consonant
-        // Fifth entry: singular suffix, normal
-
-        // bacteria (bacterium), criteria (criterion), phenomena (phenomenon)
-        array('a', 1, true, true, array('on', 'um')),
-
-        // nebulae (nebula)
-        array('ea', 2, true, true, 'a'),
-
-        // mice (mouse), lice (louse)
-        array('eci', 3, false, true, 'ouse'),
-
-        // geese (goose)
-        array('esee', 4, false, true, 'oose'),
-
-        // fungi (fungus), alumni (alumnus), syllabi (syllabus), radii (radius)
-        array('i', 1, true, true, 'us'),
-
-        // men (man), women (woman)
-        array('nem', 3, true, true, 'man'),
-
-        // children (child)
-        array('nerdlihc', 8, true, true, 'child'),
-
-        // oxen (ox)
-        array('nexo', 4, false, false, 'ox'),
-
-        // indices (index), appendices (appendix), prices (price)
-        array('seci', 4, false, true, array('ex', 'ix', 'ice')),
-
-        // babies (baby)
-        array('sei', 3, false, true, 'y'),
-
-        // accesses (access), addresses (address), kisses (kiss)
-        array('sess', 4, true, false, 'ss'),
-
-        // analyses (analysis), ellipses (ellipsis), funguses (fungus),
-        // neuroses (neurosis), theses (thesis), emphases (emphasis),
-        // oases (oasis), crises (crisis), houses (house), bases (base),
-        // atlases (atlas)
-        array('ses', 3, true, true, array('s', 'se', 'sis')),
-
-        // objectives (objective), alternative (alternatives)
-        array('sevit', 5, true, true, 'tive'),
-
-        // lives (life), wives (wife)
-        array('sevi', 4, false, true, 'ife'),
-
-        // moves (move)
-        array('sevom', 5, true, true, 'move'),
-
-        // hooves (hoof), dwarves (dwarf), elves (elf), leaves (leaf)
-        array('sev', 3, true, true, 'f'),
-
-        // axes (axis), axes (ax), axes (axe)
-        array('sexa', 4, false, false, array('ax', 'axe', 'axis')),
-
-        // indexes (index), matrixes (matrix)
-        array('sex', 3, true, false, 'x'),
-
-        // quizzes (quiz)
-        array('sezz', 4, true, false, 'z'),
-
-        // bureaus (bureau)
-        array('suae', 4, false, true, 'eau'),
-
-        // roses (rose), garages (garage), cassettes (cassette),
-        // waltzes (waltz), heroes (hero), bushes (bush), arches (arch),
-        // shoes (shoe)
-        array('se', 2, true, true, array('', 'e')),
-
-        // tags (tag)
-        array('s', 1, true, true, ''),
-
-        // chateaux (chateau)
-        array('xuae', 4, false, true, 'eau'),
-    );
-
-    /**
-     * This class should not be instantiated
-     */
-    private function __construct() {}
-
-    /**
-     * Returns the singular form of a word
-     *
-     * If the method can't determine the form with certainty, an array of the
-     * possible singulars is returned.
-     *
-     * @param string $plural A word in plural form
-     * @return string|array The singular form or an array of possible singular
-     *                      forms
-     */
-    public static function singularify($plural)
-    {
-        $pluralRev = strrev($plural);
-        $lowerPluralRev = strtolower($pluralRev);
-        $pluralLength = strlen($lowerPluralRev);
-
-        // The outer loop iterates over the entries of the plural table
-        // The inner loop $j iterates over the characters of the plural suffix
-        // in the plural table to compare them with the characters of the actual
-        // given plural suffix
-        foreach (self::$pluralMap as $map) {
-            $suffix = $map[0];
-            $suffixLength = $map[1];
-            $j = 0;
-
-            // Compare characters in the plural table and of the suffix of the
-            // given plural one by one
-            while ($suffix[$j] === $lowerPluralRev[$j]) {
-                // Let $j point to the next character
-                ++$j;
-
-                // Successfully compared the last character
-                // Add an entry with the singular suffix to the singular array
-                if ($j === $suffixLength) {
-                    // Is there any character preceding the suffix in the plural string?
-                    if ($j < $pluralLength) {
-                        $nextIsVocal = false !== strpos('aeiou', $lowerPluralRev[$j]);
-
-                        if (!$map[2] && $nextIsVocal) {
-                            // suffix may not succeed a vocal but next char is one
-                            break;
-                        }
-
-                        if (!$map[3] && !$nextIsVocal) {
-                            // suffix may not succeed a consonant but next char is one
-                            break;
-                        }
-                    }
-
-                    $newBase = substr($plural, 0, $pluralLength - $suffixLength);
-                    $newSuffix = $map[4];
-
-                    // Check whether the first character in the plural suffix
-                    // is uppercased. If yes, uppercase the first character in
-                    // the singular suffix too
-                    $firstUpper = ctype_upper($pluralRev[$j - 1]);
-
-                    if (is_array($newSuffix)) {
-                        $singulars = array();
-
-                        foreach ($newSuffix as $newSuffixEntry) {
-                            $singulars[] = $newBase.($firstUpper ? ucfirst($newSuffixEntry) : $newSuffixEntry);
-                        }
-
-                        return $singulars;
-                    }
-
-                    return $newBase.($firstUpper ? ucFirst($newSuffix) : $newSuffix);
-                }
-
-                // Suffix is longer than word
-                if ($j === $pluralLength) {
-                    break;
-                }
-            }
-        }
-
-        // Convert teeth to tooth, feet to foot
-        if (false !== ($pos = strpos($plural, 'ee')) && strlen($plural) > 3) {
-            return substr_replace($plural, 'oo', $pos, 2);
-        }
-
-        // Assume that plural and singular is identical
-        return $plural;
-    }
-}
diff --git a/core/vendor/symfony/property-access/Symfony/Component/PropertyAccess/composer.json b/core/vendor/symfony/property-access/Symfony/Component/PropertyAccess/composer.json
deleted file mode 100644
index d79eba11fdcabc452deb9a2c5d12b10871125722..0000000000000000000000000000000000000000
--- a/core/vendor/symfony/property-access/Symfony/Component/PropertyAccess/composer.json
+++ /dev/null
@@ -1,31 +0,0 @@
-{
-    "name": "symfony/property-access",
-    "type": "library",
-    "description": "Symfony PropertyAccess Component",
-    "keywords": ["property", "index", "access", "object", "array", "extraction", "injection", "reflection", "property path"],
-    "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"
-    },
-    "autoload": {
-        "psr-0": { "Symfony\\Component\\PropertyAccess\\": "" }
-    },
-    "target-dir": "Symfony/Component/PropertyAccess",
-    "minimum-stability": "dev",
-    "extra": {
-        "branch-alias": {
-            "dev-master": "2.4-dev"
-        }
-    }
-}
diff --git a/core/vendor/symfony/routing/Symfony/Component/Routing/Annotation/Route.php b/core/vendor/symfony/routing/Symfony/Component/Routing/Annotation/Route.php
index ebda0971c5fda315b10a58c72f1aa9f9b85680e9..abdbea27c69968631332b639f5dcc25b9b6bed69 100644
--- a/core/vendor/symfony/routing/Symfony/Component/Routing/Annotation/Route.php
+++ b/core/vendor/symfony/routing/Symfony/Component/Routing/Annotation/Route.php
@@ -22,13 +22,12 @@ class Route
 {
     private $path;
     private $name;
-    private $requirements = array();
-    private $options = array();
-    private $defaults = array();
+    private $requirements;
+    private $options;
+    private $defaults;
     private $host;
-    private $methods = array();
-    private $schemes = array();
-    private $condition;
+    private $methods;
+    private $schemes;
 
     /**
      * Constructor.
@@ -39,6 +38,12 @@ class Route
      */
     public function __construct(array $data)
     {
+        $this->requirements = array();
+        $this->options = array();
+        $this->defaults = array();
+        $this->methods = array();
+        $this->schemes = array();
+
         if (isset($data['value'])) {
             $data['path'] = $data['value'];
             unset($data['value']);
@@ -148,14 +153,4 @@ 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/Symfony/Component/Routing/Generator/ConfigurableRequirementsInterface.php b/core/vendor/symfony/routing/Symfony/Component/Routing/Generator/ConfigurableRequirementsInterface.php
index 8c25f34b120abb01748b68927bc5ed193ac45053..5925838c3fa4c3c758917712f3418edcb69fbbc0 100644
--- a/core/vendor/symfony/routing/Symfony/Component/Routing/Generator/ConfigurableRequirementsInterface.php
+++ b/core/vendor/symfony/routing/Symfony/Component/Routing/Generator/ConfigurableRequirementsInterface.php
@@ -25,7 +25,7 @@
  *   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
+ *   checking the requirements at all. When generating an 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
diff --git a/core/vendor/symfony/routing/Symfony/Component/Routing/Generator/Dumper/PhpGeneratorDumper.php b/core/vendor/symfony/routing/Symfony/Component/Routing/Generator/Dumper/PhpGeneratorDumper.php
index 4d19d2a2ec8db81da3061c579029906b29ea6b5d..42cd9108939dae7a95d33fe3ae3de2c3d4dafa02 100644
--- a/core/vendor/symfony/routing/Symfony/Component/Routing/Generator/Dumper/PhpGeneratorDumper.php
+++ b/core/vendor/symfony/routing/Symfony/Component/Routing/Generator/Dumper/PhpGeneratorDumper.php
@@ -92,7 +92,6 @@ private function generateDeclaredRoutes()
             $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)));
         }
@@ -115,9 +114,9 @@ public function generate(\$name, \$parameters = array(), \$referenceType = self:
             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];
+        list(\$variables, \$defaults, \$requirements, \$tokens, \$hostTokens) = self::\$declaredRoutes[\$name];
 
-        return \$this->doGenerate(\$variables, \$defaults, \$requirements, \$tokens, \$parameters, \$name, \$referenceType, \$hostTokens, \$requiredSchemes);
+        return \$this->doGenerate(\$variables, \$defaults, \$requirements, \$tokens, \$parameters, \$name, \$referenceType, \$hostTokens);
     }
 EOF;
     }
diff --git a/core/vendor/symfony/routing/Symfony/Component/Routing/Generator/UrlGenerator.php b/core/vendor/symfony/routing/Symfony/Component/Routing/Generator/UrlGenerator.php
index 468708479bbe9c1ad8bafabb3c5a79fdabf23b00..f224cb3f6d9f63da4b0d0f0b2cb53cb7e2949c87 100644
--- a/core/vendor/symfony/routing/Symfony/Component/Routing/Generator/UrlGenerator.php
+++ b/core/vendor/symfony/routing/Symfony/Component/Routing/Generator/UrlGenerator.php
@@ -137,7 +137,7 @@ public function generate($name, $parameters = array(), $referenceType = self::AB
         // 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());
+        return $this->doGenerate($compiledRoute->getVariables(), $route->getDefaults(), $route->getRequirements(), $compiledRoute->getTokens(), $parameters, $name, $referenceType, $compiledRoute->getHostTokens());
     }
 
     /**
@@ -145,7 +145,7 @@ public function generate($name, $parameters = array(), $referenceType = self::AB
      * @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())
+    protected function doGenerate($variables, $defaults, $requirements, $tokens, $parameters, $name, $referenceType, $hostTokens)
     {
         $variables = array_flip($variables);
         $mergedParams = array_replace($defaults, $this->context->getParameters(), $parameters);
@@ -188,7 +188,7 @@ protected function doGenerate($variables, $defaults, $requirements, $tokens, $pa
             $url = '/';
         }
 
-        // the contexts base URL is already encoded (see Symfony\Component\HttpFoundation\Request)
+        // 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
@@ -204,24 +204,7 @@ protected function doGenerate($variables, $defaults, $requirements, $tokens, $pa
         $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
+            if (isset($requirements['_scheme']) && ($req = strtolower($requirements['_scheme'])) && $scheme !== $req) {
                 $referenceType = self::ABSOLUTE_URL;
                 $scheme = $req;
             }
diff --git a/core/vendor/symfony/routing/Symfony/Component/Routing/Loader/AnnotationClassLoader.php b/core/vendor/symfony/routing/Symfony/Component/Routing/Loader/AnnotationClassLoader.php
index af70a888b8673a5cf6d4cfa84327493275150da6..9831d85a09673b3403c8348362dc16afd9f50b02 100644
--- a/core/vendor/symfony/routing/Symfony/Component/Routing/Loader/AnnotationClassLoader.php
+++ b/core/vendor/symfony/routing/Symfony/Component/Routing/Loader/AnnotationClassLoader.php
@@ -116,7 +116,6 @@ public function load($class, $type = null)
             'schemes'      => array(),
             'methods'      => array(),
             'host'         => '',
-            'condition'    => '',
         );
 
         $class = new \ReflectionClass($class);
@@ -155,10 +154,6 @@ public function load($class, $type = null)
             if (null !== $annot->getHost()) {
                 $globals['host'] = $annot->getHost();
             }
-
-            if (null !== $annot->getCondition()) {
-                $globals['condition'] = $annot->getCondition();
-            }
         }
 
         $collection = new RouteCollection();
@@ -185,7 +180,7 @@ protected function addRoute(RouteCollection $collection, $annot, $globals, \Refl
 
         $defaults = array_replace($globals['defaults'], $annot->getDefaults());
         foreach ($method->getParameters() as $param) {
-            if (!isset($defaults[$param->getName()]) && $param->isOptional()) {
+            if ($param->isOptional()) {
                 $defaults[$param->getName()] = $param->getDefaultValue();
             }
         }
@@ -199,12 +194,7 @@ protected function addRoute(RouteCollection $collection, $annot, $globals, \Refl
             $host = $globals['host'];
         }
 
-        $condition = $annot->getCondition();
-        if (null === $condition) {
-            $condition = $globals['condition'];
-        }
-
-        $route = new Route($globals['path'].$annot->getPath(), $defaults, $requirements, $options, $host, $schemes, $methods, $condition);
+        $route = new Route($globals['path'].$annot->getPath(), $defaults, $requirements, $options, $host, $schemes, $methods);
 
         $this->configureRoute($route, $class, $method, $annot);
 
diff --git a/core/vendor/symfony/routing/Symfony/Component/Routing/Loader/XmlFileLoader.php b/core/vendor/symfony/routing/Symfony/Component/Routing/Loader/XmlFileLoader.php
index e854202f7092cbc9215755df85a4125ae9d24699..da7b33d856ff16b7460a1cdb48e985a85dd1f62f 100644
--- a/core/vendor/symfony/routing/Symfony/Component/Routing/Loader/XmlFileLoader.php
+++ b/core/vendor/symfony/routing/Symfony/Component/Routing/Loader/XmlFileLoader.php
@@ -129,9 +129,9 @@ protected function parseRoute(RouteCollection $collection, \DOMElement $node, $p
         $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);
+        list($defaults, $requirements, $options) = $this->parseConfigs($node, $path);
 
-        $route = new Route($node->getAttribute('path'), $defaults, $requirements, $options, $node->getAttribute('host'), $schemes, $methods, $condition);
+        $route = new Route($node->getAttribute('path'), $defaults, $requirements, $options, $node->getAttribute('host'), $schemes, $methods);
         $collection->add($id, $route);
     }
 
@@ -157,7 +157,7 @@ protected function parseImport(RouteCollection $collection, \DOMElement $node, $
         $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);
+        list($defaults, $requirements, $options) = $this->parseConfigs($node, $path);
 
         $this->setCurrentDir(dirname($path));
 
@@ -211,7 +211,6 @@ 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) {
@@ -229,14 +228,11 @@ private function parseConfigs(\DOMElement $node, $path)
                 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);
+        return array($defaults, $requirements, $options);
     }
 }
diff --git a/core/vendor/symfony/routing/Symfony/Component/Routing/Loader/YamlFileLoader.php b/core/vendor/symfony/routing/Symfony/Component/Routing/Loader/YamlFileLoader.php
index d3eaea42e60415441f0a45545a6c80a73ef5cb70..9deea7fe4f5525714b4333d1f5b62029288bf4d6 100644
--- a/core/vendor/symfony/routing/Symfony/Component/Routing/Loader/YamlFileLoader.php
+++ b/core/vendor/symfony/routing/Symfony/Component/Routing/Loader/YamlFileLoader.php
@@ -28,7 +28,7 @@
 class YamlFileLoader extends FileLoader
 {
     private static $availableKeys = array(
-        'resource', 'type', 'prefix', 'pattern', 'path', 'host', 'schemes', 'methods', 'defaults', 'requirements', 'options', 'condition'
+        'resource', 'type', 'prefix', 'pattern', 'path', 'host', 'schemes', 'methods', 'defaults', 'requirements', 'options',
     );
     private $yamlParser;
 
@@ -123,9 +123,8 @@ protected function parseRoute(RouteCollection $collection, $name, array $config,
         $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;
 
-        $route = new Route($config['path'], $defaults, $requirements, $options, $host, $schemes, $methods, $condition);
+        $route = new Route($config['path'], $defaults, $requirements, $options, $host, $schemes, $methods);
 
         $collection->add($name, $route);
     }
diff --git a/core/vendor/symfony/routing/Symfony/Component/Routing/Loader/schema/routing/routing-1.0.xsd b/core/vendor/symfony/routing/Symfony/Component/Routing/Loader/schema/routing/routing-1.0.xsd
index 9ab969a41d8a2e79c7a8159ee229d75e8df8e09f..daea8143865c89eff0250c7438243afa27b9142f 100644
--- a/core/vendor/symfony/routing/Symfony/Component/Routing/Loader/schema/routing/routing-1.0.xsd
+++ b/core/vendor/symfony/routing/Symfony/Component/Routing/Loader/schema/routing/routing-1.0.xsd
@@ -29,7 +29,6 @@
       <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="condition" />
     </xsd:choice>
   </xsd:group>
 
@@ -62,9 +61,4 @@
       </xsd:extension>
     </xsd:simpleContent>
   </xsd:complexType>
-
-  <xsd:simpleType name="condition">
-    <xsd:restriction base="xsd:string">
-    </xsd:restriction>
-  </xsd:simpleType>
 </xsd:schema>
diff --git a/core/vendor/symfony/routing/Symfony/Component/Routing/Matcher/Dumper/ApacheMatcherDumper.php b/core/vendor/symfony/routing/Symfony/Component/Routing/Matcher/Dumper/ApacheMatcherDumper.php
index 5b32684876b96ea58ab00d85af5246f60acd2cfd..01d8c035894763d966691575f02c22e5cac0f740 100644
--- a/core/vendor/symfony/routing/Symfony/Component/Routing/Matcher/Dumper/ApacheMatcherDumper.php
+++ b/core/vendor/symfony/routing/Symfony/Component/Routing/Matcher/Dumper/ApacheMatcherDumper.php
@@ -50,9 +50,6 @@ public function dump(array $options = array())
         $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();
diff --git a/core/vendor/symfony/routing/Symfony/Component/Routing/Matcher/Dumper/MatcherDumperInterface.php b/core/vendor/symfony/routing/Symfony/Component/Routing/Matcher/Dumper/MatcherDumperInterface.php
index 5e7c134b9f394752d3c6d4dd4b1911f2c47db36b..f85e4ceff0a7778880b1f2c6d0b7be7eb6b5faea 100644
--- a/core/vendor/symfony/routing/Symfony/Component/Routing/Matcher/Dumper/MatcherDumperInterface.php
+++ b/core/vendor/symfony/routing/Symfony/Component/Routing/Matcher/Dumper/MatcherDumperInterface.php
@@ -11,8 +11,6 @@
 
 namespace Symfony\Component\Routing\Matcher\Dumper;
 
-use Symfony\Component\Routing\RouteCollection;
-
 /**
  * MatcherDumperInterface is the interface that all matcher dumper classes must implement.
  *
diff --git a/core/vendor/symfony/routing/Symfony/Component/Routing/Matcher/Dumper/PhpMatcherDumper.php b/core/vendor/symfony/routing/Symfony/Component/Routing/Matcher/Dumper/PhpMatcherDumper.php
index 784f3099daf59e5e9efe5d74074d788946ff150d..dc17ffbe984a3670a55697b4776fcb63f83d1623 100644
--- a/core/vendor/symfony/routing/Symfony/Component/Routing/Matcher/Dumper/PhpMatcherDumper.php
+++ b/core/vendor/symfony/routing/Symfony/Component/Routing/Matcher/Dumper/PhpMatcherDumper.php
@@ -13,7 +13,6 @@
 
 use Symfony\Component\Routing\Route;
 use Symfony\Component\Routing\RouteCollection;
-use Symfony\Component\ExpressionLanguage\ExpressionLanguage;
 
 /**
  * PhpMatcherDumper creates a PHP class able to match URLs for a given set of routes.
@@ -24,8 +23,6 @@
  */
 class PhpMatcherDumper extends MatcherDumper
 {
-    private $expressionLanguage;
-
     /**
      * Dumps a set of routes to a PHP class.
      *
@@ -94,8 +91,6 @@ public function match(\$pathinfo)
     {
         \$allow = array();
         \$pathinfo = rawurldecode(\$pathinfo);
-        \$context = \$this->context;
-        \$request = \$this->request;
 
 $code
 
@@ -242,10 +237,6 @@ private function compileRoute(Route $route, $name, $supportsRedirections, $paren
             $hostMatches = true;
         }
 
-        if ($route->getCondition()) {
-            $conditions[] = $this->getExpressionLanguage()->compile($route->getCondition(), array('context', 'request'));
-        }
-
         $conditions = implode(' && ', $conditions);
 
         $code .= <<<EOF
@@ -254,8 +245,9 @@ private function compileRoute(Route $route, $name, $supportsRedirections, $paren
 
 EOF;
 
-        $gotoname = 'not_'.preg_replace('/[^A-Za-z0-9_]/', '', $name);
         if ($methods) {
+            $gotoname = 'not_'.preg_replace('/[^A-Za-z0-9_]/', '', $name);
+
             if (1 === count($methods)) {
                 $code .= <<<EOF
             if (\$this->context->getMethod() != '$methods[0]') {
@@ -288,15 +280,14 @@ private function compileRoute(Route $route, $name, $supportsRedirections, $paren
 EOF;
         }
 
-        if ($schemes = $route->getSchemes()) {
+        if ($scheme = $route->getRequirement('_scheme')) {
             if (!$supportsRedirections) {
-                throw new \LogicException('The "schemes" requirement is only supported for URL matchers that implement RedirectableUrlMatcherInterface.');
+                throw new \LogicException('The "_scheme" 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));
+            if (\$this->context->getScheme() !== '$scheme') {
+                return \$this->redirect(\$pathinfo, '$name', '$scheme');
             }
 
 
@@ -314,11 +305,8 @@ private function compileRoute(Route $route, $name, $supportsRedirections, $paren
             }
             $vars[] = "array('_route' => '$name')";
 
-            $code .= sprintf(
-                "            return \$this->mergeDefaults(array_replace(%s), %s);\n",
-                implode(', ', $vars),
-                str_replace("\n", '', var_export($route->getDefaults(), true))
-            );
+            $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)));
@@ -387,16 +375,4 @@ private function buildPrefixTree(DumperCollection $collection)
 
         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();
-        }
-
-        return $this->expressionLanguage;
-    }
 }
diff --git a/core/vendor/symfony/routing/Symfony/Component/Routing/Matcher/RedirectableUrlMatcher.php b/core/vendor/symfony/routing/Symfony/Component/Routing/Matcher/RedirectableUrlMatcher.php
index 3d13181f467dde73b9cbf01b9f006aeb00516a9b..51e80057cd53b2b380d6ca2a68b3b8a88ea2e08c 100644
--- a/core/vendor/symfony/routing/Symfony/Component/Routing/Matcher/RedirectableUrlMatcher.php
+++ b/core/vendor/symfony/routing/Symfony/Component/Routing/Matcher/RedirectableUrlMatcher.php
@@ -50,16 +50,10 @@ public function match($pathinfo)
      */
     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)));
+        $scheme = $route->getRequirement('_scheme');
+        if ($scheme && $this->context->getScheme() !== $scheme) {
+            return array(self::ROUTE_MATCH, $this->redirect($pathinfo, $name, $scheme));
         }
 
         return array(self::REQUIREMENT_MATCH, null);
diff --git a/core/vendor/symfony/routing/Symfony/Component/Routing/Matcher/TraceableUrlMatcher.php b/core/vendor/symfony/routing/Symfony/Component/Routing/Matcher/TraceableUrlMatcher.php
index 22af699d4a7c27d80b5aa97e5b7a98e09aa7ed82..c09f83e86a227f6f2ac6902cb8ea576a53fb0c2a 100644
--- a/core/vendor/symfony/routing/Symfony/Component/Routing/Matcher/TraceableUrlMatcher.php
+++ b/core/vendor/symfony/routing/Symfony/Component/Routing/Matcher/TraceableUrlMatcher.php
@@ -14,6 +14,7 @@
 use Symfony\Component\Routing\Exception\ExceptionInterface;
 use Symfony\Component\Routing\Route;
 use Symfony\Component\Routing\RouteCollection;
+use Symfony\Component\Routing\Matcher\UrlMatcher;
 
 /**
  * TraceableUrlMatcher helps debug path info matching by tracing the match.
@@ -74,7 +75,7 @@ protected function matchCollection($pathinfo, RouteCollection $routes)
             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;
+                return true;
             }
 
             // check HTTP method requirement
@@ -93,21 +94,10 @@ protected function matchCollection($pathinfo, RouteCollection $routes)
                 }
             }
 
-            // 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);
+            if ($scheme = $route->getRequirement('_scheme')) {
+                if ($this->context->getScheme() !== $scheme) {
+                    $this->addTrace(sprintf('Scheme "%s" does not match the requirement ("%s"); the user will be redirected', $this->context->getScheme(), $scheme), self::ROUTE_ALMOST_MATCHES, $name, $route);
 
                     return true;
                 }
diff --git a/core/vendor/symfony/routing/Symfony/Component/Routing/Matcher/UrlMatcher.php b/core/vendor/symfony/routing/Symfony/Component/Routing/Matcher/UrlMatcher.php
index 8d081a8629de5d4f719087e03902541dd4a5c6e4..db18ec4e7b25938afb893f654b403180fb75dae3 100644
--- a/core/vendor/symfony/routing/Symfony/Component/Routing/Matcher/UrlMatcher.php
+++ b/core/vendor/symfony/routing/Symfony/Component/Routing/Matcher/UrlMatcher.php
@@ -16,8 +16,6 @@
 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;
 
 /**
  * UrlMatcher matches URL based on a set of routes.
@@ -26,7 +24,7 @@
  *
  * @api
  */
-class UrlMatcher implements UrlMatcherInterface, RequestMatcherInterface
+class UrlMatcher implements UrlMatcherInterface
 {
     const REQUIREMENT_MATCH     = 0;
     const REQUIREMENT_MISMATCH  = 1;
@@ -47,9 +45,6 @@ class UrlMatcher implements UrlMatcherInterface, RequestMatcherInterface
      */
     protected $routes;
 
-    protected $request;
-    protected $expressionLanguage;
-
     /**
      * Constructor.
      *
@@ -96,20 +91,6 @@ public function match($pathinfo)
             : new ResourceNotFoundException();
     }
 
-    /**
-     * {@inheritdoc}
-     */
-    public function matchRequest(Request $request)
-    {
-        $this->request = $request;
-
-        $ret = $this->match($request->getPathInfo());
-
-        $this->request = null;
-
-        return $ret;
-    }
-
     /**
      * Tries to match a URL with a set of routes.
      *
@@ -199,14 +180,9 @@ protected function getAttributes(Route $route, $name, array $attributes)
      */
     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;
+        $scheme = $route->getRequirement('_scheme');
+        $status = $scheme && $scheme !== $this->context->getScheme() ? self::REQUIREMENT_MISMATCH : self::REQUIREMENT_MATCH;
 
         return array($status, null);
     }
@@ -229,16 +205,4 @@ protected function mergeDefaults($params, $defaults)
 
         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();
-        }
-
-        return $this->expressionLanguage;
-    }
 }
diff --git a/core/vendor/symfony/routing/Symfony/Component/Routing/README.md b/core/vendor/symfony/routing/Symfony/Component/Routing/README.md
index 83febc79bbda839ddd66c8b21a7b6f0c04ed7256..663844a6742938c4ca78aa4bf57ff05592168980 100644
--- a/core/vendor/symfony/routing/Symfony/Component/Routing/README.md
+++ b/core/vendor/symfony/routing/Symfony/Component/Routing/README.md
@@ -30,5 +30,5 @@ Resources
 You can run the unit tests with the following command:
 
     $ cd path/to/Symfony/Component/Routing/
-    $ composer.phar install
+    $ composer.phar install --dev
     $ phpunit
diff --git a/core/vendor/symfony/routing/Symfony/Component/Routing/Route.php b/core/vendor/symfony/routing/Symfony/Component/Routing/Route.php
index 08005541461ef1ad96234e722700a26304c7379f..5bc535c683ed295ec1f3717b03f3991d01a56719 100644
--- a/core/vendor/symfony/routing/Symfony/Component/Routing/Route.php
+++ b/core/vendor/symfony/routing/Symfony/Component/Routing/Route.php
@@ -61,8 +61,6 @@ class Route implements \Serializable
      */
     private $compiled;
 
-    private $condition;
-
     /**
      * Constructor.
      *
@@ -77,11 +75,10 @@ class Route implements \Serializable
      * @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 = null)
+    public function __construct($path, array $defaults = array(), array $requirements = array(), array $options = array(), $host = '', $schemes = array(), $methods = array())
     {
         $this->setPath($path);
         $this->setDefaults($defaults);
@@ -96,7 +93,6 @@ public function __construct($path, array $defaults = array(), array $requirement
         if ($methods) {
             $this->setMethods($methods);
         }
-        $this->setCondition($condition);
     }
 
     public function serialize()
@@ -109,7 +105,6 @@ public function serialize()
             'options'      => $this->options,
             'schemes'      => $this->schemes,
             'methods'      => $this->methods,
-            'condition'    => $this->condition,
         ));
     }
 
@@ -123,7 +118,6 @@ public function unserialize($data)
         $this->options = $data['options'];
         $this->schemes = $data['schemes'];
         $this->methods = $data['methods'];
-        $this->condition = $data['condition'];
     }
 
     /**
@@ -247,25 +241,6 @@ public function setSchemes($schemes)
         return $this;
     }
 
-    /**
-     * Checks if a scheme requirement has been set.
-     *
-     * @param string $scheme
-     *
-     * @return Boolean true if the scheme requirement exists, otherwise false
-     */
-    public function hasScheme($scheme)
-    {
-        $scheme = strtolower($scheme);
-        foreach ($this->schemes as $requiredScheme) {
-            if ($scheme === $requiredScheme) {
-                return true;
-            }
-        }
-
-        return false;
-    }
-
     /**
      * Returns the uppercased HTTP methods this route is restricted to.
      * So an empty array means that any method is allowed.
@@ -568,33 +543,6 @@ public function setRequirement($key, $regex)
         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.
      *
diff --git a/core/vendor/symfony/routing/Symfony/Component/Routing/RouteCollection.php b/core/vendor/symfony/routing/Symfony/Component/Routing/RouteCollection.php
index f02832424236d54426a5b4905e2d5205cebc15b5..499fe0f04f83a8c8e96fc06a573e688141d5960f 100644
--- a/core/vendor/symfony/routing/Symfony/Component/Routing/RouteCollection.php
+++ b/core/vendor/symfony/routing/Symfony/Component/Routing/RouteCollection.php
@@ -177,20 +177,6 @@ public function setHost($pattern, array $defaults = array(), array $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.
      *
diff --git a/core/vendor/symfony/routing/Symfony/Component/Routing/Router.php b/core/vendor/symfony/routing/Symfony/Component/Routing/Router.php
index 62abec387245f5694a20230c662ee39b55dce986..d1e289795c189db0a732925b698d9506e1160aa6 100644
--- a/core/vendor/symfony/routing/Symfony/Component/Routing/Router.php
+++ b/core/vendor/symfony/routing/Symfony/Component/Routing/Router.php
@@ -16,11 +16,7 @@
 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;
 
 /**
  * The Router class is an example of the integration of all pieces of the
@@ -28,7 +24,7 @@
  *
  * @author Fabien Potencier <fabien@symfony.com>
  */
-class Router implements RouterInterface, RequestMatcherInterface
+class Router implements RouterInterface
 {
     /**
      * @var UrlMatcherInterface|null
@@ -84,7 +80,7 @@ public function __construct(LoaderInterface $loader, $resource, array $options =
         $this->loader = $loader;
         $this->resource = $resource;
         $this->logger = $logger;
-        $this->context = $context ?: new RequestContext();
+        $this->context = null === $context ? new RequestContext() : $context;
         $this->setOptions($options);
     }
 
@@ -219,20 +215,6 @@ 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.
      *
@@ -250,8 +232,8 @@ public function getMatcher()
 
         $class = $this->options['matcher_cache_class'];
         $cache = new ConfigCache($this->options['cache_dir'].'/'.$class.'.php', $this->options['debug']);
-        if (!$cache->isFresh()) {
-            $dumper = $this->getMatcherDumperInstance();
+        if (!$cache->isFresh($class)) {
+            $dumper = new $this->options['matcher_dumper_class']($this->getRouteCollection());
 
             $options = array(
                 'class'      => $class,
@@ -282,8 +264,8 @@ public function getGenerator()
         } else {
             $class = $this->options['generator_cache_class'];
             $cache = new ConfigCache($this->options['cache_dir'].'/'.$class.'.php', $this->options['debug']);
-            if (!$cache->isFresh()) {
-                $dumper = $this->getGeneratorDumperInstance();
+            if (!$cache->isFresh($class)) {
+                $dumper = new $this->options['generator_dumper_class']($this->getRouteCollection());
 
                 $options = array(
                     'class'      => $class,
@@ -304,20 +286,4 @@ public function getGenerator()
 
         return $this->generator;
     }
-
-    /**
-     * @return GeneratorDumperInterface
-     */
-    protected function getGeneratorDumperInstance()
-    {
-        return new $this->options['generator_dumper_class']($this->getRouteCollection());
-    }
-
-    /**
-     * @return MatcherDumperInterface
-     */
-    protected function getMatcherDumperInstance()
-    {
-        return new $this->options['matcher_dumper_class']($this->getRouteCollection());
-    }
 }
diff --git a/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Annotation/RouteTest.php b/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Annotation/RouteTest.php
index bd0167089e05dae531beebf2fd9a1c055f898b6d..b58869f7afc69589d331f9aeb3416db443002ed3 100644
--- a/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Annotation/RouteTest.php
+++ b/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Annotation/RouteTest.php
@@ -35,16 +35,15 @@ public function testRouteParameters($parameter, $value, $getter)
     public function getValidParameters()
     {
         return array(
-            array('value', '/Blog', 'getPattern'),
-            array('value', '/Blog', 'getPath'),
-            array('requirements', array('_method' => 'GET'), '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', array('{locale}.example.com'), 'getHost'),
-            array('condition', array('context.getMethod() == "GET"'), 'getCondition'),
+           array('value', '/Blog', 'getPattern'),
+           array('value', '/Blog', 'getPath'),
+           array('requirements', array('_method' => 'GET'), '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', array('{locale}.example.com'), 'getHost')
         );
     }
 }
diff --git a/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Fixtures/CustomXmlFileLoader.php b/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Fixtures/CustomXmlFileLoader.php
index 2e9b028de86098571289f69db1f9422aba5f6514..12a5bedb4fc9e9af1755c9eb6cfab79f412f716e 100644
--- a/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Fixtures/CustomXmlFileLoader.php
+++ b/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Fixtures/CustomXmlFileLoader.php
@@ -21,6 +21,6 @@ class CustomXmlFileLoader extends XmlFileLoader
 {
     protected function loadFile($file)
     {
-        return XmlUtils::loadFile($file, function () { return true; });
+        return XmlUtils::loadFile($file, function() { return true; });
     }
 }
diff --git a/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Fixtures/dumper/url_matcher1.php b/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Fixtures/dumper/url_matcher1.php
index 248a4f153fc3eda4a62146a6b0db40eb64d6f69c..e5f7665c81bc9c4431851437e4003acfd8a9cf9a 100644
--- a/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Fixtures/dumper/url_matcher1.php
+++ b/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Fixtures/dumper/url_matcher1.php
@@ -24,8 +24,6 @@ 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)) {
diff --git a/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Fixtures/dumper/url_matcher2.php b/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Fixtures/dumper/url_matcher2.php
index acf1163c5b390846e08009bbb6784fbb689ea534..ad157909b8c0ea545bbc37f81557be733637aceb 100644
--- a/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Fixtures/dumper/url_matcher2.php
+++ b/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Fixtures/dumper/url_matcher2.php
@@ -24,8 +24,6 @@ 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)) {
@@ -321,9 +319,8 @@ public function match($pathinfo)
 
         // secure
         if ($pathinfo === '/secure') {
-            $requiredSchemes = array (  'https' => 0,);
-            if (!isset($requiredSchemes[$this->context->getScheme()])) {
-                return $this->redirect($pathinfo, 'secure', key($requiredSchemes));
+            if ($this->context->getScheme() !== 'https') {
+                return $this->redirect($pathinfo, 'secure', 'https');
             }
 
             return array('_route' => 'secure');
@@ -331,9 +328,8 @@ public function match($pathinfo)
 
         // nonsecure
         if ($pathinfo === '/nonsecure') {
-            $requiredSchemes = array (  'http' => 0,);
-            if (!isset($requiredSchemes[$this->context->getScheme()])) {
-                return $this->redirect($pathinfo, 'nonsecure', key($requiredSchemes));
+            if ($this->context->getScheme() !== 'http') {
+                return $this->redirect($pathinfo, 'nonsecure', 'http');
             }
 
             return array('_route' => 'nonsecure');
diff --git a/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Fixtures/dumper/url_matcher3.php b/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Fixtures/dumper/url_matcher3.php
index c3463fa77208aa349154bee55efe2da55ebc91ee..f2f642eb86691df7aa80c39686dd6724121b87b1 100644
--- a/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Fixtures/dumper/url_matcher3.php
+++ b/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Fixtures/dumper/url_matcher3.php
@@ -24,8 +24,6 @@ public function match($pathinfo)
     {
         $allow = array();
         $pathinfo = rawurldecode($pathinfo);
-        $context = $this->context;
-        $request = $this->request;
 
         if (0 === strpos($pathinfo, '/rootprefix')) {
             // static
@@ -40,11 +38,6 @@ public function match($pathinfo)
 
         }
 
-        // 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/Symfony/Component/Routing/Tests/Fixtures/validpattern.php b/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Fixtures/validpattern.php
index b652d946565991219eb8ec643af4e42fcc6001d9..b8bbbb5f8f01de11ee2885deb6737a75b2673b4c 100644
--- a/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Fixtures/validpattern.php
+++ b/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Fixtures/validpattern.php
@@ -10,18 +10,14 @@
     array('compiler_class' => 'RouteCompiler'),
     '{locale}.example.com',
     array('https'),
-    array('GET','POST','put','OpTiOnS'),
-    'context.getMethod() == "GET"'
+    array('GET','POST','put','OpTiOnS')
 ));
 $collection->add('blog_show_legacy', new Route(
     '/blog/{slug}',
     array('_controller' => 'MyBlogBundle:Blog:show'),
     array('_method' => 'GET|POST|put|OpTiOnS', '_scheme' => 'https', 'locale' => '\w+',),
     array('compiler_class' => 'RouteCompiler'),
-    '{locale}.example.com',
-    array(),
-    array(),
-    'context.getMethod() == "GET"'
+    '{locale}.example.com'
 ));
 
 return $collection;
diff --git a/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Fixtures/validpattern.xml b/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Fixtures/validpattern.xml
index cfee9d6882839e5c160fa376654b95ce50bc41ec..b9f22347b40cb438d3f06b45523cdd6061b30b6c 100644
--- a/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Fixtures/validpattern.xml
+++ b/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Fixtures/validpattern.xml
@@ -8,7 +8,6 @@
         <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_legacy" pattern="/blog/{slug}" host="{locale}.example.com">
@@ -18,6 +17,5 @@
         <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/Symfony/Component/Routing/Tests/Fixtures/validpattern.yml b/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Fixtures/validpattern.yml
index 48cf7f8817cc26b9d4fd6496588a0bcd6aa8c16d..4ada8832197b83752f3501c96cd2b4522d18ce4a 100644
--- a/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Fixtures/validpattern.yml
+++ b/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Fixtures/validpattern.yml
@@ -5,7 +5,6 @@ blog_show:
     requirements: { 'locale': '\w+' }
     methods:      ['GET','POST','put','OpTiOnS']
     schemes:      ['https']
-    condition:    'context.getMethod() == "GET"'
     options:
         compiler_class: RouteCompiler
 
@@ -14,6 +13,5 @@ blog_show_legacy:
     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/Symfony/Component/Routing/Tests/Generator/Dumper/PhpGeneratorDumperTest.php b/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Generator/Dumper/PhpGeneratorDumperTest.php
index 78e3907fd56bfcc8508035e529dc6b8c3f609884..ab5f4cdae0aabe19565d4aed64f11eaaf701f14c 100644
--- a/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Generator/Dumper/PhpGeneratorDumperTest.php
+++ b/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Generator/Dumper/PhpGeneratorDumperTest.php
@@ -114,37 +114,4 @@ public function testDumpForRouteWithDefaults()
 
         $this->assertEquals($url, '/testing');
     }
-
-    public function testDumpWithSchemeRequirement()
-    {
-        $this->routeCollection->add('Test1', new Route('/testing', array(), array(), array(), '', array('ftp', 'https')));
-        $this->routeCollection->add('Test2', new Route('/testing_bc', array(), array('_scheme' => 'https'))); // BC
-
-        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);
-        $absoluteUrlBC = $projectUrlGenerator->generate('Test2', array(), true);
-        $relativeUrl = $projectUrlGenerator->generate('Test1', array(), false);
-        $relativeUrlBC = $projectUrlGenerator->generate('Test2', array(), false);
-
-        $this->assertEquals($absoluteUrl, 'ftp://localhost/app.php/testing');
-        $this->assertEquals($absoluteUrlBC, 'https://localhost/app.php/testing_bc');
-        $this->assertEquals($relativeUrl, 'ftp://localhost/app.php/testing');
-        $this->assertEquals($relativeUrlBC, 'https://localhost/app.php/testing_bc');
-
-        $projectUrlGenerator = new \SchemeUrlGenerator(new RequestContext('/app.php', 'GET', 'localhost', 'https'));
-
-        $absoluteUrl = $projectUrlGenerator->generate('Test1', array(), true);
-        $absoluteUrlBC = $projectUrlGenerator->generate('Test2', array(), true);
-        $relativeUrl = $projectUrlGenerator->generate('Test1', array(), false);
-        $relativeUrlBC = $projectUrlGenerator->generate('Test2', array(), false);
-
-        $this->assertEquals($absoluteUrl, 'https://localhost/app.php/testing');
-        $this->assertEquals($absoluteUrlBC, 'https://localhost/app.php/testing_bc');
-        $this->assertEquals($relativeUrl, '/app.php/testing');
-        $this->assertEquals($relativeUrlBC, '/app.php/testing_bc');
-    }
 }
diff --git a/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Generator/UrlGeneratorTest.php b/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Generator/UrlGeneratorTest.php
index 143e3448a29c1e7eb544b10ee3cbf39c34e2eb4d..5f8ef491276c2d29c0f52b376c65ad86b604c331 100644
--- a/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Generator/UrlGeneratorTest.php
+++ b/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Generator/UrlGeneratorTest.php
@@ -207,6 +207,10 @@ public function testGenerateForRouteWithInvalidOptionalParameterNonStrict()
 
     public function testGenerateForRouteWithInvalidOptionalParameterNonStrictWithLogger()
     {
+        if (!interface_exists('Psr\Log\LoggerInterface')) {
+            $this->markTestSkipped('The "psr/log" package is not available');
+        }
+
         $routes = $this->getRoutes('test', new Route('/testing/{foo}', array('foo' => '1'), array('foo' => 'd+')));
         $logger = $this->getMock('Psr\Log\LoggerInterface');
         $logger->expects($this->once())
@@ -244,40 +248,22 @@ public function testRequiredParamAndEmptyPassed()
 
     public function testSchemeRequirementDoesNothingIfSameCurrentScheme()
     {
-        $routes = $this->getRoutes('test', new Route('/', array(), array('_scheme' => 'http'))); // BC
-        $this->assertEquals('/app.php/', $this->getGenerator($routes)->generate('test'));
-
-        $routes = $this->getRoutes('test', new Route('/', array(), array('_scheme' => 'https'))); // BC
-        $this->assertEquals('/app.php/', $this->getGenerator($routes, array('scheme' => 'https'))->generate('test'));
-
-        $routes = $this->getRoutes('test', new Route('/', array(), array(), array(), '', array('http')));
+        $routes = $this->getRoutes('test', new Route('/', array(), array('_scheme' => 'http')));
         $this->assertEquals('/app.php/', $this->getGenerator($routes)->generate('test'));
 
-        $routes = $this->getRoutes('test', new Route('/', array(), array(), array(), '', array('https')));
+        $routes = $this->getRoutes('test', new Route('/', array(), array('_scheme' => 'https')));
         $this->assertEquals('/app.php/', $this->getGenerator($routes, array('scheme' => 'https'))->generate('test'));
     }
 
     public function testSchemeRequirementForcesAbsoluteUrl()
     {
-        $routes = $this->getRoutes('test', new Route('/', array(), array('_scheme' => 'https'))); // BC
-        $this->assertEquals('https://localhost/app.php/', $this->getGenerator($routes)->generate('test'));
-
-        $routes = $this->getRoutes('test', new Route('/', array(), array('_scheme' => 'http'))); // BC
-        $this->assertEquals('http://localhost/app.php/', $this->getGenerator($routes, array('scheme' => 'https'))->generate('test'));
-
-        $routes = $this->getRoutes('test', new Route('/', array(), array(), array(), '', array('https')));
+        $routes = $this->getRoutes('test', new Route('/', array(), array('_scheme' => 'https')));
         $this->assertEquals('https://localhost/app.php/', $this->getGenerator($routes)->generate('test'));
 
-        $routes = $this->getRoutes('test', new Route('/', array(), array(), array(), '', array('http')));
+        $routes = $this->getRoutes('test', new Route('/', array(), array('_scheme' => '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'));
@@ -461,27 +447,9 @@ public function testUrlWithInvalidParameterInHostInNonStrictMode()
         $this->assertNull($generator->generate('test', array('foo' => 'baz'), false));
     }
 
-    public function testGenerateNetworkPathBC()
-    {
-        $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')));
+        $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'
@@ -503,8 +471,7 @@ public function testGenerateRelativePath()
         $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('schemeBC', new Route('/{author}', array(), array('_scheme' => 'https'))); // BC
-        $routes->add('scheme', new Route('/{author}/blog', array(), array(), array(), '', array('https')));
+        $routes->add('scheme', new Route('/{author}', array(), array('_scheme' => 'https')));
         $routes->add('unrelated', new Route('/about'));
 
         $generator = $this->getGenerator($routes, array('host' => 'example.com', 'pathInfo' => '/fabien/symfony-is-great/'));
@@ -524,12 +491,9 @@ public function testGenerateRelativePath()
         $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', $generator->generate('schemeBC',
+        $this->assertSame('https://example.com/app.php/bernhard', $generator->generate('scheme',
             array('author' =>'bernhard'), 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)
         );
diff --git a/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Loader/AbstractAnnotationLoaderTest.php b/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Loader/AbstractAnnotationLoaderTest.php
index 288bf64ffaf78d07d6352adc84387ec24c57dcf4..c927ae4a85fee4ae21b79cdd2ddd114de01b5bbd 100644
--- a/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Loader/AbstractAnnotationLoaderTest.php
+++ b/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Loader/AbstractAnnotationLoaderTest.php
@@ -13,6 +13,13 @@
 
 abstract class AbstractAnnotationLoaderTest extends \PHPUnit_Framework_TestCase
 {
+    protected function setUp()
+    {
+        if (!class_exists('Doctrine\\Common\\Version')) {
+            $this->markTestSkipped('Doctrine is not available.');
+        }
+    }
+
     public function getReader()
     {
         return $this->getMockBuilder('Doctrine\Common\Annotations\Reader')
diff --git a/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Loader/AnnotationClassLoaderTest.php b/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Loader/AnnotationClassLoaderTest.php
index c60997902e0ef6f7d9f929e061f6037b21c21c8d..31c43f58c69b801df636d0891b95d8bb76a242d6 100644
--- a/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Loader/AnnotationClassLoaderTest.php
+++ b/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Loader/AnnotationClassLoaderTest.php
@@ -11,8 +11,6 @@
 
 namespace Symfony\Component\Routing\Tests\Loader;
 
-use Symfony\Component\Routing\Annotation\Route;
-
 class AnnotationClassLoaderTest extends AbstractAnnotationLoaderTest
 {
     protected $loader;
@@ -73,22 +71,12 @@ public function getLoadTests()
         return array(
             array(
                 'Symfony\Component\Routing\Tests\Fixtures\AnnotatedClasses\BarClass',
-                array('name' => 'route1'),
-                array('arg2' => 'defaultValue2', 'arg3' => 'defaultValue3')
-            ),
-            array(
-                'Symfony\Component\Routing\Tests\Fixtures\AnnotatedClasses\BarClass',
-                array('name' => 'route1', 'defaults' => array('arg2' => 'foo')),
-                array('arg2' => 'defaultValue2', 'arg3' => 'defaultValue3')
-            ),
-            array(
-                'Symfony\Component\Routing\Tests\Fixtures\AnnotatedClasses\BarClass',
-                array('name' => 'route1', 'defaults' => array('arg2' => 'foobar')),
+                array('name'=>'route1'),
                 array('arg2' => 'defaultValue2', 'arg3' =>'defaultValue3')
             ),
             array(
                 'Symfony\Component\Routing\Tests\Fixtures\AnnotatedClasses\BarClass',
-                array('name' => 'route1', 'defaults' => array('arg2' => 'foo'), 'condition' => 'context.getMethod() == "GET"'),
+                array('name'=>'route1', 'defaults' => array('arg2' => 'foo')),
                 array('arg2' => 'defaultValue2', 'arg3' =>'defaultValue3')
             ),
         );
@@ -107,7 +95,6 @@ public function testLoad($className, $routeDatas = array(), $methodArgs = array(
             'defaults'     => array(),
             'schemes'      => array(),
             'methods'      => array(),
-            'condition'    => null,
         ), $routeDatas);
 
         $this->reader
@@ -121,12 +108,12 @@ public function testLoad($className, $routeDatas = array(), $methodArgs = array(
         $this->assertSame($routeDatas['path'], $route->getPath(), '->load preserves path annotation');
         $this->assertSame($routeDatas['requirements'],$route->getRequirements(), '->load preserves requirements annotation');
         $this->assertCount(0, array_intersect($route->getOptions(), $routeDatas['options']), '->load preserves options annotation');
-        $this->assertSame(array_replace($methodArgs, $routeDatas['defaults']), $route->getDefaults(), '->load preserves defaults annotation');
-        $this->assertEquals($routeDatas['condition'], $route->getCondition(), '->load preserves condition annotation');
+        $this->assertSame(array_replace($routeDatas['defaults'], $methodArgs), $route->getDefaults(), '->load preserves defaults annotation');
     }
 
     private function getAnnotatedRoute($datas)
     {
-        return new Route($datas);
+        return new \Symfony\Component\Routing\Annotation\Route($datas);
     }
+
 }
diff --git a/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Loader/ClosureLoaderTest.php b/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Loader/ClosureLoaderTest.php
index d34fa87ec533112b036722e3e3bc96b35e58e7bb..64d1b086ef692a49fcee25ed09149ea3d5954cef 100644
--- a/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Loader/ClosureLoaderTest.php
+++ b/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Loader/ClosureLoaderTest.php
@@ -17,6 +17,13 @@
 
 class ClosureLoaderTest extends \PHPUnit_Framework_TestCase
 {
+    protected function setUp()
+    {
+        if (!class_exists('Symfony\Component\Config\FileLocator')) {
+            $this->markTestSkipped('The "Config" component is not available');
+        }
+    }
+
     public function testSupports()
     {
         $loader = new ClosureLoader();
diff --git a/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Loader/PhpFileLoaderTest.php b/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Loader/PhpFileLoaderTest.php
index bf76d3465b9aee290a11238bb08d0959db2060b5..18b166fc558cb549989a5609a1e8c1e863791803 100644
--- a/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Loader/PhpFileLoaderTest.php
+++ b/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Loader/PhpFileLoaderTest.php
@@ -16,6 +16,13 @@
 
 class PhpFileLoaderTest extends \PHPUnit_Framework_TestCase
 {
+    protected function setUp()
+    {
+        if (!class_exists('Symfony\Component\Config\FileLocator')) {
+            $this->markTestSkipped('The "Config" component is not available');
+        }
+    }
+
     public function testSupports()
     {
         $loader = new PhpFileLoader($this->getMock('Symfony\Component\Config\FileLocator'));
diff --git a/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Loader/XmlFileLoaderTest.php b/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Loader/XmlFileLoaderTest.php
index c38adbd93838f3c5bb1cccc955e72eba16684ab2..9f038c1611a7c74152f8edd1f3d0295f807b88e1 100644
--- a/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Loader/XmlFileLoaderTest.php
+++ b/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Loader/XmlFileLoaderTest.php
@@ -17,6 +17,13 @@
 
 class XmlFileLoaderTest extends \PHPUnit_Framework_TestCase
 {
+    protected function setUp()
+    {
+        if (!class_exists('Symfony\Component\Config\FileLocator')) {
+            $this->markTestSkipped('The "Config" component is not available');
+        }
+    }
+
     public function testSupports()
     {
         $loader = new XmlFileLoader($this->getMock('Symfony\Component\Config\FileLocator'));
@@ -45,7 +52,6 @@ public function testLoadWithRoute()
             $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());
         }
     }
 
diff --git a/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Loader/YamlFileLoaderTest.php b/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Loader/YamlFileLoaderTest.php
index f0301062055e8b1f150e500b252d0bd8ea201fa3..a3e934cef02bf61b91e02328f6597bcbf08f3ba0 100644
--- a/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Loader/YamlFileLoaderTest.php
+++ b/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Loader/YamlFileLoaderTest.php
@@ -17,6 +17,17 @@
 
 class YamlFileLoaderTest extends \PHPUnit_Framework_TestCase
 {
+    protected function setUp()
+    {
+        if (!class_exists('Symfony\Component\Config\FileLocator')) {
+            $this->markTestSkipped('The "Config" component is not available');
+        }
+
+        if (!class_exists('Symfony\Component\Yaml\Yaml')) {
+            $this->markTestSkipped('The "Yaml" component is not available');
+        }
+    }
+
     public function testSupports()
     {
         $loader = new YamlFileLoader($this->getMock('Symfony\Component\Config\FileLocator'));
@@ -79,7 +90,6 @@ public function testLoadWithRoute()
             $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());
         }
     }
 
diff --git a/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Matcher/Dumper/DumperCollectionTest.php b/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Matcher/Dumper/DumperCollectionTest.php
index 7b6001c1f6d95970588cd26492222629c329b7bd..54b377272d25e46e676dbe305b6317652bcb983b 100644
--- a/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Matcher/Dumper/DumperCollectionTest.php
+++ b/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Matcher/Dumper/DumperCollectionTest.php
@@ -9,7 +9,7 @@
  * file that was distributed with this source code.
  */
 
-namespace Symfony\Component\Routing\Tests\Matcher\Dumper;
+namespace Symfony\Component\Routing\Test\Matcher\Dumper;
 
 use Symfony\Component\Routing\Matcher\Dumper\DumperCollection;
 
diff --git a/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Matcher/Dumper/DumperPrefixCollectionTest.php b/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Matcher/Dumper/DumperPrefixCollectionTest.php
index de01a75d0b1b1b4199ccbcd9876538101147bf00..7b4565c40375d839229376ebb10691fef36063ef 100644
--- a/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Matcher/Dumper/DumperPrefixCollectionTest.php
+++ b/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Matcher/Dumper/DumperPrefixCollectionTest.php
@@ -20,7 +20,7 @@ class DumperPrefixCollectionTest extends \PHPUnit_Framework_TestCase
 {
     public function testAddPrefixRoute()
     {
-        $coll = new DumperPrefixCollection();
+        $coll = new DumperPrefixCollection;
         $coll->setPrefix('');
 
         $route = new DumperRoute('bar', new Route('/foo/bar'));
@@ -66,7 +66,7 @@ public function testAddPrefixRoute()
 
     public function testMergeSlashNodes()
     {
-        $coll = new DumperPrefixCollection();
+        $coll = new DumperPrefixCollection;
         $coll->setPrefix('');
 
         $route = new DumperRoute('bar', new Route('/foo/bar'));
diff --git a/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Matcher/Dumper/PhpMatcherDumperTest.php b/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Matcher/Dumper/PhpMatcherDumperTest.php
index 473af6aa5cea39791d799f9fadec3df0a4855e09..542ede85c0017e33c5eb608bc6ad0a28c6efc564 100644
--- a/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Matcher/Dumper/PhpMatcherDumperTest.php
+++ b/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Matcher/Dumper/PhpMatcherDumperTest.php
@@ -251,9 +251,6 @@ public function getRouteCollections()
         $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()),
diff --git a/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Matcher/RedirectableUrlMatcherTest.php b/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Matcher/RedirectableUrlMatcherTest.php
index 5cbb605479117f15365da6da61efba7f97a30e38..2ad4fc8725a823f6ee4effbf1e996673f86d9b60 100644
--- a/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Matcher/RedirectableUrlMatcherTest.php
+++ b/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Matcher/RedirectableUrlMatcherTest.php
@@ -41,7 +41,7 @@ public function testRedirectWhenNoSlashForNonSafeMethod()
         $matcher->match('/foo');
     }
 
-    public function testSchemeRedirectBC()
+    public function testSchemeRedirect()
     {
         $coll = new RouteCollection();
         $coll->add('foo', new Route('/foo', array(), array('_scheme' => 'https')));
@@ -55,32 +55,4 @@ public function testSchemeRedirectBC()
         ;
         $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/Symfony/Component/Routing/Tests/Matcher/TraceableUrlMatcherTest.php b/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Matcher/TraceableUrlMatcherTest.php
index 969ab0a2f0d0037c9c6e694728afd37e74b6b523..86d8d954c008e28b9fe6b3911771401d5517f9fe 100644
--- a/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Matcher/TraceableUrlMatcherTest.php
+++ b/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Matcher/TraceableUrlMatcherTest.php
@@ -26,14 +26,13 @@ public function test()
         $coll->add('bar1', new Route('/bar/{name}', array(), array('id' => '\w+', '_method' => '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->assertEquals(array(0, 0, 0, 0, 0, 0), $this->getLevels($traces));
+        $this->assertEquals(array(0, 0, 0, 0, 0), $this->getLevels($traces));
 
         $traces = $matcher->getTraces('/foo');
         $this->assertEquals(array(1, 0, 0, 2), $this->getLevels($traces));
@@ -42,7 +41,7 @@ public function test()
         $this->assertEquals(array(0, 2), $this->getLevels($traces));
 
         $traces = $matcher->getTraces('/bar/dd');
-        $this->assertEquals(array(0, 1, 1, 0, 0, 0), $this->getLevels($traces));
+        $this->assertEquals(array(0, 1, 1, 0, 0), $this->getLevels($traces));
 
         $traces = $matcher->getTraces('/foo1');
         $this->assertEquals(array(0, 0, 0, 0, 2), $this->getLevels($traces));
@@ -53,40 +52,6 @@ public function test()
 
         $traces = $matcher->getTraces('/bar/dd');
         $this->assertEquals(array(0, 1, 2), $this->getLevels($traces));
-
-        $traces = $matcher->getTraces('/foo2');
-        $this->assertEquals(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->assertEquals(
-            array(TraceableUrlMatcher::ROUTE_ALMOST_MATCHES, TraceableUrlMatcher::ROUTE_ALMOST_MATCHES),
-            $this->getLevels($traces)
-        );
     }
 
     public function getLevels($traces)
diff --git a/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Matcher/UrlMatcherTest.php b/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Matcher/UrlMatcherTest.php
index b03b0c3aa077a3f8f4b4b9d162b6de6358004bb2..8a1428f170859f1581b43b7d7276e31a906e3d00 100644
--- a/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Matcher/UrlMatcherTest.php
+++ b/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Matcher/UrlMatcherTest.php
@@ -310,36 +310,13 @@ public function testDefaultRequirementOfVariableDisallowsNextSeparator()
         $matcher->match('/do.t.html');
     }
 
-    /**
-     * @expectedException \Symfony\Component\Routing\Exception\ResourceNotFoundException
-     */
-    public function testSchemeRequirementBC()
-    {
-        $coll = new RouteCollection();
-        $coll->add('foo', new Route('/foo', array(), array('_scheme' => 'https')));
-        $matcher = new UrlMatcher($coll, new RequestContext());
-        $matcher->match('/foo');
-    }
     /**
      * @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);
+        $coll->add('foo', new Route('/foo', array(), array('_scheme' => 'https')));
         $matcher = new UrlMatcher($coll, new RequestContext());
         $matcher->match('/foo');
     }
diff --git a/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/RequestContextTest.php b/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/RequestContextTest.php
deleted file mode 100644
index 21a299956f8e520b12a36bf695ac28d50d8c777a..0000000000000000000000000000000000000000
--- a/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/RequestContextTest.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;
-
-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'));
-    }
-}
diff --git a/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/RouteCollectionTest.php b/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/RouteCollectionTest.php
index 4c12ed56df3ea17fc82b9b1cfe2f8afe14a50c60..3d78adf9232b6576c842bcfa3b5955fc4e024a74 100644
--- a/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/RouteCollectionTest.php
+++ b/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/RouteCollectionTest.php
@@ -103,6 +103,10 @@ public function testAddCollection()
 
     public function testAddCollectionWithResources()
     {
+        if (!class_exists('Symfony\Component\Config\Resource\FileResource')) {
+            $this->markTestSkipped('The "Config" component is not available');
+        }
+
         $collection = new RouteCollection();
         $collection->addResource($foo = new FileResource(__DIR__.'/Fixtures/foo.xml'));
         $collection1 = new RouteCollection();
@@ -174,6 +178,10 @@ public function testAddPrefixOverridesDefaultsAndRequirements()
 
     public function testResource()
     {
+        if (!class_exists('Symfony\Component\Config\Resource\FileResource')) {
+            $this->markTestSkipped('The "Config" component is not available');
+        }
+
         $collection = new RouteCollection();
         $collection->addResource($foo = new FileResource(__DIR__.'/Fixtures/foo.xml'));
         $collection->addResource($bar = new FileResource(__DIR__.'/Fixtures/bar.xml'));
@@ -244,61 +252,4 @@ public function testSetHost()
         $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/Symfony/Component/Routing/Tests/RouteTest.php b/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/RouteTest.php
index cbd5ccb43b3f785feecfbeebd685f50ab783a63b..31f1066feda1e7d57403b82029f519ed0df05169 100644
--- a/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/RouteTest.php
+++ b/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/RouteTest.php
@@ -24,10 +24,9 @@ public function testConstructor()
         $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"');
+        $route = new Route('/', array(), array(), array(), '', array('Https'), array('POST', 'put'));
         $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');
@@ -45,7 +44,7 @@ public function testPath()
         $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');
+        $this->assertEquals('/path', $route->getPath(), '->setPath() does not allow two slahes "//" 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()
@@ -63,15 +62,6 @@ public function testOptions()
         $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}');
@@ -84,7 +74,7 @@ public function testDefaults()
 
         $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');
+        $this->assertNull($route->getDefault('not_defined'), '->getDefault() return null if default value is not setted');
 
         $route->setDefault('_controller', $closure = function () { return 'Hello'; });
         $this->assertEquals($closure, $route->getDefault('_controller'), '->setDefault() sets a default value');
@@ -115,10 +105,8 @@ public function testRequirements()
     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');
     }
 
     /**
@@ -153,15 +141,10 @@ 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'));
     }
 
     public function testSchemeIsBC()
@@ -170,9 +153,6 @@ public function testSchemeIsBC()
         $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());
@@ -201,14 +181,6 @@ public function testMethodIsBC()
         $this->assertNull($route->getRequirement('_method'));
     }
 
-    public function testCondition()
-    {
-        $route = new Route('/');
-        $this->assertEquals(null, $route->getCondition());
-        $route->setCondition('context.getMethod() == "GET"');
-        $this->assertEquals('context.getMethod() == "GET"', $route->getCondition());
-    }
-
     public function testCompile()
     {
         $route = new Route('/{foo}');
@@ -217,24 +189,4 @@ public function testCompile()
         $route->setRequirement('foo', '.*');
         $this->assertNotSame($compiled, $route->compile(), '->compile() recompiles if the route was modified');
     }
-
-    public function testPattern()
-    {
-        $route = new Route('/{foo}');
-        $this->assertEquals('/{foo}', $route->getPattern());
-
-        $route->setPattern('/bar');
-        $this->assertEquals('/bar', $route->getPattern());
-    }
-
-    public function testSerialize()
-    {
-        $route = new Route('/{foo}', array('foo' => 'default'), array('foo' => '\d+'));
-
-        $serialized = serialize($route);
-        $unserialized = unserialize($serialized);
-
-        $this->assertEquals($route, $unserialized);
-        $this->assertNotSame($route, $unserialized);
-    }
 }
diff --git a/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/RouterTest.php b/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/RouterTest.php
index 42a344c74a73b353a7a9a1e3d1b8a2fcdef9b93a..a3c336e5b775e6978d5990d485df9789ced8689b 100644
--- a/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/RouterTest.php
+++ b/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/RouterTest.php
@@ -12,7 +12,6 @@
 namespace Symfony\Component\Routing\Tests;
 
 use Symfony\Component\Routing\Router;
-use Symfony\Component\HttpFoundation\Request;
 
 class RouterTest extends \PHPUnit_Framework_TestCase
 {
@@ -136,28 +135,4 @@ public function provideGeneratorOptionsPreventingCaching()
             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/Symfony/Component/Routing/composer.json b/core/vendor/symfony/routing/Symfony/Component/Routing/composer.json
index 3517b23624045b9fecf30a6a986924d58af8ce5d..9a737c6b0287b736f85f2ff5af4ad19942460e5a 100644
--- a/core/vendor/symfony/routing/Symfony/Component/Routing/composer.json
+++ b/core/vendor/symfony/routing/Symfony/Component/Routing/composer.json
@@ -2,7 +2,7 @@
     "name": "symfony/routing",
     "type": "library",
     "description": "Symfony Routing Component",
-    "keywords": ["routing", "router", "URL", "URI"],
+    "keywords": [],
     "homepage": "http://symfony.com",
     "license": "MIT",
     "authors": [
@@ -21,15 +21,13 @@
     "require-dev": {
         "symfony/config": "~2.2",
         "symfony/yaml": "~2.0",
-        "symfony/expression-language": "~2.4",
-        "doctrine/annotations": "~1.0",
+        "doctrine/common": "~2.2",
         "psr/log": "~1.0"
     },
     "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"
+        "symfony/config": "",
+        "symfony/yaml": "",
+        "doctrine/common": ""
     },
     "autoload": {
         "psr-0": { "Symfony\\Component\\Routing\\": "" }
@@ -38,7 +36,7 @@
     "minimum-stability": "dev",
     "extra": {
         "branch-alias": {
-            "dev-master": "2.4-dev"
+            "dev-master": "2.3-dev"
         }
     }
 }
diff --git a/core/vendor/symfony/serializer/Symfony/Component/Serializer/CHANGELOG.md b/core/vendor/symfony/serializer/Symfony/Component/Serializer/CHANGELOG.md
index 5b859623fef09e891f4dd2bd8ca84e363f89f2ef..5a332da390bb5b0c370edbd9c0ba7bdb72eb77d1 100644
--- a/core/vendor/symfony/serializer/Symfony/Component/Serializer/CHANGELOG.md
+++ b/core/vendor/symfony/serializer/Symfony/Component/Serializer/CHANGELOG.md
@@ -1,11 +1,6 @@
 CHANGELOG
 =========
 
-2.4.0
------
-
- * added `$context` support for XMLEncoder.
-
 2.3.0
 -----
 
diff --git a/core/vendor/symfony/serializer/Symfony/Component/Serializer/Encoder/ChainDecoder.php b/core/vendor/symfony/serializer/Symfony/Component/Serializer/Encoder/ChainDecoder.php
index 5321a234057ecabb33cd7847927f6c5e23790461..6ece3b2205b9cae65df49dac4a94ea3938661174 100644
--- a/core/vendor/symfony/serializer/Symfony/Component/Serializer/Encoder/ChainDecoder.php
+++ b/core/vendor/symfony/serializer/Symfony/Component/Serializer/Encoder/ChainDecoder.php
@@ -11,6 +11,7 @@
 
 namespace Symfony\Component\Serializer\Encoder;
 
+use Symfony\Component\Serializer\Encoder\DecoderInterface;
 use Symfony\Component\Serializer\Exception\RuntimeException;
 
 /**
diff --git a/core/vendor/symfony/serializer/Symfony/Component/Serializer/Encoder/ChainEncoder.php b/core/vendor/symfony/serializer/Symfony/Component/Serializer/Encoder/ChainEncoder.php
index 088420b11820c5ab0d998f548a2667eed794503d..bd10a2ad412a265a4b370f892927773ce6f6f4a4 100644
--- a/core/vendor/symfony/serializer/Symfony/Component/Serializer/Encoder/ChainEncoder.php
+++ b/core/vendor/symfony/serializer/Symfony/Component/Serializer/Encoder/ChainEncoder.php
@@ -11,6 +11,8 @@
 
 namespace Symfony\Component\Serializer\Encoder;
 
+use Symfony\Component\Serializer\Encoder\EncoderInterface;
+use Symfony\Component\Serializer\Encoder\NormalizationAwareInterface;
 use Symfony\Component\Serializer\Exception\RuntimeException;
 
 /**
diff --git a/core/vendor/symfony/serializer/Symfony/Component/Serializer/Encoder/JsonDecode.php b/core/vendor/symfony/serializer/Symfony/Component/Serializer/Encoder/JsonDecode.php
index f8dfab35a889422dac0c8bffab457ba25879bb2b..d616286aef40c3c55ec11694d0420273838b80c1 100644
--- a/core/vendor/symfony/serializer/Symfony/Component/Serializer/Encoder/JsonDecode.php
+++ b/core/vendor/symfony/serializer/Symfony/Component/Serializer/Encoder/JsonDecode.php
@@ -70,7 +70,7 @@ public function getLastError()
      *
      * json_decode_associative: boolean
      *      If true, returns the object as associative array.
-     *      If false, returns the object as nested stdClass
+     *      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
diff --git a/core/vendor/symfony/serializer/Symfony/Component/Serializer/Encoder/JsonEncoder.php b/core/vendor/symfony/serializer/Symfony/Component/Serializer/Encoder/JsonEncoder.php
index 95dae7c8c6674efdc1aeffcfd0d28302ded10888..02b179bc91a66a904dbc18a372e42505a883fcbf 100644
--- a/core/vendor/symfony/serializer/Symfony/Component/Serializer/Encoder/JsonEncoder.php
+++ b/core/vendor/symfony/serializer/Symfony/Component/Serializer/Encoder/JsonEncoder.php
@@ -32,8 +32,8 @@ class JsonEncoder implements EncoderInterface, DecoderInterface
 
     public function __construct(JsonEncode $encodingImpl = null, JsonDecode $decodingImpl = null)
     {
-        $this->encodingImpl = $encodingImpl ?: new JsonEncode();
-        $this->decodingImpl = $decodingImpl ?: new JsonDecode(true);
+        $this->encodingImpl = null === $encodingImpl ? new JsonEncode() : $encodingImpl;
+        $this->decodingImpl = null === $decodingImpl ? new JsonDecode(true) : $decodingImpl;
     }
 
     /**
diff --git a/core/vendor/symfony/serializer/Symfony/Component/Serializer/Encoder/XmlEncoder.php b/core/vendor/symfony/serializer/Symfony/Component/Serializer/Encoder/XmlEncoder.php
index 9cd2417b468b231a8ebff70f98d0d63f653a0eb4..137f2fc3272d49b27ff9893983685d287add8ca1 100644
--- a/core/vendor/symfony/serializer/Symfony/Component/Serializer/Encoder/XmlEncoder.php
+++ b/core/vendor/symfony/serializer/Symfony/Component/Serializer/Encoder/XmlEncoder.php
@@ -24,7 +24,6 @@ class XmlEncoder extends SerializerAwareEncoder implements EncoderInterface, Dec
 {
     private $dom;
     private $format;
-    private $context;
     private $rootNodeName = 'response';
 
     /**
@@ -48,9 +47,8 @@ public function encode($data, $format, array $context = array())
 
         $xmlRootNodeName = $this->resolveXmlRootName($context);
 
-        $this->dom = $this->createDomDocument($context);
+        $this->dom = new \DOMDocument();
         $this->format = $format;
-        $this->context = $context;
 
         if (null !== $data && !is_scalar($data)) {
             $root = $this->dom->createElement($xmlRootNodeName);
@@ -78,10 +76,6 @@ public function decode($data, $format, array $context = array())
         libxml_use_internal_errors($internalErrors);
         libxml_disable_entity_loader($disableEntities);
 
-        if ($error = libxml_get_last_error()) {
-            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.');
@@ -111,16 +105,24 @@ public function decode($data, $format, array $context = array())
     }
 
     /**
-     * {@inheritdoc}
-     */
+      * Checks whether the serializer can encode to given format
+      *
+      * @param string $format format name
+      *
+      * @return Boolean
+      */
      public function supportsEncoding($format)
      {
          return 'xml' === $format;
      }
 
      /**
-     * {@inheritdoc}
-     */
+      * Checks whether the serializer can decode from given format
+      *
+      * @param string $format format name
+      *
+      * @return Boolean
+      */
      public function supportsDecoding($format)
      {
          return 'xml' === $format;
@@ -146,12 +148,12 @@ public function getRootNodeName()
     }
 
     /**
-     * @param \DOMNode $node
-     * @param string   $val
+     * @param DOMNode $node
+     * @param string  $val
      *
      * @return Boolean
      */
-    final protected function appendXMLString(\DOMNode $node, $val)
+    final protected function appendXMLString($node, $val)
     {
         if (strlen($val) > 0) {
             $frag = $this->dom->createDocumentFragment();
@@ -165,12 +167,12 @@ final protected function appendXMLString(\DOMNode $node, $val)
     }
 
     /**
-     * @param \DOMNode $node
-     * @param string   $val
+     * @param DOMNode $node
+     * @param string  $val
      *
      * @return Boolean
      */
-    final protected function appendText(\DOMNode $node, $val)
+    final protected function appendText($node, $val)
     {
         $nodeText = $this->dom->createTextNode($val);
         $node->appendChild($nodeText);
@@ -179,12 +181,12 @@ final protected function appendText(\DOMNode $node, $val)
     }
 
     /**
-     * @param \DOMNode $node
-     * @param string   $val
+     * @param DOMNode $node
+     * @param string  $val
      *
      * @return Boolean
      */
-    final protected function appendCData(\DOMNode $node, $val)
+    final protected function appendCData($node, $val)
     {
         $nodeText = $this->dom->createCDATASection($val);
         $node->appendChild($nodeText);
@@ -193,12 +195,12 @@ final protected function appendCData(\DOMNode $node, $val)
     }
 
     /**
-     * @param \DOMNode             $node
-     * @param \DOMDocumentFragment $fragment
+     * @param DOMNode             $node
+     * @param DOMDocumentFragment $fragment
      *
      * @return Boolean
      */
-    final protected function appendDocumentFragment(\DOMNode $node, $fragment)
+    final protected function appendDocumentFragment($node, $fragment)
     {
         if ($fragment instanceof \DOMDocumentFragment) {
             $node->appendChild($fragment);
@@ -226,11 +228,11 @@ final protected function isElementNameValid($name)
     /**
      * Parse the input SimpleXmlElement into an array.
      *
-     * @param \SimpleXmlElement $node xml to parse
+     * @param SimpleXmlElement $node xml to parse
      *
      * @return array
      */
-    private function parseXml(\SimpleXmlElement $node)
+    private function parseXml($node)
     {
         $data = array();
         if ($node->attributes()) {
@@ -254,9 +256,9 @@ private function parseXml(\SimpleXmlElement $node)
             if ($key === 'item') {
                 if (isset($value['@key'])) {
                     if (isset($value['#'])) {
-                        $data[$value['@key']] = $value['#'];
+                        $data[(string) $value['@key']] = $value['#'];
                     } else {
-                        $data[$value['@key']] = $value;
+                        $data[(string) $value['@key']] = $value;
                     }
                 } else {
                     $data['item'][] = $value;
@@ -277,15 +279,15 @@ private function parseXml(\SimpleXmlElement $node)
     /**
      * Parse the data and convert it to DOMElements
      *
-     * @param \DOMNode     $parentNode
-     * @param array|object $data
-     * @param string|null  $xmlRootNodeName
+     * @param DOMNode      $parentNode
+     * @param array|object $data       data
+     * @param string       $xmlRootNodeName
      *
      * @return Boolean
      *
      * @throws UnexpectedValueException
      */
-    private function buildXml(\DOMNode $parentNode, $data, $xmlRootNodeName = null)
+    private function buildXml($parentNode, $data, $xmlRootNodeName = null)
     {
         $append = true;
 
@@ -323,7 +325,7 @@ private function buildXml(\DOMNode $parentNode, $data, $xmlRootNodeName = null)
         }
 
         if (is_object($data)) {
-            $data = $this->serializer->normalize($data, $this->format, $this->context);
+            $data = $this->serializer->normalize($data, $this->format);
             if (null !== $data && !is_scalar($data)) {
                 return $this->buildXml($parentNode, $data, $xmlRootNodeName);
             }
@@ -345,14 +347,14 @@ private function buildXml(\DOMNode $parentNode, $data, $xmlRootNodeName = null)
     /**
      * Selects the type of node to create and appends it to the parent.
      *
-     * @param \DOMNode     $parentNode
+     * @param DOMNode      $parentNode
      * @param array|object $data
      * @param string       $nodeName
      * @param string       $key
      *
      * @return Boolean
      */
-    private function appendNode(\DOMNode $parentNode, $data, $nodeName, $key = null)
+    private function appendNode($parentNode, $data, $nodeName, $key = null)
     {
         $node = $this->dom->createElement($nodeName);
         if (null !== $key) {
@@ -382,12 +384,12 @@ private function needsCdataWrapping($val)
     /**
      * Tests the value being passed and decide what sort of element to create
      *
-     * @param \DOMNode $node
-     * @param mixed    $val
+     * @param DOMNode $node
+     * @param mixed   $val
      *
      * @return Boolean
      */
-    private function selectNodeType(\DOMNode $node, $val)
+    private function selectNodeType($node, $val)
     {
         if (is_array($val)) {
             return $this->buildXml($node, $val);
@@ -397,7 +399,7 @@ private function selectNodeType(\DOMNode $node, $val)
         } elseif ($val instanceof \Traversable) {
             $this->buildXml($node, $val);
         } elseif (is_object($val)) {
-            return $this->buildXml($node, $this->serializer->normalize($val, $this->format, $this->context));
+            return $this->buildXml($node, $this->serializer->normalize($val, $this->format));
         } elseif (is_numeric($val)) {
             return $this->appendText($node, (string) $val);
         } elseif (is_string($val) && $this->needsCdataWrapping($val)) {
@@ -424,32 +426,4 @@ private function resolveXmlRootName(array $context = array())
             : $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(
-            // 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/Symfony/Component/Serializer/Normalizer/GetSetMethodNormalizer.php b/core/vendor/symfony/serializer/Symfony/Component/Serializer/Normalizer/GetSetMethodNormalizer.php
index 1b1a5f56887491e9e374604587bc4c3bb14f21f9..54854c6cf499e2f6f6ead368a18d9a936c795c36 100644
--- a/core/vendor/symfony/serializer/Symfony/Component/Serializer/Normalizer/GetSetMethodNormalizer.php
+++ b/core/vendor/symfony/serializer/Symfony/Component/Serializer/Normalizer/GetSetMethodNormalizer.php
@@ -41,9 +41,9 @@ class GetSetMethodNormalizer extends SerializerAwareNormalizer implements Normal
     protected $camelizedAttributes = array();
 
     /**
-     * Set normalization callbacks.
+     * Set normalization callbacks
      *
-     * @param callable[] $callbacks help normalize the result
+     * @param array $callbacks help normalize the result
      *
      * @throws InvalidArgumentException if a non-callable callback is set
      */
diff --git a/core/vendor/symfony/serializer/Symfony/Component/Serializer/README.md b/core/vendor/symfony/serializer/Symfony/Component/Serializer/README.md
index 5a1606ca09c10899c8bfa8fc512465743eb3bb08..3e808059db4df7ada06b5550d3cccb6739f1142c 100644
--- a/core/vendor/symfony/serializer/Symfony/Component/Serializer/README.md
+++ b/core/vendor/symfony/serializer/Symfony/Component/Serializer/README.md
@@ -11,5 +11,5 @@ Resources
 You can run the unit tests with the following command:
 
     $ cd path/to/Symfony/Component/Serializer/
-    $ composer.phar install
+    $ composer.phar install --dev
     $ phpunit
diff --git a/core/vendor/symfony/serializer/Symfony/Component/Serializer/SerializerAwareInterface.php b/core/vendor/symfony/serializer/Symfony/Component/Serializer/SerializerAwareInterface.php
index ad0b768ccc8a2cdedf1c76358d78ffd9f1912e1b..dd0bb60d1aa84ea78028b70198bba1e5f3d837cb 100644
--- a/core/vendor/symfony/serializer/Symfony/Component/Serializer/SerializerAwareInterface.php
+++ b/core/vendor/symfony/serializer/Symfony/Component/Serializer/SerializerAwareInterface.php
@@ -11,6 +11,8 @@
 
 namespace Symfony\Component\Serializer;
 
+use Symfony\Component\Serializer\SerializerInterface;
+
 /**
  * Defines the interface of encoders
  *
diff --git a/core/vendor/symfony/serializer/Symfony/Component/Serializer/Tests/Encoder/JsonEncoderTest.php b/core/vendor/symfony/serializer/Symfony/Component/Serializer/Tests/Encoder/JsonEncoderTest.php
index 00714f23ba2a90eafcf1331ea384b9a12df3619b..b5ec1a2352235fbae6b45371db23e1a05f5ef9f5 100644
--- a/core/vendor/symfony/serializer/Symfony/Component/Serializer/Tests/Encoder/JsonEncoderTest.php
+++ b/core/vendor/symfony/serializer/Symfony/Component/Serializer/Tests/Encoder/JsonEncoderTest.php
@@ -19,7 +19,7 @@ class JsonEncoderTest extends \PHPUnit_Framework_TestCase
 {
     protected function setUp()
     {
-        $this->encoder = new JsonEncoder();
+        $this->encoder = new JsonEncoder;
         $this->serializer = new Serializer(array(new CustomNormalizer()), array('json' => new JsonEncoder()));
     }
 
diff --git a/core/vendor/symfony/serializer/Symfony/Component/Serializer/Tests/Encoder/XmlEncoderTest.php b/core/vendor/symfony/serializer/Symfony/Component/Serializer/Tests/Encoder/XmlEncoderTest.php
index 6ad2a6c2e2561f0573fa75db828cb333deb3d3b8..b23d4c79390977d29ece3017299e02f9369a8644 100644
--- a/core/vendor/symfony/serializer/Symfony/Component/Serializer/Tests/Encoder/XmlEncoderTest.php
+++ b/core/vendor/symfony/serializer/Symfony/Component/Serializer/Tests/Encoder/XmlEncoderTest.php
@@ -20,18 +20,16 @@
 
 class XmlEncoderTest extends \PHPUnit_Framework_TestCase
 {
-    private $encoder;
-
     protected function setUp()
     {
-        $this->encoder = new XmlEncoder();
+        $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 = new ScalarDummy;
         $obj->xmlFoo = "foo";
 
         $expected = '<?xml version="1.0"?>'."\n".
@@ -42,7 +40,7 @@ public function testEncodeScalar()
 
     public function testSetRootNodeName()
     {
-        $obj = new ScalarDummy();
+        $obj = new ScalarDummy;
         $obj->xmlFoo = "foo";
 
         $this->encoder->setRootNodeName('test');
@@ -53,7 +51,7 @@ public function testSetRootNodeName()
     }
 
     /**
-     * @expectedException        \Symfony\Component\Serializer\Exception\UnexpectedValueException
+     * @expectedException        UnexpectedValueException
      * @expectedExceptionMessage Document types are not allowed.
      */
     public function testDocTypeIsNotAllowed()
@@ -63,7 +61,7 @@ public function testDocTypeIsNotAllowed()
 
     public function testAttributes()
     {
-        $obj = new ScalarDummy();
+        $obj = new ScalarDummy;
         $obj->xmlFoo = array(
             'foo-bar' => array(
                 '@id' => 1,
@@ -92,7 +90,7 @@ public function testAttributes()
 
     public function testElementNameValid()
     {
-        $obj = new ScalarDummy();
+        $obj = new ScalarDummy;
         $obj->xmlFoo = array(
             'foo-bar' => 'a',
             'foo_bar' => 'a',
@@ -120,23 +118,6 @@ public function testEncodeSimpleXML()
         $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 testEncodeScalarRootAttributes()
     {
         $array = array(
@@ -206,7 +187,7 @@ public function testEncode()
     public function testEncodeSerializerXmlRootNodeNameOption()
     {
         $options = array('xml_root_node_name' => 'test');
-        $this->encoder = new XmlEncoder();
+        $this->encoder = new XmlEncoder;
         $serializer = new Serializer(array(), array('xml' => new XmlEncoder()));
         $this->encoder->setSerializer($serializer);
 
@@ -289,7 +270,7 @@ public function testDecodeArray()
 
     public function testDecodeWithoutItemHash()
     {
-        $obj = new ScalarDummy();
+        $obj = new ScalarDummy;
         $obj->xmlFoo = array(
             'foo-bar' => array(
                 '@key' => "value",
@@ -320,14 +301,6 @@ public function testDecodeWithoutItemHash()
         $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();
@@ -362,7 +335,7 @@ protected function getXmlSource()
 
     protected function getObject()
     {
-        $obj = new Dummy();
+        $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)));
diff --git a/core/vendor/symfony/serializer/Symfony/Component/Serializer/Tests/Normalizer/CustomNormalizerTest.php b/core/vendor/symfony/serializer/Symfony/Component/Serializer/Tests/Normalizer/CustomNormalizerTest.php
index eef163442edacba9e67806674b06b49fe5437851..7b4b4ae28d85f9620d4e7faef44c5dff138a41bf 100644
--- a/core/vendor/symfony/serializer/Symfony/Component/Serializer/Tests/Normalizer/CustomNormalizerTest.php
+++ b/core/vendor/symfony/serializer/Symfony/Component/Serializer/Tests/Normalizer/CustomNormalizerTest.php
@@ -19,13 +19,13 @@ class CustomNormalizerTest extends \PHPUnit_Framework_TestCase
 {
     protected function setUp()
     {
-        $this->normalizer = new CustomNormalizer();
-        $this->normalizer->setSerializer(new Serializer());
+        $this->normalizer = new CustomNormalizer;
+        $this->normalizer->setSerializer(new Serializer);
     }
 
     public function testSerialize()
     {
-        $obj = new ScalarDummy();
+        $obj = new ScalarDummy;
         $obj->foo = 'foo';
         $obj->xmlFoo = 'xml';
         $this->assertEquals('foo', $this->normalizer->normalize($obj, 'json'));
@@ -34,18 +34,18 @@ public function testSerialize()
 
     public function testDeserialize()
     {
-        $obj = $this->normalizer->denormalize('foo', get_class(new ScalarDummy()), 'xml');
+        $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');
+        $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->assertTrue($this->normalizer->supportsNormalization(new ScalarDummy));
         $this->assertFalse($this->normalizer->supportsNormalization(new \stdClass));
     }
 
diff --git a/core/vendor/symfony/serializer/Symfony/Component/Serializer/Tests/Normalizer/GetSetMethodNormalizerTest.php b/core/vendor/symfony/serializer/Symfony/Component/Serializer/Tests/Normalizer/GetSetMethodNormalizerTest.php
index f3bf9694d206c0e0d2a2e627d44b94f5e0d3002d..42846166e453b1b79ff4178506ae4983009f866c 100644
--- a/core/vendor/symfony/serializer/Symfony/Component/Serializer/Tests/Normalizer/GetSetMethodNormalizerTest.php
+++ b/core/vendor/symfony/serializer/Symfony/Component/Serializer/Tests/Normalizer/GetSetMethodNormalizerTest.php
@@ -17,13 +17,13 @@ class GetSetMethodNormalizerTest extends \PHPUnit_Framework_TestCase
 {
     protected function setUp()
     {
-        $this->normalizer = new GetSetMethodNormalizer();
+        $this->normalizer = new GetSetMethodNormalizer;
         $this->normalizer->setSerializer($this->getMock('Symfony\Component\Serializer\Serializer'));
     }
 
     public function testNormalize()
     {
-        $obj = new GetSetDummy();
+        $obj = new GetSetDummy;
         $obj->setFoo('foo');
         $obj->setBar('bar');
         $obj->setCamelCase('camelcase');
@@ -118,7 +118,7 @@ public function testIgnoredAttributes()
     {
         $this->normalizer->setIgnoredAttributes(array('foo', 'bar', 'camelCase'));
 
-        $obj = new GetSetDummy();
+        $obj = new GetSetDummy;
         $obj->setFoo('foo');
         $obj->setBar('bar');
 
diff --git a/core/vendor/symfony/serializer/Symfony/Component/Serializer/Tests/SerializerTest.php b/core/vendor/symfony/serializer/Symfony/Component/Serializer/Tests/SerializerTest.php
index 106bcff7adb59df082b4fff3195abe79c993822c..3c189461f28f1be22cdf266a5fe494bd75eab780 100644
--- a/core/vendor/symfony/serializer/Symfony/Component/Serializer/Tests/SerializerTest.php
+++ b/core/vendor/symfony/serializer/Symfony/Component/Serializer/Tests/SerializerTest.php
@@ -34,14 +34,14 @@ public function testNormalizeNoMatch()
     public function testNormalizeTraversable()
     {
         $this->serializer = new Serializer(array(), array('json' => new JsonEncoder()));
-        $result = $this->serializer->serialize(new TraversableDummy(), 'json');
+        $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->serializer = new Serializer(array(new CustomNormalizer), array('json' => new JsonEncoder()));
+        $result = $this->serializer->serialize(new NormalizableTraversableDummy, 'json');
         $this->assertEquals('{"foo":"normalizedFoo","bar":"normalizedBar"}', $result);
     }
 
diff --git a/core/vendor/symfony/serializer/Symfony/Component/Serializer/composer.json b/core/vendor/symfony/serializer/Symfony/Component/Serializer/composer.json
index 704356623c83027ff0bcb53e954bc3281fdf7b4d..ab537b295527010487de2dd5655d1222bceebc42 100644
--- a/core/vendor/symfony/serializer/Symfony/Component/Serializer/composer.json
+++ b/core/vendor/symfony/serializer/Symfony/Component/Serializer/composer.json
@@ -25,7 +25,7 @@
     "minimum-stability": "dev",
     "extra": {
         "branch-alias": {
-            "dev-master": "2.4-dev"
+            "dev-master": "2.3-dev"
         }
     }
 }
diff --git a/core/vendor/symfony/validator/Symfony/Component/Validator/CHANGELOG.md b/core/vendor/symfony/validator/Symfony/Component/Validator/CHANGELOG.md
index f5ae1ee39092a7ab1b4551005a7722ae98bb6445..7ab8051c1a92ba5bd559e5ec33f338a224d311f5 100644
--- a/core/vendor/symfony/validator/Symfony/Component/Validator/CHANGELOG.md
+++ b/core/vendor/symfony/validator/Symfony/Component/Validator/CHANGELOG.md
@@ -1,12 +1,6 @@
 CHANGELOG
 =========
 
-2.4.0
------
-
- * added a constraint the uses the expression language
- * added `minRatio`, `maxRatio`, `allowSquare`, `allowLandscape`, and `allowPortrait` to Image validator
-
 2.3.0
 -----
 
diff --git a/core/vendor/symfony/validator/Symfony/Component/Validator/Constraint.php b/core/vendor/symfony/validator/Symfony/Component/Validator/Constraint.php
index 2f3cbdda5ad009c5e1a4ceef5521d6f444410f24..6c568aacd4a76da170b394fecc290a88b6e1072b 100644
--- a/core/vendor/symfony/validator/Symfony/Component/Validator/Constraint.php
+++ b/core/vendor/symfony/validator/Symfony/Component/Validator/Constraint.php
@@ -87,9 +87,8 @@ public function __construct($options = null)
         $invalidOptions = array();
         $missingOptions = array_flip((array) $this->getRequiredOptions());
 
-        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) == 1 && isset($options['value'])) {
+            $options = $options['value'];
         }
 
         if (is_array($options) && count($options) > 0 && is_string(key($options))) {
diff --git a/core/vendor/symfony/validator/Symfony/Component/Validator/ConstraintValidatorFactory.php b/core/vendor/symfony/validator/Symfony/Component/Validator/ConstraintValidatorFactory.php
index 5cf36eccffc3ac02945238d8eee6805f0852d1bd..88b5cefdc2c7bf0cc5b5bccb64935217c5ba5b7b 100644
--- a/core/vendor/symfony/validator/Symfony/Component/Validator/ConstraintValidatorFactory.php
+++ b/core/vendor/symfony/validator/Symfony/Component/Validator/ConstraintValidatorFactory.php
@@ -11,33 +11,20 @@
 
 namespace Symfony\Component\Validator;
 
-use Symfony\Component\PropertyAccess\PropertyAccess;
-use Symfony\Component\PropertyAccess\PropertyAccessorInterface;
-use Symfony\Component\Validator\Constraints\ExpressionValidator;
+use Symfony\Component\Validator\ConstraintValidatorFactoryInterface;
+use Symfony\Component\Validator\Constraint;
 
 /**
  * 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
+ * Constrain 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();
 
-    /**
-     * @var PropertyAccessorInterface
-     */
-    private $propertyAccessor;
-
-    public function __construct(PropertyAccessorInterface $propertyAccessor = null)
-    {
-        $this->propertyAccessor = $propertyAccessor ?: PropertyAccess::createPropertyAccessor();
-    }
-
     /**
      * {@inheritDoc}
      */
@@ -45,19 +32,8 @@ public function getInstance(Constraint $constraint)
     {
         $className = $constraint->validatedBy();
 
-        // The second condition is a hack that is needed 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.
-        if (!isset($this->validators[$className]) || 'Symfony\Component\Validator\Constraints\CollectionValidator' === $className) {
-            $this->validators[$className] = 'validator.expression' === $className
-                ? new ExpressionValidator($this->propertyAccessor)
-                : new $className();
+        if (!isset($this->validators[$className]) || $className === 'Symfony\Component\Validator\Constraints\CollectionValidator') {
+            $this->validators[$className] = new $className();
         }
 
         return $this->validators[$className];
diff --git a/core/vendor/symfony/validator/Symfony/Component/Validator/ConstraintValidatorFactoryInterface.php b/core/vendor/symfony/validator/Symfony/Component/Validator/ConstraintValidatorFactoryInterface.php
index 5e216275b493382d0df0bb04d60625bbb26cdcce..584f980367c63f8377fffefbfcd09e2765c23c4a 100644
--- a/core/vendor/symfony/validator/Symfony/Component/Validator/ConstraintValidatorFactoryInterface.php
+++ b/core/vendor/symfony/validator/Symfony/Component/Validator/ConstraintValidatorFactoryInterface.php
@@ -11,9 +11,11 @@
 
 namespace Symfony\Component\Validator;
 
+use Symfony\Component\Validator\Constraint;
+
 /**
  * Specifies an object able to return the correct ConstraintValidatorInterface
- * instance given a Constraint object.
+ * instance given a Constrain object.
  */
 interface ConstraintValidatorFactoryInterface
 {
diff --git a/core/vendor/symfony/validator/Symfony/Component/Validator/Constraints/AbstractComparisonValidator.php b/core/vendor/symfony/validator/Symfony/Component/Validator/Constraints/AbstractComparisonValidator.php
index f6b919331fae7019dadf79bce936fa371062556a..6b76fc80b2a215a7018a7fd7b7d3c92411c38159 100644
--- a/core/vendor/symfony/validator/Symfony/Component/Validator/Constraints/AbstractComparisonValidator.php
+++ b/core/vendor/symfony/validator/Symfony/Component/Validator/Constraints/AbstractComparisonValidator.php
@@ -60,10 +60,6 @@ private function valueToType($value)
      */
     private function valueToString($value)
     {
-        if (is_object($value) && method_exists($value, '__toString')) {
-            return (string) $value;
-        }
-
         if ($value instanceof \DateTime) {
             return $value->format('Y-m-d H:i:s');
         }
diff --git a/core/vendor/symfony/validator/Symfony/Component/Validator/Constraints/Callback.php b/core/vendor/symfony/validator/Symfony/Component/Validator/Constraints/Callback.php
index 01aeb6ddb79828db593cf09433949214451029c7..e93efa4b9914578487e35b7d6a445628e34e1950 100644
--- a/core/vendor/symfony/validator/Symfony/Component/Validator/Constraints/Callback.php
+++ b/core/vendor/symfony/validator/Symfony/Component/Validator/Constraints/Callback.php
@@ -22,52 +22,26 @@
  */
 class Callback extends Constraint
 {
-    /**
-     * @var string|callable
-     *
-     * @since 2.4
-     */
-    public $callback;
-
-    /**
-     * @var array
-     *
-     * @deprecated Deprecated since version 2.4, to be removed in Symfony 3.0.
-     */
     public $methods;
 
     /**
-     * {@inheritdoc}
+     * {@inheritDoc}
      */
-    public function __construct($options = null)
+    public function getRequiredOptions()
     {
-        // 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['callback']) && !isset($options['methods']) && !isset($options['groups'])) {
-            if (is_callable($options)) {
-                $options = array('callback' => $options);
-            } else {
-                // BC with Symfony < 2.4
-                $options = array('methods' => $options);
-            }
-        }
-
-        parent::__construct($options);
+        return array('methods');
     }
 
     /**
-     * {@inheritdoc}
+     * {@inheritDoc}
      */
     public function getDefaultOption()
     {
-        return 'callback';
+        return 'methods';
     }
 
     /**
-     * {@inheritdoc}
+     * {@inheritDoc}
      */
     public function getTargets()
     {
diff --git a/core/vendor/symfony/validator/Symfony/Component/Validator/Constraints/CallbackValidator.php b/core/vendor/symfony/validator/Symfony/Component/Validator/Constraints/CallbackValidator.php
index 28b34250af6fccb5be862847846363b355eae9e3..ab3c56f98e2c950349f4d70a092d61426325dbae 100644
--- a/core/vendor/symfony/validator/Symfony/Component/Validator/Constraints/CallbackValidator.php
+++ b/core/vendor/symfony/validator/Symfony/Component/Validator/Constraints/CallbackValidator.php
@@ -34,20 +34,13 @@ public function validate($object, Constraint $constraint)
             return;
         }
 
-        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)) {
+        if (!is_array($constraint->methods)) {
             throw new UnexpectedTypeException($constraint->methods, 'array');
         }
 
-        $methods = $constraint->methods ?: array($constraint->callback);
+        $methods = $constraint->methods;
 
         foreach ($methods as $method) {
             if (is_array($method) || $method instanceof \Closure) {
@@ -61,13 +54,7 @@ public function validate($object, Constraint $constraint)
                     throw new ConstraintDefinitionException(sprintf('Method "%s" targeted by Callback constraint does not exist', $method));
                 }
 
-                $reflMethod = new \ReflectionMethod($object, $method);
-
-                if ($reflMethod->isStatic()) {
-                    $reflMethod->invoke(null, $object, $this->context);
-                } else {
-                    $reflMethod->invoke($object, $this->context);
-                }
+                $object->$method($this->context);
             }
         }
     }
diff --git a/core/vendor/symfony/validator/Symfony/Component/Validator/Constraints/Collection.php b/core/vendor/symfony/validator/Symfony/Component/Validator/Constraints/Collection.php
index 78fa5aee9dd5334d8529a36cc48ef5b0829aade7..d60f0c273d13b5a95e856973ac3655161580ed84 100644
--- a/core/vendor/symfony/validator/Symfony/Component/Validator/Constraints/Collection.php
+++ b/core/vendor/symfony/validator/Symfony/Component/Validator/Constraints/Collection.php
@@ -12,6 +12,8 @@
 namespace Symfony\Component\Validator\Constraints;
 
 use Symfony\Component\Validator\Constraint;
+use Symfony\Component\Validator\Constraints\Required;
+use Symfony\Component\Validator\Constraints\Optional;
 use Symfony\Component\Validator\Exception\ConstraintDefinitionException;
 
 /**
@@ -23,7 +25,7 @@
  */
 class Collection extends Constraint
 {
-    public $fields = array();
+    public $fields;
     public $allowExtraFields = false;
     public $allowMissingFields = false;
     public $extraFieldsMessage = 'This field was not expected.';
diff --git a/core/vendor/symfony/validator/Symfony/Component/Validator/Constraints/CollectionValidator.php b/core/vendor/symfony/validator/Symfony/Component/Validator/Constraints/CollectionValidator.php
index f273ac40b95e5c72d18a74ad9915613f183fbfed..f59afe79ee5f321d6afd7f1ec81b450be21a10dc 100644
--- a/core/vendor/symfony/validator/Symfony/Component/Validator/Constraints/CollectionValidator.php
+++ b/core/vendor/symfony/validator/Symfony/Component/Validator/Constraints/CollectionValidator.php
@@ -14,6 +14,7 @@
 use Symfony\Component\Validator\Constraint;
 use Symfony\Component\Validator\ConstraintValidator;
 use Symfony\Component\Validator\Exception\UnexpectedTypeException;
+use Symfony\Component\Validator\Constraints\Optional;
 
 /**
  * @author Bernhard Schussek <bschussek@gmail.com>
diff --git a/core/vendor/symfony/validator/Symfony/Component/Validator/Constraints/EmailValidator.php b/core/vendor/symfony/validator/Symfony/Component/Validator/Constraints/EmailValidator.php
index e0593102bc599accd8cdd8f3c6eb986d00b22bf0..abe45a87d06fff8f3dc4380a8f3c36a5f9fe2ef5 100644
--- a/core/vendor/symfony/validator/Symfony/Component/Validator/Constraints/EmailValidator.php
+++ b/core/vendor/symfony/validator/Symfony/Component/Validator/Constraints/EmailValidator.php
@@ -41,6 +41,11 @@ public function validate($value, Constraint $constraint)
         if ($valid) {
             $host = substr($value, strpos($value, '@') + 1);
 
+            if (version_compare(PHP_VERSION, '5.3.3', '<') && strpos($host, '.') === false) {
+                // Likely not a FQDN, bug in PHP FILTER_VALIDATE_EMAIL prior to PHP 5.3.3
+                $valid = false;
+            }
+
             // Check for host DNS resource records
             if ($valid && $constraint->checkMX) {
                 $valid = $this->checkMX($host);
diff --git a/core/vendor/symfony/validator/Symfony/Component/Validator/Constraints/Expression.php b/core/vendor/symfony/validator/Symfony/Component/Validator/Constraints/Expression.php
deleted file mode 100644
index b845a32392b2c751ffbc57ee1b6738208551f982..0000000000000000000000000000000000000000
--- a/core/vendor/symfony/validator/Symfony/Component/Validator/Constraints/Expression.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;
-
-/**
- * @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/Symfony/Component/Validator/Constraints/ExpressionValidator.php b/core/vendor/symfony/validator/Symfony/Component/Validator/Constraints/ExpressionValidator.php
deleted file mode 100644
index e27859b08c19c97b3c560e35ab90307477927fa4..0000000000000000000000000000000000000000
--- a/core/vendor/symfony/validator/Symfony/Component/Validator/Constraints/ExpressionValidator.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\PropertyAccess\PropertyAccessorInterface;
-use Symfony\Component\PropertyAccess\PropertyPath;
-use Symfony\Component\Validator\Constraint;
-use Symfony\Component\Validator\ConstraintValidator;
-use Symfony\Component\ExpressionLanguage\ExpressionLanguage;
-use Symfony\Component\Validator\Exception\RuntimeException;
-
-/**
- * @author Fabien Potencier <fabien@symfony.com>
- * @author Bernhard Schussek <bschussek@symfony.com>
- */
-class ExpressionValidator extends ConstraintValidator
-{
-    /**
-     * @var PropertyAccessorInterface
-     */
-    private $propertyAccessor;
-
-    /**
-     * @var ExpressionLanguage
-     */
-    private $expressionLanguage;
-
-    public function __construct(PropertyAccessorInterface $propertyAccessor)
-    {
-        $this->propertyAccessor = $propertyAccessor;
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function validate($value, Constraint $constraint)
-    {
-        if (null === $value || '' === $value) {
-            return;
-        }
-
-        $variables = array();
-
-        if (null === $this->context->getPropertyName()) {
-            $variables['this'] = $value;
-        } else {
-            // Extract the object that the property belongs to from the object
-            // graph
-            $path = new PropertyPath($this->context->getPropertyPath());
-            $parentPath = $path->getParent();
-            $root = $this->context->getRoot();
-
-            $variables['value'] = $value;
-            $variables['this'] = $parentPath ? $this->propertyAccessor->getValue($root, $parentPath) : $root;
-        }
-
-        if (!$this->getExpressionLanguage()->evaluate($constraint->expression, $variables)) {
-            $this->context->addViolation($constraint->message);
-        }
-    }
-
-    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;
-    }
-}
diff --git a/core/vendor/symfony/validator/Symfony/Component/Validator/Constraints/IbanValidator.php b/core/vendor/symfony/validator/Symfony/Component/Validator/Constraints/IbanValidator.php
index 3ec4c6ea7a79a126e674179f440a1c5373d8a254..1afc8f01b7118ef2bddbda8bf6a8b4b0978f7919 100644
--- a/core/vendor/symfony/validator/Symfony/Component/Validator/Constraints/IbanValidator.php
+++ b/core/vendor/symfony/validator/Symfony/Component/Validator/Constraints/IbanValidator.php
@@ -30,13 +30,6 @@ public function validate($value, Constraint $constraint)
             return;
         }
 
-        // An IBAN without a country code is not an IBAN.
-        if (0 === preg_match('/[A-Za-z]/', $value)) {
-            $this->context->addViolation($constraint->message, array('{{ value }}' => $value));
-
-            return;
-        }
-
         $teststring = preg_replace('/\s+/', '', $value);
 
         if (strlen($teststring) < 4) {
diff --git a/core/vendor/symfony/validator/Symfony/Component/Validator/Constraints/Image.php b/core/vendor/symfony/validator/Symfony/Component/Validator/Constraints/Image.php
index 9fa8725c6da155cac8e3629fd29c7c17be56a3cf..a23106489f354e53130b1e9161c3f9e8093433c1 100644
--- a/core/vendor/symfony/validator/Symfony/Component/Validator/Constraints/Image.php
+++ b/core/vendor/symfony/validator/Symfony/Component/Validator/Constraints/Image.php
@@ -23,11 +23,6 @@ class Image extends File
     public $maxWidth = null;
     public $maxHeight = null;
     public $minHeight = null;
-    public $maxRatio = null;
-    public $minRatio = null;
-    public $allowSquare = true;
-    public $allowLandscape = true;
-    public $allowPortrait = true;
 
     public $mimeTypesMessage = 'This file is not a valid image.';
     public $sizeNotDetectedMessage = 'The size of the image could not be detected.';
@@ -35,9 +30,4 @@ class Image extends File
     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/Symfony/Component/Validator/Constraints/ImageValidator.php b/core/vendor/symfony/validator/Symfony/Component/Validator/Constraints/ImageValidator.php
index 76ce8767fcea89bc752a3069c23690870d1cd1a0..79e6bdcddbbb1dd7b18ba869e3eb359255302f09 100644
--- a/core/vendor/symfony/validator/Symfony/Component/Validator/Constraints/ImageValidator.php
+++ b/core/vendor/symfony/validator/Symfony/Component/Validator/Constraints/ImageValidator.php
@@ -38,9 +38,7 @@ public function validate($value, Constraint $constraint)
         }
 
         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) {
+            && null === $constraint->minHeight && null === $constraint->maxHeight) {
             return;
         }
 
@@ -111,55 +109,5 @@ public function validate($value, Constraint $constraint)
                 ));
             }
         }
-
-        $ratio = $width / $height;
-
-        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) {
-                $this->context->addViolation($constraint->minRatioMessage, array(
-                    '{{ ratio }}' => $ratio,
-                    '{{ min_ratio }}' => $constraint->minRatio
-                ));
-            }
-        }
-
-        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) {
-                $this->context->addViolation($constraint->maxRatioMessage, array(
-                    '{{ ratio }}' => $ratio,
-                    '{{ max_ratio }}' => $constraint->maxRatio
-                ));
-            }
-        }
-
-        if (!$constraint->allowSquare && $width == $height) {
-            $this->context->addViolation($constraint->allowSquareMessage, array(
-                '{{ width }}' => $width,
-                '{{ height }}' => $height
-            ));
-        }
-
-        if (!$constraint->allowLandscape && $width > $height) {
-            $this->context->addViolation($constraint->allowLandscapeMessage, array(
-                '{{ width }}' => $width,
-                '{{ height }}' => $height
-            ));
-        }
-
-        if (!$constraint->allowPortrait && $width < $height) {
-            $this->context->addViolation($constraint->allowPortraitMessage, array(
-                '{{ width }}' => $width,
-                '{{ height }}' => $height
-            ));
-        }
-
     }
 }
diff --git a/core/vendor/symfony/validator/Symfony/Component/Validator/Constraints/LuhnValidator.php b/core/vendor/symfony/validator/Symfony/Component/Validator/Constraints/LuhnValidator.php
index d3802fe99ae116432396ad201b231abddcb4a85a..0b60eee159c9b95a98f441ca44fd059ed7c0d855 100644
--- a/core/vendor/symfony/validator/Symfony/Component/Validator/Constraints/LuhnValidator.php
+++ b/core/vendor/symfony/validator/Symfony/Component/Validator/Constraints/LuhnValidator.php
@@ -13,7 +13,6 @@
 
 use Symfony\Component\Validator\Constraint;
 use Symfony\Component\Validator\ConstraintValidator;
-use Symfony\Component\Validator\Exception\UnexpectedTypeException;
 
 /**
  * Validates a PAN using the LUHN Algorithm
@@ -39,13 +38,6 @@ public function validate($value, Constraint $constraint)
             return;
         }
 
-        /**
-         * need to work with strings only because long numbers are treated as floats and don't work with strlen
-         */
-        if (!is_string($value)) {
-            throw new UnexpectedTypeException($value, 'string');
-        }
-
         if (!is_numeric($value)) {
             $this->context->addViolation($constraint->message);
 
diff --git a/core/vendor/symfony/validator/Symfony/Component/Validator/Constraints/NotBlankValidator.php b/core/vendor/symfony/validator/Symfony/Component/Validator/Constraints/NotBlankValidator.php
index dd3dbdd8498a1680504d4f0f998de3656e52b8df..8d3efae0d584b28378b2ae8e3aaad11b3ebaceff 100644
--- a/core/vendor/symfony/validator/Symfony/Component/Validator/Constraints/NotBlankValidator.php
+++ b/core/vendor/symfony/validator/Symfony/Component/Validator/Constraints/NotBlankValidator.php
@@ -15,6 +15,8 @@
 use Symfony\Component\Validator\ConstraintValidator;
 
 /**
+ * @author Bernhard Schussek <bschussek@gmail.com>
+ *
  * @author Bernhard Schussek <bschussek@gmail.com>
  *
  * @api
diff --git a/core/vendor/symfony/validator/Symfony/Component/Validator/Constraints/NullValidator.php b/core/vendor/symfony/validator/Symfony/Component/Validator/Constraints/NullValidator.php
index 9753f43315f37ae2eae03bae548aae267e17cd9c..e8fa24ed74959ee80ef98764f2386d16abe81824 100644
--- a/core/vendor/symfony/validator/Symfony/Component/Validator/Constraints/NullValidator.php
+++ b/core/vendor/symfony/validator/Symfony/Component/Validator/Constraints/NullValidator.php
@@ -27,12 +27,6 @@ class NullValidator extends ConstraintValidator
     public function validate($value, Constraint $constraint)
     {
         if (null !== $value) {
-            if (is_object($value)) {
-                $value = get_class($value);
-            } elseif (is_array($value)) {
-                $value = 'Array';
-            }
-
             $this->context->addViolation($constraint->message, array('{{ value }}' => $value));
         }
     }
diff --git a/core/vendor/symfony/validator/Symfony/Component/Validator/Exception/RuntimeException.php b/core/vendor/symfony/validator/Symfony/Component/Validator/Exception/RuntimeException.php
deleted file mode 100644
index df4a50c474338389fd5da6c34f2a0e5a3429a4c7..0000000000000000000000000000000000000000
--- a/core/vendor/symfony/validator/Symfony/Component/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/Symfony/Component/Validator/Exception/UnexpectedTypeException.php b/core/vendor/symfony/validator/Symfony/Component/Validator/Exception/UnexpectedTypeException.php
index 49d8cc2082234fdead7612d65968cc321879ca3a..573fecd2e898154660ed51bf0a1b4215f02b50a9 100644
--- a/core/vendor/symfony/validator/Symfony/Component/Validator/Exception/UnexpectedTypeException.php
+++ b/core/vendor/symfony/validator/Symfony/Component/Validator/Exception/UnexpectedTypeException.php
@@ -15,6 +15,6 @@ 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)));
+        parent::__construct(sprintf('Expected argument of type %s, %s given', $expectedType, gettype($value)));
     }
 }
diff --git a/core/vendor/symfony/validator/Symfony/Component/Validator/Mapping/BlackholeMetadataFactory.php b/core/vendor/symfony/validator/Symfony/Component/Validator/Mapping/BlackholeMetadataFactory.php
index 90dd282e08712fe246609a0e0ddf0867f000b253..4cd1175b0cc474a40cbb15800e5ac2c89fe69c0b 100644
--- a/core/vendor/symfony/validator/Symfony/Component/Validator/Mapping/BlackholeMetadataFactory.php
+++ b/core/vendor/symfony/validator/Symfony/Component/Validator/Mapping/BlackholeMetadataFactory.php
@@ -11,28 +11,15 @@
 
 namespace Symfony\Component\Validator\Mapping;
 
-use Symfony\Component\Validator\MetadataFactoryInterface;
-
 /**
- * Simple implementation of MetadataFactoryInterface that can be used when using ValidatorInterface::validateValue().
+ * Simple implementation of ClassMetadataFactoryInterface that can be used when using ValidatorInterface::validateValue().
  *
  * @author Fabien Potencier <fabien@symfony.com>
  */
-class BlackholeMetadataFactory implements MetadataFactoryInterface
+class BlackholeMetadataFactory implements ClassMetadataFactoryInterface
 {
-    /**
-     * @inheritdoc
-     */
-    public function getMetadataFor($value)
+    public function getClassMetadata($class)
     {
         throw new \LogicException('BlackholeClassMetadataFactory only works with ValidatorInterface::validateValue().');
     }
-
-    /**
-     * @inheritdoc
-     */
-    public function hasMetadataFor($value)
-    {
-        return false;
-    }
 }
diff --git a/core/vendor/symfony/validator/Symfony/Component/Validator/Mapping/Loader/AbstractLoader.php b/core/vendor/symfony/validator/Symfony/Component/Validator/Mapping/Loader/AbstractLoader.php
index 8deea4eba8c5140467a2be5870b30e9154780b82..54c0dbe47479f0049bd7f7c6850a8f52de848df0 100644
--- a/core/vendor/symfony/validator/Symfony/Component/Validator/Mapping/Loader/AbstractLoader.php
+++ b/core/vendor/symfony/validator/Symfony/Component/Validator/Mapping/Loader/AbstractLoader.php
@@ -12,7 +12,6 @@
 namespace Symfony\Component\Validator\Mapping\Loader;
 
 use Symfony\Component\Validator\Exception\MappingException;
-use Symfony\Component\Validator\Constraint;
 
 abstract class AbstractLoader implements LoaderInterface
 {
@@ -20,7 +19,7 @@ abstract class AbstractLoader implements LoaderInterface
      * Contains all known namespaces indexed by their prefix
      * @var array
      */
-    protected $namespaces = array();
+    protected $namespaces;
 
     /**
      * Adds a namespace alias.
diff --git a/core/vendor/symfony/validator/Symfony/Component/Validator/Mapping/Loader/AnnotationLoader.php b/core/vendor/symfony/validator/Symfony/Component/Validator/Mapping/Loader/AnnotationLoader.php
index 10745c72e7ffc611841769c60aa7a3d9ad03bc6a..0e7e89b548c7711b7ac5140e1001ff3f3a421640 100644
--- a/core/vendor/symfony/validator/Symfony/Component/Validator/Mapping/Loader/AnnotationLoader.php
+++ b/core/vendor/symfony/validator/Symfony/Component/Validator/Mapping/Loader/AnnotationLoader.php
@@ -12,7 +12,6 @@
 namespace Symfony\Component\Validator\Mapping\Loader;
 
 use Doctrine\Common\Annotations\Reader;
-use Symfony\Component\Validator\Constraints\Callback;
 use Symfony\Component\Validator\Exception\MappingException;
 use Symfony\Component\Validator\Mapping\ClassMetadata;
 use Symfony\Component\Validator\Constraints\GroupSequence;
@@ -64,12 +63,7 @@ public function loadClassMetadata(ClassMetadata $metadata)
         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 ($constraint instanceof Constraint) {
                         if (preg_match('/^(get|is)(.+)$/i', $method->name, $matches)) {
                             $metadata->addGetterConstraint(lcfirst($matches[2]), $constraint);
                         } else {
diff --git a/core/vendor/symfony/validator/Symfony/Component/Validator/Mapping/Loader/XmlFileLoader.php b/core/vendor/symfony/validator/Symfony/Component/Validator/Mapping/Loader/XmlFileLoader.php
index cad247e883ddd2c8f50e5c46f2677a8862c69443..a9ae39677775bbc3a9df74e2480319abdce7fd4d 100644
--- a/core/vendor/symfony/validator/Symfony/Component/Validator/Mapping/Loader/XmlFileLoader.php
+++ b/core/vendor/symfony/validator/Symfony/Component/Validator/Mapping/Loader/XmlFileLoader.php
@@ -183,7 +183,7 @@ protected function parseOptions(\SimpleXMLElement $nodes)
      *
      * @param string $file Path of file
      *
-     * @return \SimpleXMLElement
+     * @return SimpleXMLElement
      *
      * @throws MappingException
      */
diff --git a/core/vendor/symfony/validator/Symfony/Component/Validator/README.md b/core/vendor/symfony/validator/Symfony/Component/Validator/README.md
index e1601cfe47ebb0e9f6f4f7a545e69bc1d5b9d960..70dd99981a7169f9b2c4c84cc563d564c2abf2fd 100644
--- a/core/vendor/symfony/validator/Symfony/Component/Validator/README.md
+++ b/core/vendor/symfony/validator/Symfony/Component/Validator/README.md
@@ -107,7 +107,7 @@ https://github.com/fabpot/Silex/blob/master/src/Silex/Provider/ValidatorServiceP
 
 Documentation:
 
-http://symfony.com/doc/2.4/book/validation.html
+http://symfony.com/doc/2.3/book/validation.html
 
 JSR-303 Specification:
 
@@ -116,5 +116,5 @@ 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.phar install
+    $ composer.phar install --dev
     $ phpunit
diff --git a/core/vendor/symfony/validator/Symfony/Component/Validator/Tests/ConstraintTest.php b/core/vendor/symfony/validator/Symfony/Component/Validator/Tests/ConstraintTest.php
index 015a6dab665e25aac4e7dc11562fb713ca50995d..007bb1e3a23e9894b7a63f585ff306e431a47e74 100644
--- a/core/vendor/symfony/validator/Symfony/Component/Validator/Tests/ConstraintTest.php
+++ b/core/vendor/symfony/validator/Symfony/Component/Validator/Tests/ConstraintTest.php
@@ -15,8 +15,6 @@
 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
 {
@@ -73,30 +71,6 @@ public function testSetDefaultPropertyDoctrineStyle()
         $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');
@@ -143,14 +117,14 @@ public function testCanCreateConstraintWithNoDefaultOptionAndEmptyArray()
 
     public function testGetTargetsCanBeString()
     {
-        $constraint = new ClassConstraint();
+        $constraint = new ClassConstraint;
 
         $this->assertEquals('class', $constraint->getTargets());
     }
 
     public function testGetTargetsCanBeArray()
     {
-        $constraint = new ConstraintA();
+        $constraint = new ConstraintA;
 
         $this->assertEquals(array('property', 'class'), $constraint->getTargets());
     }
diff --git a/core/vendor/symfony/validator/Symfony/Component/Validator/Tests/Constraints/AbstractComparisonValidatorTestCase.php b/core/vendor/symfony/validator/Symfony/Component/Validator/Tests/Constraints/AbstractComparisonValidatorTestCase.php
index 36405e3de88e54396fda216f23135feb4bc9bcb7..d72eaf23fabd343a6efeacd2ff6bef52b88e606e 100644
--- a/core/vendor/symfony/validator/Symfony/Component/Validator/Tests/Constraints/AbstractComparisonValidatorTestCase.php
+++ b/core/vendor/symfony/validator/Symfony/Component/Validator/Tests/Constraints/AbstractComparisonValidatorTestCase.php
@@ -14,21 +14,6 @@
 use Symfony\Component\Validator\Constraint;
 use Symfony\Component\Validator\Constraints\AbstractComparisonValidator;
 
-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>
  */
diff --git a/core/vendor/symfony/validator/Symfony/Component/Validator/Tests/Constraints/CallbackValidatorTest.php b/core/vendor/symfony/validator/Symfony/Component/Validator/Tests/Constraints/CallbackValidatorTest.php
index cdcd49bb58ed87be7954c8c348bc023cbc1dcc88..4d248c13c8409ae664ff507e07ee1c7c9d4d5250 100644
--- a/core/vendor/symfony/validator/Symfony/Component/Validator/Tests/Constraints/CallbackValidatorTest.php
+++ b/core/vendor/symfony/validator/Symfony/Component/Validator/Tests/Constraints/CallbackValidatorTest.php
@@ -17,9 +17,9 @@
 
 class CallbackValidatorTest_Class
 {
-    public static function validateCallback($object, ExecutionContext $context)
+    public static function validateStatic($object, ExecutionContext $context)
     {
-        $context->addViolation('Callback message', array('{{ value }}' => 'foobar'), 'invalidValue');
+        $context->addViolation('Static message', array('{{ value }}' => 'foobar'), 'invalidValue');
 
         return false;
     }
@@ -27,16 +27,16 @@ public static function validateCallback($object, ExecutionContext $context)
 
 class CallbackValidatorTest_Object
 {
-    public function validate(ExecutionContext $context)
+    public function validateOne(ExecutionContext $context)
     {
         $context->addViolation('My message', array('{{ value }}' => 'foobar'), 'invalidValue');
 
         return false;
     }
 
-    public static function validateStatic($object, ExecutionContext $context)
+    public function validateTwo(ExecutionContext $context)
     {
-        $context->addViolation('Static message', array('{{ value }}' => 'baz'), 'otherInvalidValue');
+        $context->addViolation('Other message', array('{{ value }}' => 'baz'), 'otherInvalidValue');
 
         return false;
     }
@@ -68,10 +68,10 @@ public function testNullIsValid()
         $this->validator->validate(null, new Callback(array('foo')));
     }
 
-    public function testSingleMethod()
+    public function testCallbackSingleMethod()
     {
         $object = new CallbackValidatorTest_Object();
-        $constraint = new Callback('validate');
+        $constraint = new Callback(array('validateOne'));
 
         $this->context->expects($this->once())
             ->method('addViolation')
@@ -82,159 +82,24 @@ public function testSingleMethod()
         $this->validator->validate($object, $constraint);
     }
 
-    public function testSingleMethodExplicitName()
+    public function testCallbackSingleStaticMethod()
     {
         $object = new CallbackValidatorTest_Object();
-        $constraint = new Callback(array('callback' => 'validate'));
-
-        $this->context->expects($this->once())
-            ->method('addViolation')
-            ->with('My message', array(
-                '{{ value }}' => 'foobar',
-            ));
-
-        $this->validator->validate($object, $constraint);
-    }
-
-    public function testSingleStaticMethod()
-    {
-        $object = new CallbackValidatorTest_Object();
-        $constraint = new Callback('validateStatic');
 
         $this->context->expects($this->once())
             ->method('addViolation')
             ->with('Static message', array(
-                '{{ value }}' => 'baz',
-            ));
-
-        $this->validator->validate($object, $constraint);
-    }
-
-    public function testClosure()
-    {
-        $object = new CallbackValidatorTest_Object();
-        $constraint = new Callback(function ($object, ExecutionContext $context) {
-            $context->addViolation('My message', array('{{ value }}' => 'foobar'), 'invalidValue');
-
-            return false;
-        });
-
-        $this->context->expects($this->once())
-            ->method('addViolation')
-            ->with('My message', array(
-                '{{ value }}' => 'foobar',
-            ));
-
-        $this->validator->validate($object, $constraint);
-    }
-
-    public function testClosureExplicitName()
-    {
-        $object = new CallbackValidatorTest_Object();
-        $constraint = new Callback(array(
-            'callback' => function ($object, ExecutionContext $context) {
-                $context->addViolation('My message', array('{{ value }}' => 'foobar'), 'invalidValue');
-
-                return false;
-            },
-        ));
-
-        $this->context->expects($this->once())
-            ->method('addViolation')
-            ->with('My message', array(
-                '{{ value }}' => 'foobar',
-            ));
-
-        $this->validator->validate($object, $constraint);
-    }
-
-    public function testArrayCallable()
-    {
-        $object = new CallbackValidatorTest_Object();
-        $constraint = new Callback(array(__CLASS__.'_Class', 'validateCallback'));
-
-        $this->context->expects($this->once())
-            ->method('addViolation')
-            ->with('Callback message', array(
-                '{{ value }}' => 'foobar',
-            ));
-
-        $this->validator->validate($object, $constraint);
-    }
-
-    public function testArrayCallableExplicitName()
-    {
-        $object = new CallbackValidatorTest_Object();
-        $constraint = new Callback(array(
-            'callback' => array(__CLASS__.'_Class', 'validateCallback'),
-        ));
-
-        $this->context->expects($this->once())
-            ->method('addViolation')
-            ->with('Callback message', array(
-                '{{ value }}' => 'foobar',
-            ));
-
-        $this->validator->validate($object, $constraint);
-    }
-
-    // BC with Symfony < 2.4
-    public function testSingleMethodBc()
-    {
-        $object = new CallbackValidatorTest_Object();
-        $constraint = new Callback(array('validate'));
-
-        $this->context->expects($this->once())
-            ->method('addViolation')
-            ->with('My message', array(
-                '{{ value }}' => 'foobar',
-            ));
-
-        $this->validator->validate($object, $constraint);
-    }
-
-    // BC with Symfony < 2.4
-    public function testSingleMethodBcExplicitName()
-    {
-        $object = new CallbackValidatorTest_Object();
-        $constraint = new Callback(array('methods' => array('validate')));
-
-        $this->context->expects($this->once())
-            ->method('addViolation')
-            ->with('My message', array(
-                '{{ value }}' => 'foobar',
-            ));
-
-        $this->validator->validate($object, $constraint);
-    }
-
-    // BC with Symfony < 2.4
-    public function testMultipleMethodsBc()
-    {
-        $object = new CallbackValidatorTest_Object();
-        $constraint = new Callback(array('validate', 'validateStatic'));
-
-        $this->context->expects($this->at(0))
-            ->method('addViolation')
-            ->with('My message', array(
                 '{{ value }}' => 'foobar',
             ));
-        $this->context->expects($this->at(1))
-            ->method('addViolation')
-            ->with('Static message', array(
-                '{{ value }}' => 'baz',
-            ));
 
-        $this->validator->validate($object, $constraint);
+        $this->validator->validate($object, new Callback(array(
+            array(__CLASS__.'_Class', 'validateStatic')
+        )));
     }
 
-    // BC with Symfony < 2.4
-    public function testMultipleMethodsBcExplicitName()
+    public function testCallbackMultipleMethods()
     {
         $object = new CallbackValidatorTest_Object();
-        $constraint = new Callback(array(
-            'methods' => array('validate', 'validateStatic'),
-        ));
 
         $this->context->expects($this->at(0))
             ->method('addViolation')
@@ -243,45 +108,23 @@ public function testMultipleMethodsBcExplicitName()
             ));
         $this->context->expects($this->at(1))
             ->method('addViolation')
-            ->with('Static message', array(
+            ->with('Other message', array(
                 '{{ value }}' => 'baz',
             ));
 
-        $this->validator->validate($object, $constraint);
-    }
-
-    // BC with Symfony < 2.4
-    public function testSingleStaticMethodBc()
-    {
-        $object = new CallbackValidatorTest_Object();
-        $constraint = new Callback(array(
-            array(__CLASS__.'_Class', 'validateCallback')
-        ));
-
-        $this->context->expects($this->once())
-            ->method('addViolation')
-            ->with('Callback message', array(
-                '{{ value }}' => 'foobar',
-            ));
-
-        $this->validator->validate($object, $constraint);
+        $this->validator->validate($object, new Callback(array(
+            'validateOne', 'validateTwo'
+        )));
     }
 
-    // BC with Symfony < 2.4
-    public function testSingleStaticMethodBcExplicitName()
+    /**
+     * @expectedException \Symfony\Component\Validator\Exception\UnexpectedTypeException
+     */
+    public function testExpectCallbackArray()
     {
         $object = new CallbackValidatorTest_Object();
-        $constraint = new Callback(array(
-            'methods' => array(array(__CLASS__.'_Class', 'validateCallback')),
-        ));
 
-        $this->context->expects($this->once())
-            ->method('addViolation')
-            ->with('Callback message', array(
-                '{{ value }}' => 'foobar',
-            ));
-
-        $this->validator->validate($object, $constraint);
+        $this->validator->validate($object, new Callback('foobar'));
     }
 
     /**
@@ -304,43 +147,10 @@ public function testExpectValidCallbacks()
         $this->validator->validate($object, new Callback(array(array('foo', 'bar'))));
     }
 
-    /**
-     * @expectedException \Symfony\Component\Validator\Exception\ConstraintDefinitionException
-     */
-    public function testExpectEitherCallbackOrMethods()
-    {
-        $object = new CallbackValidatorTest_Object();
-
-        $this->validator->validate($object, new Callback(array(
-            'callback' => 'validate',
-            'methods' => array('validateStatic'),
-        )));
-    }
-
     public function testConstraintGetTargets()
     {
         $constraint = new Callback(array('foo'));
 
         $this->assertEquals('class', $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/Symfony/Component/Validator/Tests/Constraints/ChoiceValidatorTest.php b/core/vendor/symfony/validator/Symfony/Component/Validator/Tests/Constraints/ChoiceValidatorTest.php
index 9267fdb8726922f5a433965ca656e9a4c7768bbe..c1618b6771c18ded822a8e6742076f3cdbebcc8d 100644
--- a/core/vendor/symfony/validator/Symfony/Component/Validator/Tests/Constraints/ChoiceValidatorTest.php
+++ b/core/vendor/symfony/validator/Symfony/Component/Validator/Tests/Constraints/ChoiceValidatorTest.php
@@ -105,7 +105,7 @@ public function testValidChoiceCallbackFunction()
 
     public function testValidChoiceCallbackClosure()
     {
-        $constraint = new Choice(array('callback' => function () {
+        $constraint = new Choice(array('callback' => function() {
             return array('foo', 'bar');
         }));
 
diff --git a/core/vendor/symfony/validator/Symfony/Component/Validator/Tests/Constraints/CountryValidatorTest.php b/core/vendor/symfony/validator/Symfony/Component/Validator/Tests/Constraints/CountryValidatorTest.php
index 95851e8097ad788e870badf1b6f833ae28afbd9a..3eedaa32643f6daf1960bd25bbbe1b9ff34fdc46 100644
--- a/core/vendor/symfony/validator/Symfony/Component/Validator/Tests/Constraints/CountryValidatorTest.php
+++ b/core/vendor/symfony/validator/Symfony/Component/Validator/Tests/Constraints/CountryValidatorTest.php
@@ -104,14 +104,4 @@ public function getInvalidCountries()
             array('EN'),
         );
     }
-
-    public function testValidateUsingCountrySpecificLocale()
-    {
-        \Locale::setDefault('en_GB');
-        $existingCountry = 'GB';
-        $this->context->expects($this->never())
-            ->method('addViolation');
-
-        $this->validator->validate($existingCountry, new Country());
-    }
 }
diff --git a/core/vendor/symfony/validator/Symfony/Component/Validator/Tests/Constraints/CurrencyValidatorTest.php b/core/vendor/symfony/validator/Symfony/Component/Validator/Tests/Constraints/CurrencyValidatorTest.php
index ea6c2eb43ac029e06433106bd5097e2f1a224ec2..d2e233ca3798ce2dfc0e04212dea9abf68e47307 100644
--- a/core/vendor/symfony/validator/Symfony/Component/Validator/Tests/Constraints/CurrencyValidatorTest.php
+++ b/core/vendor/symfony/validator/Symfony/Component/Validator/Tests/Constraints/CurrencyValidatorTest.php
@@ -70,18 +70,6 @@ public function testValidCurrencies($currency)
         $this->validator->validate($currency, new Currency());
     }
 
-    /**
-     * @dataProvider getValidCurrencies
-     **/
-    public function testValidCurrenciesWithCountrySpecificLocale($currency)
-    {
-        \Locale::setDefault('en_GB');
-        $this->context->expects($this->never())
-            ->method('addViolation');
-
-        $this->validator->validate($currency, new Currency());
-    }
-
     public function getValidCurrencies()
     {
         return array(
diff --git a/core/vendor/symfony/validator/Symfony/Component/Validator/Tests/Constraints/EqualToValidatorTest.php b/core/vendor/symfony/validator/Symfony/Component/Validator/Tests/Constraints/EqualToValidatorTest.php
index 6f8abc101250989cf88bc46c3e35575ce1b26e55..b47d9e6750bed5e150f3be72e10e59704322e2a9 100644
--- a/core/vendor/symfony/validator/Symfony/Component/Validator/Tests/Constraints/EqualToValidatorTest.php
+++ b/core/vendor/symfony/validator/Symfony/Component/Validator/Tests/Constraints/EqualToValidatorTest.php
@@ -13,6 +13,7 @@
 
 use Symfony\Component\Validator\Constraints\EqualTo;
 use Symfony\Component\Validator\Constraints\EqualToValidator;
+use Symfony\Component\Validator\Tests\Constraints\AbstractComparisonValidatorTestCase;
 
 /**
  * @author Daniel Holmes <daniel@danielholmes.org>
@@ -39,7 +40,6 @@ public function provideValidComparisons()
             array(3, '3'),
             array('a', 'a'),
             array(new \DateTime('2000-01-01'), new \DateTime('2000-01-01')),
-            array(new ComparisonTest_Class(5), new ComparisonTest_Class(5)),
             array(null, 1),
         );
     }
@@ -52,8 +52,7 @@ public function provideInvalidComparisons()
         return array(
             array(1, 2, '2', 'integer'),
             array('22', '333', "'333'", 'string'),
-            array(new \DateTime('2001-01-01'), new \DateTime('2000-01-01'), '2000-01-01 00:00:00', 'DateTime'),
-            array(new ComparisonTest_Class(4), new ComparisonTest_Class(5), '5', __NAMESPACE__.'\ComparisonTest_Class'),
+            array(new \DateTime('2001-01-01'), new \DateTime('2000-01-01'), '2000-01-01 00:00:00', 'DateTime')
         );
     }
 }
diff --git a/core/vendor/symfony/validator/Symfony/Component/Validator/Tests/Constraints/ExpressionValidatorTest.php b/core/vendor/symfony/validator/Symfony/Component/Validator/Tests/Constraints/ExpressionValidatorTest.php
deleted file mode 100644
index b71138e5f6bbdbd43707e035f4d00daa7610c578..0000000000000000000000000000000000000000
--- a/core/vendor/symfony/validator/Symfony/Component/Validator/Tests/Constraints/ExpressionValidatorTest.php
+++ /dev/null
@@ -1,197 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.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;
-
-class ExpressionValidatorTest extends \PHPUnit_Framework_TestCase
-{
-    protected $context;
-    protected $validator;
-
-    protected function setUp()
-    {
-        $this->context = $this->getMock('Symfony\Component\Validator\ExecutionContext', array(), array(), '', false);
-        $this->validator = new ExpressionValidator(PropertyAccess::createPropertyAccessor());
-        $this->validator->initialize($this->context);
-
-        $this->context->expects($this->any())
-            ->method('getClassName')
-            ->will($this->returnValue(__CLASS__));
-    }
-
-    protected function tearDown()
-    {
-        $this->context = null;
-        $this->validator = null;
-    }
-
-    public function testNullIsValid()
-    {
-        $this->context->expects($this->never())
-            ->method('addViolation');
-
-        $this->validator->validate(null, new Expression('value == 1'));
-    }
-
-    public function testEmptyStringIsValid()
-    {
-        $this->context->expects($this->never())
-            ->method('addViolation');
-
-        $this->validator->validate('', new Expression('value == 1'));
-    }
-
-    public function testSucceedingExpressionAtObjectLevel()
-    {
-        $constraint = new Expression('this.property == 1');
-
-        $object = (object) array('property' => '1');
-
-        $this->context->expects($this->any())
-            ->method('getPropertyName')
-            ->will($this->returnValue(null));
-
-        $this->context->expects($this->never())
-            ->method('addViolation');
-
-        $this->validator->validate($object, $constraint);
-    }
-
-    public function testFailingExpressionAtObjectLevel()
-    {
-        $constraint = new Expression(array(
-            'expression' => 'this.property == 1',
-            'message' => 'myMessage',
-        ));
-
-        $object = (object) array('property' => '2');
-
-        $this->context->expects($this->any())
-            ->method('getPropertyName')
-            ->will($this->returnValue(null));
-
-        $this->context->expects($this->once())
-            ->method('addViolation')
-            ->with('myMessage');
-
-        $this->validator->validate($object, $constraint);
-    }
-
-    public function testSucceedingExpressionAtPropertyLevel()
-    {
-        $constraint = new Expression('value == this.expected');
-
-        $object = (object) array('expected' => '1');
-
-        $this->context->expects($this->any())
-            ->method('getPropertyName')
-            ->will($this->returnValue('property'));
-
-        $this->context->expects($this->any())
-            ->method('getPropertyPath')
-            ->will($this->returnValue('property'));
-
-        $this->context->expects($this->any())
-            ->method('getRoot')
-            ->will($this->returnValue($object));
-
-        $this->context->expects($this->never())
-            ->method('addViolation');
-
-        $this->validator->validate('1', $constraint);
-    }
-
-    public function testFailingExpressionAtPropertyLevel()
-    {
-        $constraint = new Expression(array(
-            'expression' => 'value == this.expected',
-            'message' => 'myMessage',
-        ));
-
-        $object = (object) array('expected' => '1');
-
-        $this->context->expects($this->any())
-            ->method('getPropertyName')
-            ->will($this->returnValue('property'));
-
-        $this->context->expects($this->any())
-            ->method('getPropertyPath')
-            ->will($this->returnValue('property'));
-
-        $this->context->expects($this->any())
-            ->method('getRoot')
-            ->will($this->returnValue($object));
-
-        $this->context->expects($this->once())
-            ->method('addViolation')
-            ->with('myMessage');
-
-        $this->validator->validate('2', $constraint);
-    }
-
-    public function testSucceedingExpressionAtNestedPropertyLevel()
-    {
-        $constraint = new Expression('value == this.expected');
-
-        $object = (object) array('expected' => '1');
-        $root = (object) array('nested' => $object);
-
-        $this->context->expects($this->any())
-            ->method('getPropertyName')
-            ->will($this->returnValue('property'));
-
-        $this->context->expects($this->any())
-            ->method('getPropertyPath')
-            ->will($this->returnValue('nested.property'));
-
-        $this->context->expects($this->any())
-            ->method('getRoot')
-            ->will($this->returnValue($root));
-
-        $this->context->expects($this->never())
-            ->method('addViolation');
-
-        $this->validator->validate('1', $constraint);
-    }
-
-    public function testFailingExpressionAtNestedPropertyLevel()
-    {
-        $constraint = new Expression(array(
-            'expression' => 'value == this.expected',
-            'message' => 'myMessage',
-        ));
-
-        $object = (object) array('expected' => '1');
-        $root = (object) array('nested' => $object);
-
-        $this->context->expects($this->any())
-            ->method('getPropertyName')
-            ->will($this->returnValue('property'));
-
-        $this->context->expects($this->any())
-            ->method('getPropertyPath')
-            ->will($this->returnValue('nested.property'));
-
-        $this->context->expects($this->any())
-            ->method('getRoot')
-            ->will($this->returnValue($root));
-
-        $this->context->expects($this->once())
-            ->method('addViolation')
-            ->with('myMessage');
-
-        $this->validator->validate('2', $constraint);
-    }
-}
diff --git a/core/vendor/symfony/validator/Symfony/Component/Validator/Tests/Constraints/FileValidatorTest.php b/core/vendor/symfony/validator/Symfony/Component/Validator/Tests/Constraints/FileValidatorTest.php
index 0927aedacdd5c45159f6b359eedcb07fd552ea3c..0ca98067d324d119d5251d4e9c7b316133f21ce2 100644
--- a/core/vendor/symfony/validator/Symfony/Component/Validator/Tests/Constraints/FileValidatorTest.php
+++ b/core/vendor/symfony/validator/Symfony/Component/Validator/Tests/Constraints/FileValidatorTest.php
@@ -24,6 +24,10 @@ abstract class FileValidatorTest extends \PHPUnit_Framework_TestCase
 
     protected function setUp()
     {
+        if (!class_exists('Symfony\Component\HttpFoundation\File\UploadedFile')) {
+            $this->markTestSkipped('The "HttpFoundation" component is not available');
+        }
+
         $this->context = $this->getMock('Symfony\Component\Validator\ExecutionContext', array(), array(), '', false);
         $this->validator = new FileValidator();
         $this->validator->initialize($this->context);
diff --git a/core/vendor/symfony/validator/Symfony/Component/Validator/Tests/Constraints/Fixtures/test_landscape.gif b/core/vendor/symfony/validator/Symfony/Component/Validator/Tests/Constraints/Fixtures/test_landscape.gif
deleted file mode 100644
index 870123532c3b97be8e2ab75452eca7060fb474c4..0000000000000000000000000000000000000000
--- a/core/vendor/symfony/validator/Symfony/Component/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/Symfony/Component/Validator/Tests/Constraints/Fixtures/test_portrait.gif b/core/vendor/symfony/validator/Symfony/Component/Validator/Tests/Constraints/Fixtures/test_portrait.gif
deleted file mode 100644
index cc480ca88ed7fa80ff8e3907ba14d692e3e9d3d4..0000000000000000000000000000000000000000
--- a/core/vendor/symfony/validator/Symfony/Component/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/Symfony/Component/Validator/Tests/Constraints/GreaterThanValidatorTest.php b/core/vendor/symfony/validator/Symfony/Component/Validator/Tests/Constraints/GreaterThanValidatorTest.php
index 1fc5311cf53329bb496603873c80366dad493dea..72087fab83e34e8cab56e9f2668e1c0f141fac3d 100644
--- a/core/vendor/symfony/validator/Symfony/Component/Validator/Tests/Constraints/GreaterThanValidatorTest.php
+++ b/core/vendor/symfony/validator/Symfony/Component/Validator/Tests/Constraints/GreaterThanValidatorTest.php
@@ -37,7 +37,6 @@ public function provideValidComparisons()
         return array(
             array(2, 1),
             array(new \DateTime('2005/01/01'), new \DateTime('2001/01/01')),
-            array(new ComparisonTest_Class(5), new ComparisonTest_Class(4)),
             array('333', '22'),
             array(null, 1),
         );
@@ -53,8 +52,6 @@ public function provideInvalidComparisons()
             array(2, 2, '2', 'integer'),
             array(new \DateTime('2000/01/01'), new \DateTime('2005/01/01'), '2005-01-01 00:00:00', 'DateTime'),
             array(new \DateTime('2000/01/01'), new \DateTime('2000/01/01'), '2000-01-01 00:00:00', 'DateTime'),
-            array(new ComparisonTest_Class(4), new ComparisonTest_Class(5), '5', __NAMESPACE__.'\ComparisonTest_Class'),
-            array(new ComparisonTest_Class(5), new ComparisonTest_Class(5), '5', __NAMESPACE__.'\ComparisonTest_Class'),
             array('22', '333', "'333'", 'string'),
             array('22', '22', "'22'", 'string')
         );
diff --git a/core/vendor/symfony/validator/Symfony/Component/Validator/Tests/Constraints/IbanValidatorTest.php b/core/vendor/symfony/validator/Symfony/Component/Validator/Tests/Constraints/IbanValidatorTest.php
index fa3b0203b2e4ffda252502510c75035fc93a78ad..cfd9f2cd8f43882ffd68c8fb3ddf99a205448184 100644
--- a/core/vendor/symfony/validator/Symfony/Component/Validator/Tests/Constraints/IbanValidatorTest.php
+++ b/core/vendor/symfony/validator/Symfony/Component/Validator/Tests/Constraints/IbanValidatorTest.php
@@ -53,6 +53,7 @@ public function testValidIbans($iban)
     public function getValidIbans()
     {
         return array(
+            array('CH93 0076 2011 6238 5295 7'), //Switzerland
             array('CH9300762011623852957'), // Switzerland without spaces
 
             //Country list
@@ -181,7 +182,6 @@ public function getInvalidIbans()
             array('CY170020 128 0000 0012 0052 7600'),
             array('foo'),
             array('123'),
-            array('0750447346')
         );
     }
 }
diff --git a/core/vendor/symfony/validator/Symfony/Component/Validator/Tests/Constraints/IdenticalToValidatorTest.php b/core/vendor/symfony/validator/Symfony/Component/Validator/Tests/Constraints/IdenticalToValidatorTest.php
index 39234239c0958d3c7c11f2e1ce8266e94ae0d9fa..a1f6a69f4ac17cb0b678690248da3c687db2d76b 100644
--- a/core/vendor/symfony/validator/Symfony/Component/Validator/Tests/Constraints/IdenticalToValidatorTest.php
+++ b/core/vendor/symfony/validator/Symfony/Component/Validator/Tests/Constraints/IdenticalToValidatorTest.php
@@ -13,6 +13,7 @@
 
 use Symfony\Component\Validator\Constraints\IdenticalTo;
 use Symfony\Component\Validator\Constraints\IdenticalToValidator;
+use Symfony\Component\Validator\Tests\Constraints\AbstractComparisonValidatorTestCase;
 
 /**
  * @author Daniel Holmes <daniel@danielholmes.org>
@@ -35,13 +36,11 @@ protected function createConstraint(array $options)
     public function provideValidComparisons()
     {
         $date = new \DateTime('2000-01-01');
-        $object = new ComparisonTest_Class(2);
 
         return array(
             array(3, 3),
             array('a', 'a'),
             array($date, $date),
-            array($object, $object),
             array(null, 1),
         );
     }
@@ -56,8 +55,7 @@ public function provideInvalidComparisons()
             array(2, '2', "'2'", 'string'),
             array('22', '333', "'333'", 'string'),
             array(new \DateTime('2001-01-01'), new \DateTime('2001-01-01'), '2001-01-01 00:00:00', 'DateTime'),
-            array(new \DateTime('2001-01-01'), new \DateTime('1999-01-01'), '1999-01-01 00:00:00', 'DateTime'),
-            array(new ComparisonTest_Class(4), new ComparisonTest_Class(5), '5', __NAMESPACE__.'\ComparisonTest_Class'),
+            array(new \DateTime('2001-01-01'), new \DateTime('1999-01-01'), '1999-01-01 00:00:00', 'DateTime')
         );
     }
 }
diff --git a/core/vendor/symfony/validator/Symfony/Component/Validator/Tests/Constraints/ImageValidatorTest.php b/core/vendor/symfony/validator/Symfony/Component/Validator/Tests/Constraints/ImageValidatorTest.php
index 114c2d2f0499e7b54d596c9c614b379c1693ce5e..88545016243d11fd02214ed20eb0cad4961cd3d5 100644
--- a/core/vendor/symfony/validator/Symfony/Component/Validator/Tests/Constraints/ImageValidatorTest.php
+++ b/core/vendor/symfony/validator/Symfony/Component/Validator/Tests/Constraints/ImageValidatorTest.php
@@ -20,8 +20,6 @@ class ImageValidatorTest extends \PHPUnit_Framework_TestCase
     protected $validator;
     protected $path;
     protected $image;
-    protected $imageLandscape;
-    protected $imagePortrait;
 
     protected function setUp()
     {
@@ -29,8 +27,6 @@ protected function setUp()
         $this->validator = new ImageValidator();
         $this->validator->initialize($this->context);
         $this->image = __DIR__.'/Fixtures/test.gif';
-        $this->imageLandscape = __DIR__.'/Fixtures/test_landscape.gif';
-        $this->imagePortrait = __DIR__.'/Fixtures/test_portrait.gif';
     }
 
     public function testNullIsValid()
@@ -51,6 +47,10 @@ public function testEmptyStringIsValid()
 
     public function testValidImage()
     {
+        if (!class_exists('Symfony\Component\HttpFoundation\File\File')) {
+            $this->markTestSkipped('The "HttpFoundation" component is not available');
+        }
+
         $this->context->expects($this->never())
             ->method('addViolation');
 
@@ -59,6 +59,10 @@ public function testValidImage()
 
     public function testValidSize()
     {
+        if (!class_exists('Symfony\Component\HttpFoundation\File\File')) {
+            $this->markTestSkipped('The "HttpFoundation" component is not available');
+        }
+
         $this->context->expects($this->never())
             ->method('addViolation');
 
@@ -74,6 +78,10 @@ public function testValidSize()
 
     public function testWidthTooSmall()
     {
+        if (!class_exists('Symfony\Component\HttpFoundation\File\File')) {
+            $this->markTestSkipped('The "HttpFoundation" component is not available');
+        }
+
         $constraint = new Image(array(
             'minWidth' => 3,
             'minWidthMessage' => 'myMessage',
@@ -91,6 +99,10 @@ public function testWidthTooSmall()
 
     public function testWidthTooBig()
     {
+        if (!class_exists('Symfony\Component\HttpFoundation\File\File')) {
+            $this->markTestSkipped('The "HttpFoundation" component is not available');
+        }
+
         $constraint = new Image(array(
             'maxWidth' => 1,
             'maxWidthMessage' => 'myMessage',
@@ -108,6 +120,10 @@ public function testWidthTooBig()
 
     public function testHeightTooSmall()
     {
+        if (!class_exists('Symfony\Component\HttpFoundation\File\File')) {
+            $this->markTestSkipped('The "HttpFoundation" component is not available');
+        }
+
         $constraint = new Image(array(
             'minHeight' => 3,
             'minHeightMessage' => 'myMessage',
@@ -125,6 +141,10 @@ public function testHeightTooSmall()
 
     public function testHeightTooBig()
     {
+        if (!class_exists('Symfony\Component\HttpFoundation\File\File')) {
+            $this->markTestSkipped('The "HttpFoundation" component is not available');
+        }
+
         $constraint = new Image(array(
             'maxHeight' => 1,
             'maxHeightMessage' => 'myMessage',
@@ -145,6 +165,10 @@ public function testHeightTooBig()
      */
     public function testInvalidMinWidth()
     {
+        if (!class_exists('Symfony\Component\HttpFoundation\File\File')) {
+            $this->markTestSkipped('The "HttpFoundation" component is not available');
+        }
+
         $constraint = new Image(array(
             'minWidth' => '1abc',
         ));
@@ -157,6 +181,10 @@ public function testInvalidMinWidth()
      */
     public function testInvalidMaxWidth()
     {
+        if (!class_exists('Symfony\Component\HttpFoundation\File\File')) {
+            $this->markTestSkipped('The "HttpFoundation" component is not available');
+        }
+
         $constraint = new Image(array(
             'maxWidth' => '1abc',
         ));
@@ -169,6 +197,10 @@ public function testInvalidMaxWidth()
      */
     public function testInvalidMinHeight()
     {
+        if (!class_exists('Symfony\Component\HttpFoundation\File\File')) {
+            $this->markTestSkipped('The "HttpFoundation" component is not available');
+        }
+
         $constraint = new Image(array(
             'minHeight' => '1abc',
         ));
@@ -181,119 +213,14 @@ public function testInvalidMinHeight()
      */
     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->context->expects($this->once())
-            ->method('addViolation')
-            ->with('myMessage', array(
-                '{{ ratio }}' => 1,
-                '{{ min_ratio }}' => 2,
-            ));
-
-        $this->validator->validate($this->image, $constraint);
-    }
-
-    public function testRatioTooBig()
-    {
-        $constraint = new Image(array(
-            'maxRatio' => 0.5,
-            'maxRatioMessage' => 'myMessage',
-        ));
-
-        $this->context->expects($this->once())
-            ->method('addViolation')
-            ->with('myMessage', array(
-                '{{ ratio }}' => 1,
-                '{{ max_ratio }}' => 0.5,
-            ));
-
-        $this->validator->validate($this->image, $constraint);
-    }
-
-    /**
-     * @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);
-    }
+        if (!class_exists('Symfony\Component\HttpFoundation\File\File')) {
+            $this->markTestSkipped('The "HttpFoundation" component is not available');
+        }
 
-    public function testSquareNotAllowed()
-    {
         $constraint = new Image(array(
-            'allowSquare' => false,
-            'allowSquareMessage' => 'myMessage',
+            'maxHeight' => '1abc',
         ));
 
-        $this->context->expects($this->once())
-            ->method('addViolation')
-            ->with('myMessage', array(
-                '{{ width }}' => 2,
-                '{{ height }}' => 2,
-            ));
-
         $this->validator->validate($this->image, $constraint);
     }
-
-    public function testLandscapeNotAllowed()
-    {
-        $constraint = new Image(array(
-            'allowLandscape' => false,
-            'allowLandscapeMessage' => 'myMessage',
-        ));
-
-        $this->context->expects($this->once())
-            ->method('addViolation')
-            ->with('myMessage', array(
-                '{{ width }}' => 2,
-                '{{ height }}' => 1,
-            ));
-
-        $this->validator->validate($this->imageLandscape, $constraint);
-    }
-
-    public function testPortraitNotAllowed()
-    {
-        $constraint = new Image(array(
-            'allowPortrait' => false,
-            'allowPortraitMessage' => 'myMessage',
-        ));
-
-        $this->context->expects($this->once())
-            ->method('addViolation')
-            ->with('myMessage', array(
-                '{{ width }}' => 1,
-                '{{ height }}' => 2,
-            ));
-
-        $this->validator->validate($this->imagePortrait, $constraint);
-    }
 }
diff --git a/core/vendor/symfony/validator/Symfony/Component/Validator/Tests/Constraints/LanguageValidatorTest.php b/core/vendor/symfony/validator/Symfony/Component/Validator/Tests/Constraints/LanguageValidatorTest.php
index 3588887d74998092e9b7d957de4cbb5027cab3bc..1230e3f322afe6ae3608a6f6892463a24524e096 100644
--- a/core/vendor/symfony/validator/Symfony/Component/Validator/Tests/Constraints/LanguageValidatorTest.php
+++ b/core/vendor/symfony/validator/Symfony/Component/Validator/Tests/Constraints/LanguageValidatorTest.php
@@ -104,16 +104,4 @@ public function getInvalidLanguages()
             array('foobar'),
         );
     }
-
-    public function testValidateUsingCountrySpecificLocale()
-    {
-        \Locale::setDefault('fr_FR');
-        $existingLanguage = 'en';
-        $this->context->expects($this->never())
-            ->method('addViolation');
-
-        $this->validator->validate($existingLanguage, new Language(array(
-            'message' => 'aMessage'
-        )));
-    }
 }
diff --git a/core/vendor/symfony/validator/Symfony/Component/Validator/Tests/Constraints/LessThanOrEqualValidatorTest.php b/core/vendor/symfony/validator/Symfony/Component/Validator/Tests/Constraints/LessThanOrEqualValidatorTest.php
index 24ad0faf75b055391860c3c9643a6dcaef39e417..406e222119e26407fa175afe5445600e7aefc3f5 100644
--- a/core/vendor/symfony/validator/Symfony/Component/Validator/Tests/Constraints/LessThanOrEqualValidatorTest.php
+++ b/core/vendor/symfony/validator/Symfony/Component/Validator/Tests/Constraints/LessThanOrEqualValidatorTest.php
@@ -39,8 +39,6 @@ public function provideValidComparisons()
             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 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),
@@ -55,7 +53,6 @@ public function provideInvalidComparisons()
         return array(
             array(2, 1, '1', 'integer'),
             array(new \DateTime('2010-01-01'), new \DateTime('2000-01-01'), '2000-01-01 00:00:00', 'DateTime'),
-            array(new ComparisonTest_Class(5), new ComparisonTest_Class(4), '4', __NAMESPACE__.'\ComparisonTest_Class'),
             array('c', 'b', "'b'", 'string')
         );
     }
diff --git a/core/vendor/symfony/validator/Symfony/Component/Validator/Tests/Constraints/LessThanValidatorTest.php b/core/vendor/symfony/validator/Symfony/Component/Validator/Tests/Constraints/LessThanValidatorTest.php
index da7070e762e99426c31633551863994a1a5d3e4b..f26269b3c23bfbfc4aa2d47163f7c8ef1bb6ef43 100644
--- a/core/vendor/symfony/validator/Symfony/Component/Validator/Tests/Constraints/LessThanValidatorTest.php
+++ b/core/vendor/symfony/validator/Symfony/Component/Validator/Tests/Constraints/LessThanValidatorTest.php
@@ -37,7 +37,6 @@ public function provideValidComparisons()
         return array(
             array(1, 2),
             array(new \DateTime('2000-01-01'), new \DateTime('2010-01-01')),
-            array(new ComparisonTest_Class(4), new ComparisonTest_Class(5)),
             array('22', '333'),
             array(null, 1),
         );
@@ -53,8 +52,6 @@ public function provideInvalidComparisons()
             array(2, 2, '2', 'integer'),
             array(new \DateTime('2010-01-01'), new \DateTime('2000-01-01'), '2000-01-01 00:00:00', 'DateTime'),
             array(new \DateTime('2000-01-01'), new \DateTime('2000-01-01'), '2000-01-01 00:00:00', 'DateTime'),
-            array(new ComparisonTest_Class(5), new ComparisonTest_Class(5), '5', __NAMESPACE__.'\ComparisonTest_Class'),
-            array(new ComparisonTest_Class(6), new ComparisonTest_Class(5), '5', __NAMESPACE__.'\ComparisonTest_Class'),
             array('333', '22', "'22'", 'string')
         );
     }
diff --git a/core/vendor/symfony/validator/Symfony/Component/Validator/Tests/Constraints/LuhnValidatorTest.php b/core/vendor/symfony/validator/Symfony/Component/Validator/Tests/Constraints/LuhnValidatorTest.php
index 11c6a7cad529454fbf429483f59d8cdfeca83f1e..963710860b17240b5f3e430577a5f5ae4dedd3ea 100644
--- a/core/vendor/symfony/validator/Symfony/Component/Validator/Tests/Constraints/LuhnValidatorTest.php
+++ b/core/vendor/symfony/validator/Symfony/Component/Validator/Tests/Constraints/LuhnValidatorTest.php
@@ -103,28 +103,7 @@ public function getInvalidNumbers()
             array('1234567812345678'),
             array('4222222222222222'),
             array('0000000000000000'),
-        );
-    }
-
-    /**
-     * @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/Symfony/Component/Validator/Tests/Constraints/NotEqualToValidatorTest.php b/core/vendor/symfony/validator/Symfony/Component/Validator/Tests/Constraints/NotEqualToValidatorTest.php
index dcf46a668d81e4d3a85114554f6f9dbc5a95e75d..0122643a7e86e9a829bdaa8b7112296f6fcff144 100644
--- a/core/vendor/symfony/validator/Symfony/Component/Validator/Tests/Constraints/NotEqualToValidatorTest.php
+++ b/core/vendor/symfony/validator/Symfony/Component/Validator/Tests/Constraints/NotEqualToValidatorTest.php
@@ -13,6 +13,7 @@
 
 use Symfony\Component\Validator\Constraints\NotEqualTo;
 use Symfony\Component\Validator\Constraints\NotEqualToValidator;
+use Symfony\Component\Validator\Tests\Constraints\AbstractComparisonValidatorTestCase;
 
 /**
  * @author Daniel Holmes <daniel@danielholmes.org>
@@ -38,7 +39,6 @@ public function provideValidComparisons()
             array(1, 2),
             array('22', '333'),
             array(new \DateTime('2001-01-01'), new \DateTime('2000-01-01')),
-            array(new ComparisonTest_Class(6), new ComparisonTest_Class(5)),
             array(null, 1),
         );
     }
@@ -52,8 +52,7 @@ public function provideInvalidComparisons()
             array(3, 3, '3', 'integer'),
             array('2', 2, '2', 'integer'),
             array('a', 'a', "'a'", 'string'),
-            array(new \DateTime('2000-01-01'), new \DateTime('2000-01-01'), '2000-01-01 00:00:00', 'DateTime'),
-            array(new ComparisonTest_Class(5), new ComparisonTest_Class(5), '5', __NAMESPACE__.'\ComparisonTest_Class'),
+            array(new \DateTime('2000-01-01'), new \DateTime('2000-01-01'), '2000-01-01 00:00:00', 'DateTime')
         );
     }
 }
diff --git a/core/vendor/symfony/validator/Symfony/Component/Validator/Tests/Constraints/NotIdenticalToValidatorTest.php b/core/vendor/symfony/validator/Symfony/Component/Validator/Tests/Constraints/NotIdenticalToValidatorTest.php
index 28026c08745c71aa80696562a38fb18348ac7707..462202dd5a414bf1ff6e5a1536c4622efe284d80 100644
--- a/core/vendor/symfony/validator/Symfony/Component/Validator/Tests/Constraints/NotIdenticalToValidatorTest.php
+++ b/core/vendor/symfony/validator/Symfony/Component/Validator/Tests/Constraints/NotIdenticalToValidatorTest.php
@@ -13,6 +13,7 @@
 
 use Symfony\Component\Validator\Constraints\NotIdenticalTo;
 use Symfony\Component\Validator\Constraints\NotIdenticalToValidator;
+use Symfony\Component\Validator\Tests\Constraints\AbstractComparisonValidatorTestCase;
 
 /**
  * @author Daniel Holmes <daniel@danielholmes.org>
@@ -50,13 +51,11 @@ public function provideValidComparisons()
     public function provideInvalidComparisons()
     {
         $date = new \DateTime('2000-01-01');
-        $object = new ComparisonTest_Class(2);
 
         return array(
             array(3, 3, '3', 'integer'),
             array('a', 'a', "'a'", 'string'),
-            array($date, $date, '2000-01-01 00:00:00', 'DateTime'),
-            array($object, $object, '2', __NAMESPACE__.'\ComparisonTest_Class'),
+            array($date, $date, '2000-01-01 00:00:00', 'DateTime')
         );
     }
 }
diff --git a/core/vendor/symfony/validator/Symfony/Component/Validator/Tests/Constraints/NullValidatorTest.php b/core/vendor/symfony/validator/Symfony/Component/Validator/Tests/Constraints/NullValidatorTest.php
index d343c869fdf8773d9b57f31a2a6f0ddbf323bf20..4466aa17c9df671b47b6992ec945b062e518c533 100644
--- a/core/vendor/symfony/validator/Symfony/Component/Validator/Tests/Constraints/NullValidatorTest.php
+++ b/core/vendor/symfony/validator/Symfony/Component/Validator/Tests/Constraints/NullValidatorTest.php
@@ -43,7 +43,7 @@ public function testNullIsValid()
     /**
      * @dataProvider getInvalidValues
      */
-    public function testInvalidValues($value, $readableValue)
+    public function testInvalidValues($value)
     {
         $constraint = new Null(array(
             'message' => 'myMessage'
@@ -52,7 +52,7 @@ public function testInvalidValues($value, $readableValue)
         $this->context->expects($this->once())
             ->method('addViolation')
             ->with('myMessage', array(
-                '{{ value }}' => $readableValue,
+                '{{ value }}' => $value,
             ));
 
         $this->validator->validate($value, $constraint);
@@ -61,13 +61,10 @@ public function testInvalidValues($value, $readableValue)
     public function getInvalidValues()
     {
         return array(
-            array(0, 0),
-            array(false, false),
-            array(true, true),
-            array('', ''),
-            array('foo bar', 'foo bar'),
-            array(new \DateTime(), 'DateTime'),
-            array(array(), 'Array'),
+            array(0),
+            array(false),
+            array(true),
+            array(''),
         );
     }
 }
diff --git a/core/vendor/symfony/validator/Symfony/Component/Validator/Tests/Fixtures/CallbackClass.php b/core/vendor/symfony/validator/Symfony/Component/Validator/Tests/Fixtures/CallbackClass.php
deleted file mode 100644
index 0f6a2f4ae3d9f4d9bc156d49f5f4bc7693944ca2..0000000000000000000000000000000000000000
--- a/core/vendor/symfony/validator/Symfony/Component/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/Symfony/Component/Validator/Tests/Fixtures/ConstraintWithValue.php b/core/vendor/symfony/validator/Symfony/Component/Validator/Tests/Fixtures/ConstraintWithValue.php
deleted file mode 100644
index 4ebd981eef92479014fa6ec13bebb06ee813fac5..0000000000000000000000000000000000000000
--- a/core/vendor/symfony/validator/Symfony/Component/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/Symfony/Component/Validator/Tests/Fixtures/ConstraintWithValueAsDefault.php b/core/vendor/symfony/validator/Symfony/Component/Validator/Tests/Fixtures/ConstraintWithValueAsDefault.php
deleted file mode 100644
index a975e0787fc97eda82bcb1452b3356ab9e2b31d6..0000000000000000000000000000000000000000
--- a/core/vendor/symfony/validator/Symfony/Component/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/Symfony/Component/Validator/Tests/Fixtures/Entity.php b/core/vendor/symfony/validator/Symfony/Component/Validator/Tests/Fixtures/Entity.php
index 70bdc5aec699868b2dd3c3a23f6386f1a7fc6cd8..e1cb3e04902ce4609e58089911993d0e403d6f4e 100644
--- a/core/vendor/symfony/validator/Symfony/Component/Validator/Tests/Fixtures/Entity.php
+++ b/core/vendor/symfony/validator/Symfony/Component/Validator/Tests/Fixtures/Entity.php
@@ -12,12 +12,10 @@
 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
 {
@@ -60,18 +58,4 @@ 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/Symfony/Component/Validator/Tests/Mapping/BlackholeMetadataFactoryTest.php b/core/vendor/symfony/validator/Symfony/Component/Validator/Tests/Mapping/BlackholeMetadataFactoryTest.php
deleted file mode 100644
index 74bcc69d7fb32342568c11abb23efe2225550e96..0000000000000000000000000000000000000000
--- a/core/vendor/symfony/validator/Symfony/Component/Validator/Tests/Mapping/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;
-
-use Symfony\Component\Validator\Mapping\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/Symfony/Component/Validator/Tests/Mapping/ClassMetadataFactoryTest.php b/core/vendor/symfony/validator/Symfony/Component/Validator/Tests/Mapping/ClassMetadataFactoryTest.php
index bee4025d0d279828815ceedf3882c736b342c1bb..6f842cd6d1e78404183e0111f321f6b43fee303f 100644
--- a/core/vendor/symfony/validator/Symfony/Component/Validator/Tests/Mapping/ClassMetadataFactoryTest.php
+++ b/core/vendor/symfony/validator/Symfony/Component/Validator/Tests/Mapping/ClassMetadataFactoryTest.php
@@ -77,7 +77,7 @@ public function testWriteMetadataToCache()
               ->will($this->returnValue(false));
         $cache->expects($this->once())
               ->method('write')
-              ->will($this->returnCallback(function ($metadata) use ($tester, $constraints) {
+              ->will($this->returnCallback(function($metadata) use ($tester, $constraints) {
                   $tester->assertEquals($constraints, $metadata->getConstraints());
               }));
 
diff --git a/core/vendor/symfony/validator/Symfony/Component/Validator/Tests/Mapping/Loader/AbstractMethodStaticLoader.php b/core/vendor/symfony/validator/Symfony/Component/Validator/Tests/Mapping/Loader/AbstractMethodStaticLoader.php
index 7c6f362abb537418f4b3fc0da86a7392b5b3cfe2..3a1416cfc56e9c8bf7cae94bb1c1ec8e05948134 100644
--- a/core/vendor/symfony/validator/Symfony/Component/Validator/Tests/Mapping/Loader/AbstractMethodStaticLoader.php
+++ b/core/vendor/symfony/validator/Symfony/Component/Validator/Tests/Mapping/Loader/AbstractMethodStaticLoader.php
@@ -7,4 +7,4 @@
 abstract class AbstractMethodStaticLoader
 {
     abstract public static function loadMetadata(ClassMetadata $metadata);
-}
+}
\ No newline at end of file
diff --git a/core/vendor/symfony/validator/Symfony/Component/Validator/Tests/Mapping/Loader/AnnotationLoaderTest.php b/core/vendor/symfony/validator/Symfony/Component/Validator/Tests/Mapping/Loader/AnnotationLoaderTest.php
index 0d255b8fcad0d63ccc40f946612507883239903d..22a39c582e78018138218f69ab70b0598b49b1b5 100644
--- a/core/vendor/symfony/validator/Symfony/Component/Validator/Tests/Mapping/Loader/AnnotationLoaderTest.php
+++ b/core/vendor/symfony/validator/Symfony/Component/Validator/Tests/Mapping/Loader/AnnotationLoaderTest.php
@@ -13,7 +13,6 @@
 
 use Doctrine\Common\Annotations\AnnotationReader;
 use Symfony\Component\Validator\Constraints\All;
-use Symfony\Component\Validator\Constraints\Callback;
 use Symfony\Component\Validator\Constraints\Collection;
 use Symfony\Component\Validator\Constraints\NotNull;
 use Symfony\Component\Validator\Constraints\Range;
@@ -24,6 +23,13 @@
 
 class AnnotationLoaderTest extends \PHPUnit_Framework_TestCase
 {
+    protected function setUp()
+    {
+        if (!class_exists('Doctrine\Common\Annotations\AnnotationReader')) {
+            $this->markTestSkipped('The "Doctrine Common" library is not available');
+        }
+    }
+
     public function testLoadClassMetadataReturnsTrueIfSuccessful()
     {
         $reader = new AnnotationReader();
@@ -51,9 +57,6 @@ public function testLoadClassMetadata()
         $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)))));
@@ -118,9 +121,6 @@ public function testLoadClassMetadataAndMerge()
 
         $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)))));
diff --git a/core/vendor/symfony/validator/Symfony/Component/Validator/Tests/Mapping/Loader/XmlFileLoaderTest.php b/core/vendor/symfony/validator/Symfony/Component/Validator/Tests/Mapping/Loader/XmlFileLoaderTest.php
index 82195405e6614206dffd53f7f050e5f7ba661552..7c6e355bd171ff7d3fd0f63fa7d878e5fa987190 100644
--- a/core/vendor/symfony/validator/Symfony/Component/Validator/Tests/Mapping/Loader/XmlFileLoaderTest.php
+++ b/core/vendor/symfony/validator/Symfony/Component/Validator/Tests/Mapping/Loader/XmlFileLoaderTest.php
@@ -12,7 +12,6 @@
 namespace Symfony\Component\Validator\Tests\Mapping\Loader;
 
 use Symfony\Component\Validator\Constraints\All;
-use Symfony\Component\Validator\Constraints\Callback;
 use Symfony\Component\Validator\Constraints\Collection;
 use Symfony\Component\Validator\Constraints\NotNull;
 use Symfony\Component\Validator\Constraints\Range;
@@ -52,9 +51,6 @@ public function testLoadClassMetadata()
         $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')));
diff --git a/core/vendor/symfony/validator/Symfony/Component/Validator/Tests/Mapping/Loader/YamlFileLoaderTest.php b/core/vendor/symfony/validator/Symfony/Component/Validator/Tests/Mapping/Loader/YamlFileLoaderTest.php
index 0d9a0b62c31221d11ac4cd06634b58e0e7f1340a..9e31cbb37d22ea793d9a8adb73aac3656b59c1ac 100644
--- a/core/vendor/symfony/validator/Symfony/Component/Validator/Tests/Mapping/Loader/YamlFileLoaderTest.php
+++ b/core/vendor/symfony/validator/Symfony/Component/Validator/Tests/Mapping/Loader/YamlFileLoaderTest.php
@@ -12,7 +12,6 @@
 namespace Symfony\Component\Validator\Tests\Mapping\Loader;
 
 use Symfony\Component\Validator\Constraints\All;
-use Symfony\Component\Validator\Constraints\Callback;
 use Symfony\Component\Validator\Constraints\Collection;
 use Symfony\Component\Validator\Constraints\NotNull;
 use Symfony\Component\Validator\Constraints\Range;
@@ -24,6 +23,13 @@
 
 class YamlFileLoaderTest extends \PHPUnit_Framework_TestCase
 {
+    protected function setUp()
+    {
+        if (!class_exists('Symfony\Component\Yaml\Yaml')) {
+            $this->markTestSkipped('The "Yaml" component is not available');
+        }
+    }
+
     public function testLoadClassMetadataReturnsFalseIfEmpty()
     {
         $loader = new YamlFileLoader(__DIR__.'/empty-mapping.yml');
@@ -69,9 +75,6 @@ public function testLoadClassMetadata()
         $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')));
diff --git a/core/vendor/symfony/validator/Symfony/Component/Validator/Tests/Mapping/Loader/constraint-mapping.xml b/core/vendor/symfony/validator/Symfony/Component/Validator/Tests/Mapping/Loader/constraint-mapping.xml
index 1eee1cb18036a2f6c001e59232a6475c8ddd1770..dfac70d9cf6e2dfaa66a201e4e1763db5c076d1b 100644
--- a/core/vendor/symfony/validator/Symfony/Component/Validator/Tests/Mapping/Loader/constraint-mapping.xml
+++ b/core/vendor/symfony/validator/Symfony/Component/Validator/Tests/Mapping/Loader/constraint-mapping.xml
@@ -21,16 +21,6 @@
     <!-- 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">
diff --git a/core/vendor/symfony/validator/Symfony/Component/Validator/Tests/Mapping/Loader/constraint-mapping.yml b/core/vendor/symfony/validator/Symfony/Component/Validator/Tests/Mapping/Loader/constraint-mapping.yml
index e52d3f04b2ced3bd759d5bb9d03b5fa3f33f369f..38188dc5d976a9618f13b8799f2bbbd8934c06c7 100644
--- a/core/vendor/symfony/validator/Symfony/Component/Validator/Tests/Mapping/Loader/constraint-mapping.yml
+++ b/core/vendor/symfony/validator/Symfony/Component/Validator/Tests/Mapping/Loader/constraint-mapping.yml
@@ -11,10 +11,6 @@ Symfony\Component\Validator\Tests\Fixtures\Entity:
     - 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:
diff --git a/core/vendor/symfony/validator/Symfony/Component/Validator/Tests/ValidatorBuilderTest.php b/core/vendor/symfony/validator/Symfony/Component/Validator/Tests/ValidatorBuilderTest.php
index 900243f31ad6518dc80044af9e4eb38f39abc437..d48d6b1fe429361b8f5c8a4e662e4bd67c40b0cf 100644
--- a/core/vendor/symfony/validator/Symfony/Component/Validator/Tests/ValidatorBuilderTest.php
+++ b/core/vendor/symfony/validator/Symfony/Component/Validator/Tests/ValidatorBuilderTest.php
@@ -75,6 +75,10 @@ public function testAddMethodMappings()
 
     public function testEnableAnnotationMapping()
     {
+        if (!class_exists('Doctrine\Common\Annotations\AnnotationReader')) {
+            $this->markTestSkipped('Annotations is required for this test');
+        }
+
         $this->assertSame($this->builder, $this->builder->enableAnnotationMapping());
     }
 
diff --git a/core/vendor/symfony/validator/Symfony/Component/Validator/ValidatorBuilder.php b/core/vendor/symfony/validator/Symfony/Component/Validator/ValidatorBuilder.php
index e24a7071662e22a5a5662321d57146af81cc6571..a5bfc1fdf63c5182e3d03590c317ffe87521f3b4 100644
--- a/core/vendor/symfony/validator/Symfony/Component/Validator/ValidatorBuilder.php
+++ b/core/vendor/symfony/validator/Symfony/Component/Validator/ValidatorBuilder.php
@@ -11,8 +11,6 @@
 
 namespace Symfony\Component\Validator;
 
-use Symfony\Component\PropertyAccess\PropertyAccess;
-use Symfony\Component\PropertyAccess\PropertyAccessorInterface;
 use Symfony\Component\Validator\Mapping\ClassMetadataFactory;
 use Symfony\Component\Validator\Exception\ValidatorException;
 use Symfony\Component\Validator\Mapping\Loader\LoaderChain;
@@ -86,11 +84,6 @@ class ValidatorBuilder implements ValidatorBuilderInterface
      */
     private $translationDomain;
 
-    /**
-     * @var PropertyAccessorInterface
-     */
-    private $propertyAccessor;
-
     /**
      * {@inheritdoc}
      */
@@ -205,8 +198,8 @@ public function enableAnnotationMapping(Reader $annotationReader = null)
         }
 
         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.');
+            if (!class_exists('Doctrine\Common\Annotations\AnnotationReader')) {
+                throw new \RuntimeException('Requested a ValidatorFactory with an AnnotationLoader, but the AnnotationReader was not found. You should add Doctrine Common to your project.');
             }
 
             $annotationReader = new CachedReader(new AnnotationReader(), new ArrayCache());
@@ -260,10 +253,6 @@ public function setMetadataCache(CacheInterface $cache)
      */
     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;
@@ -289,20 +278,6 @@ public function setTranslationDomain($translationDomain)
         return $this;
     }
 
-    /**
-     * {@inheritdoc}
-     */
-    public function setPropertyAccessor(PropertyAccessorInterface $propertyAccessor)
-    {
-        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}
      */
@@ -344,8 +319,7 @@ public function getValidator()
             $metadataFactory = new ClassMetadataFactory($loader, $this->metadataCache);
         }
 
-        $propertyAccessor = $this->propertyAccessor ?: PropertyAccess::createPropertyAccessor();
-        $validatorFactory = $this->validatorFactory ?: new ConstraintValidatorFactory($propertyAccessor);
+        $validatorFactory = $this->validatorFactory ?: new ConstraintValidatorFactory();
         $translator = $this->translator ?: new DefaultTranslator();
 
         return new Validator($metadataFactory, $validatorFactory, $translator, $this->translationDomain, $this->initializers);
diff --git a/core/vendor/symfony/validator/Symfony/Component/Validator/ValidatorBuilderInterface.php b/core/vendor/symfony/validator/Symfony/Component/Validator/ValidatorBuilderInterface.php
index 92aaca756a3bcddb907a4e82e754428a375357e1..99f367b6aa1ae2507d207ce06126b6630c7ee141 100644
--- a/core/vendor/symfony/validator/Symfony/Component/Validator/ValidatorBuilderInterface.php
+++ b/core/vendor/symfony/validator/Symfony/Component/Validator/ValidatorBuilderInterface.php
@@ -11,7 +11,6 @@
 
 namespace Symfony\Component\Validator;
 
-use Symfony\Component\PropertyAccess\PropertyAccessorInterface;
 use Symfony\Component\Validator\Mapping\Cache\CacheInterface;
 use Symfony\Component\Translation\TranslatorInterface;
 use Doctrine\Common\Annotations\Reader;
@@ -160,15 +159,6 @@ public function setTranslator(TranslatorInterface $translator);
      */
     public function setTranslationDomain($translationDomain);
 
-    /**
-     * Sets the property accessor for resolving property paths.
-     *
-     * @param PropertyAccessorInterface $propertyAccessor The property accessor.
-     *
-     * @return ValidatorBuilderInterface The builder object.
-     */
-    public function setPropertyAccessor(PropertyAccessorInterface $propertyAccessor);
-
     /**
      * Builds and returns a new validator object.
      *
diff --git a/core/vendor/symfony/validator/Symfony/Component/Validator/ValidatorInterface.php b/core/vendor/symfony/validator/Symfony/Component/Validator/ValidatorInterface.php
index 98e02d90cf4d8085a7baec19a376250bd0b9f27a..b56c5801f290a9113db33aa6c371fb255345a877 100644
--- a/core/vendor/symfony/validator/Symfony/Component/Validator/ValidatorInterface.php
+++ b/core/vendor/symfony/validator/Symfony/Component/Validator/ValidatorInterface.php
@@ -11,6 +11,8 @@
 
 namespace Symfony\Component\Validator;
 
+use Symfony\Component\Validator\Constraint;
+
 /**
  * Validates values and graphs of objects and arrays.
  *
diff --git a/core/vendor/symfony/validator/Symfony/Component/Validator/composer.json b/core/vendor/symfony/validator/Symfony/Component/Validator/composer.json
index 1b4b6a69078223bfa33aedb6d2dee35e8060efc3..951ef01526e9b3c80dd77745b9133b189dd609dd 100644
--- a/core/vendor/symfony/validator/Symfony/Component/Validator/composer.json
+++ b/core/vendor/symfony/validator/Symfony/Component/Validator/composer.json
@@ -17,20 +17,16 @@
     ],
     "require": {
         "php": ">=5.3.3",
-        "symfony/translation": "~2.0",
-        "symfony/property-access": "~2.2"
+        "symfony/translation": "~2.0"
     },
     "require-dev": {
         "symfony/http-foundation": "~2.1",
         "symfony/intl": "~2.3",
         "symfony/yaml": "~2.0",
-        "symfony/config": "~2.2",
-        "doctrine/annotations": "~1.0",
-        "doctrine/cache": "~1.0"
+        "symfony/config": "~2.2"
     },
     "suggest": {
-        "doctrine/annotations": "For using the annotation mapping. You will also need doctrine/cache.",
-        "doctrine/cache": "For using the default cached annotation reader",
+        "doctrine/common": "",
         "symfony/http-foundation": "",
         "symfony/intl": "",
         "symfony/yaml": "",
@@ -43,7 +39,7 @@
     "minimum-stability": "dev",
     "extra": {
         "branch-alias": {
-            "dev-master": "2.4-dev"
+            "dev-master": "2.3-dev"
         }
     }
 }
diff --git a/core/vendor/symfony/yaml/Symfony/Component/Yaml/Escaper.php b/core/vendor/symfony/yaml/Symfony/Component/Yaml/Escaper.php
index 3576e9ae6faa4be62804c174c6b695dda80bd37f..f77545db9563264c9c3a9d01336ef991eb7ab9d3 100644
--- a/core/vendor/symfony/yaml/Symfony/Component/Yaml/Escaper.php
+++ b/core/vendor/symfony/yaml/Symfony/Component/Yaml/Escaper.php
@@ -2,7 +2,6 @@
 
 /*
  * This file is part of the Symfony package.
- *
  * (c) Fabien Potencier <fabien@symfony.com>
  *
  * For the full copyright and license information, please view the LICENSE
@@ -72,7 +71,7 @@ public static function escapeWithDoubleQuotes($value)
      */
     public static function requiresSingleQuoting($value)
     {
-        return preg_match('/[ \s \' " \: \{ \} \[ \] , & \* \# \?] | \A[ \- ? | < > = ! % @ ` ]/x', $value);
+        return preg_match('/[ \s \' " \: \{ \} \[ \] , & \* \# \?] | \A[ - ? | < > = ! % @ ` ]/x', $value);
     }
 
     /**
diff --git a/core/vendor/symfony/yaml/Symfony/Component/Yaml/Exception/ParseException.php b/core/vendor/symfony/yaml/Symfony/Component/Yaml/Exception/ParseException.php
index 938097b8b3e597f964ac76d29690a5ac098b905e..a27a005e6f551f82db049e61642df89889c41e70 100644
--- a/core/vendor/symfony/yaml/Symfony/Component/Yaml/Exception/ParseException.php
+++ b/core/vendor/symfony/yaml/Symfony/Component/Yaml/Exception/ParseException.php
@@ -11,11 +11,6 @@
 
 namespace Symfony\Component\Yaml\Exception;
 
-if (!defined('JSON_UNESCAPED_UNICODE')) {
-    define('JSON_UNESCAPED_SLASHES', 64);
-    define('JSON_UNESCAPED_UNICODE', 256);
-}
-
 /**
  * Exception class thrown when an error occurs during parsing.
  *
@@ -37,9 +32,9 @@ class ParseException extends RuntimeException
      * @param integer   $parsedLine The line where the error occurred
      * @param integer   $snippet    The snippet of code near the problem
      * @param string    $parsedFile The file name where the error occurred
-     * @param \Exception $previous   The previous exception
+     * @param Exception $previous   The previous exception
      */
-    public function __construct($message, $parsedLine = -1, $snippet = null, $parsedFile = null, \Exception $previous = null)
+    public function __construct($message, $parsedLine = -1, $snippet = null, $parsedFile = null, Exception $previous = null)
     {
         $this->parsedFile = $parsedFile;
         $this->parsedLine = $parsedLine;
@@ -130,7 +125,7 @@ private function updateRepr()
         }
 
         if (null !== $this->parsedFile) {
-            $this->message .= sprintf(' in %s', json_encode($this->parsedFile, JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE));
+            $this->message .= sprintf(' in %s', json_encode($this->parsedFile));
         }
 
         if ($this->parsedLine >= 0) {
diff --git a/core/vendor/symfony/yaml/Symfony/Component/Yaml/Inline.php b/core/vendor/symfony/yaml/Symfony/Component/Yaml/Inline.php
index 45efced3c89acc62abe281b76711e68fb3125166..45978a12554a7663fe3b7669a778e41e00dc401d 100644
--- a/core/vendor/symfony/yaml/Symfony/Component/Yaml/Inline.php
+++ b/core/vendor/symfony/yaml/Symfony/Component/Yaml/Inline.php
@@ -2,7 +2,6 @@
 
 /*
  * This file is part of the Symfony package.
- *
  * (c) Fabien Potencier <fabien@symfony.com>
  *
  * For the full copyright and license information, please view the LICENSE
diff --git a/core/vendor/symfony/yaml/Symfony/Component/Yaml/Parser.php b/core/vendor/symfony/yaml/Symfony/Component/Yaml/Parser.php
index e8fe91848ebbdc8229e39842723b85840bbd983d..d852cbf9bcf1f260bd89036904ad68ea76b108b6 100644
--- a/core/vendor/symfony/yaml/Symfony/Component/Yaml/Parser.php
+++ b/core/vendor/symfony/yaml/Symfony/Component/Yaml/Parser.php
@@ -2,7 +2,6 @@
 
 /*
  * This file is part of the Symfony package.
- *
  * (c) Fabien Potencier <fabien@symfony.com>
  *
  * For the full copyright and license information, please view the LICENSE
diff --git a/core/vendor/symfony/yaml/Symfony/Component/Yaml/README.md b/core/vendor/symfony/yaml/Symfony/Component/Yaml/README.md
index 941a3460e317c769c889182bdca925a78a23f000..0864e49dca05ee3af6487e39234ef2f602333452 100644
--- a/core/vendor/symfony/yaml/Symfony/Component/Yaml/README.md
+++ b/core/vendor/symfony/yaml/Symfony/Component/Yaml/README.md
@@ -15,5 +15,5 @@ Resources
 You can run the unit tests with the following command:
 
     $ cd path/to/Symfony/Component/Yaml/
-    $ composer.phar install
+    $ composer.phar install --dev
     $ phpunit
diff --git a/core/vendor/symfony/yaml/Symfony/Component/Yaml/Tests/Fixtures/YtsBasicTests.yml b/core/vendor/symfony/yaml/Symfony/Component/Yaml/Tests/Fixtures/YtsBasicTests.yml
index ac0efa88d1a1bb7d510c54338a37e4905df68c4a..5542b0dc6326caf9855a3f2e86243780bd735adb 100644
--- a/core/vendor/symfony/yaml/Symfony/Component/Yaml/Tests/Fixtures/YtsBasicTests.yml
+++ b/core/vendor/symfony/yaml/Symfony/Component/Yaml/Tests/Fixtures/YtsBasicTests.yml
@@ -56,7 +56,7 @@ 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
+    list on a new line, with a colon seperating the key
     from its value.  In YAML, this type of list is called
     a mapping.
 yaml: |
diff --git a/core/vendor/symfony/yaml/Symfony/Component/Yaml/Tests/Fixtures/YtsSpecificationExamples.yml b/core/vendor/symfony/yaml/Symfony/Component/Yaml/Tests/Fixtures/YtsSpecificationExamples.yml
index 1e59f3bf9888429752819aff27ebd52735cb714d..6f99f7545306020ae07ee6a610c5509a39079930 100644
--- a/core/vendor/symfony/yaml/Symfony/Component/Yaml/Tests/Fixtures/YtsSpecificationExamples.yml
+++ b/core/vendor/symfony/yaml/Symfony/Component/Yaml/Tests/Fixtures/YtsSpecificationExamples.yml
@@ -222,7 +222,7 @@ yaml: |
       # Following node labeled SS
       - &SS Sammy Sosa
    rbi:
-      - *SS # Subsequent occurrence
+      - *SS # Subsequent occurance
       - Ken Griffey
 php: |
    array(
diff --git a/core/vendor/symfony/yaml/Symfony/Component/Yaml/Tests/Fixtures/YtsTypeTransfers.yml b/core/vendor/symfony/yaml/Symfony/Component/Yaml/Tests/Fixtures/YtsTypeTransfers.yml
index aac4e68077f679eacbd08e862777c22fa3127350..9972c1f0d9d528f090ddee99dc206d35c1826a22 100644
--- a/core/vendor/symfony/yaml/Symfony/Component/Yaml/Tests/Fixtures/YtsTypeTransfers.yml
+++ b/core/vendor/symfony/yaml/Symfony/Component/Yaml/Tests/Fixtures/YtsTypeTransfers.yml
@@ -226,11 +226,11 @@ brief: >
     time zone.
 yaml: |
     iso8601: 2001-12-14t21:59:43.10-05:00
-    space separated: 2001-12-14 21:59:43.10 -05:00
+    space seperated: 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" )
+      'space seperated' => mktime( 2001, 12, 14, 21, 59, 43, 0.10, "-05:00" )
     )
 ---
 test: Date
diff --git a/core/vendor/symfony/yaml/Symfony/Component/Yaml/Tests/InlineTest.php b/core/vendor/symfony/yaml/Symfony/Component/Yaml/Tests/InlineTest.php
index dc497ca21c7c81b83ef4c45938633797f0268b6d..a93b91612dcae9c85b7354bbdb6753e010ab8218 100644
--- a/core/vendor/symfony/yaml/Symfony/Component/Yaml/Tests/InlineTest.php
+++ b/core/vendor/symfony/yaml/Symfony/Component/Yaml/Tests/InlineTest.php
@@ -11,6 +11,7 @@
 
 namespace Symfony\Component\Yaml\Tests;
 
+use Symfony\Component\Yaml\Yaml;
 use Symfony\Component\Yaml\Inline;
 
 class InlineTest extends \PHPUnit_Framework_TestCase
@@ -30,11 +31,11 @@ public function testDump()
             $this->assertEquals($yaml, Inline::dump($value), sprintf('::dump() converts a PHP structure to an inline YAML (%s)', $yaml));
         }
 
-        foreach ($this->getTestsForParse() as $value) {
+        foreach ($this->getTestsForParse() as $yaml => $value) {
             $this->assertEquals($value, Inline::parse(Inline::dump($value)), 'check consistency');
         }
 
-        foreach ($testsForDump as $value) {
+        foreach ($testsForDump as $yaml => $value) {
             $this->assertEquals($value, Inline::parse(Inline::dump($value)), 'check consistency');
         }
     }
@@ -196,6 +197,7 @@ protected function getTestsForDump()
             '.Inf' => -log(0),
             '-.Inf' => log(0),
             "'686e444'" => '686e444',
+            '.Inf' => 646e444,
             '"foo\r\nbar"' => "foo\r\nbar",
             "'foo#bar'" => 'foo#bar',
             "'foo # bar'" => 'foo # bar',
@@ -203,9 +205,6 @@ protected function getTestsForDump()
 
             "'a \"string\" with ''quoted strings inside'''" => 'a "string" with \'quoted strings inside\'',
 
-            "'-dash'" => '-dash',
-            "'-'" => '-',
-
             // sequences
             '[foo, bar, false, null, 12]' => array('foo', 'bar', false, null, 12),
             '[\'foo,bar\', \'foo bar\']' => array('foo,bar', 'foo bar'),
diff --git a/core/vendor/symfony/yaml/Symfony/Component/Yaml/Tests/ParseExceptionTest.php b/core/vendor/symfony/yaml/Symfony/Component/Yaml/Tests/ParseExceptionTest.php
deleted file mode 100644
index 289965e8d967ef038562e96a458a64ea9d4e1cd7..0000000000000000000000000000000000000000
--- a/core/vendor/symfony/yaml/Symfony/Component/Yaml/Tests/ParseExceptionTest.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\Yaml\Tests;
-
-use Symfony\Component\Yaml\Exception\ParseException;
-use Symfony\Component\Yaml\Yaml;
-
-class ParseExceptionTest extends \PHPUnit_Framework_TestCase
-{
-    public function testGetMessage()
-    {
-        $exception = new ParseException('Error message', 42, 'foo: bar', '/var/www/app/config.yml');
-        if (version_compare(PHP_VERSION, '5.4.0', '>=')) {
-            $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());
-    }
-}
diff --git a/core/vendor/symfony/yaml/Symfony/Component/Yaml/Unescaper.php b/core/vendor/symfony/yaml/Symfony/Component/Yaml/Unescaper.php
index 1b8eeed57a94a6aefb037d68a43c7a71c89864f3..708f2a18f2851e36ce0e2e49dcf019d7404a3e89 100644
--- a/core/vendor/symfony/yaml/Symfony/Component/Yaml/Unescaper.php
+++ b/core/vendor/symfony/yaml/Symfony/Component/Yaml/Unescaper.php
@@ -2,7 +2,6 @@
 
 /*
  * This file is part of the Symfony package.
- *
  * (c) Fabien Potencier <fabien@symfony.com>
  *
  * For the full copyright and license information, please view the LICENSE
@@ -49,7 +48,7 @@ public function unescapeSingleQuotedString($value)
     public function unescapeDoubleQuotedString($value)
     {
         $self = $this;
-        $callback = function ($match) use ($self) {
+        $callback = function($match) use ($self) {
             return $self->unescapeCharacter($match[0]);
         };
 
@@ -131,7 +130,7 @@ public function unescapeCharacter($value)
      *
      * @return string The string with the new encoding
      *
-     * @throws \RuntimeException if no suitable encoding function is found (iconv or mbstring)
+     * @throws RuntimeException if no suitable encoding function is found (iconv or mbstring)
      */
     private function convertEncoding($value, $to, $from)
     {
@@ -141,6 +140,6 @@ private function convertEncoding($value, $to, $from)
             return iconv($from, $to, $value);
         }
 
-        throw new \RuntimeException('No suitable convert encoding function (install the iconv or mbstring extension).');
+        throw new RuntimeException('No suitable convert encoding function (install the iconv or mbstring extension).');
     }
 }
diff --git a/core/vendor/symfony/yaml/Symfony/Component/Yaml/composer.json b/core/vendor/symfony/yaml/Symfony/Component/Yaml/composer.json
index 33c298535449cd0591202247a97348b06889c2e5..1a009c16d6a27bbca9c1dfdb21969a4897a431a0 100644
--- a/core/vendor/symfony/yaml/Symfony/Component/Yaml/composer.json
+++ b/core/vendor/symfony/yaml/Symfony/Component/Yaml/composer.json
@@ -25,7 +25,7 @@
     "minimum-stability": "dev",
     "extra": {
         "branch-alias": {
-            "dev-master": "2.4-dev"
+            "dev-master": "2.3-dev"
         }
     }
 }