From d3621a6d42633fe8e56a8fc1f8908edb641b3868 Mon Sep 17 00:00:00 2001
From: Demian Katz <demian.katz@villanova.edu>
Date: Fri, 19 Apr 2013 11:55:13 -0400
Subject: [PATCH] Upgrade to Zend Framework 2.1.5.

---
 composer.json                                 |    2 +-
 composer.lock                                 |   74 +-
 vendor/autoload.php                           |    2 +-
 vendor/bin/classmap_generator.php             |    1 +
 vendor/composer/ClassLoader.php               |    4 +-
 vendor/composer/autoload_classmap.php         |  200 +-
 vendor/composer/autoload_namespaces.php       |   14 +-
 vendor/composer/autoload_real.php             |    6 +-
 vendor/composer/include_paths.php             |   20 +-
 vendor/composer/installed.json                |   58 +-
 .../yaml/Symfony/Component/Yaml/Inline.php    |    5 -
 .../yaml/Symfony/Component/Yaml/Parser.php    |   85 +-
 .../Component/Yaml/Tests/DumperTest.php       |   72 +-
 .../Component/Yaml/Tests/ParserTest.php       |  116 +-
 .../zendframework/zendframework/CHANGELOG.md  | 1769 +++++++++++++++++
 .../zendframework/CONTRIBUTING.md             |   77 +
 vendor/zendframework/zendframework/INSTALL.md |   65 +
 .../zendframework/zendframework/README-GIT.md |  278 +++
 vendor/zendframework/zendframework/README.md  |   95 +-
 .../zendframework/bin/check-cs.sh             |    0
 .../zendframework/bin/classmap_generator.php  |    7 +-
 .../zendframework/bin/pluginmap_generator.php |    7 +-
 .../bin/templatemap_generator.php             |    7 +-
 vendor/zendframework/zendframework/build.xml  |  138 ++
 .../Zend/Barcode/Object/AbstractObject.php    |    2 +-
 .../library/Zend/Barcode/Object/Ean13.php     |    2 +-
 .../Barcode/Renderer/AbstractRenderer.php     |    2 +-
 .../Cache/Storage/Adapter/AbstractAdapter.php |    2 +-
 .../Storage/Adapter/FilesystemIterator.php    |   17 +-
 .../Code/Generator/ParameterGenerator.php     |    2 +
 .../Code/Reflection/DocBlockReflection.php    |    2 +-
 .../Code/Reflection/ParameterReflection.php   |    2 +
 .../Zend/Code/Scanner/DocBlockScanner.php     |    6 +-
 .../Zend/Config/WriterPluginManager.php       |    0
 .../Zend/Console/Adapter/AbstractAdapter.php  |   75 +-
 .../library/Zend/Console/Adapter/Posix.php    |   18 +
 .../library/Zend/Db/Adapter/Adapter.php       |    2 +-
 .../Zend/Db/Adapter/AdapterAwareTrait.php     |    3 -
 .../Db/Adapter/Driver/IbmDb2/Connection.php   |    0
 .../Zend/Db/Adapter/Driver/IbmDb2/IbmDb2.php  |    0
 .../Zend/Db/Adapter/Driver/IbmDb2/Result.php  |    0
 .../Db/Adapter/Driver/IbmDb2/Statement.php    |    0
 .../Db/Adapter/Driver/Mysqli/Connection.php   |    3 +-
 .../Db/Adapter/Driver/Oci8/Connection.php     |    0
 .../Zend/Db/Adapter/Driver/Oci8/Oci8.php      |    6 +-
 .../Zend/Db/Adapter/Driver/Oci8/Result.php    |    0
 .../Zend/Db/Adapter/Driver/Oci8/Statement.php |    0
 .../Zend/Db/Adapter/Driver/Pdo/Connection.php |    3 +
 .../Db/Adapter/Driver/Pgsql/Connection.php    |    9 +
 .../Db/Adapter/Driver/Sqlsrv/Connection.php   |    3 +
 .../Zend/Db/Adapter/Driver/Sqlsrv/Sqlsrv.php  |    0
 .../Zend/Db/Adapter/Platform/IbmDb2.php       |    0
 .../Zend/Db/Adapter/Platform/Mysql.php        |   16 +-
 .../Zend/Db/Adapter/Platform/Oracle.php       |    0
 .../Zend/Db/Adapter/Platform/Postgresql.php   |   14 +-
 .../Zend/Db/Adapter/Platform/SqlServer.php    |   19 +-
 .../Zend/Db/Adapter/Platform/Sqlite.php       |   16 +-
 .../Db/Metadata/Source/AbstractSource.php     |   58 +-
 .../Zend/Db/Metadata/Source/MysqlMetadata.php |   46 +-
 .../Db/Metadata/Source/PostgresqlMetadata.php |   26 +-
 .../Db/Metadata/Source/SqlServerMetadata.php  |   28 +-
 .../Db/Metadata/Source/SqliteMetadata.php     |    2 +-
 .../Db/RowGateway/Feature/AbstractFeature.php |    2 +-
 .../Zend/Db/Sql/Platform/Oracle/Oracle.php    |    0
 .../Sql/Platform/Oracle/SelectDecorator.php   |    8 +
 .../library/Zend/Db/Sql/Select.php            |   29 +-
 .../TableGateway/Feature/AbstractFeature.php  |    2 +-
 .../TableGateway/Feature/SequenceFeature.php  |   21 +-
 .../library/Zend/Db/composer.json             |    0
 .../library/Zend/Escaper/Escaper.php          |    6 +-
 .../Zend/EventManager/EventManager.php        |   16 +-
 .../Zend/EventManager/ProvidesEvents.php      |    2 +-
 .../Feed/PubSubHubbub/AbstractCallback.php    |    4 +-
 .../Feed/PubSubHubbub/Model/AbstractModel.php |    2 +-
 .../Feed/Writer/Renderer/AbstractRenderer.php |    2 +-
 .../File/Transfer/Adapter/AbstractAdapter.php |    5 +-
 .../library/Zend/Filter/FilterChain.php       |    4 +-
 .../library/Zend/Filter/PregReplace.php       |    2 +-
 .../library/Zend/Form/Element/Collection.php  |   57 +-
 .../zendframework/library/Zend/Form/Form.php  |    8 +-
 .../Form/View/Helper/FormDateTimeSelect.php   |   20 +-
 .../Form/View/Helper/FormMultiCheckbox.php    |    4 +-
 .../library/Zend/Form/View/Helper/FormRow.php |    2 +
 .../library/Zend/Http/Client/Adapter/Curl.php |    3 +
 .../library/Zend/Http/Headers.php             |    2 +-
 .../Zend/Http/PhpEnvironment/Request.php      |    1 -
 .../library/Zend/Http/Response.php            |    2 +-
 .../library/Zend/Http/Response/Stream.php     |    2 +-
 .../Zend/I18n/Translator/Plural/Rule.php      |   10 +
 .../Zend/I18n/Translator/TextDomain.php       |   30 +-
 .../Zend/I18n/Translator/Translator.php       |   83 +-
 .../Zend/InputFilter/BaseInputFilter.php      |    7 +-
 .../library/Zend/InputFilter/Factory.php      |    6 +-
 .../library/Zend/Json/Decoder.php             |   10 +-
 .../zendframework/library/Zend/Json/Expr.php  |   12 +-
 .../zendframework/library/Zend/Json/Json.php  |   24 +-
 .../library/Zend/Json/Server/Cache.php        |    2 +-
 .../Json/Server/Exception/HttpException.php   |    2 +-
 .../library/Zend/Json/Server/Server.php       |    6 +-
 .../library/Zend/Loader/AutoloaderFactory.php |    2 -
 .../Zend/Mail/Header/GenericHeader.php        |    4 +-
 .../library/Zend/Mail/Headers.php             |    2 +-
 .../library/Zend/Math/composer.json           |    2 +-
 .../Zend/ModuleManager/ModuleManager.php      |    2 +-
 .../library/Zend/Mvc/Application.php          |    2 +-
 .../Mvc/Controller/AbstractController.php     |    8 +-
 .../Controller/AbstractRestfulController.php  |    4 +-
 .../Controller/Plugin/FilePostRedirectGet.php |   10 +-
 .../Mvc/Controller/Plugin/FlashMessenger.php  |   22 +-
 .../Mvc/Controller/Plugin/PostRedirectGet.php |    4 +-
 .../Zend/Mvc/Controller/Plugin/Redirect.php   |    2 +-
 .../Zend/Mvc/Router/Console/Simple.php        |   56 +-
 .../library/Zend/Mvc/Router/Http/Query.php    |    9 +-
 .../Zend/Mvc/Router/Http/TreeRouteStack.php   |    3 +
 .../Zend/Mvc/Router/SimpleRouteStack.php      |    4 +-
 .../library/Zend/Mvc/SendResponseListener.php |    2 +-
 .../Mvc/Service/ConsoleAdapterFactory.php     |    2 +-
 .../DiAbstractServiceFactoryFactory.php       |    4 +-
 .../View/Console/RouteNotFoundStrategy.php    |   16 +-
 .../library/Zend/Mvc/composer.json            |    1 +
 .../Zend/Navigation/AbstractContainer.php     |    2 +-
 .../Zend/Navigation/Page/AbstractPage.php     |    2 +-
 .../library/Zend/Navigation/Page/Mvc.php      |   60 +-
 .../Service/AbstractNavigationFactory.php     |   20 +-
 .../Service/ConstructedNavigationFactory.php  |   10 +-
 .../library/Zend/Permissions/Acl/Acl.php      |    4 +
 .../Zend/Permissions/Acl/Role/Registry.php    |    7 +-
 .../Permissions/Rbac/AbstractIterator.php     |    6 +-
 .../library/Zend/Permissions/Rbac/Rbac.php    |    2 +-
 .../Zend/Serializer/Adapter/PythonPickle.php  |    2 +-
 .../library/Zend/Server/AbstractServer.php    |   10 +-
 .../Zend/ServiceManager/ServiceManager.php    |   10 +-
 .../Zend/Session/Config/StandardConfig.php    |    2 +-
 .../library/Zend/Stdlib/AbstractOptions.php   |   22 +-
 .../Zend/Stdlib/Hydrator/ClassMethods.php     |    2 +-
 .../library/Zend/Stdlib/PriorityQueue.php     |    9 +-
 .../library/Zend/Stdlib/composer.json         |    5 +-
 .../Controller/AbstractControllerTestCase.php |    1 +
 .../AbstractHttpControllerTestCase.php        |    4 +-
 .../zendframework/library/Zend/Uri/Uri.php    |    4 +-
 .../library/Zend/Validator/CreditCard.php     |    2 +-
 .../library/Zend/Validator/Explode.php        |    2 +-
 .../Zend/Validator/File/ExcludeMimeType.php   |    5 +-
 .../library/Zend/Validator/File/MimeType.php  |    8 +-
 .../library/Zend/Validator/File/WordCount.php |    4 +-
 .../library/Zend/Validator/InArray.php        |    2 +-
 .../library/Zend/Version/Version.php          |    2 +-
 .../Zend/View/Helper/FlashMessenger.php       |    2 +-
 .../library/Zend/View/Helper/Navigation.php   |    4 +
 .../zendframework/library/Zend/View/View.php  |    6 +-
 .../library/Zend/View/composer.json           |    3 +-
 .../resources/languages/ar/Zend_Validate.php  |    2 +-
 .../resources/languages/bg/Zend_Validate.php  |    2 +-
 .../resources/languages/ca/Zend_Captcha.php   |    4 +-
 .../resources/languages/ca/Zend_Validate.php  |  203 +-
 .../resources/languages/cs/Zend_Captcha.php   |    4 +-
 .../resources/languages/cs/Zend_Validate.php  |  104 +-
 .../resources/languages/de/Zend_Validate.php  |    9 +-
 .../resources/languages/en/Zend_Captcha.php   |    4 +-
 .../resources/languages/en/Zend_Validate.php  |  201 +-
 .../resources/languages/es/Zend_Validate.php  |    2 +-
 .../resources/languages/fi/Zend_Validate.php  |    2 +-
 .../resources/languages/fr/Zend_Validate.php  |    4 +-
 .../resources/languages/hr/Zend_Validate.php  |    2 +-
 .../resources/languages/it/Zend_Captcha.php   |    4 +-
 .../resources/languages/it/Zend_Validate.php  |  203 +-
 .../resources/languages/ja/Zend_Validate.php  |    2 +-
 .../resources/languages/nl/Zend_Validate.php  |    2 +-
 .../resources/languages/no/Zend_Validate.php  |    2 +-
 .../resources/languages/pl/Zend_Validate.php  |    2 +-
 .../languages/pt_BR/Zend_Validate.php         |    2 +-
 .../resources/languages/ru/Zend_Validate.php  |    2 +-
 .../resources/languages/se/Zend_Validate.php  |  300 +--
 .../resources/languages/sk/Zend_Validate.php  |    2 +-
 .../resources/languages/sl/Zend_Validate.php  |    2 +-
 .../resources/languages/sr/Zend_Validate.php  |    2 +-
 .../resources/languages/tr/Zend_Validate.php  |    2 +-
 .../resources/languages/uk/Zend_Validate.php  |    2 +-
 .../resources/languages/zh/Zend_Validate.php  |    2 +-
 179 files changed, 4033 insertions(+), 1310 deletions(-)
 create mode 120000 vendor/bin/classmap_generator.php
 create mode 100644 vendor/zendframework/zendframework/CHANGELOG.md
 create mode 100644 vendor/zendframework/zendframework/CONTRIBUTING.md
 create mode 100644 vendor/zendframework/zendframework/INSTALL.md
 create mode 100644 vendor/zendframework/zendframework/README-GIT.md
 mode change 100755 => 100644 vendor/zendframework/zendframework/bin/check-cs.sh
 mode change 100755 => 100644 vendor/zendframework/zendframework/bin/pluginmap_generator.php
 create mode 100644 vendor/zendframework/zendframework/build.xml
 mode change 100755 => 100644 vendor/zendframework/zendframework/library/Zend/Config/WriterPluginManager.php
 mode change 100755 => 100644 vendor/zendframework/zendframework/library/Zend/Db/Adapter/Adapter.php
 mode change 100755 => 100644 vendor/zendframework/zendframework/library/Zend/Db/Adapter/Driver/IbmDb2/Connection.php
 mode change 100755 => 100644 vendor/zendframework/zendframework/library/Zend/Db/Adapter/Driver/IbmDb2/IbmDb2.php
 mode change 100755 => 100644 vendor/zendframework/zendframework/library/Zend/Db/Adapter/Driver/IbmDb2/Result.php
 mode change 100755 => 100644 vendor/zendframework/zendframework/library/Zend/Db/Adapter/Driver/IbmDb2/Statement.php
 mode change 100755 => 100644 vendor/zendframework/zendframework/library/Zend/Db/Adapter/Driver/Oci8/Connection.php
 mode change 100755 => 100644 vendor/zendframework/zendframework/library/Zend/Db/Adapter/Driver/Oci8/Oci8.php
 mode change 100755 => 100644 vendor/zendframework/zendframework/library/Zend/Db/Adapter/Driver/Oci8/Result.php
 mode change 100755 => 100644 vendor/zendframework/zendframework/library/Zend/Db/Adapter/Driver/Oci8/Statement.php
 mode change 100755 => 100644 vendor/zendframework/zendframework/library/Zend/Db/Adapter/Driver/Sqlsrv/Sqlsrv.php
 mode change 100755 => 100644 vendor/zendframework/zendframework/library/Zend/Db/Adapter/Platform/IbmDb2.php
 mode change 100755 => 100644 vendor/zendframework/zendframework/library/Zend/Db/Adapter/Platform/Oracle.php
 mode change 100755 => 100644 vendor/zendframework/zendframework/library/Zend/Db/Adapter/Platform/SqlServer.php
 mode change 100755 => 100644 vendor/zendframework/zendframework/library/Zend/Db/Sql/Platform/Oracle/Oracle.php
 mode change 100755 => 100644 vendor/zendframework/zendframework/library/Zend/Db/Sql/Platform/Oracle/SelectDecorator.php
 mode change 100755 => 100644 vendor/zendframework/zendframework/library/Zend/Db/composer.json

diff --git a/composer.json b/composer.json
index f4fe389e94a..177ace6dae8 100644
--- a/composer.json
+++ b/composer.json
@@ -58,7 +58,7 @@
         "pear-pear.php.net/validate_ispn": "*",
         "serialssolutions/summon": "dev-master",
         "symfony/yaml": "*",
-        "zendframework/zendframework": "2.1.4",
+        "zendframework/zendframework": "2.1.5",
         "zendframework/zendrest": "2.*",
         "zendframework/zendservice-amazon": "2.*"
     }
diff --git a/composer.lock b/composer.lock
index 82787d1d450..4529aa80f94 100644
--- a/composer.lock
+++ b/composer.lock
@@ -1,5 +1,9 @@
 {
-    "hash": "7de64bb8d46e7d1bedb9d410001c0953",
+    "_readme": [
+        "This file locks the dependencies of your project to a known state",
+        "Read more about it at http://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file"
+    ],
+    "hash": "6d15916402b119f0730b7a6b16b86123",
     "packages": [
         {
             "name": "johnwohlers/sip2",
@@ -317,17 +321,17 @@
         },
         {
             "name": "symfony/yaml",
-            "version": "v2.2.0",
+            "version": "v2.2.1",
             "target-dir": "Symfony/Component/Yaml",
             "source": {
                 "type": "git",
                 "url": "https://github.com/symfony/Yaml.git",
-                "reference": "v2.2.0-RC3"
+                "reference": "v2.2.1"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/symfony/Yaml/zipball/v2.2.0-RC3",
-                "reference": "v2.2.0-RC3",
+                "url": "https://api.github.com/repos/symfony/Yaml/zipball/v2.2.1",
+                "reference": "v2.2.1",
                 "shasum": ""
             },
             "require": {
@@ -344,7 +348,7 @@
                     "Symfony\\Component\\Yaml\\": ""
                 }
             },
-            "notification-url": "http://packagist.org/downloads/",
+            "notification-url": "https://packagist.org/downloads/",
             "license": [
                 "MIT"
             ],
@@ -360,27 +364,26 @@
             ],
             "description": "Symfony Yaml Component",
             "homepage": "http://symfony.com",
-            "time": "2013-01-27 16:49:19"
+            "time": "2013-03-23 07:49:54"
         },
         {
             "name": "zendframework/zendframework",
-            "version": "2.1.4",
+            "version": "2.1.5",
             "source": {
                 "type": "git",
-                "url": "git://github.com/zendframework/zf2.git",
-                "reference": "release-2.1.4"
+                "url": "https://github.com/zendframework/zf2.git",
+                "reference": "release-2.1.5"
             },
             "dist": {
                 "type": "zip",
-                "url": "http://packages.zendframework.com/releases/ZendFramework-2.1.4/ZendFramework-2.1.4.zip",
-                "reference": "release-2.1.4",
-                "shasum": "d99b85c5942eec47cd9a318b652ff68a9ed41d09"
+                "url": "https://packages.zendframework.com/composer/zendframework-zendframework-2.1.5-release-2.1.5-acb4f2.zip",
+                "reference": "2.1.5",
+                "shasum": "6a883d6e6facdb24998ab5ab53d2b941c8ec8995"
             },
             "require": {
                 "php": ">=5.3.3"
             },
             "replace": {
-                "zendframework/zend-acl": "self.version",
                 "zendframework/zend-authentication": "self.version",
                 "zendframework/zend-barcode": "self.version",
                 "zendframework/zend-cache": "self.version",
@@ -390,6 +393,7 @@
                 "zendframework/zend-console": "self.version",
                 "zendframework/zend-crypt": "self.version",
                 "zendframework/zend-db": "self.version",
+                "zendframework/zend-debug": "self.version",
                 "zendframework/zend-di": "self.version",
                 "zendframework/zend-dom": "self.version",
                 "zendframework/zend-escaper": "self.version",
@@ -406,7 +410,6 @@
                 "zendframework/zend-loader": "self.version",
                 "zendframework/zend-log": "self.version",
                 "zendframework/zend-mail": "self.version",
-                "zendframework/zend-markup": "self.version",
                 "zendframework/zend-math": "self.version",
                 "zendframework/zend-memory": "self.version",
                 "zendframework/zend-mime": "self.version",
@@ -414,6 +417,8 @@
                 "zendframework/zend-mvc": "self.version",
                 "zendframework/zend-navigation": "self.version",
                 "zendframework/zend-paginator": "self.version",
+                "zendframework/zend-permissions-acl": "self.version",
+                "zendframework/zend-permissions-rbac": "self.version",
                 "zendframework/zend-progressbar": "self.version",
                 "zendframework/zend-serializer": "self.version",
                 "zendframework/zend-server": "self.version",
@@ -422,23 +427,38 @@
                 "zendframework/zend-soap": "self.version",
                 "zendframework/zend-stdlib": "self.version",
                 "zendframework/zend-tag": "self.version",
+                "zendframework/zend-test": "self.version",
                 "zendframework/zend-text": "self.version",
                 "zendframework/zend-uri": "self.version",
                 "zendframework/zend-validator": "self.version",
+                "zendframework/zend-version": "self.version",
                 "zendframework/zend-view": "self.version",
                 "zendframework/zend-xmlrpc": "self.version"
             },
             "require-dev": {
-                "doctrine/common": ">=2.1"
+                "doctrine/common": ">=2.1",
+                "ircmaxell/random-lib": "dev-master",
+                "ircmaxell/security-lib": "dev-master",
+                "phpunit/phpunit": "3.7.*"
             },
             "suggest": {
                 "doctrine/common": "Doctrine\\Common >=2.1 for annotation features",
                 "ext-intl": "ext/intl for i18n features",
+                "ircmaxell/random-lib": "Fallback random byte generator for Zend\\Math\\Rand if OpenSSL/Mcrypt extensions are unavailable",
                 "pecl-weakref": "Implementation of weak references for Zend\\Stdlib\\CallbackHandler",
                 "zendframework/zendpdf": "ZendPdf for creating PDF representations of barcodes",
                 "zendframework/zendservice-recaptcha": "ZendService\\ReCaptcha for rendering ReCaptchas in Zend\\Captcha and/or Zend\\Form"
             },
+            "bin": [
+                "bin/classmap_generator.php"
+            ],
             "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-master": "2.1-dev",
+                    "dev-develop": "2.2-dev"
+                }
+            },
             "autoload": {
                 "psr-0": {
                     "Zend\\": "library/",
@@ -449,16 +469,16 @@
                 "BSD-3-Clause"
             ],
             "description": "Zend Framework 2",
+            "homepage": "http://framework.zend.com/",
             "keywords": [
                 "framework",
                 "zf2"
             ],
             "support": {
-                "email": "fw-general-subscribe@lists.zend.com",
-                "irc": "irc://irc.freenode.net/zftalk",
-                "issues": "https://github.com/zendframework/zf2/issues",
-                "source": "https://github.com/zendframework/zf2"
-            }
+                "source": "https://github.com/zendframework/zf2/tree/release-2.1.5",
+                "issues": "https://github.com/zendframework/zf2/issues"
+            },
+            "time": "2013-04-17 15:15:58"
         },
         {
             "name": "zendframework/zendrest",
@@ -555,7 +575,9 @@
             }
         }
     ],
-    "packages-dev": null,
+    "packages-dev": [
+
+    ],
     "aliases": [
 
     ],
@@ -564,5 +586,11 @@
         "johnwohlers/sip2": 20,
         "mobileesp/mdetect": 20,
         "serialssolutions/summon": 20
-    }
+    },
+    "platform": [
+
+    ],
+    "platform-dev": [
+
+    ]
 }
diff --git a/vendor/autoload.php b/vendor/autoload.php
index 64d57497ed6..fccf34acf2b 100644
--- a/vendor/autoload.php
+++ b/vendor/autoload.php
@@ -4,4 +4,4 @@
 
 require_once __DIR__ . '/composer' . '/autoload_real.php';
 
-return ComposerAutoloaderInitb6f0afa3736b8e5b31109640e4aaa509::getLoader();
+return ComposerAutoloaderInit80d82f7b0700080918fdf5576627aa44::getLoader();
diff --git a/vendor/bin/classmap_generator.php b/vendor/bin/classmap_generator.php
new file mode 120000
index 00000000000..da2f70a3bda
--- /dev/null
+++ b/vendor/bin/classmap_generator.php
@@ -0,0 +1 @@
+../zendframework/zendframework/bin/classmap_generator.php
\ No newline at end of file
diff --git a/vendor/composer/ClassLoader.php b/vendor/composer/ClassLoader.php
index 596c65d0fe5..bcf980915da 100644
--- a/vendor/composer/ClassLoader.php
+++ b/vendor/composer/ClassLoader.php
@@ -175,7 +175,7 @@ class ClassLoader
      * Loads the given class or interface.
      *
      * @param  string    $class The name of the class
-     * @return bool|null True, if loaded
+     * @return bool|null True if loaded, null otherwise
      */
     public function loadClass($class)
     {
@@ -191,7 +191,7 @@ class ClassLoader
      *
      * @param string $class The name of the class
      *
-     * @return string|null The path, if found
+     * @return string|false The path if found, false otherwise
      */
     public function findFile($class)
     {
diff --git a/vendor/composer/autoload_classmap.php b/vendor/composer/autoload_classmap.php
index 69f14806205..9b295b332ae 100644
--- a/vendor/composer/autoload_classmap.php
+++ b/vendor/composer/autoload_classmap.php
@@ -2,107 +2,107 @@
 
 // autoload_classmap.php generated by Composer
 
-$vendorDir = dirname(__DIR__);
+$vendorDir = dirname(dirname(__FILE__));
 $baseDir = dirname($vendorDir);
 
 return array(
-    'Archive_Tar' => $baseDir . '/vendor/pear-pear.php.net/Archive_Tar/Archive/Tar.php',
-    'Console_Getopt' => $baseDir . '/vendor/pear-pear.php.net/Console_Getopt/Console/Getopt.php',
-    'File_MARC' => $baseDir . '/vendor/pear-pear.php.net/File_MARC/File/MARC.php',
-    'File_MARCBASE' => $baseDir . '/vendor/pear-pear.php.net/File_MARC/File/MARCBASE.php',
-    'File_MARCXML' => $baseDir . '/vendor/pear-pear.php.net/File_MARC/File/MARCXML.php',
-    'File_MARC_Control_Field' => $baseDir . '/vendor/pear-pear.php.net/File_MARC/File/MARC/Control_Field.php',
-    'File_MARC_Data_Field' => $baseDir . '/vendor/pear-pear.php.net/File_MARC/File/MARC/Data_Field.php',
-    'File_MARC_Exception' => $baseDir . '/vendor/pear-pear.php.net/File_MARC/File/MARC/Exception.php',
-    'File_MARC_Field' => $baseDir . '/vendor/pear-pear.php.net/File_MARC/File/MARC/Field.php',
-    'File_MARC_Lint' => $baseDir . '/vendor/pear-pear.php.net/File_MARC/File/MARC/Lint.php',
-    'File_MARC_Lint_CodeData' => $baseDir . '/vendor/pear-pear.php.net/File_MARC/File/MARC/Lint/CodeData.php',
-    'File_MARC_List' => $baseDir . '/vendor/pear-pear.php.net/File_MARC/File/MARC/List.php',
-    'File_MARC_Record' => $baseDir . '/vendor/pear-pear.php.net/File_MARC/File/MARC/Record.php',
-    'File_MARC_Subfield' => $baseDir . '/vendor/pear-pear.php.net/File_MARC/File/MARC/Subfield.php',
-    'OS_Guess' => $baseDir . '/vendor/pear-pear.php.net/PEAR/OS/Guess.php',
-    'PEAR' => $baseDir . '/vendor/pear-pear.php.net/PEAR/PEAR.php',
-    'PEAR5' => $baseDir . '/vendor/pear-pear.php.net/PEAR/PEAR5.php',
-    'PEAR_Autoloader' => $baseDir . '/vendor/pear-pear.php.net/PEAR/PEAR/Autoloader.php',
-    'PEAR_Builder' => $baseDir . '/vendor/pear-pear.php.net/PEAR/PEAR/Builder.php',
-    'PEAR_ChannelFile' => $baseDir . '/vendor/pear-pear.php.net/PEAR/PEAR/ChannelFile.php',
-    'PEAR_ChannelFile_Parser' => $baseDir . '/vendor/pear-pear.php.net/PEAR/PEAR/ChannelFile/Parser.php',
-    'PEAR_Command' => $baseDir . '/vendor/pear-pear.php.net/PEAR/PEAR/Command.php',
-    'PEAR_Command_Auth' => $baseDir . '/vendor/pear-pear.php.net/PEAR/PEAR/Command/Auth.php',
-    'PEAR_Command_Build' => $baseDir . '/vendor/pear-pear.php.net/PEAR/PEAR/Command/Build.php',
-    'PEAR_Command_Channels' => $baseDir . '/vendor/pear-pear.php.net/PEAR/PEAR/Command/Channels.php',
-    'PEAR_Command_Common' => $baseDir . '/vendor/pear-pear.php.net/PEAR/PEAR/Command/Common.php',
-    'PEAR_Command_Config' => $baseDir . '/vendor/pear-pear.php.net/PEAR/PEAR/Command/Config.php',
-    'PEAR_Command_Install' => $baseDir . '/vendor/pear-pear.php.net/PEAR/PEAR/Command/Install.php',
-    'PEAR_Command_Mirror' => $baseDir . '/vendor/pear-pear.php.net/PEAR/PEAR/Command/Mirror.php',
-    'PEAR_Command_Package' => $baseDir . '/vendor/pear-pear.php.net/PEAR/PEAR/Command/Package.php',
-    'PEAR_Command_Pickle' => $baseDir . '/vendor/pear-pear.php.net/PEAR/PEAR/Command/Pickle.php',
-    'PEAR_Command_Registry' => $baseDir . '/vendor/pear-pear.php.net/PEAR/PEAR/Command/Registry.php',
-    'PEAR_Command_Remote' => $baseDir . '/vendor/pear-pear.php.net/PEAR/PEAR/Command/Remote.php',
-    'PEAR_Command_Test' => $baseDir . '/vendor/pear-pear.php.net/PEAR/PEAR/Command/Test.php',
-    'PEAR_Common' => $baseDir . '/vendor/pear-pear.php.net/PEAR/PEAR/Common.php',
-    'PEAR_Config' => $baseDir . '/vendor/pear-pear.php.net/PEAR/PEAR/Config.php',
-    'PEAR_Dependency2' => $baseDir . '/vendor/pear-pear.php.net/PEAR/PEAR/Dependency2.php',
-    'PEAR_DependencyDB' => $baseDir . '/vendor/pear-pear.php.net/PEAR/PEAR/DependencyDB.php',
-    'PEAR_Downloader' => $baseDir . '/vendor/pear-pear.php.net/PEAR/PEAR/Downloader.php',
-    'PEAR_Downloader_Package' => $baseDir . '/vendor/pear-pear.php.net/PEAR/PEAR/Downloader/Package.php',
-    'PEAR_Error' => $baseDir . '/vendor/pear-pear.php.net/PEAR/PEAR.php',
-    'PEAR_ErrorStack' => $baseDir . '/vendor/pear-pear.php.net/PEAR/PEAR/ErrorStack.php',
-    'PEAR_Exception' => $baseDir . '/vendor/pear-pear.php.net/PEAR/PEAR/Exception.php',
-    'PEAR_Frontend' => $baseDir . '/vendor/pear-pear.php.net/PEAR/PEAR/Frontend.php',
-    'PEAR_Frontend_CLI' => $baseDir . '/vendor/pear-pear.php.net/PEAR/PEAR/Frontend/CLI.php',
-    'PEAR_Installer' => $baseDir . '/vendor/pear-pear.php.net/PEAR/PEAR/Installer.php',
-    'PEAR_Installer_Role' => $baseDir . '/vendor/pear-pear.php.net/PEAR/PEAR/Installer/Role.php',
-    'PEAR_Installer_Role_Cfg' => $baseDir . '/vendor/pear-pear.php.net/PEAR/PEAR/Installer/Role/Cfg.php',
-    'PEAR_Installer_Role_Common' => $baseDir . '/vendor/pear-pear.php.net/PEAR/PEAR/Installer/Role/Common.php',
-    'PEAR_Installer_Role_Data' => $baseDir . '/vendor/pear-pear.php.net/PEAR/PEAR/Installer/Role/Data.php',
-    'PEAR_Installer_Role_Doc' => $baseDir . '/vendor/pear-pear.php.net/PEAR/PEAR/Installer/Role/Doc.php',
-    'PEAR_Installer_Role_Ext' => $baseDir . '/vendor/pear-pear.php.net/PEAR/PEAR/Installer/Role/Ext.php',
-    'PEAR_Installer_Role_Php' => $baseDir . '/vendor/pear-pear.php.net/PEAR/PEAR/Installer/Role/Php.php',
-    'PEAR_Installer_Role_Script' => $baseDir . '/vendor/pear-pear.php.net/PEAR/PEAR/Installer/Role/Script.php',
-    'PEAR_Installer_Role_Src' => $baseDir . '/vendor/pear-pear.php.net/PEAR/PEAR/Installer/Role/Src.php',
-    'PEAR_Installer_Role_Test' => $baseDir . '/vendor/pear-pear.php.net/PEAR/PEAR/Installer/Role/Test.php',
-    'PEAR_Installer_Role_Www' => $baseDir . '/vendor/pear-pear.php.net/PEAR/PEAR/Installer/Role/Www.php',
-    'PEAR_PackageFile' => $baseDir . '/vendor/pear-pear.php.net/PEAR/PEAR/PackageFile.php',
-    'PEAR_PackageFile_Generator_v1' => $baseDir . '/vendor/pear-pear.php.net/PEAR/PEAR/PackageFile/Generator/v1.php',
-    'PEAR_PackageFile_Generator_v2' => $baseDir . '/vendor/pear-pear.php.net/PEAR/PEAR/PackageFile/Generator/v2.php',
-    'PEAR_PackageFile_Parser_v1' => $baseDir . '/vendor/pear-pear.php.net/PEAR/PEAR/PackageFile/Parser/v1.php',
-    'PEAR_PackageFile_Parser_v2' => $baseDir . '/vendor/pear-pear.php.net/PEAR/PEAR/PackageFile/Parser/v2.php',
-    'PEAR_PackageFile_v1' => $baseDir . '/vendor/pear-pear.php.net/PEAR/PEAR/PackageFile/v1.php',
-    'PEAR_PackageFile_v2' => $baseDir . '/vendor/pear-pear.php.net/PEAR/PEAR/PackageFile/v2.php',
-    'PEAR_PackageFile_v2_Validator' => $baseDir . '/vendor/pear-pear.php.net/PEAR/PEAR/PackageFile/v2/Validator.php',
-    'PEAR_PackageFile_v2_rw' => $baseDir . '/vendor/pear-pear.php.net/PEAR/PEAR/PackageFile/v2/rw.php',
-    'PEAR_Packager' => $baseDir . '/vendor/pear-pear.php.net/PEAR/PEAR/Packager.php',
-    'PEAR_REST' => $baseDir . '/vendor/pear-pear.php.net/PEAR/PEAR/REST.php',
-    'PEAR_REST_10' => $baseDir . '/vendor/pear-pear.php.net/PEAR/PEAR/REST/10.php',
-    'PEAR_REST_11' => $baseDir . '/vendor/pear-pear.php.net/PEAR/PEAR/REST/11.php',
-    'PEAR_REST_13' => $baseDir . '/vendor/pear-pear.php.net/PEAR/PEAR/REST/13.php',
-    'PEAR_Registry' => $baseDir . '/vendor/pear-pear.php.net/PEAR/PEAR/Registry.php',
-    'PEAR_RunTest' => $baseDir . '/vendor/pear-pear.php.net/PEAR/PEAR/RunTest.php',
-    'PEAR_Task_Common' => $baseDir . '/vendor/pear-pear.php.net/PEAR/PEAR/Task/Common.php',
-    'PEAR_Task_Postinstallscript' => $baseDir . '/vendor/pear-pear.php.net/PEAR/PEAR/Task/Postinstallscript.php',
-    'PEAR_Task_Postinstallscript_rw' => $baseDir . '/vendor/pear-pear.php.net/PEAR/PEAR/Task/Postinstallscript/rw.php',
-    'PEAR_Task_Replace' => $baseDir . '/vendor/pear-pear.php.net/PEAR/PEAR/Task/Replace.php',
-    'PEAR_Task_Replace_rw' => $baseDir . '/vendor/pear-pear.php.net/PEAR/PEAR/Task/Replace/rw.php',
-    'PEAR_Task_Unixeol' => $baseDir . '/vendor/pear-pear.php.net/PEAR/PEAR/Task/Unixeol.php',
-    'PEAR_Task_Unixeol_rw' => $baseDir . '/vendor/pear-pear.php.net/PEAR/PEAR/Task/Unixeol/rw.php',
-    'PEAR_Task_Windowseol' => $baseDir . '/vendor/pear-pear.php.net/PEAR/PEAR/Task/Windowseol.php',
-    'PEAR_Task_Windowseol_rw' => $baseDir . '/vendor/pear-pear.php.net/PEAR/PEAR/Task/Windowseol/rw.php',
-    'PEAR_Validate' => $baseDir . '/vendor/pear-pear.php.net/PEAR/PEAR/Validate.php',
-    'PEAR_Validator_PECL' => $baseDir . '/vendor/pear-pear.php.net/PEAR/PEAR/Validator/PECL.php',
-    'PEAR_XMLParser' => $baseDir . '/vendor/pear-pear.php.net/PEAR/PEAR/XMLParser.php',
-    'Structures_Graph' => $baseDir . '/vendor/pear-pear.php.net/Structures_Graph/Structures/Graph.php',
-    'Structures_Graph_Manipulator_AcyclicTest' => $baseDir . '/vendor/pear-pear.php.net/Structures_Graph/Structures/Graph/Manipulator/AcyclicTest.php',
-    'Structures_Graph_Manipulator_TopologicalSorter' => $baseDir . '/vendor/pear-pear.php.net/Structures_Graph/Structures/Graph/Manipulator/TopologicalSorter.php',
-    'Structures_Graph_Node' => $baseDir . '/vendor/pear-pear.php.net/Structures_Graph/Structures/Graph/Node.php',
-    'Structures_LinkedList_Double' => $baseDir . '/vendor/pear-pear.php.net/Structures_LinkedList/Structures/LinkedList/Double.php',
-    'Structures_LinkedList_DoubleNode' => $baseDir . '/vendor/pear-pear.php.net/Structures_LinkedList/Structures/LinkedList/Double.php',
-    'Structures_LinkedList_Single' => $baseDir . '/vendor/pear-pear.php.net/Structures_LinkedList/Structures/LinkedList/Single.php',
-    'Structures_LinkedList_SingleNode' => $baseDir . '/vendor/pear-pear.php.net/Structures_LinkedList/Structures/LinkedList/Single.php',
-    'System' => $baseDir . '/vendor/pear-pear.php.net/PEAR/System.php',
-    'Validate' => $baseDir . '/vendor/pear-pear.php.net/Validate/Validate.php',
-    'Validate_ISPN' => $baseDir . '/vendor/pear-pear.php.net/Validate_ISPN/Validate/ISPN.php',
-    'XML_Util' => $baseDir . '/vendor/pear-pear.php.net/XML_Util/XML/Util.php',
-    'sip2' => $baseDir . '/vendor/johnwohlers/sip2/sip2.class.php',
-    'uagent_info' => $baseDir . '/vendor/mobileesp/mdetect/mdetect.php',
+    'Archive_Tar' => $vendorDir . '/pear-pear.php.net/Archive_Tar/Archive/Tar.php',
+    'Console_Getopt' => $vendorDir . '/pear-pear.php.net/Console_Getopt/Console/Getopt.php',
+    'File_MARC' => $vendorDir . '/pear-pear.php.net/File_MARC/File/MARC.php',
+    'File_MARCBASE' => $vendorDir . '/pear-pear.php.net/File_MARC/File/MARCBASE.php',
+    'File_MARCXML' => $vendorDir . '/pear-pear.php.net/File_MARC/File/MARCXML.php',
+    'File_MARC_Control_Field' => $vendorDir . '/pear-pear.php.net/File_MARC/File/MARC/Control_Field.php',
+    'File_MARC_Data_Field' => $vendorDir . '/pear-pear.php.net/File_MARC/File/MARC/Data_Field.php',
+    'File_MARC_Exception' => $vendorDir . '/pear-pear.php.net/File_MARC/File/MARC/Exception.php',
+    'File_MARC_Field' => $vendorDir . '/pear-pear.php.net/File_MARC/File/MARC/Field.php',
+    'File_MARC_Lint' => $vendorDir . '/pear-pear.php.net/File_MARC/File/MARC/Lint.php',
+    'File_MARC_Lint_CodeData' => $vendorDir . '/pear-pear.php.net/File_MARC/File/MARC/Lint/CodeData.php',
+    'File_MARC_List' => $vendorDir . '/pear-pear.php.net/File_MARC/File/MARC/List.php',
+    'File_MARC_Record' => $vendorDir . '/pear-pear.php.net/File_MARC/File/MARC/Record.php',
+    'File_MARC_Subfield' => $vendorDir . '/pear-pear.php.net/File_MARC/File/MARC/Subfield.php',
+    'OS_Guess' => $vendorDir . '/pear-pear.php.net/PEAR/OS/Guess.php',
+    'PEAR' => $vendorDir . '/pear-pear.php.net/PEAR/PEAR.php',
+    'PEAR5' => $vendorDir . '/pear-pear.php.net/PEAR/PEAR5.php',
+    'PEAR_Autoloader' => $vendorDir . '/pear-pear.php.net/PEAR/PEAR/Autoloader.php',
+    'PEAR_Builder' => $vendorDir . '/pear-pear.php.net/PEAR/PEAR/Builder.php',
+    'PEAR_ChannelFile' => $vendorDir . '/pear-pear.php.net/PEAR/PEAR/ChannelFile.php',
+    'PEAR_ChannelFile_Parser' => $vendorDir . '/pear-pear.php.net/PEAR/PEAR/ChannelFile/Parser.php',
+    'PEAR_Command' => $vendorDir . '/pear-pear.php.net/PEAR/PEAR/Command.php',
+    'PEAR_Command_Auth' => $vendorDir . '/pear-pear.php.net/PEAR/PEAR/Command/Auth.php',
+    'PEAR_Command_Build' => $vendorDir . '/pear-pear.php.net/PEAR/PEAR/Command/Build.php',
+    'PEAR_Command_Channels' => $vendorDir . '/pear-pear.php.net/PEAR/PEAR/Command/Channels.php',
+    'PEAR_Command_Common' => $vendorDir . '/pear-pear.php.net/PEAR/PEAR/Command/Common.php',
+    'PEAR_Command_Config' => $vendorDir . '/pear-pear.php.net/PEAR/PEAR/Command/Config.php',
+    'PEAR_Command_Install' => $vendorDir . '/pear-pear.php.net/PEAR/PEAR/Command/Install.php',
+    'PEAR_Command_Mirror' => $vendorDir . '/pear-pear.php.net/PEAR/PEAR/Command/Mirror.php',
+    'PEAR_Command_Package' => $vendorDir . '/pear-pear.php.net/PEAR/PEAR/Command/Package.php',
+    'PEAR_Command_Pickle' => $vendorDir . '/pear-pear.php.net/PEAR/PEAR/Command/Pickle.php',
+    'PEAR_Command_Registry' => $vendorDir . '/pear-pear.php.net/PEAR/PEAR/Command/Registry.php',
+    'PEAR_Command_Remote' => $vendorDir . '/pear-pear.php.net/PEAR/PEAR/Command/Remote.php',
+    'PEAR_Command_Test' => $vendorDir . '/pear-pear.php.net/PEAR/PEAR/Command/Test.php',
+    'PEAR_Common' => $vendorDir . '/pear-pear.php.net/PEAR/PEAR/Common.php',
+    'PEAR_Config' => $vendorDir . '/pear-pear.php.net/PEAR/PEAR/Config.php',
+    'PEAR_Dependency2' => $vendorDir . '/pear-pear.php.net/PEAR/PEAR/Dependency2.php',
+    'PEAR_DependencyDB' => $vendorDir . '/pear-pear.php.net/PEAR/PEAR/DependencyDB.php',
+    'PEAR_Downloader' => $vendorDir . '/pear-pear.php.net/PEAR/PEAR/Downloader.php',
+    'PEAR_Downloader_Package' => $vendorDir . '/pear-pear.php.net/PEAR/PEAR/Downloader/Package.php',
+    'PEAR_Error' => $vendorDir . '/pear-pear.php.net/PEAR/PEAR.php',
+    'PEAR_ErrorStack' => $vendorDir . '/pear-pear.php.net/PEAR/PEAR/ErrorStack.php',
+    'PEAR_Exception' => $vendorDir . '/pear-pear.php.net/PEAR/PEAR/Exception.php',
+    'PEAR_Frontend' => $vendorDir . '/pear-pear.php.net/PEAR/PEAR/Frontend.php',
+    'PEAR_Frontend_CLI' => $vendorDir . '/pear-pear.php.net/PEAR/PEAR/Frontend/CLI.php',
+    'PEAR_Installer' => $vendorDir . '/pear-pear.php.net/PEAR/PEAR/Installer.php',
+    'PEAR_Installer_Role' => $vendorDir . '/pear-pear.php.net/PEAR/PEAR/Installer/Role.php',
+    'PEAR_Installer_Role_Cfg' => $vendorDir . '/pear-pear.php.net/PEAR/PEAR/Installer/Role/Cfg.php',
+    'PEAR_Installer_Role_Common' => $vendorDir . '/pear-pear.php.net/PEAR/PEAR/Installer/Role/Common.php',
+    'PEAR_Installer_Role_Data' => $vendorDir . '/pear-pear.php.net/PEAR/PEAR/Installer/Role/Data.php',
+    'PEAR_Installer_Role_Doc' => $vendorDir . '/pear-pear.php.net/PEAR/PEAR/Installer/Role/Doc.php',
+    'PEAR_Installer_Role_Ext' => $vendorDir . '/pear-pear.php.net/PEAR/PEAR/Installer/Role/Ext.php',
+    'PEAR_Installer_Role_Php' => $vendorDir . '/pear-pear.php.net/PEAR/PEAR/Installer/Role/Php.php',
+    'PEAR_Installer_Role_Script' => $vendorDir . '/pear-pear.php.net/PEAR/PEAR/Installer/Role/Script.php',
+    'PEAR_Installer_Role_Src' => $vendorDir . '/pear-pear.php.net/PEAR/PEAR/Installer/Role/Src.php',
+    'PEAR_Installer_Role_Test' => $vendorDir . '/pear-pear.php.net/PEAR/PEAR/Installer/Role/Test.php',
+    'PEAR_Installer_Role_Www' => $vendorDir . '/pear-pear.php.net/PEAR/PEAR/Installer/Role/Www.php',
+    'PEAR_PackageFile' => $vendorDir . '/pear-pear.php.net/PEAR/PEAR/PackageFile.php',
+    'PEAR_PackageFile_Generator_v1' => $vendorDir . '/pear-pear.php.net/PEAR/PEAR/PackageFile/Generator/v1.php',
+    'PEAR_PackageFile_Generator_v2' => $vendorDir . '/pear-pear.php.net/PEAR/PEAR/PackageFile/Generator/v2.php',
+    'PEAR_PackageFile_Parser_v1' => $vendorDir . '/pear-pear.php.net/PEAR/PEAR/PackageFile/Parser/v1.php',
+    'PEAR_PackageFile_Parser_v2' => $vendorDir . '/pear-pear.php.net/PEAR/PEAR/PackageFile/Parser/v2.php',
+    'PEAR_PackageFile_v1' => $vendorDir . '/pear-pear.php.net/PEAR/PEAR/PackageFile/v1.php',
+    'PEAR_PackageFile_v2' => $vendorDir . '/pear-pear.php.net/PEAR/PEAR/PackageFile/v2.php',
+    'PEAR_PackageFile_v2_Validator' => $vendorDir . '/pear-pear.php.net/PEAR/PEAR/PackageFile/v2/Validator.php',
+    'PEAR_PackageFile_v2_rw' => $vendorDir . '/pear-pear.php.net/PEAR/PEAR/PackageFile/v2/rw.php',
+    'PEAR_Packager' => $vendorDir . '/pear-pear.php.net/PEAR/PEAR/Packager.php',
+    'PEAR_REST' => $vendorDir . '/pear-pear.php.net/PEAR/PEAR/REST.php',
+    'PEAR_REST_10' => $vendorDir . '/pear-pear.php.net/PEAR/PEAR/REST/10.php',
+    'PEAR_REST_11' => $vendorDir . '/pear-pear.php.net/PEAR/PEAR/REST/11.php',
+    'PEAR_REST_13' => $vendorDir . '/pear-pear.php.net/PEAR/PEAR/REST/13.php',
+    'PEAR_Registry' => $vendorDir . '/pear-pear.php.net/PEAR/PEAR/Registry.php',
+    'PEAR_RunTest' => $vendorDir . '/pear-pear.php.net/PEAR/PEAR/RunTest.php',
+    'PEAR_Task_Common' => $vendorDir . '/pear-pear.php.net/PEAR/PEAR/Task/Common.php',
+    'PEAR_Task_Postinstallscript' => $vendorDir . '/pear-pear.php.net/PEAR/PEAR/Task/Postinstallscript.php',
+    'PEAR_Task_Postinstallscript_rw' => $vendorDir . '/pear-pear.php.net/PEAR/PEAR/Task/Postinstallscript/rw.php',
+    'PEAR_Task_Replace' => $vendorDir . '/pear-pear.php.net/PEAR/PEAR/Task/Replace.php',
+    'PEAR_Task_Replace_rw' => $vendorDir . '/pear-pear.php.net/PEAR/PEAR/Task/Replace/rw.php',
+    'PEAR_Task_Unixeol' => $vendorDir . '/pear-pear.php.net/PEAR/PEAR/Task/Unixeol.php',
+    'PEAR_Task_Unixeol_rw' => $vendorDir . '/pear-pear.php.net/PEAR/PEAR/Task/Unixeol/rw.php',
+    'PEAR_Task_Windowseol' => $vendorDir . '/pear-pear.php.net/PEAR/PEAR/Task/Windowseol.php',
+    'PEAR_Task_Windowseol_rw' => $vendorDir . '/pear-pear.php.net/PEAR/PEAR/Task/Windowseol/rw.php',
+    'PEAR_Validate' => $vendorDir . '/pear-pear.php.net/PEAR/PEAR/Validate.php',
+    'PEAR_Validator_PECL' => $vendorDir . '/pear-pear.php.net/PEAR/PEAR/Validator/PECL.php',
+    'PEAR_XMLParser' => $vendorDir . '/pear-pear.php.net/PEAR/PEAR/XMLParser.php',
+    'Structures_Graph' => $vendorDir . '/pear-pear.php.net/Structures_Graph/Structures/Graph.php',
+    'Structures_Graph_Manipulator_AcyclicTest' => $vendorDir . '/pear-pear.php.net/Structures_Graph/Structures/Graph/Manipulator/AcyclicTest.php',
+    'Structures_Graph_Manipulator_TopologicalSorter' => $vendorDir . '/pear-pear.php.net/Structures_Graph/Structures/Graph/Manipulator/TopologicalSorter.php',
+    'Structures_Graph_Node' => $vendorDir . '/pear-pear.php.net/Structures_Graph/Structures/Graph/Node.php',
+    'Structures_LinkedList_Double' => $vendorDir . '/pear-pear.php.net/Structures_LinkedList/Structures/LinkedList/Double.php',
+    'Structures_LinkedList_DoubleNode' => $vendorDir . '/pear-pear.php.net/Structures_LinkedList/Structures/LinkedList/Double.php',
+    'Structures_LinkedList_Single' => $vendorDir . '/pear-pear.php.net/Structures_LinkedList/Structures/LinkedList/Single.php',
+    'Structures_LinkedList_SingleNode' => $vendorDir . '/pear-pear.php.net/Structures_LinkedList/Structures/LinkedList/Single.php',
+    'System' => $vendorDir . '/pear-pear.php.net/PEAR/System.php',
+    'Validate' => $vendorDir . '/pear-pear.php.net/Validate/Validate.php',
+    'Validate_ISPN' => $vendorDir . '/pear-pear.php.net/Validate_ISPN/Validate/ISPN.php',
+    'XML_Util' => $vendorDir . '/pear-pear.php.net/XML_Util/XML/Util.php',
+    'sip2' => $vendorDir . '/johnwohlers/sip2/sip2.class.php',
+    'uagent_info' => $vendorDir . '/mobileesp/mdetect/mdetect.php',
 );
diff --git a/vendor/composer/autoload_namespaces.php b/vendor/composer/autoload_namespaces.php
index 992db9c6eac..99e7b1e7784 100644
--- a/vendor/composer/autoload_namespaces.php
+++ b/vendor/composer/autoload_namespaces.php
@@ -2,14 +2,14 @@
 
 // autoload_namespaces.php generated by Composer
 
-$vendorDir = dirname(__DIR__);
+$vendorDir = dirname(dirname(__FILE__));
 $baseDir = dirname($vendorDir);
 
 return array(
-    'Zend\\' => $vendorDir . '/zendframework/zendframework/library/',
-    'ZendTest\\' => $vendorDir . '/zendframework/zendframework/tests/',
-    'ZendService' => $vendorDir . '/zendframework/zendservice-amazon/library/',
-    'ZendRest' => $vendorDir . '/zendframework/zendrest/library/',
-    'Symfony\\Component\\Yaml\\' => $vendorDir . '/symfony/yaml/',
-    'SerialsSolutions' => $vendorDir . '/serialssolutions/summon/',
+    'Zend\\' => $vendorDir . '/zendframework/zendframework/library',
+    'ZendTest\\' => $vendorDir . '/zendframework/zendframework/tests',
+    'ZendService' => $vendorDir . '/zendframework/zendservice-amazon/library',
+    'ZendRest' => $vendorDir . '/zendframework/zendrest/library',
+    'Symfony\\Component\\Yaml\\' => $vendorDir . '/symfony/yaml',
+    'SerialsSolutions' => $vendorDir . '/serialssolutions/summon',
 );
diff --git a/vendor/composer/autoload_real.php b/vendor/composer/autoload_real.php
index c8a19c3fa80..6f44913e113 100644
--- a/vendor/composer/autoload_real.php
+++ b/vendor/composer/autoload_real.php
@@ -2,7 +2,7 @@
 
 // autoload_real.php generated by Composer
 
-class ComposerAutoloaderInitb6f0afa3736b8e5b31109640e4aaa509
+class ComposerAutoloaderInit80d82f7b0700080918fdf5576627aa44
 {
     private static $loader;
 
@@ -19,9 +19,9 @@ class ComposerAutoloaderInitb6f0afa3736b8e5b31109640e4aaa509
             return self::$loader;
         }
 
-        spl_autoload_register(array('ComposerAutoloaderInitb6f0afa3736b8e5b31109640e4aaa509', 'loadClassLoader'));
+        spl_autoload_register(array('ComposerAutoloaderInit80d82f7b0700080918fdf5576627aa44', 'loadClassLoader'), true, true);
         self::$loader = $loader = new \Composer\Autoload\ClassLoader();
-        spl_autoload_unregister(array('ComposerAutoloaderInitb6f0afa3736b8e5b31109640e4aaa509', 'loadClassLoader'));
+        spl_autoload_unregister(array('ComposerAutoloaderInit80d82f7b0700080918fdf5576627aa44', 'loadClassLoader'));
 
         $vendorDir = dirname(__DIR__);
         $baseDir = dirname($vendorDir);
diff --git a/vendor/composer/include_paths.php b/vendor/composer/include_paths.php
index 86a54c07bfd..4eb4309de6f 100644
--- a/vendor/composer/include_paths.php
+++ b/vendor/composer/include_paths.php
@@ -2,17 +2,17 @@
 
 // include_paths.php generated by Composer
 
-$vendorDir = dirname(__DIR__);
+$vendorDir = dirname(dirname(__FILE__));
 $baseDir = dirname($vendorDir);
 
 return array(
-    $vendorDir . '/pear-pear.php.net/Structures_LinkedList/',
-    $vendorDir . '/pear-pear.php.net/File_MARC/',
-    $vendorDir . '/pear-pear.php.net/XML_Util/',
-    $vendorDir . '/pear-pear.php.net/Console_Getopt/',
-    $vendorDir . '/pear-pear.php.net/Structures_Graph/',
-    $vendorDir . '/pear-pear.php.net/Archive_Tar/',
-    $vendorDir . '/pear-pear.php.net/PEAR/',
-    $vendorDir . '/pear-pear.php.net/Validate/',
-    $vendorDir . '/pear-pear.php.net/Validate_ISPN/',
+    $vendorDir . '/pear-pear.php.net/Structures_LinkedList',
+    $vendorDir . '/pear-pear.php.net/File_MARC',
+    $vendorDir . '/pear-pear.php.net/XML_Util',
+    $vendorDir . '/pear-pear.php.net/Console_Getopt',
+    $vendorDir . '/pear-pear.php.net/Structures_Graph',
+    $vendorDir . '/pear-pear.php.net/Archive_Tar',
+    $vendorDir . '/pear-pear.php.net/PEAR',
+    $vendorDir . '/pear-pear.php.net/Validate',
+    $vendorDir . '/pear-pear.php.net/Validate_ISPN',
 );
diff --git a/vendor/composer/installed.json b/vendor/composer/installed.json
index cd240fd1337..85484e8dbbc 100644
--- a/vendor/composer/installed.json
+++ b/vendor/composer/installed.json
@@ -437,24 +437,24 @@
     },
     {
         "name": "symfony/yaml",
-        "version": "v2.2.0",
-        "version_normalized": "2.2.0.0",
+        "version": "v2.2.1",
+        "version_normalized": "2.2.1.0",
         "target-dir": "Symfony/Component/Yaml",
         "source": {
             "type": "git",
             "url": "https://github.com/symfony/Yaml.git",
-            "reference": "v2.2.0-RC3"
+            "reference": "v2.2.1"
         },
         "dist": {
             "type": "zip",
-            "url": "https://api.github.com/repos/symfony/Yaml/zipball/v2.2.0-RC3",
-            "reference": "v2.2.0-RC3",
+            "url": "https://api.github.com/repos/symfony/Yaml/zipball/v2.2.1",
+            "reference": "v2.2.1",
             "shasum": ""
         },
         "require": {
             "php": ">=5.3.3"
         },
-        "time": "2013-01-27 16:49:19",
+        "time": "2013-03-23 07:49:54",
         "type": "library",
         "extra": {
             "branch-alias": {
@@ -467,7 +467,7 @@
                 "Symfony\\Component\\Yaml\\": ""
             }
         },
-        "notification-url": "http://packagist.org/downloads/",
+        "notification-url": "https://packagist.org/downloads/",
         "license": [
             "MIT"
         ],
@@ -486,24 +486,23 @@
     },
     {
         "name": "zendframework/zendframework",
-        "version": "2.1.4",
-        "version_normalized": "2.1.4.0",
+        "version": "2.1.5",
+        "version_normalized": "2.1.5.0",
         "source": {
             "type": "git",
-            "url": "git://github.com/zendframework/zf2.git",
-            "reference": "release-2.1.4"
+            "url": "https://github.com/zendframework/zf2.git",
+            "reference": "release-2.1.5"
         },
         "dist": {
             "type": "zip",
-            "url": "http://packages.zendframework.com/releases/ZendFramework-2.1.4/ZendFramework-2.1.4.zip",
-            "reference": "release-2.1.4",
-            "shasum": "d99b85c5942eec47cd9a318b652ff68a9ed41d09"
+            "url": "https://packages.zendframework.com/composer/zendframework-zendframework-2.1.5-release-2.1.5-acb4f2.zip",
+            "reference": "2.1.5",
+            "shasum": "6a883d6e6facdb24998ab5ab53d2b941c8ec8995"
         },
         "require": {
             "php": ">=5.3.3"
         },
         "replace": {
-            "zendframework/zend-acl": "self.version",
             "zendframework/zend-authentication": "self.version",
             "zendframework/zend-barcode": "self.version",
             "zendframework/zend-cache": "self.version",
@@ -513,6 +512,7 @@
             "zendframework/zend-console": "self.version",
             "zendframework/zend-crypt": "self.version",
             "zendframework/zend-db": "self.version",
+            "zendframework/zend-debug": "self.version",
             "zendframework/zend-di": "self.version",
             "zendframework/zend-dom": "self.version",
             "zendframework/zend-escaper": "self.version",
@@ -529,7 +529,6 @@
             "zendframework/zend-loader": "self.version",
             "zendframework/zend-log": "self.version",
             "zendframework/zend-mail": "self.version",
-            "zendframework/zend-markup": "self.version",
             "zendframework/zend-math": "self.version",
             "zendframework/zend-memory": "self.version",
             "zendframework/zend-mime": "self.version",
@@ -537,6 +536,8 @@
             "zendframework/zend-mvc": "self.version",
             "zendframework/zend-navigation": "self.version",
             "zendframework/zend-paginator": "self.version",
+            "zendframework/zend-permissions-acl": "self.version",
+            "zendframework/zend-permissions-rbac": "self.version",
             "zendframework/zend-progressbar": "self.version",
             "zendframework/zend-serializer": "self.version",
             "zendframework/zend-server": "self.version",
@@ -545,23 +546,39 @@
             "zendframework/zend-soap": "self.version",
             "zendframework/zend-stdlib": "self.version",
             "zendframework/zend-tag": "self.version",
+            "zendframework/zend-test": "self.version",
             "zendframework/zend-text": "self.version",
             "zendframework/zend-uri": "self.version",
             "zendframework/zend-validator": "self.version",
+            "zendframework/zend-version": "self.version",
             "zendframework/zend-view": "self.version",
             "zendframework/zend-xmlrpc": "self.version"
         },
         "require-dev": {
-            "doctrine/common": ">=2.1"
+            "doctrine/common": ">=2.1",
+            "ircmaxell/random-lib": "dev-master",
+            "ircmaxell/security-lib": "dev-master",
+            "phpunit/phpunit": "3.7.*"
         },
         "suggest": {
             "doctrine/common": "Doctrine\\Common >=2.1 for annotation features",
             "ext-intl": "ext/intl for i18n features",
+            "ircmaxell/random-lib": "Fallback random byte generator for Zend\\Math\\Rand if OpenSSL/Mcrypt extensions are unavailable",
             "pecl-weakref": "Implementation of weak references for Zend\\Stdlib\\CallbackHandler",
             "zendframework/zendpdf": "ZendPdf for creating PDF representations of barcodes",
             "zendframework/zendservice-recaptcha": "ZendService\\ReCaptcha for rendering ReCaptchas in Zend\\Captcha and/or Zend\\Form"
         },
+        "time": "2013-04-17 15:15:58",
+        "bin": [
+            "bin/classmap_generator.php"
+        ],
         "type": "library",
+        "extra": {
+            "branch-alias": {
+                "dev-master": "2.1-dev",
+                "dev-develop": "2.2-dev"
+            }
+        },
         "installation-source": "dist",
         "autoload": {
             "psr-0": {
@@ -573,15 +590,14 @@
             "BSD-3-Clause"
         ],
         "description": "Zend Framework 2",
+        "homepage": "http://framework.zend.com/",
         "keywords": [
             "framework",
             "zf2"
         ],
         "support": {
-            "email": "fw-general-subscribe@lists.zend.com",
-            "irc": "irc://irc.freenode.net/zftalk",
-            "issues": "https://github.com/zendframework/zf2/issues",
-            "source": "https://github.com/zendframework/zf2"
+            "source": "https://github.com/zendframework/zf2/tree/release-2.1.5",
+            "issues": "https://github.com/zendframework/zf2/issues"
         }
     }
 ]
diff --git a/vendor/symfony/yaml/Symfony/Component/Yaml/Inline.php b/vendor/symfony/yaml/Symfony/Component/Yaml/Inline.php
index 21a121a060d..45978a12554 100644
--- a/vendor/symfony/yaml/Symfony/Component/Yaml/Inline.php
+++ b/vendor/symfony/yaml/Symfony/Component/Yaml/Inline.php
@@ -237,11 +237,6 @@ class Inline
      */
     private static function parseQuotedScalar($scalar, &$i)
     {
-        // Only check the current item we're dealing with (for sequences)
-        $subject = substr($scalar, $i);
-        $items = preg_split('/[\'"]\s*(?:[,:]|[}\]]\s*,)/', $subject);
-        $subject = substr($subject, 0, strlen($items[0]) + 1);
-
         if (!preg_match('/'.self::REGEX_QUOTED_STRING.'/Au', substr($scalar, $i), $match)) {
             throw new ParseException(sprintf('Malformed inline YAML string (%s).', substr($scalar, $i)));
         }
diff --git a/vendor/symfony/yaml/Symfony/Component/Yaml/Parser.php b/vendor/symfony/yaml/Symfony/Component/Yaml/Parser.php
index 8129b41e070..bafceb06c88 100644
--- a/vendor/symfony/yaml/Symfony/Component/Yaml/Parser.php
+++ b/vendor/symfony/yaml/Symfony/Component/Yaml/Parser.php
@@ -414,64 +414,61 @@ class Parser
      */
     private function parseFoldedScalar($separator, $indicator = '', $indentation = 0)
     {
-        $separator = '|' == $separator ? "\n" : ' ';
-        $text = '';
-
         $notEOF = $this->moveToNextLine();
-
-        while ($notEOF && $this->isCurrentLineBlank()) {
-            $text .= "\n";
-
-            $notEOF = $this->moveToNextLine();
-        }
-
         if (!$notEOF) {
             return '';
         }
 
-        if (!preg_match('#^(?P<indent>'.($indentation ? str_repeat(' ', $indentation) : ' +').')(?P<text>.*)$#u', $this->currentLine, $matches)) {
-            $this->moveToPreviousLine();
-
-            return '';
+        // determine indentation if not specified
+        if (0 === $indentation) {
+            if (preg_match('/^ +/', $this->currentLine, $matches)) {
+                $indentation = strlen($matches[0]);
+            }
         }
 
-        $textIndent = $matches['indent'];
-        $previousIndent = 0;
-
-        $text .= $matches['text'].$separator;
-        while ($this->currentLineNb + 1 < count($this->lines)) {
-            $this->moveToNextLine();
-
-            if (preg_match('#^(?P<indent> {'.strlen($textIndent).',})(?P<text>.+)$#u', $this->currentLine, $matches)) {
-                if (' ' == $separator && $previousIndent != $matches['indent']) {
-                    $text = substr($text, 0, -1)."\n";
+        $text = '';
+        if ($indentation > 0) {
+            $pattern = sprintf('/^ {%d}(.*)$/', $indentation);
+
+            $isCurrentLineBlank = $this->isCurrentLineBlank();
+            while (
+                $notEOF && (
+                    $isCurrentLineBlank ||
+                    preg_match($pattern, $this->currentLine, $matches)
+                )
+            ) {
+                if ($isCurrentLineBlank) {
+                    $text .= substr($this->currentLine, $indentation);
+                } else {
+                    $text .= $matches[1];
                 }
-                $previousIndent = $matches['indent'];
 
-                $text .= str_repeat(' ', $diff = strlen($matches['indent']) - strlen($textIndent)).$matches['text'].($diff ? "\n" : $separator);
-            } elseif (preg_match('#^(?P<text> *)$#', $this->currentLine, $matches)) {
-                $text .= preg_replace('#^ {1,'.strlen($textIndent).'}#', '', $matches['text'])."\n";
-            } else {
-                $this->moveToPreviousLine();
-
-                break;
+                // newline only if not EOF
+                if ($notEOF = $this->moveToNextLine()) {
+                    $text .= "\n";
+                    $isCurrentLineBlank = $this->isCurrentLineBlank();
+                }
             }
+        } elseif ($notEOF) {
+            $text .= "\n";
         }
 
-        if (' ' == $separator) {
-            // replace last separator by a newline
-            $text = preg_replace('/ (\n*)$/', "\n$1", $text);
+        if ($notEOF) {
+            $this->moveToPreviousLine();
         }
 
-        switch ($indicator) {
-            case '':
-                $text = preg_replace('#\n+$#s', "\n", $text);
-                break;
-            case '+':
-                break;
-            case '-':
-                $text = preg_replace('#\n+$#s', '', $text);
-                break;
+        // replace all non-trailing single newlines with spaces in folded blocks
+        if ('>' === $separator) {
+            preg_match('/(\n*)$/', $text, $matches);
+            $text = preg_replace('/(?<!\n)\n(?!\n)/', ' ', rtrim($text, "\n"));
+            $text .= $matches[1];
+        }
+
+        // deal with trailing newlines as indicated
+        if ('' === $indicator) {
+            $text = preg_replace('/\n+$/s', "\n", $text);
+        } elseif ('-' === $indicator) {
+            $text = preg_replace('/\n+$/s', '', $text);
         }
 
         return $text;
diff --git a/vendor/symfony/yaml/Symfony/Component/Yaml/Tests/DumperTest.php b/vendor/symfony/yaml/Symfony/Component/Yaml/Tests/DumperTest.php
index 1199118d779..c51a257dc08 100644
--- a/vendor/symfony/yaml/Symfony/Component/Yaml/Tests/DumperTest.php
+++ b/vendor/symfony/yaml/Symfony/Component/Yaml/Tests/DumperTest.php
@@ -21,6 +21,21 @@ class DumperTest extends \PHPUnit_Framework_TestCase
     protected $dumper;
     protected $path;
 
+    protected $array = array(
+        '' => 'bar',
+        'foo' => '#bar',
+        'foo\'bar' => array(),
+        'bar' => array(1, 'foo'),
+        'foobar' => array(
+            'foo' => 'bar',
+            'bar' => array(1, 'foo'),
+            'foobar' => array(
+                'foo' => 'bar',
+                'bar' => array(1, 'foo'),
+            ),
+        ),
+    );
+
     protected function setUp()
     {
         $this->parser = new Parser();
@@ -33,6 +48,33 @@ class DumperTest extends \PHPUnit_Framework_TestCase
         $this->parser = null;
         $this->dumper = null;
         $this->path = null;
+        $this->array = null;
+    }
+
+    public function testSetIndentation()
+    {
+        $this->dumper->setIndentation(7);
+
+$expected = <<<EOF
+'': bar
+foo: '#bar'
+'foo''bar': {  }
+bar:
+       - 1
+       - foo
+foobar:
+       foo: bar
+       bar:
+              - 1
+              - foo
+       foobar:
+              foo: bar
+              bar:
+                     - 1
+                     - foo
+
+EOF;
+        $this->assertEquals($expected, $this->dumper->dump($this->array, 4, 0));
     }
 
     public function testSpecifications()
@@ -63,27 +105,11 @@ class DumperTest extends \PHPUnit_Framework_TestCase
 
     public function testInlineLevel()
     {
-        // inline level
-        $array = array(
-            '' => 'bar',
-            'foo' => '#bar',
-            'foo\'bar' => array(),
-            'bar' => array(1, 'foo'),
-            'foobar' => array(
-                'foo' => 'bar',
-                'bar' => array(1, 'foo'),
-                'foobar' => array(
-                    'foo' => 'bar',
-                    'bar' => array(1, 'foo'),
-                ),
-            ),
-        );
-
         $expected = <<<EOF
 { '': bar, foo: '#bar', 'foo''bar': {  }, bar: [1, foo], foobar: { foo: bar, bar: [1, foo], foobar: { foo: bar, bar: [1, foo] } } }
 EOF;
-$this->assertEquals($expected, $this->dumper->dump($array, -10), '->dump() takes an inline level argument');
-$this->assertEquals($expected, $this->dumper->dump($array, 0), '->dump() takes an inline level argument');
+$this->assertEquals($expected, $this->dumper->dump($this->array, -10), '->dump() takes an inline level argument');
+$this->assertEquals($expected, $this->dumper->dump($this->array, 0), '->dump() takes an inline level argument');
 
 $expected = <<<EOF
 '': bar
@@ -93,7 +119,7 @@ bar: [1, foo]
 foobar: { foo: bar, bar: [1, foo], foobar: { foo: bar, bar: [1, foo] } }
 
 EOF;
-        $this->assertEquals($expected, $this->dumper->dump($array, 1), '->dump() takes an inline level argument');
+        $this->assertEquals($expected, $this->dumper->dump($this->array, 1), '->dump() takes an inline level argument');
 
         $expected = <<<EOF
 '': bar
@@ -108,7 +134,7 @@ foobar:
     foobar: { foo: bar, bar: [1, foo] }
 
 EOF;
-        $this->assertEquals($expected, $this->dumper->dump($array, 2), '->dump() takes an inline level argument');
+        $this->assertEquals($expected, $this->dumper->dump($this->array, 2), '->dump() takes an inline level argument');
 
         $expected = <<<EOF
 '': bar
@@ -127,7 +153,7 @@ foobar:
         bar: [1, foo]
 
 EOF;
-        $this->assertEquals($expected, $this->dumper->dump($array, 3), '->dump() takes an inline level argument');
+        $this->assertEquals($expected, $this->dumper->dump($this->array, 3), '->dump() takes an inline level argument');
 
         $expected = <<<EOF
 '': bar
@@ -148,8 +174,8 @@ foobar:
             - foo
 
 EOF;
-        $this->assertEquals($expected, $this->dumper->dump($array, 4), '->dump() takes an inline level argument');
-        $this->assertEquals($expected, $this->dumper->dump($array, 10), '->dump() takes an inline level argument');
+        $this->assertEquals($expected, $this->dumper->dump($this->array, 4), '->dump() takes an inline level argument');
+        $this->assertEquals($expected, $this->dumper->dump($this->array, 10), '->dump() takes an inline level argument');
     }
 
     public function testObjectSupportEnabled()
diff --git a/vendor/symfony/yaml/Symfony/Component/Yaml/Tests/ParserTest.php b/vendor/symfony/yaml/Symfony/Component/Yaml/Tests/ParserTest.php
index 231a37b7d15..ca69aec153a 100644
--- a/vendor/symfony/yaml/Symfony/Component/Yaml/Tests/ParserTest.php
+++ b/vendor/symfony/yaml/Symfony/Component/Yaml/Tests/ParserTest.php
@@ -113,17 +113,33 @@ EOF;
 foo: |-
     one
     two
+bar: |-
+    one
+    two
+
+EOF;
+        $expected = array(
+            'foo' => "one\ntwo",
+            'bar' => "one\ntwo",
+        );
+        $tests['Literal block chomping strip with single trailing newline'] = array($expected, $yaml);
+
+        $yaml = <<<'EOF'
+foo: |-
+    one
+    two
 
 bar: |-
     one
     two
 
+
 EOF;
         $expected = array(
             'foo' => "one\ntwo",
             'bar' => "one\ntwo",
         );
-        $tests['Literal block chomping strip with trailing newline'] = array($expected, $yaml);
+        $tests['Literal block chomping strip with multiple trailing newlines'] = array($expected, $yaml);
 
         $yaml = <<<'EOF'
 foo: |-
@@ -143,7 +159,6 @@ EOF;
 foo: |
     one
     two
-
 bar: |
     one
     two
@@ -153,37 +168,70 @@ EOF;
             'foo' => "one\ntwo\n",
             'bar' => "one\ntwo\n",
         );
-        $tests['Literal block chomping clip with trailing newline'] = array($expected, $yaml);
+        $tests['Literal block chomping clip with single trailing newline'] = array($expected, $yaml);
 
         $yaml = <<<'EOF'
 foo: |
     one
     two
+
 bar: |
     one
     two
+
+
 EOF;
         $expected = array(
             'foo' => "one\ntwo\n",
             'bar' => "one\ntwo\n",
         );
+        $tests['Literal block chomping clip with multiple trailing newlines'] = array($expected, $yaml);
+
+        $yaml = <<<'EOF'
+foo: |
+    one
+    two
+bar: |
+    one
+    two
+EOF;
+        $expected = array(
+            'foo' => "one\ntwo\n",
+            'bar' => "one\ntwo",
+        );
         $tests['Literal block chomping clip without trailing newline'] = array($expected, $yaml);
 
         $yaml = <<<'EOF'
 foo: |+
     one
     two
+bar: |+
+    one
+    two
+
+EOF;
+        $expected = array(
+            'foo' => "one\ntwo\n",
+            'bar' => "one\ntwo\n",
+        );
+        $tests['Literal block chomping keep with single trailing newline'] = array($expected, $yaml);
+
+        $yaml = <<<'EOF'
+foo: |+
+    one
+    two
 
 bar: |+
     one
     two
 
+
 EOF;
         $expected = array(
             'foo' => "one\ntwo\n\n",
             'bar' => "one\ntwo\n\n",
         );
-        $tests['Literal block chomping keep with trailing newline'] = array($expected, $yaml);
+        $tests['Literal block chomping keep with multiple trailing newlines'] = array($expected, $yaml);
 
         $yaml = <<<'EOF'
 foo: |+
@@ -195,7 +243,7 @@ bar: |+
 EOF;
         $expected = array(
             'foo' => "one\ntwo\n",
-            'bar' => "one\ntwo\n",
+            'bar' => "one\ntwo",
         );
         $tests['Literal block chomping keep without trailing newline'] = array($expected, $yaml);
 
@@ -203,17 +251,33 @@ EOF;
 foo: >-
     one
     two
+bar: >-
+    one
+    two
+
+EOF;
+        $expected = array(
+            'foo' => "one two",
+            'bar' => "one two",
+        );
+        $tests['Folded block chomping strip with single trailing newline'] = array($expected, $yaml);
+
+        $yaml = <<<'EOF'
+foo: >-
+    one
+    two
 
 bar: >-
     one
     two
 
+
 EOF;
         $expected = array(
             'foo' => "one two",
             'bar' => "one two",
         );
-        $tests['Folded block chomping strip with trailing newline'] = array($expected, $yaml);
+        $tests['Folded block chomping strip with multiple trailing newlines'] = array($expected, $yaml);
 
         $yaml = <<<'EOF'
 foo: >-
@@ -233,7 +297,6 @@ EOF;
 foo: >
     one
     two
-
 bar: >
     one
     two
@@ -243,37 +306,70 @@ EOF;
             'foo' => "one two\n",
             'bar' => "one two\n",
         );
-        $tests['Folded block chomping clip with trailing newline'] = array($expected, $yaml);
+        $tests['Folded block chomping clip with single trailing newline'] = array($expected, $yaml);
 
         $yaml = <<<'EOF'
 foo: >
     one
     two
+
 bar: >
     one
     two
+
+
 EOF;
         $expected = array(
             'foo' => "one two\n",
             'bar' => "one two\n",
         );
+        $tests['Folded block chomping clip with multiple trailing newlines'] = array($expected, $yaml);
+
+        $yaml = <<<'EOF'
+foo: >
+    one
+    two
+bar: >
+    one
+    two
+EOF;
+        $expected = array(
+            'foo' => "one two\n",
+            'bar' => "one two",
+        );
         $tests['Folded block chomping clip without trailing newline'] = array($expected, $yaml);
 
         $yaml = <<<'EOF'
 foo: >+
     one
     two
+bar: >+
+    one
+    two
+
+EOF;
+        $expected = array(
+            'foo' => "one two\n",
+            'bar' => "one two\n",
+        );
+        $tests['Folded block chomping keep with single trailing newline'] = array($expected, $yaml);
+
+        $yaml = <<<'EOF'
+foo: >+
+    one
+    two
 
 bar: >+
     one
     two
 
+
 EOF;
         $expected = array(
             'foo' => "one two\n\n",
             'bar' => "one two\n\n",
         );
-        $tests['Folded block chomping keep with trailing newline'] = array($expected, $yaml);
+        $tests['Folded block chomping keep with multiple trailing newlines'] = array($expected, $yaml);
 
         $yaml = <<<'EOF'
 foo: >+
@@ -285,7 +381,7 @@ bar: >+
 EOF;
         $expected = array(
             'foo' => "one two\n",
-            'bar' => "one two\n",
+            'bar' => "one two",
         );
         $tests['Folded block chomping keep without trailing newline'] = array($expected, $yaml);
 
diff --git a/vendor/zendframework/zendframework/CHANGELOG.md b/vendor/zendframework/zendframework/CHANGELOG.md
new file mode 100644
index 00000000000..796af393faf
--- /dev/null
+++ b/vendor/zendframework/zendframework/CHANGELOG.md
@@ -0,0 +1,1769 @@
+# CHANGELOG
+
+## 2.1.5 (17 Apr 2017):
+
+- 2536: `Zend\Validate` translations out of date
+  (https://github.com/zendframework/zf2/issues/2536)
+- 2898: `ConstructedNavigationFactory` does not inject components
+  (https://github.com/zendframework/zf2/issues/2898)
+- 3373: `Collection` in `Form` not binds values when form has no object and hydrator set
+  (https://github.com/zendframework/zf2/issues/3373)
+- 3534: ZF2 2.0.6 Authentication and postgres database
+  (https://github.com/zendframework/zf2/issues/3534)
+- 3626: `Zend\Form\View\Helper\FormRow`: labels are appended by default
+  (https://github.com/zendframework/zf2/issues/3626)
+- 3685: Problem on appending new identifier on `EventManager`
+  (https://github.com/zendframework/zf2/issues/3685)
+- 3695: Adapter name and sequence problems
+  (https://github.com/zendframework/zf2/issues/3695)
+- 3719: `Zend\Db\Metadata\Source\AbstractSource` Notice: Undefined index
+  (https://github.com/zendframework/zf2/issues/3719)
+- 3731: Console banners are all shown consecutively
+  (https://github.com/zendframework/zf2/issues/3731)
+- 3882: `EventManager` or `Stdlib\CallbackHandler` can't handle `WeakRef` enough.
+  (https://github.com/zendframework/zf2/issues/3882)
+- 3898: `Zend\Navigation\Service\ConstructedNavigationFactory` not inject
+  dependences (router, action and etc)
+  (https://github.com/zendframework/zf2/issues/3898)
+- 3912: Ajustment `SequenceFeature` generic drivers
+  (https://github.com/zendframework/zf2/issues/3912)
+- 3934: `Acl` allow role access on all resources not honoured if added after resources
+  (https://github.com/zendframework/zf2/issues/3934)
+- 3983: Update `BaseInputFilter`
+  (https://github.com/zendframework/zf2/issues/3983)
+- 4002: Update `DocBlockScanner`
+  (https://github.com/zendframework/zf2/issues/4002)
+- 4013: Fix PHP Notice in `Translator` class
+  (https://github.com/zendframework/zf2/issues/4013)
+- 4014: update to `FlashMessenger` view helper to allow for classes on separator
+  (https://github.com/zendframework/zf2/issues/4014)
+- 4020: Add parent roles with traversable object
+  (https://github.com/zendframework/zf2/issues/4020)
+- 4026: `Zend\Validator` Test Suite Fix
+  (https://github.com/zendframework/zf2/issues/4026)
+- 4027: Move deprecation notice inside constructor of `Query` class
+  (https://github.com/zendframework/zf2/issues/4027)
+- 4035: [Router] non existent child route during assembly doesn't throw exception
+  (https://github.com/zendframework/zf2/issues/4035)
+- 4037: Remove unnecessary `autoload.php` from composer config.
+  (https://github.com/zendframework/zf2/issues/4037)
+- 4047: Update `InArray.php`
+  (https://github.com/zendframework/zf2/issues/4047)
+- 4049: removed unused cache test assets from test suite
+  (https://github.com/zendframework/zf2/issues/4049)
+- 4051: `writeLine()` with console is (literally) breaking when the string is "too long"?
+  (https://github.com/zendframework/zf2/issues/4051)
+- 4053: Implement better text domain merging support
+  (https://github.com/zendframework/zf2/issues/4053)
+- 4054: 2.1.4: `Zend/Stdlib/composer.json` requires  "Zend/Stdlib/compatibility/autoload.php"
+  (https://github.com/zendframework/zf2/issues/4054)
+- 4055: Fix #4051 `console::writeLine()` 
+  (https://github.com/zendframework/zf2/issues/4055)
+- 4061: Normalize console usage
+  (https://github.com/zendframework/zf2/issues/4061)
+- 4063: Resolved Issue #2898
+  (https://github.com/zendframework/zf2/issues/4063)
+- 4064: Fixed issue with invalid `@cover` annotations, pointed to not existed class
+  (https://github.com/zendframework/zf2/issues/4064)
+- 4066: `HttpControllerTestCase` gives wrong messages for `assertRedirect`/`assertNotRedirect`
+  (https://github.com/zendframework/zf2/issues/4066)
+- 4070: Hotfix for issue #4069
+  (https://github.com/zendframework/zf2/issues/4070)
+- 4074: fix typos
+  (https://github.com/zendframework/zf2/issues/4074)
+- 4075: `Form\Collection`: allow create new objects
+  (https://github.com/zendframework/zf2/issues/4075)
+- 4077: Fix `Collection` form element replacing bound objects with dummies upon form validation
+  (https://github.com/zendframework/zf2/issues/4077)
+- 4079: Some fixes for phpDoc in `Zend\Mvc`
+  (https://github.com/zendframework/zf2/issues/4079)
+- 4084: Introduce query parameter for `Navigation\Page\Mvc`
+  (https://github.com/zendframework/zf2/issues/4084)
+- 4085: Fix loading of a text domain from different sources, fixes issue #4045
+  (https://github.com/zendframework/zf2/issues/4085)
+- 4089: Zend\Test - set the request's `requestUri` to the dispatched url
+  (https://github.com/zendframework/zf2/issues/4089)
+- 4095: `Zend\Navigation\Page\Mvc::getHref` does not use `RouteMatch` parameters
+  (https://github.com/zendframework/zf2/issues/4095)
+- 4102: simplify constant usage. `FILEINFO_MIME_TYPE` is available since PHP 5.3.0
+  (https://github.com/zendframework/zf2/issues/4102)
+- 4103: `FormDateTimeSelect` - minutes delimiter always shown
+  (https://github.com/zendframework/zf2/issues/4103)
+- 4111: Updated translations
+  (https://github.com/zendframework/zf2/issues/4111)
+- 4117: [InputFilter] Allow specification of error message via `Factory`
+  (https://github.com/zendframework/zf2/issues/4117)
+- 4118: Fix name of variable used for capturing output when executing shell command
+  (https://github.com/zendframework/zf2/issues/4118)
+- 4119: Fix weird verbalization
+  (https://github.com/zendframework/zf2/issues/4119)
+- 4123: Fix#3373
+  (https://github.com/zendframework/zf2/issues/4123)
+- 4129: Update to `ServiceManager` to provide more precise error messages
+  (https://github.com/zendframework/zf2/issues/4129)
+- 4133: Fix#4103
+  (https://github.com/zendframework/zf2/issues/4133)
+- 4134: Zend\Mvc\Router\Console\Simple not compatible with older versions of pcre (and therefore CentOS)
+  (https://github.com/zendframework/zf2/issues/4134)
+- 4135: Update Czech validator messages
+  (https://github.com/zendframework/zf2/issues/4135)
+- 4138: Modified Router to use backwards compatible regex expression Issue: 4134
+  (https://github.com/zendframework/zf2/issues/4138)
+- 4140: When displaying navigations three times last navigation has data of prev...
+  (https://github.com/zendframework/zf2/issues/4140)
+- 4143: Fixed issue #3626
+  (https://github.com/zendframework/zf2/issues/4143)
+- 4144: feature / `quoteTrustedValueList`
+  (https://github.com/zendframework/zf2/issues/4144)
+- 4147: Reset stop-propagation flag when triggering event
+  (https://github.com/zendframework/zf2/issues/4147)
+- 4148: Filters priority setting when populating filters in inputfilter factory and not losing it when merging filter chains
+  (https://github.com/zendframework/zf2/issues/4148)
+- 4150: Hotfix - `callable` type introspection for method parameters
+  (https://github.com/zendframework/zf2/issues/4150)
+- 4152: Fixed some EMail Validation Strings - German
+  (https://github.com/zendframework/zf2/issues/4152)
+- 4153: [Feed] sync svn r24842 - Fix ZF-4491
+  (https://github.com/zendframework/zf2/issues/4153)
+- 4154: Catch `LogicException` for Rewind and fix CP errors
+  (https://github.com/zendframework/zf2/issues/4154)
+- 4157: end autoload classmap generated file with EOL
+  (https://github.com/zendframework/zf2/issues/4157)
+- 4161: servicemanager is a requirement
+  (https://github.com/zendframework/zf2/issues/4161)
+- 4164: Fetch model from event parameter
+  (https://github.com/zendframework/zf2/issues/4164)
+- 4167: `Console` posix adapter `writeLine()` background color bleeding through to the next line.
+  (https://github.com/zendframework/zf2/issues/4167)
+- 4168: Fix #4167 - Console posix adapter `writeLine()` background color bleeding through to the next line.
+  (https://github.com/zendframework/zf2/issues/4168)
+- 4171: Fix BC break in 2.1.5dev - Revert to previous `isRequired` behavior for file upload inputs
+  (https://github.com/zendframework/zf2/issues/4171)
+- 4172: [Form] Remove after Add doesn't restore initial state
+  (https://github.com/zendframework/zf2/issues/4172)
+- 4180: Radio & Multicheckbox Problem with selected & disabled attributes
+  (https://github.com/zendframework/zf2/issues/4180)
+- 4182: Issue #3358 - Fix for console router not accepting controller word as part of a route
+  (https://github.com/zendframework/zf2/issues/4182)
+- 4183: Update `Zend_Validate.php` resource
+  (https://github.com/zendframework/zf2/issues/4183)
+- 4184: Updated `Page\Mvc::getHref` to grab correct controller name from `routeMatch`
+  (https://github.com/zendframework/zf2/issues/4184)
+- 4191: `Zend\Stdlib\Hydrator\ClassMethods::hydrate()` - support for `__call()` magic method
+  (https://github.com/zendframework/zf2/issues/4191)
+- 4198: fixed typo in french `Zend_Validator_StringLength`
+  (https://github.com/zendframework/zf2/issues/4198)
+- 4199:  Issue #4172 - Fixed empty priority queue state
+  (https://github.com/zendframework/zf2/issues/4199)
+- 4201: Issue #4172 - Added tests for add/remove sequence in `Zend\Form`
+  (https://github.com/zendframework/zf2/issues/4201)
+- 4203: Allow an instance of `Zend\Stdlib\AbstractOptions` to set configuration properties of the same class
+  (https://github.com/zendframework/zf2/issues/4203)
+- 4207: Fixed default plural rule.
+  (https://github.com/zendframework/zf2/issues/4207)
+- 4210: Fixed failure when implementing custom rbac roles
+  (https://github.com/zendframework/zf2/issues/4210)
+- 4213: [Curl] `setOptions` should merge config items that can be arrays
+  (https://github.com/zendframework/zf2/issues/4213)
+- 4216: Require `Zend\Config` in `Zend\Mvc`
+  (https://github.com/zendframework/zf2/issues/4216)
+- 4224: `Mail\Headers.php`: Adjust regex for field name to RFC 5322
+  (https://github.com/zendframework/zf2/issues/4224)
+- 4225: change variable naming
+  (https://github.com/zendframework/zf2/issues/4225)
+- 4226: ZF2 ACL full access
+  (https://github.com/zendframework/zf2/issues/4226)
+- 4227: Updated `Zend_Captcha` and `Zend_Validate` for catalan language
+  (https://github.com/zendframework/zf2/issues/4227)
+- 4232: Correct tests for group multicheckbox & radio attributes
+  (https://github.com/zendframework/zf2/issues/4232)
+- 4233: remove mistake doc for `Zend\Http\PhpEnvironment\Request::detectBaseUrl()`
+  (https://github.com/zendframework/zf2/issues/4233)
+- 4235: fixed `setEventManager`
+  (https://github.com/zendframework/zf2/issues/4235)
+- 4236: Update `ProvidesEvents.php`
+  (https://github.com/zendframework/zf2/issues/4236)
+- 4237: Update `ModuleManager.php`
+  (https://github.com/zendframework/zf2/issues/4237)
+- 4239: Remove annotation in `Zend\Db\Adapter\AdapterAwareTrait`
+  (https://github.com/zendframework/zf2/issues/4239)
+- 4240: A Better fix for #3912
+  (https://github.com/zendframework/zf2/issues/4240)
+- 4241: `Zend\Db\Metadata` - remove quoting of known scalars, use `quoteTrustedValue()` for provided values
+  (https://github.com/zendframework/zf2/issues/4241)
+- 4242: fix `Zend\Json` doc and little typo
+  (https://github.com/zendframework/zf2/issues/4242)
+- 4243: remove `if` `else` for same return
+  (https://github.com/zendframework/zf2/issues/4243)
+- 4244: remove unused `require_once __DIR__ . '/SplAutoloader.php';`
+  (https://github.com/zendframework/zf2/issues/4244)
+- 4246: replaced `get_called_class()` with `get_class($this)` in non-static context
+  (https://github.com/zendframework/zf2/issues/4246)
+
+## 2.1.4 (13 Mar 2013):
+
+- ZF2013-01: Query route (http://framework.zend.com/security/ZF2013-01)
+- ZF2013-02: RNG support (http://framework.zend.com/security/ZF2013-02)
+- ZF2013-03: DB platform quoting (http://framework.zend.com/security/ZF2013-03)
+- 2752: `Zend_Json_Server` to accept null parameters
+  (https://github.com/zendframework/zf2/issues/2752)
+- 3696: `Zend\Json\Server\Server` should allow parameters with NULL values
+  (https://github.com/zendframework/zf2/issues/3696)
+- 3767: Allow NULL parameter values in `Zend/Json/Server`
+  (https://github.com/zendframework/zf2/issues/3767)
+- 3827: Fix mismatches between the PHPDoc and the method signatures
+  (https://github.com/zendframework/zf2/issues/3827)
+- 3840: allow a null page in pages array, to compensate for ZF issue #3823
+  (https://github.com/zendframework/zf2/issues/3840)
+- 3842: Hotfix/zend test improve console usage
+  (https://github.com/zendframework/zf2/issues/3842)
+- 3849: Check if values are set in `Zend\Db\Sql\Insert.php` for prepared
+  statement
+  (https://github.com/zendframework/zf2/issues/3849)
+- 3867: `FileGenerator::setUses()` MUST can take arguments from
+  `FileGenerator::getUses()`
+  (https://github.com/zendframework/zf2/issues/3867)
+- 3868: `ClassGenerator::fromReflection` not generate class properties
+  (https://github.com/zendframework/zf2/issues/3868)
+- 3869: Remove BC break in `Identical` validator
+  (https://github.com/zendframework/zf2/issues/3869)
+- 3871: The method delete on the `RowGateway` now returns the affected rows
+  (https://github.com/zendframework/zf2/issues/3871)
+- 3873: Fixes an issue when binding a model to a form collection element
+  (https://github.com/zendframework/zf2/issues/3873)
+- 3885: Hotfix/add tests console adapter
+  (https://github.com/zendframework/zf2/issues/3885)
+- 3886: Add tests console prompt
+  (https://github.com/zendframework/zf2/issues/3886)
+- 3888: `DefinitionList` `hasMethod` fix
+  (https://github.com/zendframework/zf2/issues/3888)
+- 3907: Add tests console request response
+  (https://github.com/zendframework/zf2/issues/3907)
+- 3916: Fix PUT HTTP method usage with params
+  (https://github.com/zendframework/zf2/issues/3916)
+- 3917: Clean the Console abstract adapter
+  (https://github.com/zendframework/zf2/issues/3917)
+- 3921: [+BUGFIX] Fixed column names bug `Zend\Db\Sql\Select`
+  (https://github.com/zendframework/zf2/issues/3921)
+- 3925: Added view and validator dependency
+  (https://github.com/zendframework/zf2/issues/3925)
+- 3936: Improve the remove of `SendResponseListener`
+  (https://github.com/zendframework/zf2/issues/3936)
+- 3946: Adding config to `openssl_pkey_export()`
+  (https://github.com/zendframework/zf2/issues/3946)
+- 3947: fix exception %s passed variable of 'A service by the name or alias %s'  should be $name
+  (https://github.com/zendframework/zf2/issues/3947)
+- 3948: Bug/merging translator textdomains
+  (https://github.com/zendframework/zf2/issues/3948)
+- 3950: Fix zero value in argument
+  (https://github.com/zendframework/zf2/issues/3950)
+- 3957: [Hotfix] Fixed incorrect `PDO_Oci` platform recognition
+  (https://github.com/zendframework/zf2/issues/3957)
+- 3960: Update toString() to use late static binding for encoding methods
+  (https://github.com/zendframework/zf2/issues/3960)
+- 3964: Fix fluent interface
+  (https://github.com/zendframework/zf2/issues/3964)
+- 3966: Better polyfill support for `Stdlib` and `Session`
+  (https://github.com/zendframework/zf2/issues/3966)
+- 3968: fixed `Exception\InvalidArgumentException` messages in `Zend\Log`
+  (https://github.com/zendframework/zf2/issues/3968)
+- 3971: SessionArrayStorage doesn't preserve `_REQUEST_ACCESS_TIME`
+  (https://github.com/zendframework/zf2/issues/3971)
+- 3973: Documentation improvement `Zend\View\Stream`
+  (https://github.com/zendframework/zf2/issues/3973)
+- 3980: change `HOST_DNS_OR_IPV4_OR_IPV6` to `0x13` for `$validHostTypes`
+  (https://github.com/zendframework/zf2/issues/3980)
+- 3981: Improve exception messages
+  (https://github.com/zendframework/zf2/issues/3981)
+- 3982: Fix `\Zend\Soap\AutoDiscover` constructor
+  (https://github.com/zendframework/zf2/issues/3982)
+- 3984: Update `ArrayStack.php`
+  (https://github.com/zendframework/zf2/issues/3984)
+- 3987: Fix ChromePhp logger interface and debug level
+  (https://github.com/zendframework/zf2/issues/3987)
+- 3988: Fix & Unit test for `preparestatement` notices
+  (https://github.com/zendframework/zf2/issues/3988)
+- 3991: Hotfix/3858 - `findHelper` problem in Navigation Helper
+  (https://github.com/zendframework/zf2/issues/3991)
+- 3993: `SessionArrayStorage` Request Access Time and Storage Initialization
+  (https://github.com/zendframework/zf2/issues/3993)
+- 3997: Allow https on scheme without a hostname
+  (https://github.com/zendframework/zf2/issues/3997)
+- 4001: Fix `ViewFeedStrategyFactory` comment
+  (https://github.com/zendframework/zf2/issues/4001)
+- 4005: Hotfix/case sensitive console
+  (https://github.com/zendframework/zf2/issues/4005)
+- 4007: Pass `ClassGenerator` instance instead of boolean
+  (https://github.com/zendframework/zf2/issues/4007)
+- 4009: Minor if to else if improvement
+  (https://github.com/zendframework/zf2/issues/4009)
+- 4010: Hotfix/zend test with console route
+  (https://github.com/zendframework/zf2/issues/4010)
+
+## 2.1.3 (21 Feb 2013):
+
+- 3714: Zend\Stdlib\ArrayObject::offsetExists() returning by reference
+  (https://github.com/zendframework/zf2/issues/3714)
+- 3855: Fix #3852
+  (https://github.com/zendframework/zf2/issues/3855)
+- 3856: Simple route case insensitive
+  (https://github.com/zendframework/zf2/issues/3856)
+
+## 2.1.2 (20 Feb 2013):
+
+- 3085: create controller via Zend\Mvc\Controller\ControllerManager
+  (https://github.com/zendframework/zf2/issues/3085)
+- 3469: ConnectionInterface docblock is wrong or implementation is wrong..
+  (https://github.com/zendframework/zf2/issues/3469)
+- 3506: [WIP] [#3113] Fix spelling in error validation messages
+  (https://github.com/zendframework/zf2/issues/3506)
+- 3636: If route has child routes and in URL has arbitrary query like "?lang=de"
+  it does not work
+  (https://github.com/zendframework/zf2/issues/3636)
+- 3652: Query parameter ?action=somevalue will get 404 error
+  (https://github.com/zendframework/zf2/issues/3652)
+- 3683: Fix to make sure NotEmpty validator is not already set
+  (https://github.com/zendframework/zf2/issues/3683)
+- 3691: Fix for GitHub issue 3469
+  (https://github.com/zendframework/zf2/issues/3691)
+- 3698: Openssl error string
+  (https://github.com/zendframework/zf2/issues/3698)
+- 3699: Certain servers may not set a whitespace after a colon 
+  (Set-Cookie: header)
+  (https://github.com/zendframework/zf2/issues/3699)
+- 3701: Synced pt\_BR\Zend\_Validate.php with en\Zend\_Validate.php
+  (https://github.com/zendframework/zf2/issues/3701)
+- 3702: added new file: resources\languages\pt\_BR\Zend\_Captcha.php
+  (https://github.com/zendframework/zf2/issues/3702)
+- 3703: [WIP] Adding parallel testing ANT build configuration and related files
+  (https://github.com/zendframework/zf2/issues/3703)
+- 3705: Recent composer.json update of stdlib package
+  (https://github.com/zendframework/zf2/issues/3705)
+- 3706: clear joins and create without columns
+  (https://github.com/zendframework/zf2/issues/3706)
+- 3707: quoteIdentifier problem in sequence
+  (https://github.com/zendframework/zf2/issues/3707)
+- 3708: Filter\File\RenameUpload: wrap move\_uploaded\_file to be easly mocked
+  (https://github.com/zendframework/zf2/issues/3708)
+- 3712: Fix for URIs with a query string not matching
+  (https://github.com/zendframework/zf2/issues/3712)
+- 3713: Session Container Mismatch & Version Compare fixes for 5.3.3
+  (https://github.com/zendframework/zf2/issues/3713)
+- 3715: [#3705] Fix autoload.files setting in composer.json
+  (https://github.com/zendframework/zf2/issues/3715)
+- 3716: Added the Zend\Form decepence in composer.json for Zend\Mvc
+  (https://github.com/zendframework/zf2/issues/3716)
+- 3721: Created README.md files for each component
+  (https://github.com/zendframework/zf2/issues/3721)
+- 3722: [Form] [DateTimeSelect] Filter, manager, and view helper fixes
+  (https://github.com/zendframework/zf2/issues/3722)
+- 3725: Use built-in php constants
+  (https://github.com/zendframework/zf2/issues/3725)
+- 3729: Zend\Barcode (Fixes #2862)
+  (https://github.com/zendframework/zf2/issues/3729)
+- 3732: Fix for #2531 - Multiplie navigation don't work
+  (https://github.com/zendframework/zf2/issues/3732)
+- 3733: Fix/select where
+  (https://github.com/zendframework/zf2/issues/3733)
+- 3735: [Form] [FormElementManager] don't overwrite form factory if already set
+  (https://github.com/zendframework/zf2/issues/3735)
+- 3742: Object+hydrator element annotation fix
+  (https://github.com/zendframework/zf2/issues/3742)
+- 3743: [#3739 & #3740] Using version-compare in accept header handler params.
+  (https://github.com/zendframework/zf2/issues/3743)
+- 3746: Fix bugs for some locales!
+  (https://github.com/zendframework/zf2/issues/3746)
+- 3757: Fixed a bug where mail messages were malformed when using the Sendmail
+  (https://github.com/zendframework/zf2/issues/3757)
+- 3764: Validator File MimeType (IsImage & IsCompressed)
+  (https://github.com/zendframework/zf2/issues/3764)
+- 3771: Zend\File\Transfer\Adapter\Http on receive : error "File was not found"  in ZF 2.1
+  (https://github.com/zendframework/zf2/issues/3771)
+- 3778: [#3711] Fix regression in query string matching
+  (https://github.com/zendframework/zf2/issues/3778)
+- 3782: [WIP] Zend\Di\Di::get() with call parameters ignored shared instances.
+  (https://github.com/zendframework/zf2/issues/3782)
+- 3783: Provide branch-alias entries for each component composer.json
+  (https://github.com/zendframework/zf2/issues/3783)
+- 3785: Zend\Db\Sql\Literal Fix when % is used in string
+  (https://github.com/zendframework/zf2/issues/3785)
+- 3786: Inject shared event manager in initializer
+  (https://github.com/zendframework/zf2/issues/3786)
+- 3789: Update library/Zend/Mail/Header/AbstractAddressList.php
+  (https://github.com/zendframework/zf2/issues/3789)
+- 3793: Resolved Issue: #3748 - offsetGet and __get should do a direct proxy to
+  $_SESSION
+  (https://github.com/zendframework/zf2/issues/3793)
+- 3794: Implement query and fragment assembling into the HTTP router itself
+  (https://github.com/zendframework/zf2/issues/3794)
+- 3797: remove @category, @package, and @subpackage docblocks
+  (https://github.com/zendframework/zf2/issues/3797)
+- 3798: Remove extra semicolons
+  (https://github.com/zendframework/zf2/issues/3798)
+- 3803: Fix identical validator
+  (https://github.com/zendframework/zf2/issues/3803)
+- 3806: Remove obsolete catch statement
+  (https://github.com/zendframework/zf2/issues/3806)
+- 3807: Resolve undefined classes in phpDoc
+  (https://github.com/zendframework/zf2/issues/3807)
+- 3808: Add missing @return annotations
+  (https://github.com/zendframework/zf2/issues/3808)
+- 3813: Bug fix for GlobIterator extending service
+  (https://github.com/zendframework/zf2/issues/3813)
+- 3817: Add failing tests for Simple console route
+  (https://github.com/zendframework/zf2/issues/3817)
+- 3819: Allow form element filter to convert a string to array
+  (https://github.com/zendframework/zf2/issues/3819)
+- 3828: Cannot validate form when keys of collection in data are non consecutive
+  (https://github.com/zendframework/zf2/issues/3828)
+- 3831: Non-matching argument type for ArrayObject
+  (https://github.com/zendframework/zf2/issues/3831)
+- 3832: Zend\Db\Sql\Predicate\Predicate->literal() does not work with integer 0
+  as $expressionParameters
+  (https://github.com/zendframework/zf2/issues/3832)
+- 3836: Zend\Db\Sql\Predicate\Predicate Fix for literal() usage
+  (https://github.com/zendframework/zf2/issues/3836)
+- 3837: Fix for legacy Transfer usage of File Validators
+  (https://github.com/zendframework/zf2/issues/3837)
+- 3838: Stdlib\ArrayObject & Zend\Session\Container Compatibility with ArrayObject
+  (https://github.com/zendframework/zf2/issues/3838)
+- 3839: Fixes #2477 - Implemented optional subdomains using regex
+  (https://github.com/zendframework/zf2/issues/3839)
+
+## 2.1.1 (06 Feb 2013):
+
+- 2510: Zend\Session\Container does not allow modification by reference
+  (https://github.com/zendframework/zf2/issues/2510)
+- 2899: Can't inherit abstract function
+  Zend\Console\Prompt\PromptInterface::show()
+  (https://github.com/zendframework/zf2/issues/2899)
+- 3455: Added DISTINCT on Zend\Db\Sql\Select
+  (https://github.com/zendframework/zf2/issues/3455)
+- 3456: Connection creation added in Pgsql.php createStatement method
+  (https://github.com/zendframework/zf2/issues/3456)
+- 3608: Fix validate data contains arrays as values
+  (https://github.com/zendframework/zf2/issues/3608)
+- 3610: Form: rely on specific setter
+  (https://github.com/zendframework/zf2/issues/3610)
+- 3618: Fix bug when $indent have some string
+  (https://github.com/zendframework/zf2/issues/3618)
+- 3622: Updated Changelog with BC notes for 2.1 and 2.0.7
+  (https://github.com/zendframework/zf2/issues/3622)
+- 3623: Authentication using DbTable Adapter doesn't work for 2.1.0
+  (https://github.com/zendframework/zf2/issues/3623)
+- 3625: Missing instance/object for parameter route upgrading to 2.1.\*
+  (https://github.com/zendframework/zf2/issues/3625)
+- 3627: Making relative links in Markdown files
+  (https://github.com/zendframework/zf2/issues/3627)
+- 3629: Zend\Db\Select using alias in joins can results in wrong SQL
+  (https://github.com/zendframework/zf2/issues/3629)
+- 3638: Fixed method that removed part from parts in Mime\Message
+  (https://github.com/zendframework/zf2/issues/3638)
+- 3639: Session Metadata and SessionArrayStorage requestaccesstime fixes.
+  (https://github.com/zendframework/zf2/issues/3639)
+- 3640: [#3625] Do not query abstract factories for registered invokables
+  (https://github.com/zendframework/zf2/issues/3640)
+- 3641: Zend\Db\Sql\Select Fix for #3629
+  (https://github.com/zendframework/zf2/issues/3641)
+- 3645: Exception on destructing the SMTP Transport instance
+  (https://github.com/zendframework/zf2/issues/3645)
+- 3648: Ensure run() always returns Application instance
+  (https://github.com/zendframework/zf2/issues/3648)
+- 3649: Created script to aggregate return status
+  (https://github.com/zendframework/zf2/issues/3649)
+- 3650: InjectControllerDependencies initializer overriding an previously
+  defined EventManager
+  (https://github.com/zendframework/zf2/issues/3650)
+- 3651: Hotfix/3650
+  (https://github.com/zendframework/zf2/issues/3651)
+- 3656: Zend\Validator\Db\AbstractDb.php and mysqli
+  (https://github.com/zendframework/zf2/issues/3656)
+- 3658: Zend\Validator\Db\AbstractDb.php and mysqli (issue: 3656)
+  (https://github.com/zendframework/zf2/issues/3658)
+- 3661: ZF HTTP Status Code overwritten
+  (https://github.com/zendframework/zf2/issues/3661)
+- 3662: Remove double injection in Plugin Controller Manager
+  (https://github.com/zendframework/zf2/issues/3662)
+- 3663: Remove useless shared in ServiceManager
+  (https://github.com/zendframework/zf2/issues/3663)
+- 3671: Hotfix/restful head identifier
+  (https://github.com/zendframework/zf2/issues/3671)
+- 3673: Add translations for Zend\Validator\File\UploadFile
+  (https://github.com/zendframework/zf2/issues/3673)
+- 3679: remove '\' character from Traversable 
+  (https://github.com/zendframework/zf2/issues/3679)
+- 3680: Zend\Validator\Db Hotfix (supersedes #3658)
+  (https://github.com/zendframework/zf2/issues/3680)
+- 3681: [#2899] Remove redundant method declaration
+  (https://github.com/zendframework/zf2/issues/3681)
+- 3682: Zend\Db\Sql\Select Quantifier (DISTINCT, ALL, + Expression) support -
+  supersedes #3455
+  (https://github.com/zendframework/zf2/issues/3682)
+- 3684: Remove the conditional class declaration of ArrayObject
+  (https://github.com/zendframework/zf2/issues/3684)
+- 3687: fix invalid docblock
+  (https://github.com/zendframework/zf2/issues/3687)
+- 3689: [#3684] Polyfill support for version-dependent classes
+  (https://github.com/zendframework/zf2/issues/3689)
+- 3690: oracle transaction support
+  (https://github.com/zendframework/zf2/issues/3690)
+- 3692: Hotfix/db parametercontainer mixed use
+  (https://github.com/zendframework/zf2/issues/3692)
+
+## 2.1.0 (29 Jan 2013):
+
+- 2378: ZF2-417 Form Annotation Hydrator options support
+  (https://github.com/zendframework/zf2/issues/2378)
+- 2390: Expose formally protected method in ConfigListener
+  (https://github.com/zendframework/zf2/issues/2390)
+- 2405: [WIP] Feature/accepted model controller plugin
+  (https://github.com/zendframework/zf2/issues/2405)
+- 2424: Decorator plugin manager was pointing to an inexistent class
+  (https://github.com/zendframework/zf2/issues/2424)
+- 2428: Form develop/allow date time
+  (https://github.com/zendframework/zf2/issues/2428)
+- 2430: [2.1] Added the scrypt key derivation algorithm in Zend\Crypt
+  (https://github.com/zendframework/zf2/issues/2430)
+- 2439: [2.1] Form File Upload refactor
+  (https://github.com/zendframework/zf2/issues/2439)
+- 2486: The Upload validator might be broken
+  (https://github.com/zendframework/zf2/issues/2486)
+- 2506: Throwing exception in template (and/or layout) doesnt fails gracefully
+  (https://github.com/zendframework/zf2/issues/2506)
+- 2524: Throws exception when trying to generate bcrypt
+  (https://github.com/zendframework/zf2/issues/2524)
+- 2537: Create a NotIn predicate
+  (https://github.com/zendframework/zf2/issues/2537)
+- 2616: Initial ZF2 RBAC Component
+  (https://github.com/zendframework/zf2/issues/2616)
+- 2629: JsonStrategy should set response charset
+  (https://github.com/zendframework/zf2/issues/2629)
+- 2647: Fix/bcrypt: added the set/get BackwardCompatibility
+  (https://github.com/zendframework/zf2/issues/2647)
+- 2668: Implement XCache storage adapter (fixes #2581)
+  (https://github.com/zendframework/zf2/issues/2668)
+- 2671: Added fluent inteface to prepend and set method. Zend\View\Container\AbstractContainer
+  (https://github.com/zendframework/zf2/issues/2671)
+- 2725: Feature/logger factory
+  (https://github.com/zendframework/zf2/issues/2725)
+- 2726: Zend\Validator\Explode does not handle NULL
+  (https://github.com/zendframework/zf2/issues/2726)
+- 2727: Added ability to add additional information to the logs via processors.
+  (https://github.com/zendframework/zf2/issues/2727)
+- 2772: Adding cookie route. Going to open PR for comments.
+  (https://github.com/zendframework/zf2/issues/2772)
+- 2815: Fix fro GitHub issue 2600 (Cannot check if a table is read only)
+  (https://github.com/zendframework/zf2/issues/2815)
+- 2819: Support for ListenerAggregates in SharedEventManager
+  (https://github.com/zendframework/zf2/issues/2819)
+- 2820: Form plugin manager
+  (https://github.com/zendframework/zf2/issues/2820)
+- 2863: Handle postgres sequences
+  (https://github.com/zendframework/zf2/issues/2863)
+- 2876: memcached changes
+  (https://github.com/zendframework/zf2/issues/2876)
+- 2884: Allow select object to pass on select->join
+  (https://github.com/zendframework/zf2/issues/2884)
+- 2888: Bugfix dateformat helper
+  (https://github.com/zendframework/zf2/issues/2888)
+- 2918: \Zend\Mime\Mime::LINEEND causes problems with some SMTP-Servers
+  (https://github.com/zendframework/zf2/issues/2918)
+- 2945: SOAP 1.2 support for WSDL generation
+  (https://github.com/zendframework/zf2/issues/2945)
+- 2947: Add DateTimeSelect element to form
+  (https://github.com/zendframework/zf2/issues/2947)
+- 2950: Abstract row gatewayset from array
+  (https://github.com/zendframework/zf2/issues/2950)
+- 2968: Zend\Feed\Reader\Extension\Atom\Entry::getAuthors and Feed::getAuthors
+  should return Collection\Author
+  (https://github.com/zendframework/zf2/issues/2968)
+- 2973: Zend\Db\Sql : Create NotIn predicate
+  (https://github.com/zendframework/zf2/issues/2973)
+- 2977: Method signature of merge() in Zend\Config\Config prevents mocking
+  (https://github.com/zendframework/zf2/issues/2977)
+- 2988: Cache: Added storage adapter using a session container
+  (https://github.com/zendframework/zf2/issues/2988)
+- 2990: Added note of new xcache storage adapter
+  (https://github.com/zendframework/zf2/issues/2990)
+- 3010: [2.1][File Uploads] Multi-File input filtering and FilePRG plugin update
+  (https://github.com/zendframework/zf2/issues/3010)
+- 3011: Response Json Client
+  (https://github.com/zendframework/zf2/issues/3011)
+- 3016: [develop] PRG Plugin fixes: Incorrect use of session hops expiration
+  (https://github.com/zendframework/zf2/issues/3016)
+- 3019: [2.1][develop] PRG Plugins fix
+  (https://github.com/zendframework/zf2/issues/3019)
+- 3055: Zend Validators complain of array to string conversion for nested array
+  values that do not pass validation when using E\_NOTICE
+  (https://github.com/zendframework/zf2/issues/3055)
+- 3058: [2.1][File Upload] Session Progress fixes
+  (https://github.com/zendframework/zf2/issues/3058)
+- 3059: [2.1] Add reference to ChromePhp LoggerWriter in WriterPluginManager
+  (https://github.com/zendframework/zf2/issues/3059)
+- 3069: Hotfix/xcache empty namespace
+  (https://github.com/zendframework/zf2/issues/3069)
+- 3073: Documentation and code  mismatch
+  (https://github.com/zendframework/zf2/issues/3073)
+- 3084: Basic support for aggregates in SharedEventManager according to feedback...
+  (https://github.com/zendframework/zf2/issues/3084)
+- 3086: Updated constructors to accept options array according to AbstractWriter...
+  (https://github.com/zendframework/zf2/issues/3086)
+- 3088: Zend\Permissions\Rbac roles should inherit parent permissions, not child
+  permissions
+  (https://github.com/zendframework/zf2/issues/3088)
+- 3093: Feature/cookies refactor
+  (https://github.com/zendframework/zf2/issues/3093)
+- 3105: RFC Send Response Workflow
+  (https://github.com/zendframework/zf2/issues/3105)
+- 3110: Stdlib\StringUtils
+  (https://github.com/zendframework/zf2/issues/3110)
+- 3140: Tests for Zend\Cache\Storage\Adapter\MemcachedResourceManager
+  (https://github.com/zendframework/zf2/issues/3140)
+- 3195: Date element formats not respected in validators.
+  (https://github.com/zendframework/zf2/issues/3195)
+- 3199: [2.1][FileUploads] FileInput AJAX Post fix
+  (https://github.com/zendframework/zf2/issues/3199)
+- 3212: Cache: Now an empty namespace means disabling namespace support
+  (https://github.com/zendframework/zf2/issues/3212)
+- 3215: Check $exception type before throw
+  (https://github.com/zendframework/zf2/issues/3215)
+- 3219: Fix hook in plugin manager
+  (https://github.com/zendframework/zf2/issues/3219)
+- 3224: Zend\Db\Sql\Select::getSqlString(Zend\Db\Adapter\Platform\Mysql) doesn't
+  work properly with limit param
+  (https://github.com/zendframework/zf2/issues/3224)
+- 3243: [2.1] Added the support of Apache's passwords
+  (https://github.com/zendframework/zf2/issues/3243)
+- 3246: [2.1][File Upload] Change file upload filtering to preserve the $\_FILES
+  array
+  (https://github.com/zendframework/zf2/issues/3246)
+- 3247: Fix zend test with the new sendresponselistener
+  (https://github.com/zendframework/zf2/issues/3247)
+- 3257: Support nested error handler
+  (https://github.com/zendframework/zf2/issues/3257)
+- 3259: [2.1][File Upload] RenameUpload filter rewrite w/option to use uploaded
+  'name'
+  (https://github.com/zendframework/zf2/issues/3259)
+- 3263: correcting ConsoleResponseSender's __invoke
+  (https://github.com/zendframework/zf2/issues/3263)
+- 3276: DateElement now support a string
+  (https://github.com/zendframework/zf2/issues/3276)
+- 3283: fix Undefined function DocBlockReflection::factory error
+  (https://github.com/zendframework/zf2/issues/3283)
+- 3287: Added missing constructor parameter
+  (https://github.com/zendframework/zf2/issues/3287)
+- 3308: Update library/Zend/Validator/File/MimeType.php
+  (https://github.com/zendframework/zf2/issues/3308)
+- 3314: add ContentTransferEncoding Headers
+  (https://github.com/zendframework/zf2/issues/3314)
+- 3316: Update library/Zend/Mvc/ResponseSender/ConsoleResponseSender.php
+  (https://github.com/zendframework/zf2/issues/3316)
+- 3334: [2.1][develop] Added missing Exception namespace to Sha1 validator
+  (https://github.com/zendframework/zf2/issues/3334)
+- 3339: Xterm's 256 colors integration for Console.
+  (https://github.com/zendframework/zf2/issues/3339)
+- 3343: add SimpleStreamResponseSender + Tests
+  (https://github.com/zendframework/zf2/issues/3343)
+- 3349: Provide support for more HTTP methods in the AbstractRestfulController
+  (https://github.com/zendframework/zf2/issues/3349)
+- 3350: Add little more fun to console
+  (https://github.com/zendframework/zf2/issues/3350)
+- 3357: Add default prototype tags in reflection
+  (https://github.com/zendframework/zf2/issues/3357)
+- 3359: Added filter possibility
+  (https://github.com/zendframework/zf2/issues/3359)
+- 3363: Fix minor doc block errors
+  (https://github.com/zendframework/zf2/issues/3363)
+- 3365: Fix trailing spaces CS error causing all travis builds to fail
+  (https://github.com/zendframework/zf2/issues/3365)
+- 3366: Zend\Log\Logger::registerErrorHandler() should accept a parameter to set
+  the return value of the error_handler callback 
+  (https://github.com/zendframework/zf2/issues/3366)
+- 3370: [2.1] File PRG plugin issue when merging POST data with nested keys
+  (https://github.com/zendframework/zf2/issues/3370)
+- 3376: Remove use of deprecated /e-modifier of preg_replace
+  (https://github.com/zendframework/zf2/issues/3376)
+- 3377: removed test failing since PHP>=5.4
+  (https://github.com/zendframework/zf2/issues/3377)
+- 3378: Improve code generators consistency
+  (https://github.com/zendframework/zf2/issues/3378)
+- 3385: render view one last time in case exception thrown from inside view
+  (https://github.com/zendframework/zf2/issues/3385)
+- 3389: FileExtension validor error in Form context
+  (https://github.com/zendframework/zf2/issues/3389)
+- 3392: Development branch of AbstractRestfulController->processPostData()
+  doesn't handle Content-Type application/x-www-form-urlencoded correctly
+  (https://github.com/zendframework/zf2/issues/3392)
+- 3404: Provide default $_SESSION array superglobal proxy storage adapter 
+  (https://github.com/zendframework/zf2/issues/3404)
+- 3405: fix dispatcher to catch legitimate exceptions
+  (https://github.com/zendframework/zf2/issues/3405)
+- 3414: Zend\Mvc\Controller\AbstractRestfulController: various fixes to Json
+  handling
+  (https://github.com/zendframework/zf2/issues/3414)
+- 3418: [2.1] Additional code comments for FileInput
+  (https://github.com/zendframework/zf2/issues/3418)
+- 3420: Authentication Validator
+  (https://github.com/zendframework/zf2/issues/3420)
+- 3421: Allow to set arbitrary status code for Exception strategy
+  (https://github.com/zendframework/zf2/issues/3421)
+- 3426: Zend\Form\View\Helper\FormSelect
+  (https://github.com/zendframework/zf2/issues/3426)
+- 3427: `Zend\ModuleManager\Feature\ProvidesDependencyModulesInterface`
+  (https://github.com/zendframework/zf2/issues/3427)
+- 3440: [#3376] Better fix
+  (https://github.com/zendframework/zf2/issues/3440)
+- 3442: Better content-type negotiation
+  (https://github.com/zendframework/zf2/issues/3442)
+- 3446: Zend\Form\Captcha setOptions don't follow interface contract
+  (https://github.com/zendframework/zf2/issues/3446)
+- 3450: [Session][Auth] Since the recent BC changes to Sessions,
+  Zend\Authentication\Storage\Session does not work
+  (https://github.com/zendframework/zf2/issues/3450)
+- 3454: ACL permissions are not correctly inherited.
+  (https://github.com/zendframework/zf2/issues/3454)
+- 3458: Session data is empty in Session SaveHandler's write function
+  (https://github.com/zendframework/zf2/issues/3458)
+- 3461: fix for zendframework/zf2#3458
+  (https://github.com/zendframework/zf2/issues/3461)
+- 3470: Session not working in current development?
+  (https://github.com/zendframework/zf2/issues/3470)
+- 3479: Fixed #3454.
+  (https://github.com/zendframework/zf2/issues/3479)
+- 3482: Feature/rest delete replace collection
+  (https://github.com/zendframework/zf2/issues/3482)
+- 3483: [#2629] Add charset to Content-Type header
+  (https://github.com/zendframework/zf2/issues/3483)
+- 3485: Zend\Db Oracle Driver
+  (https://github.com/zendframework/zf2/issues/3485)
+- 3491: Update library/Zend/Code/Generator/PropertyGenerator.php
+  (https://github.com/zendframework/zf2/issues/3491)
+- 3493: [Log] fixes #3366: Now Logger::registerErrorHandler() accepts continue
+  (https://github.com/zendframework/zf2/issues/3493)
+- 3494: [2.1] Zend\Filter\Word\* no longer extends Zend\Filter\PregReplace
+  (https://github.com/zendframework/zf2/issues/3494)
+- 3495: [2.1] Added Zend\Stdlib\StringUtils::hasPcreUnicodeSupport()
+  (https://github.com/zendframework/zf2/issues/3495)
+- 3496: [2.1] fixed tons of missing/wrong use statements
+  (https://github.com/zendframework/zf2/issues/3496)
+- 3498: add method to Zend\Http\Response\Stream
+  (https://github.com/zendframework/zf2/issues/3498)
+- 3499: removed "self" typehints in Zend\Config and Zend\Mvc
+  (https://github.com/zendframework/zf2/issues/3499)
+- 3501: Exception while createing RuntimeException in Pdo Connection class
+  (https://github.com/zendframework/zf2/issues/3501)
+- 3507: hasAcl dosn't cheks $defaultAcl Member Variable
+  (https://github.com/zendframework/zf2/issues/3507)
+- 3508: Removed all @category, @package, and @subpackage annotations
+  (https://github.com/zendframework/zf2/issues/3508)
+- 3509: Zend\Form\View\Helper\FormSelect
+  (https://github.com/zendframework/zf2/issues/3509)
+- 3510: FilePRG: replace array_merge with ArrayUtils::merge
+  (https://github.com/zendframework/zf2/issues/3510)
+- 3511: Revert PR #3088 as discussed in #3265.
+  (https://github.com/zendframework/zf2/issues/3511)
+- 3519: Allow to pull route manager from sl
+  (https://github.com/zendframework/zf2/issues/3519)
+- 3523: Components dependent on Zend\Stdlib but it's not marked in composer.json
+  (https://github.com/zendframework/zf2/issues/3523)
+- 3531: [2.1] Fix variable Name and Resource on Oracle Driver Test
+  (https://github.com/zendframework/zf2/issues/3531)
+- 3532: Add legend translation support into formCollection view helper
+  (https://github.com/zendframework/zf2/issues/3532)
+- 3538: ElementPrepareAwareInterface should use FormInterface
+  (https://github.com/zendframework/zf2/issues/3538)
+- 3541: \Zend\Filter\Encrypt and \Zend\Filter\Decrypt not working together?
+  (https://github.com/zendframework/zf2/issues/3541)
+- 3543: Hotfix: Undeprecate PhpEnvironement Response methods
+  (https://github.com/zendframework/zf2/issues/3543)
+- 3545: Removing service initializer as of zendframework/zf2#3537
+  (https://github.com/zendframework/zf2/issues/3545)
+- 3546: Add RoleInterface
+  (https://github.com/zendframework/zf2/issues/3546)
+- 3555: [2.1] [Forms] [Bug] Factory instantiates Elements directly but should be
+  using the FormElementManager
+  (https://github.com/zendframework/zf2/issues/3555)
+- 3556: fix for zendframework/zf2#3555
+  (https://github.com/zendframework/zf2/issues/3556)
+- 3557: [2.1] Fixes for FilePRG when using nested form elements
+  (https://github.com/zendframework/zf2/issues/3557)
+- 3559: Feature/translate flash message
+  (https://github.com/zendframework/zf2/issues/3559)
+- 3561: Zend\Mail SMTP Fix Connection Handling
+  (https://github.com/zendframework/zf2/issues/3561)
+- 3566: Flash Messenger fixes for PHP < 5.4, and fix for default namespacing
+  (https://github.com/zendframework/zf2/issues/3566)
+- 3567: Zend\Db: Adapter construction features + IbmDb2 & Oracle Platform
+  features
+  (https://github.com/zendframework/zf2/issues/3567)
+- 3572: Allow to add serializers through config
+  (https://github.com/zendframework/zf2/issues/3572)
+- 3576: BC Break in Controller Loader, controllers no more present in controller
+  loader.
+  (https://github.com/zendframework/zf2/issues/3576)
+- 3583: [2.1] Fixed an issue on salt check in Apache Password
+  (https://github.com/zendframework/zf2/issues/3583)
+- 3584: Zend\Db Fix for #3290
+  (https://github.com/zendframework/zf2/issues/3584)
+- 3585: [2.1] Added the Apache htpasswd support for HTTP Authentication
+  (https://github.com/zendframework/zf2/issues/3585)
+- 3586: Zend\Db Fix for #2563
+  (https://github.com/zendframework/zf2/issues/3586)
+- 3587: Zend\Db Fix/Feature for #3294
+  (https://github.com/zendframework/zf2/issues/3587)
+- 3597: Zend\Db\TableGateway hotfix for MasterSlaveFeature
+  (https://github.com/zendframework/zf2/issues/3597)
+- 3598: Feature Zend\Db\Adapter\Profiler
+  (https://github.com/zendframework/zf2/issues/3598)
+- 3599: [WIP] Zend\Db\Sql Literal Objects
+  (https://github.com/zendframework/zf2/issues/3599)
+- 3600: Fixed the unit test for Zend\Filter\File\Encrypt and Decrypt
+  (https://github.com/zendframework/zf2/issues/3600)
+- 3605: Restore Zend\File\Transfer
+  (https://github.com/zendframework/zf2/issues/3605)
+- 3606: Zend\Db\Sql\Select Add Support For SubSelect in Join Table - #2881 &
+  #2884
+  (https://github.com/zendframework/zf2/issues/3606)
+
+### Potential Breakage
+
+Includes a fix to the classes `Zend\Filter\Encrypt`
+and `Zend\Filter\Decrypt` which may pose a small break for end-users. Each
+requires an encryption key be passed to either the constructor or the
+setKey() method now; this was done to improve the security of each
+class.
+
+`Zend\Session` includes a new `Zend\Session\Storage\SessionArrayStorage`
+class, which acts as a direct proxy to the $_SESSION superglobal. The
+SessionManager class now uses this new storage class by default, in
+order to fix an error that occurs when directly manipulating nested
+arrays of $_SESSION in third-party code. For most users, the change will
+be seamless. Those affected will be those (a) directly accessing the
+storage instance, and (b) using object notation to access session
+members:
+
+    $foo = null;
+    /** @var $storage Zend\Session\Storage\SessionStorage */
+    if (isset($storage->foo)) {
+        $foo = $storage->foo;
+    }
+
+If you are using array notation, as in the following example, your code
+remains forwards compatible:
+
+    $foo = null;
+
+    /** @var $storage Zend\Session\Storage\SessionStorage */
+    if (isset($storage['foo'])) {
+        $foo = $storage['foo'];
+    }
+
+If you are not working directly with the storage instance, you will be
+unaffected.
+
+For those affected, the following courses of action are possible:
+
+ * Update your code to replace object property notation with array
+   notation, OR
+ * Initialize and register a Zend\Session\Storage\SessionStorage object
+   explicitly with the session manager instance.
+
+## 2.0.8 (13 Mar 2013):
+
+- ZF2013-01: Query route (http://framework.zend.com/security/ZF2013-01)
+- ZF2013-02: RNG support (http://framework.zend.com/security/ZF2013-02)
+- ZF2013-03: DB platform quoting (http://framework.zend.com/security/ZF2013-03)
+
+## 2.0.7 (29 Jan 2013):
+
+- 1992: [2.1] Adding simple Zend/I18n/Loader/Tmx
+  (https://github.com/zendframework/zf2/issues/1992)
+- 2024: Add HydratingResultSet::toEntityArray()
+  (https://github.com/zendframework/zf2/issues/2024)
+- 2031: [2.1] Added MongoDB session save handler
+  (https://github.com/zendframework/zf2/issues/2031)
+- 2080: [2.1] Added a ChromePhp logger
+  (https://github.com/zendframework/zf2/issues/2080)
+- 2086: [2.1] Module class map cache
+  (https://github.com/zendframework/zf2/issues/2086)
+- 2100: [2.1] refresh() method in Redirect plugin
+  (https://github.com/zendframework/zf2/issues/2100)
+- 2105: [2.1] Feature/unidecoder
+  (https://github.com/zendframework/zf2/issues/2105)
+- 2106: [2.1] Class annotation scanner
+  (https://github.com/zendframework/zf2/issues/2106)
+- 2125: [2.1] Add hydrator wildcard and new hydrator strategy
+  (https://github.com/zendframework/zf2/issues/2125)
+- 2129: [2.1] Feature/overrideable di factories
+  (https://github.com/zendframework/zf2/issues/2129)
+- 2152: [2.1] [WIP] adding basic table view helper
+  (https://github.com/zendframework/zf2/issues/2152)
+- 2175: [2.1] Add DateSelect and MonthSelect elements
+  (https://github.com/zendframework/zf2/issues/2175)
+- 2189: [2.1] Added msgpack serializer
+  (https://github.com/zendframework/zf2/issues/2189)
+- 2190: [2.1] [WIP] Zend\I18n\Filter\SlugUrl - Made a filter to convert text to
+  slugs
+  (https://github.com/zendframework/zf2/issues/2190)
+- 2208: [2.1] Update library/Zend/View/Helper/HeadScript.php
+  (https://github.com/zendframework/zf2/issues/2208)
+- 2212: [2.1] Feature/uri normalize filter
+  (https://github.com/zendframework/zf2/issues/2212)
+- 2225: Zend\Db\Sql : Create NotIn predicate
+  (https://github.com/zendframework/zf2/issues/2225)
+- 2232: [2.1] Load Messages from other than file
+  (https://github.com/zendframework/zf2/issues/2232)
+- 2271: [2.1] Ported FingersCrossed handler from monolog to ZF2
+  (https://github.com/zendframework/zf2/issues/2271)
+- 2288: Allow to create empty option in Select
+  (https://github.com/zendframework/zf2/issues/2288)
+- 2305: Add support for prev and next link relationships
+  (https://github.com/zendframework/zf2/issues/2305)
+- 2315: Add MVC service factories for Filters and Validators
+  (https://github.com/zendframework/zf2/issues/2315)
+- 2316: Add paginator factory & adapter plugin manager
+  (https://github.com/zendframework/zf2/issues/2316)
+- 2333: Restore mail message from string
+  (https://github.com/zendframework/zf2/issues/2333)
+- 2339: ZF2-530 Implement PropertyScanner
+  (https://github.com/zendframework/zf2/issues/2339)
+- 2343: Create Zend Server Monitor Event
+  (https://github.com/zendframework/zf2/issues/2343)
+- 2367: Convert abstract classes that are only offering static methods
+  (https://github.com/zendframework/zf2/issues/2367)
+- 2374: Modified Acl/Navigation to be extendable
+  (https://github.com/zendframework/zf2/issues/2374)
+- 2381: Method Select::from can accept instance of Select as subselect
+  (https://github.com/zendframework/zf2/issues/2381)
+- 2389: Add plural view helper
+  (https://github.com/zendframework/zf2/issues/2389)
+- 2396: Rbac component for ZF2
+  (https://github.com/zendframework/zf2/issues/2396)
+- 2399: Feature/unidecoder new
+  (https://github.com/zendframework/zf2/issues/2399)
+- 2411: Allow to specify custom pattern for date
+  (https://github.com/zendframework/zf2/issues/2411)
+- 2414: Added a new validator to check if input is instance of certain class
+  (https://github.com/zendframework/zf2/issues/2414)
+- 2415: Add plural helper to I18n
+  (https://github.com/zendframework/zf2/issues/2415)
+- 2417: Allow to render template separately
+  (https://github.com/zendframework/zf2/issues/2417)
+- 2648: AbstractPluginManager should not respond to...
+  (https://github.com/zendframework/zf2/issues/2648)
+- 2650: Add view helper and controller plugin to pull the current identity from ...
+  (https://github.com/zendframework/zf2/issues/2650)
+- 2670: quoteIdentifier() & quoteIdentifierChain() bug
+  (https://github.com/zendframework/zf2/issues/2670)
+- 2702: Added addUse method in ClassGenerator
+  (https://github.com/zendframework/zf2/issues/2702)
+- 2704: Functionality/writer plugin manager
+  (https://github.com/zendframework/zf2/issues/2704)
+- 2706: Feature ini adapter translate
+  (https://github.com/zendframework/zf2/issues/2706)
+- 2718: Chain authentication storage
+  (https://github.com/zendframework/zf2/issues/2718)
+- 2774: Fixes #2745 (generate proper query strings).
+  (https://github.com/zendframework/zf2/issues/2774)
+- 2783: Added methods to allow access to the routes of the SimpleRouteStack.
+  (https://github.com/zendframework/zf2/issues/2783)
+- 2794: Feature test phpunit lib
+  (https://github.com/zendframework/zf2/issues/2794)
+- 2801: Improve Zend\Code\Scanner\TokenArrayScanner
+  (https://github.com/zendframework/zf2/issues/2801)
+- 2807: Add buffer handling to HydratingResultSet
+  (https://github.com/zendframework/zf2/issues/2807)
+- 2809: Allow Zend\Db\Sql\TableIdentifier in Zend\Db\Sql\Insert, Update & Delete
+  (https://github.com/zendframework/zf2/issues/2809)
+- 2812: Catch exceptions thrown during rendering
+  (https://github.com/zendframework/zf2/issues/2812)
+- 2821: Added loadModule.post event to loadModule().
+  (https://github.com/zendframework/zf2/issues/2821)
+- 2822: Added the ability for FirePhp to understand 'extras' passed to \Zend\Log
+  (https://github.com/zendframework/zf2/issues/2822)
+- 2841: Allow to remove attribute in form element
+  (https://github.com/zendframework/zf2/issues/2841)
+- 2844: [Server] & [Soap] Typos and docblocks
+  (https://github.com/zendframework/zf2/issues/2844)
+- 2848: fixing extract behavior of Zend\Form\Element\Collection and added
+  ability to use own fieldset helper within FormCollection-helper
+  (https://github.com/zendframework/zf2/issues/2848)
+- 2855: add a view event
+  (https://github.com/zendframework/zf2/issues/2855)
+- 2868: [WIP][Server] Rewrite Reflection API to reuse code from
+  Zend\Code\Reflection API
+  (https://github.com/zendframework/zf2/issues/2868)
+- 2870: [Code] Add support for @throws, multiple types and typed arrays
+  (https://github.com/zendframework/zf2/issues/2870)
+- 2875: [InputFilter] Adding hasUnknown and getUnknown methods to detect and get
+  unknown inputs
+  (https://github.com/zendframework/zf2/issues/2875)
+- 2919: Select::where should accept PredicateInterface
+  (https://github.com/zendframework/zf2/issues/2919)
+- 2927: Add a bunch of traits to ZF2
+  (https://github.com/zendframework/zf2/issues/2927)
+- 2931: Cache: Now an empty namespace means disabling namespace support
+  (https://github.com/zendframework/zf2/issues/2931)
+- 2953: [WIP] #2743 fix docblock @category/@package/@subpackage
+  (https://github.com/zendframework/zf2/issues/2953)
+- 2989: Decouple Zend\Db\Sql from concrete Zend\Db\Adapter implementations
+  (https://github.com/zendframework/zf2/issues/2989)
+- 2995: service proxies / lazy services
+  (https://github.com/zendframework/zf2/issues/2995)
+- 3017: Fixing the problem with order and \Zend\Db\Sql\Expression
+  (https://github.com/zendframework/zf2/issues/3017)
+- 3028: Added Json support for POST and PUT operations in restful controller.
+  (https://github.com/zendframework/zf2/issues/3028)
+- 3056: Add pattern & storage cache factory
+  (https://github.com/zendframework/zf2/issues/3056)
+- 3057: Pull zend filter compress snappy
+  (https://github.com/zendframework/zf2/issues/3057)
+- 3078: Allow NodeList to be accessed via array like syntax.
+  (https://github.com/zendframework/zf2/issues/3078)
+- 3081: Fix for Collection extract method updates targetElement object
+  (https://github.com/zendframework/zf2/issues/3081)
+- 3106: Added template map generator
+  (https://github.com/zendframework/zf2/issues/3106)
+- 3189: Added xterm's 256 colors
+  (https://github.com/zendframework/zf2/issues/3189)
+- 3200: Added ValidatorChain::attach() and ValidatorChain::attachByName() to
+  keep consistent with FilterChain
+  (https://github.com/zendframework/zf2/issues/3200)
+- 3202: Added NTLM authentication support to Zend\Soap\Client\DotNet.
+  (https://github.com/zendframework/zf2/issues/3202)
+- 3218: Zend-Form: Allow Input Filter Preference Over Element Defaults
+  (https://github.com/zendframework/zf2/issues/3218)
+- 3230: Add Zend\Stdlib\Hydrator\Strategy\ClosureStrategy
+  (https://github.com/zendframework/zf2/issues/3230)
+- 3241: Reflection parameter type check
+  (https://github.com/zendframework/zf2/issues/3241)
+- 3260: Zend/Di, retriving same shared instance for different extra parameters
+  (https://github.com/zendframework/zf2/issues/3260)
+- 3261: Fix sendmail key
+  (https://github.com/zendframework/zf2/issues/3261)
+- 3262:  Allows several translation files for same domain / locale 
+  (https://github.com/zendframework/zf2/issues/3262)
+- 3269: A fix for issue #3195. Date formats are now used during validation.
+  (https://github.com/zendframework/zf2/issues/3269)
+- 3272: Support for internationalized .IT domain names
+  (https://github.com/zendframework/zf2/issues/3272)
+- 3273: Parse docblock indented with tabs
+  (https://github.com/zendframework/zf2/issues/3273)
+- 3285: Fixed wrong return usage and added @throws docblock
+  (https://github.com/zendframework/zf2/issues/3285)
+- 3286: remove else in already return early
+  (https://github.com/zendframework/zf2/issues/3286)
+- 3288: Removed unused variable
+  (https://github.com/zendframework/zf2/issues/3288)
+- 3292: Added Zend Monitor custom event support
+  (https://github.com/zendframework/zf2/issues/3292)
+- 3295: Proposing removal of subscription record upon unsubscribe
+  (https://github.com/zendframework/zf2/issues/3295)
+- 3296: Hotfix #3046 - set /dev/urandom as entropy file for Session
+  (https://github.com/zendframework/zf2/issues/3296)
+- 3298: Add PROPFIND Method to Zend/HTTP/Request
+  (https://github.com/zendframework/zf2/issues/3298)
+- 3300: Zend\Config - Fix count after merge
+  (https://github.com/zendframework/zf2/issues/3300)
+- 3302: Fixed #3282
+  (https://github.com/zendframework/zf2/issues/3302)
+- 3303: Fix indentation, add trailing ',' to last element in array
+  (https://github.com/zendframework/zf2/issues/3303)
+- 3304: Missed the Zend\Text dependency for Zend\Mvc in composer.json
+  (https://github.com/zendframework/zf2/issues/3304)
+- 3307: Fix an issue with inheritance of placeholder registry
+  (https://github.com/zendframework/zf2/issues/3307)
+- 3313: Fix buffering getTotalSpace
+  (https://github.com/zendframework/zf2/issues/3313)
+- 3317: Fixed FileGenerator::setUse() to ignore already added uses.
+  (https://github.com/zendframework/zf2/issues/3317)
+- 3318: Fixed FileGenerator::setUses() to allow passing in array of strings.
+  (https://github.com/zendframework/zf2/issues/3318)
+- 3320: Change @copyright Year : 2012 with 2013
+  (https://github.com/zendframework/zf2/issues/3320)
+- 3321: remove relative link in CONTRIBUTING.md
+  (https://github.com/zendframework/zf2/issues/3321)
+- 3322: remove copy variable for no reason
+  (https://github.com/zendframework/zf2/issues/3322)
+- 3324: enhance strlen to improve performance
+  (https://github.com/zendframework/zf2/issues/3324)
+- 3326: Minor loop improvements
+  (https://github.com/zendframework/zf2/issues/3326)
+- 3327: Fix indentation
+  (https://github.com/zendframework/zf2/issues/3327)
+- 3328: pass on the configured format to the DateValidator instead of hardcoding it
+  (https://github.com/zendframework/zf2/issues/3328)
+- 3329: Fixed DefinitionList::hasMethod()
+  (https://github.com/zendframework/zf2/issues/3329)
+- 3331: no chaining in form class' bind method
+  (https://github.com/zendframework/zf2/issues/3331)
+- 3333: Fixed Zend/Mvc/Router/Http/Segment
+  (https://github.com/zendframework/zf2/issues/3333)
+- 3340: Add root namespace character
+  (https://github.com/zendframework/zf2/issues/3340)
+- 3342: change boolean to bool for consistency
+  (https://github.com/zendframework/zf2/issues/3342)
+- 3345: Update library/Zend/Form/View/Helper/FormRow.php
+  (https://github.com/zendframework/zf2/issues/3345)
+- 3352: ClassMethods hydrator and wrong method definition
+  (https://github.com/zendframework/zf2/issues/3352)
+- 3355: Fix for GitHub issue 2511
+  (https://github.com/zendframework/zf2/issues/3355)
+- 3356: ZF session validators
+  (https://github.com/zendframework/zf2/issues/3356)
+- 3362: Use CamelCase for naming
+  (https://github.com/zendframework/zf2/issues/3362)
+- 3369: Removed unused variable in Zend\Json\Decoder.php
+  (https://github.com/zendframework/zf2/issues/3369)
+- 3386: Adding attributes for a lightweight export
+  (https://github.com/zendframework/zf2/issues/3386)
+- 3393: [Router] no need to correct ~ in the path encoding
+  (https://github.com/zendframework/zf2/issues/3393)
+- 3396: change minimal verson of PHPUnit
+  (https://github.com/zendframework/zf2/issues/3396)
+- 3403: [ZF-8825] Lower-case lookup for "authorization" header
+  (https://github.com/zendframework/zf2/issues/3403)
+- 3409: Fix for broken handling of
+  Zend\ServiceManager\ServiceManager::shareByDefault = false (Issue #3408)
+  (https://github.com/zendframework/zf2/issues/3409)
+- 3410: [composer] Sync replace package list
+  (https://github.com/zendframework/zf2/issues/3410)
+- 3415: Remove import of Zend root namespace
+  (https://github.com/zendframework/zf2/issues/3415)
+- 3423: Issue #3348 fix
+  (https://github.com/zendframework/zf2/issues/3423)
+- 3425: German Resources Zend\_Validate.php updated.
+  (https://github.com/zendframework/zf2/issues/3425)
+- 3429: Add __destruct to SessionManager
+  (https://github.com/zendframework/zf2/issues/3429)
+- 3430: SessionManager: Throw exception when attempting to setId after the
+  session has been started
+  (https://github.com/zendframework/zf2/issues/3430)
+- 3437: Feature/datetime factory format
+  (https://github.com/zendframework/zf2/issues/3437)
+- 3438: Add @method tags to the AbstractController
+  (https://github.com/zendframework/zf2/issues/3438)
+- 3439: Individual shared setting does not override the shareByDefault setting
+  of the ServiceManager
+  (https://github.com/zendframework/zf2/issues/3439)
+- 3443: Adding logic to check module dependencies at module loading time
+  (https://github.com/zendframework/zf2/issues/3443)
+- 3445: Update library/Zend/Validator/Hostname.php
+  (https://github.com/zendframework/zf2/issues/3445)
+- 3452: Hotfix/session mutability
+  (https://github.com/zendframework/zf2/issues/3452)
+- 3473: remove surplus call deep namespace
+  (https://github.com/zendframework/zf2/issues/3473)
+- 3477: The display_exceptions config-option is not passed to 404 views.
+  (https://github.com/zendframework/zf2/issues/3477)
+- 3480: [Validator][#2538] hostname validator overwrite 
+  (https://github.com/zendframework/zf2/issues/3480)
+- 3484: [#3055] Remove array to string conversion notice
+  (https://github.com/zendframework/zf2/issues/3484)
+- 3486: [#3073] Define filter() in Decompress filter
+  (https://github.com/zendframework/zf2/issues/3486)
+- 3487: [#3446] Allow generic traversable configuration to Captcha element
+  (https://github.com/zendframework/zf2/issues/3487)
+- 3492: Hotfix/random crypt test fail
+  (https://github.com/zendframework/zf2/issues/3492)
+- 3502: Features/port supermessenger
+  (https://github.com/zendframework/zf2/issues/3502)
+- 3513: Fixed bug in acl introduced by acca10b6abe74b3ab51890d5cbe0ab8da4fdf7e0
+  (https://github.com/zendframework/zf2/issues/3513)
+- 3520: Replace all is_null($value) calls with null === $value
+  (https://github.com/zendframework/zf2/issues/3520)
+- 3527: Explode validator: allow any value type to be validated
+  (https://github.com/zendframework/zf2/issues/3527)
+- 3530: The hasACL and hasRole don't check their default member variables
+  (https://github.com/zendframework/zf2/issues/3530)
+- 3550: Fix for the issue #3541 - salt size for Encrypt/Decrypt Filter
+  (https://github.com/zendframework/zf2/issues/3550)
+- 3562: Fix: Calling count() results in infinite loop
+  (https://github.com/zendframework/zf2/issues/3562)
+- 3563: Zend\Db: Fix for #3523 changeset - composer.json and stdlib
+  (https://github.com/zendframework/zf2/issues/3563)
+- 3571: Correctly parse empty Subject header
+  (https://github.com/zendframework/zf2/issues/3571)
+- 3575: Fix name of plugin referred to in exception message
+  (https://github.com/zendframework/zf2/issues/3575)
+- 3579: Some minor fixes in \Zend\View\Helper\HeadScript() class
+  (https://github.com/zendframework/zf2/issues/3579)
+- 3593: \Zend\Json\Server Fix _getDefaultParams if request-params are an
+  associative array
+  (https://github.com/zendframework/zf2/issues/3593)
+- 3594: Added contstructor to suppressfilter
+  (https://github.com/zendframework/zf2/issues/3594)
+- 3601: Update Travis to start running tests on PHP 5.5
+  (https://github.com/zendframework/zf2/issues/3601)
+- 3604: fixed Zend\Log\Logger::registerErrorHandler() doesn't log previous
+  exceptions 
+  (https://github.com/zendframework/zf2/issues/3604)
+
+### Potential Breakage
+
+Includes a fix to the classes `Zend\Filter\Encrypt`
+and `Zend\Filter\Decrypt` which may pose a small break for end-users. Each
+requires an encryption key be passed to either the constructor or the
+setKey() method now; this was done to improve the security of each
+class.
+
+## 2.0.6 (19 Dec 2012):
+
+- 2885: Zend\Db\TableGateway\AbstractTableGateway won't work with Sqlsrv
+  db adapter (https://github.com/zendframework/zf2/issues/2885)
+- 2922: Fix #2902 (https://github.com/zendframework/zf2/issues/2922)
+- 2961: Revert PR #2943 for 5.3.3 fix
+  (https://github.com/zendframework/zf2/issues/2961)
+- 2962: Allow Accept-Encoding header to be set explicitly by http
+  request (https://github.com/zendframework/zf2/issues/2962)
+- 3033: Fix error checking on Zend\Http\Client\Adapter\Socket->write().
+  (https://github.com/zendframework/zf2/issues/3033)
+- 3040: remove unused 'use DOMXPath' and property $count and $xpath
+  (https://github.com/zendframework/zf2/issues/3040)
+- 3043: improve conditional : reduce file size
+  (https://github.com/zendframework/zf2/issues/3043)
+- 3044: Extending Zend\Mvc\Router\Http\Segment causes error
+  (https://github.com/zendframework/zf2/issues/3044)
+- 3047: Fix Zend\Console\Getopt::getUsageMessage()
+  (https://github.com/zendframework/zf2/issues/3047)
+- 3049: Hotfix/issue #3033
+  (https://github.com/zendframework/zf2/issues/3049)
+- 3050: Fix : The annotation @\Zend\Form\Annotation\AllowEmpty declared
+  on does not accept any values
+  (https://github.com/zendframework/zf2/issues/3050)
+- 3052: Fixed #3051 (https://github.com/zendframework/zf2/issues/3052)
+- 3061: changed it back 'consist' => the 'must' should be applied to all
+  parts of the sentence
+  (https://github.com/zendframework/zf2/issues/3061)
+- 3063: hotfix: change sha382 to sha384 in
+  Zend\Crypt\Key\Derivation\SaltedS2k
+  (https://github.com/zendframework/zf2/issues/3063)
+- 3070: Fix default value unavailable exception for in-build php classes
+  (https://github.com/zendframework/zf2/issues/3070)
+- 3074: Hotfix/issue #2451 (https://github.com/zendframework/zf2/issues/3074)
+- 3091: console exception strategy displays previous exception message
+  (https://github.com/zendframework/zf2/issues/3091)
+- 3114: Fixed Client to allow also empty passwords in HTTP
+  Authentication. (https://github.com/zendframework/zf2/issues/3114)
+- 3125: #2607 - Fixing how headers are accessed
+  (https://github.com/zendframework/zf2/issues/3125)
+- 3126: Fix for GitHub issue 2605
+  (https://github.com/zendframework/zf2/issues/3126)
+- 3127: fix cs: add space after casting
+  (https://github.com/zendframework/zf2/issues/3127)
+- 3130: Obey PSR-2 (https://github.com/zendframework/zf2/issues/3130)
+- 3144: Zend\Form\View\Helper\Captcha\AbstractWord input and hidden
+  attributes (https://github.com/zendframework/zf2/issues/3144)
+- 3148: Fixing obsolete method of checking headers, made it use the new
+  method. (https://github.com/zendframework/zf2/issues/3148)
+- 3149: Zf2634 - Adding missing method Client::encodeAuthHeader
+  (https://github.com/zendframework/zf2/issues/3149)
+- 3151: Rename variable to what it probably should be
+  (https://github.com/zendframework/zf2/issues/3151)
+- 3155: strip duplicated semicolon
+  (https://github.com/zendframework/zf2/issues/3155)
+- 3156: fix typos in docblocks
+  (https://github.com/zendframework/zf2/issues/3156)
+- 3162: Allow Forms to have an InputFilterSpecification
+  (https://github.com/zendframework/zf2/issues/3162)
+- 3163: Added support of driver\_options to Mysqli DB Driver
+  (https://github.com/zendframework/zf2/issues/3163)
+- 3164: Cast $step to float in \Zend\Validator\Step
+  (https://github.com/zendframework/zf2/issues/3164)
+- 3166: [#2678] Sqlsrv driver incorrectly throwing exception when
+  $sqlOrResource... (https://github.com/zendframework/zf2/issues/3166)
+- 3167: Fix #3161 by checking if the server port already exists in the
+  host (https://github.com/zendframework/zf2/issues/3167)
+- 3169: Fixing issue #3036 (https://github.com/zendframework/zf2/issues/3169)
+- 3170: Fixing issue #2554 (https://github.com/zendframework/zf2/issues/3170)
+- 3171: hotfix : add  '$argName' as 'argument %s' in sprintf ( at 1st
+  parameter ) (https://github.com/zendframework/zf2/issues/3171)
+- 3178: Maintain priority flag when cloning a Fieldset
+  (https://github.com/zendframework/zf2/issues/3178)
+- 3184: fix misspelled getCacheStorge()
+  (https://github.com/zendframework/zf2/issues/3184)
+- 3186: Dispatching to a good controller but wrong action triggers a
+  Fatal Error (https://github.com/zendframework/zf2/issues/3186)
+- 3187: Fixing ansiColorMap by removing extra m's showed in the console
+  (https://github.com/zendframework/zf2/issues/3187)
+- 3194: Write clean new line for writeLine method (no background color)
+  (https://github.com/zendframework/zf2/issues/3194)
+- 3197: Fix spelling error (https://github.com/zendframework/zf2/issues/3197)
+- 3201: Session storage set save path
+  (https://github.com/zendframework/zf2/issues/3201)
+- 3204: [wip] Zend\Http\Client makes 2 requests to url if
+  setStream(true) is called
+  (https://github.com/zendframework/zf2/issues/3204)
+- 3207: dead code clean up.
+  (https://github.com/zendframework/zf2/issues/3207)
+- 3208: Zend\Mime\Part: Added EOL paramter to getEncodedStream()
+  (https://github.com/zendframework/zf2/issues/3208)
+- 3213: [#3173] Incorrect creating instance
+  Zend/Code/Generator/ClassGenerator.php by fromArray
+  (https://github.com/zendframework/zf2/issues/3213)
+- 3214: Fix passing of tags to constructor of docblock generator class
+  (https://github.com/zendframework/zf2/issues/3214)
+- 3217: Cache: Optimized Filesystem::setItem with locking enabled by
+  writing the... (https://github.com/zendframework/zf2/issues/3217)
+- 3220: [2.0] Log Writer support for MongoClient driver class
+  (https://github.com/zendframework/zf2/issues/3220)
+- 3226: Licence is not accessable via web
+  (https://github.com/zendframework/zf2/issues/3226)
+- 3229: fixed bug in DefinitionList::hasMethod()
+  (https://github.com/zendframework/zf2/issues/3229)
+- 3234: Removed old Form TODO since all items are complete
+  (https://github.com/zendframework/zf2/issues/3234)
+- 3236: Issue #3222 - Added suport for multi-level nested ini config
+  variables (https://github.com/zendframework/zf2/issues/3236)
+- 3237: [BUG] Service Manager Not Shared Duplicate new Instance with
+  multiple Abstract Factories
+  (https://github.com/zendframework/zf2/issues/3237)
+- 3238: Added French translation for captcha
+  (https://github.com/zendframework/zf2/issues/3238)
+- 3250: Issue #2912 - Fix for LicenseTag generation
+  (https://github.com/zendframework/zf2/issues/3250)
+- 3252: subject prepend text in options for Log\Writer\Mail
+  (https://github.com/zendframework/zf2/issues/3252)
+- 3254: Better capabilities surrounding console notFoundAction
+  (https://github.com/zendframework/zf2/issues/3254)
+
+
+## 2.0.5 (29 Nov 2012):
+
+- 3004: Zend\Db unit tests fail with code coverage enabled
+  (https://github.com/zendframework/zf2/issues/3004)
+- 3039: combine double if into single conditional
+  (https://github.com/zendframework/zf2/issues/3039)
+- 3042: fix typo 'consist of' should be 'consists of' in singular
+  (https://github.com/zendframework/zf2/issues/3042)
+- 3045: Reduced the #calls of rawurlencode() using a cache mechanism
+  (https://github.com/zendframework/zf2/issues/3045)
+- 3048: Applying quickfix for zendframework/zf2#3004
+  (https://github.com/zendframework/zf2/issues/3048)
+- 3095: Process X-Forwarded-For header in correct order
+  (https://github.com/zendframework/zf2/issues/3095)
+
+## 2.0.4 (20 Nov 2012):
+
+- 2808: Add serializer better inheritance and extension
+  (https://github.com/zendframework/zf2/issues/2808)
+- 2813: Add test on canonical name with the ServiceManager
+  (https://github.com/zendframework/zf2/issues/2813)
+- 2832: bugfix: The helper DateFormat does not cache correctly when a pattern is
+  set. (https://github.com/zendframework/zf2/issues/2832)
+- 2837: Add empty option before empty check
+  (https://github.com/zendframework/zf2/issues/2837)
+- 2843: change self:: with static:: in call-ing static property/method
+  (https://github.com/zendframework/zf2/issues/2843)
+- 2857: Unnecessary path assembly on return in
+  Zend\Mvc\Router\Http\TreeRouteStack->assemble() line 236
+  (https://github.com/zendframework/zf2/issues/2857)
+- 2867: Enable view sub-directories when using ModuleRouteListener
+  (https://github.com/zendframework/zf2/issues/2867)
+- 2872: Resolve naming conflicts in foreach statements
+  (https://github.com/zendframework/zf2/issues/2872)
+- 2878: Fix : change self:: with static:: in call-ing static property/method()
+  in other components ( all ) (https://github.com/zendframework/zf2/issues/2878)
+- 2879: remove unused const in Zend\Barcode\Barcode.php
+  (https://github.com/zendframework/zf2/issues/2879)
+- 2896: Constraints in Zend\Db\Metadata\Source\AbstractSource::getTable not
+  initalised (https://github.com/zendframework/zf2/issues/2896)
+- 2907: Fixed proxy adapter keys being incorrectly set due Zend\Http\Client
+  (https://github.com/zendframework/zf2/issues/2907)
+- 2909: Change format of Form element DateTime and DateTimeLocal
+  (https://github.com/zendframework/zf2/issues/2909)
+- 2921: Added Chinese translations for zf2 validate/captcha resources
+  (https://github.com/zendframework/zf2/issues/2921)
+- 2924: small speed-up of Zend\EventManager\EventManager::triggerListeners()
+  (https://github.com/zendframework/zf2/issues/2924)
+- 2929: SetCookie::getFieldValue() always uses urlencode() for cookie values,
+  even in case they are already encoded
+  (https://github.com/zendframework/zf2/issues/2929)
+- 2930: Add minor test coverage to MvcEvent
+  (https://github.com/zendframework/zf2/issues/2930)
+- 2932: Sessions: SessionConfig does not allow setting non-directory save path
+  (https://github.com/zendframework/zf2/issues/2932)
+- 2937: preserve matched route name within route match instance while
+  forwarding... (https://github.com/zendframework/zf2/issues/2937)
+- 2940: change 'Cloud\Decorator\Tag' to 'Cloud\Decorator\AbstractTag'
+  (https://github.com/zendframework/zf2/issues/2940)
+- 2941: Logical operator fix : 'or' change to '||' and 'and' change to '&&'
+  (https://github.com/zendframework/zf2/issues/2941)
+- 2952: Various Zend\Mvc\Router\Http routers turn + into a space in path
+  segments (https://github.com/zendframework/zf2/issues/2952)
+- 2957: Make Partial proxy to view render function
+  (https://github.com/zendframework/zf2/issues/2957)
+- 2971: Zend\Http\Cookie undefined self::CONTEXT_REQUEST
+  (https://github.com/zendframework/zf2/issues/2971)
+- 2976: Fix for #2541 (https://github.com/zendframework/zf2/issues/2976)
+- 2981: Controller action HttpResponse is not used by SendResponseListener
+  (https://github.com/zendframework/zf2/issues/2981)
+- 2983: replaced all calls to $this->xpath with $this->getXpath() to always
+  have... (https://github.com/zendframework/zf2/issues/2983)
+- 2986: Add class to file missing a class (fixes #2789)
+  (https://github.com/zendframework/zf2/issues/2986)
+- 2987: fixed Zend\Session\Container::exchangeArray
+  (https://github.com/zendframework/zf2/issues/2987)
+- 2994: Fixes #2993 - Add missing asterisk to method docblock
+  (https://github.com/zendframework/zf2/issues/2994)
+- 2997: Fixing abstract factory instantiation time
+  (https://github.com/zendframework/zf2/issues/2997)
+- 2999: Fix for GitHub issue 2579
+  (https://github.com/zendframework/zf2/issues/2999)
+- 3002: update master's resources/ja Zend_Validate.php message
+  (https://github.com/zendframework/zf2/issues/3002)
+- 3003: Adding tests for zendframework/zf2#2593
+  (https://github.com/zendframework/zf2/issues/3003)
+- 3006: Hotfix for #2497 (https://github.com/zendframework/zf2/issues/3006)
+- 3007: Fix for issue 3001 Zend\Db\Sql\Predicate\Between fails with min and max
+  ... (https://github.com/zendframework/zf2/issues/3007)
+- 3008: Hotfix for #2482 (https://github.com/zendframework/zf2/issues/3008)
+- 3009: Hotfix for #2451 (https://github.com/zendframework/zf2/issues/3009)
+- 3013: Solved Issue 2857 (https://github.com/zendframework/zf2/issues/3013)
+- 3025: Removing the separator between the hidden and the visible inputs. As
+  the... (https://github.com/zendframework/zf2/issues/3025)
+- 3027: Reduced #calls of plugin() in PhpRenderer using a cache mechanism
+  (https://github.com/zendframework/zf2/issues/3027)
+- 3029: Fixed the pre-commit script, missed the fix command
+  (https://github.com/zendframework/zf2/issues/3029)
+- 3030: Mark module as loaded before trigginer EVENT_LOAD_MODULE
+  (https://github.com/zendframework/zf2/issues/3030)
+- 3031: Zend\Db\Sql Fix for Insert's Merge and Set capabilities with simlar keys
+  (https://github.com/zendframework/zf2/issues/3031)
+
+
+## 2.0.3 (17 Oct 2012):
+
+- 2244: Fix for issue ZF2-503 (https://github.com/zendframework/zf2/issues/2244)
+- 2318: Allow to remove decimals in CurrencyFormat
+  (https://github.com/zendframework/zf2/issues/2318)
+- 2363: Hotfix db features with eventfeature
+  (https://github.com/zendframework/zf2/issues/2363)
+- 2380: ZF2-482 Attempt to fix the buffer. Also added extra unit tests.
+  (https://github.com/zendframework/zf2/issues/2380)
+- 2392: Update library/Zend/Db/Adapter/Platform/Mysql.php
+  (https://github.com/zendframework/zf2/issues/2392)
+- 2395: Fix for http://framework.zend.com/issues/browse/ZF2-571
+  (https://github.com/zendframework/zf2/issues/2395)
+- 2397: Memcached option merge issuse
+  (https://github.com/zendframework/zf2/issues/2397)
+- 2402: Adding missing dependencies
+  (https://github.com/zendframework/zf2/issues/2402)
+- 2404: Fix to comments (https://github.com/zendframework/zf2/issues/2404)
+- 2416: Fix expressionParamIndex for AbstractSql
+  (https://github.com/zendframework/zf2/issues/2416)
+- 2420: Zend\Db\Sql\Select: Fixed issue with join expression named parameters
+  overlapping. (https://github.com/zendframework/zf2/issues/2420)
+- 2421: Update library/Zend/Http/Header/SetCookie.php
+  (https://github.com/zendframework/zf2/issues/2421)
+- 2422: fix add 2 space after @param in Zend\Loader
+  (https://github.com/zendframework/zf2/issues/2422)
+- 2423: ManagerInterface must be interface, remove 'interface' description
+  (https://github.com/zendframework/zf2/issues/2423)
+- 2425: Use built-in Travis composer
+  (https://github.com/zendframework/zf2/issues/2425)
+- 2426: Remove need of setter in ClassMethods hydrator
+  (https://github.com/zendframework/zf2/issues/2426)
+- 2432: Prevent space before end of tag with HTML5 doctype
+  (https://github.com/zendframework/zf2/issues/2432)
+- 2433: fix for setJsonpCallback not called when recieved JsonModel + test
+  (https://github.com/zendframework/zf2/issues/2433)
+- 2434: added phpdoc in Zend\Db
+  (https://github.com/zendframework/zf2/issues/2434)
+- 2437: Hotfix/console 404 reporting
+  (https://github.com/zendframework/zf2/issues/2437)
+- 2438: Improved previous fix for ZF2-558.
+  (https://github.com/zendframework/zf2/issues/2438)
+- 2440: Turkish Translations for Captcha and Validate
+  (https://github.com/zendframework/zf2/issues/2440)
+- 2441: Allow form collection to have any helper
+  (https://github.com/zendframework/zf2/issues/2441)
+- 2516: limit(20) -> generates LIMIT '20' and throws an IllegalQueryException
+  (https://github.com/zendframework/zf2/issues/2516)
+- 2545: getSqlStringForSqlObject() returns an invalid SQL statement with LIMIT
+  and OFFSET clauses (https://github.com/zendframework/zf2/issues/2545)
+- 2595: Pgsql adapater has codes related to MySQL
+  (https://github.com/zendframework/zf2/issues/2595)
+- 2613: Prevent password to be rendered if form validation fails
+  (https://github.com/zendframework/zf2/issues/2613)
+- 2617: Fixed Zend\Validator\Iban class name
+  (https://github.com/zendframework/zf2/issues/2617)
+- 2619: Form enctype fix when File elements are within a collection
+  (https://github.com/zendframework/zf2/issues/2619)
+- 2620: InputFilter/Input when merging was not using raw value
+  (https://github.com/zendframework/zf2/issues/2620)
+- 2622: Added ability to specify port
+  (https://github.com/zendframework/zf2/issues/2622)
+- 2624: Form's default input filters added multiple times
+  (https://github.com/zendframework/zf2/issues/2624)
+- 2630: fix relative link ( remove the relative links ) in README.md
+  (https://github.com/zendframework/zf2/issues/2630)
+- 2631: Update library/Zend/Loader/AutoloaderFactory.php
+  (https://github.com/zendframework/zf2/issues/2631)
+- 2633: fix redundance errors "The input does not appear to be a valid date"
+  show twice (https://github.com/zendframework/zf2/issues/2633)
+- 2635: Fix potential issue with Sitemap test
+  (https://github.com/zendframework/zf2/issues/2635)
+- 2636: add isset checks around timeout and maxredirects
+  (https://github.com/zendframework/zf2/issues/2636)
+- 2641: hotfix : formRow() element error multi-checkbox and radio renderError
+  not shown (https://github.com/zendframework/zf2/issues/2641)
+- 2642: Fix Travis build for CS issue
+  (https://github.com/zendframework/zf2/issues/2642)
+- 2643: fix for setJsonpCallback not called when recieved JsonModel + test
+  (https://github.com/zendframework/zf2/issues/2643)
+- 2644: Add fluidity to the prepare() function for a form
+  (https://github.com/zendframework/zf2/issues/2644)
+- 2652: Zucchi/filter tweaks (https://github.com/zendframework/zf2/issues/2652)
+- 2665: pdftest fix (https://github.com/zendframework/zf2/issues/2665)
+- 2666: fixed url change (https://github.com/zendframework/zf2/issues/2666)
+- 2667: Possible fix for rartests
+  (https://github.com/zendframework/zf2/issues/2667)
+- 2669: skip whem gmp is loaded
+  (https://github.com/zendframework/zf2/issues/2669)
+- 2673: Input fallback value option
+  (https://github.com/zendframework/zf2/issues/2673)
+- 2676: mysqli::close() never called
+  (https://github.com/zendframework/zf2/issues/2676)
+- 2677: added phpdoc to Zend\Stdlib
+  (https://github.com/zendframework/zf2/issues/2677)
+- 2678: Zend\Db\Adapter\Sqlsrv\Sqlsrv never calls Statement\initialize() (fix
+  within) (https://github.com/zendframework/zf2/issues/2678)
+- 2679: Zend/Log/Logger.php using incorrect php errorLevel
+  (https://github.com/zendframework/zf2/issues/2679)
+- 2680: Cache: fixed bug on getTotalSpace of filesystem and dba adapter
+  (https://github.com/zendframework/zf2/issues/2680)
+- 2681: Cache/Dba: fixed notices on tearDown db4 tests
+  (https://github.com/zendframework/zf2/issues/2681)
+- 2682: Replace 'Configuration' with 'Config' when retrieving configuration
+  (https://github.com/zendframework/zf2/issues/2682)
+- 2683: Hotfix: Allow items from Abstract Factories to have setShared() called
+  (https://github.com/zendframework/zf2/issues/2683)
+- 2685: Remove unused Uses (https://github.com/zendframework/zf2/issues/2685)
+- 2686: Adding code to allow EventManager trigger listeners using wildcard
+  identifier (https://github.com/zendframework/zf2/issues/2686)
+- 2687: Hotfix/db sql nested expressions
+  (https://github.com/zendframework/zf2/issues/2687)
+- 2688: Hotfix/tablegateway event feature
+  (https://github.com/zendframework/zf2/issues/2688)
+- 2689: Hotfix/composer phpunit
+  (https://github.com/zendframework/zf2/issues/2689)
+- 2690: Use RFC-3339 full-date format (Y-m-d) in Date element
+  (https://github.com/zendframework/zf2/issues/2690)
+- 2691: join on conditions don't accept alternatives to columns
+  (https://github.com/zendframework/zf2/issues/2691)
+- 2693: Update library/Zend/Db/Adapter/Driver/Mysqli/Connection.php
+  (https://github.com/zendframework/zf2/issues/2693)
+- 2694: Bring fluid interface to Feed Writer
+  (https://github.com/zendframework/zf2/issues/2694)
+- 2698: fix typo in # should be :: in exception
+  (https://github.com/zendframework/zf2/issues/2698)
+- 2699: fix elseif in javascript Upload Demo
+  (https://github.com/zendframework/zf2/issues/2699)
+- 2700: fix cs in casting variable
+  (https://github.com/zendframework/zf2/issues/2700)
+- 2705: Fix french translation
+  (https://github.com/zendframework/zf2/issues/2705)
+- 2707: Improved error message when ServiceManager does not find an invokable
+  class (https://github.com/zendframework/zf2/issues/2707)
+- 2710: #2461 - correcting the url encoding of path segments
+  (https://github.com/zendframework/zf2/issues/2710)
+- 2711: Fix/demos ProgressBar/ZendForm.php : Object of class Zend\Form\Form
+  could not be converted to string
+  (https://github.com/zendframework/zf2/issues/2711)
+- 2712: fix cs casting variable for (array)
+  (https://github.com/zendframework/zf2/issues/2712)
+- 2713: Update library/Zend/Mvc/Service/ViewHelperManagerFactory.php
+  (https://github.com/zendframework/zf2/issues/2713)
+- 2714: Don't add separator if not prefixing columns
+  (https://github.com/zendframework/zf2/issues/2714)
+- 2717: Extends when it can : Validator\DateStep extends Validator\Date to
+  reduce code redundancy (https://github.com/zendframework/zf2/issues/2717)
+- 2719: Fixing the Cache Storage Factory Adapter Factory
+  (https://github.com/zendframework/zf2/issues/2719)
+- 2728: Bad Regex for Content Type header
+  (https://github.com/zendframework/zf2/issues/2728)
+- 2731: Reset the Order part when resetting Select
+  (https://github.com/zendframework/zf2/issues/2731)
+- 2732: Removed references to Mysqli in Zend\Db\Adapter\Driver\Pgsql
+  (https://github.com/zendframework/zf2/issues/2732)
+- 2733: fix @package Zend\_Validate should be Zend\_Validator
+  (https://github.com/zendframework/zf2/issues/2733)
+- 2734: fix i18n @package and @subpackage value
+  (https://github.com/zendframework/zf2/issues/2734)
+- 2736: fix captcha helper test.
+  (https://github.com/zendframework/zf2/issues/2736)
+- 2737: Issue #2728 - Bad Regex for Content Type header
+  (https://github.com/zendframework/zf2/issues/2737)
+- 2738: fix link 'quickstart' to version 2.0
+  (https://github.com/zendframework/zf2/issues/2738)
+- 2739: remove '@subpackage'  because Zend\Math is not in subpackage
+  (https://github.com/zendframework/zf2/issues/2739)
+- 2742: remove () in echo-ing (https://github.com/zendframework/zf2/issues/2742)
+- 2749: Fix for #2678 (Zend\Db's Sqlsrv Driver)
+  (https://github.com/zendframework/zf2/issues/2749)
+- 2750: Adds the ability to instanciate by factory to AbstractPluginManager
+  (https://github.com/zendframework/zf2/issues/2750)
+- 2754: add the support to register module paths over namespace
+  (https://github.com/zendframework/zf2/issues/2754)
+- 2755:  remove Zend\Mvc\Controller\PluginBroker from aliases in
+  "$defaultServiceConfig" (https://github.com/zendframework/zf2/issues/2755)
+- 2759: Fix Zend\Code\Scanner\TokenArrayScanner
+  (https://github.com/zendframework/zf2/issues/2759)
+- 2764: Fixed Zend\Math\Rand::getString() to pass the parameter $strong to
+  ::getBytes() (https://github.com/zendframework/zf2/issues/2764)
+- 2765: Csrf: always use dedicated setter
+  (https://github.com/zendframework/zf2/issues/2765)
+- 2766: Session\Storage: always preserve REQUEST\_ACCESS\_TIME
+  (https://github.com/zendframework/zf2/issues/2766)
+- 2768: Zend\Validator dependency is missed in Zend\Cache composer.json
+  (https://github.com/zendframework/zf2/issues/2768)
+- 2769: change valueToLDAP to valueToLdap and valueFromLDAP to valueFromLdap
+  (https://github.com/zendframework/zf2/issues/2769)
+- 2770: Memcached (https://github.com/zendframework/zf2/issues/2770)
+- 2775: Zend\Db\Sql: Fix for Mysql quoting during limit and offset
+  (https://github.com/zendframework/zf2/issues/2775)
+- 2776: Allow whitespace in Iban
+  (https://github.com/zendframework/zf2/issues/2776)
+- 2777: Fix issue when PREG\_BAD\_UTF8__OFFSET_ERROR is defined but Unicode support
+  is not enabled on PCRE (https://github.com/zendframework/zf2/issues/2777)
+- 2778: Undefined Index fix in ViewHelperManagerFactory
+  (https://github.com/zendframework/zf2/issues/2778)
+- 2779: Allow forms that have been added as fieldsets to bind values to bound
+  ob... (https://github.com/zendframework/zf2/issues/2779)
+- 2782: Issue 2781 (https://github.com/zendframework/zf2/issues/2782)
+
+
+## 2.0.2 (21 Sep 2012):
+
+- 2383: Changed unreserved char definition in Zend\Uri (ZF2-533) and added shell
+  escaping to the test runner (https://github.com/zendframework/zf2/pull/2383)
+- 2393: Trying to solve issue ZF2-558
+  (https://github.com/zendframework/zf2/pull/2393)
+- 2398: Segment route: add fix for optional groups within optional groups
+  (https://github.com/zendframework/zf2/pull/2398)
+- 2400: Use 'Router' in http env and 'HttpRouter' in cli
+  (https://github.com/zendframework/zf2/pull/2400)
+- 2401: Better precision for userland fmod algorithm
+  (https://github.com/zendframework/zf2/pull/2401)
+
+
+## 2.0.1 (20 Sep 2012):
+
+- 2285: Seed RouteMatch params as long as params is set. This permits setting an
+  empty array. (https://github.com/zendframework/zf2/pull/2285)
+- 2286: prepareNotFoundViewModel listner -  eventResult as ViewModel if set
+  (https://github.com/zendframework/zf2/pull/2286)
+- 2290: <span>$label</span> only when filled
+  (https://github.com/zendframework/zf2/pull/2290)
+- 2292: Allow (int)0 in coomments count in entry feed
+  (https://github.com/zendframework/zf2/pull/2292)
+- 2295: force to check className parameters
+  (https://github.com/zendframework/zf2/pull/2295)
+- 2296: mini-fix in controller plugin manager
+  (https://github.com/zendframework/zf2/pull/2296)
+- 2297: fixed phpdoc in Zend\Mvc\ApplicationInterface
+  (https://github.com/zendframework/zf2/pull/2297)
+- 2298: Update to Date element use statements to make it clearer which DateTime
+  (https://github.com/zendframework/zf2/pull/2298)
+- 2300: FormRow translate label fix (#ZF2-516)
+  (https://github.com/zendframework/zf2/pull/2300)
+- 2302: Notifications now to #zftalk.dev
+  (https://github.com/zendframework/zf2/pull/2302)
+- 2306: Fix several cs (https://github.com/zendframework/zf2/pull/2306)
+- 2307: Removed comment about non existent Zend\_Tool
+  (https://github.com/zendframework/zf2/pull/2307)
+- 2308: Fix pluginmanager get method error
+  (https://github.com/zendframework/zf2/pull/2308)
+- 2309: Add consistency with event name
+  (https://github.com/zendframework/zf2/pull/2309)
+- 2310: Update library/Zend/Db/Sql/Select.php
+  (https://github.com/zendframework/zf2/pull/2310)
+- 2311: Version update (https://github.com/zendframework/zf2/pull/2311)
+- 2312: Validator Translations (https://github.com/zendframework/zf2/pull/2312)
+- 2313: ZF2-336: Zend\Form adds enctype attribute as multipart/form-data
+  (https://github.com/zendframework/zf2/pull/2313)
+- 2317: Make Fieldset constructor consistent with parent Element class
+  (https://github.com/zendframework/zf2/pull/2317)
+- 2321: ZF2-534 Zend\Log\Writer\Syslog prevents setting application name
+  (https://github.com/zendframework/zf2/pull/2321)
+- 2322: Jump to cache-storing instead of returning
+  (https://github.com/zendframework/zf2/pull/2322)
+- 2323: Conditional statements improved(minor changes).
+  (https://github.com/zendframework/zf2/pull/2323)
+- 2324: Fix for ZF2-517: Zend\Mail\Header\GenericHeader fails to parse empty
+  header (https://github.com/zendframework/zf2/pull/2324)
+- 2328: Wrong \_\_clone method (https://github.com/zendframework/zf2/pull/2328)
+- 2331: added validation support for optgroups
+  (https://github.com/zendframework/zf2/pull/2331)
+- 2332: README-GIT update with optional pre-commit hook
+  (https://github.com/zendframework/zf2/pull/2332)
+- 2334: Mail\Message::getSubject() should return value the way it was set
+  (https://github.com/zendframework/zf2/pull/2334)
+- 2335: ZF2-511 Updated refactored names and other fixes
+  (https://github.com/zendframework/zf2/pull/2335)
+- 2336: ZF-546 Remove duplicate check for time
+  (https://github.com/zendframework/zf2/pull/2336)
+- 2337: ZF2-539 Input type of image should not have attribute value
+  (https://github.com/zendframework/zf2/pull/2337)
+- 2338: ZF2-543: removed linked but not implemented cache adapters
+  (https://github.com/zendframework/zf2/pull/2338)
+- 2341: Updated Zend_Validate.php pt_BR translation to 25.Jul.2011 EN Revision
+  (https://github.com/zendframework/zf2/pull/2341)
+- 2342: ZF2-549 Zend\Log\Formatter\ErrorHandler does not handle complex events
+  (https://github.com/zendframework/zf2/pull/2342)
+- 2346: updated Page\Mvc::isActive to check if the controller param was
+  tinkered (https://github.com/zendframework/zf2/pull/2346)
+- 2349: Zend\Feed Added unittests for more code coverage
+  (https://github.com/zendframework/zf2/pull/2349)
+- 2350: Bug in Zend\ModuleManager\Listener\LocatorRegistrationListener
+  (https://github.com/zendframework/zf2/pull/2350)
+- 2351: ModuleManagerInterface is never used
+  (https://github.com/zendframework/zf2/pull/2351)
+- 2352: Hotfix for AbstractDb and Csrf Validators
+  (https://github.com/zendframework/zf2/pull/2352)
+- 2354: Update library/Zend/Feed/Writer/AbstractFeed.php
+  (https://github.com/zendframework/zf2/pull/2354)
+- 2355: Allow setting CsrfValidatorOptions in constructor
+  (https://github.com/zendframework/zf2/pull/2355)
+- 2356: Update library/Zend/Http/Cookies.php
+  (https://github.com/zendframework/zf2/pull/2356)
+- 2357: Update library/Zend/Barcode/Object/AbstractObject.php
+  (https://github.com/zendframework/zf2/pull/2357)
+- 2358: Update library/Zend/ServiceManager/AbstractPluginManager.php
+  (https://github.com/zendframework/zf2/pull/2358)
+- 2359: Update library/Zend/Server/Method/Parameter.php
+  (https://github.com/zendframework/zf2/pull/2359)
+- 2361: Zend\Form Added extra unit tests and some code improvements
+  (https://github.com/zendframework/zf2/pull/2361)
+- 2364: Remove unused use statements
+  (https://github.com/zendframework/zf2/pull/2364)
+- 2365: Resolve undefined classes and constants
+  (https://github.com/zendframework/zf2/pull/2365)
+- 2366: fixed typo in Zend\View\HelperPluginManager
+  (https://github.com/zendframework/zf2/pull/2366)
+- 2370: Error handling in AbstractWriter::write using Zend\Stdlib\ErrorHandler
+  (https://github.com/zendframework/zf2/pull/2370)
+- 2372: Update library/Zend/ServiceManager/Config.php
+  (https://github.com/zendframework/zf2/pull/2372)
+- 2375: zend-inputfilter already requires
+  (https://github.com/zendframework/zf2/pull/2375)
+- 2376: Activate the new GitHub feature: Contributing Guidelines
+  (https://github.com/zendframework/zf2/pull/2376)
+- 2377: Update library/Zend/Mvc/Controller/AbstractController.php
+  (https://github.com/zendframework/zf2/pull/2377)
+- 2379: Typo in property name in Zend/Db/Metadata/Object/AbstractTableObject.php
+  (https://github.com/zendframework/zf2/pull/2379)
+- 2382: PHPDoc params in AbstractTableGateway.php
+  (https://github.com/zendframework/zf2/pull/2382)
+- 2384: Replace Router with Http router in url view helper
+  (https://github.com/zendframework/zf2/pull/2384)
+- 2387: Replace PHP internal fmod function because it gives false negatives
+  (https://github.com/zendframework/zf2/pull/2387)
+- 2388: Proposed fix for ZF2-569 validating float with trailing 0's (10.0,
+  10.10) (https://github.com/zendframework/zf2/pull/2388)
+- 2391: clone in Filter\FilterChain
+  (https://github.com/zendframework/zf2/pull/2391)
+- Security fix: a number of classes were not using the Escaper component in
+  order to perform URL, HTML, and/or HTML attribute escaping. Please see
+  http://framework.zend.com/security/advisory/ZF2012-03 for more details.
diff --git a/vendor/zendframework/zendframework/CONTRIBUTING.md b/vendor/zendframework/zendframework/CONTRIBUTING.md
new file mode 100644
index 00000000000..c21284143f5
--- /dev/null
+++ b/vendor/zendframework/zendframework/CONTRIBUTING.md
@@ -0,0 +1,77 @@
+# CONTRIBUTING
+
+## RESOURCES
+
+If you wish to contribute to Zend Framework, please be sure to
+read/subscribe to the following resources:
+
+ -  Coding Standards:
+    http://framework.zend.com/wiki/display/ZFDEV2/Coding+Standards
+ -  ZF Git Guide:
+    [README-GIT.md](README-GIT.md)
+ -  Contributor's Guide:
+    http://framework.zend.com/participate/contributor-guide
+ -  ZF Contributor's mailing list:
+    Archives: http://zend-framework-community.634137.n4.nabble.com/ZF-Contributor-f680267.html
+    Subscribe: zf-contributors-subscribe@lists.zend.com
+ -  ZF Contributor's IRC channel:
+    #zftalk.dev on Freenode.net
+
+If you are working on new features, or refactoring an existing
+component, please create a proposal. You can do this in on the RFC's
+page, http://framework.zend.com/wiki/display/ZFDEV2/RFC%27s. 
+
+## RUNNING TESTS
+
+To run tests:
+
+- Make sure you have a recent version of PHPUnit installed; 3.7.0
+  minimally.
+- Enter the `tests/` subdirectory.
+- Execute PHPUnit, providing a path to a component directory for which
+  you wish to run tests, or a specific test class file.
+
+  ```sh
+  % phpunit ZendTest/Http
+  % phpunit ZendTest/Http/Header/EtagTest.php
+  ```
+
+- You may also provide the `--group` switch; in such cases, provide the
+  top-level component name:
+
+  ```sh
+  % phpunit --group Zend_Http
+  ```
+
+  This will likely lead to errors, so it's usually best to specify a
+  specific component in which to run test:
+
+  ```sh
+  % phpunit --group ZF-XYZ Zend/Http
+  ```
+- Alternately, use the `run-tests.php` script. This can be executed with no
+  arguments to run all tests:
+
+  ```sh
+  % php run-tests.php
+  ```
+
+  You can also provide top-level component names to run tests for individual
+  components or several components at a time. The component name is the the
+  component namespace, without the `Zend\` prefix:
+
+  ```sh
+  % php run-tests Mvc
+  ```
+
+  ```sh
+  % php run-tests ModuleManager Mvc View Navigation
+  ```
+
+You can turn on conditional tests with the TestConfiguration.php file.
+To do so:
+
+ -  Enter the `tests/` subdirectory.
+ -  Copy `TestConfiguration.php.dist` file to `TestConfiguration.php`
+ -  Edit `TestConfiguration.php` to enable any specific functionality you
+    want to test, as well as to provide test values to utilize.
diff --git a/vendor/zendframework/zendframework/INSTALL.md b/vendor/zendframework/zendframework/INSTALL.md
new file mode 100644
index 00000000000..c3cfc345ebc
--- /dev/null
+++ b/vendor/zendframework/zendframework/INSTALL.md
@@ -0,0 +1,65 @@
+# INSTALLATION
+
+Zend Framework requires no special installation steps. Simply download
+the framework, extract it to the folder you would like to keep it in,
+and add the library directory to your PHP `include_path`. To use
+components in the extras library, add the `extras/library` directory to
+your PHP `include_path` as well.
+
+
+## SYSTEM REQUIREMENTS
+-------------------
+
+Zend Framework 2 requires PHP 5.3.3 or later.
+
+## DEVELOPMENT VERSIONS
+
+If you would like to preview enhancements or bug fixes that have not yet
+been released, you can obtain the current development version of Zend
+Framework using one of the following methods:
+
+ -  Using a Git client. Zend Framework is open source software, and the
+    Git repository used for its development is publicly available.
+    Consider using Git to get Zend Framework if you already use Git for
+    your application development, want to contribute back to the
+    framework, or need to upgrade your framework version very often.
+
+ -  Checking out a working copy is necessary if you would like to directly
+    contribute to Zend Framework; a working copy can be updated any time
+    using git pull.
+
+To clone the git repository, use the following URL:
+
+git://git.zendframework.com/zf.git
+
+For more information about Git, please see the official website:
+
+http://www.git-scm.org
+
+## CONFIGURING THE INCLUDE PATH
+
+Once you have a copy of Zend Framework available, your application will
+need to access the framework classes. Though there are several ways to
+achieve this, your PHP `include_path` needs to contain the path to the
+Zend Framework classes under the `/library` directory in this
+distribution. You can find out more about the PHP `include_path`
+configuration directive here:
+
+http://www.php.net/manual/en/ini.core.php#ini.include-path
+
+Instructions on how to change PHP configuration directives can be found
+here:
+
+http://www.php.net/manual/en/configuration.changes.php
+
+## GETTING STARTED
+
+A great place to get up-to-speed quickly is the Zend Framework
+QuickStart:
+
+http://framework.zend.com/manual/2.0/en/user-guide/overview.html
+
+The QuickStart covers some of the most commonly used components of ZF.
+Since Zend Framework is designed with a use-at-will architecture and
+components are loosely coupled, you can select and use only those
+components that are needed for your project.
diff --git a/vendor/zendframework/zendframework/README-GIT.md b/vendor/zendframework/zendframework/README-GIT.md
new file mode 100644
index 00000000000..593463c85d4
--- /dev/null
+++ b/vendor/zendframework/zendframework/README-GIT.md
@@ -0,0 +1,278 @@
+# USING THE GIT REPOSITORY
+
+## Setup your own public repository
+
+Your first step is to establish a public repository from which we can
+pull your work into the master repository. You have two options: use
+GitHub or other public site, or setup/use your own repository.
+
+While you can use a private repository and utilize ``git format-patch`` to
+submit patches, this is discouraged as it does not facilitate public peer
+review.
+
+### Option 1: GitHub
+
+ 1. Setup a GitHub account (http://github.com/), if you haven't yet
+ 2. Fork the ZF2 repository (http://github.com/zendframework/zf2)
+ 3. Clone your fork locally and enter it (use your own GitHub username
+    in the statement below)
+
+    ```sh
+    % git clone git@github.com:<username>/zf2.git
+    % cd zf2
+    ```
+
+ 4. Add a remote to the canonical ZF repository, so you can keep your fork
+    up-to-date:
+
+    ```sh
+    % git remote add zf2 https://github.com/zendframework/zf2.git
+    % git fetch zf2
+    ```
+
+### Option 2: Personal Repository
+
+We assume you will use gitosis (http://git-scm.com/book/en/Git-on-the-Server-Gitosis)
+or gitolite (http://git-scm.com/book/en/Git-on-the-Server-Gitolite) to host your
+own repository.  If you go this route, we will assume you have the knowledge to
+do so, or know where to obtain it. We will not assist you in setting up such a
+repository.
+
+ 1.  Create a new repository
+
+    ```sh
+    % git init
+    ```
+
+ 2. Add an "origin" remote pointing to your gitosis/gitolite repo:
+
+    ```sh
+    % git remote add origin git://yourdomain/yourrepo.git
+    ```
+
+ 3. Add a remote for the ZF repository and fetch it
+
+    ```sh
+    % git remote add zf2 https://github.com/zendframework/zf2.git
+    % git fetch zf2
+    ```
+
+ 4. Create a new branch for the ZF repository (named "zf/master" here)
+
+    ```sh
+    % git checkout -b zf/master zf2/master
+    ```
+
+ 5. Create your master branch off the ZF branch, and push to your
+    repository
+
+    ```sh
+    % git checkout -b master
+    % git push origin HEAD:master
+    ```
+
+### Pre-Commit Hook (Optional)
+
+The ZF2 Travis-CI will confirm that code style standards are met 
+by using ```php-cs-fixer``` (https://github.com/fabpot/PHP-CS-Fixer) during it's build runs.
+
+To reduce the number of red Travis-CI builds, the following Git pre-commit hook
+can help catch code style issues before committing. Save it as
+```.git/hooks/pre-commit```, and make sure it is executable.
+
+```php
+#!/usr/bin/env php
+<?php
+/**
+ * .git/hooks/pre-commit
+ * 
+ * This pre-commit hooks will check for PHP errors (lint), and make sure the 
+ * code is PSR-2 compliant.
+ * 
+ * Dependecy: PHP-CS-Fixer (https://github.com/fabpot/PHP-CS-Fixer)
+ * 
+ * @author  Mardix  http://github.com/mardix 
+ * @author  Matthew Weier O'Phinney http://mwop.net/
+ * @since   4 Sept 2012
+ */
+
+$exit = 0;
+
+/*
+ * collect all files which have been added, copied or
+ * modified and store them in an array called output
+ */
+$output = array();
+exec('git diff --cached --name-status --diff-filter=ACM', $output);
+
+foreach ($output as $file) {
+    if ('D' === substr($file, 0, 1)) {
+        // deleted file; do nothing
+        continue;
+    }
+
+    $fileName = trim(substr($file, 1));
+
+    /*
+     * Only PHP files
+     */
+    $extension = pathinfo($fileName, PATHINFO_EXTENSION);
+    if (!preg_match('/^ph(p|tml)$/', $extension)) {
+        continue;
+    }
+
+    /*
+     * Check for parse errors
+     */
+    $output = array();
+    $return = 0;
+    exec("php -l " . escapeshellarg($fileName), $output, $return);
+
+    if ($return != 0) {
+        echo "PHP file fails to parse: " . $fileName . ":" . PHP_EOL;
+        echo implode(PHP_EOL, $output) . PHP_EOL;
+        $exit = 1;
+        continue;
+    }
+
+    /*
+     * PHP-CS-Fixer
+     */
+    $output = array();
+    $return = null;
+    exec("php-cs-fixer fix --dry-run --level=psr2 " . escapeshellarg($fileName), $output, $return);
+    if ($return != 0 || !empty($output)) {
+        echo "PHP file contains CS issues: " . $fileName . ":" . PHP_EOL;
+        echo implode(PHP_EOL, $output) . PHP_EOL;
+        $exit = 1;
+        continue;
+    }
+}
+
+exit($exit);
+```
+
+## Keeping Up-to-Date
+
+Periodically, you should update your fork or personal repository to
+match the canonical ZF repository. In each of the above setups, we have
+added a remote to the Zend Framework repository, which allows you to do
+the following:
+
+
+```sh
+% git checkout master
+% git pull zf2 master
+- OPTIONALLY, to keep your remote up-to-date -
+% git push origin
+```
+
+If you're tracking other branches -- for example, the "develop" branch, where
+new feature development occurs -- you'll want to do the same operations for that
+branch; simply substibute "develop" for "master".
+
+## Working on Zend Framework
+
+When working on Zend Framework, we recommend you do each new feature or
+bugfix in a new branch. This simplifies the task of code review as well
+as of merging your changes into the canonical repository.
+
+A typical work flow will then consist of the following:
+
+ 1. Create a new local branch based off your master branch.
+ 2. Switch to your new local branch. (This step can be combined with the
+    previous step with the use of `git checkout -b`.)
+ 3. Do some work, commit, repeat as necessary.
+ 4. Push the local branch to your remote repository.
+ 5. Send a pull request.
+
+The mechanics of this process are actually quite trivial. Below, we will
+create a branch for fixing an issue in the tracker.
+
+```sh
+% git checkout -b zf9295
+Switched to a new branch 'zf9295'
+```
+... do some work ...
+  
+```sh
+% git commit
+```
+... write your log message ...
+  
+```sh
+% git push origin HEAD:zf9295
+Counting objects: 38, done.
+Delta compression using up to 2 threads.
+Compression objects: 100% (18/18), done.
+Writing objects: 100% (20/20), 8.19KiB, done.
+Total 20 (delta 12), reused 0 (delta 0)
+To ssh://git@github.com/weierophinney/zf2.git
+   b5583aa..4f51698  HEAD -> master
+```
+
+
+To send a pull request, you have two options.
+
+If using GitHub, you can do the pull request from there. Navigate to
+your repository, select the branch you just created, and then select the
+"Pull Request" button in the upper right. Select the user
+"zendframework" as the recipient.
+
+If using your own repository - or even if using GitHub - you can send an
+email indicating you have changes to pull:
+
+ -  Send to <zf-devteam@zend.com>
+
+ -  In your message, specify:
+     -  The URL to your repository (e.g., `git://mwop.net/zf2.git`)
+     -  The branch containing the changes you want pulled (e.g., `zf9295`)
+     -  The nature of the changes (e.g., `implements
+        Zend_Service_Twitter`, `fixes ZF-9295`, etc.)
+
+### What branch to issue the pull request against?
+
+Which branch should you issue a pull request against?
+
+- For fixes against the stable release, issue the pull request against the
+  "master" branch.
+- For new features, or fixes that introduce new elements to the public API (such
+  as new public methods or properties), issue the pull request against the
+  "develop" branch.
+
+## Branch Cleanup
+
+As you might imagine, if you are a frequent contributor, you'll start to
+get a ton of branches both locally and on your remote.
+
+Once you know that your changes have been accepted to the master
+repository, we suggest doing some cleanup of these branches.
+
+ -  Local branch cleanup
+    
+    ```sh
+    % git branch -d <branchname>
+    ```
+
+ -  Remote branch removal
+
+    ```sh
+    % git push origin :<branchname>
+    ```
+
+
+## FEEDS AND EMAILS
+
+RSS feeds may be found at:
+
+`https://github.com/zendframework/zf2/commits/<branch>.atom`
+
+where &lt;branch&gt; is a branch in the repository.
+
+To subscribe to git email notifications, simply watch or fork the zf2 repository
+on GitHub.
+
+## CONTRIBUTORS AND COMMITTERS
+
+Both Zend's internal Zend Framework team and the members of the Community Review
+team have push privileges to the ZF2 repository. 
diff --git a/vendor/zendframework/zendframework/README.md b/vendor/zendframework/zendframework/README.md
index fb2b3541b31..68c232bc55f 100644
--- a/vendor/zendframework/zendframework/README.md
+++ b/vendor/zendframework/zendframework/README.md
@@ -5,100 +5,13 @@ Develop: [![Build Status](https://secure.travis-ci.org/zendframework/zf2.png?bra
 
 ## RELEASE INFORMATION
 
-*Zend Framework 2.1.4*
+*Zend Framework 2.1.5*
 
-This is the fourth maintenance release for the version 2.1 series.
+This is the fifth maintenance release for the version 2.1 series.
 
-13 Mar 2013
+17 Apr 2013
 
-### UPDATES IN 2.1.4
-
-#### Security fix: Query route
-
-The query route was deprecated, as a replacement exists within the HTTP router
-itself. You can pass a "query" option to the assemble method containing either
-the query string or an array of key-value pairs:
-
-```php
-$url = $router->assemble(array(
-    'name' => 'foo',
-), array(
-    'query' => array(
-        'page' => 3,
-        'sort' => 'DESC',
-    ), 
-    // or: 'query' => 'page=3&sort=DESC'
-));
-
-// via URL helper/plugin:
-$rendererOrController->url('foo', array(), array('query' => $request->getQuery()));
-```
-
-Additionally, the merging of query parameters into the route match was removed
-to avoid potential security issues. Please use the query container of the
-request object instead.
-
-For more information on the security vector, please see
-[ZF2013-01](http://framework.zend.com/security/ZF2013-01).
-
-#### Security fix: Better RNG support
-
-The `Zend\Math\Rand` component generates random bytes using the OpenSSL
-or Mcrypt extensions when available but will otherwise use PHP's
-`mt_rand()` function as a fallback. All outputs from `mt_rand()` are
-predictable for the same PHP process if an attacker can brute force
-the seed - which can be done if the attacker has access to a random number
-generated by `mt_rand` or the session ID (if generated without using additional
-entropy). 
-
-Zend Framework have revised the `Zend\Math\Rand` component to replace the
-current `mt_rand()` fallback for OpenSSL/Mcrypt with Anthony Ferrara's
-[RandomLib](https://github.com/ircmaxell/RandomLib), incorporating an additional
-entropy source based on [source code published by George
-Argyros](https://github.com/GeorgeArgyros/Secure-random-bytes-in-PHP). The new
-fallback collects entropy from numerous sources other than PHP's internal seed
-mechanism and extracts random bytes from the resulting mixed entropy pool.
-
-For more information on this security vector, please see
-[ZF2013-02](http://framework.zend.com/security/ZF2013-02).
-
-#### Security fix: DB platform quoting
-
-Altered `Zend\Db` to throw notices when insecure usage of the following methods
-is called: 
-
-- `Zend\Db\Adapter\Platform\*::quoteValue*()`
-- `Zend\Db\Sql\*::getSqlString*()`
-
-Fixed `Zend\Db` Platform objects to use driver level quoting when provided, and
-throw `E_USER_NOTICE` when not provided.  Added `quoteTrustedValue()` API for
-notice-free value quoting.  Fixed all userland quoting in Platform objects to
-handle a wider array of escapable characters.
-
-For more information on this security vector, please see
-[ZF2013-03](http://framework.zend.com/security/ZF2013-03).
-
-#### Better polyfill support
-
-Better polyfill support in `Zend\Session` and `Zend\Stdlib`. Polyfills
-(version-specific class replacements) have caused some issues in the 2.1 series.
-In particular, users who were not using Composer were unaware/uncertain about
-what extra files needed to be included to load polyfills, and those users who
-were generating classmaps were running into issues since the same class was
-being generated twice.
-
-New polyfill support was created which does the following:
-
-- New, uniquely named classes were created for each polyfill base.
-- A stub class file was created for each class needing polyfill support. A
-  conditional is present in each that uses `class_alias` to alias the appropriate
-  polyfill base as an import. The stub class then extends the base.
-- The `compatibility/autoload.php` files in each component affected was altered
-  to trigger an `E_USER_DEPRECATED` error asking the user to remove the require
-  statement for the file.
-
-The functionality works with both Composer and ZF2's autoloading support, using
-either PSR-0 or classmaps. All typehinting is preserved.
+### UPDATES IN 2.1.5
 
 Please see [CHANGELOG.md](CHANGELOG.md).
 
diff --git a/vendor/zendframework/zendframework/bin/check-cs.sh b/vendor/zendframework/zendframework/bin/check-cs.sh
old mode 100755
new mode 100644
diff --git a/vendor/zendframework/zendframework/bin/classmap_generator.php b/vendor/zendframework/zendframework/bin/classmap_generator.php
index 9a7efbcc863..088b5b0b5dd 100755
--- a/vendor/zendframework/zendframework/bin/classmap_generator.php
+++ b/vendor/zendframework/zendframework/bin/classmap_generator.php
@@ -171,7 +171,7 @@ if ($appending) {
     $content = str_replace("\\'", "'", $content);
 
     // Convert to an array and remove the first "array("
-    $content = explode(PHP_EOL, $content);
+    $content = explode("\n", $content);
     array_shift($content);
 
     // Load existing class map file and remove the closing "bracket ");" from it
@@ -179,7 +179,7 @@ if ($appending) {
     array_pop($existing);
 
     // Merge
-    $content = implode(PHP_EOL, array_merge($existing, $content));
+    $content = implode("\n", array_merge($existing, $content));
 } else {
     // Create a file with the class/file map.
     // Stupid syntax highlighters make separating < from PHP declaration necessary
@@ -210,6 +210,9 @@ foreach ($matches as $match) {
 
 $content = preg_replace('(\n\s+([^=]+)=>)e', "'\n    \\1' . str_repeat(' ', " . $maxWidth . " - strlen('\\1')) . '=>'", $content);
 
+// Make the file end by EOL
+$content = rtrim($content, "\n") . "\n";
+
 // Write the contents to disk
 file_put_contents($output, $content);
 
diff --git a/vendor/zendframework/zendframework/bin/pluginmap_generator.php b/vendor/zendframework/zendframework/bin/pluginmap_generator.php
old mode 100755
new mode 100644
index 9e7136c879b..cffeb66738e
--- a/vendor/zendframework/zendframework/bin/pluginmap_generator.php
+++ b/vendor/zendframework/zendframework/bin/pluginmap_generator.php
@@ -146,7 +146,7 @@ if ($appending) {
     $content = str_replace("\\'", "'", $content);
 
     // Convert to an array and remove the first "array ("
-    $content = explode(PHP_EOL, $content);
+    $content = explode("\n", $content);
     array_shift($content);
 
     // Load existing class map file and remove the closing "bracket ");" from it
@@ -154,7 +154,7 @@ if ($appending) {
     array_pop($existing);
 
     // Merge
-    $content = implode(PHP_EOL, $existing + $content);
+    $content = implode("\n", $existing + $content);
 } else {
     // Create a file with the class/file map.
     // Stupid syntax highlighters make separating < from PHP declaration necessary
@@ -168,6 +168,9 @@ if ($appending) {
     $content = str_replace("\\'", "'", $content);
 }
 
+// Make the file end by EOL
+$content = rtrim($content, "\n") . "\n";
+
 // Write the contents to disk
 file_put_contents($output, $content);
 
diff --git a/vendor/zendframework/zendframework/bin/templatemap_generator.php b/vendor/zendframework/zendframework/bin/templatemap_generator.php
index ad1788a5110..5f5d50763dd 100644
--- a/vendor/zendframework/zendframework/bin/templatemap_generator.php
+++ b/vendor/zendframework/zendframework/bin/templatemap_generator.php
@@ -193,7 +193,7 @@ if ($appending) {
     $content = str_replace("\\'", "'", $content);
 
     // Convert to an array and remove the first "array("
-    $content = explode(PHP_EOL, $content);
+    $content = explode("\n", $content);
     array_shift($content);
 
     // Load existing map file and remove the closing "bracket ");" from it
@@ -201,7 +201,7 @@ if ($appending) {
     array_pop($existing);
 
     // Merge
-    $content = implode(PHP_EOL, array_merge($existing, $content));
+    $content = implode("\n", array_merge($existing, $content));
 } else {
     // Create a file with the map.
     // Stupid syntax highlighters make separating < from PHP declaration necessary
@@ -232,6 +232,9 @@ foreach ($matches as $match) {
 
 $content = preg_replace('(\n\s+([^=]+)=>)e', "'\n    \\1' . str_repeat(' ', " . $maxWidth . " - strlen('\\1')) . '=>'", $content);
 
+// Make the file end by EOL
+$content = rtrim($content, "\n") . "\n";
+
 // Write the contents to disk
 file_put_contents($output, $content);
 
diff --git a/vendor/zendframework/zendframework/build.xml b/vendor/zendframework/zendframework/build.xml
new file mode 100644
index 00000000000..19baf9a80ad
--- /dev/null
+++ b/vendor/zendframework/zendframework/build.xml
@@ -0,0 +1,138 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project name="ZF2" default="build">
+    <target name="travis" depends="tests-parallel,show-test-results" />
+
+    <target name="clean" description="Cleanup build artifacts">
+        <delete dir="${basedir}/build"/>
+    </target>
+
+    <target name="prepare" depends="clean" description="Prepare for build">
+        <mkdir dir="${basedir}/build/test-results"/>
+        <mkdir dir="${basedir}/build/cs-results"/>
+    </target>
+
+    <target name="get-cs-fixer" depends="clean" description="Get coding standards fixer">
+        <get src="http://cs.sensiolabs.org/get/php-cs-fixer.phar" dest="${basedir}/php-cs-fixer.phar"/>
+    </target>
+
+    <target name="composer-install" description="Installs dependencies via composer install">
+        <exec executable="composer" failonerror="true">
+            <arg value="install" />
+            <arg value="--dev" />
+            <arg value="--prefer-source" />
+        </exec>
+    </target>
+
+    <target
+        name="tests-parallel"
+        depends="prepare,composer-install"
+        description="Run tests for the various components in parallel"
+    >
+        <parallel threadCount="8">
+            <!--
+                If there's a way of having this without the explicit component
+                list, please PR
+            -->
+            <component-test component="Authentication"/>
+            <component-test component="Barcode"/>
+            <component-test component="Cache"/>
+            <component-test component="Captcha"/>
+            <component-test component="Code"/>
+            <component-test component="Config"/>
+            <component-test component="Console"/>
+            <component-test component="Crypt"/>
+            <component-test component="Db"/>
+            <component-test component="Debug"/>
+            <component-test component="Di"/>
+            <component-test component="Dom"/>
+            <component-test component="Escaper"/>
+            <component-test component="EventManager"/>
+            <component-test component="Feed"/>
+            <component-test component="File"/>
+            <component-test component="Filter"/>
+            <component-test component="Form"/>
+            <component-test component="Http"/>
+            <component-test component="I18n"/>
+            <component-test component="InputFilter"/>
+            <component-test component="Json"/>
+            <component-test component="Ldap"/>
+            <component-test component="Loader"/>
+            <component-test component="Log"/>
+            <component-test component="Mail"/>
+            <component-test component="Math"/>
+            <component-test component="Memory"/>
+            <component-test component="Mime"/>
+            <component-test component="ModuleManager"/>
+            <component-test component="Mvc"/>
+            <component-test component="Navigation"/>
+            <component-test component="Paginator"/>
+            <component-test component="Permissions"/>
+            <component-test component="ProgressBar"/>
+            <component-test component="Serializer"/>
+            <component-test component="Server"/>
+            <component-test component="ServiceManager"/>
+            <component-test component="Session"/>
+            <component-test component="Soap"/>
+            <component-test component="Stdlib"/>
+            <component-test component="Tag"/>
+            <component-test component="Test"/>
+            <component-test component="Text"/>
+            <component-test component="Uri"/>
+            <component-test component="Validator"/>
+            <component-test component="Version"/>
+            <component-test component="View"/>
+            <component-test component="XmlRpc"/>
+            <check-cs/>
+        </parallel>
+    </target>
+
+    <target name="show-test-results" description="Display logged test results">
+        <concat>
+            <fileset dir="${basedir}/build/cs-results/"/>
+            <fileset dir="${basedir}/build/test-results/"/>
+        </concat>
+    </target>
+
+    <macrodef name="component-test">
+        <attribute name="component"/>
+        <sequential>
+            <echo output="${basedir}/build/test-results/@{component}.log" level="debug">
+
+                ZendTest/@{component}
+
+            </echo>
+            <exec
+                    executable="${basedir}/vendor/bin/phpunit"
+                    output="${basedir}/build/test-results/@{component}.log"
+                    error="${basedir}/build/test-results/@{component}.log"
+                    failonerror="true"
+                    append="true"
+                    >
+                <arg value="-c" />
+                <arg value="${basedir}/tests/phpunit.xml.dist" />
+                <arg value="${basedir}/tests/ZendTest/@{component}" />
+            </exec>
+        </sequential>
+    </macrodef>
+
+    <macrodef name="check-cs">
+        <sequential>
+            <echo output="${basedir}/build/cs-results/check-cs.log" level="debug">
+
+                Coding standards
+
+            </echo>
+            <exec
+                executable="${basedir}/bin/check-cs.sh"
+                output="${basedir}/build/cs-results/check-cs.log"
+                error="${basedir}/build/cs-results/check-cs.log"
+                failonerror="true"
+                append="true"
+            >
+                <arg value="-c" />
+                <arg value="${basedir}/tests/phpunit.xml.dist" />
+                <arg value="${basedir}/tests/ZendTest/@{component}" />
+            </exec>
+        </sequential>
+    </macrodef>
+</project>
\ No newline at end of file
diff --git a/vendor/zendframework/zendframework/library/Zend/Barcode/Object/AbstractObject.php b/vendor/zendframework/zendframework/library/Zend/Barcode/Object/AbstractObject.php
index 0d1b939f67a..ffc4774f7fc 100644
--- a/vendor/zendframework/zendframework/library/Zend/Barcode/Object/AbstractObject.php
+++ b/vendor/zendframework/zendframework/library/Zend/Barcode/Object/AbstractObject.php
@@ -208,7 +208,7 @@ abstract class AbstractObject implements ObjectInterface
         if (is_array($options)) {
             $this->setOptions($options);
         }
-        $this->type = strtolower(substr(get_called_class(), strlen($this->barcodeNamespace) + 1));
+        $this->type = strtolower(substr(get_class($this), strlen($this->barcodeNamespace) + 1));
         if ($this->mandatoryChecksum) {
             $this->withChecksum = true;
             $this->withChecksumInText = true;
diff --git a/vendor/zendframework/zendframework/library/Zend/Barcode/Object/Ean13.php b/vendor/zendframework/zendframework/library/Zend/Barcode/Object/Ean13.php
index 250809a1b31..7d9d8997d82 100644
--- a/vendor/zendframework/zendframework/library/Zend/Barcode/Object/Ean13.php
+++ b/vendor/zendframework/zendframework/library/Zend/Barcode/Object/Ean13.php
@@ -155,7 +155,7 @@ class Ean13 extends AbstractObject
      */
     protected function drawText()
     {
-        if (get_called_class() == 'Zend\Barcode\Object\Ean13') {
+        if (get_class($this) == 'Zend\Barcode\Object\Ean13') {
             $this->drawEan13Text();
         } else {
             parent::drawText();
diff --git a/vendor/zendframework/zendframework/library/Zend/Barcode/Renderer/AbstractRenderer.php b/vendor/zendframework/zendframework/library/Zend/Barcode/Renderer/AbstractRenderer.php
index 0b6ec1f5831..f27d7d1c489 100644
--- a/vendor/zendframework/zendframework/library/Zend/Barcode/Renderer/AbstractRenderer.php
+++ b/vendor/zendframework/zendframework/library/Zend/Barcode/Renderer/AbstractRenderer.php
@@ -92,7 +92,7 @@ abstract class AbstractRenderer implements RendererInterface
             $this->setOptions($options);
         }
         $this->type = strtolower(substr(
-            get_called_class(),
+            get_class($this),
             strlen($this->rendererNamespace) + 1
         ));
     }
diff --git a/vendor/zendframework/zendframework/library/Zend/Cache/Storage/Adapter/AbstractAdapter.php b/vendor/zendframework/zendframework/library/Zend/Cache/Storage/Adapter/AbstractAdapter.php
index 0892d9eb0aa..3c2ea41d00d 100644
--- a/vendor/zendframework/zendframework/library/Zend/Cache/Storage/Adapter/AbstractAdapter.php
+++ b/vendor/zendframework/zendframework/library/Zend/Cache/Storage/Adapter/AbstractAdapter.php
@@ -188,7 +188,7 @@ abstract class AbstractAdapter implements StorageInterface, EventsCapableInterfa
     public function getEventManager()
     {
         if ($this->events === null) {
-            $this->events = new EventManager(array(__CLASS__, get_called_class()));
+            $this->events = new EventManager(array(__CLASS__, get_class($this)));
         }
         return $this->events;
     }
diff --git a/vendor/zendframework/zendframework/library/Zend/Cache/Storage/Adapter/FilesystemIterator.php b/vendor/zendframework/zendframework/library/Zend/Cache/Storage/Adapter/FilesystemIterator.php
index ede9db20d64..800e038adaa 100644
--- a/vendor/zendframework/zendframework/library/Zend/Cache/Storage/Adapter/FilesystemIterator.php
+++ b/vendor/zendframework/zendframework/library/Zend/Cache/Storage/Adapter/FilesystemIterator.php
@@ -16,9 +16,9 @@ class FilesystemIterator implements IteratorInterface
 {
 
     /**
-     * The apc storage instance
+     * The Filesystem storage instance
      *
-     * @var Apc
+     * @var Filesystem
      */
     protected $storage;
 
@@ -89,7 +89,7 @@ class FilesystemIterator implements IteratorInterface
      * Set iterator mode
      *
      * @param int $mode
-     * @return ApcIterator Fluent interface
+     * @return FilesystemIterator Fluent interface
      */
     public function setMode($mode)
     {
@@ -164,10 +164,17 @@ class FilesystemIterator implements IteratorInterface
     /**
      * Rewind the Iterator to the first element.
      *
-     * @return void
+     * @return bool false if the operation failed.
      */
     public function rewind()
     {
-        return $this->globIterator->rewind();
+        try {
+            return $this->globIterator->rewind();
+        } catch (\LogicException $e) {
+            // @link https://bugs.php.net/bug.php?id=55701
+            // GlobIterator throws LogicException with message
+            // 'The parent constructor was not called: the object is in an invalid state'
+            return false;
+        }
     }
 }
diff --git a/vendor/zendframework/zendframework/library/Zend/Code/Generator/ParameterGenerator.php b/vendor/zendframework/zendframework/library/Zend/Code/Generator/ParameterGenerator.php
index 52cf981ddd8..f32f191f976 100644
--- a/vendor/zendframework/zendframework/library/Zend/Code/Generator/ParameterGenerator.php
+++ b/vendor/zendframework/zendframework/library/Zend/Code/Generator/ParameterGenerator.php
@@ -56,6 +56,8 @@ class ParameterGenerator extends AbstractGenerator
 
         if ($reflectionParameter->isArray()) {
             $param->setType('array');
+        } elseif (method_exists($reflectionParameter, 'isCallable') && $reflectionParameter->isCallable()) {
+            $param->setType('callable');
         } else {
             $typeClass = $reflectionParameter->getClass();
             if ($typeClass) {
diff --git a/vendor/zendframework/zendframework/library/Zend/Code/Reflection/DocBlockReflection.php b/vendor/zendframework/zendframework/library/Zend/Code/Reflection/DocBlockReflection.php
index f3c2a311376..bf539337144 100644
--- a/vendor/zendframework/zendframework/library/Zend/Code/Reflection/DocBlockReflection.php
+++ b/vendor/zendframework/zendframework/library/Zend/Code/Reflection/DocBlockReflection.php
@@ -104,7 +104,7 @@ class DocBlockReflection implements ReflectionInterface
         } else {
             throw new Exception\InvalidArgumentException(sprintf(
                 '%s must have a (string) DocComment or a Reflector in the constructor',
-                get_called_class()
+                get_class($this)
             ));
         }
 
diff --git a/vendor/zendframework/zendframework/library/Zend/Code/Reflection/ParameterReflection.php b/vendor/zendframework/zendframework/library/Zend/Code/Reflection/ParameterReflection.php
index 298ed45e36e..4b8b067f314 100644
--- a/vendor/zendframework/zendframework/library/Zend/Code/Reflection/ParameterReflection.php
+++ b/vendor/zendframework/zendframework/library/Zend/Code/Reflection/ParameterReflection.php
@@ -77,6 +77,8 @@ class ParameterReflection extends ReflectionParameter implements ReflectionInter
     {
         if ($this->isArray()) {
             return 'array';
+        } elseif (method_exists($this, 'isCallable') && $this->isCallable()) {
+            return 'callable';
         }
 
         if (($class = $this->getClass()) instanceof \ReflectionClass) {
diff --git a/vendor/zendframework/zendframework/library/Zend/Code/Scanner/DocBlockScanner.php b/vendor/zendframework/zendframework/library/Zend/Code/Scanner/DocBlockScanner.php
index 504e2304410..2e594cbfe29 100644
--- a/vendor/zendframework/zendframework/library/Zend/Code/Scanner/DocBlockScanner.php
+++ b/vendor/zendframework/zendframework/library/Zend/Code/Scanner/DocBlockScanner.php
@@ -165,8 +165,8 @@ class DocBlockScanner implements ScannerInterface
 
         SCANNER_END:
 
-        $this->shortDescription = rtrim($this->shortDescription);
-        $this->longDescription  = rtrim($this->longDescription);
+        $this->shortDescription = trim($this->shortDescription);
+        $this->longDescription  = trim($this->longDescription);
         $this->isScanned        = true;
     }
 
@@ -197,7 +197,7 @@ class DocBlockScanner implements ScannerInterface
             }
             $currentChar = $stream[$streamIndex];
             $matches     = array();
-            $currentLine = (preg_match('#(.*)\n#', $stream, $matches, null,
+            $currentLine = (preg_match('#(.*?)\r?\n#', $stream, $matches, null,
                                        $streamIndex) === 1) ? $matches[1] : substr($stream, $streamIndex);
             if ($currentChar === ' ') {
                 $currentWord = (preg_match('#( +)#', $currentLine, $matches) === 1) ? $matches[1] : $currentLine;
diff --git a/vendor/zendframework/zendframework/library/Zend/Config/WriterPluginManager.php b/vendor/zendframework/zendframework/library/Zend/Config/WriterPluginManager.php
old mode 100755
new mode 100644
diff --git a/vendor/zendframework/zendframework/library/Zend/Console/Adapter/AbstractAdapter.php b/vendor/zendframework/zendframework/library/Zend/Console/Adapter/AbstractAdapter.php
index 8d33fb403d8..e982b63853b 100644
--- a/vendor/zendframework/zendframework/library/Zend/Console/Adapter/AbstractAdapter.php
+++ b/vendor/zendframework/zendframework/library/Zend/Console/Adapter/AbstractAdapter.php
@@ -11,6 +11,7 @@ namespace Zend\Console\Adapter;
 
 use Zend\Console\Charset;
 use Zend\Console\Exception;
+use Zend\Stdlib\StringUtils;
 
 /**
  * Common console adapter codebase
@@ -73,8 +74,6 @@ abstract class AbstractAdapter implements AdapterInterface
 
     /**
      * Write a single line of text to console and advance cursor to the next line.
-     * If the text is longer than console width it will be truncated.
-     *
      *
      * @param string   $text
      * @param null|int $color
@@ -82,25 +81,7 @@ abstract class AbstractAdapter implements AdapterInterface
      */
     public function writeLine($text = "", $color = null, $bgColor = null)
     {
-        $width = $this->getStringWidth($text);
-
-        // Remove newline characters from the end of string
-        $text = trim($text, "\r\n");
-
-        // Replace newline characters with spaces
-        $text = str_replace("\n", " ", $text);
-
-        // Trim the line if it's too long and output text
-        $consoleWidth = $this->getWidth();
-        if ($width > $consoleWidth) {
-            $text = $this->stringTrim($text, $consoleWidth);
-            $this->write($text, $color, $bgColor);
-        } elseif ($width == $consoleWidth) {
-            $this->write($text, $color, $bgColor);
-        } else {
-            $this->write($text, $color, $bgColor);
-            $this->write("\n");
-        }
+        $this->write($text . PHP_EOL, $color, $bgColor);
     }
 
     /**
@@ -228,7 +209,7 @@ abstract class AbstractAdapter implements AdapterInterface
             }
 
         } elseif ($fillStyle) {
-            $fillChar = $this->stringTrim($fillStyle, 1);
+            $fillChar = StringUtils::getWrapper()->substr($fillStyle, 0, 1);
         } else {
             $fillChar = ' ';
         }
@@ -487,56 +468,6 @@ abstract class AbstractAdapter implements AdapterInterface
         return $this->clear();
     }
 
-    /**
-     * Helper function that return string length as rendered in console.
-     *
-     * @static
-     * @param $string
-     * @return int
-     */
-    protected function getStringWidth($string)
-    {
-        $width = strlen($string);
-
-        if (!$this->isUtf8()) {
-            return $width;
-        }
-
-        if (static::$hasMBString === null) {
-            static::$hasMBString = extension_loaded( 'mbstring' );
-        }
-
-        $width = (static::$hasMBString)
-               ? mb_strlen($string, 'UTF-8' )
-               : strlen(utf8_decode($string));
-
-        return $width;
-    }
-
-    /**
-     * Trim a string in an encoding-safe way
-     *
-     * @param  mixed $string
-     * @param  mixed $length
-     * @return int
-     */
-    protected function stringTrim($string, $length)
-    {
-        if ($this->isUtf8()) {
-            if (static::$hasMBString === null) {
-                static::$hasMBString = extension_loaded('mbstring');
-            }
-
-            if (static::$hasMBString) {
-                return mb_strlen($string, 'UTF-8');
-            }
-
-            return strlen(utf8_decode($string));
-        }
-
-        return strlen($string);
-    }
-
     /**
      * Read a single line from the console input
      *
diff --git a/vendor/zendframework/zendframework/library/Zend/Console/Adapter/Posix.php b/vendor/zendframework/zendframework/library/Zend/Console/Adapter/Posix.php
index 3044a63dcaf..7e5c5059e0c 100644
--- a/vendor/zendframework/zendframework/library/Zend/Console/Adapter/Posix.php
+++ b/vendor/zendframework/zendframework/library/Zend/Console/Adapter/Posix.php
@@ -92,6 +92,24 @@ class Posix extends AbstractAdapter
      */
     protected $lastTTYMode = null;
 
+    /**
+     * Write a single line of text to console and advance cursor to the next line.
+     *
+     * This override works around a bug in some terminals that cause the background color
+     * to fill the next line after EOL. To remedy this, we are sending the colored string with
+     * appropriate color reset sequences before sending EOL character.
+     *
+     * @link https://github.com/zendframework/zf2/issues/4167
+     * @param string   $text
+     * @param null|int $color
+     * @param null|int $bgColor
+     */
+    public function writeLine($text = "", $color = null, $bgColor = null)
+    {
+        $this->write($text, $color, $bgColor);
+        $this->write(PHP_EOL);
+    }
+
     /**
      * Determine and return current console width.
      *
diff --git a/vendor/zendframework/zendframework/library/Zend/Db/Adapter/Adapter.php b/vendor/zendframework/zendframework/library/Zend/Db/Adapter/Adapter.php
old mode 100755
new mode 100644
index 8a948b67af6..ec54def4b9c
--- a/vendor/zendframework/zendframework/library/Zend/Db/Adapter/Adapter.php
+++ b/vendor/zendframework/zendframework/library/Zend/Db/Adapter/Adapter.php
@@ -309,7 +309,7 @@ class Adapter implements AdapterInterface, Profiler\ProfilerAwareInterface
 
     /**
      * @param Driver\DriverInterface $driver
-     * @return Platform\PlatformInterface
+     * @return Platform\PlatformInterface 
      */
     protected function createPlatform($parameters)
     {
diff --git a/vendor/zendframework/zendframework/library/Zend/Db/Adapter/AdapterAwareTrait.php b/vendor/zendframework/zendframework/library/Zend/Db/Adapter/AdapterAwareTrait.php
index 24e9f0af913..b0d9c497b36 100644
--- a/vendor/zendframework/zendframework/library/Zend/Db/Adapter/AdapterAwareTrait.php
+++ b/vendor/zendframework/zendframework/library/Zend/Db/Adapter/AdapterAwareTrait.php
@@ -11,9 +11,6 @@ namespace Zend\Db\Adapter;
 
 use Zend\Db\Adapter\Adapter;
 
-/**
- * @packcage   Zend_Db
- */
 trait AdapterAwareTrait
 {
     /**
diff --git a/vendor/zendframework/zendframework/library/Zend/Db/Adapter/Driver/IbmDb2/Connection.php b/vendor/zendframework/zendframework/library/Zend/Db/Adapter/Driver/IbmDb2/Connection.php
old mode 100755
new mode 100644
diff --git a/vendor/zendframework/zendframework/library/Zend/Db/Adapter/Driver/IbmDb2/IbmDb2.php b/vendor/zendframework/zendframework/library/Zend/Db/Adapter/Driver/IbmDb2/IbmDb2.php
old mode 100755
new mode 100644
diff --git a/vendor/zendframework/zendframework/library/Zend/Db/Adapter/Driver/IbmDb2/Result.php b/vendor/zendframework/zendframework/library/Zend/Db/Adapter/Driver/IbmDb2/Result.php
old mode 100755
new mode 100644
diff --git a/vendor/zendframework/zendframework/library/Zend/Db/Adapter/Driver/IbmDb2/Statement.php b/vendor/zendframework/zendframework/library/Zend/Db/Adapter/Driver/IbmDb2/Statement.php
old mode 100755
new mode 100644
diff --git a/vendor/zendframework/zendframework/library/Zend/Db/Adapter/Driver/Mysqli/Connection.php b/vendor/zendframework/zendframework/library/Zend/Db/Adapter/Driver/Mysqli/Connection.php
index e4fe97f5201..c8525ff6404 100644
--- a/vendor/zendframework/zendframework/library/Zend/Db/Adapter/Driver/Mysqli/Connection.php
+++ b/vendor/zendframework/zendframework/library/Zend/Db/Adapter/Driver/Mysqli/Connection.php
@@ -267,8 +267,8 @@ class Connection implements ConnectionInterface, Profiler\ProfilerAwareInterface
         }
 
         $this->resource->commit();
-
         $this->inTransaction = false;
+        $this->resource->autocommit(true);
     }
 
     /**
@@ -288,6 +288,7 @@ class Connection implements ConnectionInterface, Profiler\ProfilerAwareInterface
         }
 
         $this->resource->rollback();
+        $this->resource->autocommit(true);
         return $this;
     }
 
diff --git a/vendor/zendframework/zendframework/library/Zend/Db/Adapter/Driver/Oci8/Connection.php b/vendor/zendframework/zendframework/library/Zend/Db/Adapter/Driver/Oci8/Connection.php
old mode 100755
new mode 100644
diff --git a/vendor/zendframework/zendframework/library/Zend/Db/Adapter/Driver/Oci8/Oci8.php b/vendor/zendframework/zendframework/library/Zend/Db/Adapter/Driver/Oci8/Oci8.php
old mode 100755
new mode 100644
index e4c8318f079..5e9996dad13
--- a/vendor/zendframework/zendframework/library/Zend/Db/Adapter/Driver/Oci8/Oci8.php
+++ b/vendor/zendframework/zendframework/library/Zend/Db/Adapter/Driver/Oci8/Oci8.php
@@ -148,11 +148,7 @@ class Oci8 implements DriverInterface, Profiler\ProfilerAwareInterface
      */
     public function getDatabasePlatformName($nameFormat = self::NAME_FORMAT_CAMELCASE)
     {
-        if ($nameFormat == self::NAME_FORMAT_CAMELCASE) {
-            return 'Oracle';
-        } else {
-            return 'Oracle';
-        }
+        return 'Oracle';
     }
 
     /**
diff --git a/vendor/zendframework/zendframework/library/Zend/Db/Adapter/Driver/Oci8/Result.php b/vendor/zendframework/zendframework/library/Zend/Db/Adapter/Driver/Oci8/Result.php
old mode 100755
new mode 100644
diff --git a/vendor/zendframework/zendframework/library/Zend/Db/Adapter/Driver/Oci8/Statement.php b/vendor/zendframework/zendframework/library/Zend/Db/Adapter/Driver/Oci8/Statement.php
old mode 100755
new mode 100644
diff --git a/vendor/zendframework/zendframework/library/Zend/Db/Adapter/Driver/Pdo/Connection.php b/vendor/zendframework/zendframework/library/Zend/Db/Adapter/Driver/Pdo/Connection.php
index 5be339d5f60..03cbe3e8687 100644
--- a/vendor/zendframework/zendframework/library/Zend/Db/Adapter/Driver/Pdo/Connection.php
+++ b/vendor/zendframework/zendframework/library/Zend/Db/Adapter/Driver/Pdo/Connection.php
@@ -186,6 +186,9 @@ class Connection implements ConnectionInterface, Profiler\ProfilerAwareInterface
      */
     public function getResource()
     {
+        if (!$this->isConnected()) {
+            $this->connect();
+        }
         return $this->resource;
     }
 
diff --git a/vendor/zendframework/zendframework/library/Zend/Db/Adapter/Driver/Pgsql/Connection.php b/vendor/zendframework/zendframework/library/Zend/Db/Adapter/Driver/Pgsql/Connection.php
index feac1c666be..98dab06eb6d 100644
--- a/vendor/zendframework/zendframework/library/Zend/Db/Adapter/Driver/Pgsql/Connection.php
+++ b/vendor/zendframework/zendframework/library/Zend/Db/Adapter/Driver/Pgsql/Connection.php
@@ -137,6 +137,9 @@ class Connection implements ConnectionInterface, Profiler\ProfilerAwareInterface
      */
     public function getResource()
     {
+        if (!$this->isConnected()) {
+            $this->connect();
+        }
         return $this->resource;
     }
 
@@ -176,7 +179,13 @@ class Connection implements ConnectionInterface, Profiler\ProfilerAwareInterface
         $connection = array_filter($connection); // remove nulls
         $connection = http_build_query($connection, null, ' '); // @link http://php.net/pg_connect
 
+        set_error_handler(function ($number, $string) {
+            throw new Exception\RuntimeException(
+                __METHOD__ . ': Unable to connect to database', null, new Exception\ErrorException($string, $number)
+            );
+        });
         $this->resource = pg_connect($connection);
+        restore_error_handler();
 
         if ($this->resource === false) {
             throw new Exception\RuntimeException(sprintf(
diff --git a/vendor/zendframework/zendframework/library/Zend/Db/Adapter/Driver/Sqlsrv/Connection.php b/vendor/zendframework/zendframework/library/Zend/Db/Adapter/Driver/Sqlsrv/Connection.php
index 7b785d9ebff..2de47273041 100644
--- a/vendor/zendframework/zendframework/library/Zend/Db/Adapter/Driver/Sqlsrv/Connection.php
+++ b/vendor/zendframework/zendframework/library/Zend/Db/Adapter/Driver/Sqlsrv/Connection.php
@@ -147,6 +147,9 @@ class Connection implements ConnectionInterface, Profiler\ProfilerAwareInterface
      */
     public function getResource()
     {
+        if (!$this->isConnected()) {
+            $this->connect();
+        }
         return $this->resource;
     }
 
diff --git a/vendor/zendframework/zendframework/library/Zend/Db/Adapter/Driver/Sqlsrv/Sqlsrv.php b/vendor/zendframework/zendframework/library/Zend/Db/Adapter/Driver/Sqlsrv/Sqlsrv.php
old mode 100755
new mode 100644
diff --git a/vendor/zendframework/zendframework/library/Zend/Db/Adapter/Platform/IbmDb2.php b/vendor/zendframework/zendframework/library/Zend/Db/Adapter/Platform/IbmDb2.php
old mode 100755
new mode 100644
diff --git a/vendor/zendframework/zendframework/library/Zend/Db/Adapter/Platform/Mysql.php b/vendor/zendframework/zendframework/library/Zend/Db/Adapter/Platform/Mysql.php
index b4b6e5568fd..85c3c0b334e 100644
--- a/vendor/zendframework/zendframework/library/Zend/Db/Adapter/Platform/Mysql.php
+++ b/vendor/zendframework/zendframework/library/Zend/Db/Adapter/Platform/Mysql.php
@@ -9,6 +9,7 @@
 
 namespace Zend\Db\Adapter\Platform;
 
+use Zend\Db\Adapter\Driver\DriverInterface;
 use Zend\Db\Adapter\Driver\Mysqli;
 use Zend\Db\Adapter\Driver\Pdo;
 use Zend\Db\Adapter\Exception;
@@ -35,14 +36,7 @@ class Mysql implements PlatformInterface
         // handle Zend_Db drivers
         if ($driver instanceof Mysqli\Mysqli
             || ($driver instanceof Pdo\Pdo && $driver->getDatabasePlatformName() == 'Mysql')
-        ) {
-            /** @var $driver \Zend\Db\Adapter\Driver\DriverInterface */
-            $this->resource = $driver->getConnection()->getResource();
-            return $this;
-        }
-
-        // handle
-        if ($driver instanceof \mysqli
+            || ($driver instanceof \mysqli)
             || ($driver instanceof \PDO && $driver->getAttribute(\PDO::ATTR_DRIVER_NAME) == 'mysql')
         ) {
             $this->resource = $driver;
@@ -116,6 +110,9 @@ class Mysql implements PlatformInterface
      */
     public function quoteValue($value)
     {
+        if ($this->resource instanceof DriverInterface) {
+            $this->resource = $this->resource->getConnection()->getResource();
+        }
         if ($this->resource instanceof \mysqli) {
             return '\'' . $this->resource->real_escape_string($value) . '\'';
         }
@@ -139,6 +136,9 @@ class Mysql implements PlatformInterface
      */
     public function quoteTrustedValue($value)
     {
+        if ($this->resource instanceof DriverInterface) {
+            $this->resource = $this->resource->getConnection()->getResource();
+        }
         if ($this->resource instanceof \mysqli) {
             return '\'' . $this->resource->real_escape_string($value) . '\'';
         }
diff --git a/vendor/zendframework/zendframework/library/Zend/Db/Adapter/Platform/Oracle.php b/vendor/zendframework/zendframework/library/Zend/Db/Adapter/Platform/Oracle.php
old mode 100755
new mode 100644
diff --git a/vendor/zendframework/zendframework/library/Zend/Db/Adapter/Platform/Postgresql.php b/vendor/zendframework/zendframework/library/Zend/Db/Adapter/Platform/Postgresql.php
index 77de31500c1..6e1bc09d890 100644
--- a/vendor/zendframework/zendframework/library/Zend/Db/Adapter/Platform/Postgresql.php
+++ b/vendor/zendframework/zendframework/library/Zend/Db/Adapter/Platform/Postgresql.php
@@ -9,6 +9,7 @@
 
 namespace Zend\Db\Adapter\Platform;
 
+use Zend\Db\Adapter\Driver\DriverInterface;
 use Zend\Db\Adapter\Driver\Pgsql;
 use Zend\Db\Adapter\Driver\Pdo;
 use Zend\Db\Adapter\Exception;
@@ -34,12 +35,7 @@ class Postgresql implements PlatformInterface
     {
         if ($driver instanceof Pgsql\Pgsql
             || ($driver instanceof Pdo\Pdo && $driver->getDatabasePlatformName() == 'Postgresql')
-        ) {
-            $this->resource = $driver->getConnection()->getResource();
-            return $this;
-        }
-
-        if ((is_resource($driver) && (in_array(get_resource_type($driver), array('pgsql link', 'pgsql link persistent'))))
+            || (is_resource($driver) && (in_array(get_resource_type($driver), array('pgsql link', 'pgsql link persistent'))))
             || ($driver instanceof \PDO && $driver->getAttribute(\PDO::ATTR_DRIVER_NAME) == 'pgsql')
         ) {
             $this->resource = $driver;
@@ -113,6 +109,9 @@ class Postgresql implements PlatformInterface
      */
     public function quoteValue($value)
     {
+        if ($this->resource instanceof DriverInterface) {
+            $this->resource = $this->resource->getConnection()->getResource();
+        }
         if (is_resource($this->resource)) {
             return '\'' . pg_escape_string($this->resource, $value) . '\'';
         }
@@ -136,6 +135,9 @@ class Postgresql implements PlatformInterface
      */
     public function quoteTrustedValue($value)
     {
+        if ($this->resource instanceof DriverInterface) {
+            $this->resource = $this->resource->getConnection()->getResource();
+        }
         if (is_resource($this->resource)) {
             return '\'' . pg_escape_string($this->resource, $value) . '\'';
         }
diff --git a/vendor/zendframework/zendframework/library/Zend/Db/Adapter/Platform/SqlServer.php b/vendor/zendframework/zendframework/library/Zend/Db/Adapter/Platform/SqlServer.php
old mode 100755
new mode 100644
index 7924be70c56..56e9cc54ff8
--- a/vendor/zendframework/zendframework/library/Zend/Db/Adapter/Platform/SqlServer.php
+++ b/vendor/zendframework/zendframework/library/Zend/Db/Adapter/Platform/SqlServer.php
@@ -9,7 +9,7 @@
 
 namespace Zend\Db\Adapter\Platform;
 
-use Zend\Db\Adapter\Driver\Sqlsrv;
+use Zend\Db\Adapter\Driver\DriverInterface;
 use Zend\Db\Adapter\Driver\Pdo;
 use Zend\Db\Adapter\Exception;
 
@@ -34,14 +34,9 @@ class SqlServer implements PlatformInterface
     public function setDriver($driver)
     {
         // handle Zend_Db drivers
-        if ($driver instanceof Pdo\Pdo && $driver->getDatabasePlatformName() == 'Sqlsrv') {
-            /** @var $driver \Zend\Db\Adapter\Driver\DriverInterface */
-            $this->resource = $driver->getConnection()->getResource();
-            return $this;
-        }
-
-        // handle
-        if (($driver instanceof \PDO && $driver->getAttribute(\PDO::ATTR_DRIVER_NAME) == 'sqlsrv')) {
+        if (($driver instanceof Pdo\Pdo && $driver->getDatabasePlatformName() == 'Sqlsrv')
+            || (($driver instanceof \PDO && $driver->getAttribute(\PDO::ATTR_DRIVER_NAME) == 'sqlsrv'))
+        ) {
             $this->resource = $driver;
             return $this;
         }
@@ -112,6 +107,9 @@ class SqlServer implements PlatformInterface
      */
     public function quoteValue($value)
     {
+        if ($this->resource instanceof DriverInterface) {
+            $this->resource = $this->resource->getConnection()->getResource();
+        }
         if ($this->resource instanceof \PDO) {
             return $this->resource->quote($value);
         }
@@ -132,6 +130,9 @@ class SqlServer implements PlatformInterface
      */
     public function quoteTrustedValue($value)
     {
+        if ($this->resource instanceof DriverInterface) {
+            $this->resource = $this->resource->getConnection()->getResource();
+        }
         if ($this->resource instanceof \PDO) {
             return $this->resource->quote($value);
         }
diff --git a/vendor/zendframework/zendframework/library/Zend/Db/Adapter/Platform/Sqlite.php b/vendor/zendframework/zendframework/library/Zend/Db/Adapter/Platform/Sqlite.php
index aa0a65427aa..f4dc7697090 100644
--- a/vendor/zendframework/zendframework/library/Zend/Db/Adapter/Platform/Sqlite.php
+++ b/vendor/zendframework/zendframework/library/Zend/Db/Adapter/Platform/Sqlite.php
@@ -9,6 +9,7 @@
 
 namespace Zend\Db\Adapter\Platform;
 
+use Zend\Db\Adapter\Driver\DriverInterface;
 use Zend\Db\Adapter\Driver\Pdo;
 use Zend\Db\Adapter\Exception;
 
@@ -32,16 +33,13 @@ class Sqlite implements PlatformInterface
      */
     public function setDriver($driver)
     {
-        if ($driver instanceof \PDO && $driver->getAttribute(\PDO::ATTR_DRIVER_NAME) == 'sqlite') {
+        if (($driver instanceof \PDO && $driver->getAttribute(\PDO::ATTR_DRIVER_NAME) == 'sqlite')
+            || ($driver instanceof Pdo\Pdo && $driver->getDatabasePlatformName() == 'Sqlite')
+        ) {
             $this->resource = $driver;
             return $this;
         }
 
-        if ($driver instanceof Pdo\Pdo && $driver->getDatabasePlatformName() == 'Sqlite') {
-            $this->resource = $driver->getConnection()->getResource();
-            return $this;
-        }
-
         throw new Exception\InvalidArgumentException('$driver must be a Sqlite PDO Zend\Db\Adapter\Driver, Sqlite PDO instance');
     }
 
@@ -109,6 +107,9 @@ class Sqlite implements PlatformInterface
      */
     public function quoteValue($value)
     {
+        if ($this->resource instanceof DriverInterface) {
+            $this->resource = $this->resource->getConnection()->getResource();
+        }
         if ($this->resource instanceof \PDO) {
             return $this->resource->quote($value);
         }
@@ -129,6 +130,9 @@ class Sqlite implements PlatformInterface
      */
     public function quoteTrustedValue($value)
     {
+        if ($this->resource instanceof DriverInterface) {
+            $this->resource = $this->resource->getConnection()->getResource();
+        }
         if ($this->resource instanceof \PDO) {
             return $this->resource->quote($value);
         }
diff --git a/vendor/zendframework/zendframework/library/Zend/Db/Metadata/Source/AbstractSource.php b/vendor/zendframework/zendframework/library/Zend/Db/Metadata/Source/AbstractSource.php
index 2b37c95fb7b..9e6c614b7f0 100644
--- a/vendor/zendframework/zendframework/library/Zend/Db/Metadata/Source/AbstractSource.php
+++ b/vendor/zendframework/zendframework/library/Zend/Db/Metadata/Source/AbstractSource.php
@@ -380,7 +380,7 @@ abstract class AbstractSource implements MetadataInterface
             $schema = $this->defaultSchema;
         }
 
-        $this->loadConstraintData($table, $schema);
+        $this->loadConstraintReferences($table, $schema);
 
         // organize references first
         $references = array();
@@ -390,6 +390,8 @@ abstract class AbstractSource implements MetadataInterface
             }
         }
 
+        $this->loadConstraintDataKeys($schema);
+
         $keys = array();
         foreach ($this->data['constraint_keys'][$schema] as $constraintKeyInfo) {
             if ($constraintKeyInfo['table_name'] == $table && $constraintKeyInfo['constraint_name'] === $constraint) {
@@ -504,10 +506,18 @@ abstract class AbstractSource implements MetadataInterface
         }
     }
 
+    /**
+     * Load schema data
+     */
     protected function loadSchemaData()
     {
     }
 
+    /**
+     * Load table name data
+     *
+     * @param string $schema
+     */
     protected function loadTableNameData($schema)
     {
         if (isset($this->data['table_names'][$schema])) {
@@ -517,6 +527,12 @@ abstract class AbstractSource implements MetadataInterface
         $this->prepareDataHierarchy('table_names', $schema);
     }
 
+    /**
+     * Load column data
+     *
+     * @param string $table
+     * @param string $schema
+     */
     protected function loadColumnData($table, $schema)
     {
         if (isset($this->data['columns'][$schema][$table])) {
@@ -526,6 +542,12 @@ abstract class AbstractSource implements MetadataInterface
         $this->prepareDataHierarchy('columns', $schema, $table);
     }
 
+    /**
+     * Load constraint data
+     *
+     * @param string $table
+     * @param string $schema
+     */
     protected function loadConstraintData($table, $schema)
     {
         if (isset($this->data['constraints'][$schema])) {
@@ -535,6 +557,40 @@ abstract class AbstractSource implements MetadataInterface
         $this->prepareDataHierarchy('constraints', $schema);
     }
 
+    /**
+     * Load constraint data keys
+     *
+     * @param string $schema
+     */
+    protected function loadConstraintDataKeys($schema)
+    {
+        if (isset($this->data['constraint_keys'][$schema])) {
+            return;
+        }
+
+        $this->prepareDataHierarchy('constraint_keys', $schema);
+    }
+
+    /**
+     * Load constraint references
+     *
+     * @param string $table
+     * @param string $schema
+     */
+    protected function loadConstraintReferences($table, $schema)
+    {
+        if (isset($this->data['constraint_references'][$schema])) {
+            return;
+        }
+
+        $this->prepareDataHierarchy('constraint_references', $schema);
+    }
+
+    /**
+     * Load trigger data
+     *
+     * @param string $schema
+     */
     protected function loadTriggerData($schema)
     {
         if (isset($this->data['triggers'][$schema])) {
diff --git a/vendor/zendframework/zendframework/library/Zend/Db/Metadata/Source/MysqlMetadata.php b/vendor/zendframework/zendframework/library/Zend/Db/Metadata/Source/MysqlMetadata.php
index 76f0cdd14ab..de5f366e31b 100644
--- a/vendor/zendframework/zendframework/library/Zend/Db/Metadata/Source/MysqlMetadata.php
+++ b/vendor/zendframework/zendframework/library/Zend/Db/Metadata/Source/MysqlMetadata.php
@@ -25,7 +25,7 @@ class MysqlMetadata extends AbstractSource
         $sql = 'SELECT ' . $p->quoteIdentifier('SCHEMA_NAME')
              . ' FROM ' . $p->quoteIdentifierChain(array('INFORMATION_SCHEMA', 'SCHEMATA'))
              . ' WHERE ' . $p->quoteIdentifier('SCHEMA_NAME')
-             . ' != ' . $p->quoteValue('INFORMATION_SCHEMA');
+             . ' != \'INFORMATION_SCHEMA\'';
 
         $results = $this->adapter->query($sql, Adapter::QUERY_MODE_EXECUTE);
 
@@ -66,14 +66,14 @@ class MysqlMetadata extends AbstractSource
              . '  = ' . $p->quoteIdentifierChain(array('V','TABLE_NAME'))
 
              . ' WHERE ' . $p->quoteIdentifierChain(array('T','TABLE_TYPE'))
-             . ' IN (' . $p->quoteValueList(array('BASE TABLE', 'VIEW')) . ')';
+             . ' IN (\'BASE TABLE\', \'VIEW\')';
 
         if ($schema != self::DEFAULT_SCHEMA) {
             $sql .= ' AND ' . $p->quoteIdentifierChain(array('T','TABLE_SCHEMA'))
-                  . ' = ' . $p->quoteValue($schema);
+                  . ' = ' . $p->quoteTrustedValue($schema);
         } else {
             $sql .= ' AND ' . $p->quoteIdentifierChain(array('T','TABLE_SCHEMA'))
-                  . ' != ' . $p->quoteValue('INFORMATION_SCHEMA');
+                  . ' != \'INFORMATION_SCHEMA\'';
         }
 
         $results = $this->adapter->query($sql, Adapter::QUERY_MODE_EXECUTE);
@@ -122,16 +122,16 @@ class MysqlMetadata extends AbstractSource
              . ' AND ' . $p->quoteIdentifierChain(array('T','TABLE_NAME'))
              . '  = ' . $p->quoteIdentifierChain(array('C','TABLE_NAME'))
              . ' WHERE ' . $p->quoteIdentifierChain(array('T','TABLE_TYPE'))
-             . ' IN (' . $p->quoteValueList(array('BASE TABLE', 'VIEW')) . ')'
+             . ' IN (\'BASE TABLE\', \'VIEW\')'
              . ' AND ' . $p->quoteIdentifierChain(array('T','TABLE_NAME'))
-             . '  = ' . $p->quoteValue($table);
+             . '  = ' . $p->quoteTrustedValue($table);
 
         if ($schema != self::DEFAULT_SCHEMA) {
             $sql .= ' AND ' . $p->quoteIdentifierChain(array('T','TABLE_SCHEMA'))
-                  . ' = ' . $p->quoteValue($schema);
+                  . ' = ' . $p->quoteTrustedValue($schema);
         } else {
             $sql .= ' AND ' . $p->quoteIdentifierChain(array('T','TABLE_SCHEMA'))
-                  . ' != ' . $p->quoteValue('INFORMATION_SCHEMA');
+                  . ' != \'INFORMATION_SCHEMA\'';
         }
 
         $results = $this->adapter->query($sql, Adapter::QUERY_MODE_EXECUTE);
@@ -216,16 +216,16 @@ class MysqlMetadata extends AbstractSource
              . '  = ' . $p->quoteIdentifierChain(array('RC','CONSTRAINT_NAME'))
 
              . ' WHERE ' . $p->quoteIdentifierChain(array('T','TABLE_NAME'))
-             . ' = ' . $p->quoteValue($table)
+             . ' = ' . $p->quoteTrustedValue($table)
              . ' AND ' . $p->quoteIdentifierChain(array('T','TABLE_TYPE'))
-             . ' IN (' . $p->quoteValueList(array('BASE TABLE', 'VIEW')) . ')';
+             . ' IN (\'BASE TABLE\', \'VIEW\')';
 
         if ($schema != self::DEFAULT_SCHEMA) {
             $sql .= ' AND ' . $p->quoteIdentifierChain(array('T','TABLE_SCHEMA'))
-            . ' = ' . $p->quoteValue($schema);
+            . ' = ' . $p->quoteTrustedValue($schema);
         } else {
             $sql .= ' AND ' . $p->quoteIdentifierChain(array('T','TABLE_SCHEMA'))
-            . ' != ' . $p->quoteValue('INFORMATION_SCHEMA');
+            . ' != \'INFORMATION_SCHEMA\'';
         }
 
         $sql .= ' ORDER BY CASE ' . $p->quoteIdentifierChain(array('TC','CONSTRAINT_TYPE'))
@@ -302,14 +302,14 @@ class MysqlMetadata extends AbstractSource
         . ' AND ' . $p->quoteIdentifierChain(array('T','TABLE_NAME'))
         . '  = ' . $p->quoteIdentifierChain(array('TC','TABLE_NAME'))
         . ' WHERE ' . $p->quoteIdentifierChain(array('T','TABLE_TYPE'))
-        . ' IN (' . $p->quoteValueList(array('BASE TABLE', 'VIEW')) . ')';
+        . ' IN (\'BASE TABLE\', \'VIEW\')';
 
         if ($schema != self::DEFAULT_SCHEMA) {
             $sql .= ' AND ' . $p->quoteIdentifierChain(array('T','TABLE_SCHEMA'))
-            . ' = ' . $p->quoteValue($schema);
+            . ' = ' . $p->quoteTrustedValue($schema);
         } else {
             $sql .= ' AND ' . $p->quoteIdentifierChain(array('T','TABLE_SCHEMA'))
-            . ' != ' . $p->quoteValue('INFORMATION_SCHEMA');
+            . ' != \'INFORMATION_SCHEMA\'';
         }
 
         $results = $this->adapter->query($sql, Adapter::QUERY_MODE_EXECUTE);
@@ -353,14 +353,14 @@ class MysqlMetadata extends AbstractSource
         . '  = ' . $p->quoteIdentifierChain(array('KCU','TABLE_NAME'))
 
         . ' WHERE ' . $p->quoteIdentifierChain(array('T','TABLE_TYPE'))
-        . ' IN (' . $p->quoteValueList(array('BASE TABLE', 'VIEW')) . ')';
+        . ' IN (\'BASE TABLE\', \'VIEW\')';
 
         if ($schema != self::DEFAULT_SCHEMA) {
             $sql .= ' AND ' . $p->quoteIdentifierChain(array('T','TABLE_SCHEMA'))
-            . ' = ' . $p->quoteValue($schema);
+            . ' = ' . $p->quoteTrustedValue($schema);
         } else {
             $sql .= ' AND ' . $p->quoteIdentifierChain(array('T','TABLE_SCHEMA'))
-            . ' != ' . $p->quoteValue('INFORMATION_SCHEMA');
+            . ' != \'INFORMATION_SCHEMA\'';
         }
 
         $results = $this->adapter->query($sql, Adapter::QUERY_MODE_EXECUTE);
@@ -415,14 +415,14 @@ class MysqlMetadata extends AbstractSource
         . '  = ' . $p->quoteIdentifierChain(array('KCU','CONSTRAINT_NAME'))
 
         . 'WHERE ' . $p->quoteIdentifierChain(array('T','TABLE_TYPE'))
-        . ' IN (' . $p->quoteValueList(array('BASE TABLE', 'VIEW')) . ')';
+        . ' IN (\'BASE TABLE\', \'VIEW\')';
 
         if ($schema != self::DEFAULT_SCHEMA) {
             $sql .= ' AND ' . $p->quoteIdentifierChain(array('T','TABLE_SCHEMA'))
-            . ' = ' . $p->quoteValue($schema);
+            . ' = ' . $p->quoteTrustedValue($schema);
         } else {
             $sql .= ' AND ' . $p->quoteIdentifierChain(array('T','TABLE_SCHEMA'))
-            . ' != ' . $p->quoteValue('INFORMATION_SCHEMA');
+            . ' != \'INFORMATION_SCHEMA\'';
         }
 
         $results = $this->adapter->query($sql, Adapter::QUERY_MODE_EXECUTE);
@@ -475,10 +475,10 @@ class MysqlMetadata extends AbstractSource
 
         if ($schema != self::DEFAULT_SCHEMA) {
             $sql .= $p->quoteIdentifier('TRIGGER_SCHEMA')
-            . ' = ' . $p->quoteValue($schema);
+            . ' = ' . $p->quoteTrustedValue($schema);
         } else {
             $sql .= $p->quoteIdentifier('TRIGGER_SCHEMA')
-            . ' != ' . $p->quoteValue('INFORMATION_SCHEMA');
+            . ' != \'INFORMATION_SCHEMA\'';
         }
 
         $results = $this->adapter->query($sql, Adapter::QUERY_MODE_EXECUTE);
diff --git a/vendor/zendframework/zendframework/library/Zend/Db/Metadata/Source/PostgresqlMetadata.php b/vendor/zendframework/zendframework/library/Zend/Db/Metadata/Source/PostgresqlMetadata.php
index b7b583adef3..b52b39048c2 100644
--- a/vendor/zendframework/zendframework/library/Zend/Db/Metadata/Source/PostgresqlMetadata.php
+++ b/vendor/zendframework/zendframework/library/Zend/Db/Metadata/Source/PostgresqlMetadata.php
@@ -26,7 +26,7 @@ class PostgresqlMetadata extends AbstractSource
         $sql = 'SELECT ' . $p->quoteIdentifier('schema_name')
             . ' FROM ' . $p->quoteIdentifierChain(array('information_schema', 'schemata'))
             . ' WHERE ' . $p->quoteIdentifier('schema_name')
-            . ' != ' . $p->quoteValue('information_schema')
+            . ' != \'information_schema\''
             . ' AND ' . $p->quoteIdentifier('schema_name') . " NOT LIKE 'pg_%'";
 
         $results = $this->adapter->query($sql, Adapter::QUERY_MODE_EXECUTE);
@@ -68,14 +68,14 @@ class PostgresqlMetadata extends AbstractSource
             . '  = ' . $p->quoteIdentifierChain(array('v','table_name'))
 
             . ' WHERE ' . $p->quoteIdentifierChain(array('t','table_type'))
-            . ' IN (' . $p->quoteValueList(array('BASE TABLE', 'VIEW')) . ')';
+            . ' IN (\'BASE TABLE\', \'VIEW\')';
 
         if ($schema != self::DEFAULT_SCHEMA) {
             $sql .= ' AND ' . $p->quoteIdentifierChain(array('t','table_schema'))
-                . ' = ' . $p->quoteValue($schema);
+                . ' = ' . $p->quoteTrustedValue($schema);
         } else {
             $sql .= ' AND ' . $p->quoteIdentifierChain(array('t','table_schema'))
-                . ' != ' . $p->quoteValue('information_schema');
+                . ' != \'information_schema\'';
         }
 
         $results = $this->adapter->query($sql, Adapter::QUERY_MODE_EXECUTE);
@@ -122,13 +122,13 @@ class PostgresqlMetadata extends AbstractSource
             . ' FROM ' . $platform->quoteIdentifier('information_schema')
             . $platform->getIdentifierSeparator() . $platform->quoteIdentifier('columns')
             . ' WHERE ' . $platform->quoteIdentifier('table_schema')
-            . ' != ' . $platform->quoteValue('information')
+            . ' != \'information\''
             . ' AND ' . $platform->quoteIdentifier('table_name')
-            . ' = ' . $platform->quoteValue($table);
+            . ' = ' . $platform->quoteTrustedValue($table);
 
         if ($schema != '__DEFAULT_SCHEMA__') {
             $sql .= ' AND ' . $platform->quoteIdentifier('table_schema')
-                . ' = ' . $platform->quoteValue($schema);
+                . ' = ' . $platform->quoteTrustedValue($schema);
         }
 
         $results = $this->adapter->query($sql, Adapter::QUERY_MODE_EXECUTE);
@@ -221,16 +221,16 @@ class PostgresqlMetadata extends AbstractSource
              . '  = ' . $p->quoteIdentifierChain(array('kcu2','ordinal_position'))
 
              . ' WHERE ' . $p->quoteIdentifierChain(array('t','table_name'))
-             . ' = ' . $p->quoteValue($table)
+             . ' = ' . $p->quoteTrustedValue($table)
              . ' AND ' . $p->quoteIdentifierChain(array('t','table_type'))
-             . ' IN (' . $p->quoteValueList(array('BASE TABLE', 'VIEW')) . ')';
+             . ' IN (\'BASE TABLE\', \'VIEW\')';
 
         if ($schema != self::DEFAULT_SCHEMA) {
             $sql .= ' AND ' . $p->quoteIdentifierChain(array('t','table_schema'))
-            . ' = ' . $p->quoteValue($schema);
+            . ' = ' . $p->quoteTrustedValue($schema);
         } else {
             $sql .= ' AND ' . $p->quoteIdentifierChain(array('t','table_schema'))
-            . ' != ' . $p->quoteValue('information_schema');
+            . ' != \'information_schema\'';
         }
 
         $sql .= ' ORDER BY CASE ' . $p->quoteIdentifierChain(array('tc','constraint_type'))
@@ -322,10 +322,10 @@ class PostgresqlMetadata extends AbstractSource
 
         if ($schema != self::DEFAULT_SCHEMA) {
             $sql .= $p->quoteIdentifier('trigger_schema')
-                . ' = ' . $p->quoteValue($schema);
+                . ' = ' . $p->quoteTrustedValue($schema);
         } else {
             $sql .= $p->quoteIdentifier('trigger_schema')
-                . ' != ' . $p->quoteValue('information_schema');
+                . ' != \'information_schema\'';
         }
 
         $results = $this->adapter->query($sql, Adapter::QUERY_MODE_EXECUTE);
diff --git a/vendor/zendframework/zendframework/library/Zend/Db/Metadata/Source/SqlServerMetadata.php b/vendor/zendframework/zendframework/library/Zend/Db/Metadata/Source/SqlServerMetadata.php
index a24287bd26b..c890d8f9db5 100644
--- a/vendor/zendframework/zendframework/library/Zend/Db/Metadata/Source/SqlServerMetadata.php
+++ b/vendor/zendframework/zendframework/library/Zend/Db/Metadata/Source/SqlServerMetadata.php
@@ -27,7 +27,7 @@ class SqlServerMetadata extends AbstractSource
         $sql = 'SELECT ' . $p->quoteIdentifier('SCHEMA_NAME')
             . ' FROM ' . $p->quoteIdentifierChain(array('INFORMATION_SCHEMA', 'SCHEMATA'))
             . ' WHERE ' . $p->quoteIdentifier('SCHEMA_NAME')
-            . ' != ' . $p->quoteValue('INFORMATION_SCHEMA');
+            . ' != \'INFORMATION_SCHEMA\'';
 
         $results = $this->adapter->query($sql, Adapter::QUERY_MODE_EXECUTE);
 
@@ -68,14 +68,14 @@ class SqlServerMetadata extends AbstractSource
             . '  = ' . $p->quoteIdentifierChain(array('V','TABLE_NAME'))
 
             . ' WHERE ' . $p->quoteIdentifierChain(array('T','TABLE_TYPE'))
-            . ' IN (' . $p->quoteValueList(array('BASE TABLE', 'VIEW')) . ')';
+            . ' IN (\'BASE TABLE\', \'VIEW\')';
 
         if ($schema != self::DEFAULT_SCHEMA) {
             $sql .= ' AND ' . $p->quoteIdentifierChain(array('T','TABLE_SCHEMA'))
-                . ' = ' . $p->quoteValue($schema);
+                . ' = ' . $p->quoteTrustedValue($schema);
         } else {
             $sql .= ' AND ' . $p->quoteIdentifierChain(array('T','TABLE_SCHEMA'))
-                . ' != ' . $p->quoteValue('INFORMATION_SCHEMA');
+                . ' != \'INFORMATION_SCHEMA\'';
         }
 
         $results = $this->adapter->query($sql, Adapter::QUERY_MODE_EXECUTE);
@@ -123,16 +123,16 @@ class SqlServerMetadata extends AbstractSource
             . ' AND ' . $p->quoteIdentifierChain(array('T','TABLE_NAME'))
             . '  = ' . $p->quoteIdentifierChain(array('C','TABLE_NAME'))
             . ' WHERE ' . $p->quoteIdentifierChain(array('T','TABLE_TYPE'))
-            . ' IN (' . $p->quoteValueList(array('BASE TABLE', 'VIEW')) . ')'
+            . ' IN (\'BASE TABLE\', \'VIEW\')'
             . ' AND ' . $p->quoteIdentifierChain(array('T','TABLE_NAME'))
-            . '  = ' . $p->quoteValue($table);
+            . '  = ' . $p->quoteTrustedValue($table);
 
         if ($schema != self::DEFAULT_SCHEMA) {
             $sql .= ' AND ' . $p->quoteIdentifierChain(array('T','TABLE_SCHEMA'))
-                . ' = ' . $p->quoteValue($schema);
+                . ' = ' . $p->quoteTrustedValue($schema);
         } else {
             $sql .= ' AND ' . $p->quoteIdentifierChain(array('T','TABLE_SCHEMA'))
-                . ' != ' . $p->quoteValue('INFORMATION_SCHEMA');
+                . ' != \'INFORMATION_SCHEMA\'';
         }
 
         $results = $this->adapter->query($sql, Adapter::QUERY_MODE_EXECUTE);
@@ -225,16 +225,16 @@ class SqlServerMetadata extends AbstractSource
              . '  = ' . $p->quoteIdentifierChain(array('KCU2','ORDINAL_POSITION'))
 
              . ' WHERE ' . $p->quoteIdentifierChain(array('T','TABLE_NAME'))
-             . ' = ' . $p->quoteValue($table)
+             . ' = ' . $p->quoteTrustedValue($table)
              . ' AND ' . $p->quoteIdentifierChain(array('T','TABLE_TYPE'))
-             . ' IN (' . $p->quoteValueList(array('BASE TABLE', 'VIEW')) . ')';
+             . ' IN (\'BASE TABLE\', \'VIEW\')';
 
         if ($schema != self::DEFAULT_SCHEMA) {
             $sql .= ' AND ' . $p->quoteIdentifierChain(array('T','TABLE_SCHEMA'))
-            . ' = ' . $p->quoteValue($schema);
+            . ' = ' . $p->quoteTrustedValue($schema);
         } else {
             $sql .= ' AND ' . $p->quoteIdentifierChain(array('T','TABLE_SCHEMA'))
-            . ' != ' . $p->quoteValue('INFORMATION_SCHEMA');
+            . ' != \'INFORMATION_SCHEMA\'';
         }
 
         $sql .= ' ORDER BY CASE ' . $p->quoteIdentifierChain(array('TC','CONSTRAINT_TYPE'))
@@ -321,10 +321,10 @@ class SqlServerMetadata extends AbstractSource
 
         if ($schema != self::DEFAULT_SCHEMA) {
             $sql .= $p->quoteIdentifier('TRIGGER_SCHEMA')
-                . ' = ' . $p->quoteValue($schema);
+                . ' = ' . $p->quoteTrustedValue($schema);
         } else {
             $sql .= $p->quoteIdentifier('TRIGGER_SCHEMA')
-                . ' != ' . $p->quoteValue('INFORMATION_SCHEMA');
+                . ' != \'INFORMATION_SCHEMA\'';
         }
 
         $results = $this->adapter->query($sql, Adapter::QUERY_MODE_EXECUTE);
diff --git a/vendor/zendframework/zendframework/library/Zend/Db/Metadata/Source/SqliteMetadata.php b/vendor/zendframework/zendframework/library/Zend/Db/Metadata/Source/SqliteMetadata.php
index 0a47ec125ab..aa7e5e0d510 100644
--- a/vendor/zendframework/zendframework/library/Zend/Db/Metadata/Source/SqliteMetadata.php
+++ b/vendor/zendframework/zendframework/library/Zend/Db/Metadata/Source/SqliteMetadata.php
@@ -246,7 +246,7 @@ class SqliteMetadata extends AbstractSource
         $sql .= $name;
 
         if (null !== $value) {
-            $sql .= '(' . $p->quoteValue($value) . ')';
+            $sql .= '(' . $p->quoteTrustedValue($value) . ')';
         }
 
         $results = $this->adapter->query($sql, Adapter::QUERY_MODE_EXECUTE);
diff --git a/vendor/zendframework/zendframework/library/Zend/Db/RowGateway/Feature/AbstractFeature.php b/vendor/zendframework/zendframework/library/Zend/Db/RowGateway/Feature/AbstractFeature.php
index 9ab091448a5..0bb91a66633 100644
--- a/vendor/zendframework/zendframework/library/Zend/Db/RowGateway/Feature/AbstractFeature.php
+++ b/vendor/zendframework/zendframework/library/Zend/Db/RowGateway/Feature/AbstractFeature.php
@@ -30,7 +30,7 @@ abstract class AbstractFeature extends AbstractRowGateway
      */
     public function getName()
     {
-        return get_called_class();
+        return get_class($this);
     }
 
     /**
diff --git a/vendor/zendframework/zendframework/library/Zend/Db/Sql/Platform/Oracle/Oracle.php b/vendor/zendframework/zendframework/library/Zend/Db/Sql/Platform/Oracle/Oracle.php
old mode 100755
new mode 100644
diff --git a/vendor/zendframework/zendframework/library/Zend/Db/Sql/Platform/Oracle/SelectDecorator.php b/vendor/zendframework/zendframework/library/Zend/Db/Sql/Platform/Oracle/SelectDecorator.php
old mode 100755
new mode 100644
index e941fab8433..4e03456e536
--- a/vendor/zendframework/zendframework/library/Zend/Db/Sql/Platform/Oracle/SelectDecorator.php
+++ b/vendor/zendframework/zendframework/library/Zend/Db/Sql/Platform/Oracle/SelectDecorator.php
@@ -35,6 +35,14 @@ class SelectDecorator extends Select implements PlatformDecoratorInterface
     }
 
     /**
+     * @see \Zend\Db\Sql\Select::renderTable
+     */
+    protected function renderTable($table, $alias = null)
+    {
+        return $table . ' ' . $alias;
+    }
+
+	/**
      * @param AdapterInterface $adapter
      * @param StatementContainerInterface $statementContainer
      */
diff --git a/vendor/zendframework/zendframework/library/Zend/Db/Sql/Select.php b/vendor/zendframework/zendframework/library/Zend/Db/Sql/Select.php
index 9e87ba4a301..869fe70f161 100644
--- a/vendor/zendframework/zendframework/library/Zend/Db/Sql/Select.php
+++ b/vendor/zendframework/zendframework/library/Zend/Db/Sql/Select.php
@@ -306,7 +306,7 @@ class Select extends AbstractSql implements SqlInterface, PreparableSqlInterface
                             $predicate = new Predicate\Operator($pkey, Predicate\Operator::OP_EQ, $pvalue);
                         }
                     } elseif ($pvalue instanceof Predicate\PredicateInterface) {
-                        // Predicate type is ok
+                        // Predicate type is ok
                         $predicate = $pvalue;
                     } else {
                         // must be an array of expressions (with int-indexed array)
@@ -552,6 +552,31 @@ class Select extends AbstractSql implements SqlInterface, PreparableSqlInterface
         return $this->tableReadOnly;
     }
 
+    /**
+     * Render table with alias in from/join parts
+     *
+     * @todo move TableIdentifier concatination here
+     * @param string $table
+     * @param string $alias
+     * @return string
+     */
+    protected function renderTable($table, $alias = null)
+    {
+        $sql = $table;
+        if ($alias) {
+            $sql .= ' AS ' . $alias;
+        }
+        return $sql;
+    }
+
+    /**
+     * Process the select part
+     *
+     * @param PlatformInterface $platform
+     * @param DriverInterface $driver
+     * @param ParameterContainer $parameterContainer
+     * @return null|array
+     */
     protected function processSelect(PlatformInterface $platform, DriverInterface $driver = null, ParameterContainer $parameterContainer = null)
     {
         $expr = 1;
@@ -585,7 +610,7 @@ class Select extends AbstractSql implements SqlInterface, PreparableSqlInterface
 
         if ($alias) {
             $fromTable = $platform->quoteIdentifier($alias);
-            $table .= ' AS ' . $fromTable;
+            $table = $this->renderTable($table, $fromTable);
         } else {
             $fromTable = $table;
         }
diff --git a/vendor/zendframework/zendframework/library/Zend/Db/TableGateway/Feature/AbstractFeature.php b/vendor/zendframework/zendframework/library/Zend/Db/TableGateway/Feature/AbstractFeature.php
index d22a7fb1035..4d9503e503b 100644
--- a/vendor/zendframework/zendframework/library/Zend/Db/TableGateway/Feature/AbstractFeature.php
+++ b/vendor/zendframework/zendframework/library/Zend/Db/TableGateway/Feature/AbstractFeature.php
@@ -24,7 +24,7 @@ abstract class AbstractFeature extends AbstractTableGateway
 
     public function getName()
     {
-        return get_called_class();
+        return get_class($this);
     }
 
     public function setTableGateway(AbstractTableGateway $tableGateway)
diff --git a/vendor/zendframework/zendframework/library/Zend/Db/TableGateway/Feature/SequenceFeature.php b/vendor/zendframework/zendframework/library/Zend/Db/TableGateway/Feature/SequenceFeature.php
index da4b310dbfa..1122ccfe02d 100644
--- a/vendor/zendframework/zendframework/library/Zend/Db/TableGateway/Feature/SequenceFeature.php
+++ b/vendor/zendframework/zendframework/library/Zend/Db/TableGateway/Feature/SequenceFeature.php
@@ -41,7 +41,9 @@ class SequenceFeature extends AbstractFeature
         $this->sequenceName    = $sequenceName;
     }
 
-
+    /**
+     * @param  Insert $insert
+     */
     public function preInsert(Insert $insert)
     {
         $columns = $insert->getRawState('columns');
@@ -53,20 +55,19 @@ class SequenceFeature extends AbstractFeature
         }
 
         $this->sequenceValue = $this->nextSequenceId();
-        if ($this->sequenceValue === null)
+        if ($this->sequenceValue === null) {
             return $insert;
+        }
 
-        array_push($columns, $this->primaryKeyField);
-        array_push($values, $this->sequenceValue);
-        $insert->columns($columns);
-        $insert->values($values);
+        $insert->values(array($this->primaryKeyField => $this->sequenceValue),  Insert::VALUES_MERGE);
         return $insert;
     }
 
     public function postInsert(StatementInterface $statement, ResultInterface $result)
     {
-        if ($this->sequenceValue !== null)
+        if ($this->sequenceValue !== null) {
             $this->tableGateway->lastInsertValue = $this->sequenceValue;
+        }
     }
 
     /**
@@ -78,7 +79,6 @@ class SequenceFeature extends AbstractFeature
         $platform = $this->tableGateway->adapter->getPlatform();
         $platformName = $platform->getName();
 
-        $sql = '';
         switch ($platformName) {
             case 'Oracle':
                 $sql = 'SELECT ' . $platform->quoteIdentifier($this->sequenceName) . '.NEXTVAL FROM dual';
@@ -93,7 +93,7 @@ class SequenceFeature extends AbstractFeature
         $statement = $this->tableGateway->adapter->createStatement();
         $statement->prepare($sql);
         $result = $statement->execute();
-        $sequence = $result->getResource()->fetch(\PDO::FETCH_ASSOC);
+        $sequence = $result->current();
         unset($statement, $result);
         return $sequence['nextval'];
     }
@@ -107,7 +107,6 @@ class SequenceFeature extends AbstractFeature
         $platform = $this->tableGateway->adapter->getPlatform();
         $platformName = $platform->getName();
 
-        $sql = '';
         switch ($platformName) {
             case 'Oracle':
                 $sql = 'SELECT ' . $platform->quoteIdentifier($this->sequenceName) . '.CURRVAL FROM dual';
@@ -122,7 +121,7 @@ class SequenceFeature extends AbstractFeature
         $statement = $this->tableGateway->adapter->createStatement();
         $statement->prepare($sql);
         $result = $statement->execute();
-        $sequence = $result->getResource()->fetch(\PDO::FETCH_ASSOC);
+        $sequence = $result->current();
         unset($statement, $result);
         return $sequence['currval'];
     }
diff --git a/vendor/zendframework/zendframework/library/Zend/Db/composer.json b/vendor/zendframework/zendframework/library/Zend/Db/composer.json
old mode 100755
new mode 100644
diff --git a/vendor/zendframework/zendframework/library/Zend/Escaper/Escaper.php b/vendor/zendframework/zendframework/library/Zend/Escaper/Escaper.php
index d67db32cd98..91a51404806 100644
--- a/vendor/zendframework/zendframework/library/Zend/Escaper/Escaper.php
+++ b/vendor/zendframework/zendframework/library/Zend/Escaper/Escaper.php
@@ -103,14 +103,14 @@ class Escaper
             $encoding = (string) $encoding;
             if ($encoding === '') {
                 throw new Exception\InvalidArgumentException(
-                    get_called_class() . ' constructor parameter does not allow a blank value'
+                    get_class($this) . ' constructor parameter does not allow a blank value'
                 );
             }
 
             $encoding = strtolower($encoding);
             if (!in_array($encoding, $this->supportedEncodings)) {
                 throw new Exception\InvalidArgumentException(
-                    'Value of \'' . $encoding . '\' passed to ' . get_called_class()
+                    'Value of \'' . $encoding . '\' passed to ' . get_class($this)
                     . ' constructor parameter is invalid. Provide an encoding supported by htmlspecialchars()'
                 );
             }
@@ -376,7 +376,7 @@ class Escaper
             $result = mb_convert_encoding($string, $to, $from);
         } else {
             throw new Exception\RuntimeException(
-                get_called_class()
+                get_class($this)
                 . ' requires either the iconv or mbstring extension to be installed'
                 . ' when escaping for non UTF-8 strings.'
             );
diff --git a/vendor/zendframework/zendframework/library/Zend/EventManager/EventManager.php b/vendor/zendframework/zendframework/library/Zend/EventManager/EventManager.php
index f5d1597b7f7..3f4c58fc7bb 100644
--- a/vendor/zendframework/zendframework/library/Zend/EventManager/EventManager.php
+++ b/vendor/zendframework/zendframework/library/Zend/EventManager/EventManager.php
@@ -157,7 +157,7 @@ class EventManager implements EventManagerInterface
     public function addIdentifiers($identifiers)
     {
         if (is_array($identifiers) || $identifiers instanceof Traversable) {
-            $this->identifiers = array_unique($this->identifiers + (array) $identifiers);
+            $this->identifiers = array_unique(array_merge($this->identifiers, (array) $identifiers));
         } elseif ($identifiers !== null) {
             $this->identifiers = array_unique(array_merge($this->identifiers, array($identifiers)));
         }
@@ -201,6 +201,9 @@ class EventManager implements EventManagerInterface
             throw new Exception\InvalidCallbackException('Invalid callback provided');
         }
 
+        // Initial value of stop propagation flag should be false
+        $e->stopPropagation(false);
+
         return $this->triggerListeners($event, $e, $callback);
     }
 
@@ -243,6 +246,9 @@ class EventManager implements EventManagerInterface
             throw new Exception\InvalidCallbackException('Invalid callback provided');
         }
 
+        // Initial value of stop propagation flag should be false
+        $e->stopPropagation(false);
+
         return $this->triggerListeners($event, $e, $callback);
     }
 
@@ -455,9 +461,15 @@ class EventManager implements EventManagerInterface
         }
 
         foreach ($listeners as $listener) {
+            $listenerCallback = $listener->getCallback();
+            if (!$listenerCallback) {
+                $this->detach($listener);
+                continue;
+            }
+
             // Trigger the listener's callback, and push its result onto the
             // response collection
-            $responses->push(call_user_func($listener->getCallback(), $e));
+            $responses->push(call_user_func($listenerCallback, $e));
 
             // If the event was asked to stop propagating, do so
             if ($e->propagationIsStopped()) {
diff --git a/vendor/zendframework/zendframework/library/Zend/EventManager/ProvidesEvents.php b/vendor/zendframework/zendframework/library/Zend/EventManager/ProvidesEvents.php
index 560e97a7333..ea46333a1f4 100644
--- a/vendor/zendframework/zendframework/library/Zend/EventManager/ProvidesEvents.php
+++ b/vendor/zendframework/zendframework/library/Zend/EventManager/ProvidesEvents.php
@@ -29,7 +29,7 @@ trait ProvidesEvents
      */
     public function setEventManager(EventManagerInterface $events)
     {
-        $identifiers = array(__CLASS__, get_called_class());
+        $identifiers = array(__CLASS__, get_class($this));
         if (isset($this->eventIdentifier)) {
             if ((is_string($this->eventIdentifier))
                 || (is_array($this->eventIdentifier))
diff --git a/vendor/zendframework/zendframework/library/Zend/Feed/PubSubHubbub/AbstractCallback.php b/vendor/zendframework/zendframework/library/Zend/Feed/PubSubHubbub/AbstractCallback.php
index f54f0f48fd3..cc408e56a6a 100644
--- a/vendor/zendframework/zendframework/library/Zend/Feed/PubSubHubbub/AbstractCallback.php
+++ b/vendor/zendframework/zendframework/library/Zend/Feed/PubSubHubbub/AbstractCallback.php
@@ -199,7 +199,9 @@ abstract class AbstractCallback implements CallbackInterface
     protected function _detectCallbackUrl()
     {
         $callbackUrl = '';
-        if (isset($_SERVER['HTTP_X_REWRITE_URL'])) {
+        if (isset($_SERVER['HTTP_X_ORIGINAL_URL'])) {
+            $callbackUrl = $_SERVER['HTTP_X_ORIGINAL_URL'];
+        } elseif (isset($_SERVER['HTTP_X_REWRITE_URL'])) {
             $callbackUrl = $_SERVER['HTTP_X_REWRITE_URL'];
         } elseif (isset($_SERVER['REQUEST_URI'])) {
             $callbackUrl = $_SERVER['REQUEST_URI'];
diff --git a/vendor/zendframework/zendframework/library/Zend/Feed/PubSubHubbub/Model/AbstractModel.php b/vendor/zendframework/zendframework/library/Zend/Feed/PubSubHubbub/Model/AbstractModel.php
index 3862a4c302a..023fe8ed67d 100644
--- a/vendor/zendframework/zendframework/library/Zend/Feed/PubSubHubbub/Model/AbstractModel.php
+++ b/vendor/zendframework/zendframework/library/Zend/Feed/PubSubHubbub/Model/AbstractModel.php
@@ -29,7 +29,7 @@ class AbstractModel
     public function __construct(TableGatewayInterface $tableGateway = null)
     {
         if ($tableGateway === null) {
-            $parts = explode('\\', get_called_class());
+            $parts = explode('\\', get_class($this));
             $table = strtolower(array_pop($parts));
             $this->db = new TableGateway($table, null);
         } else {
diff --git a/vendor/zendframework/zendframework/library/Zend/Feed/Writer/Renderer/AbstractRenderer.php b/vendor/zendframework/zendframework/library/Zend/Feed/Writer/Renderer/AbstractRenderer.php
index 199ad597bad..c630fdf2fa7 100644
--- a/vendor/zendframework/zendframework/library/Zend/Feed/Writer/Renderer/AbstractRenderer.php
+++ b/vendor/zendframework/zendframework/library/Zend/Feed/Writer/Renderer/AbstractRenderer.php
@@ -218,7 +218,7 @@ class AbstractRenderer
         Writer\Writer::registerCoreExtensions();
         $manager = Writer\Writer::getExtensionManager();
         $all = Writer\Writer::getExtensions();
-        if (stripos(get_called_class(), 'entry')) {
+        if (stripos(get_class($this), 'entry')) {
             $exts = $all['entryRenderer'];
         } else {
             $exts = $all['feedRenderer'];
diff --git a/vendor/zendframework/zendframework/library/Zend/File/Transfer/Adapter/AbstractAdapter.php b/vendor/zendframework/zendframework/library/Zend/File/Transfer/Adapter/AbstractAdapter.php
index 002e958d230..53bfa0dfc4c 100644
--- a/vendor/zendframework/zendframework/library/Zend/File/Transfer/Adapter/AbstractAdapter.php
+++ b/vendor/zendframework/zendframework/library/Zend/File/Transfer/Adapter/AbstractAdapter.php
@@ -1224,16 +1224,15 @@ abstract class AbstractAdapter implements TranslatorAwareInterface
         }
 
         if (class_exists('finfo', false)) {
-            $const = defined('FILEINFO_MIME_TYPE') ? FILEINFO_MIME_TYPE : FILEINFO_MIME;
             if (!empty($value['options']['magicFile'])) {
                 ErrorHandler::start();
-                $mime = finfo_open($const, $value['options']['magicFile']);
+                $mime = finfo_open(FILEINFO_MIME_TYPE, $value['options']['magicFile']);
                 ErrorHandler::stop();
             }
 
             if (empty($mime)) {
                 ErrorHandler::start();
-                $mime = finfo_open($const);
+                $mime = finfo_open(FILEINFO_MIME_TYPE);
                 ErrorHandler::stop();
             }
 
diff --git a/vendor/zendframework/zendframework/library/Zend/Filter/FilterChain.php b/vendor/zendframework/zendframework/library/Zend/Filter/FilterChain.php
index 15189e1a32c..25576d1a1b5 100644
--- a/vendor/zendframework/zendframework/library/Zend/Filter/FilterChain.php
+++ b/vendor/zendframework/zendframework/library/Zend/Filter/FilterChain.php
@@ -184,8 +184,8 @@ class FilterChain extends AbstractFilter implements Countable
      */
     public function merge(FilterChain $filterChain)
     {
-        foreach ($filterChain->filters as $filter) {
-            $this->attach($filter);
+        foreach ($filterChain->filters->toArray(PriorityQueue::EXTR_BOTH) as $item) {
+            $this->attach($item['data'], $item['priority']);
         }
 
         return $this;
diff --git a/vendor/zendframework/zendframework/library/Zend/Filter/PregReplace.php b/vendor/zendframework/zendframework/library/Zend/Filter/PregReplace.php
index 2c595d6fe3d..2ae2a31d7b3 100644
--- a/vendor/zendframework/zendframework/library/Zend/Filter/PregReplace.php
+++ b/vendor/zendframework/zendframework/library/Zend/Filter/PregReplace.php
@@ -132,7 +132,7 @@ class PregReplace extends AbstractFilter
         if ($this->options['pattern'] === null) {
             throw new Exception\RuntimeException(sprintf(
                 'Filter %s does not have a valid pattern set',
-                get_called_class()
+                get_class($this)
             ));
         }
 
diff --git a/vendor/zendframework/zendframework/library/Zend/Form/Element/Collection.php b/vendor/zendframework/zendframework/library/Zend/Form/Element/Collection.php
index 12306208aed..1bf20431736 100644
--- a/vendor/zendframework/zendframework/library/Zend/Form/Element/Collection.php
+++ b/vendor/zendframework/zendframework/library/Zend/Form/Element/Collection.php
@@ -68,6 +68,13 @@ class Collection extends Fieldset implements FieldsetPrepareAwareInterface
      */
     protected $templatePlaceholder = self::DEFAULT_TEMPLATE_PLACEHOLDER;
 
+    /**
+     * Whether or not to create new objects during modify
+     *
+     * @var bool
+     */
+    protected $createNewObjects = false;
+
     /**
      * Element used as a template
      *
@@ -115,6 +122,10 @@ class Collection extends Fieldset implements FieldsetPrepareAwareInterface
             $this->setTemplatePlaceholder($options['template_placeholder']);
         }
 
+        if (isset($options['create_new_objects'])) {
+            $this->setCreateNewObjects($options['create_new_objects']);
+        }
+
         return $this;
     }
 
@@ -233,6 +244,10 @@ class Collection extends Fieldset implements FieldsetPrepareAwareInterface
                 )
             );
         }
+
+        if (! $this->createNewObjects()) {
+            $this->replaceTemplateObjects();
+        }
     }
 
     /**
@@ -417,6 +432,24 @@ class Collection extends Fieldset implements FieldsetPrepareAwareInterface
         return $this->templatePlaceholder;
     }
 
+    /**
+     * @param bool $createNewObjects
+     * @return Collection
+     */
+    public function setCreateNewObjects($createNewObjects)
+    {
+        $this->createNewObjects = (bool) $createNewObjects;
+        return $this;
+    }
+
+    /**
+     * @return bool
+     */
+    public function createNewObjects()
+    {
+        return $this->createNewObjects;
+    }
+
     /**
      * Get a template element used for rendering purposes only
      *
@@ -477,7 +510,7 @@ class Collection extends Fieldset implements FieldsetPrepareAwareInterface
                 $targetElement = clone $this->targetElement;
                 $targetElement->object = $value;
                 $values[$key] = $targetElement->extract();
-                if ($this->has($key)) {
+                if (! $this->createNewObjects() && $this->has($key)) {
                     $fieldset = $this->get($key);
                     if ($fieldset instanceof Fieldset && $fieldset->allowObjectBinding($value)) {
                         $fieldset->setObject($value);
@@ -536,4 +569,26 @@ class Collection extends Fieldset implements FieldsetPrepareAwareInterface
 
         return $elementOrFieldset;
     }
+
+    /**
+     * Replaces the default template object of a sub element with the corresponding
+     * real entity so that all properties are preserved.
+     *
+     * @return void
+     */
+    protected function replaceTemplateObjects()
+    {
+        $fieldsets = $this->getFieldsets();
+
+        if (!count($fieldsets) || !$this->object) {
+            return;
+        }
+
+        foreach ($fieldsets as $fieldset) {
+            $i = $fieldset->getName();
+            if (isset($this->object[$i])) {
+                $fieldset->setObject($this->object[$i]);
+            }
+        }
+    }
 }
diff --git a/vendor/zendframework/zendframework/library/Zend/Form/Form.php b/vendor/zendframework/zendframework/library/Zend/Form/Form.php
index 4f6a7b6c198..4b97f09813d 100644
--- a/vendor/zendframework/zendframework/library/Zend/Form/Form.php
+++ b/vendor/zendframework/zendframework/library/Zend/Form/Form.php
@@ -272,7 +272,9 @@ class Form extends Fieldset implements FormInterface
     public function bindValues(array $values = array())
     {
         if (!is_object($this->object)) {
-            return;
+            if ( $this->baseFieldset === null || $this->baseFieldset->allowValueBinding() == false ) {
+                return;
+            }
         }
         if (!$this->hasValidated() && !empty($values)) {
             $this->setData($values);
@@ -343,9 +345,9 @@ class Form extends Fieldset implements FormInterface
             throw new Exception\InvalidArgumentException(sprintf(
                 '%s expects the flag to be one of %s::%s or %s::%s',
                 __METHOD__,
-                get_called_class(),
+                get_class($this),
                 'BIND_ON_VALIDATE',
-                get_called_class(),
+                get_class($this),
                 'BIND_MANUAL'
             ));
         }
diff --git a/vendor/zendframework/zendframework/library/Zend/Form/View/Helper/FormDateTimeSelect.php b/vendor/zendframework/zendframework/library/Zend/Form/View/Helper/FormDateTimeSelect.php
index 0815caf7012..b766ccbf409 100644
--- a/vendor/zendframework/zendframework/library/Zend/Form/View/Helper/FormDateTimeSelect.php
+++ b/vendor/zendframework/zendframework/library/Zend/Form/View/Helper/FormDateTimeSelect.php
@@ -51,8 +51,9 @@ class FormDateTimeSelect extends FormDateSelectHelper
             ));
         }
 
+        $shouldRenderDelimiters = $element->shouldRenderDelimiters();
         $selectHelper = $this->getSelectElementHelper();
-        $pattern      = $this->parsePattern($element->shouldRenderDelimiters());
+        $pattern      = $this->parsePattern($shouldRenderDelimiters);
 
         $daysOptions   = $this->getDaysOptions($pattern['day']);
         $monthsOptions = $this->getMonthsOptions($pattern['month']);
@@ -78,16 +79,19 @@ class FormDateTimeSelect extends FormDateSelectHelper
         }
 
         $data = array();
-        $data[$pattern['day']]   = $selectHelper->render($dayElement);
-        $data[$pattern['month']] = $selectHelper->render($monthElement);
-        $data[$pattern['year']]  = $selectHelper->render($yearElement);
-        $data[$pattern['hour']]  = $selectHelper->render($hourElement);
-        $data[$pattern['minute']]  = $selectHelper->render($minuteElement);
+        $data[$pattern['day']]    = $selectHelper->render($dayElement);
+        $data[$pattern['month']]  = $selectHelper->render($monthElement);
+        $data[$pattern['year']]   = $selectHelper->render($yearElement);
+        $data[$pattern['hour']]   = $selectHelper->render($hourElement);
+        $data[$pattern['minute']] = $selectHelper->render($minuteElement);
 
         if ($element->shouldShowSeconds()) {
             $data[$pattern['second']]  = $selectHelper->render($secondElement);
         } else {
             unset($pattern['second']);
+            if ($shouldRenderDelimiters) {
+                unset($pattern[4]);
+            }
         }
 
         $markup = '';
@@ -99,6 +103,7 @@ class FormDateTimeSelect extends FormDateSelectHelper
                 $markup .= $data[$value];
             }
         }
+        $markup = trim($markup);
 
         return $markup;
     }
@@ -200,6 +205,9 @@ class FormDateTimeSelect extends FormDateSelectHelper
                 $result['minute'] = $value;
             } elseif (stripos($value, "'") === false && strpos($value, 's') !== false) {
                 $result['second'] = $value;
+            } elseif (stripos($value, "'") === false && stripos($value, 'a') !== false) {
+                // ignore ante/post meridiem marker
+                continue;
             } elseif ($renderDelimiters) {
                 $result[] = str_replace("'", '', $value);
             }
diff --git a/vendor/zendframework/zendframework/library/Zend/Form/View/Helper/FormMultiCheckbox.php b/vendor/zendframework/zendframework/library/Zend/Form/View/Helper/FormMultiCheckbox.php
index f41b3f30e77..e6ad8ee74c1 100644
--- a/vendor/zendframework/zendframework/library/Zend/Form/View/Helper/FormMultiCheckbox.php
+++ b/vendor/zendframework/zendframework/library/Zend/Form/View/Helper/FormMultiCheckbox.php
@@ -257,10 +257,10 @@ class FormMultiCheckbox extends FormInput
 
             $value           = '';
             $label           = '';
-            $selected        = false;
-            $disabled        = false;
             $inputAttributes = $attributes;
             $labelAttributes = $globalLabelAttributes;
+            $selected        = isset($inputAttributes['selected']) && $inputAttributes['type'] != 'radio' && $inputAttributes['selected'] != false ? true : false;
+            $disabled        = isset($inputAttributes['disabled']) && $inputAttributes['disabled'] != false ? true : false;
 
             if (is_scalar($optionSpec)) {
                 $optionSpec = array(
diff --git a/vendor/zendframework/zendframework/library/Zend/Form/View/Helper/FormRow.php b/vendor/zendframework/zendframework/library/Zend/Form/View/Helper/FormRow.php
index 830737fb9df..43c787713f7 100644
--- a/vendor/zendframework/zendframework/library/Zend/Form/View/Helper/FormRow.php
+++ b/vendor/zendframework/zendframework/library/Zend/Form/View/Helper/FormRow.php
@@ -162,6 +162,8 @@ class FormRow extends AbstractHelper
 
         if ($labelPosition !== null) {
             $this->setLabelPosition($labelPosition);
+        } else {
+            $this->setLabelPosition(self::LABEL_PREPEND);
         }
 
         if ($renderErrors !== null){
diff --git a/vendor/zendframework/zendframework/library/Zend/Http/Client/Adapter/Curl.php b/vendor/zendframework/zendframework/library/Zend/Http/Client/Adapter/Curl.php
index d5becf8e088..2f0af52746f 100644
--- a/vendor/zendframework/zendframework/library/Zend/Http/Client/Adapter/Curl.php
+++ b/vendor/zendframework/zendframework/library/Zend/Http/Client/Adapter/Curl.php
@@ -134,6 +134,9 @@ class Curl implements HttpAdapter, StreamInterface
                     $this->setCurlOption(CURLOPT_PROXYPORT, $v);
                     break;
                 default:
+                    if (is_array($v) && isset($this->config[$option]) && is_array($this->config[$option])) {
+                        $v = ArrayUtils::merge($this->config[$option], $v);
+                    }
                     $this->config[$option] = $v;
                     break;
             }
diff --git a/vendor/zendframework/zendframework/library/Zend/Http/Headers.php b/vendor/zendframework/zendframework/library/Zend/Http/Headers.php
index 38e543aba0e..6843fe12a92 100644
--- a/vendor/zendframework/zendframework/library/Zend/Http/Headers.php
+++ b/vendor/zendframework/zendframework/library/Zend/Http/Headers.php
@@ -286,7 +286,7 @@ class Headers implements Countable, Iterator
     }
 
     /**
-     * Advance the pointer for this object as an interator
+     * Advance the pointer for this object as an iterator
      *
      * @return void
      */
diff --git a/vendor/zendframework/zendframework/library/Zend/Http/PhpEnvironment/Request.php b/vendor/zendframework/zendframework/library/Zend/Http/PhpEnvironment/Request.php
index 38ee9a63c32..eefcaeea889 100644
--- a/vendor/zendframework/zendframework/library/Zend/Http/PhpEnvironment/Request.php
+++ b/vendor/zendframework/zendframework/library/Zend/Http/PhpEnvironment/Request.php
@@ -459,7 +459,6 @@ class Request extends HttpRequest
      * Uses a variety of criteria in order to detect the base URL of the request
      * (i.e., anything additional to the document root).
      *
-     * The base URL includes the schema, host, and port, in addition to the path.
      *
      * @return string
      */
diff --git a/vendor/zendframework/zendframework/library/Zend/Http/Response.php b/vendor/zendframework/zendframework/library/Zend/Http/Response.php
index 8293042d7c7..dc5d08885f5 100644
--- a/vendor/zendframework/zendframework/library/Zend/Http/Response.php
+++ b/vendor/zendframework/zendframework/library/Zend/Http/Response.php
@@ -239,7 +239,7 @@ class Response extends AbstractMessage implements ResponseInterface
      */
     public function setStatusCode($code)
     {
-        $const = get_called_class() . '::STATUS_CODE_' . $code;
+        $const = get_class($this) . '::STATUS_CODE_' . $code;
         if (!is_numeric($code) || !defined($const)) {
             $code = is_scalar($code) ? $code : gettype($code);
             throw new Exception\InvalidArgumentException(sprintf(
diff --git a/vendor/zendframework/zendframework/library/Zend/Http/Response/Stream.php b/vendor/zendframework/zendframework/library/Zend/Http/Response/Stream.php
index 990cadb22ed..94c61e46cd3 100644
--- a/vendor/zendframework/zendframework/library/Zend/Http/Response/Stream.php
+++ b/vendor/zendframework/zendframework/library/Zend/Http/Response/Stream.php
@@ -26,7 +26,7 @@ class Stream extends Response
     protected $contentLength = null;
 
     /**
-     * The portion of the body that has alredy been streamed
+     * The portion of the body that has already been streamed
      *
      * @var int
      */
diff --git a/vendor/zendframework/zendframework/library/Zend/I18n/Translator/Plural/Rule.php b/vendor/zendframework/zendframework/library/Zend/I18n/Translator/Plural/Rule.php
index 21b816e731e..ffe3a66d79e 100644
--- a/vendor/zendframework/zendframework/library/Zend/I18n/Translator/Plural/Rule.php
+++ b/vendor/zendframework/zendframework/library/Zend/I18n/Translator/Plural/Rule.php
@@ -71,6 +71,16 @@ class Rule
         return $result;
     }
 
+    /**
+     * Get number of possible plural forms.
+     *
+     * @return integer
+     */
+    public function getNumPlurals()
+    {
+        return $this->numPlurals;
+    }
+
     /**
      * Evaluate a part of an ast.
      *
diff --git a/vendor/zendframework/zendframework/library/Zend/I18n/Translator/TextDomain.php b/vendor/zendframework/zendframework/library/Zend/I18n/Translator/TextDomain.php
index 47c710c2089..e33b7079797 100644
--- a/vendor/zendframework/zendframework/library/Zend/I18n/Translator/TextDomain.php
+++ b/vendor/zendframework/zendframework/library/Zend/I18n/Translator/TextDomain.php
@@ -10,6 +10,7 @@
 namespace Zend\I18n\Translator;
 
 use ArrayObject;
+use Zend\I18n\Exception;
 use Zend\I18n\Translator\Plural\Rule as PluralRule;
 
 /**
@@ -46,9 +47,36 @@ class TextDomain extends ArrayObject
     public function getPluralRule()
     {
         if ($this->pluralRule === null) {
-            $this->setPluralRule(PluralRule::fromString('nplurals=2; plural=n==1'));
+            $this->setPluralRule(PluralRule::fromString('nplurals=2; plural=n != 1;'));
         }
 
         return $this->pluralRule;
     }
+
+    /**
+     * Merge another text domain with the current one.
+     *
+     * The plural rule of both text domains must be compatible for a successful
+     * merge. We are only validating the number of plural forms though, as the
+     * same rule could be made up with different expression.
+     *
+     * @param  TextDomain $textDomain
+     * @return TextDomain
+     * @throws Exception\RuntimeException
+     */
+    public function merge(TextDomain $textDomain)
+    {
+        if ($this->getPluralRule()->getNumPlurals() !== $textDomain->getPluralRule()->getNumPlurals()) {
+            throw new Exception\RuntimeException('Plural rule of merging text domain is not compatible with the current one');
+        }
+
+        $this->exchangeArray(
+            array_replace(
+                $this->getArrayCopy(),
+                $textDomain->getArrayCopy()
+            )
+        );
+
+        return $this;
+    }
 }
diff --git a/vendor/zendframework/zendframework/library/Zend/I18n/Translator/Translator.php b/vendor/zendframework/zendframework/library/Zend/I18n/Translator/Translator.php
index cfb22c9504d..e0212b43ec7 100644
--- a/vendor/zendframework/zendframework/library/Zend/I18n/Translator/Translator.php
+++ b/vendor/zendframework/zendframework/library/Zend/I18n/Translator/Translator.php
@@ -347,9 +347,9 @@ class Translator
         $locale = null
     ) {
         $locale      = $locale ?: $this->getLocale();
-        $translation = $this->getTranslatedMessage($singular, $locale, $textDomain, true);
+        $translation = $this->getTranslatedMessage($singular, $locale, $textDomain);
 
-        if ($translation === null || $translation['message'] === '') {
+        if ($translation === null || $translation === '') {
             if (null !== ($fallbackLocale = $this->getFallbackLocale())
                 && $locale !== $fallbackLocale
             ) {
@@ -365,31 +365,31 @@ class Translator
             return ($number == 1 ? $singular : $plural);
         }
 
-        $index = $translation['plural_rule']->evaluate($number);
+        $index = $this->messages[$textDomain][$locale]
+                      ->getPluralRule()
+                      ->evaluate($number);
 
-        if (!isset($translation['message'][$index])) {
+        if (!isset($translation[$index])) {
             throw new Exception\OutOfBoundsException(sprintf(
                 'Provided index %d does not exist in plural array', $index
             ));
         }
 
-        return $translation['message'][$index];
+        return $translation[$index];
     }
 
     /**
      * Get a translated message.
      *
-     * @param  string      $message
-     * @param  string      $locale
-     * @param  string      $textDomain
-     * @param  boolean     $returnPluralRule
+     * @param  string $message
+     * @param  string $locale
+     * @param  string $textDomain
      * @return string|null
      */
     protected function getTranslatedMessage(
         $message,
         $locale = null,
-        $textDomain = 'default',
-        $returnPluralRule = false
+        $textDomain = 'default'
     ) {
         if ($message === '') {
             return '';
@@ -399,28 +399,8 @@ class Translator
             $this->loadMessages($textDomain, $locale);
         }
 
-        if (is_array($this->messages[$textDomain][$locale])) {
-            foreach ($this->messages[$textDomain][$locale] as $textDomain) {
-                if (isset($textDomain[$message])) {
-                    if ($returnPluralRule) {
-                        return array(
-                            'message'    => $textDomain[$message],
-                            'plural_rule' => $textDomain->getPluralRule()
-                        );
-                    } else {
-                        return $textDomain[$message];
-                    }
-                }
-            }
-        } elseif (isset($this->messages[$textDomain][$locale][$message])) {
-            if ($returnPluralRule) {
-                return array(
-                    'message'     => $this->messages[$textDomain][$locale][$message],
-                    'plural_rule' => $this->messages[$textDomain][$locale]->getPluralRule()
-                );
-            } else {
-                return $this->messages[$textDomain][$locale][$message];
-            }
+        if (isset($this->messages[$textDomain][$locale][$message])) {
+            return $this->messages[$textDomain][$locale][$message];
         }
 
         return null;
@@ -525,13 +505,14 @@ class Translator
             }
         }
 
-        $messagesLoaded = (
-            $this->loadMessagesFromRemote($textDomain, $locale)
-            || $this->loadMessagesFromPatterns($textDomain, $locale)
-            || $this->loadMessagesFromFiles($textDomain, $locale)
-        );
+        $messagesLoaded  = false;
+        $messagesLoaded |= $this->loadMessagesFromRemote($textDomain, $locale);
+        $messagesLoaded |= $this->loadMessagesFromPatterns($textDomain, $locale);
+        $messagesLoaded |= $this->loadMessagesFromFiles($textDomain, $locale);
 
-        if ($messagesLoaded && $cache !== null) {
+        if (!$messagesLoaded) {
+            $this->messages[$textDomain][$locale] = null;
+        } elseif ($cache !== null) {
             $cache->setItem($cacheId, $this->messages[$textDomain][$locale]);
         }
     }
@@ -557,13 +538,7 @@ class Translator
                 }
 
                 if (isset($this->messages[$textDomain][$locale])) {
-                    if (!is_array($this->messages[$textDomain][$locale])) {
-                        $this->messages[$textDomain][$locale] = array(
-                            $this->messages[$textDomain][$locale]
-                        );
-                    }
-
-                    $this->messages[$textDomain][$locale][] = $loader->load($locale, $textDomain);
+                    $this->messages[$textDomain][$locale]->merge($loader->load($locale, $textDomain));
                 } else {
                     $this->messages[$textDomain][$locale] = $loader->load($locale, $textDomain);
                 }
@@ -599,13 +574,7 @@ class Translator
                     }
 
                     if (isset($this->messages[$textDomain][$locale])) {
-                        if (!is_array($this->messages[$textDomain][$locale])) {
-                            $this->messages[$textDomain][$locale] = array(
-                                $this->messages[$textDomain][$locale]
-                            );
-                        }
-
-                        $this->messages[$textDomain][$locale][] = $loader->load($locale, $filename);
+                        $this->messages[$textDomain][$locale]->merge($loader->load($locale, $filename));
                     } else {
                         $this->messages[$textDomain][$locale] = $loader->load($locale, $filename);
                     }
@@ -643,13 +612,7 @@ class Translator
                 }
 
                 if (isset($this->messages[$textDomain][$locale])) {
-                    if (!is_array($this->messages[$textDomain][$locale])) {
-                        $this->messages[$textDomain][$locale] = array(
-                            $this->messages[$textDomain][$locale]
-                        );
-                    }
-
-                    $this->messages[$textDomain][$locale][] = $loader->load($locale, $file['filename']);
+                    $this->messages[$textDomain][$locale]->merge($loader->load($locale, $file['filename']));
                 } else {
                     $this->messages[$textDomain][$locale] = $loader->load($locale, $file['filename']);
                 }
diff --git a/vendor/zendframework/zendframework/library/Zend/InputFilter/BaseInputFilter.php b/vendor/zendframework/zendframework/library/Zend/InputFilter/BaseInputFilter.php
index 319a9bc281c..47560e4cb87 100644
--- a/vendor/zendframework/zendframework/library/Zend/InputFilter/BaseInputFilter.php
+++ b/vendor/zendframework/zendframework/library/Zend/InputFilter/BaseInputFilter.php
@@ -171,7 +171,10 @@ class BaseInputFilter implements InputFilterInterface, UnknownInputsCapableInter
             ) {
                 if ($input instanceof InputInterface) {
                     // - test if input is required
-                    if (!$input->isRequired()) {
+                    if (!$input->isRequired()
+                        // "Not required" should not apply to empty strings (#3983)
+                        && !(array_key_exists($name, $this->data) && is_string($this->data[$name]))
+                    ) {
                         $this->validInputs[$name] = $input;
                         continue;
                     }
@@ -182,7 +185,7 @@ class BaseInputFilter implements InputFilterInterface, UnknownInputsCapableInter
                     }
                 }
                 // make sure we have a value (empty) for validation
-                $this->data[$name] = '';
+                $this->data[$name] = null;
             }
 
             if ($input instanceof InputFilterInterface) {
diff --git a/vendor/zendframework/zendframework/library/Zend/InputFilter/Factory.php b/vendor/zendframework/zendframework/library/Zend/InputFilter/Factory.php
index 31db2a7460e..dddc6f57501 100644
--- a/vendor/zendframework/zendframework/library/Zend/InputFilter/Factory.php
+++ b/vendor/zendframework/zendframework/library/Zend/InputFilter/Factory.php
@@ -153,6 +153,9 @@ class Factory
                         $input->setRequired(!$value);
                     }
                     break;
+                case 'error_message':
+                    $input->setErrorMessage($value);
+                    break;
                 case 'fallback_value':
                     $input->setFallbackValue($value);
                     break;
@@ -264,11 +267,12 @@ class Factory
                     );
                 }
                 $name = $filter['name'];
+                $priority = isset($filter['priority']) ? $filter['priority'] : FilterChain::DEFAULT_PRIORITY;
                 $options = array();
                 if (isset($filter['options'])) {
                     $options = $filter['options'];
                 }
-                $chain->attachByName($name, $options);
+                $chain->attachByName($name, $options, $priority);
                 continue;
             }
 
diff --git a/vendor/zendframework/zendframework/library/Zend/Json/Decoder.php b/vendor/zendframework/zendframework/library/Zend/Json/Decoder.php
index af8b67e227d..7783d8f7d2b 100644
--- a/vendor/zendframework/zendframework/library/Zend/Json/Decoder.php
+++ b/vendor/zendframework/zendframework/library/Zend/Json/Decoder.php
@@ -80,7 +80,7 @@ class Decoder
      *
      * @param string $source String source to decode
      * @param int $decodeType How objects should be decoded -- see
-     * {@link Zend_Json::TYPE_ARRAY} and {@link Zend_Json::TYPE_OBJECT} for
+     * {@link Zend\Json\Json::TYPE_ARRAY} and {@link Zend\Json\Json::TYPE_OBJECT} for
      * valid values
      * @throws InvalidArgumentException
      * @return void
@@ -120,15 +120,15 @@ class Decoder
      *         - array of one or more of the above types
      *
      * By default, decoded objects will be returned as associative arrays; to
-     * return a stdClass object instead, pass {@link Zend_Json::TYPE_OBJECT} to
+     * return a stdClass object instead, pass {@link Zend\Json\Json::TYPE_OBJECT} to
      * the $objectDecodeType parameter.
      *
      * @static
      * @access public
      * @param string $source String to be decoded
      * @param int $objectDecodeType How objects should be decoded; should be
-     * either or {@link Zend_Json::TYPE_ARRAY} or
-     * {@link Zend_Json::TYPE_OBJECT}; defaults to TYPE_ARRAY
+     * either or {@link Zend\Json\Json::TYPE_ARRAY} or
+     * {@link Zend\Json\Json::TYPE_OBJECT}; defaults to TYPE_ARRAY
      * @return mixed
      */
     public static function decode($source, $objectDecodeType = Json::TYPE_OBJECT)
@@ -166,7 +166,7 @@ class Decoder
      * Decodes an object of the form:
      *  { "attribute: value, "attribute2" : value,...}
      *
-     * If Zend_Json_Encoder was used to encode the original object then
+     * If Zend\Json\Encoder was used to encode the original object then
      * a special attribute called __className which specifies a class
      * name that should wrap the data contained within the encoded source.
      *
diff --git a/vendor/zendframework/zendframework/library/Zend/Json/Expr.php b/vendor/zendframework/zendframework/library/Zend/Json/Expr.php
index 77377cfc16c..0cd75a60915 100644
--- a/vendor/zendframework/zendframework/library/Zend/Json/Expr.php
+++ b/vendor/zendframework/zendframework/library/Zend/Json/Expr.php
@@ -10,10 +10,10 @@
 namespace Zend\Json;
 
 /**
- * Class for Zend_Json encode method.
+ * Class for Zend\Json\Json encode method.
  *
  * This class simply holds a string with a native Javascript Expression,
- * so objects | arrays to be encoded with Zend_Json can contain native
+ * so objects | arrays to be encoded with Zend\Json\Json can contain native
  * Javascript Expressions.
  *
  * Example:
@@ -21,14 +21,14 @@ namespace Zend\Json;
  * $foo = array(
  *     'integer'  =>9,
  *     'string'   =>'test string',
- *     'function' => Zend_Json_Expr(
- *         'function() { window.alert("javascript function encoded by Zend_Json") }'
+ *     'function' => Zend\Json\Expr(
+ *         'function() { window.alert("javascript function encoded by Zend\Json\Json") }'
  *     ),
  * );
  *
- * Zend_Json::encode($foo, false, array('enableJsonExprFinder' => true));
+ * Zend\Json\Json::encode($foo, false, array('enableJsonExprFinder' => true));
  * // it will returns json encoded string:
- * // {"integer":9,"string":"test string","function":function() {window.alert("javascript function encoded by Zend_Json")}}
+ * // {"integer":9,"string":"test string","function":function() {window.alert("javascript function encoded by Zend\Json\Json")}}
  * </code>
  */
 class Expr
diff --git a/vendor/zendframework/zendframework/library/Zend/Json/Json.php b/vendor/zendframework/zendframework/library/Zend/Json/Json.php
index db5c602e304..68a125f5464 100644
--- a/vendor/zendframework/zendframework/library/Zend/Json/Json.php
+++ b/vendor/zendframework/zendframework/library/Zend/Json/Json.php
@@ -46,7 +46,7 @@ class Json
      *
      * @param string $encodedValue Encoded in JSON format
      * @param int $objectDecodeType Optional; flag indicating how to decode
-     * objects. See {@link Zend_Json_Decoder::decode()} for details.
+     * objects. See {@link Zend\Json\Decoder::decode()} for details.
      * @return mixed
      * @throws RuntimeException
      */
@@ -85,10 +85,10 @@ class Json
      *
      * NOTE: Only public variables will be encoded
      *
-     * NOTE: Encoding native javascript expressions are possible using Zend_Json_Expr.
+     * NOTE: Encoding native javascript expressions are possible using Zend\Json\Expr.
      *       You can enable this by setting $options['enableJsonExprFinder'] = true
      *
-     * @see Zend_Json_Expr
+     * @see Zend\Json\Expr
      *
      * @param  mixed $valueToEncode
      * @param  bool $cycleCheck Optional; whether or not to check for object recursion; off by default
@@ -105,7 +105,7 @@ class Json
             }
         }
 
-        // Pre-encoding look for Zend_Json_Expr objects and replacing by tmp ids
+        // Pre-encoding look for Zend\Json\Expr objects and replacing by tmp ids
         $javascriptExpressions = array();
         if (isset($options['enableJsonExprFinder'])
            && ($options['enableJsonExprFinder'] == true)
@@ -123,7 +123,7 @@ class Json
             $encodedResult = Encoder::encode($valueToEncode, $cycleCheck, $options);
         }
 
-        //only do post-processing to revert back the Zend_Json_Expr if any.
+        //only do post-processing to revert back the Zend\Json\Expr if any.
         if (count($javascriptExpressions) > 0) {
             $count = count($javascriptExpressions);
             for ($i = 0; $i < $count; $i++) {
@@ -143,9 +143,9 @@ class Json
     }
 
     /**
-     * Check & Replace Zend_Json_Expr for tmp ids in the valueToEncode
+     * Check & Replace Zend\Json\Expr for tmp ids in the valueToEncode
      *
-     * Check if the value is a Zend_Json_Expr, and if replace its value
+     * Check if the value is a Zend\Json\Expr, and if replace its value
      * with a magic key and save the javascript expression in an array.
      *
      * NOTE this method is recursive.
@@ -186,9 +186,9 @@ class Json
      * Return the value of an XML attribute text or the text between
      * the XML tags
      *
-     * In order to allow Zend_Json_Expr from xml, we check if the node
-     * matches the pattern that try to detect if it is a new Zend_Json_Expr
-     * if it matches, we return a new Zend_Json_Expr instead of a text node
+     * In order to allow Zend\Json\Expr from xml, we check if the node
+     * matches the pattern that try to detect if it is a new Zend\Json\Expr
+     * if it matches, we return a new Zend\Json\Expr instead of a text node
      *
      * @param SimpleXMLElement $simpleXmlElementObject
      * @return Expr|string
@@ -298,7 +298,7 @@ class Json
      * calling a recursive (protected static) function in this class. Then, it
      * converts that PHP array into JSON by calling the "encode" static function.
      *
-     * NOTE: Encoding native javascript expressions via Zend_Json_Expr is not possible.
+     * NOTE: Encoding native javascript expressions via Zend\Json\Expr is not possible.
      *
      * @static
      * @access public
@@ -323,7 +323,7 @@ class Json
         // Call the recursive function to convert the XML into a PHP array.
         $resultArray = static::_processXml($simpleXmlElementObject, $ignoreXmlAttributes);
 
-        // Convert the PHP array to JSON using Zend_Json encode method.
+        // Convert the PHP array to JSON using Zend\Json\Json encode method.
         // It is just that simple.
         $jsonStringOutput = static::encode($resultArray);
         return($jsonStringOutput);
diff --git a/vendor/zendframework/zendframework/library/Zend/Json/Server/Cache.php b/vendor/zendframework/zendframework/library/Zend/Json/Server/Cache.php
index af968e13411..1f2e0e48820 100644
--- a/vendor/zendframework/zendframework/library/Zend/Json/Server/Cache.php
+++ b/vendor/zendframework/zendframework/library/Zend/Json/Server/Cache.php
@@ -13,7 +13,7 @@ use Zend\Server\Cache as ServerCache;
 use Zend\Stdlib\ErrorHandler;
 
 /**
- * Zend_Json_Server_Cache: cache Zend_Json_Server server definition and SMD
+ * Zend\Json\Server\Cache: cache Zend\Json\Server\Server server definition and SMD
  */
 class Cache extends ServerCache
 {
diff --git a/vendor/zendframework/zendframework/library/Zend/Json/Server/Exception/HttpException.php b/vendor/zendframework/zendframework/library/Zend/Json/Server/Exception/HttpException.php
index c7d111fc1c5..2e301ba2d3e 100644
--- a/vendor/zendframework/zendframework/library/Zend/Json/Server/Exception/HttpException.php
+++ b/vendor/zendframework/zendframework/library/Zend/Json/Server/Exception/HttpException.php
@@ -10,7 +10,7 @@
 namespace Zend\Json\Server\Exception;
 
 /**
- * Thrown by Zend_Json_Server_Client when an HTTP error occurs during an
+ * Thrown by Zend\Json\Server\Client when an HTTP error occurs during an
  * JSON-RPC method call.
  */
 class HttpException extends RuntimeException
diff --git a/vendor/zendframework/zendframework/library/Zend/Json/Server/Server.php b/vendor/zendframework/zendframework/library/Zend/Json/Server/Server.php
index 5993e229ef4..85cf3278f5f 100644
--- a/vendor/zendframework/zendframework/library/Zend/Json/Server/Server.php
+++ b/vendor/zendframework/zendframework/library/Zend/Json/Server/Server.php
@@ -497,7 +497,7 @@ class Server extends AbstractServer
         }
 
         $params        = $request->getParams();
-        $invocable     = $this->table->getMethod($method);
+        $invokable     = $this->table->getMethod($method);
         $serviceMap    = $this->getServiceMap();
         $service       = $serviceMap->getService($method);
         $serviceParams = $service->getParams();
@@ -509,7 +509,7 @@ class Server extends AbstractServer
         //Make sure named parameters are passed in correct order
         if (is_string( key( $params ) )) {
 
-            $callback = $invocable->getCallback();
+            $callback = $invokable->getCallback();
             if ('function' == $callback->getType()) {
                 $reflection = new ReflectionFunction( $callback->getFunction() );
             } else {
@@ -534,7 +534,7 @@ class Server extends AbstractServer
         }
 
         try {
-            $result = $this->_dispatch($invocable, $params);
+            $result = $this->_dispatch($invokable, $params);
         } catch (\Exception $e) {
             return $this->fault($e->getMessage(), $e->getCode(), $e);
         }
diff --git a/vendor/zendframework/zendframework/library/Zend/Loader/AutoloaderFactory.php b/vendor/zendframework/zendframework/library/Zend/Loader/AutoloaderFactory.php
index d9d71a1587a..27ab200f3cf 100644
--- a/vendor/zendframework/zendframework/library/Zend/Loader/AutoloaderFactory.php
+++ b/vendor/zendframework/zendframework/library/Zend/Loader/AutoloaderFactory.php
@@ -12,8 +12,6 @@ namespace Zend\Loader;
 use ReflectionClass;
 use Traversable;
 
-require_once __DIR__ . '/SplAutoloader.php';
-
 if (class_exists('Zend\Loader\AutoloaderFactory')) {
     return;
 }
diff --git a/vendor/zendframework/zendframework/library/Zend/Mail/Header/GenericHeader.php b/vendor/zendframework/zendframework/library/Zend/Mail/Header/GenericHeader.php
index 67834e932f4..cc48385a67b 100644
--- a/vendor/zendframework/zendframework/library/Zend/Mail/Header/GenericHeader.php
+++ b/vendor/zendframework/zendframework/library/Zend/Mail/Header/GenericHeader.php
@@ -76,9 +76,9 @@ class GenericHeader implements HeaderInterface, UnstructuredInterface
         $fieldName = str_replace(' ', '-', ucwords(str_replace(array('_', '-'), ' ', $fieldName)));
 
         // Validate what we have
-        if (!preg_match('/^[a-z][a-z0-9-]*$/i', $fieldName)) {
+        if (!preg_match('/^[\x21-\x39\x3B-\x7E]*$/i', $fieldName)) {
             throw new Exception\InvalidArgumentException(
-                'Header name must start with a letter, and consist of only letters, numbers and dashes.'
+                'Header name must be composed of printable US-ASCII characters, except colon.'
             );
         }
 
diff --git a/vendor/zendframework/zendframework/library/Zend/Mail/Headers.php b/vendor/zendframework/zendframework/library/Zend/Mail/Headers.php
index d62c754442f..8e644edd62f 100644
--- a/vendor/zendframework/zendframework/library/Zend/Mail/Headers.php
+++ b/vendor/zendframework/zendframework/library/Zend/Mail/Headers.php
@@ -70,7 +70,7 @@ class Headers implements Countable, Iterator
         // iterate the header lines, some might be continuations
         foreach (explode($EOL, $string) as $line) {
             // check if a header name is present
-            if (preg_match('/^(?P<name>[^()><@,;:\"\\/\[\]?=}{ \t]+):.*$/', $line, $matches)) {
+            if (preg_match('/^(?P<name>[\x21-\x39\x3B-\x7E]+):.*$/', $line, $matches)) {
                 if ($currentLine) {
                     // a header name was present, then store the current complete line
                     $headers->addHeaderLine($currentLine);
diff --git a/vendor/zendframework/zendframework/library/Zend/Math/composer.json b/vendor/zendframework/zendframework/library/Zend/Math/composer.json
index 495b59fe57a..9b2896060c9 100644
--- a/vendor/zendframework/zendframework/library/Zend/Math/composer.json
+++ b/vendor/zendframework/zendframework/library/Zend/Math/composer.json
@@ -17,7 +17,7 @@
     },
     "suggest": {
         "ircmaxell/random-lib": "Fallback random byte generator for Zend\\Math\\Rand if OpenSSL/Mcrypt extensions are unavailable"
-    }
+    },
     "extra": {
         "branch-alias": {
             "dev-master": "2.1-dev",
diff --git a/vendor/zendframework/zendframework/library/Zend/ModuleManager/ModuleManager.php b/vendor/zendframework/zendframework/library/Zend/ModuleManager/ModuleManager.php
index 92d0cb90cb5..6f68f5e146d 100644
--- a/vendor/zendframework/zendframework/library/Zend/ModuleManager/ModuleManager.php
+++ b/vendor/zendframework/zendframework/library/Zend/ModuleManager/ModuleManager.php
@@ -245,7 +245,7 @@ class ModuleManager implements ModuleManagerInterface
     {
         $events->setIdentifiers(array(
             __CLASS__,
-            get_called_class(),
+            get_class($this),
             'module_manager',
         ));
         $this->events = $events;
diff --git a/vendor/zendframework/zendframework/library/Zend/Mvc/Application.php b/vendor/zendframework/zendframework/library/Zend/Mvc/Application.php
index 7d42a849618..80cdf3d3d0b 100644
--- a/vendor/zendframework/zendframework/library/Zend/Mvc/Application.php
+++ b/vendor/zendframework/zendframework/library/Zend/Mvc/Application.php
@@ -193,7 +193,7 @@ class Application implements
     {
         $eventManager->setIdentifiers(array(
             __CLASS__,
-            get_called_class(),
+            get_class($this),
         ));
         $this->events = $eventManager;
         return $this;
diff --git a/vendor/zendframework/zendframework/library/Zend/Mvc/Controller/AbstractController.php b/vendor/zendframework/zendframework/library/Zend/Mvc/Controller/AbstractController.php
index a8275b5a13e..aa4902c1031 100644
--- a/vendor/zendframework/zendframework/library/Zend/Mvc/Controller/AbstractController.php
+++ b/vendor/zendframework/zendframework/library/Zend/Mvc/Controller/AbstractController.php
@@ -29,8 +29,8 @@ use Zend\Stdlib\ResponseInterface as Response;
  * Convenience methods for pre-built plugins (@see __call):
  *
  * @method \Zend\View\Model\ModelInterface acceptableViewModelSelector(array $matchAgainst = null, bool $returnDefault = true, \Zend\Http\Header\Accept\FieldValuePart\AbstractFieldValuePart $resultReference = null)
- * @method boolean|array|\Zend\Http\Response fileprg(\Zend\Form\Form $form, $redirect = null, $redirectToUrl = false)
- * @method boolean|array|\Zend\Http\Response filePostRedirectGet(\Zend\Form\Form $form, $redirect = null, $redirectToUrl = false)
+ * @method bool|array|\Zend\Http\Response fileprg(\Zend\Form\Form $form, $redirect = null, $redirectToUrl = false)
+ * @method bool|array|\Zend\Http\Response filePostRedirectGet(\Zend\Form\Form $form, $redirect = null, $redirectToUrl = false)
  * @method \Zend\Mvc\Controller\Plugin\FlashMessenger flashMessenger()
  * @method \Zend\Mvc\Controller\Plugin\Forward forward()
  * @method mixed|null identity()
@@ -162,9 +162,9 @@ abstract class AbstractController implements
         $events->setIdentifiers(array(
             'Zend\Stdlib\DispatchableInterface',
             __CLASS__,
-            get_called_class(),
+            get_class($this),
             $this->eventIdentifier,
-            substr(get_called_class(), 0, strpos(get_called_class(), '\\'))
+            substr(get_class($this), 0, strpos(get_class($this), '\\'))
         ));
         $this->events = $events;
         $this->attachDefaultListeners();
diff --git a/vendor/zendframework/zendframework/library/Zend/Mvc/Controller/AbstractRestfulController.php b/vendor/zendframework/zendframework/library/Zend/Mvc/Controller/AbstractRestfulController.php
index dfffcfeb177..75ee82440a6 100644
--- a/vendor/zendframework/zendframework/library/Zend/Mvc/Controller/AbstractRestfulController.php
+++ b/vendor/zendframework/zendframework/library/Zend/Mvc/Controller/AbstractRestfulController.php
@@ -361,7 +361,7 @@ abstract class AbstractRestfulController extends AbstractController
      *
      * @param  Request $request
      * @param  string|null $contentType
-     * @return boolean
+     * @return bool
      */
     public function requestHasContentType(Request $request, $contentType = '')
     {
@@ -431,7 +431,7 @@ abstract class AbstractRestfulController extends AbstractController
      * Retrieve the identifier, if any
      *
      * Attempts to see if an identifier was passed in either the URI or the
-     * query string, returning if if found. Otherwise, returns a boolean false.
+     * query string, returning it if found. Otherwise, returns a boolean false.
      *
      * @param  \Zend\Mvc\Router\RouteMatch $routeMatch
      * @param  Request $request
diff --git a/vendor/zendframework/zendframework/library/Zend/Mvc/Controller/Plugin/FilePostRedirectGet.php b/vendor/zendframework/zendframework/library/Zend/Mvc/Controller/Plugin/FilePostRedirectGet.php
index 521c22538ef..10ea5f12333 100644
--- a/vendor/zendframework/zendframework/library/Zend/Mvc/Controller/Plugin/FilePostRedirectGet.php
+++ b/vendor/zendframework/zendframework/library/Zend/Mvc/Controller/Plugin/FilePostRedirectGet.php
@@ -39,8 +39,8 @@ class FilePostRedirectGet extends AbstractPlugin
     /**
      * @param  FormInterface $form
      * @param  string        $redirect      Route or URL string (default: current route)
-     * @param  boolean       $redirectToUrl Use $redirect as a URL string (default: false)
-     * @return boolean|array|Response
+     * @param  bool          $redirectToUrl Use $redirect as a URL string (default: false)
+     * @return bool|array|Response
      */
     public function __invoke(FormInterface $form, $redirect = null, $redirectToUrl = false)
     {
@@ -55,7 +55,7 @@ class FilePostRedirectGet extends AbstractPlugin
     /**
      * @param  FormInterface $form
      * @param  string        $redirect      Route or URL string (default: current route)
-     * @param  boolean       $redirectToUrl Use $redirect as a URL string (default: false)
+     * @param  bool          $redirectToUrl Use $redirect as a URL string (default: false)
      * @return Response
      */
     protected function handlePostRequest(FormInterface $form, $redirect, $redirectToUrl)
@@ -109,7 +109,7 @@ class FilePostRedirectGet extends AbstractPlugin
 
     /**
      * @param  FormInterface $form
-     * @return boolean|array
+     * @return bool|array
      */
     protected function handleGetRequest(FormInterface $form)
     {
@@ -288,7 +288,7 @@ class FilePostRedirectGet extends AbstractPlugin
      * TODO: Good candidate for traits method in PHP 5.4 with PostRedirectGet plugin
      *
      * @param  string  $redirect
-     * @param  boolean $redirectToUrl
+     * @param  bool    $redirectToUrl
      * @return Response
      * @throws \Zend\Mvc\Exception\RuntimeException
      */
diff --git a/vendor/zendframework/zendframework/library/Zend/Mvc/Controller/Plugin/FlashMessenger.php b/vendor/zendframework/zendframework/library/Zend/Mvc/Controller/Plugin/FlashMessenger.php
index 85bbd820f24..c1058813e80 100644
--- a/vendor/zendframework/zendframework/library/Zend/Mvc/Controller/Plugin/FlashMessenger.php
+++ b/vendor/zendframework/zendframework/library/Zend/Mvc/Controller/Plugin/FlashMessenger.php
@@ -235,7 +235,7 @@ class FlashMessenger extends AbstractPlugin implements IteratorAggregate, Counta
     /**
      * Whether "info" namespace has messages
      *
-     * @return boolean
+     * @return bool
      */
     public function hasInfoMessages()
     {
@@ -250,7 +250,7 @@ class FlashMessenger extends AbstractPlugin implements IteratorAggregate, Counta
     /**
      * Whether "success" namespace has messages
      *
-     * @return boolean
+     * @return bool
      */
     public function hasSuccessMessages()
     {
@@ -265,7 +265,7 @@ class FlashMessenger extends AbstractPlugin implements IteratorAggregate, Counta
     /**
      * Whether "error" namespace has messages
      *
-     * @return boolean
+     * @return bool
      */
     public function hasErrorMessages()
     {
@@ -356,7 +356,7 @@ class FlashMessenger extends AbstractPlugin implements IteratorAggregate, Counta
      * Clear all messages from specific namespace
      *
      * @param  string $namespaceToClear
-     * @return boolean True if messages were cleared, false if none existed
+     * @return bool True if messages were cleared, false if none existed
      */
     public function clearMessagesFromNamespace($namespaceToClear)
     {
@@ -371,7 +371,7 @@ class FlashMessenger extends AbstractPlugin implements IteratorAggregate, Counta
     /**
      * Clear all messages from the container
      *
-     * @return boolean True if messages were cleared, false if none existed
+     * @return bool True if messages were cleared, false if none existed
      */
     public function clearMessagesFromContainer()
     {
@@ -403,7 +403,7 @@ class FlashMessenger extends AbstractPlugin implements IteratorAggregate, Counta
      * Check to see if messages have been added to "info"
      * namespace within this request
      *
-     * @return boolean
+     * @return bool
      */
     public function hasCurrentInfoMessages()
     {
@@ -419,7 +419,7 @@ class FlashMessenger extends AbstractPlugin implements IteratorAggregate, Counta
      * Check to see if messages have been added to "success"
      * namespace within this request
      *
-     * @return boolean
+     * @return bool
      */
     public function hasCurrentSuccessMessages()
     {
@@ -435,7 +435,7 @@ class FlashMessenger extends AbstractPlugin implements IteratorAggregate, Counta
      * Check to see if messages have been added to "error"
      * namespace within this request
      *
-     * @return boolean
+     * @return bool
      */
     public function hasCurrentErrorMessages()
     {
@@ -533,7 +533,7 @@ class FlashMessenger extends AbstractPlugin implements IteratorAggregate, Counta
     /**
      * Clear messages from the current request and current namespace
      *
-     * @return bool
+     * @return bool True if current messages were cleared, false if none existed.
      */
     public function clearCurrentMessages()
     {
@@ -552,7 +552,7 @@ class FlashMessenger extends AbstractPlugin implements IteratorAggregate, Counta
      * Clear messages from the current namespace
      *
      * @param  string $namespaceToClear
-     * @return boolean
+     * @return bool True if current messages were cleared from the given namespace, false if none existed.
      */
     public function clearCurrentMessagesFromNamespace($namespaceToClear)
     {
@@ -567,7 +567,7 @@ class FlashMessenger extends AbstractPlugin implements IteratorAggregate, Counta
     /**
      * Clear messages from the container
      *
-     * @return boolean
+     * @return bool True if current messages were cleared from the container, false if none existed.
      */
     public function clearCurrentMessagesFromContainer()
     {
diff --git a/vendor/zendframework/zendframework/library/Zend/Mvc/Controller/Plugin/PostRedirectGet.php b/vendor/zendframework/zendframework/library/Zend/Mvc/Controller/Plugin/PostRedirectGet.php
index ce038a47539..9d178fe55c7 100644
--- a/vendor/zendframework/zendframework/library/Zend/Mvc/Controller/Plugin/PostRedirectGet.php
+++ b/vendor/zendframework/zendframework/library/Zend/Mvc/Controller/Plugin/PostRedirectGet.php
@@ -38,7 +38,7 @@ class PostRedirectGet extends AbstractPlugin
      * boolean false.
      *
      * @param  null|string $redirect
-     * @param  bool $redirectToUrl
+     * @param  bool        $redirectToUrl
      * @return \Zend\Http\Response|array|\Traversable|false
      */
     public function __invoke($redirect = null, $redirectToUrl = false)
@@ -87,7 +87,7 @@ class PostRedirectGet extends AbstractPlugin
      * TODO: Good candidate for traits method in PHP 5.4 with FilePostRedirectGet plugin
      *
      * @param  string  $redirect
-     * @param  boolean $redirectToUrl
+     * @param  bool    $redirectToUrl
      * @return \Zend\Http\Response
      * @throws \Zend\Mvc\Exception\RuntimeException
      */
diff --git a/vendor/zendframework/zendframework/library/Zend/Mvc/Controller/Plugin/Redirect.php b/vendor/zendframework/zendframework/library/Zend/Mvc/Controller/Plugin/Redirect.php
index 044d83c239d..885bac4b00e 100644
--- a/vendor/zendframework/zendframework/library/Zend/Mvc/Controller/Plugin/Redirect.php
+++ b/vendor/zendframework/zendframework/library/Zend/Mvc/Controller/Plugin/Redirect.php
@@ -68,7 +68,7 @@ class Redirect extends AbstractPlugin
     /**
      * Refresh to current route
      *
-     * @return string
+     * @return Response
      */
     public function refresh()
     {
diff --git a/vendor/zendframework/zendframework/library/Zend/Mvc/Router/Console/Simple.php b/vendor/zendframework/zendframework/library/Zend/Mvc/Router/Console/Simple.php
index efa7e3867ce..ffad1848b08 100644
--- a/vendor/zendframework/zendframework/library/Zend/Mvc/Router/Console/Simple.php
+++ b/vendor/zendframework/zendframework/library/Zend/Mvc/Router/Console/Simple.php
@@ -203,7 +203,7 @@ class Simple implements RouteInterface
              *    --param=
              *    --param=whatever
              */
-            if (preg_match('/\G--(?<name>[a-zA-Z0-9][a-zA-Z0-9\_\-]+)(?<hasValue>=\S*?)?(?: +|$)/s', $def, $m, 0, $pos)) {
+            if (preg_match('/\G--(?P<name>[a-zA-Z0-9][a-zA-Z0-9\_\-]+)(?P<hasValue>=\S*?)?(?: +|$)/s', $def, $m, 0, $pos)) {
                 $item = array(
                     'name'       => $m['name'],
                     'short'      => false,
@@ -218,7 +218,7 @@ class Simple implements RouteInterface
              *    [--param]
              */
             elseif (preg_match(
-                '/\G\[ *?--(?<name>[a-zA-Z0-9][a-zA-Z0-9\_\-]+) *?\](?: +|$)/s', $def, $m, 0, $pos
+                '/\G\[ *?--(?P<name>[a-zA-Z0-9][a-zA-Z0-9\_\-]+) *?\](?: +|$)/s', $def, $m, 0, $pos
             )) {
                 $item = array(
                     'name'       => $m['name'],
@@ -235,7 +235,7 @@ class Simple implements RouteInterface
              *    [--param=whatever]
              */
             elseif (preg_match(
-                '/\G\[ *?--(?<name>[a-zA-Z0-9][a-zA-Z0-9\_\-]+)(?<hasValue>=\S*?)? *?\](?: +|$)/s', $def, $m, 0, $pos
+                '/\G\[ *?--(?P<name>[a-zA-Z0-9][a-zA-Z0-9\_\-]+)(?P<hasValue>=\S*?)? *?\](?: +|$)/s', $def, $m, 0, $pos
             )) {
                 $item = array(
                     'name'       => $m['name'],
@@ -253,7 +253,7 @@ class Simple implements RouteInterface
              *    -a=s
              *    -a=w
              */
-            elseif (preg_match('/\G-(?<name>[a-zA-Z0-9])(?:=(?<type>[ns]))?(?: +|$)/s', $def, $m, 0, $pos)) {
+            elseif (preg_match('/\G-(?P<name>[a-zA-Z0-9])(?:=(?P<type>[ns]))?(?: +|$)/s', $def, $m, 0, $pos)) {
                 $item = array(
                     'name'       => $m['name'],
                     'short'      => true,
@@ -269,7 +269,7 @@ class Simple implements RouteInterface
              *    [-a=n]
              *    [-a=s]
              */
-            elseif (preg_match('/\G\[ *?-(?<name>[a-zA-Z0-9])(?:=(?<type>[ns]))? *?\](?: +|$)/s', $def, $m, 0, $pos)) {
+            elseif (preg_match('/\G\[ *?-(?P<name>[a-zA-Z0-9])(?:=(?P<type>[ns]))? *?\](?: +|$)/s', $def, $m, 0, $pos)) {
                 $item = array(
                     'name'       => $m['name'],
                     'short'      => true,
@@ -287,17 +287,17 @@ class Simple implements RouteInterface
             elseif (preg_match('/
                 \G
                 \[
-                    (?<options>
+                    (?P<options>
                         (?:
                             \ *?
-                            (?<name>[a-z0-9][a-zA-Z0-9_]*?)
+                            (?P<name>[a-z0-9][a-zA-Z0-9_]*?)
                             \ *?
                             (?:\||(?=\]))
                             \ *?
                         )+
                     )
                 \]
-                (?:\:(?<groupName>[a-zA-Z0-9]+))?
+                (?:\:(?P<groupName>[a-zA-Z0-9]+))?
                 (?:\ +|$)
                 /sx', $def, $m, 0, $pos
             )
@@ -327,17 +327,17 @@ class Simple implements RouteInterface
             elseif (preg_match('/
                 \G
                 \(
-                    (?<options>
+                    (?P<options>
                         (?:
                             \ *?
-                            (?<name>[a-z0-9][a-zA-Z0-9_]+)
+                            (?P<name>[a-z0-9][a-zA-Z0-9_]+)
                             \ *?
                             (?:\||(?=\)))
                             \ *?
                         )+
                     )
                 \)
-                (?:\:(?<groupName>[a-zA-Z0-9]+))?
+                (?:\:(?P<groupName>[a-zA-Z0-9]+))?
                 (?:\ +|$)
                 /sx', $def, $m, 0, $pos
             )) {
@@ -365,17 +365,17 @@ class Simple implements RouteInterface
             elseif (preg_match('/
                 \G
                 \(
-                    (?<options>
+                    (?P<options>
                         (?:
                             \ *?
-                            \-+(?<name>[a-zA-Z0-9][a-zA-Z0-9_\-]*?)
+                            \-+(?P<name>[a-zA-Z0-9][a-zA-Z0-9_\-]*?)
                             \ *?
                             (?:\||(?=\)))
                             \ *?
                         )+
                     )
                 \)
-                (?:\:(?<groupName>[a-zA-Z0-9]+))?
+                (?:\:(?P<groupName>[a-zA-Z0-9]+))?
                 (?:\ +|$)
                 /sx', $def, $m, 0, $pos
             )) {
@@ -408,17 +408,17 @@ class Simple implements RouteInterface
             elseif (preg_match('/
                 \G
                 \[
-                    (?<options>
+                    (?P<options>
                         (?:
                             \ *?
-                            \-+(?<name>[a-zA-Z0-9][a-zA-Z0-9_\-]*?)
+                            \-+(?P<name>[a-zA-Z0-9][a-zA-Z0-9_\-]*?)
                             \ *?
                             (?:\||(?=\]))
                             \ *?
                         )+
                     )
                 \]
-                (?:\:(?<groupName>[a-zA-Z0-9]+))?
+                (?:\:(?P<groupName>[a-zA-Z0-9]+))?
                 (?:\ +|$)
                 /sx', $def, $m, 0, $pos
             )) {
@@ -447,7 +447,7 @@ class Simple implements RouteInterface
              * Optional literal param, i.e.
              *    [something]
              */
-            elseif (preg_match('/\G\[ *?(?<name>[a-z0-9][a-zA-Z0-9\_]*?) *?\](?: +|$)/s', $def, $m, 0, $pos)) {
+            elseif (preg_match('/\G\[ *?(?P<name>[a-z0-9][a-zA-Z0-9\_]*?) *?\](?: +|$)/s', $def, $m, 0, $pos)) {
                 $item = array(
                     'name'       => $m['name'],
                     'literal'    => true,
@@ -460,7 +460,7 @@ class Simple implements RouteInterface
              * Optional value param, i.e.
              *    [SOMETHING]
              */
-            elseif (preg_match('/\G\[(?<name>[A-Z0-9\_]+)\](?: +|$)/s', $def, $m, 0, $pos)) {
+            elseif (preg_match('/\G\[(?P<name>[A-Z0-9\_]+)\](?: +|$)/s', $def, $m, 0, $pos)) {
                 $item = array(
                     'name'       => strtolower( $m['name'] ),
                     'literal'    => false,
@@ -473,7 +473,7 @@ class Simple implements RouteInterface
              * Optional value param, syntax 2, i.e.
              *    [<SOMETHING>]
              */
-            elseif (preg_match('/\G\[ *\<(?<name>[a-zA-Z0-9\_]+)\> *\](?: +|$)/s', $def, $m, 0, $pos)) {
+            elseif (preg_match('/\G\[ *\<(?P<name>[a-zA-Z0-9\_]+)\> *\](?: +|$)/s', $def, $m, 0, $pos)) {
                 $item = array(
                     'name'       => strtolower( $m['name'] ),
                     'literal'    => false,
@@ -486,7 +486,7 @@ class Simple implements RouteInterface
              * Mandatory value param, i.e.
              *    <something>
              */
-            elseif (preg_match('/\G\< *(?<name>[a-zA-Z0-9\_]+) *\>(?: +|$)/s', $def, $m, 0, $pos)) {
+            elseif (preg_match('/\G\< *(?P<name>[a-zA-Z0-9\_]+) *\>(?: +|$)/s', $def, $m, 0, $pos)) {
                 $item = array(
                     'name'       => $m['name'],
                     'literal'    => false,
@@ -499,7 +499,7 @@ class Simple implements RouteInterface
              * Mandatory value param, i.e.
              *   SOMETHING
              */
-            elseif (preg_match('/\G(?<name>[A-Z0-9\_]*?)(?: +|$)/s', $def, $m, 0, $pos)) {
+            elseif (preg_match('/\G(?P<name>[A-Z0-9\_]*?)(?: +|$)/s', $def, $m, 0, $pos)) {
                 $item = array(
                     'name'       => strtolower( $m['name'] ),
                     'literal'    => false,
@@ -512,7 +512,7 @@ class Simple implements RouteInterface
              * Mandatory literal param, i.e.
              *   something
              */
-            elseif (preg_match('/\G(?<name>[a-z0-9][a-zA-Z0-9\_]*?)(?: +|$)/s', $def, $m, 0, $pos)) {
+            elseif (preg_match('/\G(?P<name>[a-z0-9][a-zA-Z0-9\_]*?)(?: +|$)/s', $def, $m, 0, $pos)) {
                 $item = array(
                     'name'       => $m['name'],
                     'literal'    => true,
@@ -573,11 +573,11 @@ class Simple implements RouteInterface
              */
             if (isset($part['alternatives'])) {
                 // an alternative of flags
-                $regex = '/^\-+(?<name>';
+                $regex = '/^\-+(?P<name>';
                 $regex .= join('|', $part['alternatives']);
 
                 if ($part['hasValue']) {
-                    $regex .= ')(?:\=(?<value>.*?)$)?$/';
+                    $regex .= ')(?:\=(?P<value>.*?)$)?$/';
                 } else {
                     $regex .= ')$/i';
                 }
@@ -586,14 +586,14 @@ class Simple implements RouteInterface
                 if ($part['short'] === true) {
                     // short variant
                     if ($part['hasValue']) {
-                        $regex = '/^\-' . $part['name'] . '(?:\=(?<value>.*?)$)?$/i';
+                        $regex = '/^\-' . $part['name'] . '(?:\=(?P<value>.*?)$)?$/i';
                     } else {
                         $regex = '/^\-' . $part['name'] . '$/i';
                     }
                 } elseif ($part['short'] === false) {
                     // long variant
                     if ($part['hasValue']) {
-                        $regex = '/^\-{2,}' . $part['name'] . '(?:\=(?<value>.*?)$)?$/i';
+                        $regex = '/^\-{2,}' . $part['name'] . '(?:\=(?P<value>.*?)$)?$/i';
                     } else {
                         $regex = '/^\-{2,}' . $part['name'] . '$/i';
                     }
@@ -797,7 +797,7 @@ class Simple implements RouteInterface
             return null; // there are extraneous params that were not consumed
         }
 
-        return new RouteMatch(array_merge($this->defaults, $matches));
+        return new RouteMatch(array_replace($matches, $this->defaults));
     }
 
     /**
diff --git a/vendor/zendframework/zendframework/library/Zend/Mvc/Router/Http/Query.php b/vendor/zendframework/zendframework/library/Zend/Mvc/Router/Http/Query.php
index e6ce959f298..175b56b7e88 100644
--- a/vendor/zendframework/zendframework/library/Zend/Mvc/Router/Http/Query.php
+++ b/vendor/zendframework/zendframework/library/Zend/Mvc/Router/Http/Query.php
@@ -15,11 +15,6 @@ use Zend\Mvc\Router\Http\RouteMatch;
 use Zend\Stdlib\ArrayUtils;
 use Zend\Stdlib\RequestInterface as Request;
 
- /**
- * Legacy purposes only, to prevent code that uses it from breaking.
- */
-trigger_error('Query route deprecated as of ZF 2.1.4; use the "query" option of the HTTP router\'s assembling method instead', E_USER_DEPRECATED);
-
 /**
  * Query route.
  *
@@ -50,6 +45,10 @@ class Query implements RouteInterface
      */
     public function __construct(array $defaults = array())
     {
+        /**
+         * Legacy purposes only, to prevent code that uses it from breaking.
+         */
+        trigger_error('Query route deprecated as of ZF 2.1.4; use the "query" option of the HTTP router\'s assembling method instead', E_USER_DEPRECATED);
         $this->defaults = $defaults;
     }
 
diff --git a/vendor/zendframework/zendframework/library/Zend/Mvc/Router/Http/TreeRouteStack.php b/vendor/zendframework/zendframework/library/Zend/Mvc/Router/Http/TreeRouteStack.php
index 7496176d6dd..5eaec557a7f 100644
--- a/vendor/zendframework/zendframework/library/Zend/Mvc/Router/Http/TreeRouteStack.php
+++ b/vendor/zendframework/zendframework/library/Zend/Mvc/Router/Http/TreeRouteStack.php
@@ -188,6 +188,9 @@ class TreeRouteStack extends SimpleRouteStack
         }
 
         if (isset($names[1])) {
+            if (!$route instanceof TreeRouteStack) {
+                throw new Exception\RuntimeException(sprintf('Route with name "%s" does not have child routes', $names[0]));
+            }
             $options['name'] = $names[1];
         } else {
             unset($options['name']);
diff --git a/vendor/zendframework/zendframework/library/Zend/Mvc/Router/SimpleRouteStack.php b/vendor/zendframework/zendframework/library/Zend/Mvc/Router/SimpleRouteStack.php
index 08625c81fb5..8b6861b8ad0 100644
--- a/vendor/zendframework/zendframework/library/Zend/Mvc/Router/SimpleRouteStack.php
+++ b/vendor/zendframework/zendframework/library/Zend/Mvc/Router/SimpleRouteStack.php
@@ -205,8 +205,8 @@ class SimpleRouteStack implements RouteStackInterface
     /**
      * Check if a route with a specific name exists
      *
-     * @param string $name
-     * @return boolean true if route exists
+     * @param  string $name
+     * @return bool true if route exists
      */
     public function hasRoute($name)
     {
diff --git a/vendor/zendframework/zendframework/library/Zend/Mvc/SendResponseListener.php b/vendor/zendframework/zendframework/library/Zend/Mvc/SendResponseListener.php
index e91476e872d..3d577cc66c3 100644
--- a/vendor/zendframework/zendframework/library/Zend/Mvc/SendResponseListener.php
+++ b/vendor/zendframework/zendframework/library/Zend/Mvc/SendResponseListener.php
@@ -50,7 +50,7 @@ class SendResponseListener implements
     {
         $eventManager->setIdentifiers(array(
             __CLASS__,
-            get_called_class(),
+            get_class($this),
         ));
         $this->eventManager = $eventManager;
         $this->attachDefaultListeners();
diff --git a/vendor/zendframework/zendframework/library/Zend/Mvc/Service/ConsoleAdapterFactory.php b/vendor/zendframework/zendframework/library/Zend/Mvc/Service/ConsoleAdapterFactory.php
index 8d5fd7f8f30..57834defb58 100644
--- a/vendor/zendframework/zendframework/library/Zend/Mvc/Service/ConsoleAdapterFactory.php
+++ b/vendor/zendframework/zendframework/library/Zend/Mvc/Service/ConsoleAdapterFactory.php
@@ -29,7 +29,7 @@ class ConsoleAdapterFactory implements FactoryInterface
      *         'charset' => 'MyConsoleCharset',     // always use this console charset
      *      ),
      *      'service_manager' => array(
-     *          'invocables' => array(
+     *          'invokables' => array(
      *              'MyConsoleAdapter' => 'Zend\Console\Adapter\Windows',
      *              'MyConsoleCharset' => 'Zend\Console\Charset\DESCG',
      *          )
diff --git a/vendor/zendframework/zendframework/library/Zend/Mvc/Service/DiAbstractServiceFactoryFactory.php b/vendor/zendframework/zendframework/library/Zend/Mvc/Service/DiAbstractServiceFactoryFactory.php
index 1af683f33d5..b10813cacd3 100644
--- a/vendor/zendframework/zendframework/library/Zend/Mvc/Service/DiAbstractServiceFactoryFactory.php
+++ b/vendor/zendframework/zendframework/library/Zend/Mvc/Service/DiAbstractServiceFactoryFactory.php
@@ -17,10 +17,10 @@ use Zend\ServiceManager\ServiceManager;
 class DiAbstractServiceFactoryFactory implements FactoryInterface
 {
     /**
-     * Class responsible for instantiating a DiStrictAbstractServiceFactory
+     * Class responsible for instantiating a DiAbstractServiceFactory
      *
      * @param  ServiceLocatorInterface $serviceLocator
-     * @return DiStrictAbstractServiceFactory
+     * @return DiAbstractServiceFactory
      */
     public function createService(ServiceLocatorInterface $serviceLocator)
     {
diff --git a/vendor/zendframework/zendframework/library/Zend/Mvc/View/Console/RouteNotFoundStrategy.php b/vendor/zendframework/zendframework/library/Zend/Mvc/View/Console/RouteNotFoundStrategy.php
index 58cf48f2ed3..6fa34a19e1e 100644
--- a/vendor/zendframework/zendframework/library/Zend/Mvc/View/Console/RouteNotFoundStrategy.php
+++ b/vendor/zendframework/zendframework/library/Zend/Mvc/View/Console/RouteNotFoundStrategy.php
@@ -221,7 +221,8 @@ class RouteNotFoundStrategy implements ListenerAggregateInterface
                     continue; // this module does not provide a banner
                 }
 
-                $banners[] = $module->getConsoleBanner($console);
+                // We colorize each banners in blue for visual emphasis
+                $banners[] = $console->colorize($module->getConsoleBanner($console), ColorInterface::BLUE);
             }
         }
 
@@ -267,13 +268,24 @@ class RouteNotFoundStrategy implements ListenerAggregateInterface
                     continue; // this module does not provide usage info
                 }
 
+                // We prepend the usage by the module name (printed in red), so that each module is
+                // clearly visible by the user
+                $moduleName = sprintf("%s\n%s\n%s\n",
+                    str_repeat('-', $console->getWidth()),
+                    $name,
+                    str_repeat('-', $console->getWidth())
+                );
+
+                $moduleName = $console->colorize($moduleName, ColorInterface::RED);
+
                 $usage = $module->getConsoleUsage($console);
 
                 // Normalize what we got from the module or discard
                 if (is_array($usage)) {
+                    array_unshift($usage, $moduleName);
                     $usageInfo[$name] = $usage;
                 } elseif (is_string($usage)) {
-                    $usageInfo[$name] = array($usage);
+                    $usageInfo[$name] = array($moduleName, $usage);
                 }
             }
         }
diff --git a/vendor/zendframework/zendframework/library/Zend/Mvc/composer.json b/vendor/zendframework/zendframework/library/Zend/Mvc/composer.json
index 0020728a7e0..05b078e3773 100644
--- a/vendor/zendframework/zendframework/library/Zend/Mvc/composer.json
+++ b/vendor/zendframework/zendframework/library/Zend/Mvc/composer.json
@@ -14,6 +14,7 @@
     "target-dir": "Zend/Mvc",
     "require": {
         "php": ">=5.3.3",
+        "zendframework/zend-config": "self.version",
         "zendframework/zend-console": "self.version",
         "zendframework/zend-di": "self.version",
         "zendframework/zend-eventmanager": "self.version",
diff --git a/vendor/zendframework/zendframework/library/Zend/Navigation/AbstractContainer.php b/vendor/zendframework/zendframework/library/Zend/Navigation/AbstractContainer.php
index cfde1f80196..56a250eaad2 100644
--- a/vendor/zendframework/zendframework/library/Zend/Navigation/AbstractContainer.php
+++ b/vendor/zendframework/zendframework/library/Zend/Navigation/AbstractContainer.php
@@ -353,7 +353,7 @@ abstract class AbstractContainer implements Countable, RecursiveIterator
         if (!$result) {
             throw new Exception\BadMethodCallException(sprintf(
                 'Bad method call: Unknown method %s::%s',
-                get_called_class(),
+                get_class($this),
                 $method
             ), 0, $error);
         }
diff --git a/vendor/zendframework/zendframework/library/Zend/Navigation/Page/AbstractPage.php b/vendor/zendframework/zendframework/library/Zend/Navigation/Page/AbstractPage.php
index f82bf4d6a4f..0fb97fae9cc 100644
--- a/vendor/zendframework/zendframework/library/Zend/Navigation/Page/AbstractPage.php
+++ b/vendor/zendframework/zendframework/library/Zend/Navigation/Page/AbstractPage.php
@@ -1129,7 +1129,7 @@ abstract class AbstractPage extends AbstractContainer
             'privilege' => $this->getPrivilege(),
             'active'    => $this->isActive(),
             'visible'   => $this->isVisible(),
-            'type'      => get_called_class(),
+            'type'      => get_class($this),
             'pages'     => parent::toArray(),
         ));
     }
diff --git a/vendor/zendframework/zendframework/library/Zend/Navigation/Page/Mvc.php b/vendor/zendframework/zendframework/library/Zend/Navigation/Page/Mvc.php
index 0cd87ccae53..1267f4d9397 100644
--- a/vendor/zendframework/zendframework/library/Zend/Navigation/Page/Mvc.php
+++ b/vendor/zendframework/zendframework/library/Zend/Navigation/Page/Mvc.php
@@ -34,6 +34,13 @@ class Mvc extends AbstractPage
      */
     protected $controller;
 
+    /**
+     * URL query part to use when assembling URL
+     *
+     * @var array|string
+     */
+    protected $query;
+
     /**
      * Params to use when assembling URL
      *
@@ -183,7 +190,23 @@ class Mvc extends AbstractPage
             );
         }
 
-        $params = $this->getParams();
+        if ($this->getRouteMatch() !== null) {
+            $rmParams = $this->getRouteMatch()->getParams();
+
+            if (isset($rmParams[ModuleRouteListener::ORIGINAL_CONTROLLER])) {
+                $rmParams['controller'] = $rmParams[ModuleRouteListener::ORIGINAL_CONTROLLER];
+                unset($rmParams[ModuleRouteListener::ORIGINAL_CONTROLLER]);
+            }
+
+            if (isset($rmParams[ModuleRouteListener::MODULE_NAMESPACE])) {
+                unset($rmParams[ModuleRouteListener::MODULE_NAMESPACE]);
+            }
+
+            $params = array_merge($rmParams, $this->getParams());
+        } else {
+            $params = $this->getParams();
+        }
+
 
         if (($param = $this->getController()) != null) {
             $params['controller'] = $param;
@@ -205,14 +228,19 @@ class Mvc extends AbstractPage
         }
 
         $options = array('name' => $name);
-        $url = $router->assemble($params, $options);
 
         // Add the fragment identifier if it is set
         $fragment = $this->getFragment();
         if (null !== $fragment) {
-            $url .= '#' . $fragment;
+            $options['fragment'] = $fragment;
         }
 
+        if (null !== ($query = $this->getQuery())) {
+            $options['query'] = $query;
+        }
+
+        $url = $router->assemble($params, $options);
+
         return $this->hrefCache = $url;
     }
 
@@ -284,6 +312,32 @@ class Mvc extends AbstractPage
         return $this->controller;
     }
 
+    /**
+     * Sets URL query part to use when assembling URL
+     *
+     * @see getHref()
+     * @param  array|string|null $query    URL query part
+     * @return self   fluent interface, returns self
+     */
+    public function setQuery($query)
+    {
+        $this->query      = $query;
+        $this->hrefCache  = null;
+        return $this;
+    }
+
+    /**
+     * Returns URL query part to use when assembling URL
+     *
+     * @see getHref()
+     *
+     * @return array|string|null  URL query part (as an array or string) or null
+     */
+    public function getQuery()
+    {
+        return $this->query;
+    }
+
     /**
      * Sets params to use when assembling URL
      *
diff --git a/vendor/zendframework/zendframework/library/Zend/Navigation/Service/AbstractNavigationFactory.php b/vendor/zendframework/zendframework/library/Zend/Navigation/Service/AbstractNavigationFactory.php
index 89368e88144..f5af421edc2 100644
--- a/vendor/zendframework/zendframework/library/Zend/Navigation/Service/AbstractNavigationFactory.php
+++ b/vendor/zendframework/zendframework/library/Zend/Navigation/Service/AbstractNavigationFactory.php
@@ -63,16 +63,26 @@ abstract class AbstractNavigationFactory implements FactoryInterface
                 ));
             }
 
-            $application = $serviceLocator->get('Application');
-            $routeMatch  = $application->getMvcEvent()->getRouteMatch();
-            $router      = $application->getMvcEvent()->getRouter();
             $pages       = $this->getPagesFromConfig($configuration['navigation'][$this->getName()]);
-
-            $this->pages = $this->injectComponents($pages, $routeMatch, $router);
+            $this->pages = $this->preparePages($serviceLocator, $pages);
         }
         return $this->pages;
     }
 
+    /**
+     * @param ServiceLocatorInterface $serviceLocator
+     * @param array|\Zend\Config\Config $pages
+     * @throws \Zend\Navigation\Exception\InvalidArgumentException
+     */
+    protected function preparePages(ServiceLocatorInterface $serviceLocator, $pages)
+    {
+        $application = $serviceLocator->get('Application');
+        $routeMatch  = $application->getMvcEvent()->getRouteMatch();
+        $router      = $application->getMvcEvent()->getRouter();
+
+        return $this->injectComponents($pages, $routeMatch, $router);
+    }
+
     /**
      * @param string|\Zend\Config\Config|array $config
      * @return array|null|\Zend\Config\Config
diff --git a/vendor/zendframework/zendframework/library/Zend/Navigation/Service/ConstructedNavigationFactory.php b/vendor/zendframework/zendframework/library/Zend/Navigation/Service/ConstructedNavigationFactory.php
index bbf75fa5abc..373c5887b18 100644
--- a/vendor/zendframework/zendframework/library/Zend/Navigation/Service/ConstructedNavigationFactory.php
+++ b/vendor/zendframework/zendframework/library/Zend/Navigation/Service/ConstructedNavigationFactory.php
@@ -16,12 +16,17 @@ use Zend\ServiceManager\ServiceLocatorInterface;
  */
 class ConstructedNavigationFactory extends AbstractNavigationFactory
 {
+    /**
+     * @var string|\Zend\Config\Config|array
+     */
+    protected $config;
+
     /**
      * @param string|\Zend\Config\Config|array $config
      */
     public function __construct($config)
     {
-        $this->pages = $this->getPagesFromConfig($config);
+        $this->config = $config;
     }
 
     /**
@@ -30,6 +35,9 @@ class ConstructedNavigationFactory extends AbstractNavigationFactory
      */
     public function getPages(ServiceLocatorInterface $serviceLocator)
     {
+        if (null === $this->pages) {
+            $this->pages = $this->preparePages($serviceLocator, $this->getPagesFromConfig($this->config));
+        }
         return $this->pages;
     }
 
diff --git a/vendor/zendframework/zendframework/library/Zend/Permissions/Acl/Acl.php b/vendor/zendframework/zendframework/library/Zend/Permissions/Acl/Acl.php
index e12a363cc8d..5774d21ed6d 100644
--- a/vendor/zendframework/zendframework/library/Zend/Permissions/Acl/Acl.php
+++ b/vendor/zendframework/zendframework/library/Zend/Permissions/Acl/Acl.php
@@ -556,6 +556,10 @@ class Acl implements AclInterface
         if (!is_array($resources)) {
             if (null === $resources && count($this->resources) > 0) {
                 $resources = array_keys($this->resources);
+                // Passing a null resource; make sure "global" permission is also set!
+                if (!in_array(null, $resources)) {
+                    array_unshift($resources, null);
+                }
             } else {
                 $resources = array($resources);
             }
diff --git a/vendor/zendframework/zendframework/library/Zend/Permissions/Acl/Role/Registry.php b/vendor/zendframework/zendframework/library/Zend/Permissions/Acl/Role/Registry.php
index 0ea49d0f9ff..9cbb8474345 100644
--- a/vendor/zendframework/zendframework/library/Zend/Permissions/Acl/Role/Registry.php
+++ b/vendor/zendframework/zendframework/library/Zend/Permissions/Acl/Role/Registry.php
@@ -9,6 +9,7 @@
 
 namespace Zend\Permissions\Acl\Role;
 
+use Traversable;
 use Zend\Permissions\Acl\Exception;
 
 class Registry
@@ -34,8 +35,8 @@ class Registry
      * will have the least priority, and the last parent added will have the
      * highest priority.
      *
-     * @param  RoleInterface              $role
-     * @param  RoleInterface|string|array $parents
+     * @param  RoleInterface                           $role
+     * @param  RoleInterface|string|array|Traversable $parents
      * @throws Exception\InvalidArgumentException
      * @return Registry Provides a fluent interface
      */
@@ -53,7 +54,7 @@ class Registry
         $roleParents = array();
 
         if (null !== $parents) {
-            if (!is_array($parents)) {
+            if (!is_array($parents) && !$parents instanceof Traversable) {
                 $parents = array($parents);
             }
             foreach ($parents as $parent) {
diff --git a/vendor/zendframework/zendframework/library/Zend/Permissions/Rbac/AbstractIterator.php b/vendor/zendframework/zendframework/library/Zend/Permissions/Rbac/AbstractIterator.php
index 43e38c37a9f..df9c8f86c69 100644
--- a/vendor/zendframework/zendframework/library/Zend/Permissions/Rbac/AbstractIterator.php
+++ b/vendor/zendframework/zendframework/library/Zend/Permissions/Rbac/AbstractIterator.php
@@ -80,7 +80,11 @@ abstract class AbstractIterator implements RecursiveIterator
      */
     public function hasChildren()
     {
-        return count($this->children) > 0;
+        if ($this->valid() && ($this->current() instanceof RecursiveIterator)) {
+            return true;
+        }
+
+        return false;
     }
 
     /**
diff --git a/vendor/zendframework/zendframework/library/Zend/Permissions/Rbac/Rbac.php b/vendor/zendframework/zendframework/library/Zend/Permissions/Rbac/Rbac.php
index fd3c67d16e1..91880b7eebc 100644
--- a/vendor/zendframework/zendframework/library/Zend/Permissions/Rbac/Rbac.php
+++ b/vendor/zendframework/zendframework/library/Zend/Permissions/Rbac/Rbac.php
@@ -45,7 +45,7 @@ class Rbac extends AbstractIterator
      *
      * @param  string|RoleInterface               $child
      * @param  array|RoleInterface|null           $parents
-     * @return RoleInterface
+     * @return self
      * @throws Exception\InvalidArgumentException
      */
     public function addRole($child, $parents = null)
diff --git a/vendor/zendframework/zendframework/library/Zend/Serializer/Adapter/PythonPickle.php b/vendor/zendframework/zendframework/library/Zend/Serializer/Adapter/PythonPickle.php
index 201ea39dee9..4cd157ee29a 100644
--- a/vendor/zendframework/zendframework/library/Zend/Serializer/Adapter/PythonPickle.php
+++ b/vendor/zendframework/zendframework/library/Zend/Serializer/Adapter/PythonPickle.php
@@ -234,7 +234,7 @@ class PythonPickle extends AbstractAdapter
             throw new Exception\RuntimeException(sprintf(
                 'PHP-Type "%s" can not be serialized by %s',
                 gettype($value),
-                get_called_class()
+                get_class($this)
             ));
         }
     }
diff --git a/vendor/zendframework/zendframework/library/Zend/Server/AbstractServer.php b/vendor/zendframework/zendframework/library/Zend/Server/AbstractServer.php
index 60aad985c80..85b0171d082 100644
--- a/vendor/zendframework/zendframework/library/Zend/Server/AbstractServer.php
+++ b/vendor/zendframework/zendframework/library/Zend/Server/AbstractServer.php
@@ -120,13 +120,13 @@ abstract class AbstractServer implements Server
     /**
      * Dispatch method
      *
-     * @param  Method\Definition $invocable
+     * @param  Method\Definition $invokable
      * @param  array $params
      * @return mixed
      */
-    protected function _dispatch(Method\Definition $invocable, array $params)
+    protected function _dispatch(Method\Definition $invokable, array $params)
     {
-        $callback = $invocable->getCallback();
+        $callback = $invokable->getCallback();
         $type     = $callback->getType();
 
         if ('function' == $type) {
@@ -141,9 +141,9 @@ abstract class AbstractServer implements Server
             return call_user_func_array(array($class, $method), $params);
         }
 
-        $object = $invocable->getObject();
+        $object = $invokable->getObject();
         if (!is_object($object)) {
-            $invokeArgs = $invocable->getInvokeArguments();
+            $invokeArgs = $invokable->getInvokeArguments();
             if (!empty($invokeArgs)) {
                 $reflection = new ReflectionClass($class);
                 $object     = $reflection->newInstanceArgs($invokeArgs);
diff --git a/vendor/zendframework/zendframework/library/Zend/ServiceManager/ServiceManager.php b/vendor/zendframework/zendframework/library/Zend/ServiceManager/ServiceManager.php
index 4b503e21e2b..8d12f9f2374 100644
--- a/vendor/zendframework/zendframework/library/Zend/ServiceManager/ServiceManager.php
+++ b/vendor/zendframework/zendframework/library/Zend/ServiceManager/ServiceManager.php
@@ -148,7 +148,7 @@ class ServiceManager implements ServiceLocatorInterface
         if ($this->allowOverride === false) {
             throw new Exception\RuntimeException(sprintf(
                 '%s: cannot alter default shared service setting; container is marked immutable (allow_override is false)',
-                __METHOD__
+                get_class($this) . '::' . __FUNCTION__
             ));
         }
         $this->shareByDefault = (bool) $shareByDefault;
@@ -362,7 +362,7 @@ class ServiceManager implements ServiceLocatorInterface
             if ($this->allowOverride === false) {
                 throw new Exception\InvalidServiceNameException(sprintf(
                     '%s: A service by the name "%s" or alias already exists and cannot be overridden, please use an alternate name.',
-                    __METHOD__,
+                    get_class($this) . '::' . __FUNCTION__,
                     $name
                 ));
             }
@@ -391,7 +391,7 @@ class ServiceManager implements ServiceLocatorInterface
         ) {
             throw new Exception\ServiceNotFoundException(sprintf(
                 '%s: A service by the name "%s" was not found and could not be marked as shared',
-                __METHOD__,
+                get_class($this) . '::' . __FUNCTION__,
                 $name
             ));
         }
@@ -455,7 +455,7 @@ class ServiceManager implements ServiceLocatorInterface
 
             throw new Exception\ServiceNotFoundException(sprintf(
                 '%s was unable to fetch or create an instance for %s',
-                __METHOD__,
+                get_class($this) . '::' . __FUNCTION__,
                 $name
             ));
         }
@@ -838,7 +838,7 @@ class ServiceManager implements ServiceLocatorInterface
         if (!class_exists($invokable)) {
             throw new Exception\ServiceNotFoundException(sprintf(
                 '%s: failed retrieving "%s%s" via invokable class "%s"; class does not exist',
-                __METHOD__,
+                get_class($this) . '::' . __FUNCTION__,
                 $canonicalName,
                 ($requestedName ? '(alias: ' . $requestedName . ')' : ''),
                 $invokable
diff --git a/vendor/zendframework/zendframework/library/Zend/Session/Config/StandardConfig.php b/vendor/zendframework/zendframework/library/Zend/Session/Config/StandardConfig.php
index af8f22f526c..9424a8b2c77 100644
--- a/vendor/zendframework/zendframework/library/Zend/Session/Config/StandardConfig.php
+++ b/vendor/zendframework/zendframework/library/Zend/Session/Config/StandardConfig.php
@@ -803,7 +803,7 @@ class StandardConfig implements ConfigInterface
             throw new Exception\BadMethodCallException(sprintf(
                 'Method "%s" does not exist in %s',
                 $method,
-                get_called_class()
+                get_class($this)
             ));
         }
     }
diff --git a/vendor/zendframework/zendframework/library/Zend/Stdlib/AbstractOptions.php b/vendor/zendframework/zendframework/library/Zend/Stdlib/AbstractOptions.php
index 8099c75ff96..0e68c29e11c 100644
--- a/vendor/zendframework/zendframework/library/Zend/Stdlib/AbstractOptions.php
+++ b/vendor/zendframework/zendframework/library/Zend/Stdlib/AbstractOptions.php
@@ -22,6 +22,8 @@ abstract class AbstractOptions implements ParameterObjectInterface
     protected $__strictMode__ = true;
 
     /**
+     * Constructor
+     *
      * @param  array|Traversable|null $options
      */
     public function __construct($options = null)
@@ -32,22 +34,29 @@ abstract class AbstractOptions implements ParameterObjectInterface
     }
 
     /**
-     * @param  array|Traversable $options
+     * Set one or more configuration properties
+     *
+     * @param  array|Traversable|AbstractOptions $options
      * @throws Exception\InvalidArgumentException
      * @return AbstractOptions Provides fluent interface
      */
     public function setFromArray($options)
     {
+        if ($options instanceof self) {
+            $options = $options->toArray();
+        }
+
         if (!is_array($options) && !$options instanceof Traversable) {
             throw new Exception\InvalidArgumentException(sprintf(
-                'Parameter provided to %s must be an array or Traversable',
-                __METHOD__
+                'Parameter provided to %s must be an %s, %s or %s',
+                __METHOD__, 'array', 'Traversable', 'Zend\Stdlib\AbstractOptions'
             ));
         }
 
         foreach ($options as $key => $value) {
             $this->__set($key, $value);
         }
+
         return $this;
     }
 
@@ -72,6 +81,8 @@ abstract class AbstractOptions implements ParameterObjectInterface
     }
 
     /**
+     * Set a configuration property
+     *
      * @see ParameterObject::__set()
      * @param string $key
      * @param mixed $value
@@ -94,6 +105,8 @@ abstract class AbstractOptions implements ParameterObjectInterface
     }
 
     /**
+     * Get a configuration property
+     *
      * @see ParameterObject::__get()
      * @param string $key
      * @throws Exception\BadMethodCallException
@@ -114,6 +127,7 @@ abstract class AbstractOptions implements ParameterObjectInterface
     }
 
     /**
+     * Test if a configuration property is null
      * @see ParameterObject::__isset()
      * @param string $key
      * @return bool
@@ -124,6 +138,8 @@ abstract class AbstractOptions implements ParameterObjectInterface
     }
 
     /**
+     * Set a configuration property to NULL
+     *
      * @see ParameterObject::__unset()
      * @param string $key
      * @throws Exception\InvalidArgumentException
diff --git a/vendor/zendframework/zendframework/library/Zend/Stdlib/Hydrator/ClassMethods.php b/vendor/zendframework/zendframework/library/Zend/Stdlib/Hydrator/ClassMethods.php
index 679df32c818..5ad76c0a73d 100644
--- a/vendor/zendframework/zendframework/library/Zend/Stdlib/Hydrator/ClassMethods.php
+++ b/vendor/zendframework/zendframework/library/Zend/Stdlib/Hydrator/ClassMethods.php
@@ -177,7 +177,7 @@ class ClassMethods extends AbstractHydrator implements HydratorOptionsInterface
             if ($this->underscoreSeparatedKeys) {
                 $method = preg_replace_callback('/(_[a-z])/', $transform, $method);
             }
-            if (method_exists($object, $method)) {
+            if (is_callable(array($object, $method))) {
                 $value = $this->hydrateValue($property, $value);
 
                 $object->$method($value);
diff --git a/vendor/zendframework/zendframework/library/Zend/Stdlib/PriorityQueue.php b/vendor/zendframework/zendframework/library/Zend/Stdlib/PriorityQueue.php
index 5c0c13db93b..bf6a624ac83 100644
--- a/vendor/zendframework/zendframework/library/Zend/Stdlib/PriorityQueue.php
+++ b/vendor/zendframework/zendframework/library/Zend/Stdlib/PriorityQueue.php
@@ -98,9 +98,12 @@ class PriorityQueue implements Countable, IteratorAggregate, Serializable
         if ($found) {
             unset($this->items[$key]);
             $this->queue = null;
-            $queue = $this->getQueue();
-            foreach ($this->items as $item) {
-                $queue->insert($item['data'], $item['priority']);
+
+            if (!$this->isEmpty()) {
+                $queue = $this->getQueue();
+                foreach ($this->items as $item) {
+                    $queue->insert($item['data'], $item['priority']);
+                }
             }
             return true;
         }
diff --git a/vendor/zendframework/zendframework/library/Zend/Stdlib/composer.json b/vendor/zendframework/zendframework/library/Zend/Stdlib/composer.json
index 017b1ca8254..b644ae4fd90 100644
--- a/vendor/zendframework/zendframework/library/Zend/Stdlib/composer.json
+++ b/vendor/zendframework/zendframework/library/Zend/Stdlib/composer.json
@@ -9,10 +9,7 @@
     "autoload": {
         "psr-0": {
             "Zend\\Stdlib\\": ""
-        },
-        "files": [
-            "Zend/Stdlib/compatibility/autoload.php"
-        ]
+        }
     },
     "target-dir": "Zend/Stdlib",
     "suggest": {
diff --git a/vendor/zendframework/zendframework/library/Zend/Test/PHPUnit/Controller/AbstractControllerTestCase.php b/vendor/zendframework/zendframework/library/Zend/Test/PHPUnit/Controller/AbstractControllerTestCase.php
index 7d6a0fbcce9..70d79c72e96 100644
--- a/vendor/zendframework/zendframework/library/Zend/Test/PHPUnit/Controller/AbstractControllerTestCase.php
+++ b/vendor/zendframework/zendframework/library/Zend/Test/PHPUnit/Controller/AbstractControllerTestCase.php
@@ -233,6 +233,7 @@ abstract class AbstractControllerTestCase extends PHPUnit_Framework_TestCase
         $request->setQuery(new Parameters($query));
         $request->setPost(new Parameters($post));
         $request->setUri($uri);
+        $request->setRequestUri($uri->getPath());
 
         return $this;
     }
diff --git a/vendor/zendframework/zendframework/library/Zend/Test/PHPUnit/Controller/AbstractHttpControllerTestCase.php b/vendor/zendframework/zendframework/library/Zend/Test/PHPUnit/Controller/AbstractHttpControllerTestCase.php
index 8a11500547b..0f117bd5268 100644
--- a/vendor/zendframework/zendframework/library/Zend/Test/PHPUnit/Controller/AbstractHttpControllerTestCase.php
+++ b/vendor/zendframework/zendframework/library/Zend/Test/PHPUnit/Controller/AbstractHttpControllerTestCase.php
@@ -171,7 +171,7 @@ abstract class AbstractHttpControllerTestCase extends AbstractControllerTestCase
         $responseHeader = $this->getResponseHeader('Location');
         if (false === $responseHeader) {
             throw new PHPUnit_Framework_ExpectationFailedException(
-                'Failed asserting response is NOT a redirect'
+                'Failed asserting response is a redirect'
             );
         }
         $this->assertNotEquals(false, $responseHeader);
@@ -185,7 +185,7 @@ abstract class AbstractHttpControllerTestCase extends AbstractControllerTestCase
         $responseHeader = $this->getResponseHeader('Location');
         if (false !== $responseHeader) {
             throw new PHPUnit_Framework_ExpectationFailedException(sprintf(
-                'Failed asserting response is a redirect, actual redirection is "%s"',
+                'Failed asserting response is NOT a redirect, actual redirection is "%s"',
                 $responseHeader->getFieldValue()
             ));
         }
diff --git a/vendor/zendframework/zendframework/library/Zend/Uri/Uri.php b/vendor/zendframework/zendframework/library/Zend/Uri/Uri.php
index 8bf6cbb8a46..6e12c3f9cf6 100644
--- a/vendor/zendframework/zendframework/library/Zend/Uri/Uri.php
+++ b/vendor/zendframework/zendframework/library/Zend/Uri/Uri.php
@@ -677,7 +677,7 @@ class Uri implements UriInterface
             throw new Exception\InvalidUriPartException(sprintf(
                 'Scheme "%s" is not valid or is not accepted by %s',
                 $scheme,
-                get_called_class()
+                get_class($this)
             ), Exception\InvalidUriPartException::INVALID_SCHEME);
         }
 
@@ -726,7 +726,7 @@ class Uri implements UriInterface
             throw new Exception\InvalidUriPartException(sprintf(
                 'Host "%s" is not valid or is not accepted by %s',
                 $host,
-                get_called_class()
+                get_class($this)
             ), Exception\InvalidUriPartException::INVALID_HOSTNAME);
         }
 
diff --git a/vendor/zendframework/zendframework/library/Zend/Validator/CreditCard.php b/vendor/zendframework/zendframework/library/Zend/Validator/CreditCard.php
index 9867e56b62d..4d55e0b90e0 100644
--- a/vendor/zendframework/zendframework/library/Zend/Validator/CreditCard.php
+++ b/vendor/zendframework/zendframework/library/Zend/Validator/CreditCard.php
@@ -51,7 +51,7 @@ class CreditCard extends AbstractValidator
         self::INVALID        => "Invalid type given. String expected",
         self::LENGTH         => "The input contains an invalid amount of digits",
         self::PREFIX         => "The input is not from an allowed institute",
-        self::SERVICE        => "The input seems to be an invalid credit card number.",
+        self::SERVICE        => "The input seems to be an invalid credit card number",
         self::SERVICEFAILURE => "An exception has been raised while validating the input",
     );
 
diff --git a/vendor/zendframework/zendframework/library/Zend/Validator/Explode.php b/vendor/zendframework/zendframework/library/Zend/Validator/Explode.php
index da36805652d..e8a80499d03 100644
--- a/vendor/zendframework/zendframework/library/Zend/Validator/Explode.php
+++ b/vendor/zendframework/zendframework/library/Zend/Validator/Explode.php
@@ -20,7 +20,7 @@ class Explode extends AbstractValidator
      * @var array
      */
     protected $messageTemplates = array(
-        self::INVALID => "Invalid type given.",
+        self::INVALID => "Invalid type given",
     );
 
     /**
diff --git a/vendor/zendframework/zendframework/library/Zend/Validator/File/ExcludeMimeType.php b/vendor/zendframework/zendframework/library/Zend/Validator/File/ExcludeMimeType.php
index 942c7c4f44c..2d2477455ec 100644
--- a/vendor/zendframework/zendframework/library/Zend/Validator/File/ExcludeMimeType.php
+++ b/vendor/zendframework/zendframework/library/Zend/Validator/File/ExcludeMimeType.php
@@ -61,13 +61,12 @@ class ExcludeMimeType extends MimeType
 
         $mimefile = $this->getMagicFile();
         if (class_exists('finfo', false)) {
-            $const = defined('FILEINFO_MIME_TYPE') ? FILEINFO_MIME_TYPE : FILEINFO_MIME;
             if (!$this->isMagicFileDisabled() && (!empty($mimefile) && empty($this->finfo))) {
-                $this->finfo = finfo_open($const, $mimefile);
+                $this->finfo = finfo_open(FILEINFO_MIME_TYPE, $mimefile);
             }
 
             if (empty($this->finfo)) {
-                $this->finfo = finfo_open($const);
+                $this->finfo = finfo_open(FILEINFO_MIME_TYPE);
             }
 
             $this->type = null;
diff --git a/vendor/zendframework/zendframework/library/Zend/Validator/File/MimeType.php b/vendor/zendframework/zendframework/library/Zend/Validator/File/MimeType.php
index c565b1e5d44..b52bc78f982 100644
--- a/vendor/zendframework/zendframework/library/Zend/Validator/File/MimeType.php
+++ b/vendor/zendframework/zendframework/library/Zend/Validator/File/MimeType.php
@@ -201,9 +201,8 @@ class MimeType extends AbstractValidator
                 $file
             ));
         } else {
-            $const = defined('FILEINFO_MIME_TYPE') ? FILEINFO_MIME_TYPE : FILEINFO_MIME;
             ErrorHandler::start(E_NOTICE|E_WARNING);
-            $this->finfo = finfo_open($const, $file);
+            $this->finfo = finfo_open(FILEINFO_MIME_TYPE, $file);
             $error       = ErrorHandler::stop();
             if (empty($this->finfo)) {
                 $this->finfo = null;
@@ -376,16 +375,15 @@ class MimeType extends AbstractValidator
 
         $mimefile = $this->getMagicFile();
         if (class_exists('finfo', false)) {
-            $const = defined('FILEINFO_MIME_TYPE') ? FILEINFO_MIME_TYPE : FILEINFO_MIME;
             if (!$this->isMagicFileDisabled() && (!empty($mimefile) && empty($this->finfo))) {
                 ErrorHandler::start(E_NOTICE|E_WARNING);
-                $this->finfo = finfo_open($const, $mimefile);
+                $this->finfo = finfo_open(FILEINFO_MIME_TYPE, $mimefile);
                 ErrorHandler::stop();
             }
 
             if (empty($this->finfo)) {
                 ErrorHandler::start(E_NOTICE|E_WARNING);
-                $this->finfo = finfo_open($const);
+                $this->finfo = finfo_open(FILEINFO_MIME_TYPE);
                 ErrorHandler::stop();
             }
 
diff --git a/vendor/zendframework/zendframework/library/Zend/Validator/File/WordCount.php b/vendor/zendframework/zendframework/library/Zend/Validator/File/WordCount.php
index 2d0223bdcbd..7f473ae3094 100644
--- a/vendor/zendframework/zendframework/library/Zend/Validator/File/WordCount.php
+++ b/vendor/zendframework/zendframework/library/Zend/Validator/File/WordCount.php
@@ -28,8 +28,8 @@ class WordCount extends AbstractValidator
      * @var array Error message templates
      */
     protected $messageTemplates = array(
-        self::TOO_MUCH => "Too many words, maximum '%max%' are allowed but '%count%' were counted.",
-        self::TOO_LESS => "Too less words, minimum '%min%' are expected but '%count%' were counted",
+        self::TOO_MUCH => "Too many words, maximum '%max%' are allowed but '%count%' were counted",
+        self::TOO_LESS => "Too few words, minimum '%min%' are expected but '%count%' were counted",
         self::NOT_FOUND => "File is not readable or does not exist",
     );
 
diff --git a/vendor/zendframework/zendframework/library/Zend/Validator/InArray.php b/vendor/zendframework/zendframework/library/Zend/Validator/InArray.php
index 2732fa986e6..d4392e00191 100644
--- a/vendor/zendframework/zendframework/library/Zend/Validator/InArray.php
+++ b/vendor/zendframework/zendframework/library/Zend/Validator/InArray.php
@@ -75,7 +75,7 @@ class InArray extends AbstractValidator
      */
     public function getHaystack()
     {
-        if ($this->haystack == null) {
+        if ($this->haystack === null) {
             throw new Exception\RuntimeException('haystack option is mandatory');
         }
         return $this->haystack;
diff --git a/vendor/zendframework/zendframework/library/Zend/Version/Version.php b/vendor/zendframework/zendframework/library/Zend/Version/Version.php
index 74fc92560ad..08325138bb8 100644
--- a/vendor/zendframework/zendframework/library/Zend/Version/Version.php
+++ b/vendor/zendframework/zendframework/library/Zend/Version/Version.php
@@ -19,7 +19,7 @@ final class Version
     /**
      * Zend Framework version identification - see compareVersion()
      */
-    const VERSION = '2.1.4';
+    const VERSION = '2.1.5';
 
     /**
      * Github Service Identifier for version information is retreived from
diff --git a/vendor/zendframework/zendframework/library/Zend/View/Helper/FlashMessenger.php b/vendor/zendframework/zendframework/library/Zend/View/Helper/FlashMessenger.php
index 7d066118c65..e94aa8bcd08 100644
--- a/vendor/zendframework/zendframework/library/Zend/View/Helper/FlashMessenger.php
+++ b/vendor/zendframework/zendframework/library/Zend/View/Helper/FlashMessenger.php
@@ -124,7 +124,7 @@ class FlashMessenger extends AbstractTranslatorHelper implements ServiceLocatorA
 
         // Generate markup
         $markup  = sprintf($this->getMessageOpenFormat(), ' class="' . implode(' ', $classes) . '"');
-        $markup .= implode($this->getMessageSeparatorString(), $messagesToPrint);
+        $markup .= implode(sprintf($this->getMessageSeparatorString(), ' class="' . implode(' ', $classes) . '"'), $messagesToPrint);
         $markup .= $this->getMessageCloseString();
 
         return $markup;
diff --git a/vendor/zendframework/zendframework/library/Zend/View/Helper/Navigation.php b/vendor/zendframework/zendframework/library/Zend/View/Helper/Navigation.php
index 931817526a8..a0b78fef6e5 100644
--- a/vendor/zendframework/zendframework/library/Zend/View/Helper/Navigation.php
+++ b/vendor/zendframework/zendframework/library/Zend/View/Helper/Navigation.php
@@ -190,6 +190,10 @@ class Navigation extends AbstractNavigationHelper
             $helper->setContainer();
             $this->inject($helper);
             $this->injected[$hash] = true;
+        } else {
+            if ($this->getInjectContainer()) {
+                $helper->setContainer($container);
+            }
         }
 
         return $helper;
diff --git a/vendor/zendframework/zendframework/library/Zend/View/View.php b/vendor/zendframework/zendframework/library/Zend/View/View.php
index 511f406ac13..c2f4cb21dff 100644
--- a/vendor/zendframework/zendframework/library/Zend/View/View.php
+++ b/vendor/zendframework/zendframework/library/Zend/View/View.php
@@ -89,7 +89,7 @@ class View implements EventManagerAwareInterface
     {
         $events->setIdentifiers(array(
             __CLASS__,
-            get_called_class(),
+            get_class($this),
         ));
         $this->events = $events;
         return $this;
@@ -184,6 +184,10 @@ class View implements EventManagerAwareInterface
         $event->setRenderer($renderer);
         $results = $events->trigger(ViewEvent::EVENT_RENDERER_POST, $event);
 
+        // If EVENT_RENDERER or EVENT_RENDERER_POST changed the model, make sure
+        // we use this new model instead of the current $model
+        $model   = $event->getModel();
+
         // If we have children, render them first, but only if:
         // a) the renderer does not implement TreeRendererInterface, or
         // b) it does, but canRenderTrees() returns false
diff --git a/vendor/zendframework/zendframework/library/Zend/View/composer.json b/vendor/zendframework/zendframework/library/Zend/View/composer.json
index bb22db9ebcb..6982ec17d28 100644
--- a/vendor/zendframework/zendframework/library/Zend/View/composer.json
+++ b/vendor/zendframework/zendframework/library/Zend/View/composer.json
@@ -19,7 +19,8 @@
         "zendframework/zend-stdlib": "self.version"
     },
     "suggest": {
-        "zendframework/zend-filter": "Zend\\Filter component"
+        "zendframework/zend-filter": "Zend\\Filter component",
+        "zendframework/zend-servicemanager": "self.version"
     },
     "extra": {
         "branch-alias": {
diff --git a/vendor/zendframework/zendframework/resources/languages/ar/Zend_Validate.php b/vendor/zendframework/zendframework/resources/languages/ar/Zend_Validate.php
index 93d0b875ef8..bcc80ba5976 100644
--- a/vendor/zendframework/zendframework/resources/languages/ar/Zend_Validate.php
+++ b/vendor/zendframework/zendframework/resources/languages/ar/Zend_Validate.php
@@ -172,7 +172,7 @@ return array(
 
     // Zend_Validate_File_WordCount
     "Too much words, maximum '%max%' are allowed but '%count%' were counted" => "'%count%' كلمات أكثر من العدد الأقصى المسموح به وهو '%max%' كلمات",
-    "Too less words, minimum '%min%' are expected but '%count%' were counted" => "'%count%' كلمات أقل من العدد الأدنى المسموح وهو '%min%' كلمات",
+    "Too few words, minimum '%min%' are expected but '%count%' were counted" => "'%count%' كلمات أقل من العدد الأدنى المسموح وهو '%min%' كلمات",
     "File '%value%' is not readable or does not exist" => "الملف '%value%' لا يمكن قراءته أو أنه غير موجود",
 
     // Zend_Validate_Float
diff --git a/vendor/zendframework/zendframework/resources/languages/bg/Zend_Validate.php b/vendor/zendframework/zendframework/resources/languages/bg/Zend_Validate.php
index a6936a0397e..648d7e8b2ad 100644
--- a/vendor/zendframework/zendframework/resources/languages/bg/Zend_Validate.php
+++ b/vendor/zendframework/zendframework/resources/languages/bg/Zend_Validate.php
@@ -187,7 +187,7 @@ return array(
 
     // Zend_Validator_File_WordCount
     "Too much words, maximum '%max%' are allowed but '%count%' were counted" => "Твърде много думи, очакват се максимум '%max%', но '%count%' бяха открити",
-    "Too less words, minimum '%min%' are expected but '%count%' were counted" => "Твърде малко думи, очакват се минимум '%min%' но само '%count%' бяха открити",
+    "Too few words, minimum '%min%' are expected but '%count%' were counted" => "Твърде малко думи, очакват се минимум '%min%' но само '%count%' бяха открити",
     "File '%value%' is not readable or does not exist" => "Файлът '%value%' не може да бъде прочетен или не съществува",
 
     // Zend_Validator_GreaterThan
diff --git a/vendor/zendframework/zendframework/resources/languages/ca/Zend_Captcha.php b/vendor/zendframework/zendframework/resources/languages/ca/Zend_Captcha.php
index 3260a7d0a4a..a4393741dc7 100644
--- a/vendor/zendframework/zendframework/resources/languages/ca/Zend_Captcha.php
+++ b/vendor/zendframework/zendframework/resources/languages/ca/Zend_Captcha.php
@@ -20,12 +20,12 @@
  * EN-Revision: 30.Jul.2011
  */
 return array(
-    // Zend_Captcha_ReCaptcha
+    // Zend\Captcha\ReCaptcha
     "Missing captcha fields" => "Falten camps del captcha",
     "Failed to validate captcha" => "No s'ha pogut validar el captcha",
     "Captcha value is wrong: %value%" => "El valor del captcha és incorrecte: %value%",
 
-    // Zend_Captcha_Word
+    // Zend\Captcha\Word
     "Empty captcha value" => "Valor buit del captcha",
     "Captcha ID field is missing" => "Falta el camp ID del captcha",
     "Captcha value is wrong" => "El valor del captcha és incorrecte",
diff --git a/vendor/zendframework/zendframework/resources/languages/ca/Zend_Validate.php b/vendor/zendframework/zendframework/resources/languages/ca/Zend_Validate.php
index 6ff5bae6586..12072384148 100644
--- a/vendor/zendframework/zendframework/resources/languages/ca/Zend_Validate.php
+++ b/vendor/zendframework/zendframework/resources/languages/ca/Zend_Validate.php
@@ -17,78 +17,76 @@
  */
 
 /**
- * EN-Revision: 09.Sept.2012
+ * EN-Revision: 04.Apr.2013
  */
 return array(
-    // Zend_I18n_Validator_Alnum
+    // Zend\I18n\Validator\Alnum
     "Invalid type given. String, integer or float expected" => "Tipus no vàlid donat. S'espera una cadena de text, un enter o un nombre de precisió simple",
     "The input contains characters which are non alphabetic and no digits" => "L'entrada conté caràcters que no són alfabètics ni dígits",
     "The input is an empty string" => "L'entrada és una cadena buida",
 
-    // Zend_I18n_Validator_Alpha
+    // Zend\I18n\Validator\Alpha
     "Invalid type given. String expected" => "Tipus no vàlid donat. S'espera una cadena de text",
     "The input contains non alphabetic characters" => "L'entrada conté caràcters no alfabètics",
     "The input is an empty string" => "L'entrada és una cadena buida",
 
-    // Zend_I18n_Validator_Float
+    // Zend\I18n\Validator\Float
     "Invalid type given. String, integer or float expected" => "Tipus no vàlid donat. S'espera una cadena de text, un enter o un nombre de precisió simple",
     "The input does not appear to be a float" => "L'entrada no sembla ser un nombre de precisió simple",
 
-    // Zend_I18n_Validator_Int
+    // Zend\I18n\Validator\Int
     "Invalid type given. String or integer expected" => "Tipus no vàlid donat. S'espera una cadena de text o un enter",
     "The input does not appear to be an integer" => "L'entrada no sembla ser un nombre enter",
 
-    // Zend_I18n_Validator_PostCode
+    // Zend\I18n\Validator\PostCode
     "Invalid type given. String or integer expected" => "Tipus no vàlid donat. S'espera una cadena de text o un enter",
     "The input does not appear to be a postal code" => "L'entrada no sembla ser un codi postal",
     "An exception has been raised while validating the input" => "S'ha llançat una excepció en validar l'entrada",
 
-    // Zend_Validator_Barcode
+    // Zend\Validator\Barcode
     "The input failed checksum validation" => "L'entrada ha fallat la validació de la suma de comprovació",
     "The input contains invalid characters" => "L'entrada conté caràcters no vàlids",
     "The input should have a length of %length% characters" => "L'entrada ha de tenir una longitud de %length% caràcters",
     "Invalid type given. String expected" => "Tipus no vàlid donat. S'espera una cadena de text",
 
-    // Zend_Validator_Between
+    // Zend\Validator\Between
     "The input is not between '%min%' and '%max%', inclusively" => "L'entrada no és entre '% min%' i '% max%', inclusivament",
     "The input is not strictly between '%min%' and '%max%'" => "L'entrada no és estrictament entre '% min%' i '%% max'",
 
-    // Zend_Validator_Callback
+    // Zend\Validator\Callback
     "The input is not valid" => "L'entrada no és vàlida",
     "An exception has been raised within the callback" => "S'ha llançat una excepció en el callback",
 
-    // Zend_Validator_CreditCard
+    // Zend\Validator\CreditCard
     "The input seems to contain an invalid checksum" => "L'entrada sembla contenir una suma de comprovació no vàlida",
     "The input must contain only digits" => "L'entrada ha de contenir només dígits",
     "Invalid type given. String expected" => "Tipus no vàlid donat. S'espera una cadena de text",
     "The input contains an invalid amount of digits" => "L'entrada conté una quantitat no vàlida de dígits",
     "The input is not from an allowed institute" => "L'entrada no és d'una institució permesa",
-    "The input seems to be an invalid creditcard number" => "L'entrada sembla ser un número de targeta de crèdit no vàlid",
+    "The input seems to be an invalid credit card number" => "L'entrada sembla ser un número de targeta de crèdit no vàlid",
     "An exception has been raised while validating the input" => "S'ha llançat una excepció validant l'entrada",
 
-    // Zend_Validator_Csrf
+    // Zend\Validator\Csrf
     "The form submitted did not originate from the expected site" => "El formulari presentat no es va originar en el lloc esperat",
 
-    // Zend_Validator_Date
+    // Zend\Validator\Date
     "Invalid type given. String, integer, array or DateTime expected" => "Tipus no vàlid donat. S'espera una cadena de text, un enter, un array o DateTime",
     "The input does not appear to be a valid date" => "L'entrada no sembla ser una data vàlida",
     "The input does not fit the date format '%format%'" => "L'entrada no s'ajusta al format de la data '%format%'",
 
-    // Zend_Validator_DateStep
-    "Invalid type given. String, integer, array or DateTime expected" => "Tipus no vàlid donat. S'espera una cadena de text, un enter, un array o DateTime",
-    "The input does not appear to be a valid date" => "L'entrada no sembla ser una data vàlida",
+    // Zend\Validator\DateStep
     "The input is not a valid step" => "L'entrada no és un pas vàlid",
 
-    // Zend_Validator_Db_AbstractDb
+    // Zend\Validator\Db\AbstractDb
     "No record matching the input was found" => "No hi ha cap registre que coincideixi amb l'entrada",
     "A record matching the input was found" => "Es va trobar un registre coincident l'entrada",
 
-    // Zend_Validator_Digits
+    // Zend\Validator\Digits
     "The input must contain only digits" => "L'entrada només ha de contenir dígits",
     "The input is an empty string" => "L'entrada és una cadena buida",
     "Invalid type given. String, integer or float expected" => "Tipus no vàlid donat. S'espera una cadena de text, un enter o un nombre de precisió simple",
 
-    // Zend_Validator_EmailAddress
+    // Zend\Validator\EmailAddress
     "Invalid type given. String expected" => "Tipus no vàlid donat. S'espera una cadena de text",
     "The input is not a valid email address. Use the basic format local-part@hostname" => "L'entrada no és una adreça vàlida de correu electrònic. Utilitzeu el format bàsic local-part@hostname",
     "'%hostname%' is not a valid hostname for the email address" => "'%hostname%' no és un nom de host vàlid per a la direcció de correu electrònic",
@@ -99,81 +97,81 @@ return array(
     "'%localPart%' is not a valid local part for the email address" => "'%localPart%' no és una part local vàlida per a la direcció de correu electrònic",
     "The input exceeds the allowed length" => "L'entrada supera la longitud permesa",
 
-    // Zend_Validator_Explode
-    "Invalid type given. String expected" => "Tipus no vàlid donat. S'espera una cadena de text",
+    // Zend\Validator\Explode
+    "Invalid type given" => "Tipus no vàlid donat",
 
-    // Zend_Validator_File_Count
+    // Zend\Validator\File\Count
     "Too many files, maximum '%max%' are allowed but '%count%' are given" => "Massa arxius, estan permesos màxim '%max%' però s'han donat '%count%'",
     "Too few files, minimum '%min%' are expected but '%count%' are given" => "Falten arxius, s'espera mínim '%min%' però s'han donat '%count%'",
 
-    // Zend_Validator_File_Crc32
-    "File '%value%' does not match the given crc32 hashes" => "L'arxiu '%value%' no coindideix amb el hash crc32 donat",
-    "A crc32 hash could not be evaluated for the given file" => "El hash CRC32 no es va poder avaluar per l'arxiu donat",
-    "File '%value%' is not readable or does not exist" => "L'arxiu '%value%' no és llegible o no existeix",
+    // Zend\Validator\File\Crc32
+    "File does not match the given crc32 hashes" => "L'arxiu no coindideix amb el hash crc32 donat",
+    "A crc32 hash could not be evaluated for the given file" => "El hash crc32 no es va poder avaluar per l'arxiu donat",
+    "File is not readable or does not exist" => "L'arxiu no és pot llegir o no existeix",
 
-    // Zend_Validator_File_ExcludeExtension
-    "File '%value%' has a false extension" => "L'arxiu '%value%' té una extensió falsa",
-    "File '%value%' is not readable or does not exist" => "L'arxiu '%value%' no és llegible o no existeix",
+    // Zend\Validator\File\ExcludeExtension
+    "File has an incorrect extension" => "L'arxiu té una extensió falsa",
+    "File is not readable or does not exist" => "L'arxiu no és pot llegir o no existeix",
 
-    // Zend_Validator_File_Exists
-    "File '%value%' does not exist" => "L'arxiu '%value%' no existeix",
+    // Zend\Validator\File\Exists
+    "File does not exist" => "L'arxiu no existeix",
 
-    // Zend_Validator_File_Extension
-    "File '%value%' has a false extension" => "L'arxiu '%value%' té una extensió falsa",
-    "File '%value%' is not readable or does not exist" => "L'arxiu '%value%' no és llegible o no existeix",
+    // Zend\Validator\File\Extension
+    "File has an incorrect extension" => "L'arxiu té una extensió falsa",
+    "File is not readable or does not exist" => "L'arxiu no és pot llegir o no existeix",
 
-    // Zend_Validator_File_FilesSize
+    // Zend\Validator\File\FilesSize
     "All files in sum should have a maximum size of '%max%' but '%size%' were detected" => "Tots els arxius en la suma haurien de tenir una mida màxima de '%max%' però s'ha detectat la mida '%size%'",
     "All files in sum should have a minimum size of '%min%' but '%size%' were detected" => "Tots els arxius en la suma haurien de tenir una mida màxima de '%max%' però s'ha detectat la mida '%size%'",
     "One or more files can not be read" => "Un o més fitxers no es poden llegir",
 
-    // Zend_Validator_File_Hash
-    "File '%value%' does not match the given hashes" => "L'arxiu '% value%' no coincideix amb els valors hash donats",
+    // Zend\Validator\File\Hash
+    "File does not match the given hashes" => "L'arxiu no coincideix amb els valors hash donats",
     "A hash could not be evaluated for the given file" => "El hash no es va poder avaluar per l'arxiu donat",
-    "File '%value%' is not readable or does not exist" => "L'arxiu '%value%' no és llegible o no existeix",
-
-    // Zend_Validator_File_ImageSize
-    "Maximum allowed width for image '%value%' should be '%maxwidth%' but '%width%' detected" => "L'amplada màxima permesa per a la imatge '%value%' hauria de ser '%maxwidth%' però s'ha detectat '%width%'",
-    "Minimum expected width for image '%value%' should be '%minwidth%' but '%width%' detected" => "L'amplada mínima permesa per a la imatge '%value%' hauria de ser '%maxwidth%' però s'ha detectat '%width%'",
-    "Maximum allowed height for image '%value%' should be '%maxheight%' but '%height%' detected" => "L'alçada màxima permesa per a la imatge '%value%' hauria de ser '%maxwidth%' però s'ha detectat '%width%'",
-    "Minimum expected height for image '%value%' should be '%minheight%' but '%height%' detected" => "L'amplada mínima permesa per a la imatge '%value%' hauria de ser '%maxwidth%' però s'ha detectat '%width%'",
-    "The size of image '%value%' could not be detected" => "La mida de la imatge '% value%' no s'ha pogut detectar",
-    "File '%value%' is not readable or does not exist" => "L'arxiu '%value%' no és llegible o no existeix",
-
-    // Zend_Validator_File_IsCompressed
-    "File '%value%' is not compressed, '%type%' detected" => "L'arxiu '%value%' no està comprimit, s'ha detectat '%type%' ",
-    "The mimetype of file '%value%' could not be detected" => "El mimetype de l'arxiu '%value%' no s'ha pogut detectar",
-    "File '%value%' is not readable or does not exist" => "L'arxiu '%value%' no és llegible o no existeix",
-
-    // Zend_Validator_File_IsImage
-    "File '%value%' is no image, '%type%' detected" => "L'arixu '%value%' no és una imatge, s'ha detectat '%type%'",
-    "The mimetype of file '%value%' could not be detected" => "El mimetype de l'arxiu '%value%' no s'ha pogut detectar",
-    "File '%value%' is not readable or does not exist" => "L'arxiu '%value%' no és llegible o no existeix",
-
-    // Zend_Validator_File_Md5
-    "File '%value%' does not match the given md5 hashes" => "L'arxiu '%value%' no coindideix amb el hash md5 donat",
-    "A md5 hash could not be evaluated for the given file" => "El hash md5 no es va poder avaluar per l'arxiu donat",
-    "File '%value%' is not readable or does not exist" => "L'arxiu '%value%' no és llegible o no existeix",
-
-    // Zend_Validator_File_MimeType
-    "File '%value%' has a false mimetype of '%type%'" => "L'arxiu '%value%' té un mimetype fals del tipus '%type%'",
-    "The mimetype of file '%value%' could not be detected" => "El mimetype de l'arxiu '%value%' no s'ha pogut detectar",
-    "File '%value%' is not readable or does not exist" => "L'arxiu '%value%' no és llegible o no existeix",
-
-    // Zend_Validator_File_NotExists
-    "File '%value%' exists" => "L'arxiu '%value%' existeix",
-
-    // Zend_Validator_File_Sha1
-    "File '%value%' does not match the given sha1 hashes" => "L'arxiu '%value%' no coindideix amb el hash sha1 donat",
+    "File is not readable or does not exist" => "L'arxiu no és pot llegir o no existeix",
+
+    // Zend\Validator\File\ImageSize
+    "Maximum allowed width for image should be '%maxwidth%' but '%width%' detected" => "L'amplada màxima permesa per a la imatge hauria de ser '%maxwidth%' però s'ha detectat '%width%'",
+    "Minimum expected width for image should be '%minwidth%' but '%width%' detected" => "L'amplada mínima permesa per a la imatge hauria de ser '%maxwidth%' però s'ha detectat '%width%'",
+    "Maximum allowed height for image should be '%maxheight%' but '%height%' detected" => "L'alçada màxima permesa per a la imatge hauria de ser '%maxwidth%' però s'ha detectat '%width%'",
+    "Minimum expected height for image should be '%minheight%' but '%height%' detected" => "L'amplada mínima permesa per a la imatge hauria de ser '%maxwidth%' però s'ha detectat '%width%'",
+    "The size of image could not be detected" => "La mida de la imatge no s'ha pogut detectar",
+    "File is not readable or does not exist" => "L'arxiu no és pot llegir o no existeix",
+
+    // Zend\Validator\File\IsCompressed
+    "File is not compressed, '%type%' detected" => "L'arxiu no està comprimit, s'ha detectat '%type%' ",
+    "The mimetype could not be detected from the file" => "El mimetype de l'arxiu no s'ha pogut detectar",
+    "File is not readable or does not exist" => "L'arxiu no és pot llegir o no existeix",
+
+    // Zend\Validator\File\IsImage
+    "File is no image, '%type%' detected" => "L'arxiu no és una imatge, s'ha detectat '%type%'",
+    "The mimetype could not be detected from the file" => "El mimetype de l'arxiu no s'ha pogut detectar",
+    "File is not readable or does not exist" => "L'arxiu no és pot llegir o no existeix",
+
+    // Zend\Validator\File\Md5
+    "File does not match the given md5 hashes" => "L'arxiu no coindideix amb el hash md5 donat",
+    "An md5 hash could not be evaluated for the given file" => "El hash md5 no es va poder avaluar per l'arxiu donat",
+    "File is not readable or does not exist" => "L'arxiu no és pot llegir o no existeix",
+
+    // Zend\Validator\File\MimeType
+    "File has an incorrect mimetype of '%type%'" => "L'arxiu té un mimetype incorrecte del tipus '%type%'",
+    "The mimetype could not be detected from the file" => "El mimetype de l'arxiu no s'ha pogut detectar",
+    "File is not readable or does not exist" => "L'arxiu no és pot llegir o no existeix",
+
+    // Zend\Validator\File\NotExists
+    "File exists" => "L'arxiu existeix",
+
+    // Zend\Validator\File\Sha1
+    "File does not match the given sha1 hashes" => "L'arxiu no coindideix amb el hash sha1 donat",
     "A sha1 hash could not be evaluated for the given file" => "El hash sha1 no es va poder avaluar per l'arxiu donat",
-    "File '%value%' is not readable or does not exist" => "L'arxiu '%value%' no és llegible o no existeix",
+    "File is not readable or does not exist" => "L'arxiu no és pot llegir o no existeix",
 
-    // Zend_Validator_File_Size
-    "Maximum allowed size for file '%value%' is '%max%' but '%size%' detected" => "La mida màxima permesa per a l'arxiu '%value%' és '%max%' però s'ha detectat '%size%'",
-    "Minimum expected size for file '%value%' is '%min%' but '%size%' detected" => "La mida mínima permesa per a l'arxiu '%value%' és '%max%' però s'ha detectat '%size%'",
-    "File '%value%' is not readable or does not exist" => "L'arxiu '%value%' no és llegible o no existeix",
+    // Zend\Validator\File\Size
+    "Maximum allowed size for file is '%max%' but '%size%' detected" => "La mida màxima permesa per a l'arxiu és '%max%' però s'ha detectat '%size%'",
+    "Minimum expected size for file is '%min%' but '%size%' detected" => "La mida mínima permesa per a l'arxiu és '%max%' però s'ha detectat '%size%'",
+    "File is not readable or does not exist" => "L'arxiu no és pot llegir o no existeix",
 
-    // Zend_Validator_File_Upload
+    // Zend\Validator\File\Upload
     "File '%value%' exceeds the defined ini size" => "L'arxiu '%value%' supera la mida definida inicialment",
     "File '%value%' exceeds the defined form size" => "L'arxiu '%value%' supera la mida definida en el formulari",
     "File '%value%' was only partially uploaded" => "L'arxiu '%value%' s'ha carregat parcialment",
@@ -185,7 +183,7 @@ return array(
     "File '%value%' was not found" => "L'arxiu '%value%' no s'ha trobat",
     "Unknown error while uploading file '%value%'" => "Error desconegut en pujar l'arxiu '%value%'",
 
-    // Zend_Validator_File_UploadFile
+    // Zend\Validator\File\UploadFile
     "File exceeds the defined ini size" => "L'arxiu supera la mida definida inicialment",
     "File exceeds the defined form size" => "L'arxiu supera la mida definida en el formulari",
     "File was only partially uploaded" => "L'arxiu s'ha carregat parcialment",
@@ -197,20 +195,20 @@ return array(
     "File was not found" => "L'arxiu no s'ha trobat",
     "Unknown error while uploading file" => "Error desconegut en pujar l'arxiu",
 
-    // Zend_Validator_File_WordCount
-    "Too much words, maximum '%max%' are allowed but '%count%' were counted" => "Excés de paraules, màxim '%max%' es permeten però s'han comptat '%count%'",
-    "Too less words, minimum '%min%' are expected but '%count%' were counted" => "Falten paraules, mínim '%min%' es permeten però s'han comptat '%count%'",
-    "File '%value%' is not readable or does not exist" => "L'arxiu '%value%' no és llegible o no existeix",
+    // Zend\Validator\File\WordCount
+    "Too many words, maximum '%max%' are allowed but '%count%' were counted" => "Excés de paraules, màxim '%max%' es permeten però s'han comptat '%count%'",
+    "Too few words, minimum '%min%' are expected but '%count%' were counted" => "Falten paraules, mínim '%min%' es permeten però s'han comptat '%count%'",
+    "File is not readable or does not exist" => "L'arxiu no és pot llegir o no existeix",
 
-    // Zend_Validator_GreaterThan
+    // Zend\Validator\GreaterThan
     "The input is not greater than '%min%'" => "L'entrada no és més gran que '%min%'",
     "The input is not greater or equal than '%min%'" => "L'entrada no és més gran o igual que '%min%'",
 
-    // Zend_Validator_Hex
+    // Zend\Validator\Hex
     "Invalid type given. String expected" => "Tipus no vàlid donat. S'espera una cadena de text",
     "The input contains non-hexadecimal characters" => "L'entrada conté caràcters no hexadecimals",
 
-    // Zend_Validator_Hostname
+    // Zend\Validator\Hostname
     "The input appears to be a DNS hostname but the given punycode notation cannot be decoded" => "L'entrada sembla ser un nom d'amfitrió DNS però la notació punycode donada no pot ser descodificada",
     "Invalid type given. String expected" => "Tipus no vàlid donat. S'espera una cadena de text",
     "The input appears to be a DNS hostname but contains a dash in an invalid position" => "L'entrada sembla ser un nom de host DNS, però conté un guió en una posició no vàlida",
@@ -223,66 +221,69 @@ return array(
     "The input appears to be a DNS hostname but cannot extract TLD part" => "L'entrada sembla ser un nom de host DNS però no pot extreure la part TLD",
     "The input appears to be a DNS hostname but cannot match TLD against known list" => "L'entrada sembla ser un nom de host DNS però no s'ha trobat una coincidència del TLD amb la llista coneguda",
 
-    // Zend_Validator_Iban
+    // Zend\Validator\Iban
     "Unknown country within the IBAN" => "País desconegut dins l'IBAN",
     "Countries outside the Single Euro Payments Area (SEPA) are not supported" => "Els països no pertanyents a la zona única de pagaments (SEPA) no són compatibles",
     "The input has a false IBAN format" => "L'entrada té un fals format IBAN",
     "The input has failed the IBAN check" => "L'entrada no ha passat la verificació IBAN",
 
-    // Zend_Validator_Identical
+    // Zend\Validator\Identical
     "The two given tokens do not match" => "Els dos tokens donats no coincideixen",
     "No token was provided to match against" => "No s'ha proporcionat cap token per fer la comprovació",
 
-    // Zend_Validator_InArray
+    // Zend\Validator\InArray
     "The input was not found in the haystack" => "L'entrada no s'ha trobat",
 
-    // Zend_Validator_Ip
+    // Zend\Validator\Ip
     "Invalid type given. String expected" => "Tipus no vàlid donat. S'espera una cadena de text",
     "The input does not appear to be a valid IP address" => "L'entrada no sembla ser una adreça IP vàlida",
 
-    // Zend_Validator_Isbn
+    // Zend\Validator\IsInstanceOf
+    "The input is not an instance of '%className%'" => "L'entrada no és una instància de '%className%'",
+
+    // Zend\Validator\Isbn
     "Invalid type given. String or integer expected" => "Tipus no vàlid donat. S'espera una cadena de text o un enter",
     "The input is not a valid ISBN number" => "L'entrada no és un ISBN vàlid",
 
-    // Zend_Validator_LessThan
+    // Zend\Validator\LessThan
     "The input is not less than '%max%'" => "L'entrada no és inferior a '%max%'",
     "The input is not less or equal than '%max%'" => "L'entrada no és menor o igual que '%max%'",
 
-    // Zend_Validator_NotEmpty
+    // Zend\Validator\NotEmpty
     "Value is required and can't be empty" => "El valor és obligatori i no pot estar buit",
     "Invalid type given. String, integer, float, boolean or array expected" => "Tipus no vàlid donat. S'espera una cadena de text, un enter, un nombre de precisió simple, un booleà o un array",
 
-    // Zend_Validator_Regex
+    // Zend\Validator\Regex
     "Invalid type given. String, integer or float expected" => "Tipus no vàlid donat. S'espera una cadena de text, un enter o un nombre de precisió simple",
     "The input does not match against pattern '%pattern%'" => "L'entrada no coincideix amb el patró '%pattern%'",
     "There was an internal error while using the pattern '%pattern%'" => "S'ha produït un error intern al utilitzar el patró '%pattern%'",
 
-    // Zend_Validator_Sitemap_Changefreq
+    // Zend\Validator\Sitemap\Changefreq
     "The input is not a valid sitemap changefreq" => "L'entrada no és un mapa de lloc changefreq vàlid",
     "Invalid type given. String expected" => "Tipus no vàlid donat. S'espera una cadena de text",
 
-    // Zend_Validator_Sitemap_Lastmod
+    // Zend\Validator\Sitemap\Lastmod
     "The input is not a valid sitemap lastmod" => "L'entrada no és un mapa de lloc lastmod vàlid",
     "Invalid type given. String expected" => "Tipus no vàlid donat. S'espera una cadena de text",
 
-    // Zend_Validator_Sitemap_Loc
+    // Zend\Validator\Sitemap\Loc
     "The input is not a valid sitemap location" => "L'entrada no és una ubicació del mapa de lloc vàlida",
     "Invalid type given. String expected" => "Tipus no vàlid donat. S'espera una cadena de text",
 
-    // Zend_Validator_Sitemap_Priority
+    // Zend\Validator\Sitemap\Priority
     "The input is not a valid sitemap priority" => "L'entrada no és una prioritat del mapa de lloc vàlida",
     "Invalid type given. Numeric string, integer or float expected" => "Tipus no vàlid donat. S'espera una cadena de text numèrica, un enter o nombre de precisió simple",
 
-    // Zend_Validator_Step
+    // Zend\Validator\Step
     "Invalid value given. Scalar expected" => "Valor incorrecte donat. S'espera un escalar",
     "The input is not a valid step" => "L'entrada no és un pas vàlid",
 
-    // Zend_Validator_StringLength
+    // Zend\Validator\StringLength
     "Invalid type given. String expected" => "Tipus no vàlid donat. S'espera una cadena de text",
     "The input is less than %min% characters long" => "L'entrada és menor que %min% caràcters",
     "The input is more than %max% characters long" => "L'entrada és més que %max% caràcters",
 
-    // Zend_Validator_Uri
+    // Zend\Validator\Uri
     "Invalid type given. String expected" => "Tipus no vàlid donat. S'espera una cadena de text",
     "The input does not appear to be a valid Uri" => "L'entrada no sembla ser un URI vàlid",
 );
diff --git a/vendor/zendframework/zendframework/resources/languages/cs/Zend_Captcha.php b/vendor/zendframework/zendframework/resources/languages/cs/Zend_Captcha.php
index b44a9b7dfe6..0d96a831718 100644
--- a/vendor/zendframework/zendframework/resources/languages/cs/Zend_Captcha.php
+++ b/vendor/zendframework/zendframework/resources/languages/cs/Zend_Captcha.php
@@ -17,13 +17,13 @@
  */
 
 /**
- * EN-Revision: 30.Jul.2011
+ * CS-Revision: 28.Mar.2013
  */
 return array(
     // Zend_Captcha_AbstractWord
     "Empty captcha value" => "Hodnota captcha nebyla zadána",
     "Captcha ID field is missing" => "Chybí pole captcha ID",
-    "Captcha value is wrong" => "Chybná hodnota catpcha",
+    "Captcha value is wrong" => "Chybná hodnota captcha",
 
     // Zend_Captcha_ReCaptcha
     "Missing captcha fields" => "Chybí captcha pole",
diff --git a/vendor/zendframework/zendframework/resources/languages/cs/Zend_Validate.php b/vendor/zendframework/zendframework/resources/languages/cs/Zend_Validate.php
index ef7ae698ea3..92dda8b2d1c 100644
--- a/vendor/zendframework/zendframework/resources/languages/cs/Zend_Validate.php
+++ b/vendor/zendframework/zendframework/resources/languages/cs/Zend_Validate.php
@@ -17,7 +17,7 @@
  */
 
 /**
- * EN-Revision: 25.Jul.2011
+ * CS-Revision: 28.Mar.2013
  */
 return array(
     // Zend_I18n_Validator_Alnum
@@ -41,7 +41,7 @@ return array(
     // Zend_I18n_Validator_PostCode
     "Invalid type given. String or integer expected" => "Chybný typ. Byl očekáván řetězec nebo celé číslo",
     "The input does not appear to be a postal code" => "Hodnota nevypadá jako PSČ",
-    "An exception has been raised while validating the input" => "Během volání byla vyvolána výjimka",
+    "An exception has been raised while validating the input" => "Během kontroly hodnoty byla vyvolána výjimka",
 
     // Zend_Validator_Barcode
     "The input failed checksum validation" => "Hodnota má chybný kontrolní součet",
@@ -75,8 +75,6 @@ return array(
     "The input does not fit the date format '%format%'" => "Hodnota neodpovídá formátu data '%format%'",
 
     // Zend_Validator_DateStep
-    "Invalid type given. String, integer, array or DateTime expected" => "Chybný typ. Byl očekáván řetězec, číslo, pole nebo objekt Datetime",
-    "The input does not appear to be a valid date" => "Hodnota nevypadá jako platné datum",
     "The input is not a valid step" => "Hodnota není platný krok",
 
     // Zend_Validator_Db_Abstract
@@ -100,27 +98,27 @@ return array(
     "The input exceeds the allowed length" => "Hodnota překročila povolenou délku",
 
     // Zend_Validator_Explode
-    "Invalid type given. String expected" => "Chybný typ. Byl očekáván řetězec",
+    "Invalid type given." => "Chybný typ.",
 
     // Zend_Validator_File_Count
     "Too many files, maximum '%max%' are allowed but '%count%' are given" => "Příliš mnoho souborů. Maximum je '%max%', ale bylo zadáno '%count%'",
     "Too few files, minimum '%min%' are expected but '%count%' are given" => "Příliš málo souborů. Minimum je '%min%', ale byl zadáno jen '%count%'",
 
     // Zend_Validator_File_Crc32
-    "File '%value%' does not match the given crc32 hashes" => "Soubor '%value%' neodpovídá zadanému crc32 hashi",
+    "File does not match the given crc32 hashes" => "Soubor neodpovídá zadanému crc32 hashi",
     "A crc32 hash could not be evaluated for the given file" => "Pro zadaný soubor nemohl být vypočítán crc32 hash",
-    "File '%value%' is not readable or does not exist" => "Soubor '%value%' buď není čitelný nebo neexistuje",
+    "File is not readable or does not exist" => "Soubor není čitelný nebo neexistuje",
 
     // Zend_Validator_File_ExcludeExtension
-    "File '%value%' has a false extension" => "Soubor '%value%' má nesprávnou příponu",
-    "File '%value%' is not readable or does not exist" => "Soubor '%value%' buď není čitelný nebo neexistuje",
+    "File has an incorrect extension" => "Soubor má nesprávnou příponu",
+    "File is not readable or does not exist" => "Soubor není čitelný nebo neexistuje",
 
     // Zend_Validator_File_Exists
-    "File '%value%' does not exist" => "Soubor '%value%' neexistuje",
+    "File does not exist" => "Soubor neexistuje",
 
     // Zend_Validator_File_Extension
-    "File '%value%' has a false extension" => "Soubor '%value%' má nesprávnou příponu",
-    "File '%value%' is not readable or does not exist" => "Soubor '%value%' není čitelný nebo neexistuje",
+    "File has an incorrect extension" => "Soubor má nesprávnou příponu",
+    "File is not readable or does not exist" => "Soubor není čitelný nebo neexistuje",
 
     // Zend_Validator_File_FilesSize
     "All files in sum should have a maximum size of '%max%' but '%size%' were detected" => "Součet velikostí všech souborů by měl být maximálně '%max%', ale je '%size%'",
@@ -128,50 +126,50 @@ return array(
     "One or more files can not be read" => "Jeden nebo více souborů není možné načíst",
 
     // Zend_Validator_File_Hash
-    "File '%value%' does not match the given hashes" => "Soubor '%value%' neodpovídané danému hashi",
+    "File does not match the given hashes" => "Soubor neodpovídané danému hashi",
     "A hash could not be evaluated for the given file" => "Hash nemohl být pro daný soubor vypočítán",
-    "File '%value%' is not readable or does not exist" => "Soubor '%value%' není čitelný nebo neexistuje",
+    "File is not readable or does not exist" => "Soubor není čitelný nebo neexistuje",
 
     // Zend_Validator_File_ImageSize
-    "Maximum allowed width for image '%value%' should be '%maxwidth%' but '%width%' detected" => "Maximální šířka obrázku '%value%' by měla být '%maxwidth%', ale je '%width%'",
-    "Minimum expected width for image '%value%' should be '%minwidth%' but '%width%' detected" => "Minimální šířka obrázku '%value%' by měla být '%minwidth%', ale je '%width%'",
-    "Maximum allowed height for image '%value%' should be '%maxheight%' but '%height%' detected" => "Maximální výška obrázku '%value%' by měla být '%maxheight%', ale je '%height%'",
-    "Minimum expected height for image '%value%' should be '%minheight%' but '%height%' detected" => "Minimální výška obrázku '%value%' by měla být '%minheight%', ale je '%height%'",
-    "The size of image '%value%' could not be detected" => "Rozměry obrázku '%value%' nebylo možné zjistit",
-    "File '%value%' is not readable or does not exist" => "Soubor '%value%' není čitelný nebo neexistuje",
+    "Maximum allowed width for image should be '%maxwidth%' but '%width%' detected" => "Maximální šířka obrázku by měla být '%maxwidth%', ale je '%width%'",
+    "Minimum expected width for image should be '%minwidth%' but '%width%' detected" => "Minimální šířka obrázku by měla být '%minwidth%', ale je '%width%'",
+    "Maximum allowed height for image should be '%maxheight%' but '%height%' detected" => "Maximální výška obrázku by měla být '%maxheight%', ale je '%height%'",
+    "Minimum expected height for image should be '%minheight%' but '%height%' detected" => "Minimální výška obrázku by měla být '%minheight%', ale je '%height%'",
+    "The size of image could not be detected" => "Rozměry obrázku nebylo možné zjistit",
+    "File is not readable or does not exist" => "Soubor není čitelný nebo neexistuje",
 
     // Zend_Validator_File_IsCompressed
-    "File '%value%' is not compressed, '%type%' detected" => "Soubor '%value%' není komprimovaný, ale '%type%'",
-    "The mimetype of file '%value%' could not be detected" => "Mimetyp souboru '%value%' nebylo možné zjistit",
-    "File '%value%' is not readable or does not exist" => "Soubor '%value%' není čitelný nebo neexistuje",
+    "File is not compressed, '%type%' detected" => "Soubor není komprimovaný, ale '%type%'",
+    "The mimetype could not be detected from the file" => "Mimetyp souboru nebylo možné zjistit",
+    "File is not readable or does not exist" => "Soubor není čitelný nebo neexistuje",
 
     // Zend_Validator_File_IsImage
-    "File '%value%' is no image, '%type%' detected" => "Soubor '%value%' není obrázek, ale '%type%'",
-    "The mimetype of file '%value%' could not be detected" => "Mimetyp souboru '%value%' nebylo možné zjistit",
-    "File '%value%' is not readable or does not exist" => "Soubor '%value%' není čitelný nebo neexistuje",
+    "File is no image, '%type%' detected" => "Soubor není obrázek, ale '%type%'",
+    "The mimetype could not be detected from the file" => "Mimetyp souboru nebylo možné zjistit",
+    "File is not readable or does not exist" => "Soubor není čitelný nebo neexistuje",
 
     // Zend_Validator_File_Md5
-    "File '%value%' does not match the given md5 hashes" => "Soubor '%value%' neodpovídá danému md5 hashi",
-    "A md5 hash could not be evaluated for the given file" => "md5 hash nemohl být pro daný soubor vypočítán",
-    "File '%value%' is not readable or does not exist" => "Soubor '%value%' není čitelný nebo neexistuje",
+    "File does not match the given md5 hashes" => "Soubor neodpovídá danému md5 hashi",
+    "An md5 hash could not be evaluated for the given file" => "md5 hash nemohl být pro daný soubor vypočítán",
+    "File is not readable or does not exist" => "Soubor není čitelný nebo neexistuje",
 
     // Zend_Validator_File_MimeType
-    "File '%value%' has a false mimetype of '%type%'" => "Soubor '%value%' má neplatný mimetyp '%type%'",
-    "The mimetype of file '%value%' could not be detected" => "Mimetyp souboru '%value%' nebylo možné zjistit",
-    "File '%value%' is not readable or does not exist" => "Soubor '%value%' není čitelný nebo neexistuje",
+    "File has an incorrect mimetype of '%type%'" => "Soubor má neplatný mimetyp '%type%'",
+    "The mimetype could not be detected from the file" => "Mimetyp souboru nebylo možné zjistit",
+    "File is not readable or does not exist" => "Soubor není čitelný nebo neexistuje",
 
     // Zend_Validator_File_NotExists
-    "File '%value%' exists" => "Soubor '%value%' již existuje",
+    "File exists" => "Soubor již existuje",
 
     // Zend_Validator_File_Sha1
-    "File '%value%' does not match the given sha1 hashes" => "Soubor '%value%' neodpovídá danému sha1 hashi",
+    "File does not match the given sha1 hashes" => "Soubor neodpovídá danému sha1 hashi",
     "A sha1 hash could not be evaluated for the given file" => "sha1 hash nemohl být pro daný soubor vypočítán",
-    "File '%value%' is not readable or does not exist" => "Soubor '%value%' není čitelný nebo neexistuje",
+    "File is not readable or does not exist" => "Soubor není čitelný nebo neexistuje",
 
     // Zend_Validator_File_Size
-    "Maximum allowed size for file '%value%' is '%max%' but '%size%' detected" => "Maximální povolená velikost souboru je '%max%', ale '%value%' má '%size%'",
-    "Minimum expected size for file '%value%' is '%min%' but '%size%' detected" => "Minimální velikost souboru je '%min%', ale '%value%' má '%size%'",
-    "File '%value%' is not readable or does not exist" => "Soubor '%value%' buď není čitelný nebo neexistuje",
+    "Maximum allowed size for file is '%max%' but '%size%' detected" => "Maximální velikost souboru by měla být '%max%', ale je '%size%'",
+    "Minimum expected size for file is '%min%' but '%size%' detected" => "Minimální velikost souboru by měla být '%min%', ale je '%size%'",
+    "File is not readable or does not exist" => "Soubor není čitelný nebo neexistuje",
 
     // Zend_Validator_File_Upload
     "File '%value%' exceeds the defined ini size" => "Soubor '%value%' překročil velikost definovanou v ini souboru",
@@ -180,15 +178,27 @@ return array(
     "File '%value%' was not uploaded" => "Soubor '%value%' nebyl nahrán",
     "No temporary directory was found for file '%value%'" => "Pro soubor '%value%' nebyl nalezen žádný dočasný adresář",
     "File '%value%' can't be written" => "Soubor '%value%' nemůže být zapsán",
-    "A PHP extension returned an error while uploading the file '%value%'" => "PHP rozšíření vrátilo chybu během nahrávání souboru '%value%'",
+    "A PHP extension returned an error while uploading the file '%value%'" => "Rozšíření PHP vrátilo chybu během nahrávání souboru '%value%'",
     "File '%value%' was illegally uploaded. This could be a possible attack" => "Soubor '%value%' byl nedovoleně nahrán. Může se jednat o útok",
     "File '%value%' was not found" => "Soubor '%value%' nebyl nalezen",
-    "Unknown error while uploading file '%value%'" => "Během nahrávání souboru '%value%' došlo k chybě",
+    "Unknown error while uploading file '%value%'" => "Během nahrávání souboru '%value%' došlo k neznámé chybě",
+
+    // Zend_Validator_File_UploadFile
+    "File exceeds the defined ini size" => "Soubor překročil velikost definovanou v ini souboru",
+    "File exceeds the defined form size" => "Soubor překročil velikost definovanou ve formuláře",
+    "File was only partially uploaded" => "Soubor byl nahrán jen částečně",
+    "File was not uploaded" => "Soubor nebyl nahrán",
+    "No temporary directory was found for file" => "Pro soubor nebyl nalezen žádný dočasný adresář",
+    "File can't be written" => "Soubor nemůže být zapsán",
+    "A PHP extension returned an error while uploading the file" => "Rozšíření PHP vrátilo chybu během nahrávání souboru",
+    "File was illegally uploaded. This could be a possible attack" => "Soubor byl nedovoleně nahrán. Může se jednat o útok",
+    "File was not found" => "Soubor nebyl nalezen",
+    "Unknown error while uploading file" => "Během nahrávání souboru došlo k neznámé chybě",
 
     // Zend_Validator_File_WordCount
     "Too much words, maximum '%max%' are allowed but '%count%' were counted" => "Příliš mnoho slov. Je jich dovoleno maximálně '%max%', ale bylo zadáno '%count%'",
-    "Too less words, minimum '%min%' are expected but '%count%' were counted" => "Příliš málo slov. Musí jich být alespoň '%min%', ale bylo zadáno jen '%count%'",
-    "File '%value%' is not readable or does not exist" => "Soubor '%value%' není čitelný nebo neexistuje",
+    "Too few words, minimum '%min%' are expected but '%count%' were counted" => "Příliš málo slov. Musí jich být alespoň '%min%', ale bylo zadáno jen '%count%'",
+    "File is not readable or does not exist" => "Soubor není čitelný nebo neexistuje",
 
     // Zend_Validator_GreaterThan
     "The input is not greater than '%min%'" => "Hodnota není větší než '%min%'",
@@ -212,7 +222,7 @@ return array(
     "The input appears to be a DNS hostname but cannot match TLD against known list" => "Hodnota vypadá jako hostname, ale nemohl být ověřen proti známým TLD",
 
     // Zend_Validator_Iban
-    "Unknown country within the IBAN '%value%'" => "Neznámý stát v IBAN '%value%'",
+    "Unknown country within the IBAN" => "Neznámý stát v IBAN",
     "Countries outside the Single Euro Payments Area (SEPA) are not supported" => "Státy mimo jednotný evropský platební prostor nejsou podporovány",
     "The input has a false IBAN format" => "Hodnota není platný formát IBAN",
     "The input has failed the IBAN check" => "Hodnota neprošlo kontrolou IBAN",
@@ -232,6 +242,9 @@ return array(
     "Invalid type given. String or integer expected" => "Chybný typ. Byl očekáván řetězec nebo celé číslo",
     "The input is not a valid ISBN number" => "Hodnota není platné ISBN",
 
+    // Zend_Validator_IsInstanceOf
+    "The input is not an instance of '%className%'" => "Hodnota není instancí třídy '%className%'",
+
     // Zend_Validator_LessThan
     "The input is not less than '%max%'" => "Hodnota není menší než '%max%'",
     "The input is not less or equal than '%max%'" => "Hodnota není menší nebo rovna '%max%'",
@@ -262,14 +275,15 @@ return array(
     "Invalid type given. Numeric string, integer or float expected" => "Chybný typ. Byl očekáván číselný řetězec, celé nebo desetinné číslo",
 
     // Zend_Validator_Step
-    "Invalid type given. Scalar expected" => "Chybný typ. Byla očekávána skalární hodnota",
+    "Invalid value given. Scalar expected" => "Chybná hodnota. Byla očekávána skalární hodnota",
     "The input is not a valid step" => "Hodnota není platný krok",
 
     // Zend_Validator_StringLength
-    "Invalid type given. String expected" => "Chybný typ. Byla očekávána řetězec",
+    "Invalid type given. String expected" => "Chybný typ. Byl očekáván řetězec",
     "The input is less than %min% characters long" => "Hodnota je kratší než %min% znaků",
     "The input is more than %max% characters long" => "Hodnota je delší než %max% znaků",
 
     // Zend_Validator_Uri
+    "Invalid type given. String expected" => "Chybný typ. Byl očekáván řetězec",
     "The input does not appear to be a valid Uri" => "Hodnota nevypadá jako platná URI",
 );
diff --git a/vendor/zendframework/zendframework/resources/languages/de/Zend_Validate.php b/vendor/zendframework/zendframework/resources/languages/de/Zend_Validate.php
index 1199dd869bb..e8133dd04e0 100644
--- a/vendor/zendframework/zendframework/resources/languages/de/Zend_Validate.php
+++ b/vendor/zendframework/zendframework/resources/languages/de/Zend_Validate.php
@@ -90,14 +90,15 @@ return array(
     // Zend_Validator_EmailAddress
     "Invalid type given. String expected"                                                                                       => 'Ungültiger Eingabewert eingegeben. String erwartet',
     "The input is not a valid email address. Use the basic format local-part@hostname"                                          => 'Der Eingabewert ist keine gültige E-Mail-Adresse. Benutzen Sie folgendes format: your-name@anbieter',
-    "'%hostname%' is not a valid hostname for email address '%value%'"                                                          => "'%hostname%' ist kein gültiger Hostname für die Emailadresse '%value%'",
+    "'%hostname%' is not a valid hostname for the email address"                                                                => "'%hostname%' ist kein gültiger Hostname für die Emailadresse",
     "'%hostname%' does not appear to have a valid MX record for the email address '%value%'"                                    => "'%hostname%' scheint keinen gültigen MX Eintrag für die Emailadresse '%value%' zu haben",
-    "'%hostname%' is not in a routable network segment. The email address '%value%' should not be resolved from public network" => "'%hostname%' ist in keinem routebaren Netzwerksegment. Die Emailadresse '%value%' sollte nicht vom öffentlichen Netz aus aufgelöst werden",
+    "'%hostname%' is not in a routable network segment. The email address  should not be resolved from public network"          => "'%hostname%' ist in keinem routebaren Netzwerksegment. Die Emailadresse sollte nicht vom öffentlichen Netz aus aufgelöst werden",
     "'%localPart%' can not be matched against dot-atom format"                                                                  => "'%localPart%' passt nicht auf das dot-atom Format",
     "'%localPart%' can not be matched against quoted-string format"                                                             => "'%localPart%' passt nicht auf das quoted-string Format",
-    "'%localPart%' is not a valid local part for email address '%value%'"                                                       => "'%localPart%' ist kein gültiger lokaler Teil für die Emailadresse '%value%'",
+    "'%localPart%' is not a valid local part for the email address"                                                             => "'%localPart%' ist kein gültiger lokaler Teil für die Emailadresse",
     "The input exceeds the allowed length"                                                                                      => 'Der Eingabewert ist länger als erlaubt',
 
+
     // Zend_Validator_Explode
     "Invalid type given. String expected"                                                                                       => 'Ungültiger Eingabewert eingegeben. String erwartet',
 
@@ -186,7 +187,7 @@ return array(
 
     // Zend_Validator_File_WordCount
     "Too much words, maximum '%max%' are allowed but '%count%' were counted"                                                    => "Zu viele Wörter. Maximal '%max%' sind erlaubt, aber '%count%' wurden gezählt",
-    "Too less words, minimum '%min%' are expected but '%count%' were counted"                                                   => "Zu wenige Wörter. Mindestens '%min%' wurden erwartet, aber '%count%' wurden gezählt",
+    "Too few words, minimum '%min%' are expected but '%count%' were counted"                                                   => "Zu wenige Wörter. Mindestens '%min%' wurden erwartet, aber '%count%' wurden gezählt",
     "File '%value%' is not readable or does not exist"                                                                          => "Die Datei '%value%' konnte nicht gelesen werden oder existiert nicht",
 
     // Zend_Validator_GreaterThan
diff --git a/vendor/zendframework/zendframework/resources/languages/en/Zend_Captcha.php b/vendor/zendframework/zendframework/resources/languages/en/Zend_Captcha.php
index fd5a92a3b14..de731545e9a 100644
--- a/vendor/zendframework/zendframework/resources/languages/en/Zend_Captcha.php
+++ b/vendor/zendframework/zendframework/resources/languages/en/Zend_Captcha.php
@@ -20,12 +20,12 @@
  * EN-Revision: 30.Jul.2011
  */
 return array(
-    // Zend_Captcha_ReCaptcha
+    // Zend\Captcha\ReCaptcha
     "Missing captcha fields" => "Missing captcha fields",
     "Failed to validate captcha" => "Failed to validate captcha",
     "Captcha value is wrong: %value%" => "Captcha value is wrong: %value%",
 
-    // Zend_Captcha_Word
+    // Zend\Captcha\Word
     "Empty captcha value" => "Empty captcha value",
     "Captcha ID field is missing" => "Captcha ID field is missing",
     "Captcha value is wrong" => "Captcha value is wrong",
diff --git a/vendor/zendframework/zendframework/resources/languages/en/Zend_Validate.php b/vendor/zendframework/zendframework/resources/languages/en/Zend_Validate.php
index 45ccfbd6288..17623e8bd0d 100644
--- a/vendor/zendframework/zendframework/resources/languages/en/Zend_Validate.php
+++ b/vendor/zendframework/zendframework/resources/languages/en/Zend_Validate.php
@@ -17,78 +17,76 @@
  */
 
 /**
- * EN-Revision: 09.Sept.2012
+ * EN-Revision: 04.Apr.2013
  */
 return array(
-    // Zend_I18n_Validator_Alnum
+    // Zend\I18n\Validator\Alnum
     "Invalid type given. String, integer or float expected" => "Invalid type given. String, integer or float expected",
     "The input contains characters which are non alphabetic and no digits" => "The input contains characters which are non alphabetic and no digits",
     "The input is an empty string" => "The input is an empty string",
 
-    // Zend_I18n_Validator_Alpha
+    // Zend\I18n\Validator\Alpha
     "Invalid type given. String expected" => "Invalid type given. String expected",
     "The input contains non alphabetic characters" => "The input contains non alphabetic characters",
     "The input is an empty string" => "The input is an empty string",
 
-    // Zend_I18n_Validator_Float
+    // Zend\I18n\Validator\Float
     "Invalid type given. String, integer or float expected" => "Invalid type given. String, integer or float expected",
     "The input does not appear to be a float" => "The input does not appear to be a float",
 
-    // Zend_I18n_Validator_Int
+    // Zend\I18n\Validator\Int
     "Invalid type given. String or integer expected" => "Invalid type given. String or integer expected",
     "The input does not appear to be an integer" => "The input does not appear to be an integer",
 
-    // Zend_I18n_Validator_PostCode
+    // Zend\I18n\Validator\PostCode
     "Invalid type given. String or integer expected" => "Invalid type given. String or integer expected",
     "The input does not appear to be a postal code" => "The input does not appear to be a postal code",
     "An exception has been raised while validating the input" => "An exception has been raised while validating the input",
 
-    // Zend_Validator_Barcode
+    // Zend\Validator\Barcode
     "The input failed checksum validation" => "The input failed checksum validation",
     "The input contains invalid characters" => "The input contains invalid characters",
     "The input should have a length of %length% characters" => "The input should have a length of %length% characters",
     "Invalid type given. String expected" => "Invalid type given. String expected",
 
-    // Zend_Validator_Between
+    // Zend\Validator\Between
     "The input is not between '%min%' and '%max%', inclusively" => "The input is not between '%min%' and '%max%', inclusively",
     "The input is not strictly between '%min%' and '%max%'" => "The input is not strictly between '%min%' and '%max%'",
 
-    // Zend_Validator_Callback
+    // Zend\Validator\Callback
     "The input is not valid" => "The input is not valid",
     "An exception has been raised within the callback" => "An exception has been raised within the callback",
 
-    // Zend_Validator_CreditCard
+    // Zend\Validator\CreditCard
     "The input seems to contain an invalid checksum" => "The input seems to contain an invalid checksum",
     "The input must contain only digits" => "The input must contain only digits",
     "Invalid type given. String expected" => "Invalid type given. String expected",
     "The input contains an invalid amount of digits" => "The input contains an invalid amount of digits",
     "The input is not from an allowed institute" => "The input is not from an allowed institute",
-    "The input seems to be an invalid creditcard number" => "The input seems to be an invalid creditcard number",
+    "The input seems to be an invalid credit card number" => "The input seems to be an invalid credit card number",
     "An exception has been raised while validating the input" => "An exception has been raised while validating the input",
 
-    // Zend_Validator_Csrf
+    // Zend\Validator\Csrf
     "The form submitted did not originate from the expected site" => "The form submitted did not originate from the expected site",
 
-    // Zend_Validator_Date
+    // Zend\Validator\Date
     "Invalid type given. String, integer, array or DateTime expected" => "Invalid type given. String, integer, array or DateTime expected",
     "The input does not appear to be a valid date" => "The input does not appear to be a valid date",
     "The input does not fit the date format '%format%'" => "The input does not fit the date format '%format%'",
 
-    // Zend_Validator_DateStep
-    "Invalid type given. String, integer, array or DateTime expected" => "Invalid type given. String, integer, array or DateTime expected",
-    "The input does not appear to be a valid date" => "The input does not appear to be a valid date",
+    // Zend\Validator\DateStep
     "The input is not a valid step" => "The input is not a valid step",
 
-    // Zend_Validator_Db_AbstractDb
+    // Zend\Validator\Db\AbstractDb
     "No record matching the input was found" => "No record matching the input was found",
     "A record matching the input was found" => "A record matching the input was found",
 
-    // Zend_Validator_Digits
+    // Zend\Validator\Digits
     "The input must contain only digits" => "The input must contain only digits",
     "The input is an empty string" => "The input is an empty string",
     "Invalid type given. String, integer or float expected" => "Invalid type given. String, integer or float expected",
 
-    // Zend_Validator_EmailAddress
+    // Zend\Validator\EmailAddress
     "Invalid type given. String expected" => "Invalid type given. String expected",
     "The input is not a valid email address. Use the basic format local-part@hostname" => "The input is not a valid email address. Use the basic format local-part@hostname",
     "'%hostname%' is not a valid hostname for the email address" => "'%hostname%' is not a valid hostname for the email address",
@@ -99,81 +97,81 @@ return array(
     "'%localPart%' is not a valid local part for the email address" => "'%localPart%' is not a valid local part for the email address",
     "The input exceeds the allowed length" => "The input exceeds the allowed length",
 
-    // Zend_Validator_Explode
-    "Invalid type given. String expected" => "Invalid type given. String expected",
+    // Zend\Validator\Explode
+    "Invalid type given" => "Invalid type given",
 
-    // Zend_Validator_File_Count
+    // Zend\Validator\File\Count
     "Too many files, maximum '%max%' are allowed but '%count%' are given" => "Too many files, maximum '%max%' are allowed but '%count%' are given",
     "Too few files, minimum '%min%' are expected but '%count%' are given" => "Too few files, minimum '%min%' are expected but '%count%' are given",
 
-    // Zend_Validator_File_Crc32
-    "File '%value%' does not match the given crc32 hashes" => "File '%value%' does not match the given crc32 hashes",
+    // Zend\Validator\File\Crc32
+    "File does not match the given crc32 hashes" => "File does not match the given crc32 hashes",
     "A crc32 hash could not be evaluated for the given file" => "A crc32 hash could not be evaluated for the given file",
-    "File '%value%' is not readable or does not exist" => "File '%value%' is not readable or does not exist",
+    "File is not readable or does not exist" => "File is not readable or does not exist",
 
-    // Zend_Validator_File_ExcludeExtension
-    "File '%value%' has a false extension" => "File '%value%' has a false extension",
-    "File '%value%' is not readable or does not exist" => "File '%value%' is not readable or does not exist",
+    // Zend\Validator\File\ExcludeExtension
+    "File has an incorrect extension" => "File has an incorrect extension",
+    "File is not readable or does not exist" => "File is not readable or does not exist",
 
-    // Zend_Validator_File_Exists
-    "File '%value%' does not exist" => "File '%value%' does not exist",
+    // Zend\Validator\File\Exists
+    "File does not exist" => "File does not exist",
 
-    // Zend_Validator_File_Extension
-    "File '%value%' has a false extension" => "File '%value%' has a false extension",
-    "File '%value%' is not readable or does not exist" => "File '%value%' is not readable or does not exist",
+    // Zend\Validator\File\Extension
+    "File has an incorrect extension" => "File has an incorrect extension",
+    "File is not readable or does not exist" => "File is not readable or does not exist",
 
-    // Zend_Validator_File_FilesSize
+    // Zend\Validator\File\FilesSize
     "All files in sum should have a maximum size of '%max%' but '%size%' were detected" => "All files in sum should have a maximum size of '%max%' but '%size%' were detected",
     "All files in sum should have a minimum size of '%min%' but '%size%' were detected" => "All files in sum should have a minimum size of '%min%' but '%size%' were detected",
     "One or more files can not be read" => "One or more files can not be read",
 
-    // Zend_Validator_File_Hash
-    "File '%value%' does not match the given hashes" => "File '%value%' does not match the given hashes",
+    // Zend\Validator\File\Hash
+    "File does not match the given hashes" => "File does not match the given hashes",
     "A hash could not be evaluated for the given file" => "A hash could not be evaluated for the given file",
-    "File '%value%' is not readable or does not exist" => "File '%value%' is not readable or does not exist",
-
-    // Zend_Validator_File_ImageSize
-    "Maximum allowed width for image '%value%' should be '%maxwidth%' but '%width%' detected" => "Maximum allowed width for image '%value%' should be '%maxwidth%' but '%width%' detected",
-    "Minimum expected width for image '%value%' should be '%minwidth%' but '%width%' detected" => "Minimum expected width for image '%value%' should be '%minwidth%' but '%width%' detected",
-    "Maximum allowed height for image '%value%' should be '%maxheight%' but '%height%' detected" => "Maximum allowed height for image '%value%' should be '%maxheight%' but '%height%' detected",
-    "Minimum expected height for image '%value%' should be '%minheight%' but '%height%' detected" => "Minimum expected height for image '%value%' should be '%minheight%' but '%height%' detected",
-    "The size of image '%value%' could not be detected" => "The size of image '%value%' could not be detected",
-    "File '%value%' is not readable or does not exist" => "File '%value%' is not readable or does not exist",
-
-    // Zend_Validator_File_IsCompressed
-    "File '%value%' is not compressed, '%type%' detected" => "File '%value%' is not compressed, '%type%' detected",
-    "The mimetype of file '%value%' could not be detected" => "The mimetype of file '%value%' could not be detected",
-    "File '%value%' is not readable or does not exist" => "File '%value%' is not readable or does not exist",
-
-    // Zend_Validator_File_IsImage
-    "File '%value%' is no image, '%type%' detected" => "File '%value%' is no image, '%type%' detected",
-    "The mimetype of file '%value%' could not be detected" => "The mimetype of file '%value%' could not be detected",
-    "File '%value%' is not readable or does not exist" => "File '%value%' is not readable or does not exist",
-
-    // Zend_Validator_File_Md5
-    "File '%value%' does not match the given md5 hashes" => "File '%value%' does not match the given md5 hashes",
-    "A md5 hash could not be evaluated for the given file" => "A md5 hash could not be evaluated for the given file",
-    "File '%value%' is not readable or does not exist" => "File '%value%' is not readable or does not exist",
-
-    // Zend_Validator_File_MimeType
-    "File '%value%' has a false mimetype of '%type%'" => "File '%value%' has a false mimetype of '%type%'",
-    "The mimetype of file '%value%' could not be detected" => "The mimetype of file '%value%' could not be detected",
-    "File '%value%' is not readable or does not exist" => "File '%value%' is not readable or does not exist",
-
-    // Zend_Validator_File_NotExists
-    "File '%value%' exists" => "File '%value%' exists",
-
-    // Zend_Validator_File_Sha1
-    "File '%value%' does not match the given sha1 hashes" => "File '%value%' does not match the given sha1 hashes",
+    "File is not readable or does not exist" => "File is not readable or does not exist",
+
+    // Zend\Validator\File\ImageSize
+    "Maximum allowed width for image should be '%maxwidth%' but '%width%' detected" => "Maximum allowed width for image should be '%maxwidth%' but '%width%' detected",
+    "Minimum expected width for image should be '%minwidth%' but '%width%' detected" => "Minimum expected width for image should be '%minwidth%' but '%width%' detected",
+    "Maximum allowed height for image should be '%maxheight%' but '%height%' detected" => "Maximum allowed height for image should be '%maxheight%' but '%height%' detected",
+    "Minimum expected height for image should be '%minheight%' but '%height%' detected" => "Minimum expected height for image should be '%minheight%' but '%height%' detected",
+    "The size of image could not be detected" => "The size of image could not be detected",
+    "File is not readable or does not exist" => "File is not readable or does not exist",
+
+    // Zend\Validator\File\IsCompressed
+    "File is not compressed, '%type%' detected" => "File is not compressed, '%type%' detected",
+    "The mimetype could not be detected from the file" => "The mimetype could not be detected from the file",
+    "File is not readable or does not exist" => "File is not readable or does not exist",
+
+    // Zend\Validator\File\IsImage
+    "File is no image, '%type%' detected" => "File is no image, '%type%' detected",
+    "The mimetype could not be detected from the file" => "The mimetype could not be detected from the file",
+    "File is not readable or does not exist" => "File is not readable or does not exist",
+
+    // Zend\Validator\File\Md5
+    "File does not match the given md5 hashes" => "File does not match the given md5 hashes",
+    "An md5 hash could not be evaluated for the given file" => "An md5 hash could not be evaluated for the given file",
+    "File is not readable or does not exist" => "File is not readable or does not exist",
+
+    // Zend\Validator\File\MimeType
+    "File has an incorrect mimetype of '%type%'" => "File has an incorrect mimetype of '%type%'",
+    "The mimetype could not be detected from the file" => "The mimetype could not be detected from the file",
+    "File is not readable or does not exist" => "File is not readable or does not exist",
+
+    // Zend\Validator\File\NotExists
+    "File exists" => "File exists",
+
+    // Zend\Validator\File\Sha1
+    "File does not match the given sha1 hashes" => "File does not match the given sha1 hashes",
     "A sha1 hash could not be evaluated for the given file" => "A sha1 hash could not be evaluated for the given file",
-    "File '%value%' is not readable or does not exist" => "File '%value%' is not readable or does not exist",
+    "File is not readable or does not exist" => "File is not readable or does not exist",
 
-    // Zend_Validator_File_Size
-    "Maximum allowed size for file '%value%' is '%max%' but '%size%' detected" => "Maximum allowed size for file '%value%' is '%max%' but '%size%' detected",
-    "Minimum expected size for file '%value%' is '%min%' but '%size%' detected" => "Minimum expected size for file '%value%' is '%min%' but '%size%' detected",
-    "File '%value%' is not readable or does not exist" => "File '%value%' is not readable or does not exist",
+    // Zend\Validator\File\Size
+    "Maximum allowed size for file is '%max%' but '%size%' detected" => "Maximum allowed size for file is '%max%' but '%size%' detected",
+    "Minimum expected size for file is '%min%' but '%size%' detected" => "Minimum expected size for file is '%min%' but '%size%' detected",
+    "File is not readable or does not exist" => "File is not readable or does not exist",
 
-    // Zend_Validator_File_Upload
+    // Zend\Validator\File\Upload
     "File '%value%' exceeds the defined ini size" => "File '%value%' exceeds the defined ini size",
     "File '%value%' exceeds the defined form size" => "File '%value%' exceeds the defined form size",
     "File '%value%' was only partially uploaded" => "File '%value%' was only partially uploaded",
@@ -185,7 +183,7 @@ return array(
     "File '%value%' was not found" => "File '%value%' was not found",
     "Unknown error while uploading file '%value%'" => "Unknown error while uploading file '%value%'",
 
-    // Zend_Validator_File_UploadFile
+    // Zend\Validator\File\UploadFile
     "File exceeds the defined ini size" => "File exceeds the defined ini size",
     "File exceeds the defined form size" => "File exceeds the defined form size",
     "File was only partially uploaded" => "File was only partially uploaded",
@@ -197,20 +195,20 @@ return array(
     "File was not found" => "File was not found",
     "Unknown error while uploading file" => "Unknown error while uploading file",
 
-    // Zend_Validator_File_WordCount
-    "Too much words, maximum '%max%' are allowed but '%count%' were counted" => "Too much words, maximum '%max%' are allowed but '%count%' were counted",
-    "Too less words, minimum '%min%' are expected but '%count%' were counted" => "Too less words, minimum '%min%' are expected but '%count%' were counted",
-    "File '%value%' is not readable or does not exist" => "File '%value%' is not readable or does not exist",
+    // Zend\Validator\File\WordCount
+    "Too many words, maximum '%max%' are allowed but '%count%' were counted" => "Too many words, maximum '%max%' are allowed but '%count%' were counted",
+    "Too few words, minimum '%min%' are expected but '%count%' were counted" => "Too few words, minimum '%min%' are expected but '%count%' were counted",
+    "File is not readable or does not exist" => "File is not readable or does not exist",
 
-    // Zend_Validator_GreaterThan
+    // Zend\Validator\GreaterThan
     "The input is not greater than '%min%'" => "The input is not greater than '%min%'",
     "The input is not greater or equal than '%min%'" => "The input is not greater or equal than '%min%'",
 
-    // Zend_Validator_Hex
+    // Zend\Validator\Hex
     "Invalid type given. String expected" => "Invalid type given. String expected",
     "The input contains non-hexadecimal characters" => "The input contains non-hexadecimal characters",
 
-    // Zend_Validator_Hostname
+    // Zend\Validator\Hostname
     "The input appears to be a DNS hostname but the given punycode notation cannot be decoded" => "The input appears to be a DNS hostname but the given punycode notation cannot be decoded",
     "Invalid type given. String expected" => "Invalid type given. String expected",
     "The input appears to be a DNS hostname but contains a dash in an invalid position" => "The input appears to be a DNS hostname but contains a dash in an invalid position",
@@ -223,66 +221,69 @@ return array(
     "The input appears to be a DNS hostname but cannot extract TLD part" => "The input appears to be a DNS hostname but cannot extract TLD part",
     "The input appears to be a DNS hostname but cannot match TLD against known list" => "The input appears to be a DNS hostname but cannot match TLD against known list",
 
-    // Zend_Validator_Iban
+    // Zend\Validator\Iban
     "Unknown country within the IBAN" => "Unknown country within the IBAN",
     "Countries outside the Single Euro Payments Area (SEPA) are not supported" => "Countries outside the Single Euro Payments Area (SEPA) are not supported",
     "The input has a false IBAN format" => "The input has a false IBAN format",
     "The input has failed the IBAN check" => "The input has failed the IBAN check",
 
-    // Zend_Validator_Identical
+    // Zend\Validator\Identical
     "The two given tokens do not match" => "The two given tokens do not match",
     "No token was provided to match against" => "No token was provided to match against",
 
-    // Zend_Validator_InArray
+    // Zend\Validator\InArray
     "The input was not found in the haystack" => "The input was not found in the haystack",
 
-    // Zend_Validator_Ip
+    // Zend\Validator\Ip
     "Invalid type given. String expected" => "Invalid type given. String expected",
     "The input does not appear to be a valid IP address" => "The input does not appear to be a valid IP address",
 
-    // Zend_Validator_Isbn
+    // Zend\Validator\IsInstanceOf
+    "The input is not an instance of '%className%'" => "The input is not an instance of '%className%'",
+
+    // Zend\Validator\Isbn
     "Invalid type given. String or integer expected" => "Invalid type given. String or integer expected",
     "The input is not a valid ISBN number" => "The input is not a valid ISBN number",
 
-    // Zend_Validator_LessThan
+    // Zend\Validator\LessThan
     "The input is not less than '%max%'" => "The input is not less than '%max%'",
     "The input is not less or equal than '%max%'" => "The input is not less or equal than '%max%'",
 
-    // Zend_Validator_NotEmpty
+    // Zend\Validator\NotEmpty
     "Value is required and can't be empty" => "Value is required and can't be empty",
     "Invalid type given. String, integer, float, boolean or array expected" => "Invalid type given. String, integer, float, boolean or array expected",
 
-    // Zend_Validator_Regex
+    // Zend\Validator\Regex
     "Invalid type given. String, integer or float expected" => "Invalid type given. String, integer or float expected",
     "The input does not match against pattern '%pattern%'" => "The input does not match against pattern '%pattern%'",
     "There was an internal error while using the pattern '%pattern%'" => "There was an internal error while using the pattern '%pattern%'",
 
-    // Zend_Validator_Sitemap_Changefreq
+    // Zend\Validator\Sitemap\Changefreq
     "The input is not a valid sitemap changefreq" => "The input is not a valid sitemap changefreq",
     "Invalid type given. String expected" => "Invalid type given. String expected",
 
-    // Zend_Validator_Sitemap_Lastmod
+    // Zend\Validator\Sitemap\Lastmod
     "The input is not a valid sitemap lastmod" => "The input is not a valid sitemap lastmod",
     "Invalid type given. String expected" => "Invalid type given. String expected",
 
-    // Zend_Validator_Sitemap_Loc
+    // Zend\Validator\Sitemap\Loc
     "The input is not a valid sitemap location" => "The input is not a valid sitemap location",
     "Invalid type given. String expected" => "Invalid type given. String expected",
 
-    // Zend_Validator_Sitemap_Priority
+    // Zend\Validator\Sitemap\Priority
     "The input is not a valid sitemap priority" => "The input is not a valid sitemap priority",
     "Invalid type given. Numeric string, integer or float expected" => "Invalid type given. Numeric string, integer or float expected",
 
-    // Zend_Validator_Step
+    // Zend\Validator\Step
     "Invalid value given. Scalar expected" => "Invalid value given. Scalar expected",
     "The input is not a valid step" => "The input is not a valid step",
 
-    // Zend_Validator_StringLength
+    // Zend\Validator\StringLength
     "Invalid type given. String expected" => "Invalid type given. String expected",
     "The input is less than %min% characters long" => "The input is less than %min% characters long",
     "The input is more than %max% characters long" => "The input is more than %max% characters long",
 
-    // Zend_Validator_Uri
+    // Zend\Validator\Uri
     "Invalid type given. String expected" => "Invalid type given. String expected",
     "The input does not appear to be a valid Uri" => "The input does not appear to be a valid Uri",
 );
diff --git a/vendor/zendframework/zendframework/resources/languages/es/Zend_Validate.php b/vendor/zendframework/zendframework/resources/languages/es/Zend_Validate.php
index 8c5ef6e6607..5b33eaee9b7 100644
--- a/vendor/zendframework/zendframework/resources/languages/es/Zend_Validate.php
+++ b/vendor/zendframework/zendframework/resources/languages/es/Zend_Validate.php
@@ -172,7 +172,7 @@ return array(
 
     // Zend_Validate_File_WordCount
     "Too much words, maximum '%max%' are allowed but '%count%' were counted" => "Demasiadas palabras, sólo se permiten '%max%' pero se han contado '%count%'",
-    "Too less words, minimum '%min%' are expected but '%count%' were counted" => "Demasiado pocas palabras, se esperaban al menos '%min%' pero se han contado '%count%'",
+    "Too few words, minimum '%min%' are expected but '%count%' were counted" => "Demasiado pocas palabras, se esperaban al menos '%min%' pero se han contado '%count%'",
     "File '%value%' could not be found" => "No se ha podido encontrar el archivo '%value%'",
 
     // Zend_Validate_Float
diff --git a/vendor/zendframework/zendframework/resources/languages/fi/Zend_Validate.php b/vendor/zendframework/zendframework/resources/languages/fi/Zend_Validate.php
index 832d9070a54..b9cc21e619c 100644
--- a/vendor/zendframework/zendframework/resources/languages/fi/Zend_Validate.php
+++ b/vendor/zendframework/zendframework/resources/languages/fi/Zend_Validate.php
@@ -172,7 +172,7 @@ return array(
 
     // Zend_Validate_File_WordCount
     "Too much words, maximum '%max%' are allowed but '%count%' were counted" => "Virheellinen määrä sanoja, maksimäärä on '%max%', annettu '%count%'",
-    "Too less words, minimum '%min%' are expected but '%count%' were counted" => "Virheellinen määrä sanoja, minimimäärä on '%min%', annettu '%count%'",
+    "Too few words, minimum '%min%' are expected but '%count%' were counted" => "Virheellinen määrä sanoja, minimimäärä on '%min%', annettu '%count%'",
     "File '%value%' is not readable or does not exist" => "Tiedostoa '%value%' ei voida lukea tai sitä ei ole",
 
     // Zend_Validate_Float
diff --git a/vendor/zendframework/zendframework/resources/languages/fr/Zend_Validate.php b/vendor/zendframework/zendframework/resources/languages/fr/Zend_Validate.php
index 08d6a6c0f77..5205adf0cd1 100644
--- a/vendor/zendframework/zendframework/resources/languages/fr/Zend_Validate.php
+++ b/vendor/zendframework/zendframework/resources/languages/fr/Zend_Validate.php
@@ -188,7 +188,7 @@ return array(
 
     // Zend_Validator_File_WordCount
     "Too much words, maximum '%max%' are allowed but '%count%' were counted" => "Trop de mots. '%max%' sont autorisés, '%count%' comptés",
-    "Too less words, minimum '%min%' are expected but '%count%' were counted" => "Pas assez de mots. '%min%' sont attendus, '%count%' comptés",
+    "Too few words, minimum '%min%' are expected but '%count%' were counted" => "Pas assez de mots. '%min%' sont attendus, '%count%' comptés",
     "File '%value%' is not readable or does not exist" => "Le fichier '%value%' n'est pas lisible ou n'existe pas",
 
     // Zend_Validator_GreaterThan
@@ -268,7 +268,7 @@ return array(
 
     // Zend_Validator_StringLength
     "Invalid type given. String expected" => "Type invalide. Chaîne attendue",
-    "The input is less than %min% characters long" => "L'entrée conteint moins de %min% caractères",
+    "The input is less than %min% characters long" => "L'entrée contient moins de %min% caractères",
     "The input is more than %max% characters long" => "L'entrée contient plus de %max% caractères",
 
     // Zend_Validator_Uri
diff --git a/vendor/zendframework/zendframework/resources/languages/hr/Zend_Validate.php b/vendor/zendframework/zendframework/resources/languages/hr/Zend_Validate.php
index a81b2b9c89d..d6c4ef9b190 100644
--- a/vendor/zendframework/zendframework/resources/languages/hr/Zend_Validate.php
+++ b/vendor/zendframework/zendframework/resources/languages/hr/Zend_Validate.php
@@ -172,7 +172,7 @@ return array(
 
     // Zend_Validate_File_WordCount
     "Too much words, maximum '%max%' are allowed but '%count%' were counted" => "Previše riječi, maksimalno '%max%' riječi je dozvoljeno, a ima ih '%count%'",
-    "Too less words, minimum '%min%' are expected but '%count%' were counted" => "Premalo riječi, očekuje se minimalno '%min%' riječi, a ima ih '%count%' ",
+    "Too few words, minimum '%min%' are expected but '%count%' were counted" => "Premalo riječi, očekuje se minimalno '%min%' riječi, a ima ih '%count%' ",
     "File '%value%' could not be found" => "Datoteku '%value%' nije moguće pronaći",
 
     // Zend_Validate_Float
diff --git a/vendor/zendframework/zendframework/resources/languages/it/Zend_Captcha.php b/vendor/zendframework/zendframework/resources/languages/it/Zend_Captcha.php
index 797c1521dba..c9d94fd5868 100644
--- a/vendor/zendframework/zendframework/resources/languages/it/Zend_Captcha.php
+++ b/vendor/zendframework/zendframework/resources/languages/it/Zend_Captcha.php
@@ -20,12 +20,12 @@
  * EN-Revision: 30.Jul.2011
  */
 return array(
-    // Zend_Captcha_ReCaptcha
+    // Zend\Captcha\ReCaptcha
     "Missing captcha fields" => "Campi captcha mancanti",
     "Failed to validate captcha" => "Validazione del captcha fallito",
     "Captcha value is wrong: %value%" => "Il valore del Captcha è sbagliato: %value%",
 
-    // Zend_Captcha_Word
+    // Zend\Captcha\Word
     "Empty captcha value" => "Valore del captcha vuoto",
     "Captcha ID field is missing" => "Manca il campo Captcha ID",
     "Captcha value is wrong" => "Il valore del Captcha è sbagliato",
diff --git a/vendor/zendframework/zendframework/resources/languages/it/Zend_Validate.php b/vendor/zendframework/zendframework/resources/languages/it/Zend_Validate.php
index d8804ef94be..445b98d5129 100644
--- a/vendor/zendframework/zendframework/resources/languages/it/Zend_Validate.php
+++ b/vendor/zendframework/zendframework/resources/languages/it/Zend_Validate.php
@@ -17,163 +17,161 @@
  */
 
 /**
- * EN-Revision: 09.Sept.2012
+ * IT-Revision: 04.Apr.2013
  */
 return array(
-    // Zend_I18n_Validator_Alnum
+    // Zend\I18n\Validator\Alnum
     "Invalid type given. String, integer or float expected" => "Tipo di dato non valido. Era atteso un dato di tipo string, float o integer",
     "The input contains characters which are non alphabetic and no digits" => "L'input contiene caratteri che non sono alfanumerici",
     "The input is an empty string" => "L'input è una stringa vuota",
 
-    // Zend_I18n_Validator_Alpha
+    // Zend\I18n\Validator\Alpha
     "Invalid type given. String expected" => "Tipo di dato non valido. Era attesto un dato di tipo string",
     "The input contains non alphabetic characters" => "L'input contiene caratteri non alfabetici",
     "The input is an empty string" => "L'input è una stringa vuota",
 
-    // Zend_I18n_Validator_Float
+    // Zend\I18n\Validator\Float
     "Invalid type given. String, integer or float expected" => "Tipo di dato non valido. Era atteso un dato di tipo string, float o integer",
     "The input does not appear to be a float" => "L'input non sembra essere un dato di tipo float",
 
-    // Zend_I18n_Validator_Int
+    // Zend\I18n\Validator\Int
     "Invalid type given. String or integer expected" => "Tipo di dato non valido. Era atteso un dato di tipo string o integer",
     "The input does not appear to be an integer" => "L'input non sembra essere un intero",
 
-    // Zend_I18n_Validator_PostCode
+    // Zend\I18n\Validator\PostCode
     "Invalid type given. String or integer expected" => "Tipo di dato non valido. Era atteso un dato di tipo string o integer",
     "The input does not appear to be a postal code" => "L'input non sembra essere un codice postale",
     "An exception has been raised while validating the input" => "Un'eccezione è stata sollevada durante la validazione dell'input",
 
-    // Zend_Validator_Barcode
+    // Zend\Validator\Barcode
     "The input failed checksum validation" => "L'input non ha un checksum valido",
     "The input contains invalid characters" => "L'input contiene caratteri non permessi",
     "The input should have a length of %length% characters" => "L'input non ha la lunghezza corretta di %length% caratteri",
     "Invalid type given. String expected" => "Tipo di dato non valido. Era attesto un dato di tipo string",
 
-    // Zend_Validator_Between
+    // Zend\Validator\Between
     "The input is not between '%min%' and '%max%', inclusively" => "L'input non è compreso tra '%min%' e '%max%', inclusi",
     "The input is not strictly between '%min%' and '%max%'" => "L'input non è strettamente compreso tra '%min%' e '%max%'",
 
-    // Zend_Validator_Callback
+    // Zend\Validator\Callback
     "The input is not valid" => "L'input non è valido",
     "An exception has been raised within the callback" => "Un'eccezione è stata sollevata all'interno della callback",
 
-    // Zend_Validator_CreditCard
+    // Zend\Validator\CreditCard
     "The input seems to contain an invalid checksum" => "L'input sembra avere un checksum non valido",
     "The input must contain only digits" => "L'input deve contenere solo cifre",
     "Invalid type given. String expected" => "Tipo di dato non valido. Era attesto un dato di tipo string",
     "The input contains an invalid amount of digits" => "L'input contiene un numero non valido di cifre",
     "The input is not from an allowed institute" => "L'input proviene da un istituto non supportato",
-    "The input seems to be an invalid creditcard number" => "L'input sembra essere un numero di carta di credito non valido",
+    "The input seems to be an invalid credit card number" => "L'input sembra essere un numero di carta di credito non valido",
     "An exception has been raised while validating the input" => "Un'eccezione è stata sollevada durante la validazione dell'input",
 
-    // Zend_Validator_Csrf
+    // Zend\Validator\Csrf
     "The form submitted did not originate from the expected site" => "La form inviata non ha avuto origine dal luogo previsto",
 
-    // Zend_Validator_Date
+    // Zend\Validator\Date
     "Invalid type given. String, integer, array or DateTime expected" => "Tipo di dato non valido. Era atteso un dato di tipo string, integer, array o DateTime",
     "The input does not appear to be a valid date" => "L'input non sembra essere una data valida",
     "The input does not fit the date format '%format%'" => "L'input non corrisponde al formato data '%format%'",
 
-    // Zend_Validator_DateStep
-    "Invalid type given. String, integer, array or DateTime expected" => "Tipo di dato non valido. Era atteso un dato di tipo string, integer, array o DateTime",
-    "The input does not appear to be a valid date" => "L'input non sembra essere una data valida",
+    // Zend\Validator\DateStep
     "The input is not a valid step" => "L'input non è uno step valido",
 
-    // Zend_Validator_Db_AbstractDb
+    // Zend\Validator\Db\AbstractDb
     "No record matching the input was found" => "Non è stata trovata nessuna riga corrispondente all'input",
     "A record matching the input was found" => "E' già stata trovata una riga corrispondente all'input",
 
-    // Zend_Validator_Digits
+    // Zend\Validator\Digits
     "The input must contain only digits" => "L'input deve contenere solo cifre",
     "The input is an empty string" => "L'input è una stringa vuota",
     "Invalid type given. String, integer or float expected" => "Tipo di dato non valido. Era atteso un dato di tipo string, float o integer",
 
-    // Zend_Validator_EmailAddress
+    // Zend\Validator\EmailAddress
     "Invalid type given. String expected" => "Tipo di dato non valido. Era attesto un dato di tipo string",
     "The input is not a valid email address. Use the basic format local-part@hostname" => "L'input non è un indirizzo email valido nel formato base local-part@hostname",
     "'%hostname%' is not a valid hostname for the email address" => "'%hostname%' non è un hostname valido nell'indirizzo email",
     "'%hostname%' does not appear to have any valid MX or A records for the email address" => "'%hostname%' non sembra avere un record MX o A valido nell'indirizzo email",
-    "'%hostname%' is not in a routable network segment. The email address should not be resolved from public network" => "'%hostname%' non è in un segmento di rete instradabile. L'indirizzo email non può essere risolto nella rete pubblica.",
+    "'%hostname%' is not in a routable network segment. The email address should not be resolved from public network" => "'%hostname%' non è in un segmento di rete instradabile. L'indirizzo email non può essere risolto nella rete pubblica",
     "'%localPart%' can not be matched against dot-atom format" => "'%localPart%' non può essere validato nel formato dot-atom",
     "'%localPart%' can not be matched against quoted-string format" => "'%localPart%' non può essere validato nel formato quoted-string",
     "'%localPart%' is not a valid local part for the email address" => "'%localPart%' non è una local part valida nell'indirizzo email",
     "The input exceeds the allowed length" => "L'input supera la lunghezza consentita",
 
-    // Zend_Validator_Explode
-    "Invalid type given. String expected" => "Tipo di dato non valido. Era attesto un dato di tipo string",
+    // Zend\Validator\Explode
+    "Invalid type given" => "Tipo di dato non valido",
 
-    // Zend_Validator_File_Count
+    // Zend\Validator\File\Count
     "Too many files, maximum '%max%' are allowed but '%count%' are given" => "Troppi file, sono consentiti massimo '%max%' file ma ne sono stati passati '%count%'",
     "Too few files, minimum '%min%' are expected but '%count%' are given" => "Troppi pochi file, sono attesi minimo '%min%' file ma ne sono stato passati solo '%count%'",
 
-    // Zend_Validator_File_Crc32
-    "File '%value%' does not match the given crc32 hashes" => "Il file '%value%' non ha un hash crc32 tra quelli consentiti",
+    // Zend\Validator\File\Crc32
+    "File does not match the given crc32 hashes" => "Il file non ha un hash crc32 tra quelli consentiti",
     "A crc32 hash could not be evaluated for the given file" => "L'hash crc32 non può essere calcolato per il file dato",
-    "File '%value%' is not readable or does not exist" => "Il file '%value%' non è leggibile o non esiste",
+    "File is not readable or does not exist" => "Il file non è leggibile o non esiste",
 
-    // Zend_Validator_File_ExcludeExtension
-    "File '%value%' has a false extension" => "Il file '%value%' ha un'estensione invalida",
-    "File '%value%' is not readable or does not exist" => "Il file '%value%' non è leggibile o non esiste",
+    // Zend\Validator\File\ExcludeExtension
+    "File has an incorrect extension" => "Il file ha un'estensione invalida",
+    "File is not readable or does not exist" => "Il file non è leggibile o non esiste",
 
-    // Zend_Validator_File_Exists
-    "File '%value%' does not exist" => "Il file '%value%' non esiste",
+    // Zend\Validator\File\Exists
+    "File does not exist" => "Il file non esiste",
 
-    // Zend_Validator_File_Extension
-    "File '%value%' has a false extension" => "Il file '%value%' ha un'estensione invalida",
-    "File '%value%' is not readable or does not exist" => "Il file '%value%' non è leggibile o non esiste",
+    // Zend\Validator\File\Extension
+    "File has an incorrect extension" => "Il file ha un'estensione invalida",
+    "File is not readable or does not exist" => "Il file non è leggibile o non esiste",
 
-    // Zend_Validator_File_FilesSize
+    // Zend\Validator\File\FilesSize
     "All files in sum should have a maximum size of '%max%' but '%size%' were detected" => "I file devono avere in totale una dimensione massima di '%max%' ma è stata rilevata una dimensione di '%size%'",
     "All files in sum should have a minimum size of '%min%' but '%size%' were detected" => "I file devono avere in totale una dimensione minima di '%min%' ma è stata rilevata una dimensione di '%size%'",
     "One or more files can not be read" => "Uno o più file non possono essere letti",
 
-    // Zend_Validator_File_Hash
-    "File '%value%' does not match the given hashes" => "I file '%value%' non corrisponde agli hash dati",
+    // Zend\Validator\File\Hash
+    "File does not match the given hashes" => "I file non corrisponde agli hash dati",
     "A hash could not be evaluated for the given file" => "Un hash non può essere valutato per il file dato",
-    "File '%value%' is not readable or does not exist" => "Il file '%value%' non è leggibile o non esiste",
-
-    // Zend_Validator_File_ImageSize
-    "Maximum allowed width for image '%value%' should be '%maxwidth%' but '%width%' detected" => "La larghezza massima consentita per l'immagine '%value%' è '%maxwidth%' ma è stata rilevata una larghezza di '%width%'",
-    "Minimum expected width for image '%value%' should be '%minwidth%' but '%width%' detected" => "La larghezza minima consentita per l'immagine '%value%' è '%minwidth%' ma è stata rilevata una larghezza di '%width%'",
-    "Maximum allowed height for image '%value%' should be '%maxheight%' but '%height%' detected" => "L'altezza massima consentita per l'immagine '%value%' è '%maxheight%' ma è stata rilevata un'altezza di '%height%'",
-    "Minimum expected height for image '%value%' should be '%minheight%' but '%height%' detected" => "L'altezza minima consentita per l'immagine '%value%' è '%minheight%' ma è stata rilevata un'altezza di '%height%'",
-    "The size of image '%value%' could not be detected" => "Le dimensioni dell'immagine '%value%' non possono essere rilevate",
-    "File '%value%' is not readable or does not exist" => "Il file '%value%' non è leggibile o non esiste",
-
-    // Zend_Validator_File_IsCompressed
-    "File '%value%' is not compressed, '%type%' detected" => "Il file '%value%' non è un file compresso, ma un file di tipo '%type%'",
-    "The mimetype of file '%value%' could not be detected" => "Il mimetype del file '%value%' non può essere rilevato",
-    "File '%value%' is not readable or does not exist" => "Il file '%value%' non è leggibile o non esiste",
-
-    // Zend_Validator_File_IsImage
-    "File '%value%' is no image, '%type%' detected" => "Il file '%value%' non è un'immagine, ma un file di tipo '%type%'",
-    "The mimetype of file '%value%' could not be detected" => "Il mimetype del file '%value%' non può essere rilevato",
-    "File '%value%' is not readable or does not exist" => "Il file '%value%' non è leggibile o non esiste",
-
-    // Zend_Validator_File_Md5
-    "File '%value%' does not match the given md5 hashes" => "Il file '%value%' non corrisponde agli hash md5 dati",
-    "A md5 hash could not be evaluated for the given file" => "Un hash md5 non può essere valutato per il file dato",
-    "File '%value%' is not readable or does not exist" => "Il file '%value%' non è leggibile o non esiste",
-
-    // Zend_Validator_File_MimeType
-    "File '%value%' has a false mimetype of '%type%'" => "Il file '%value%' ha un mimetype invalido: '%type%'",
-    "The mimetype of file '%value%' could not be detected" => "Il mimetype del file '%value%' non può essere rilevato",
-    "File '%value%' is not readable or does not exist" => "Il file '%value%' non è leggibile o non esiste",
-
-    // Zend_Validator_File_NotExists
-    "File '%value%' exists" => "Il file '%value%' esiste già",
-
-    // Zend_Validator_File_Sha1
-    "File '%value%' does not match the given sha1 hashes" => "Il file '%value%' non corrisponde agli hash sha1 dati",
+    "File is not readable or does not exist" => "Il file non è leggibile o non esiste",
+
+    // Zend\Validator\File\ImageSize
+    "Maximum allowed width for image should be '%maxwidth%' but '%width%' detected" => "La larghezza massima consentita per l'immagine è '%maxwidth%' ma è stata rilevata una larghezza di '%width%'",
+    "Minimum expected width for image should be '%minwidth%' but '%width%' detected" => "La larghezza minima consentita per l'immagine è '%minwidth%' ma è stata rilevata una larghezza di '%width%'",
+    "Maximum allowed height for image should be '%maxheight%' but '%height%' detected" => "L'altezza massima consentita per l'immagine è '%maxheight%' ma è stata rilevata un'altezza di '%height%'",
+    "Minimum expected height for image should be '%minheight%' but '%height%' detected" => "L'altezza minima consentita per l'immagine è '%minheight%' ma è stata rilevata un'altezza di '%height%'",
+    "The size of image could not be detected" => "Le dimensioni dell'immagine non possono essere rilevate",
+    "File is not readable or does not exist" => "Il file non è leggibile o non esiste",
+
+    // Zend\Validator\File\IsCompressed
+    "File is not compressed, '%type%' detected" => "Il file non è un file compresso, ma un file di tipo '%type%'",
+    "The mimetype could not be detected from the file" => "Il mimetype del file non può essere rilevato",
+    "File is not readable or does not exist" => "Il file non è leggibile o non esiste",
+
+    // Zend\Validator\File\IsImage
+    "File is no image, '%type%' detected" => "Il file non è un'immagine, ma un file di tipo '%type%'",
+    "The mimetype could not be detected from the file" => "Il mimetype del file non può essere rilevato",
+    "File is not readable or does not exist" => "Il file non è leggibile o non esiste",
+
+    // Zend\Validator\File\Md5
+    "File does not match the given md5 hashes" => "Il file non corrisponde agli hash md5 dati",
+    "An md5 hash could not be evaluated for the given file" => "Un hash md5 non può essere valutato per il file dato",
+    "File is not readable or does not exist" => "Il file non è leggibile o non esiste",
+
+    // Zend\Validator\File\MimeType
+    "File has an incorrect mimetype of '%type%'" => "Il file ha un mimetype invalido: '%type%'",
+    "The mimetype could not be detected from the file" => "Il mimetype del file non può essere rilevato",
+    "File is not readable or does not exist" => "Il file non è leggibile o non esiste",
+
+    // Zend\Validator\File\NotExists
+    "File exists" => "Il file esiste già",
+
+    // Zend\Validator\File\Sha1
+    "File does not match the given sha1 hashes" => "Il file non corrisponde agli hash sha1 dati",
     "A sha1 hash could not be evaluated for the given file" => "Un hash sha1 non può essere valutato per il file dato",
-    "File '%value%' is not readable or does not exist" => "Il file '%value%' non è leggibile o non esiste",
+    "File is not readable or does not exist" => "Il file non è leggibile o non esiste",
 
-    // Zend_Validator_File_Size
-    "Maximum allowed size for file '%value%' is '%max%' but '%size%' detected" => "La dimensione massima consentita per il file '%value%' è '%max%' ma è stata rilevata una dimensione di '%size%'",
-    "Minimum expected size for file '%value%' is '%min%' but '%size%' detected" => "La dimensione minima consentita per il file '%value%' è '%min%' ma è stata rilevata una dimensione di '%size%'",
-    "File '%value%' is not readable or does not exist" => "Il file '%value%' non è leggibile o non esiste",
+    // Zend\Validator\File\Size
+    "Maximum allowed size for file is '%max%' but '%size%' detected" => "La dimensione massima consentita per il file è '%max%' ma è stata rilevata una dimensione di '%size%'",
+    "Minimum expected size for file is '%min%' but '%size%' detected" => "La dimensione minima consentita per il file è '%min%' ma è stata rilevata una dimensione di '%size%'",
+    "File is not readable or does not exist" => "Il file non è leggibile o non esiste",
 
-    // Zend_Validator_File_Upload
+    // Zend\Validator\File\Upload
     "File '%value%' exceeds the defined ini size" => "Il file '%value%' eccede la dimensione definita nell'ini",
     "File '%value%' exceeds the defined form size" => "Il file '%value%' eccede la dimensione definita nella form",
     "File '%value%' was only partially uploaded" => "Il file '%value%' è stato caricato solo parzialmente",
@@ -185,7 +183,7 @@ return array(
     "File '%value%' was not found" => "Il file '%value%' non è stato trovato",
     "Unknown error while uploading file '%value%'" => "Errore sconosciuto durante il caricamento del file '%value%'",
 
-    // Zend_Validator_File_UploadFile
+    // Zend\Validator\File\UploadFile
     "File exceeds the defined ini size" => "Il file eccede la dimensione definita nell'ini",
     "File exceeds the defined form size" => "Il file eccede la dimensione definita nella form",
     "File was only partially uploaded" => "Il file è stato caricato solo parzialmente",
@@ -197,20 +195,20 @@ return array(
     "File was not found" => "Il file non è stato trovato",
     "Unknown error while uploading file" => "Errore sconosciuto durante il caricamento del file",
 
-    // Zend_Validator_File_WordCount
-    "Too much words, maximum '%max%' are allowed but '%count%' were counted" => "Il file contiene troppe parole, ne sono consentite massimo '%max%' ma ne sono state contate '%count%'",
-    "Too less words, minimum '%min%' are expected but '%count%' were counted" => "Il file contiene troppe poche parole, ne sono consentite minimo '%min%' ma ne sono state contate '%count%'",
-    "File '%value%' is not readable or does not exist" => "Il file '%value%' non è leggibile o non esiste",
+    // Zend\Validator\File\WordCount
+    "Too many words, maximum '%max%' are allowed but '%count%' were counted" => "Il file contiene troppe parole, ne sono consentite massimo '%max%' ma ne sono state contate '%count%'",
+    "Too few words, minimum '%min%' are expected but '%count%' were counted" => "Il file contiene troppe poche parole, ne sono consentite minimo '%min%' ma ne sono state contate '%count%'",
+    "File is not readable or does not exist" => "Il file non è leggibile o non esiste",
 
-    // Zend_Validator_GreaterThan
+    // Zend\Validator\GreaterThan
     "The input is not greater than '%min%'" => "L'input non è maggiore di '%min%'",
     "The input is not greater or equal than '%min%'" => "L'input non è maggiore o uguale a '%min%'",
 
-    // Zend_Validator_Hex
+    // Zend\Validator\Hex
     "Invalid type given. String expected" => "Tipo di dato non valido. Era attesto un dato di tipo string",
     "The input contains non-hexadecimal characters" => "L'input non è composto solo da caratteri esadecimali",
 
-    // Zend_Validator_Hostname
+    // Zend\Validator\Hostname
     "The input appears to be a DNS hostname but the given punycode notation cannot be decoded" => "L'input sembra essere un hostname DNS ma la notazione punycode data non può essere decodificata",
     "Invalid type given. String expected" => "Tipo di dato non valido. Era attesto un dato di tipo string",
     "The input appears to be a DNS hostname but contains a dash in an invalid position" => "L'input sembra essere un hostname DNS ma contiene un trattino in una posizione non valida",
@@ -223,66 +221,69 @@ return array(
     "The input appears to be a DNS hostname but cannot extract TLD part" => "L'input sembra essere un hostname DNS ma non è possibile estrarne il TLD",
     "The input appears to be a DNS hostname but cannot match TLD against known list" => "L'input sembra essere un hostname DNS ma il suo TLD è sconosciuto",
 
-    // Zend_Validator_Iban
+    // Zend\Validator\Iban
     "Unknown country within the IBAN" => "Codice paese sconosciuto nell'IBAN fornito",
     "Countries outside the Single Euro Payments Area (SEPA) are not supported" => "I paesi fuori dall'Area unica dei pagamenti in euro (SEPA) non sono supportati",
     "The input has a false IBAN format" => "L'input ha un formato IBAN non valido",
     "The input has failed the IBAN check" => "L'input ha fallito il controllo IBAN",
 
-    // Zend_Validator_Identical
+    // Zend\Validator\Identical
     "The two given tokens do not match" => "I due token dati non corrispondono",
     "No token was provided to match against" => "Non è stato dato nessun token per il confronto",
 
-    // Zend_Validator_InArray
+    // Zend\Validator\InArray
     "The input was not found in the haystack" => "L'input non è stato trovato nell'array",
 
-    // Zend_Validator_Ip
+    // Zend\Validator\Ip
     "Invalid type given. String expected" => "Tipo di dato non valido. Era attesto un dato di tipo string",
     "The input does not appear to be a valid IP address" => "L'input non sembra essere un indirizzo IP valido",
 
-    // Zend_Validator_Isbn
+    // Zend\Validator\IsInstanceOf
+    "The input is not an instance of '%className%'" => "L'input non è un'istanza di '%className%'",
+
+    // Zend\Validator\Isbn
     "Invalid type given. String or integer expected" => "Tipo di dato non valido. Era atteso un dato di tipo string o integer",
     "The input is not a valid ISBN number" => "L'input non è un numero ISBN valido",
 
-    // Zend_Validator_LessThan
+    // Zend\Validator\LessThan
     "The input is not less than '%max%'" => "L'input non è minore di '%max%'",
     "The input is not less or equal than '%max%'" => "L'input non è minore o uguale a '%max%'",
 
-    // Zend_Validator_NotEmpty
+    // Zend\Validator\NotEmpty
     "Value is required and can't be empty" => "Il dato è richiesto e non può essere vuoto",
     "Invalid type given. String, integer, float, boolean or array expected" => "Tipo di dato non valido. Era atteso un dato di tipo string, integer, float, boolean o array",
 
-    // Zend_Validator_Regex
+    // Zend\Validator\Regex
     "Invalid type given. String, integer or float expected" => "Tipo di dato non valido. Era atteso un dato di tipo string, float o integer",
     "The input does not match against pattern '%pattern%'" => "L'input non corrisponde al pattern '%pattern%'",
     "There was an internal error while using the pattern '%pattern%'" => "Si è verificato un errore interno usando il pattern '%pattern%'",
 
-    // Zend_Validator_Sitemap_Changefreq
+    // Zend\Validator\Sitemap\Changefreq
     "The input is not a valid sitemap changefreq" => "L'input non è una sitemap changefreq valida",
     "Invalid type given. String expected" => "Tipo di dato non valido. Era attesto un dato di tipo string",
 
-    // Zend_Validator_Sitemap_Lastmod
+    // Zend\Validator\Sitemap\Lastmod
     "The input is not a valid sitemap lastmod" => "L'input non è un sitemap lastmod valido",
     "Invalid type given. String expected" => "Tipo di dato non valido. Era attesto un dato di tipo string",
 
-    // Zend_Validator_Sitemap_Loc
+    // Zend\Validator\Sitemap\Loc
     "The input is not a valid sitemap location" => "L'input non è una sitemap location valida",
     "Invalid type given. String expected" => "Tipo di dato non valido. Era attesto un dato di tipo string",
 
-    // Zend_Validator_Sitemap_Priority
+    // Zend\Validator\Sitemap\Priority
     "The input is not a valid sitemap priority" => "L'input non è una sitemap priority valida",
     "Invalid type given. Numeric string, integer or float expected" => "Tipo di dato non valido. Era atteso un dato di tipo stringa numerica, float o integer",
 
-    // Zend_Validator_Step
+    // Zend\Validator\Step
     "Invalid value given. Scalar expected" => "Tipo di dato non valido. Era attesto un dato di tipo scalare",
     "The input is not a valid step" => "L'input non è uno step valido",
 
-    // Zend_Validator_StringLength
+    // Zend\Validator\StringLength
     "Invalid type given. String expected" => "Tipo di dato non valido. Era attesto un dato di tipo string",
     "The input is less than %min% characters long" => "L'input è meno lungo di %min% caratteri",
     "The input is more than %max% characters long" => "L'input è più lungo di %max% caratteri",
 
-    // Zend_Validator_Uri
+    // Zend\Validator\Uri
     "Invalid type given. String expected" => "Tipo di dato non valido. Era attesto un dato di tipo string",
     "The input does not appear to be a valid Uri" => "L'input non sembra essere un indirizzo URI valido",
 );
diff --git a/vendor/zendframework/zendframework/resources/languages/ja/Zend_Validate.php b/vendor/zendframework/zendframework/resources/languages/ja/Zend_Validate.php
index fc494368774..e8d86a89ebd 100644
--- a/vendor/zendframework/zendframework/resources/languages/ja/Zend_Validate.php
+++ b/vendor/zendframework/zendframework/resources/languages/ja/Zend_Validate.php
@@ -187,7 +187,7 @@ return array(
 
     // Zend_Validator_File_WordCount
     "Too much words, maximum '%max%' are allowed but '%count%' were counted" => "単語数 '%count%' が多過ぎます。最大で '%max%' 個が許されます",
-    "Too less words, minimum '%min%' are expected but '%count%' were counted" => "単語数 '%count%' が少な過ぎます。少なくとも '%min%' 個必要です",
+    "Too few words, minimum '%min%' are expected but '%count%' were counted" => "単語数 '%count%' が少な過ぎます。少なくとも '%min%' 個必要です",
     "File '%value%' is not readable or does not exist" => "ファイル '%value%' は読み込めないかもしくは存在しません",
 
     // Zend_Validator_GreaterThan
diff --git a/vendor/zendframework/zendframework/resources/languages/nl/Zend_Validate.php b/vendor/zendframework/zendframework/resources/languages/nl/Zend_Validate.php
index 92acdb27afb..8b9fd1e058a 100644
--- a/vendor/zendframework/zendframework/resources/languages/nl/Zend_Validate.php
+++ b/vendor/zendframework/zendframework/resources/languages/nl/Zend_Validate.php
@@ -187,7 +187,7 @@ return array(
 
     // Zend_Validator_File_WordCount
     "Too much words, maximum '%max%' are allowed but '%count%' were counted" => "Te veel woorden, er is een maximum van '%max%', maar er waren '%count%' geteld",
-    "Too less words, minimum '%min%' are expected but '%count%' were counted" => "Te weinig worden, er is een minimum van '%min%' maar er waren '%count%' getelc",
+    "Too few words, minimum '%min%' are expected but '%count%' were counted" => "Te weinig worden, er is een minimum van '%min%' maar er waren '%count%' getelc",
     "File '%value%' is not readable or does not exist" => "Het bestand '%value%' kon niet worden gevonden",
 
     // Zend_Validator_GreaterThan
diff --git a/vendor/zendframework/zendframework/resources/languages/no/Zend_Validate.php b/vendor/zendframework/zendframework/resources/languages/no/Zend_Validate.php
index 6ae35616f0e..729dcc2bcc1 100644
--- a/vendor/zendframework/zendframework/resources/languages/no/Zend_Validate.php
+++ b/vendor/zendframework/zendframework/resources/languages/no/Zend_Validate.php
@@ -172,7 +172,7 @@ return array(
 
     // Zend_Validate_File_WordCount
     "Too much words, maximum '%max%' are allowed but '%count%' were counted" => "For mange ord, maksimum '%max%' er tillatt, men '%count%' ble telt",
-    "Too less words, minimum '%min%' are expected but '%count%' were counted" => "For få ord, minimum '%min%' er forventet, men '%count%' ble telt",
+    "Too few words, minimum '%min%' are expected but '%count%' were counted" => "For få ord, minimum '%min%' er forventet, men '%count%' ble telt",
     "File '%value%' is not readable or does not exist" => "Filen '%value%' er ikke lesbar eller finnes ikke",
 
     // Zend_Validate_Float
diff --git a/vendor/zendframework/zendframework/resources/languages/pl/Zend_Validate.php b/vendor/zendframework/zendframework/resources/languages/pl/Zend_Validate.php
index 384442cec49..7834892c811 100644
--- a/vendor/zendframework/zendframework/resources/languages/pl/Zend_Validate.php
+++ b/vendor/zendframework/zendframework/resources/languages/pl/Zend_Validate.php
@@ -172,7 +172,7 @@ return array(
 
     // Zend_Validate_File_WordCount
     "Too much words, maximum '%max%' are allowed but '%count%' were counted" => "Podano '%count%' słów. Maksymalna liczba słów to '%max%'",
-    "Too less words, minimum '%min%' are expected but '%count%' were counted" => "Podano '%count%' słów. Minimalna liczba słów to '%min%'",
+    "Too few words, minimum '%min%' are expected but '%count%' were counted" => "Podano '%count%' słów. Minimalna liczba słów to '%min%'",
     "File '%value%' is not readable or does not exist" => "Plik '%value%' nie istnieje lub nie można go odczytać",
 
     // Zend_Validate_Float
diff --git a/vendor/zendframework/zendframework/resources/languages/pt_BR/Zend_Validate.php b/vendor/zendframework/zendframework/resources/languages/pt_BR/Zend_Validate.php
index ce925b8d590..d20e6c196a2 100644
--- a/vendor/zendframework/zendframework/resources/languages/pt_BR/Zend_Validate.php
+++ b/vendor/zendframework/zendframework/resources/languages/pt_BR/Zend_Validate.php
@@ -199,7 +199,7 @@ return array(
 
     // Zend_Validator_File_WordCount
     "Too much words, maximum '%max%' are allowed but '%count%' were counted" => "Há muitas palavras, são permitidas no máximo '%max%', mas '%count%' foram contadas",
-    "Too less words, minimum '%min%' are expected but '%count%' were counted" => "Há poucas palavras, são esperadas no mínimo '%min%', mas '%count%' foram contadas",
+    "Too few words, minimum '%min%' are expected but '%count%' were counted" => "Há poucas palavras, são esperadas no mínimo '%min%', mas '%count%' foram contadas",
     "File '%value%' is not readable or does not exist" => "O arquivo '%value%' não pode ser lido ou não existe",
 
     // Zend_Validator_GreaterThan
diff --git a/vendor/zendframework/zendframework/resources/languages/ru/Zend_Validate.php b/vendor/zendframework/zendframework/resources/languages/ru/Zend_Validate.php
index 50e15ba28c5..083007fb05a 100644
--- a/vendor/zendframework/zendframework/resources/languages/ru/Zend_Validate.php
+++ b/vendor/zendframework/zendframework/resources/languages/ru/Zend_Validate.php
@@ -172,7 +172,7 @@ return array(
 
     // Zend_Validate_File_WordCount
     "Too much words, maximum '%max%' are allowed but '%count%' were counted" => "Слишком много слов, разрешено максимум '%max%' слов, но сейчас - '%count%'",
-    "Too less words, minimum '%min%' are expected but '%count%' were counted" => "Слишком мало слов, разрешено минимум '%min%' слов, но сейчас - '%count%'",
+    "Too few words, minimum '%min%' are expected but '%count%' were counted" => "Слишком мало слов, разрешено минимум '%min%' слов, но сейчас - '%count%'",
     "File '%value%' could not be found" => "Файл '%value%' не найден",
 
     // Zend_Validate_Float
diff --git a/vendor/zendframework/zendframework/resources/languages/se/Zend_Validate.php b/vendor/zendframework/zendframework/resources/languages/se/Zend_Validate.php
index 9ae59533044..092661faed8 100644
--- a/vendor/zendframework/zendframework/resources/languages/se/Zend_Validate.php
+++ b/vendor/zendframework/zendframework/resources/languages/se/Zend_Validate.php
@@ -17,107 +17,122 @@
  */
 
 /**
- * EN-Revision: 25.Jul.2011
+ * EN-Revision: 09.Sept.2012
  */
 return array(
-    // Zend_Validate_Alnum
+    // Zend_I18n_Validator_Alnum
     "Invalid type given. String, integer or float expected" => "Ogiltig typ given. Sträng, heltal eller flyttal förväntat",
-    "'%value%' contains characters which are non alphabetic and no digits" => "'%value%' innehåller tecken som är icke-alfabetiska och inga siffror",
-    "'%value%' is an empty string" => "'%value%' är en tom sträng",
+    "The input contains characters which are non alphabetic and no digits" => "Indatan innehåller tecken som är icke-alfabetiska och inga siffror",
+    "The input is an empty string" => "Indatan är en tom sträng",
 
-    // Zend_Validate_Alpha
+    // Zend_I18n_Validator_Alpha
     "Invalid type given. String expected" => "Ogiltig typ given. Sträng förväntad",
-    "'%value%' contains non alphabetic characters" => "'%value%' innehåller icke-alfabetiska tecken",
-    "'%value%' is an empty string" => "'%value%' är en tom sträng",
+    "The input contains non alphabetic characters" => "Indatan innehåller icke-alfabetiska tecken",
+    "The input is an empty string" => "Indatan är en tom sträng",
 
-    // Zend_Validate_Barcode
-    "'%value%' failed checksum validation" => "Kontrollsummans validering för '%value%' misslyckades",
-    "'%value%' contains invalid characters" => "'%value%' innehåller ogiltiga tecken",
-    "'%value%' should have a length of %length% characters" => "'%value%' bör vara %length% tecken långt",
-    "Invalid type given. String expected" => "Ogiltig typ given. Sträng förväntad",
-
-    // Zend_Validate_Between
-    "'%value%' is not between '%min%' and '%max%', inclusively" => "'%value%' är inte mellan '%min%' och '%max%', inklusive",
-    "'%value%' is not strictly between '%min%' and '%max%'" => "'%value%' är inte strikt mellan '%min%' och '%max%'",
+    // Zend_I18n_Validator_Float
+    "Invalid type given. String, integer or float expected" => "Ogiltig typ given. Sträng, heltal eller flyttal förväntat",
+    "The input does not appear to be a float" => "Indatan tycks inte vara ett flyttal",
 
-    // Zend_Validate_Callback
-    "'%value%' is not valid" => "'%value%' är inte giltigt",
-    "An exception has been raised within the callback" => "Ett undantag har utlösts inom callbacken",
+    // Zend_I18n_Validator_Int
+    "Invalid type given. String or integer expected" => "Ogilitig typ given. Sträng eller heltal förväntat",
+    "The input does not appear to be an integer" => "Indatan tycks inte vara ett heltal",
 
-    // Zend_Validate_Ccnum
-    "'%value%' must contain between 13 and 19 digits" => "'%value%' måste innehålla mellan 13 och 19 siffror",
-    "Luhn algorithm (mod-10 checksum) failed on '%value%'" => "Luhn-algorithmen (mod-10 kontrollsumma) misslyckades för '%value%'",
+    // Zend_I18n_Validator_PostCode
+    "Invalid type given. String or integer expected" => "Ogiltig typ given. Sträng eller heltal förväntat",
+    "The input does not appear to be a postal code" => "Indatan tycks inte vara ett postnummer",
+    "An exception has been raised while validating the input" => "Ett undantag har rests under valideringen av indatan",
 
-    // Zend_Validate_CreditCard
-    "'%value%' seems to contain an invalid checksum" => "'%value%' tycks innehålla en ogiltig kontrollsumma",
-    "'%value%' must contain only digits" => "'%value%' får endast innehålla siffror",
-    "Invalid type given. String expected" => "Ogiltig typ given. Sträng förväntades",
-    "'%value%' contains an invalid amount of digits" => "'%value%' innehåller ett ogiltigt antal siffror",
-    "'%value%' is not from an allowed institute" => "'%value%' är inte från ett tillåtet institut",
-    "'%value%' seems to be an invalid creditcard number" => "'%value%' tycks vara ett ogiltigt kreditkortsnummer",
-    "An exception has been raised while validating '%value%'" => "Ett undantag har utlösts under valideringen av '%value%'",
+    // Zend_Validator_Barcode
+    "The input failed checksum validation" => "Valideringen av indatans kontrollsumma misslyckades",
+    "The input contains invalid characters" => "Indatan innehåller ogiltiga tecken",
+    "The input should have a length of %length% characters" => "Indatan bör vara %length% tecken lång",
+    "Invalid type given. String expected" => "Ogiltig typ given. Sträng förväntad",
 
-    // Zend_Validate_Date
-    "Invalid type given. String, integer, array or Zend_Date expected" => "Ogiltig typ given. Sträng, heltal, array eller Zend_Date förväntat",
-    "'%value%' does not appear to be a valid date" => "'%value%' tycks inte vara ett giltigt datum",
-    "'%value%' does not fit the date format '%format%'" => "'%value%' passar inte datumformatet '%format%'",
+    // Zend_Validator_Between
+    "The input is not between '%min%' and '%max%', inclusively" => "Indatan är inte mellan '%min%' och '%max%', inklusive",
+    "The input is not strictly between '%min%' and '%max%'" => "Indatan är inte strikt mellan '%min%' och '%max%'",
 
-    // Zend_Validate_Db_Abstract
-    "No record matching '%value%' was found" => "Ingen post som matchar '%value%' kunde hittas",
-    "A record matching '%value%' was found" => "En post som matchar '%value%' hittades",
+    // Zend_Validator_Callback
+    "The input is not valid" => "Indatan är inte giltig",
+    "An exception has been raised within the callback" => "Ett undantag har rests inom callbacken",
 
-    // Zend_Validate_Digits
+    // Zend_Validator_CreditCard
+    "The input seems to contain an invalid checksum" => "Indatan tycks innehålla en ogiltig checksumma",
+    "The input must contain only digits" => "Indatan måste innehålla enbart siffror",
+    "Invalid type given. String expected" => "Ogiltig typ given. Sträng förväntades",
+    "The input contains an invalid amount of digits" => "Indatan innehåller ett ogiltigt antal siffror",
+    "The input is not from an allowed institute" => "Indatan härstammar inte från ett giltigt institut",
+    "The input seems to be an invalid creditcard number" => "Indatan tycks vara ett ogiltigt kortnummer",
+    "An exception has been raised while validating the input" => "Ett undantag har rests under valideringen av indatan",
+
+    // Zend_Validator_Csrf
+    "The form submitted did not originate from the expected site" => "Det insända formuläret härstammade inte från den förväntade webbplatsen",
+
+    // Zend_Validator_Date
+    "Invalid type given. String, integer, array or DateTime expected" => "Ogiltig typ given. Sträng, heltal, array eller DateTime förväntad",
+    "The input does not appear to be a valid date" => "Indatan tycks inte vara ett giltigt datum",
+    "The input does not fit the date format '%format%'" => "Indatan passar inte datumformatet '%format%'",
+
+    // Zend_Validator_DateStep
+    "Invalid type given. String, integer, array or DateTime expected" => "Ogiltig typ given. Sträng, heltal, array eller DateTime förväntad",
+    "The input does not appear to be a valid date" => "Indatan tycks inte vara ett giltigt datum",
+    "The input is not a valid step" => "Indatan är inte ett giltigt steg",
+
+    // Zend_Validator_Db_AbstractDb
+    "No record matching the input was found" => "Ingen post som matchar indatan kunde hittas",
+    "A record matching the input was found" => "En post som matchar indatan hittades",
+
+    // Zend_Validator_Digits
+    "'%value%' must contain only digits" => "Indatan får enbart innehålla siffror",
+    "'%value%' is an empty string" => "Indatan är en tom sträng",
     "Invalid type given. String, integer or float expected" => "Ogiltig typ given. Sträng, heltal eller flyttal förväntat",
-    "'%value%' must contain only digits" => "'%value%' får enbart innehålla siffror",
-    "'%value%' is an empty string" => "'%value%' är en tom sträng",
 
-    // Zend_Validate_EmailAddress
+    // Zend_Validator_EmailAddress
     "Invalid type given. String expected" => "Ogiltig typ given. Sträng förväntades",
-    "'%value%' is not a valid email address in the basic format local-part@hostname" => "'%value%' är inte en giltig e-postadress på standardformatet lokal-del@värdnamn",
-    "'%hostname%' is not a valid hostname for email address '%value%'" => "'%hostname%' är inte ett giltigt värdnamn för en e-postadress '%value%'",
-    "'%hostname%' does not appear to have a valid MX record for the email address '%value%'" => "'%hostname%' tycks inte ha en giltig MX-post för e-postadressen '%value%'",
-    "'%hostname%' is not in a routable network segment. The email address '%value%' should not be resolved from public network" => "'%hostname%' är inte ett dirigerbart nätverkssegment. E-postadressen '%value%' bör inte lösas ut från det publika nätverket",
-    "'%localPart%' can not be matched against dot-atom format" => "'%localPart%' kunde inte matchas mot dot-atom formatet",
-    "'%localPart%' can not be matched against quoted-string format" => "'%localPart%' kan inte matchas mot quoted-string formatet",
-    "'%localPart%' is not a valid local part for email address '%value%'" => "'%localPart%' är inte en giltig lokal del för e-postadressen '%value%'",
-    "'%value%' exceeds the allowed length" => "'%value%' överskrider den tillåtna längden",
-
-    // Zend_Validate_File_Count
-    "Too many files, maximum '%max%' are allowed but '%count%' are given" => "För många filer, maximalt '%max%' är tillåtna men '%count%' är angivna",
-    "Too few files, minimum '%min%' are expected but '%count%' are given" => "För få filer, minst '%min%' förväntas men '%count%' är angivna",
-
-    // Zend_Validate_File_Crc32
+    "The input is not a valid email address. Use the basic format local-part@hostname" => "Indatan är inte en giltig e-postadress. Använd standardformatet lokal-del@värdnamn",
+    "'%hostname%' is not a valid hostname for the email address" => "'%hostname%' är inte ett giltigt värdnamn för e-postadressen",
+    "'%hostname%' does not appear to have any valid MX or A records for the email address" => "'%hostname%' tycks inte ha några giltiga MX- eller A-poster för e-postadressen",
+    "'%hostname%' is not in a routable network segment. The email address should not be resolved from public network" => "'%hostname%' finns inte i ett dirigerbart nätverkssegment. E-postadressen bör inte lösas ut från det publika nätverket",
+    "'%localPart%' can not be matched against dot-atom format" => "'%localPart%' kunde inte matchas mot dot-atom-formatet",
+    "'%localPart%' can not be matched against quoted-string format" => "'%localPart%' kan inte matchas mot quoted-string-formatet",
+    "'%localPart%' is not a valid local part for the email address" => "'%localPart%' är inte en giltig lokal del för e-postadressen",
+    "The input exceeds the allowed length" => "Indatan överskrider den tillåtna längden",
+
+    // Zend_Validator_Explode
+    "Invalid type given. String expected" => "Ogiltig typ given. Sträng förväntad",
+
+    // Zend_Validator_File_Count
+    "Too many files, maximum '%max%' are allowed but '%count%' are given" => "För många filer, maximalt '%max%' är tillåtna men '%count%' är givna",
+    "Too few files, minimum '%min%' are expected but '%count%' are given" => "För få filer, minst '%min%' förväntas men '%count%' är givna",
+
+    // Zend_Validator_File_Crc32
     "File '%value%' does not match the given crc32 hashes" => "Filen '%value%' matchar inte de givna crc32-hasharna",
     "A crc32 hash could not be evaluated for the given file" => "En crc32-hash kunde inte utvärderas för den angivna filen",
     "File '%value%' is not readable or does not exist" => "Filen '%value%' är inte läsbar eller existerar inte",
 
-    // Zend_Validate_File_ExcludeExtension
+    // Zend_Validator_File_ExcludeExtension
     "File '%value%' has a false extension" => "Filen '%value%' har en felaktig filändelse",
     "File '%value%' is not readable or does not exist" => "Filen '%value%' är inte läsbar eller existerar inte",
 
-    // Zend_Validate_File_ExcludeMimeType
-    "File '%value%' has a false mimetype of '%type%'" => "Filen '%value%' har mime-typen '%type%'",
-    "The mimetype of file '%value%' could not be detected" => "Mime-typen för filen '%value%' kunde inte detekteras",
-    "File '%value%' is not readable or does not exist" => "Filen '%value%' är inte läsbar eller existerar inte",
-
-    // Zend_Validate_File_Exists
+    // Zend_Validator_File_Exists
     "File '%value%' does not exist" => "Filen '%value%' existerar inte",
 
-    // Zend_Validate_File_Extension
+    // Zend_Validator_File_Extension
     "File '%value%' has a false extension" => "Filen '%value%' har en felaktig filändelse",
     "File '%value%' is not readable or does not exist" => "Filen '%value%' är inte läsbar eller existerar inte",
 
-    // Zend_Validate_File_FilesSize
+    // Zend_Validator_File_FilesSize
     "All files in sum should have a maximum size of '%max%' but '%size%' were detected" => "Alla filer bör totalt ha en maximal storlek av '%max%' men '%size%' upptäcktes",
     "All files in sum should have a minimum size of '%min%' but '%size%' were detected" => "Alla filer bör totalt ha en minimal storlek av '%min%' men '%size%' upptäcktes",
     "One or more files can not be read" => "En eller flera filer kunde inte läsas",
 
-    // Zend_Validate_File_Hash
+    // Zend_Validator_File_Hash
     "File '%value%' does not match the given hashes" => "Filen '%value%' matchar inte de givna hasharna",
     "A hash could not be evaluated for the given file" => "En hash kunde inte utvärderas för den angivna filen",
-    "File '%value%' is not readable or does not exist" => "Filebn '%value%' är inte läsbar eller existerar inte",
+    "File '%value%' is not readable or does not exist" => "Filen '%value%' är inte läsbar eller existerar inte",
 
-    // Zend_Validate_File_ImageSize
+    // Zend_Validator_File_ImageSize
     "Maximum allowed width for image '%value%' should be '%maxwidth%' but '%width%' detected" => "Maximal tillåten bredd för bilden '%value%' är '%maxwidth%' men '%width%' upptäcktes",
     "Minimum expected width for image '%value%' should be '%minwidth%' but '%width%' detected" => "Minimal förväntad bredd för bilden '%value%' är '%minwidth%' men '%width%' upptäcktes",
     "Maximum allowed height for image '%value%' should be '%maxheight%' but '%height%' detected" => "Maximal tillåten höjd för '%value%' är '%maxheight%' men '%height%' upptäcktes",
@@ -125,138 +140,149 @@ return array(
     "The size of image '%value%' could not be detected" => "Storleken på bilden '%value%' kunde inte detekteras",
     "File '%value%' is not readable or does not exist" => "Filen '%value%' är inte läsbar eller existerar inte",
 
-    // Zend_Validate_File_IsCompressed
+    // Zend_Validator_File_IsCompressed
     "File '%value%' is not compressed, '%type%' detected" => "Filen '%value%' är inte komprimerad, '%type%' upptäcktes",
     "The mimetype of file '%value%' could not be detected" => "Mime-typen för filen '%value%' kunde inte detekteras",
     "File '%value%' is not readable or does not exist" => "Filen '%value%' är inte läsbar eller existerar inte",
 
-    // Zend_Validate_File_IsImage
+    // Zend_Validator_File_IsImage
     "File '%value%' is no image, '%type%' detected" => "Filen '%value%' är ingen bild, '%type%' upptäcktes",
     "The mimetype of file '%value%' could not be detected" => "Mime-typen för filen '%value%' kunde inte detekteras",
     "File '%value%' is not readable or does not exist" => "Filen '%value%' är inte läsbar eller existerar inte",
 
-    // Zend_Validate_File_Md5
+    // Zend_Validator_File_Md5
     "File '%value%' does not match the given md5 hashes" => "Filen '%value%' matchar inte de givna md5-hasharna",
     "A md5 hash could not be evaluated for the given file" => "En md5-hash kunde inte utvärderas för den angivna filen",
     "File '%value%' is not readable or does not exist" => "Filen '%value%' är inte läsbar eller existerar inte",
 
-    // Zend_Validate_File_MimeType
+    // Zend_Validator_File_MimeType
     "File '%value%' has a false mimetype of '%type%'" => "Filen '%value%' har en felaktig mime-typ av '%type%'",
     "The mimetype of file '%value%' could not be detected" => "Mime-typen för filen '%value%' kunde inte detekteras",
     "File '%value%' is not readable or does not exist" => "Filen '%value%' är inte läsbar eller existerar inte",
 
-    // Zend_Validate_File_NotExists
+    // Zend_Validator_File_NotExists
     "File '%value%' exists" => "Filen '%value%' existerar",
 
-    // Zend_Validate_File_Sha1
+    // Zend_Validator_File_Sha1
     "File '%value%' does not match the given sha1 hashes" => "Filen '%value%' matchar inte de givna sha1-hasharna",
     "A sha1 hash could not be evaluated for the given file" => "En sha1-hash kunde inte utvärderas för den angivna filen",
     "File '%value%' is not readable or does not exist" => "Filen '%value%' är inte läsbar eller existerar inte",
 
-    // Zend_Validate_File_Size
+    // Zend_Validator_File_Size
     "Maximum allowed size for file '%value%' is '%max%' but '%size%' detected" => "Maximal tillåten storlek för filen '%value%' är '%max%' men '%size%' upptäcktes",
     "Minimum expected size for file '%value%' is '%min%' but '%size%' detected" => "Minimal förväntad storlek för filen '%value%' är '%min%' men '%size%' upptäcktes",
     "File '%value%' is not readable or does not exist" => "Filen '%value%' är inte läsbar eller existerar inte",
 
-    // Zend_Validate_File_Upload
+    // Zend_Validator_File_Upload
     "File '%value%' exceeds the defined ini size" => "Filen '%value%' överskrider den definerade ini-storleken",
     "File '%value%' exceeds the defined form size" => "Filen '%value%' överskrider den definerade formulär-storleken",
     "File '%value%' was only partially uploaded" => "Filen '%value%' blev enbart delvis uppladdad",
     "File '%value%' was not uploaded" => "Filen '%value%' laddades inte upp",
-    "No temporary directory was found for file '%value%'" => "Ingen temporär folder hittades för filen '%value%'",
+    "No temporary directory was found for file '%value%'" => "Ingen temporär mapp hittades för filen '%value%'",
     "File '%value%' can't be written" => "Filen '%value%' kan inte skrivas",
     "A PHP extension returned an error while uploading the file '%value%'" => "Ett PHP-tillägg returnerade ett fel när filen '%value%' laddades upp",
     "File '%value%' was illegally uploaded. This could be a possible attack" => "Filen '%value%' laddades upp olagligt. Det här kan vara en möjlig attack",
     "File '%value%' was not found" => "Filen '%value%' hittades inte",
     "Unknown error while uploading file '%value%'" => "Okänt fel när filen '%value%' laddades upp",
 
-    // Zend_Validate_File_WordCount
+    // Zend_Validator_File_UploadFile
+    "File exceeds the defined ini size" => "Filen överskrider den definerade ini-storleken",
+    "File exceeds the defined form size" => "Filen överskrider den definerade formulär-storleken",
+    "File was only partially uploaded" => "Filen blev enbart delvis uppladdad",
+    "File was not uploaded" => "Filen laddades inte upp",
+    "No temporary directory was found for file" => "Ingen temporär mapp hittades för filen",
+    "File can't be written" => "Filen kan inte skrivas",
+    "A PHP extension returned an error while uploading the file" => "Ett PHP-tillägg returnerade ett fel när filen laddades upp",
+    "File was illegally uploaded. This could be a possible attack" => "Filen laddades upp olagligt. Det här kan vara en möjlig attack",
+    "File was not found" => "Filen hittades inte",
+    "Unknown error while uploading file" => "Okänt fel när filen laddades upp",
+
+    // Zend_Validator_File_WordCount
     "Too much words, maximum '%max%' are allowed but '%count%' were counted" => "För många ord, maximalt '%max%' är tillåtna men '%count%' räknades",
-    "Too less words, minimum '%min%' are expected but '%count%' were counted" => "För få ord, minimalt '%min%' förväntas men '%count%' räknades",
+    "Too few words, minimum '%min%' are expected but '%count%' were counted" => "För få ord, minimalt '%min%' förväntas men '%count%' räknades",
     "File '%value%' is not readable or does not exist" => "Filen '%value%' är inte läsbar eller existerar inte",
 
-    // Zend_Validate_Float
-    "Invalid type given. String, integer or float expected" => "Ogiltig typ given. Sträng, heltal eller flyttal förväntat",
-    "'%value%' does not appear to be a float" => "'%value%' tycks inte vara ett flyttal",
-
-    // Zend_Validate_GreaterThan
-    "'%value%' is not greater than '%min%'" => "'%value%' är inte större än '%min%'",
+    // Zend_Validator_GreaterThan
+    "The input is not greater than '%min%'" => "Indatan är inte större än '%min%'",
+    "The input is not greater or equal than '%min%'" => "Indatan är inte större eller lika med '%min%'",
 
-    // Zend_Validate_Hex
+    // Zend_Validator_Hex
     "Invalid type given. String expected" => "Ogiltig typ given. Sträng förväntad",
-    "'%value%' has not only hexadecimal digit characters" => "'%value%' har inte enbart hexadecimala siffertecken",
+    "The input contains non-hexadecimal characters" => "Indatan innehåller icke-hexadecimala tecken",
 
-    // Zend_Validate_Hostname
+    // Zend_Validator_Hostname
+    "The input appears to be a DNS hostname but the given punycode notation cannot be decoded" => "Indatan tycks vara ett DNS-värdnamn men den givna punycode-notationen kan inte avkodas",
     "Invalid type given. String expected" => "Ogiltig typ given. Sträng förväntad",
-    "'%value%' appears to be an IP address, but IP addresses are not allowed" => "'%value%' tycks vara en IP-adress, men IP-adresses är inte tillåtna",
-    "'%value%' appears to be a DNS hostname but cannot match TLD against known list" => "'%value%' tycks vara ett DNS-värdnamn men kan inte matcha TLDn mot listan med kända",
-    "'%value%' appears to be a DNS hostname but contains a dash in an invalid position" => "'%value%' tycks vara ett DNS-värdnamn men innehåller ett bindestreck på en ogiltig position",
-    "'%value%' appears to be a DNS hostname but cannot match against hostname schema for TLD '%tld%'" => "'%value%' tycks vara ett DNS-värdnamn men kan inte matcha mot värdnamnsschemat för TLDn '%tld%'",
-    "'%value%' appears to be a DNS hostname but cannot extract TLD part" => "'%value%' tycks vara ett DNS-värdnamn men kan inte extrahera TLD-delen",
-    "'%value%' does not match the expected structure for a DNS hostname" => "'%value%' tycks inte matcha den förväntade strukturen för ett DNS-värdnamn",
-    "'%value%' does not appear to be a valid local network name" => "'%value%' tycks inte vara ett giltigt lokalt nätverksnamn",
-    "'%value%' appears to be a local network name but local network names are not allowed" => "'%value%' tycks vara ett lokalt nätverksnamn men lokala nätverksnamn är inte tillåtna",
-    "'%value%' appears to be a DNS hostname but the given punycode notation cannot be decoded" => "'%value%' tycks vara ett DNS-värdnamn men den angivna punycode-notationen kan inte avkodas",
-    "'%value%' does not appear to be a valid URI hostname" => "'%value%' tycks inte vara ett giltigt URI-värdnamn",
-
-    // Zend_Validate_Iban
-    "Unknown country within the IBAN '%value%'" => "Okänd land i IBAN-numret '%value%'",
-    "'%value%' has a false IBAN format" => "'%value%' har ett felaktigt IBAN-format",
-    "'%value%' has failed the IBAN check" => "IBAN-kontrollen har misslyckats för '%value%'",
-
-    // Zend_Validate_Identical
+    "The input appears to be a DNS hostname but contains a dash in an invalid position" => "Indatan tycks vara ett DNS-värdnamn men innehåller ett bindestreck på en ogiltig position",
+    "The input does not match the expected structure for a DNS hostname" => "Indatan tycks inte matcha den förväntade strukturen för ett DNS-värdnamn",
+    "The input appears to be a DNS hostname but cannot match against hostname schema for TLD '%tld%'" => "Indatan tycks vara ett DNS-värdnamn men kan inte matcha mot värdnamnsschemat för TLDn '%tld%'",
+    "The input does not appear to be a valid local network name" => "Indatan tycks inte vara ett giltigt lokalt nätverksnamn",
+    "The input does not appear to be a valid URI hostname" => "'%value%' tycks inte vara ett giltigt URI-värdnamn",
+    "The input appears to be an IP address, but IP addresses are not allowed" => "Indatan tycks vara en IP-adress, men IP-adresses är inte tillåtna",
+    "The input appears to be a local network name but local network names are not allowed" => "Indatan tycks vara ett lokalt nätverksnamn men lokala nätverksnamn är inte tillåtna",
+    "'%value%' appears to be a DNS hostname but cannot extract TLD part" => "Indatan tycks vara ett DNS-värdnamn men kan inte extrahera TLD-delen",
+    "'%value%' appears to be a DNS hostname but cannot match TLD against known list" => "Indatan tycks vara ett DNS-värdnamn men kan inte matcha TLDn mot listan med kända",
+
+    // Zend_Validator_Iban
+    "Unknown country within the IBAN" => "Okänd land i IBAN-numret",
+    "Countries outside the Single Euro Payments Area (SEPA) are not supported" => "Länder utanför SEPA-området (Single Euro Payments Area) stöds ej",
+    "The input has a false IBAN format" => "Indatan har ett felaktigt IBAN-format",
+    "The input has failed the IBAN check" => "Indatan har ej klarat IBAN-kontrollen",
+
+    // Zend_Validator_Identical
     "The two given tokens do not match" => "De två angivna symbolerna matchar inte varandra",
     "No token was provided to match against" => "Ingen symbol angavs att matcha mot",
 
-    // Zend_Validate_InArray
-    "'%value%' was not found in the haystack" => "'%value%' hittades inte i höstacken",
+    // Zend_Validator_InArray
+    "The input was not found in the haystack" => "Indatan hittades inte i höstacken",
 
-    // Zend_Validate_Int
-    "Invalid type given. String or integer expected" => "Ogiltig typ given. Sträng eller heltal förväntat",
-    "'%value%' does not appear to be an integer" => "'%value%' tycks inte vara ett heltal",
-
-    // Zend_Validate_Ip
+    // Zend_Validator_Ip
     "Invalid type given. String expected" => "Ogiltig typ given. Sträng förväntad",
-    "'%value%' does not appear to be a valid IP address" => "'%value%' tycks inte vara en giltig IP-adress",
+    "The input does not appear to be a valid IP address" => "Indatan tycks inte vara en giltig IP-adress",
 
-    // Zend_Validate_Isbn
+    // Zend_Validator_Isbn
     "Invalid type given. String or integer expected" => "Ogiltig typ given. Sträng eller heltal förväntat",
-    "'%value%' is not a valid ISBN number" => "'%value%' är inte ett giltigt ISBN-nummer",
+    "The input is not a valid ISBN number" => "Indatan är inte ett giltigt ISBN-nummer",
 
-    // Zend_Validate_LessThan
-    "'%value%' is not less than '%max%'" => "'%value%' är inte lägre än '%max%'",
+    // Zend_Validator_LessThan
+    "The input is not less than '%max%'" => "Indatan är inte lägre än '%max%'",
+    "The input is not less or equal than '%max%'" => "indatan är inte lägre eller lika med '%max%'",
 
-    // Zend_Validate_NotEmpty
-    "Invalid type given. String, integer, float, boolean or array expected" => "Ogiltig typ given. Sträng, heltal, flyttal, boolean eller array förväntad",
+    // Zend_Validator_NotEmpty
     "Value is required and can't be empty" => "Värdet krävs och kan inte vara tomt",
+    "Invalid type given. String, integer, float, boolean or array expected" => "Ogiltig typ given. Sträng, heltal, flyttal, boolean eller array förväntad",
 
-    // Zend_Validate_PostCode
-    "Invalid type given. String or integer expected" => "Ogiltig typ given. Sträng eller heltal förväntat",
-    "'%value%' does not appear to be a postal code" => "'%value%' tycks inte vara ett postnummer",
-
-    // Zend_Validate_Regex
+    // Zend_Validator_Regex
     "Invalid type given. String, integer or float expected" => "Ogiltig typ given. Sträng, heltal eller flyttal förväntat",
-    "'%value%' does not match against pattern '%pattern%'" => "'%value%' matchar inte mönstret '%pattern%'",
-    "There was an internal error while using the pattern '%pattern%'" => "Det uppstod ett internt serverfel när mönstret '%pattern%' användes",
+    "The input does not match against pattern '%pattern%'" => "Indatan matchar inte mönstret '%pattern%'",
+    "There was an internal error while using the pattern '%pattern%'" => "Det uppstod ett internt fel när mönstret '%pattern%' användes",
 
-    // Zend_Validate_Sitemap_Changefreq
-    "'%value%' is not a valid sitemap changefreq" => "'%value%' är inte en giltig 'changefreq' för sajtkartor",
+    // Zend_Validator_Sitemap_Changefreq
+    "The input is not a valid sitemap changefreq" => "Indatan är inte en giltig 'changefreq' för sajtkartor",
     "Invalid type given. String expected" => "Ogiltig typ given. Sträng förväntad",
 
-    // Zend_Validate_Sitemap_Lastmod
-    "'%value%' is not a valid sitemap lastmod" => "'%value%' är inte en giltig 'lastmod' för sajtkartor",
+    // Zend_Validator_Sitemap_Lastmod
+    "The input is not a valid sitemap lastmod" => "Indatan är inte en giltig 'lastmod' för sajtkartor",
     "Invalid type given. String expected" => "Ogiltig typ given. Sträng förväntad",
 
-    // Zend_Validate_Sitemap_Loc
-    "'%value%' is not a valid sitemap location" => "'%value%' är inte en giltig 'location' för sajtkartor",
+    // Zend_Validator_Sitemap_Loc
+    "The input is not a valid sitemap location" => "Indatan är inte en giltig 'location' för sajtkartor",
     "Invalid type given. String expected" => "Ogiltig typ given. Sträng förväntad",
 
-    // Zend_Validate_Sitemap_Priority
-    "'%value%' is not a valid sitemap priority" => "'%value%' är inte en giltig 'priority' för sajtkartor",
-    "Invalid type given. Numeric string, integer or float expected" => "Ogiltig typ given. Sträng, heltal eller flyttal förväntat",
+    // Zend_Validator_Sitemap_Priority
+    "'%value%' is not a valid sitemap priority" => "Indatan är inte en giltig 'priority' för sajtkartor",
+    "Invalid type given. Numeric string, integer or float expected" => "Ogiltig typ given. Numerisk sträng, heltal eller flyttal förväntat",
+
+    // Zend_Validator_Step
+    "Invalid value given. Scalar expected" => "Ogiltigt värde givet. Skalär förväntad",
+    "The input is not a valid step" => "Indatan är inte ett giltigt steg",
+
+    // Zend_Validator_StringLength
+    "Invalid type given. String expected" => "Ogiltig typ given. Sträng förväntad",
+    "The input is less than %min% characters long" => "Indatan är mindre än %min% tecken lång",
+    "The input is more than %max% characters long" => "Indatan är mer än %max% tecken lång",
 
-    // Zend_Validate_StringLength
+    // Zend_Validator_Uri
     "Invalid type given. String expected" => "Ogiltig typ given. Sträng förväntad",
-    "'%value%' is less than %min% characters long" => "'%value%' är mindre än %min% tecken lång",
-    "'%value%' is more than %max% characters long" => "'%value%' är mer än %max% tecken lång",
+    "The input does not appear to be a valid Uri" => "Indatan tycks inte vara en giltig Uri",
 );
diff --git a/vendor/zendframework/zendframework/resources/languages/sk/Zend_Validate.php b/vendor/zendframework/zendframework/resources/languages/sk/Zend_Validate.php
index 4cf8e783fc9..0e346cf733f 100644
--- a/vendor/zendframework/zendframework/resources/languages/sk/Zend_Validate.php
+++ b/vendor/zendframework/zendframework/resources/languages/sk/Zend_Validate.php
@@ -172,7 +172,7 @@ return array(
 
     // Zend_Validate_File_WordCount
     "Too much words, maximum '%max%' are allowed but '%count%' were counted" => "Príliš veľa slov. Maximálne je ich dovolených '%max%', ale bolo zadaných '%count%'",
-    "Too less words, minimum '%min%' are expected but '%count%' were counted" => "Príliš málo slov. Musí ich byť aspoň '%min%', ale bolo zadaných len '%count%'",
+    "Too few words, minimum '%min%' are expected but '%count%' were counted" => "Príliš málo slov. Musí ich byť aspoň '%min%', ale bolo zadaných len '%count%'",
     "File '%value%' is not readable or does not exist" => "Súbor '%value%' buď nie je čitateľný, alebo neexistuje",
 
     // Zend_Validate_Float
diff --git a/vendor/zendframework/zendframework/resources/languages/sl/Zend_Validate.php b/vendor/zendframework/zendframework/resources/languages/sl/Zend_Validate.php
index e9fff19cebf..a0540460064 100644
--- a/vendor/zendframework/zendframework/resources/languages/sl/Zend_Validate.php
+++ b/vendor/zendframework/zendframework/resources/languages/sl/Zend_Validate.php
@@ -172,7 +172,7 @@ return array(
 
     // Zend_Validate_File_WordCount
     "Too much words, maximum '%max%' are allowed but '%count%' were counted" => "Preveč besed, največ '%max%' je dovoljenih vendar preštetih je bilo '%count%'",
-    "Too less words, minimum '%min%' are expected but '%count%' were counted" => "Premalo besed, vsaj '%min%' je predvidenih vendar preštetih je bilo '%count%'",
+    "Too few words, minimum '%min%' are expected but '%count%' were counted" => "Premalo besed, vsaj '%min%' je predvidenih vendar preštetih je bilo '%count%'",
     "File '%value%' is not readable or does not exist" => "Datoteke '%value%' ni mogoče brati ali pa ne obstaja",
 
     // Zend_Validate_Float
diff --git a/vendor/zendframework/zendframework/resources/languages/sr/Zend_Validate.php b/vendor/zendframework/zendframework/resources/languages/sr/Zend_Validate.php
index d5971ba963a..ea81070d3c4 100644
--- a/vendor/zendframework/zendframework/resources/languages/sr/Zend_Validate.php
+++ b/vendor/zendframework/zendframework/resources/languages/sr/Zend_Validate.php
@@ -173,7 +173,7 @@ return array(
 
     // Zend_Validate_File_WordCount
     "Too much words, maximum '%max%' are allowed but '%count%' were counted" => "Previše reči, maksimalno '%max%' je dozvoljeno, '%count%' je izbrojano",
-    "Too less words, minimum '%min%' are expected but '%count%' were counted" => "Premalo reči, minimalno '%min%' je očekivano, '%count%' je izbrojano",
+    "Too few words, minimum '%min%' are expected but '%count%' were counted" => "Premalo reči, minimalno '%min%' je očekivano, '%count%' je izbrojano",
     "File '%value%' could not be found" => "Fajl '%value%' ne može biti pronađen",
 
     // Zend_Validate_Float
diff --git a/vendor/zendframework/zendframework/resources/languages/tr/Zend_Validate.php b/vendor/zendframework/zendframework/resources/languages/tr/Zend_Validate.php
index baa9e202631..c8b9a8585b5 100644
--- a/vendor/zendframework/zendframework/resources/languages/tr/Zend_Validate.php
+++ b/vendor/zendframework/zendframework/resources/languages/tr/Zend_Validate.php
@@ -187,7 +187,7 @@ return array(
 
     // Zend_Validator_File_WordCount
     "Too much words, maximum '%max%' are allowed but '%count%' were counted" => "Çok fazla kelime, en fazla '%max%' kelimeye izin veriliyor fakat '%count%' sayıldı",
-    "Too less words, minimum '%min%' are expected but '%count%' were counted" => "Çok az kelime, en az '%min%' kelimeye izin veriliyor fakat '%count%' sayıldı",
+    "Too few words, minimum '%min%' are expected but '%count%' were counted" => "Çok az kelime, en az '%min%' kelimeye izin veriliyor fakat '%count%' sayıldı",
     "File '%value%' is not readable or does not exist" => "'%value%' dosyası okunamıyor ya da yok",
 
     // Zend_Validator_GreaterThan
diff --git a/vendor/zendframework/zendframework/resources/languages/uk/Zend_Validate.php b/vendor/zendframework/zendframework/resources/languages/uk/Zend_Validate.php
index ab5445894be..d99b4dea7be 100644
--- a/vendor/zendframework/zendframework/resources/languages/uk/Zend_Validate.php
+++ b/vendor/zendframework/zendframework/resources/languages/uk/Zend_Validate.php
@@ -172,7 +172,7 @@ return array(
 
     // Zend_Validate_File_WordCount
     "Too much words, maximum '%max%' are allowed but '%count%' were counted" => "Занадто багато слів, дозволено максимум '%max%' слів, зараз - '%count%'",
-    "Too less words, minimum '%min%' are expected but '%count%' were counted" => "Занадто мало слів, дозволено мінімум '%min%' слів, зараз - '%count%'",
+    "Too few words, minimum '%min%' are expected but '%count%' were counted" => "Занадто мало слів, дозволено мінімум '%min%' слів, зараз - '%count%'",
     "File '%value%' could not be found" => "Файл '%value%' не знайдено",
 
     // Zend_Validate_Float
diff --git a/vendor/zendframework/zendframework/resources/languages/zh/Zend_Validate.php b/vendor/zendframework/zendframework/resources/languages/zh/Zend_Validate.php
index 37f134a5601..1261c1bfd77 100644
--- a/vendor/zendframework/zendframework/resources/languages/zh/Zend_Validate.php
+++ b/vendor/zendframework/zendframework/resources/languages/zh/Zend_Validate.php
@@ -187,7 +187,7 @@ return array(
 
     // Zend_Validator_File_WordCount
     "Too much words, maximum '%max%' are allowed but '%count%' were counted" => "输入的单词过多,最多允许'%max%'个单词,输入了'%count%'个",
-    "Too less words, minimum '%min%' are expected but '%count%' were counted" => "输入的单词过少,至少需要'%min%'个单词,输入了'%count%'个",
+    "Too few words, minimum '%min%' are expected but '%count%' were counted" => "输入的单词过少,至少需要'%min%'个单词,输入了'%count%'个",
     "File '%value%' is not readable or does not exist" => "文件'%value%'无法读取或不存在",
 
     // Zend_Validator_GreaterThan
-- 
GitLab