diff --git a/.eslintignore b/.eslintignore index abf79d9e2..961edb753 100644 --- a/.eslintignore +++ b/.eslintignore @@ -1,6 +1,6 @@ core/assets/vendor/**/* core/modules/locale/tests/locale_test.js -core/vendor/**/* +vendor/**/* sites/**/files/**/* libraries/**/* sites/**/libraries/**/* diff --git a/.gitattributes b/.gitattributes index b377ffb8e..ca9112c15 100644 --- a/.gitattributes +++ b/.gitattributes @@ -51,3 +51,4 @@ *.png -text diff *.phar -text diff *.exe -text diff +*.ttf -text diff diff --git a/autoload.php b/autoload.php index caedb48a1..1e5ad34e3 100644 --- a/autoload.php +++ b/autoload.php @@ -4,11 +4,6 @@ * @file * Includes the autoloader created by Composer. * - * This file can be edited to change the autoloader if you are managing a - * project's dependencies using Composer. If Drupal code requires the - * autoloader, it should always be loaded using this file so that projects - * using Composer continue to work. - * * @see composer.json * @see index.php * @see core/install.php @@ -16,4 +11,4 @@ * @see core/modules/statistics/statistics.php */ -return require __DIR__ . '/core/vendor/autoload.php'; +return require __DIR__ . '/vendor/autoload.php'; diff --git a/composer.json b/composer.json index 5bec2ee6f..901e0fb05 100644 --- a/composer.json +++ b/composer.json @@ -4,7 +4,10 @@ "type": "project", "license": "GPL-2.0+", "require": { - "composer/installers": "^1.0.20", + "composer/installers": "^1.0.21", + "wikimedia/composer-merge-plugin": "^1.3.0" + }, + "replace": { "drupal/core": "~8.0" }, "minimum-stability": "dev", @@ -15,8 +18,25 @@ }, "extra": { "_readme": [ - "By default Drupal loads the autoloader from ./core/vendor/autoload.php.", + "By default Drupal loads the autoloader from ./vendor/autoload.php.", "To change the autoloader you can edit ./autoload.php." - ] + ], + "merge-plugin": { + "include": [ + "core/composer.json" + ], + "recurse": false, + "replace": false, + "merge-extra": false + } + }, + "autoload": { + "psr-4": { + "Drupal\\Core\\Composer\\": "core/lib/Drupal/Core/Composer" + } + }, + "scripts": { + "pre-autoload-dump": "Drupal\\Core\\Composer\\Composer::preAutoloadDump", + "post-autoload-dump": "Drupal\\Core\\Composer\\Composer::ensureHtaccess" } } diff --git a/composer.lock b/composer.lock new file mode 100644 index 000000000..025d5bf79 --- /dev/null +++ b/composer.lock @@ -0,0 +1,3685 @@ +{ + "_readme": [ + "This file locks the dependencies of your project to a known state", + "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file", + "This file is @generated automatically" + ], + "hash": "8c9fdf621ce53640f24b24749e59717c", + "content-hash": "f38613812a285c03a1a18458384fe0b1", + "packages": [ + { + "name": "composer/installers", + "version": "v1.0.21", + "source": { + "type": "git", + "url": "https://github.com/composer/installers.git", + "reference": "d64e23fce42a4063d63262b19b8e7c0f3b5e4c45" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/composer/installers/zipball/d64e23fce42a4063d63262b19b8e7c0f3b5e4c45", + "reference": "d64e23fce42a4063d63262b19b8e7c0f3b5e4c45", + "shasum": "" + }, + "replace": { + "roundcube/plugin-installer": "*", + "shama/baton": "*" + }, + "require-dev": { + "composer/composer": "1.0.*@dev", + "phpunit/phpunit": "4.1.*" + }, + "type": "composer-installer", + "extra": { + "class": "Composer\\Installers\\Installer", + "branch-alias": { + "dev-master": "1.0-dev" + } + }, + "autoload": { + "psr-0": { + "Composer\\Installers\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Kyle Robinson Young", + "email": "kyle@dontkry.com", + "homepage": "https://github.com/shama" + } + ], + "description": "A multi-framework Composer library installer", + "homepage": "http://composer.github.com/installers/", + "keywords": [ + "Craft", + "Dolibarr", + "Hurad", + "MODX Evo", + "OXID", + "SMF", + "Thelia", + "WolfCMS", + "agl", + "aimeos", + "annotatecms", + "bitrix", + "cakephp", + "chef", + "codeigniter", + "concrete5", + "croogo", + "dokuwiki", + "drupal", + "elgg", + "fuelphp", + "grav", + "installer", + "joomla", + "kohana", + "laravel", + "lithium", + "magento", + "mako", + "mediawiki", + "modulework", + "moodle", + "phpbb", + "piwik", + "ppi", + "puppet", + "roundcube", + "shopware", + "silverstripe", + "symfony", + "typo3", + "wordpress", + "zend", + "zikula" + ], + "time": "2015-02-18 17:17:01" + }, + { + "name": "composer/semver", + "version": "1.0.0", + "source": { + "type": "git", + "url": "https://github.com/composer/semver.git", + "reference": "d0e1ccc6d44ab318b758d709e19176037da6b1ba" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/composer/semver/zipball/d0e1ccc6d44ab318b758d709e19176037da6b1ba", + "reference": "d0e1ccc6d44ab318b758d709e19176037da6b1ba", + "shasum": "" + }, + "require": { + "php": ">=5.3.2" + }, + "require-dev": { + "phpunit/phpunit": "~4.5", + "phpunit/phpunit-mock-objects": "~2.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "0.1-dev" + } + }, + "autoload": { + "psr-4": { + "Composer\\Semver\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Rob Bast", + "email": "rob.bast@gmail.com" + }, + { + "name": "Nils Adermann", + "email": "naderman@naderman.de", + "homepage": "http://www.naderman.de" + }, + { + "name": "Jordi Boggiano", + "email": "j.boggiano@seld.be", + "homepage": "http://seld.be" + } + ], + "description": "Semver library that offers utilities, version constraint parsing and validation.", + "keywords": [ + "semantic", + "semver", + "validation", + "versioning" + ], + "time": "2015-09-21 09:42:36" + }, + { + "name": "doctrine/annotations", + "version": "v1.2.7", + "source": { + "type": "git", + "url": "https://github.com/doctrine/annotations.git", + "reference": "f25c8aab83e0c3e976fd7d19875f198ccf2f7535" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/annotations/zipball/f25c8aab83e0c3e976fd7d19875f198ccf2f7535", + "reference": "f25c8aab83e0c3e976fd7d19875f198ccf2f7535", + "shasum": "" + }, + "require": { + "doctrine/lexer": "1.*", + "php": ">=5.3.2" + }, + "require-dev": { + "doctrine/cache": "1.*", + "phpunit/phpunit": "4.*" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.3.x-dev" + } + }, + "autoload": { + "psr-0": { + "Doctrine\\Common\\Annotations\\": "lib/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Roman Borschel", + "email": "roman@code-factory.org" + }, + { + "name": "Benjamin Eberlei", + "email": "kontakt@beberlei.de" + }, + { + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" + }, + { + "name": "Jonathan Wage", + "email": "jonwage@gmail.com" + }, + { + "name": "Johannes Schmitt", + "email": "schmittjoh@gmail.com" + } + ], + "description": "Docblock Annotations Parser", + "homepage": "http://www.doctrine-project.org", + "keywords": [ + "annotations", + "docblock", + "parser" + ], + "time": "2015-08-31 12:32:49" + }, + { + "name": "doctrine/cache", + "version": "v1.4.2", + "source": { + "type": "git", + "url": "https://github.com/doctrine/cache.git", + "reference": "8c434000f420ade76a07c64cbe08ca47e5c101ca" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/cache/zipball/8c434000f420ade76a07c64cbe08ca47e5c101ca", + "reference": "8c434000f420ade76a07c64cbe08ca47e5c101ca", + "shasum": "" + }, + "require": { + "php": ">=5.3.2" + }, + "conflict": { + "doctrine/common": ">2.2,<2.4" + }, + "require-dev": { + "phpunit/phpunit": ">=3.7", + "predis/predis": "~1.0", + "satooshi/php-coveralls": "~0.6" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.5.x-dev" + } + }, + "autoload": { + "psr-0": { + "Doctrine\\Common\\Cache\\": "lib/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Roman Borschel", + "email": "roman@code-factory.org" + }, + { + "name": "Benjamin Eberlei", + "email": "kontakt@beberlei.de" + }, + { + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" + }, + { + "name": "Jonathan Wage", + "email": "jonwage@gmail.com" + }, + { + "name": "Johannes Schmitt", + "email": "schmittjoh@gmail.com" + } + ], + "description": "Caching library offering an object-oriented API for many cache backends", + "homepage": "http://www.doctrine-project.org", + "keywords": [ + "cache", + "caching" + ], + "time": "2015-08-31 12:36:41" + }, + { + "name": "doctrine/collections", + "version": "v1.3.0", + "source": { + "type": "git", + "url": "https://github.com/doctrine/collections.git", + "reference": "6c1e4eef75f310ea1b3e30945e9f06e652128b8a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/collections/zipball/6c1e4eef75f310ea1b3e30945e9f06e652128b8a", + "reference": "6c1e4eef75f310ea1b3e30945e9f06e652128b8a", + "shasum": "" + }, + "require": { + "php": ">=5.3.2" + }, + "require-dev": { + "phpunit/phpunit": "~4.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.2.x-dev" + } + }, + "autoload": { + "psr-0": { + "Doctrine\\Common\\Collections\\": "lib/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Roman Borschel", + "email": "roman@code-factory.org" + }, + { + "name": "Benjamin Eberlei", + "email": "kontakt@beberlei.de" + }, + { + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" + }, + { + "name": "Jonathan Wage", + "email": "jonwage@gmail.com" + }, + { + "name": "Johannes Schmitt", + "email": "schmittjoh@gmail.com" + } + ], + "description": "Collections Abstraction library", + "homepage": "http://www.doctrine-project.org", + "keywords": [ + "array", + "collections", + "iterator" + ], + "time": "2015-04-14 22:21:58" + }, + { + "name": "doctrine/common", + "version": "v2.5.1", + "source": { + "type": "git", + "url": "https://github.com/doctrine/common.git", + "reference": "0009b8f0d4a917aabc971fb089eba80e872f83f9" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/common/zipball/0009b8f0d4a917aabc971fb089eba80e872f83f9", + "reference": "0009b8f0d4a917aabc971fb089eba80e872f83f9", + "shasum": "" + }, + "require": { + "doctrine/annotations": "1.*", + "doctrine/cache": "1.*", + "doctrine/collections": "1.*", + "doctrine/inflector": "1.*", + "doctrine/lexer": "1.*", + "php": ">=5.3.2" + }, + "require-dev": { + "phpunit/phpunit": "~3.7" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.6.x-dev" + } + }, + "autoload": { + "psr-0": { + "Doctrine\\Common\\": "lib/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Roman Borschel", + "email": "roman@code-factory.org" + }, + { + "name": "Benjamin Eberlei", + "email": "kontakt@beberlei.de" + }, + { + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" + }, + { + "name": "Jonathan Wage", + "email": "jonwage@gmail.com" + }, + { + "name": "Johannes Schmitt", + "email": "schmittjoh@gmail.com" + } + ], + "description": "Common Library for Doctrine projects", + "homepage": "http://www.doctrine-project.org", + "keywords": [ + "annotations", + "collections", + "eventmanager", + "persistence", + "spl" + ], + "time": "2015-08-31 13:00:22" + }, + { + "name": "doctrine/inflector", + "version": "v1.0.1", + "source": { + "type": "git", + "url": "https://github.com/doctrine/inflector.git", + "reference": "0bcb2e79d8571787f18b7eb036ed3d004908e604" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/inflector/zipball/0bcb2e79d8571787f18b7eb036ed3d004908e604", + "reference": "0bcb2e79d8571787f18b7eb036ed3d004908e604", + "shasum": "" + }, + "require": { + "php": ">=5.3.2" + }, + "require-dev": { + "phpunit/phpunit": "4.*" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-0": { + "Doctrine\\Common\\Inflector\\": "lib/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Roman Borschel", + "email": "roman@code-factory.org" + }, + { + "name": "Benjamin Eberlei", + "email": "kontakt@beberlei.de" + }, + { + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" + }, + { + "name": "Jonathan Wage", + "email": "jonwage@gmail.com" + }, + { + "name": "Johannes Schmitt", + "email": "schmittjoh@gmail.com" + } + ], + "description": "Common String Manipulations with regard to casing and singular/plural rules.", + "homepage": "http://www.doctrine-project.org", + "keywords": [ + "inflection", + "pluralize", + "singularize", + "string" + ], + "time": "2014-12-20 21:24:13" + }, + { + "name": "doctrine/lexer", + "version": "v1.0.1", + "source": { + "type": "git", + "url": "https://github.com/doctrine/lexer.git", + "reference": "83893c552fd2045dd78aef794c31e694c37c0b8c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/lexer/zipball/83893c552fd2045dd78aef794c31e694c37c0b8c", + "reference": "83893c552fd2045dd78aef794c31e694c37c0b8c", + "shasum": "" + }, + "require": { + "php": ">=5.3.2" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-0": { + "Doctrine\\Common\\Lexer\\": "lib/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Roman Borschel", + "email": "roman@code-factory.org" + }, + { + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" + }, + { + "name": "Johannes Schmitt", + "email": "schmittjoh@gmail.com" + } + ], + "description": "Base library for a lexer that can be used in Top-Down, Recursive Descent Parsers.", + "homepage": "http://www.doctrine-project.org", + "keywords": [ + "lexer", + "parser" + ], + "time": "2014-09-09 13:34:57" + }, + { + "name": "easyrdf/easyrdf", + "version": "0.9.1", + "source": { + "type": "git", + "url": "https://github.com/njh/easyrdf.git", + "reference": "acd09dfe0555fbcfa254291e433c45fdd4652566" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/njh/easyrdf/zipball/acd09dfe0555fbcfa254291e433c45fdd4652566", + "reference": "acd09dfe0555fbcfa254291e433c45fdd4652566", + "shasum": "" + }, + "require": { + "ext-mbstring": "*", + "ext-pcre": "*", + "php": ">=5.2.8" + }, + "require-dev": { + "phpunit/phpunit": "~3.5", + "sami/sami": "~1.4", + "squizlabs/php_codesniffer": "~1.4.3" + }, + "suggest": { + "ml/json-ld": "~1.0" + }, + "type": "library", + "autoload": { + "psr-0": { + "EasyRdf_": "lib/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Nicholas Humfrey", + "email": "njh@aelius.com", + "homepage": "http://www.aelius.com/njh/", + "role": "Developer" + }, + { + "name": "Alexey Zakhlestin", + "email": "indeyets@gmail.com", + "role": "Developer" + } + ], + "description": "EasyRdf is a PHP library designed to make it easy to consume and produce RDF.", + "homepage": "http://www.easyrdf.org/", + "keywords": [ + "Linked Data", + "RDF", + "Semantic Web", + "Turtle", + "rdfa", + "sparql" + ], + "time": "2015-02-27 09:45:49" + }, + { + "name": "egulias/email-validator", + "version": "1.2.9", + "source": { + "type": "git", + "url": "https://github.com/egulias/EmailValidator.git", + "reference": "af864423f50ea59f96c87bb1eae147a70bcf67a1" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/egulias/EmailValidator/zipball/af864423f50ea59f96c87bb1eae147a70bcf67a1", + "reference": "af864423f50ea59f96c87bb1eae147a70bcf67a1", + "shasum": "" + }, + "require": { + "doctrine/lexer": "~1.0,>=1.0.1", + "php": ">= 5.3.3" + }, + "require-dev": { + "phpunit/phpunit": "~4.4", + "satooshi/php-coveralls": "dev-master" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0.x-dev" + } + }, + "autoload": { + "psr-0": { + "Egulias\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Eduardo Gulias Davis" + } + ], + "description": "A library for validating emails", + "homepage": "https://github.com/egulias/EmailValidator", + "keywords": [ + "email", + "emailvalidation", + "emailvalidator", + "validation", + "validator" + ], + "time": "2015-06-22 21:07:51" + }, + { + "name": "guzzlehttp/guzzle", + "version": "6.1.0", + "source": { + "type": "git", + "url": "https://github.com/guzzle/guzzle.git", + "reference": "66fd14b4d0b8f2389eaf37c5458608c7cb793a81" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/guzzle/guzzle/zipball/66fd14b4d0b8f2389eaf37c5458608c7cb793a81", + "reference": "66fd14b4d0b8f2389eaf37c5458608c7cb793a81", + "shasum": "" + }, + "require": { + "guzzlehttp/promises": "~1.0", + "guzzlehttp/psr7": "~1.1", + "php": ">=5.5.0" + }, + "require-dev": { + "ext-curl": "*", + "phpunit/phpunit": "~4.0", + "psr/log": "~1.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "6.1-dev" + } + }, + "autoload": { + "files": [ + "src/functions_include.php" + ], + "psr-4": { + "GuzzleHttp\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Michael Dowling", + "email": "mtdowling@gmail.com", + "homepage": "https://github.com/mtdowling" + } + ], + "description": "Guzzle is a PHP HTTP client library", + "homepage": "http://guzzlephp.org/", + "keywords": [ + "client", + "curl", + "framework", + "http", + "http client", + "rest", + "web service" + ], + "time": "2015-09-08 17:36:26" + }, + { + "name": "guzzlehttp/promises", + "version": "1.0.2", + "source": { + "type": "git", + "url": "https://github.com/guzzle/promises.git", + "reference": "97fe7210def29451ec74923b27e552238defd75a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/guzzle/promises/zipball/97fe7210def29451ec74923b27e552238defd75a", + "reference": "97fe7210def29451ec74923b27e552238defd75a", + "shasum": "" + }, + "require": { + "php": ">=5.5.0" + }, + "require-dev": { + "phpunit/phpunit": "~4.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0-dev" + } + }, + "autoload": { + "psr-4": { + "GuzzleHttp\\Promise\\": "src/" + }, + "files": [ + "src/functions_include.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Michael Dowling", + "email": "mtdowling@gmail.com", + "homepage": "https://github.com/mtdowling" + } + ], + "description": "Guzzle promises library", + "keywords": [ + "promise" + ], + "time": "2015-08-15 19:37:21" + }, + { + "name": "guzzlehttp/psr7", + "version": "1.2.0", + "source": { + "type": "git", + "url": "https://github.com/guzzle/psr7.git", + "reference": "4ef919b0cf3b1989523138b60163bbcb7ba1ff7e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/guzzle/psr7/zipball/4ef919b0cf3b1989523138b60163bbcb7ba1ff7e", + "reference": "4ef919b0cf3b1989523138b60163bbcb7ba1ff7e", + "shasum": "" + }, + "require": { + "php": ">=5.4.0", + "psr/http-message": "~1.0" + }, + "provide": { + "psr/http-message-implementation": "1.0" + }, + "require-dev": { + "phpunit/phpunit": "~4.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0-dev" + } + }, + "autoload": { + "psr-4": { + "GuzzleHttp\\Psr7\\": "src/" + }, + "files": [ + "src/functions_include.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Michael Dowling", + "email": "mtdowling@gmail.com", + "homepage": "https://github.com/mtdowling" + } + ], + "description": "PSR-7 message implementation", + "keywords": [ + "http", + "message", + "stream", + "uri" + ], + "time": "2015-08-15 19:32:36" + }, + { + "name": "masterminds/html5", + "version": "2.1.2", + "source": { + "type": "git", + "url": "https://github.com/Masterminds/html5-php.git", + "reference": "8f782e0f01a6e33a319bdc8f6de9cfd6569979a4" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Masterminds/html5-php/zipball/8f782e0f01a6e33a319bdc8f6de9cfd6569979a4", + "reference": "8f782e0f01a6e33a319bdc8f6de9cfd6569979a4", + "shasum": "" + }, + "require": { + "ext-libxml": "*", + "php": ">=5.3.0" + }, + "require-dev": { + "phpunit/phpunit": "4.*", + "sami/sami": "~2.0", + "satooshi/php-coveralls": "0.6.*" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.1-dev" + } + }, + "autoload": { + "psr-4": { + "Masterminds\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Matt Butcher", + "email": "technosophos@gmail.com" + }, + { + "name": "Asmir Mustafic", + "email": "goetas@gmail.com" + }, + { + "name": "Matt Farina", + "email": "matt@mattfarina.com" + } + ], + "description": "An HTML5 parser and serializer.", + "homepage": "http://masterminds.github.io/html5-php", + "keywords": [ + "HTML5", + "dom", + "html", + "parser", + "querypath", + "serializer", + "xml" + ], + "time": "2015-06-07 08:43:18" + }, + { + "name": "psr/http-message", + "version": "1.0", + "source": { + "type": "git", + "url": "https://github.com/php-fig/http-message.git", + "reference": "85d63699f0dbedb190bbd4b0d2b9dc707ea4c298" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/http-message/zipball/85d63699f0dbedb190bbd4b0d2b9dc707ea4c298", + "reference": "85d63699f0dbedb190bbd4b0d2b9dc707ea4c298", + "shasum": "" + }, + "require": { + "php": ">=5.3.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Http\\Message\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" + } + ], + "description": "Common interface for HTTP messages", + "keywords": [ + "http", + "http-message", + "psr", + "psr-7", + "request", + "response" + ], + "time": "2015-05-04 20:22:00" + }, + { + "name": "psr/log", + "version": "1.0.0", + "source": { + "type": "git", + "url": "https://github.com/php-fig/log.git", + "reference": "1.0.0" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/log/zipball/fe0936ee26643249e916849d48e3a51d5f5e278b", + "reference": "1.0.0", + "shasum": "" + }, + "type": "library", + "autoload": { + "psr-0": { + "Psr\\Log\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" + } + ], + "description": "Common interface for logging libraries", + "keywords": [ + "log", + "psr", + "psr-3" + ], + "time": "2012-12-21 11:40:51" + }, + { + "name": "stack/builder", + "version": "v1.0.3", + "source": { + "type": "git", + "url": "https://github.com/stackphp/builder.git", + "reference": "c1f8a4693b55c563405024f708a76ef576c3b276" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/stackphp/builder/zipball/c1f8a4693b55c563405024f708a76ef576c3b276", + "reference": "c1f8a4693b55c563405024f708a76ef576c3b276", + "shasum": "" + }, + "require": { + "php": ">=5.3.0", + "symfony/http-foundation": "~2.1", + "symfony/http-kernel": "~2.1" + }, + "require-dev": { + "silex/silex": "~1.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0-dev" + } + }, + "autoload": { + "psr-0": { + "Stack": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Igor Wiedler", + "email": "igor@wiedler.ch" + } + ], + "description": "Builder for stack middlewares based on HttpKernelInterface.", + "keywords": [ + "stack" + ], + "time": "2014-11-23 20:37:11" + }, + { + "name": "symfony-cmf/routing", + "version": "1.3.0", + "source": { + "type": "git", + "url": "https://github.com/symfony-cmf/Routing.git", + "reference": "8e87981d72c6930a27585dcd3119f3199f6cb2a6" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony-cmf/Routing/zipball/8e87981d72c6930a27585dcd3119f3199f6cb2a6", + "reference": "8e87981d72c6930a27585dcd3119f3199f6cb2a6", + "shasum": "" + }, + "require": { + "php": ">=5.3.3", + "psr/log": "~1.0", + "symfony/http-kernel": "~2.2", + "symfony/routing": "~2.2" + }, + "require-dev": { + "symfony/config": "~2.2", + "symfony/dependency-injection": "~2.0@stable", + "symfony/event-dispatcher": "~2.1" + }, + "suggest": { + "symfony/event-dispatcher": "DynamicRouter can optionally trigger an event at the start of matching. Minimal version ~2.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.3-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Cmf\\Component\\Routing\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Symfony CMF Community", + "homepage": "https://github.com/symfony-cmf/Routing/contributors" + } + ], + "description": "Extends the Symfony2 routing component for dynamic routes and chaining several routers", + "homepage": "http://cmf.symfony.com", + "keywords": [ + "database", + "routing" + ], + "time": "2014-10-20 20:55:17" + }, + { + "name": "symfony/class-loader", + "version": "v2.7.5", + "source": { + "type": "git", + "url": "https://github.com/symfony/class-loader.git", + "reference": "d957ea6295d7016e20d7eff33a6c1deef819c0d4" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/class-loader/zipball/d957ea6295d7016e20d7eff33a6c1deef819c0d4", + "reference": "d957ea6295d7016e20d7eff33a6c1deef819c0d4", + "shasum": "" + }, + "require": { + "php": ">=5.3.9" + }, + "require-dev": { + "symfony/finder": "~2.0,>=2.0.5", + "symfony/phpunit-bridge": "~2.7" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.7-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\ClassLoader\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony ClassLoader Component", + "homepage": "https://symfony.com", + "time": "2015-08-26 17:56:37" + }, + { + "name": "symfony/console", + "version": "v2.7.5", + "source": { + "type": "git", + "url": "https://github.com/symfony/console.git", + "reference": "06cb17c013a82f94a3d840682b49425cd00a2161" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/console/zipball/06cb17c013a82f94a3d840682b49425cd00a2161", + "reference": "06cb17c013a82f94a3d840682b49425cd00a2161", + "shasum": "" + }, + "require": { + "php": ">=5.3.9" + }, + "require-dev": { + "psr/log": "~1.0", + "symfony/event-dispatcher": "~2.1", + "symfony/phpunit-bridge": "~2.7", + "symfony/process": "~2.1" + }, + "suggest": { + "psr/log": "For using the console logger", + "symfony/event-dispatcher": "", + "symfony/process": "" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.7-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\Console\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony Console Component", + "homepage": "https://symfony.com", + "time": "2015-09-25 08:32:23" + }, + { + "name": "symfony/debug", + "version": "v2.7.5", + "source": { + "type": "git", + "url": "https://github.com/symfony/debug.git", + "reference": "c79c361bca8e5ada6a47603875a3c964d03b67b1" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/debug/zipball/c79c361bca8e5ada6a47603875a3c964d03b67b1", + "reference": "c79c361bca8e5ada6a47603875a3c964d03b67b1", + "shasum": "" + }, + "require": { + "php": ">=5.3.9", + "psr/log": "~1.0" + }, + "conflict": { + "symfony/http-kernel": ">=2.3,<2.3.24|~2.4.0|>=2.5,<2.5.9|>=2.6,<2.6.2" + }, + "require-dev": { + "symfony/class-loader": "~2.2", + "symfony/http-kernel": "~2.3.24|~2.5.9|~2.6,>=2.6.2", + "symfony/phpunit-bridge": "~2.7" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.7-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\Debug\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony Debug Component", + "homepage": "https://symfony.com", + "time": "2015-09-14 08:41:38" + }, + { + "name": "symfony/dependency-injection", + "version": "v2.7.5", + "source": { + "type": "git", + "url": "https://github.com/symfony/dependency-injection.git", + "reference": "422c3819b110f610d79c6f1dc38af23787dc790e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/422c3819b110f610d79c6f1dc38af23787dc790e", + "reference": "422c3819b110f610d79c6f1dc38af23787dc790e", + "shasum": "" + }, + "require": { + "php": ">=5.3.9" + }, + "conflict": { + "symfony/expression-language": "<2.6" + }, + "require-dev": { + "symfony/config": "~2.2", + "symfony/expression-language": "~2.6", + "symfony/phpunit-bridge": "~2.7", + "symfony/yaml": "~2.1" + }, + "suggest": { + "symfony/config": "", + "symfony/proxy-manager-bridge": "Generate service proxies to lazy load them", + "symfony/yaml": "" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.7-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\DependencyInjection\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony DependencyInjection Component", + "homepage": "https://symfony.com", + "time": "2015-09-15 08:30:42" + }, + { + "name": "symfony/event-dispatcher", + "version": "v2.7.5", + "source": { + "type": "git", + "url": "https://github.com/symfony/event-dispatcher.git", + "reference": "ae4dcc2a8d3de98bd794167a3ccda1311597c5d9" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/ae4dcc2a8d3de98bd794167a3ccda1311597c5d9", + "reference": "ae4dcc2a8d3de98bd794167a3ccda1311597c5d9", + "shasum": "" + }, + "require": { + "php": ">=5.3.9" + }, + "require-dev": { + "psr/log": "~1.0", + "symfony/config": "~2.0,>=2.0.5", + "symfony/dependency-injection": "~2.6", + "symfony/expression-language": "~2.6", + "symfony/phpunit-bridge": "~2.7", + "symfony/stopwatch": "~2.3" + }, + "suggest": { + "symfony/dependency-injection": "", + "symfony/http-kernel": "" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.7-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\EventDispatcher\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony EventDispatcher Component", + "homepage": "https://symfony.com", + "time": "2015-09-22 13:49:29" + }, + { + "name": "symfony/http-foundation", + "version": "v2.7.5", + "source": { + "type": "git", + "url": "https://github.com/symfony/http-foundation.git", + "reference": "e1509119f164a0d0a940d7d924d693a7a28a5470" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/e1509119f164a0d0a940d7d924d693a7a28a5470", + "reference": "e1509119f164a0d0a940d7d924d693a7a28a5470", + "shasum": "" + }, + "require": { + "php": ">=5.3.9" + }, + "require-dev": { + "symfony/expression-language": "~2.4", + "symfony/phpunit-bridge": "~2.7" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.7-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\HttpFoundation\\": "" + }, + "classmap": [ + "Resources/stubs" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony HttpFoundation Component", + "homepage": "https://symfony.com", + "time": "2015-09-22 13:49:29" + }, + { + "name": "symfony/http-kernel", + "version": "v2.7.5", + "source": { + "type": "git", + "url": "https://github.com/symfony/http-kernel.git", + "reference": "353aa457424262d7d4e4289ea483145921cffcb5" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/353aa457424262d7d4e4289ea483145921cffcb5", + "reference": "353aa457424262d7d4e4289ea483145921cffcb5", + "shasum": "" + }, + "require": { + "php": ">=5.3.9", + "psr/log": "~1.0", + "symfony/debug": "~2.6,>=2.6.2", + "symfony/event-dispatcher": "~2.6,>=2.6.7", + "symfony/http-foundation": "~2.5,>=2.5.4" + }, + "conflict": { + "symfony/config": "<2.7" + }, + "require-dev": { + "symfony/browser-kit": "~2.3", + "symfony/class-loader": "~2.1", + "symfony/config": "~2.7", + "symfony/console": "~2.3", + "symfony/css-selector": "~2.0,>=2.0.5", + "symfony/dependency-injection": "~2.2", + "symfony/dom-crawler": "~2.0,>=2.0.5", + "symfony/expression-language": "~2.4", + "symfony/finder": "~2.0,>=2.0.5", + "symfony/phpunit-bridge": "~2.7", + "symfony/process": "~2.0,>=2.0.5", + "symfony/routing": "~2.2", + "symfony/stopwatch": "~2.3", + "symfony/templating": "~2.2", + "symfony/translation": "~2.0,>=2.0.5", + "symfony/var-dumper": "~2.6" + }, + "suggest": { + "symfony/browser-kit": "", + "symfony/class-loader": "", + "symfony/config": "", + "symfony/console": "", + "symfony/dependency-injection": "", + "symfony/finder": "", + "symfony/var-dumper": "" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.7-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\HttpKernel\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony HttpKernel Component", + "homepage": "https://symfony.com", + "time": "2015-09-25 11:16:52" + }, + { + "name": "symfony/process", + "version": "v2.7.5", + "source": { + "type": "git", + "url": "https://github.com/symfony/process.git", + "reference": "b27c8e317922cd3cdd3600850273cf6b82b2e8e9" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/process/zipball/b27c8e317922cd3cdd3600850273cf6b82b2e8e9", + "reference": "b27c8e317922cd3cdd3600850273cf6b82b2e8e9", + "shasum": "" + }, + "require": { + "php": ">=5.3.9" + }, + "require-dev": { + "symfony/phpunit-bridge": "~2.7" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.7-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\Process\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony Process Component", + "homepage": "https://symfony.com", + "time": "2015-09-19 19:59:23" + }, + { + "name": "symfony/psr-http-message-bridge", + "version": "v0.2", + "source": { + "type": "git", + "url": "https://github.com/symfony/psr-http-message-bridge.git", + "reference": "dc7e308e1dc2898a46776e2221a643cb08315453" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/psr-http-message-bridge/zipball/dc7e308e1dc2898a46776e2221a643cb08315453", + "reference": "dc7e308e1dc2898a46776e2221a643cb08315453", + "shasum": "" + }, + "require": { + "php": ">=5.3.3", + "psr/http-message": "~1.0", + "symfony/http-foundation": "~2.3|~3.0" + }, + "require-dev": { + "symfony/phpunit-bridge": "~2.7|~3.0" + }, + "suggest": { + "zendframework/zend-diactoros": "To use the Zend Diactoros factory" + }, + "type": "symfony-bridge", + "autoload": { + "psr-4": { + "Symfony\\Bridge\\PsrHttpMessage\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Symfony Community", + "homepage": "http://symfony.com/contributors" + }, + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + } + ], + "description": "PSR HTTP message bridge", + "homepage": "http://symfony.com", + "keywords": [ + "http", + "http-message", + "psr-7" + ], + "time": "2015-05-29 17:57:12" + }, + { + "name": "symfony/routing", + "version": "v2.7.5", + "source": { + "type": "git", + "url": "https://github.com/symfony/routing.git", + "reference": "6c5fae83efa20baf166fcf4582f57094e9f60f16" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/routing/zipball/6c5fae83efa20baf166fcf4582f57094e9f60f16", + "reference": "6c5fae83efa20baf166fcf4582f57094e9f60f16", + "shasum": "" + }, + "require": { + "php": ">=5.3.9" + }, + "conflict": { + "symfony/config": "<2.7" + }, + "require-dev": { + "doctrine/annotations": "~1.0", + "doctrine/common": "~2.2", + "psr/log": "~1.0", + "symfony/config": "~2.7", + "symfony/expression-language": "~2.4", + "symfony/http-foundation": "~2.3", + "symfony/phpunit-bridge": "~2.7", + "symfony/yaml": "~2.0,>=2.0.5" + }, + "suggest": { + "doctrine/annotations": "For using the annotation loader", + "symfony/config": "For using the all-in-one router or any loader", + "symfony/expression-language": "For using expression matching", + "symfony/yaml": "For using the YAML loader" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.7-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\Routing\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony Routing Component", + "homepage": "https://symfony.com", + "keywords": [ + "router", + "routing", + "uri", + "url" + ], + "time": "2015-09-14 14:14:09" + }, + { + "name": "symfony/serializer", + "version": "v2.7.5", + "source": { + "type": "git", + "url": "https://github.com/symfony/serializer.git", + "reference": "baf24f86a8656eea9c80988f332e51461bfcb67f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/serializer/zipball/baf24f86a8656eea9c80988f332e51461bfcb67f", + "reference": "baf24f86a8656eea9c80988f332e51461bfcb67f", + "shasum": "" + }, + "require": { + "php": ">=5.3.9" + }, + "require-dev": { + "doctrine/annotations": "~1.0", + "doctrine/cache": "~1.0", + "symfony/config": "~2.2", + "symfony/phpunit-bridge": "~2.7", + "symfony/property-access": "~2.3", + "symfony/yaml": "~2.0,>=2.0.5" + }, + "suggest": { + "doctrine/annotations": "For using the annotation mapping. You will also need doctrine/cache.", + "doctrine/cache": "For using the default cached annotation reader and metadata cache.", + "symfony/config": "For using the XML mapping loader.", + "symfony/property-access": "For using the ObjectNormalizer.", + "symfony/yaml": "For using the default YAML mapping loader." + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.7-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\Serializer\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony Serializer Component", + "homepage": "https://symfony.com", + "time": "2015-08-31 16:44:53" + }, + { + "name": "symfony/translation", + "version": "v2.7.5", + "source": { + "type": "git", + "url": "https://github.com/symfony/translation.git", + "reference": "485877661835e188cd78345c6d4eef1290d17571" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/translation/zipball/485877661835e188cd78345c6d4eef1290d17571", + "reference": "485877661835e188cd78345c6d4eef1290d17571", + "shasum": "" + }, + "require": { + "php": ">=5.3.9" + }, + "conflict": { + "symfony/config": "<2.7" + }, + "require-dev": { + "psr/log": "~1.0", + "symfony/config": "~2.7", + "symfony/intl": "~2.4", + "symfony/phpunit-bridge": "~2.7", + "symfony/yaml": "~2.2" + }, + "suggest": { + "psr/log": "To use logging capability in translator", + "symfony/config": "", + "symfony/yaml": "" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.7-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\Translation\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony Translation Component", + "homepage": "https://symfony.com", + "time": "2015-09-06 08:36:38" + }, + { + "name": "symfony/validator", + "version": "v2.7.5", + "source": { + "type": "git", + "url": "https://github.com/symfony/validator.git", + "reference": "b359dc71e253ce6eb69eefbd5088032241e7a66f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/validator/zipball/b359dc71e253ce6eb69eefbd5088032241e7a66f", + "reference": "b359dc71e253ce6eb69eefbd5088032241e7a66f", + "shasum": "" + }, + "require": { + "php": ">=5.3.9", + "symfony/translation": "~2.4" + }, + "require-dev": { + "doctrine/annotations": "~1.0", + "doctrine/cache": "~1.0", + "egulias/email-validator": "~1.2,>=1.2.1", + "symfony/config": "~2.2", + "symfony/expression-language": "~2.4", + "symfony/http-foundation": "~2.1", + "symfony/intl": "~2.4", + "symfony/phpunit-bridge": "~2.7", + "symfony/property-access": "~2.3", + "symfony/yaml": "~2.0,>=2.0.5" + }, + "suggest": { + "doctrine/annotations": "For using the annotation mapping. You will also need doctrine/cache.", + "doctrine/cache": "For using the default cached annotation reader and metadata cache.", + "egulias/email-validator": "Strict (RFC compliant) email validation", + "symfony/config": "", + "symfony/expression-language": "For using the 2.4 Expression validator", + "symfony/http-foundation": "", + "symfony/intl": "", + "symfony/property-access": "For using the 2.4 Validator API", + "symfony/yaml": "" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.7-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\Validator\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony Validator Component", + "homepage": "https://symfony.com", + "time": "2015-09-23 11:13:27" + }, + { + "name": "symfony/yaml", + "version": "v2.7.5", + "source": { + "type": "git", + "url": "https://github.com/symfony/yaml.git", + "reference": "31cb2ad0155c95b88ee55fe12bc7ff92232c1770" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/yaml/zipball/31cb2ad0155c95b88ee55fe12bc7ff92232c1770", + "reference": "31cb2ad0155c95b88ee55fe12bc7ff92232c1770", + "shasum": "" + }, + "require": { + "php": ">=5.3.9" + }, + "require-dev": { + "symfony/phpunit-bridge": "~2.7" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.7-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\Yaml\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony Yaml Component", + "homepage": "https://symfony.com", + "time": "2015-09-14 14:14:09" + }, + { + "name": "twig/twig", + "version": "v1.22.2", + "source": { + "type": "git", + "url": "https://github.com/twigphp/Twig.git", + "reference": "79249fc8c9ff62e41e217e0c630e2e00bcadda6a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/twigphp/Twig/zipball/79249fc8c9ff62e41e217e0c630e2e00bcadda6a", + "reference": "79249fc8c9ff62e41e217e0c630e2e00bcadda6a", + "shasum": "" + }, + "require": { + "php": ">=5.2.7" + }, + "require-dev": { + "symfony/debug": "~2.7", + "symfony/phpunit-bridge": "~2.7" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.22-dev" + } + }, + "autoload": { + "psr-0": { + "Twig_": "lib/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com", + "homepage": "http://fabien.potencier.org", + "role": "Lead Developer" + }, + { + "name": "Armin Ronacher", + "email": "armin.ronacher@active-4.com", + "role": "Project Founder" + }, + { + "name": "Twig Team", + "homepage": "http://twig.sensiolabs.org/contributors", + "role": "Contributors" + } + ], + "description": "Twig, the flexible, fast, and secure template language for PHP", + "homepage": "http://twig.sensiolabs.org", + "keywords": [ + "templating" + ], + "time": "2015-09-22 13:59:32" + }, + { + "name": "wikimedia/composer-merge-plugin", + "version": "dev-master", + "source": { + "type": "git", + "url": "https://github.com/wikimedia/composer-merge-plugin.git", + "reference": "47bb3388cfeae41a38087ac8465a7d08fa92ea2e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/wikimedia/composer-merge-plugin/zipball/47bb3388cfeae41a38087ac8465a7d08fa92ea2e", + "reference": "47bb3388cfeae41a38087ac8465a7d08fa92ea2e", + "shasum": "" + }, + "require": { + "composer-plugin-api": "^1.0", + "php": ">=5.3.2" + }, + "require-dev": { + "composer/composer": "1.0.*@dev", + "jakub-onderka/php-parallel-lint": "~0.8", + "phpspec/prophecy-phpunit": "~1.0", + "phpunit/phpunit": "~4.0", + "squizlabs/php_codesniffer": "~2.1.0" + }, + "type": "composer-plugin", + "extra": { + "branch-alias": { + "dev-master": "1.3.x-dev" + }, + "class": "Wikimedia\\Composer\\MergePlugin" + }, + "autoload": { + "psr-4": { + "Wikimedia\\Composer\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Bryan Davis", + "email": "bd808@wikimedia.org" + } + ], + "description": "Composer plugin to merge multiple composer.json files", + "time": "2015-09-22 21:14:25" + }, + { + "name": "zendframework/zend-diactoros", + "version": "1.1.3", + "source": { + "type": "git", + "url": "https://github.com/zendframework/zend-diactoros.git", + "reference": "e2f5c12916c74da384058d0dfbc7fbc0b03d1181" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/zendframework/zend-diactoros/zipball/e2f5c12916c74da384058d0dfbc7fbc0b03d1181", + "reference": "e2f5c12916c74da384058d0dfbc7fbc0b03d1181", + "shasum": "" + }, + "require": { + "php": ">=5.4", + "psr/http-message": "~1.0" + }, + "provide": { + "psr/http-message-implementation": "~1.0.0" + }, + "require-dev": { + "phpunit/phpunit": "~4.6", + "squizlabs/php_codesniffer": "^2.3.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0-dev", + "dev-develop": "1.1-dev" + } + }, + "autoload": { + "psr-4": { + "Zend\\Diactoros\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-2-Clause" + ], + "description": "PSR HTTP Message implementations", + "homepage": "https://github.com/zendframework/zend-diactoros", + "keywords": [ + "http", + "psr", + "psr-7" + ], + "time": "2015-08-10 20:04:20" + }, + { + "name": "zendframework/zend-escaper", + "version": "2.5.1", + "source": { + "type": "git", + "url": "https://github.com/zendframework/zend-escaper.git", + "reference": "a4b227d8a477f4e7e9073f8e0a7ae7dbd3104a73" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/zendframework/zend-escaper/zipball/a4b227d8a477f4e7e9073f8e0a7ae7dbd3104a73", + "reference": "a4b227d8a477f4e7e9073f8e0a7ae7dbd3104a73", + "shasum": "" + }, + "require": { + "php": ">=5.3.23" + }, + "require-dev": { + "fabpot/php-cs-fixer": "1.7.*", + "phpunit/phpunit": "~4.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.5-dev", + "dev-develop": "2.6-dev" + } + }, + "autoload": { + "psr-4": { + "Zend\\Escaper\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "homepage": "https://github.com/zendframework/zend-escaper", + "keywords": [ + "escaper", + "zf2" + ], + "time": "2015-06-03 14:05:37" + }, + { + "name": "zendframework/zend-feed", + "version": "2.5.2", + "source": { + "type": "git", + "url": "https://github.com/zendframework/zend-feed.git", + "reference": "0661345b82b51428619e05d3aadd3de65b57fa54" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/zendframework/zend-feed/zipball/0661345b82b51428619e05d3aadd3de65b57fa54", + "reference": "0661345b82b51428619e05d3aadd3de65b57fa54", + "shasum": "" + }, + "require": { + "php": ">=5.5", + "zendframework/zend-escaper": "~2.5", + "zendframework/zend-stdlib": "~2.5" + }, + "require-dev": { + "fabpot/php-cs-fixer": "1.7.*", + "phpunit/phpunit": "~4.0", + "zendframework/zend-cache": "~2.5", + "zendframework/zend-db": "~2.5", + "zendframework/zend-http": "~2.5", + "zendframework/zend-servicemanager": "~2.5", + "zendframework/zend-validator": "~2.5" + }, + "suggest": { + "zendframework/zend-cache": "Zend\\Cache component", + "zendframework/zend-db": "Zend\\Db component", + "zendframework/zend-http": "Zend\\Http for PubSubHubbub, and optionally for use with Zend\\Feed\\Reader", + "zendframework/zend-servicemanager": "Zend\\ServiceManager component, for default/recommended ExtensionManager implementations", + "zendframework/zend-validator": "Zend\\Validator component" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.5-dev", + "dev-develop": "2.6-dev" + } + }, + "autoload": { + "psr-4": { + "Zend\\Feed\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "description": "provides functionality for consuming RSS and Atom feeds", + "homepage": "https://github.com/zendframework/zend-feed", + "keywords": [ + "feed", + "zf2" + ], + "time": "2015-08-04 21:39:18" + }, + { + "name": "zendframework/zend-hydrator", + "version": "1.0.0", + "source": { + "type": "git", + "url": "https://github.com/zendframework/zend-hydrator.git", + "reference": "f3ed8b833355140350bbed98d8a7b8b66875903f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/zendframework/zend-hydrator/zipball/f3ed8b833355140350bbed98d8a7b8b66875903f", + "reference": "f3ed8b833355140350bbed98d8a7b8b66875903f", + "shasum": "" + }, + "require": { + "php": ">=5.5", + "zendframework/zend-stdlib": "^2.5.1" + }, + "require-dev": { + "phpunit/phpunit": "~4.0", + "squizlabs/php_codesniffer": "^2.0@dev", + "zendframework/zend-eventmanager": "^2.5.1", + "zendframework/zend-filter": "^2.5.1", + "zendframework/zend-inputfilter": "^2.5.1", + "zendframework/zend-serializer": "^2.5.1", + "zendframework/zend-servicemanager": "^2.5.1" + }, + "suggest": { + "zendframework/zend-eventmanager": "^2.5.1, to support aggregate hydrator usage", + "zendframework/zend-filter": "^2.5.1, to support naming strategy hydrator usage", + "zendframework/zend-serializer": "^2.5.1, to use the SerializableStrategy", + "zendframework/zend-servicemanager": "^2.5.1, to support hydrator plugin manager usage" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0-dev", + "dev-develop": "1.1-dev" + } + }, + "autoload": { + "psr-4": { + "Zend\\Hydrator\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "homepage": "https://github.com/zendframework/zend-hydrator", + "keywords": [ + "hydrator", + "zf2" + ], + "time": "2015-09-17 14:06:43" + }, + { + "name": "zendframework/zend-stdlib", + "version": "2.7.3", + "source": { + "type": "git", + "url": "https://github.com/zendframework/zend-stdlib.git", + "reference": "8ac0c77ff567fcf49b58689ee3bfa7595be102bc" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/zendframework/zend-stdlib/zipball/8ac0c77ff567fcf49b58689ee3bfa7595be102bc", + "reference": "8ac0c77ff567fcf49b58689ee3bfa7595be102bc", + "shasum": "" + }, + "require": { + "php": ">=5.5", + "zendframework/zend-hydrator": "~1.0" + }, + "require-dev": { + "athletic/athletic": "~0.1", + "fabpot/php-cs-fixer": "1.7.*", + "phpunit/phpunit": "~4.0", + "zendframework/zend-config": "~2.5", + "zendframework/zend-eventmanager": "~2.5", + "zendframework/zend-filter": "~2.5", + "zendframework/zend-inputfilter": "~2.5", + "zendframework/zend-serializer": "~2.5", + "zendframework/zend-servicemanager": "~2.5" + }, + "suggest": { + "zendframework/zend-eventmanager": "To support aggregate hydrator usage", + "zendframework/zend-filter": "To support naming strategy hydrator usage", + "zendframework/zend-serializer": "Zend\\Serializer component", + "zendframework/zend-servicemanager": "To support hydrator plugin manager usage" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.7-dev", + "dev-develop": "2.8-dev" + } + }, + "autoload": { + "psr-4": { + "Zend\\Stdlib\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "homepage": "https://github.com/zendframework/zend-stdlib", + "keywords": [ + "stdlib", + "zf2" + ], + "time": "2015-09-25 04:06:33" + } + ], + "packages-dev": [ + { + "name": "behat/mink", + "version": "v1.7.0", + "source": { + "type": "git", + "url": "https://github.com/minkphp/Mink.git", + "reference": "6c129030ec2cc029905cf969a56ca8f087b2dfdf" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/minkphp/Mink/zipball/6c129030ec2cc029905cf969a56ca8f087b2dfdf", + "reference": "6c129030ec2cc029905cf969a56ca8f087b2dfdf", + "shasum": "" + }, + "require": { + "php": ">=5.3.1", + "symfony/css-selector": "~2.1" + }, + "require-dev": { + "symfony/phpunit-bridge": "~2.7" + }, + "suggest": { + "behat/mink-browserkit-driver": "extremely fast headless driver for Symfony\\Kernel-based apps (Sf2, Silex)", + "behat/mink-goutte-driver": "fast headless driver for any app without JS emulation", + "behat/mink-selenium2-driver": "slow, but JS-enabled driver for any app (requires Selenium2)", + "behat/mink-zombie-driver": "fast and JS-enabled headless driver for any app (requires node.js)" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.7.x-dev" + } + }, + "autoload": { + "psr-4": { + "Behat\\Mink\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Konstantin Kudryashov", + "email": "ever.zet@gmail.com", + "homepage": "http://everzet.com" + } + ], + "description": "Browser controller/emulator abstraction for PHP", + "homepage": "http://mink.behat.org/", + "keywords": [ + "browser", + "testing", + "web" + ], + "time": "2015-09-20 20:24:03" + }, + { + "name": "behat/mink-browserkit-driver", + "version": "v1.3.0", + "source": { + "type": "git", + "url": "https://github.com/minkphp/MinkBrowserKitDriver.git", + "reference": "da47df1593dac132f04d24e7277ef40d33d9f201" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/minkphp/MinkBrowserKitDriver/zipball/da47df1593dac132f04d24e7277ef40d33d9f201", + "reference": "da47df1593dac132f04d24e7277ef40d33d9f201", + "shasum": "" + }, + "require": { + "behat/mink": "~1.7@dev", + "php": ">=5.3.6", + "symfony/browser-kit": "~2.3", + "symfony/dom-crawler": "~2.3" + }, + "require-dev": { + "silex/silex": "~1.2", + "symfony/phpunit-bridge": "~2.7" + }, + "type": "mink-driver", + "extra": { + "branch-alias": { + "dev-master": "1.3.x-dev" + } + }, + "autoload": { + "psr-4": { + "Behat\\Mink\\Driver\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Konstantin Kudryashov", + "email": "ever.zet@gmail.com", + "homepage": "http://everzet.com" + } + ], + "description": "Symfony2 BrowserKit driver for Mink framework", + "homepage": "http://mink.behat.org/", + "keywords": [ + "Mink", + "Symfony2", + "browser", + "testing" + ], + "time": "2015-09-21 20:56:13" + }, + { + "name": "behat/mink-goutte-driver", + "version": "v1.2.0", + "source": { + "type": "git", + "url": "https://github.com/minkphp/MinkGoutteDriver.git", + "reference": "c8e254f127d6f2242b994afd4339fb62d471df3f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/minkphp/MinkGoutteDriver/zipball/c8e254f127d6f2242b994afd4339fb62d471df3f", + "reference": "c8e254f127d6f2242b994afd4339fb62d471df3f", + "shasum": "" + }, + "require": { + "behat/mink": "~1.6@dev", + "behat/mink-browserkit-driver": "~1.2@dev", + "fabpot/goutte": "~1.0.4|~2.0|~3.1", + "php": ">=5.3.1" + }, + "require-dev": { + "symfony/phpunit-bridge": "~2.7" + }, + "type": "mink-driver", + "extra": { + "branch-alias": { + "dev-master": "1.2.x-dev" + } + }, + "autoload": { + "psr-4": { + "Behat\\Mink\\Driver\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Konstantin Kudryashov", + "email": "ever.zet@gmail.com", + "homepage": "http://everzet.com" + } + ], + "description": "Goutte driver for Mink framework", + "homepage": "http://mink.behat.org/", + "keywords": [ + "browser", + "goutte", + "headless", + "testing" + ], + "time": "2015-09-21 21:31:11" + }, + { + "name": "doctrine/instantiator", + "version": "1.0.5", + "source": { + "type": "git", + "url": "https://github.com/doctrine/instantiator.git", + "reference": "8e884e78f9f0eb1329e445619e04456e64d8051d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/instantiator/zipball/8e884e78f9f0eb1329e445619e04456e64d8051d", + "reference": "8e884e78f9f0eb1329e445619e04456e64d8051d", + "shasum": "" + }, + "require": { + "php": ">=5.3,<8.0-DEV" + }, + "require-dev": { + "athletic/athletic": "~0.1.8", + "ext-pdo": "*", + "ext-phar": "*", + "phpunit/phpunit": "~4.0", + "squizlabs/php_codesniffer": "~2.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Marco Pivetta", + "email": "ocramius@gmail.com", + "homepage": "http://ocramius.github.com/" + } + ], + "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors", + "homepage": "https://github.com/doctrine/instantiator", + "keywords": [ + "constructor", + "instantiate" + ], + "time": "2015-06-14 21:17:01" + }, + { + "name": "fabpot/goutte", + "version": "v3.1.1", + "source": { + "type": "git", + "url": "https://github.com/FriendsOfPHP/Goutte.git", + "reference": "751a3dc5c4d86ec3e97c9f27133ef9694d9243cc" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/FriendsOfPHP/Goutte/zipball/751a3dc5c4d86ec3e97c9f27133ef9694d9243cc", + "reference": "751a3dc5c4d86ec3e97c9f27133ef9694d9243cc", + "shasum": "" + }, + "require": { + "guzzlehttp/guzzle": "^6.0", + "php": ">=5.5.0", + "symfony/browser-kit": "~2.1", + "symfony/css-selector": "~2.1", + "symfony/dom-crawler": "~2.1" + }, + "type": "application", + "extra": { + "branch-alias": { + "dev-master": "3.1-dev" + } + }, + "autoload": { + "psr-4": { + "Goutte\\": "Goutte" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + } + ], + "description": "A simple PHP Web Scraper", + "homepage": "https://github.com/FriendsOfPHP/Goutte", + "keywords": [ + "scraper" + ], + "time": "2015-08-29 16:16:56" + }, + { + "name": "mikey179/vfsStream", + "version": "v1.6.0", + "source": { + "type": "git", + "url": "https://github.com/mikey179/vfsStream.git", + "reference": "73bcb605b741a7d5044b47592338c633788b0eb7" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/mikey179/vfsStream/zipball/73bcb605b741a7d5044b47592338c633788b0eb7", + "reference": "73bcb605b741a7d5044b47592338c633788b0eb7", + "shasum": "" + }, + "require": { + "php": ">=5.3.0" + }, + "require-dev": { + "phpunit/phpunit": "~4.5" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.6.x-dev" + } + }, + "autoload": { + "psr-0": { + "org\\bovigo\\vfs\\": "src/main/php" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Frank Kleine", + "homepage": "http://frankkleine.de/", + "role": "Developer" + } + ], + "description": "Virtual file system to mock the real file system in unit tests.", + "homepage": "http://vfs.bovigo.org/", + "time": "2015-10-06 16:59:57" + }, + { + "name": "phpdocumentor/reflection-docblock", + "version": "2.0.4", + "source": { + "type": "git", + "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git", + "reference": "d68dbdc53dc358a816f00b300704702b2eaff7b8" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/d68dbdc53dc358a816f00b300704702b2eaff7b8", + "reference": "d68dbdc53dc358a816f00b300704702b2eaff7b8", + "shasum": "" + }, + "require": { + "php": ">=5.3.3" + }, + "require-dev": { + "phpunit/phpunit": "~4.0" + }, + "suggest": { + "dflydev/markdown": "~1.0", + "erusev/parsedown": "~1.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0.x-dev" + } + }, + "autoload": { + "psr-0": { + "phpDocumentor": [ + "src/" + ] + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Mike van Riel", + "email": "mike.vanriel@naenius.com" + } + ], + "time": "2015-02-03 12:10:50" + }, + { + "name": "phpspec/prophecy", + "version": "v1.5.0", + "source": { + "type": "git", + "url": "https://github.com/phpspec/prophecy.git", + "reference": "4745ded9307786b730d7a60df5cb5a6c43cf95f7" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpspec/prophecy/zipball/4745ded9307786b730d7a60df5cb5a6c43cf95f7", + "reference": "4745ded9307786b730d7a60df5cb5a6c43cf95f7", + "shasum": "" + }, + "require": { + "doctrine/instantiator": "^1.0.2", + "phpdocumentor/reflection-docblock": "~2.0", + "sebastian/comparator": "~1.1" + }, + "require-dev": { + "phpspec/phpspec": "~2.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.4.x-dev" + } + }, + "autoload": { + "psr-0": { + "Prophecy\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Konstantin Kudryashov", + "email": "ever.zet@gmail.com", + "homepage": "http://everzet.com" + }, + { + "name": "Marcello Duarte", + "email": "marcello.duarte@gmail.com" + } + ], + "description": "Highly opinionated mocking framework for PHP 5.3+", + "homepage": "https://github.com/phpspec/prophecy", + "keywords": [ + "Double", + "Dummy", + "fake", + "mock", + "spy", + "stub" + ], + "time": "2015-08-13 10:07:40" + }, + { + "name": "phpunit/php-code-coverage", + "version": "2.2.4", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-code-coverage.git", + "reference": "eabf68b476ac7d0f73793aada060f1c1a9bf8979" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/eabf68b476ac7d0f73793aada060f1c1a9bf8979", + "reference": "eabf68b476ac7d0f73793aada060f1c1a9bf8979", + "shasum": "" + }, + "require": { + "php": ">=5.3.3", + "phpunit/php-file-iterator": "~1.3", + "phpunit/php-text-template": "~1.2", + "phpunit/php-token-stream": "~1.3", + "sebastian/environment": "^1.3.2", + "sebastian/version": "~1.0" + }, + "require-dev": { + "ext-xdebug": ">=2.1.4", + "phpunit/phpunit": "~4" + }, + "suggest": { + "ext-dom": "*", + "ext-xdebug": ">=2.2.1", + "ext-xmlwriter": "*" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.2.x-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sb@sebastian-bergmann.de", + "role": "lead" + } + ], + "description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.", + "homepage": "https://github.com/sebastianbergmann/php-code-coverage", + "keywords": [ + "coverage", + "testing", + "xunit" + ], + "time": "2015-10-06 15:47:00" + }, + { + "name": "phpunit/php-file-iterator", + "version": "1.4.1", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-file-iterator.git", + "reference": "6150bf2c35d3fc379e50c7602b75caceaa39dbf0" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/6150bf2c35d3fc379e50c7602b75caceaa39dbf0", + "reference": "6150bf2c35d3fc379e50c7602b75caceaa39dbf0", + "shasum": "" + }, + "require": { + "php": ">=5.3.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.4.x-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sb@sebastian-bergmann.de", + "role": "lead" + } + ], + "description": "FilterIterator implementation that filters files based on a list of suffixes.", + "homepage": "https://github.com/sebastianbergmann/php-file-iterator/", + "keywords": [ + "filesystem", + "iterator" + ], + "time": "2015-06-21 13:08:43" + }, + { + "name": "phpunit/php-text-template", + "version": "1.2.1", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-text-template.git", + "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/31f8b717e51d9a2afca6c9f046f5d69fc27c8686", + "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686", + "shasum": "" + }, + "require": { + "php": ">=5.3.3" + }, + "type": "library", + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Simple template engine.", + "homepage": "https://github.com/sebastianbergmann/php-text-template/", + "keywords": [ + "template" + ], + "time": "2015-06-21 13:50:34" + }, + { + "name": "phpunit/php-timer", + "version": "1.0.7", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-timer.git", + "reference": "3e82f4e9fc92665fafd9157568e4dcb01d014e5b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/3e82f4e9fc92665fafd9157568e4dcb01d014e5b", + "reference": "3e82f4e9fc92665fafd9157568e4dcb01d014e5b", + "shasum": "" + }, + "require": { + "php": ">=5.3.3" + }, + "type": "library", + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sb@sebastian-bergmann.de", + "role": "lead" + } + ], + "description": "Utility class for timing", + "homepage": "https://github.com/sebastianbergmann/php-timer/", + "keywords": [ + "timer" + ], + "time": "2015-06-21 08:01:12" + }, + { + "name": "phpunit/php-token-stream", + "version": "1.4.8", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-token-stream.git", + "reference": "3144ae21711fb6cac0b1ab4cbe63b75ce3d4e8da" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/3144ae21711fb6cac0b1ab4cbe63b75ce3d4e8da", + "reference": "3144ae21711fb6cac0b1ab4cbe63b75ce3d4e8da", + "shasum": "" + }, + "require": { + "ext-tokenizer": "*", + "php": ">=5.3.3" + }, + "require-dev": { + "phpunit/phpunit": "~4.2" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.4-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Wrapper around PHP's tokenizer extension.", + "homepage": "https://github.com/sebastianbergmann/php-token-stream/", + "keywords": [ + "tokenizer" + ], + "time": "2015-09-15 10:49:45" + }, + { + "name": "phpunit/phpunit", + "version": "4.8.11", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/phpunit.git", + "reference": "bdd199472410fd7e32751f9c814c7e06f2c21bd5" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/bdd199472410fd7e32751f9c814c7e06f2c21bd5", + "reference": "bdd199472410fd7e32751f9c814c7e06f2c21bd5", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-json": "*", + "ext-pcre": "*", + "ext-reflection": "*", + "ext-spl": "*", + "php": ">=5.3.3", + "phpspec/prophecy": "^1.3.1", + "phpunit/php-code-coverage": "~2.1", + "phpunit/php-file-iterator": "~1.4", + "phpunit/php-text-template": "~1.2", + "phpunit/php-timer": ">=1.0.6", + "phpunit/phpunit-mock-objects": "~2.3", + "sebastian/comparator": "~1.1", + "sebastian/diff": "~1.2", + "sebastian/environment": "~1.3", + "sebastian/exporter": "~1.2", + "sebastian/global-state": "~1.0", + "sebastian/version": "~1.0", + "symfony/yaml": "~2.1|~3.0" + }, + "suggest": { + "phpunit/php-invoker": "~1.1" + }, + "bin": [ + "phpunit" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.8.x-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "The PHP Unit Testing framework.", + "homepage": "https://phpunit.de/", + "keywords": [ + "phpunit", + "testing", + "xunit" + ], + "time": "2015-10-07 10:39:46" + }, + { + "name": "phpunit/phpunit-mock-objects", + "version": "2.3.8", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/phpunit-mock-objects.git", + "reference": "ac8e7a3db35738d56ee9a76e78a4e03d97628983" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit-mock-objects/zipball/ac8e7a3db35738d56ee9a76e78a4e03d97628983", + "reference": "ac8e7a3db35738d56ee9a76e78a4e03d97628983", + "shasum": "" + }, + "require": { + "doctrine/instantiator": "^1.0.2", + "php": ">=5.3.3", + "phpunit/php-text-template": "~1.2", + "sebastian/exporter": "~1.2" + }, + "require-dev": { + "phpunit/phpunit": "~4.4" + }, + "suggest": { + "ext-soap": "*" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.3.x-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sb@sebastian-bergmann.de", + "role": "lead" + } + ], + "description": "Mock Object library for PHPUnit", + "homepage": "https://github.com/sebastianbergmann/phpunit-mock-objects/", + "keywords": [ + "mock", + "xunit" + ], + "time": "2015-10-02 06:51:40" + }, + { + "name": "sebastian/comparator", + "version": "1.2.0", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/comparator.git", + "reference": "937efb279bd37a375bcadf584dec0726f84dbf22" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/937efb279bd37a375bcadf584dec0726f84dbf22", + "reference": "937efb279bd37a375bcadf584dec0726f84dbf22", + "shasum": "" + }, + "require": { + "php": ">=5.3.3", + "sebastian/diff": "~1.2", + "sebastian/exporter": "~1.2" + }, + "require-dev": { + "phpunit/phpunit": "~4.4" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.2.x-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Jeff Welch", + "email": "whatthejeff@gmail.com" + }, + { + "name": "Volker Dusch", + "email": "github@wallbash.com" + }, + { + "name": "Bernhard Schussek", + "email": "bschussek@2bepublished.at" + }, + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Provides the functionality to compare PHP values for equality", + "homepage": "http://www.github.com/sebastianbergmann/comparator", + "keywords": [ + "comparator", + "compare", + "equality" + ], + "time": "2015-07-26 15:48:44" + }, + { + "name": "sebastian/diff", + "version": "1.3.0", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/diff.git", + "reference": "863df9687835c62aa423a22412d26fa2ebde3fd3" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/863df9687835c62aa423a22412d26fa2ebde3fd3", + "reference": "863df9687835c62aa423a22412d26fa2ebde3fd3", + "shasum": "" + }, + "require": { + "php": ">=5.3.3" + }, + "require-dev": { + "phpunit/phpunit": "~4.2" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.3-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Kore Nordmann", + "email": "mail@kore-nordmann.de" + }, + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Diff implementation", + "homepage": "http://www.github.com/sebastianbergmann/diff", + "keywords": [ + "diff" + ], + "time": "2015-02-22 15:13:53" + }, + { + "name": "sebastian/environment", + "version": "1.3.2", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/environment.git", + "reference": "6324c907ce7a52478eeeaede764f48733ef5ae44" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/6324c907ce7a52478eeeaede764f48733ef5ae44", + "reference": "6324c907ce7a52478eeeaede764f48733ef5ae44", + "shasum": "" + }, + "require": { + "php": ">=5.3.3" + }, + "require-dev": { + "phpunit/phpunit": "~4.4" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.3.x-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Provides functionality to handle HHVM/PHP environments", + "homepage": "http://www.github.com/sebastianbergmann/environment", + "keywords": [ + "Xdebug", + "environment", + "hhvm" + ], + "time": "2015-08-03 06:14:51" + }, + { + "name": "sebastian/exporter", + "version": "1.2.1", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/exporter.git", + "reference": "7ae5513327cb536431847bcc0c10edba2701064e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/7ae5513327cb536431847bcc0c10edba2701064e", + "reference": "7ae5513327cb536431847bcc0c10edba2701064e", + "shasum": "" + }, + "require": { + "php": ">=5.3.3", + "sebastian/recursion-context": "~1.0" + }, + "require-dev": { + "phpunit/phpunit": "~4.4" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.2.x-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Jeff Welch", + "email": "whatthejeff@gmail.com" + }, + { + "name": "Volker Dusch", + "email": "github@wallbash.com" + }, + { + "name": "Bernhard Schussek", + "email": "bschussek@2bepublished.at" + }, + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + }, + { + "name": "Adam Harvey", + "email": "aharvey@php.net" + } + ], + "description": "Provides the functionality to export PHP variables for visualization", + "homepage": "http://www.github.com/sebastianbergmann/exporter", + "keywords": [ + "export", + "exporter" + ], + "time": "2015-06-21 07:55:53" + }, + { + "name": "sebastian/global-state", + "version": "1.0.0", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/global-state.git", + "reference": "c7428acdb62ece0a45e6306f1ae85e1c05b09c01" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/c7428acdb62ece0a45e6306f1ae85e1c05b09c01", + "reference": "c7428acdb62ece0a45e6306f1ae85e1c05b09c01", + "shasum": "" + }, + "require": { + "php": ">=5.3.3" + }, + "require-dev": { + "phpunit/phpunit": "~4.2" + }, + "suggest": { + "ext-uopz": "*" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Snapshotting of global state", + "homepage": "http://www.github.com/sebastianbergmann/global-state", + "keywords": [ + "global state" + ], + "time": "2014-10-06 09:23:50" + }, + { + "name": "sebastian/recursion-context", + "version": "1.0.1", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/recursion-context.git", + "reference": "994d4a811bafe801fb06dccbee797863ba2792ba" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/994d4a811bafe801fb06dccbee797863ba2792ba", + "reference": "994d4a811bafe801fb06dccbee797863ba2792ba", + "shasum": "" + }, + "require": { + "php": ">=5.3.3" + }, + "require-dev": { + "phpunit/phpunit": "~4.4" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Jeff Welch", + "email": "whatthejeff@gmail.com" + }, + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + }, + { + "name": "Adam Harvey", + "email": "aharvey@php.net" + } + ], + "description": "Provides functionality to recursively process PHP variables", + "homepage": "http://www.github.com/sebastianbergmann/recursion-context", + "time": "2015-06-21 08:04:50" + }, + { + "name": "sebastian/version", + "version": "1.0.6", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/version.git", + "reference": "58b3a85e7999757d6ad81c787a1fbf5ff6c628c6" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/58b3a85e7999757d6ad81c787a1fbf5ff6c628c6", + "reference": "58b3a85e7999757d6ad81c787a1fbf5ff6c628c6", + "shasum": "" + }, + "type": "library", + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Library that helps with managing the version number of Git-hosted PHP projects", + "homepage": "https://github.com/sebastianbergmann/version", + "time": "2015-06-21 13:59:46" + }, + { + "name": "symfony/browser-kit", + "version": "v2.7.5", + "source": { + "type": "git", + "url": "https://github.com/symfony/browser-kit.git", + "reference": "277a2457776d4cc25706fbdd9d1e4ab2dac884e4" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/browser-kit/zipball/277a2457776d4cc25706fbdd9d1e4ab2dac884e4", + "reference": "277a2457776d4cc25706fbdd9d1e4ab2dac884e4", + "shasum": "" + }, + "require": { + "php": ">=5.3.9", + "symfony/dom-crawler": "~2.0,>=2.0.5" + }, + "require-dev": { + "symfony/css-selector": "~2.0,>=2.0.5", + "symfony/phpunit-bridge": "~2.7", + "symfony/process": "~2.0,>=2.0.5" + }, + "suggest": { + "symfony/process": "" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.7-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\BrowserKit\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony BrowserKit Component", + "homepage": "https://symfony.com", + "time": "2015-09-06 08:36:38" + }, + { + "name": "symfony/css-selector", + "version": "v2.7.5", + "source": { + "type": "git", + "url": "https://github.com/symfony/css-selector.git", + "reference": "abe19cc0429a06be0c133056d1f9859854860970" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/css-selector/zipball/abe19cc0429a06be0c133056d1f9859854860970", + "reference": "abe19cc0429a06be0c133056d1f9859854860970", + "shasum": "" + }, + "require": { + "php": ">=5.3.9" + }, + "require-dev": { + "symfony/phpunit-bridge": "~2.7" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.7-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\CssSelector\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jean-François Simon", + "email": "jeanfrancois.simon@sensiolabs.com" + }, + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony CssSelector Component", + "homepage": "https://symfony.com", + "time": "2015-09-22 13:49:29" + }, + { + "name": "symfony/dom-crawler", + "version": "v2.7.5", + "source": { + "type": "git", + "url": "https://github.com/symfony/dom-crawler.git", + "reference": "2e185ca136399f902b948694987e62c80099c052" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/dom-crawler/zipball/2e185ca136399f902b948694987e62c80099c052", + "reference": "2e185ca136399f902b948694987e62c80099c052", + "shasum": "" + }, + "require": { + "php": ">=5.3.9" + }, + "require-dev": { + "symfony/css-selector": "~2.3", + "symfony/phpunit-bridge": "~2.7" + }, + "suggest": { + "symfony/css-selector": "" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.7-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\DomCrawler\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony DomCrawler Component", + "homepage": "https://symfony.com", + "time": "2015-09-20 21:13:58" + } + ], + "aliases": [], + "minimum-stability": "dev", + "stability-flags": { + "php": 0, + "symfony/class-loader": 0, + "symfony/console": 0, + "symfony/dependency-injection": 0, + "symfony/event-dispatcher": 0, + "symfony/http-foundation": 0, + "symfony/http-kernel": 0, + "symfony/routing": 0, + "symfony/serializer": 0, + "symfony/translation": 0, + "symfony/validator": 0, + "symfony/process": 0, + "symfony/yaml": 0, + "twig/twig": 0, + "doctrine/common": 0, + "doctrine/annotations": 0, + "guzzlehttp/guzzle": 0, + "symfony-cmf/routing": 0, + "easyrdf/easyrdf": 0, + "zendframework/zend-feed": 0, + "stack/builder": 0, + "egulias/email-validator": 0, + "masterminds/html5": 0, + "symfony/psr-http-message-bridge": 0, + "zendframework/zend-diactoros": 0, + "composer/semver": 0, + "behat/mink": 0, + "behat/mink-goutte-driver": 0, + "mikey179/vfsstream": 0, + "phpunit/phpunit": 0, + "symfony/css-selector": 0 + }, + "prefer-stable": true, + "prefer-lowest": false, + "platform": { + "php": ">=5.5.9" + }, + "platform-dev": [] +} diff --git a/core/MAINTAINERS.txt b/core/MAINTAINERS.txt index 2e9b1bfc8..315ba2e13 100644 --- a/core/MAINTAINERS.txt +++ b/core/MAINTAINERS.txt @@ -151,7 +151,8 @@ Mail system Markup - Daniel F. Kudwien 'sun' https://www.drupal.org/u/sun -Migrate +Migration system +- Adam Globus-Hoenich 'phenaproxima' https://www.drupal.org/u/phenaproxima - Ben Dougherty 'benjy' https://www.drupal.org/u/benjy - Michael Anello 'ultimike' https://www.drupal.org/u/ultimike - Mike Ryan 'mikeryan' https://www.drupal.org/u/mikeryan @@ -255,6 +256,9 @@ Action module Aggregator module - Paris Liakos 'ParisLiakos' https://www.drupal.org/u/parisliakos +Automated Cron module +- ? + Ban module - ? @@ -312,16 +316,16 @@ Database Logging module DateTime module - Matthew Donadio 'mpdonadio' https://www.drupal.org/u/mpdonadio +Dynamic Page Cache module +- Fabian Franz 'Fabianx' https://www.drupal.org/u/fabianx +- Wim Leers 'Wim Leers' https://www.drupal.org/u/wim-leers + Email module - Nils Destoop 'zuuperman' https://www.drupal.org/u/zuuperman Editor module - Wim Leers 'Wim Leers' https://www.drupal.org/u/wim-leers -Entity Reference module -- Amitai Burstein 'Amitaibu' https://www.drupal.org/u/amitaibu -- Andrei Mateescu 'amateescu' https://www.drupal.org/u/amateescu - Field UI module - Yves Chedemois 'yched' https://www.drupal.org/u/yched - Kristof De Jaeger 'swentel' https://www.drupal.org/u/swentel diff --git a/core/assets/vendor/backbone/backbone-min.js b/core/assets/vendor/backbone/backbone-min.js index f29903b1a..1a1f708da 100644 --- a/core/assets/vendor/backbone/backbone-min.js +++ b/core/assets/vendor/backbone/backbone-min.js @@ -1,2 +1,2 @@ -(function(t){var e=typeof self=="object"&&self.self==self&&self||typeof global=="object"&&global.global==global&&global;if(typeof define==="function"&&define.amd){define(["underscore","jquery","exports"],function(i,r,s){e.Backbone=t(e,s,i,r)})}else if(typeof exports!=="undefined"){var i=require("underscore"),r;try{r=require("jquery")}catch(s){}t(e,exports,i,r)}else{e.Backbone=t(e,{},e._,e.jQuery||e.Zepto||e.ender||e.$)}})(function(t,e,i,r){var s=t.Backbone;var n=[].slice;e.VERSION="1.2.1";e.$=r;e.noConflict=function(){t.Backbone=s;return this};e.emulateHTTP=false;e.emulateJSON=false;var a=function(t,e,r){switch(t){case 1:return function(){return i[e](this[r])};case 2:return function(t){return i[e](this[r],t)};case 3:return function(t,s){return i[e](this[r],t,s)};case 4:return function(t,s,n){return i[e](this[r],t,s,n)};default:return function(){var t=n.call(arguments);t.unshift(this[r]);return i[e].apply(i,t)}}};var o=function(t,e,r){i.each(e,function(e,s){if(i[s])t.prototype[s]=a(e,s,r)})};var h=e.Events={};var u=/\s+/;var l=function(t,e,r,s,n){var a=0,o;if(r&&typeof r==="object"){if(s!==void 0&&"context"in n&&n.context===void 0)n.context=s;for(o=i.keys(r);a7);this._useHashChange=this._wantsHashChange&&this._hasHashChange;this._wantsPushState=!!this.options.pushState;this._hasPushState=!!(this.history&&this.history.pushState);this._usePushState=this._wantsPushState&&this._hasPushState;this.fragment=this.getFragment();this.root=("/"+this.root+"/").replace(O,"/");if(this._wantsHashChange&&this._wantsPushState){if(!this._hasPushState&&!this.atRoot()){var e=this.root.slice(0,-1)||"/";this.location.replace(e+"#"+this.getPath());return true}else if(this._hasPushState&&this.atRoot()){this.navigate(this.getHash(),{replace:true})}}if(!this._hasHashChange&&this._wantsHashChange&&!this._usePushState){this.iframe=document.createElement("iframe");this.iframe.src="javascript:0";this.iframe.style.display="none";this.iframe.tabIndex=-1;var r=document.body;var n=r.insertBefore(this.iframe,r.firstChild).contentWindow;n.document.open();n.document.close();n.location.hash="#"+this.fragment}var s=window.addEventListener||function(t,e){return attachEvent("on"+t,e)};if(this._usePushState){s("popstate",this.checkUrl,false)}else if(this._useHashChange&&!this.iframe){s("hashchange",this.checkUrl,false)}else if(this._wantsHashChange){this._checkUrlInterval=setInterval(this.checkUrl,this.interval)}if(!this.options.silent)return this.loadUrl()},stop:function(){var t=window.removeEventListener||function(t,e){return detachEvent("on"+t,e)};if(this._usePushState){t("popstate",this.checkUrl,false)}else if(this._useHashChange&&!this.iframe){t("hashchange",this.checkUrl,false)}if(this.iframe){document.body.removeChild(this.iframe);this.iframe=null}if(this._checkUrlInterval)clearInterval(this._checkUrlInterval);M.started=false},route:function(t,e){this.handlers.unshift({route:t,callback:e})},checkUrl:function(t){var e=this.getFragment();if(e===this.fragment&&this.iframe){e=this.getHash(this.iframe.contentWindow)}if(e===this.fragment)return false;if(this.iframe)this.navigate(e);this.loadUrl()},loadUrl:function(t){if(!this.matchRoot())return false;t=this.fragment=this.getFragment(t);return i.some(this.handlers,function(e){if(e.route.test(t)){e.callback(t);return true}})},navigate:function(t,e){if(!M.started)return false;if(!e||e===true)e={trigger:!!e};t=this.getFragment(t||"");var i=this.root;if(t===""||t.charAt(0)==="?"){i=i.slice(0,-1)||"/"}var r=i+t;t=this.decodeFragment(t.replace(U,""));if(this.fragment===t)return;this.fragment=t;if(this._usePushState){this.history[e.replace?"replaceState":"pushState"]({},document.title,r)}else if(this._wantsHashChange){this._updateHash(this.location,t,e.replace);if(this.iframe&&t!==this.getHash(this.iframe.contentWindow)){var n=this.iframe.contentWindow;if(!e.replace){n.document.open();n.document.close()}this._updateHash(n.location,t,e.replace)}}else{return this.location.assign(r)}if(e.trigger)return this.loadUrl(t)},_updateHash:function(t,e,i){if(i){var r=t.href.replace(/(javascript:|#).*$/,"");t.replace(r+"#"+e)}else{t.hash="#"+e}}});e.history=new M;var q=function(t,e){var r=this;var n;if(t&&i.has(t,"constructor")){n=t.constructor}else{n=function(){return r.apply(this,arguments)}}i.extend(n,r,e);var s=function(){this.constructor=n};s.prototype=r.prototype;n.prototype=new s;if(t)i.extend(n.prototype,t);n.__super__=r.prototype;return n};y.extend=x.extend=$.extend=I.extend=M.extend=q;var F=function(){throw new Error('A "url" property or function must be specified')};var z=function(t,e){var i=e.error;e.error=function(r){if(i)i.call(e.context,t,r,e);t.trigger("error",t,r,e)}};return e}); //# sourceMappingURL=backbone-min.map \ No newline at end of file diff --git a/core/assets/vendor/backbone/backbone-min.map b/core/assets/vendor/backbone/backbone-min.map index f01489a5c..b728f9b3d 100644 --- a/core/assets/vendor/backbone/backbone-min.map +++ b/core/assets/vendor/backbone/backbone-min.map @@ -1 +1 @@ -{"version":3,"file":"backbone-min.js","sources":["backbone.js"],"names":["factory","root","self","global","define","amd","_","$","exports","Backbone","require","e","jQuery","Zepto","ender","previousBackbone","slice","VERSION","noConflict","this","emulateHTTP","emulateJSON","addMethod","length","method","attribute","value","iteratee","context","defaultVal","args","call","arguments","unshift","apply","addUnderscoreMethods","Class","methods","each","prototype","Events","eventSplitter","eventsApi","memo","name","callback","opts","i","names","keys","test","split","on","internalOn","obj","listening","_events","onApi","ctx","listeners","_listeners","id","listenTo","_listenId","uniqueId","listeningTo","_listeningTo","thisId","objId","count","events","options","handlers","push","off","offApi","stopListening","ids","isEmpty","remaining","j","handler","_callback","size","once","onceMap","bind","listenToOnce","map","offer","trigger","Math","max","Array","triggerApi","objEvents","cb","allEvents","all","triggerEvents","concat","ev","l","a1","a2","a3","unbind","extend","Model","attributes","attrs","cid","cidPrefix","collection","parse","defaults","result","set","changed","initialize","validationError","idAttribute","toJSON","clone","sync","get","attr","escape","has","matches","key","val","_validate","unset","silent","changes","changing","_changing","_previousAttributes","current","prev","isEqual","_pending","clear","hasChanged","changedAttributes","diff","old","previous","previousAttributes","fetch","model","success","resp","serverAttrs","wrapError","save","validate","wait","isNew","patch","xhr","destroy","defer","url","base","urlError","replace","encodeURIComponent","constructor","isValid","error","modelMethods","values","pairs","invert","pick","omit","chain","Collection","models","comparator","_reset","reset","setOptions","add","remove","merge","addOptions","singular","isArray","removed","_removeModels","_isModel","existing","sort","at","sortable","sortAttr","isString","toAdd","toRemove","modelMap","order","orderChanged","_prepareModel","_addReference","modelId","splice","orderedModels","addOpts","index","_removeReference","previousModels","pop","shift","_byId","where","first","findWhere","Error","sortBy","pluck","invoke","create","callbackOpts","indexOf","_onModelEvent","event","prevId","collectionMethods","forEach","collect","reduce","foldl","inject","reduceRight","foldr","find","detect","filter","select","reject","every","some","any","include","contains","min","toArray","head","take","initial","rest","tail","drop","last","without","difference","shuffle","lastIndexOf","sample","partition","attributeMethods","iterator","isFunction","View","viewOptions","_ensureElement","delegateEventSplitter","tagName","selector","$el","render","_removeElement","setElement","element","undelegateEvents","_setElement","delegateEvents","el","match","delegate","eventName","listener","undelegate","_createElement","document","createElement","className","_setAttributes","type","methodMap","params","dataType","data","contentType","JSON","stringify","_method","beforeSend","setRequestHeader","processData","textStatus","errorThrown","ajax","update","delete","read","Router","routes","_bindRoutes","optionalParam","namedParam","splatParam","escapeRegExp","route","isRegExp","_routeToRegExp","router","history","fragment","_extractParameters","execute","navigate","optional","RegExp","exec","param","decodeURIComponent","History","bindAll","window","location","routeStripper","rootStripper","pathStripper","started","interval","atRoot","path","pathname","getSearch","matchRoot","decodeFragment","decodeURI","href","getHash","getPath","charAt","getFragment","_usePushState","_wantsHashChange","start","hashChange","_hasHashChange","_useHashChange","_wantsPushState","pushState","_hasPushState","iframe","src","style","display","tabIndex","body","iWindow","insertBefore","firstChild","contentWindow","open","close","hash","addEventListener","attachEvent","checkUrl","_checkUrlInterval","setInterval","loadUrl","stop","removeEventListener","detachEvent","removeChild","clearInterval","title","_updateHash","assign","protoProps","staticProps","parent","child","Surrogate","__super__"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"backbone-min.js","sources":["backbone.js"],"names":["factory","root","self","global","define","amd","_","$","exports","Backbone","require","e","jQuery","Zepto","ender","previousBackbone","slice","Array","prototype","VERSION","noConflict","this","emulateHTTP","emulateJSON","addMethod","length","method","attribute","value","iteratee","context","cb","defaultVal","args","call","arguments","unshift","apply","addUnderscoreMethods","Class","methods","each","instance","isFunction","isObject","_isModel","modelMatcher","isString","model","get","attrs","matcher","matches","attributes","Events","eventSplitter","eventsApi","events","name","callback","opts","i","names","keys","test","split","on","internalOn","obj","listening","_events","onApi","ctx","listeners","_listeners","id","listenTo","_listenId","uniqueId","listeningTo","_listeningTo","thisId","objId","count","options","handlers","push","off","offApi","stopListening","ids","isEmpty","remaining","j","handler","_callback","size","once","onceMap","bind","listenToOnce","map","offer","trigger","Math","max","triggerApi","objEvents","allEvents","all","triggerEvents","concat","ev","l","a1","a2","a3","unbind","extend","Model","cid","cidPrefix","collection","parse","defaults","result","set","changed","initialize","validationError","idAttribute","toJSON","clone","sync","attr","escape","has","key","val","_validate","unset","silent","changes","changing","_changing","_previousAttributes","current","prev","isEqual","_pending","clear","hasChanged","changedAttributes","diff","old","previous","previousAttributes","fetch","success","resp","serverAttrs","wrapError","save","validate","wait","isNew","patch","xhr","destroy","defer","url","base","urlError","replace","encodeURIComponent","constructor","isValid","error","modelMethods","values","pairs","invert","pick","omit","chain","Collection","models","comparator","_reset","reset","setOptions","add","remove","merge","addOptions","splice","array","insert","at","min","tail","singular","isArray","removed","_removeModels","toAdd","toRemove","modelMap","sort","sortable","sortAttr","existing","_prepareModel","_addReference","orderChanged","some","index","_removeReference","previousModels","pop","shift","modelId","_byId","where","first","findWhere","Error","sortBy","pluck","invoke","create","callbackOpts","indexOf","_onModelEvent","event","prevId","collectionMethods","forEach","collect","reduce","foldl","inject","reduceRight","foldr","find","detect","filter","select","reject","every","any","include","includes","contains","toArray","head","take","initial","rest","drop","last","without","difference","shuffle","lastIndexOf","sample","partition","groupBy","countBy","indexBy","View","viewOptions","_ensureElement","delegateEventSplitter","tagName","selector","$el","render","_removeElement","setElement","element","undelegateEvents","_setElement","delegateEvents","el","match","delegate","eventName","listener","undelegate","_createElement","document","createElement","className","_setAttributes","type","methodMap","params","dataType","data","contentType","JSON","stringify","_method","beforeSend","setRequestHeader","processData","textStatus","errorThrown","ajax","update","delete","read","Router","routes","_bindRoutes","optionalParam","namedParam","splatParam","escapeRegExp","route","isRegExp","_routeToRegExp","router","history","fragment","_extractParameters","execute","navigate","optional","RegExp","exec","param","decodeURIComponent","History","checkUrl","window","location","routeStripper","rootStripper","pathStripper","started","interval","atRoot","path","pathname","getSearch","matchRoot","decodeFragment","decodeURI","href","getHash","getPath","charAt","getFragment","_usePushState","_wantsHashChange","start","hashChange","_hasHashChange","documentMode","_useHashChange","_wantsPushState","pushState","_hasPushState","iframe","src","style","display","tabIndex","body","iWindow","insertBefore","firstChild","contentWindow","open","close","hash","addEventListener","attachEvent","_checkUrlInterval","setInterval","loadUrl","stop","removeEventListener","detachEvent","removeChild","clearInterval","title","_updateHash","assign","protoProps","staticProps","parent","child","Surrogate","__super__"],"mappings":"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"} \ No newline at end of file diff --git a/core/assets/vendor/backbone/backbone.js b/core/assets/vendor/backbone/backbone.js index 58800425c..c92496562 100644 --- a/core/assets/vendor/backbone/backbone.js +++ b/core/assets/vendor/backbone/backbone.js @@ -1,4 +1,4 @@ -// Backbone.js 1.2.1 +// Backbone.js 1.2.3 // (c) 2010-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors // Backbone may be freely distributed under the MIT license. @@ -41,10 +41,10 @@ var previousBackbone = root.Backbone; // Create a local reference to a common array method we'll want to use later. - var slice = [].slice; + var slice = Array.prototype.slice; // Current version of the library. Keep in sync with `package.json`. - Backbone.VERSION = '1.2.1'; + Backbone.VERSION = '1.2.3'; // For Backbone's purposes, jQuery, Zepto, Ender, or My Library (kidding) owns // the `$` variable. @@ -68,8 +68,13 @@ // form param named `model`. Backbone.emulateJSON = false; - // Proxy Underscore methods to a Backbone class' prototype using a - // particular attribute as the data argument + // Proxy Backbone class methods to Underscore functions, wrapping the model's + // `attributes` object or collection's `models` array behind the scenes. + // + // collection.filter(function(model) { return model.get('age') > 10 }); + // collection.each(this.addView); + // + // `Function#apply` can be slow so we use the method's arg count, if we know it. var addMethod = function(length, method, attribute) { switch (length) { case 1: return function() { @@ -79,10 +84,10 @@ return _[method](this[attribute], value); }; case 3: return function(iteratee, context) { - return _[method](this[attribute], iteratee, context); + return _[method](this[attribute], cb(iteratee, this), context); }; case 4: return function(iteratee, defaultVal, context) { - return _[method](this[attribute], iteratee, defaultVal, context); + return _[method](this[attribute], cb(iteratee, this), defaultVal, context); }; default: return function() { var args = slice.call(arguments); @@ -97,12 +102,26 @@ }); }; + // Support `collection.sortBy('attr')` and `collection.findWhere({id: 1})`. + var cb = function(iteratee, instance) { + if (_.isFunction(iteratee)) return iteratee; + if (_.isObject(iteratee) && !instance._isModel(iteratee)) return modelMatcher(iteratee); + if (_.isString(iteratee)) return function(model) { return model.get(iteratee); }; + return iteratee; + }; + var modelMatcher = function(attrs) { + var matcher = _.matches(attrs); + return function(model) { + return matcher(model.attributes); + }; + }; + // Backbone.Events // --------------- // A module that can be mixed in to *any object* in order to provide it with - // custom events. You may bind with `on` or remove with `off` callback - // functions to an event; `trigger`-ing an event fires all callbacks in + // a custom event channel. You may bind a callback to an event with `on` or + // remove with `off`; `trigger`-ing an event fires all callbacks in // succession. // // var object = {}; @@ -117,26 +136,25 @@ // Iterates over the standard `event, callback` (as well as the fancy multiple // space-separated events `"change blur", callback` and jQuery-style event - // maps `{event: callback}`), reducing them by manipulating `memo`. - // Passes a normalized single event name and callback, as well as any - // optional `opts`. - var eventsApi = function(iteratee, memo, name, callback, opts) { + // maps `{event: callback}`). + var eventsApi = function(iteratee, events, name, callback, opts) { var i = 0, names; if (name && typeof name === 'object') { // Handle event maps. if (callback !== void 0 && 'context' in opts && opts.context === void 0) opts.context = callback; for (names = _.keys(name); i < names.length ; i++) { - memo = iteratee(memo, names[i], name[names[i]], opts); + events = eventsApi(iteratee, events, names[i], name[names[i]], opts); } } else if (name && eventSplitter.test(name)) { - // Handle space separated event names. + // Handle space separated event names by delegating them individually. for (names = name.split(eventSplitter); i < names.length; i++) { - memo = iteratee(memo, names[i], callback, opts); + events = iteratee(events, names[i], callback, opts); } } else { - memo = iteratee(memo, name, callback, opts); + // Finally, standard events. + events = iteratee(events, name, callback, opts); } - return memo; + return events; }; // Bind an event to a `callback` function. Passing `"all"` will bind @@ -145,8 +163,7 @@ return internalOn(this, name, callback, context); }; - // An internal use `on` function, used to guard the `listening` argument from - // the public API. + // Guard the `listening` argument from the public API. var internalOn = function(obj, name, callback, context, listening) { obj._events = eventsApi(onApi, obj._events || {}, name, callback, { context: context, @@ -163,7 +180,8 @@ }; // Inversion-of-control versions of `on`. Tell *this* object to listen to - // an event in another object... keeping track of what it's listening to. + // an event in another object... keeping track of what it's listening to + // for easier unbinding later. Events.listenTo = function(obj, name, callback) { if (!obj) return this; var id = obj._listenId || (obj._listenId = _.uniqueId('l')); @@ -231,7 +249,6 @@ // The reducing API that removes a callback from the `events` object. var offApi = function(events, name, callback, options) { - // No events to consider. if (!events) return; var i = 0, listening; @@ -286,9 +303,9 @@ }; // Bind an event to only be triggered a single time. After the first time - // the callback is invoked, it will be removed. When multiple events are - // passed in using the space-separated syntax, the event will fire once for every - // event you passed in, not once for a combination of all events + // the callback is invoked, its listener will be removed. If multiple events + // are passed in using the space-separated syntax, the handler will fire + // once for each event, not once for a combination of all events. Events.once = function(name, callback, context) { // Map the event into a `{event: once}` object. var events = eventsApi(onceMap, {}, name, callback, _.bind(this.off, this)); @@ -476,9 +493,6 @@ var changed = this.changed; var prev = this._previousAttributes; - // Check for changes of `id`. - if (this.idAttribute in attrs) this.id = attrs[this.idAttribute]; - // For each `set` attribute, update or delete the current value. for (var attr in attrs) { val = attrs[attr]; @@ -491,6 +505,9 @@ unset ? delete current[attr] : current[attr] = val; } + // Update the `id`. + this.id = this.get(this.idAttribute); + // Trigger all relevant attribute changes. if (!silent) { if (changes.length) this._pending = options; @@ -713,7 +730,8 @@ }); - // Underscore methods that we want to implement on the Model. + // Underscore methods that we want to implement on the Model, mapped to the + // number of arguments they take. var modelMethods = { keys: 1, values: 1, pairs: 1, invert: 1, pick: 0, omit: 0, chain: 1, isEmpty: 1 }; @@ -746,6 +764,16 @@ var setOptions = {add: true, remove: true, merge: true}; var addOptions = {add: true, remove: false}; + // Splices `insert` into `array` at index `at`. + var splice = function(array, insert, at) { + at = Math.min(Math.max(at, 0), array.length); + var tail = Array(array.length - at); + var length = insert.length; + for (var i = 0; i < tail.length; i++) tail[i] = array[i + at]; + for (i = 0; i < length; i++) array[i + at] = insert[i]; + for (i = 0; i < tail.length; i++) array[i + length + at] = tail[i]; + }; + // Define the Collection's inheritable methods. _.extend(Collection.prototype, Events, { @@ -768,7 +796,9 @@ return Backbone.sync.apply(this, arguments); }, - // Add a model, or list of models to the set. + // Add a model, or list of models to the set. `models` may be Backbone + // Models or raw JavaScript objects to be converted to Models, or any + // combination of the two. add: function(models, options) { return this.set(models, _.extend({merge: false}, options, addOptions)); }, @@ -788,83 +818,88 @@ // already exist in the collection, as necessary. Similar to **Model#set**, // the core operation for updating the data contained by the collection. set: function(models, options) { + if (models == null) return; + options = _.defaults({}, options, setOptions); if (options.parse && !this._isModel(models)) models = this.parse(models, options); + var singular = !_.isArray(models); - models = singular ? (models ? [models] : []) : models.slice(); - var id, model, attrs, existing, sort; + models = singular ? [models] : models.slice(); + var at = options.at; if (at != null) at = +at; if (at < 0) at += this.length + 1; + + var set = []; + var toAdd = []; + var toRemove = []; + var modelMap = {}; + + var add = options.add; + var merge = options.merge; + var remove = options.remove; + + var sort = false; var sortable = this.comparator && (at == null) && options.sort !== false; var sortAttr = _.isString(this.comparator) ? this.comparator : null; - var toAdd = [], toRemove = [], modelMap = {}; - var add = options.add, merge = options.merge, remove = options.remove; - var order = !sortable && add && remove ? [] : false; - var orderChanged = false; // Turn bare objects into model references, and prevent invalid models // from being added. + var model; for (var i = 0; i < models.length; i++) { - attrs = models[i]; + model = models[i]; // If a duplicate is found, prevent it from being added and // optionally merge it into the existing model. - if (existing = this.get(attrs)) { - if (remove) modelMap[existing.cid] = true; - if (merge && attrs !== existing) { - attrs = this._isModel(attrs) ? attrs.attributes : attrs; + var existing = this.get(model); + if (existing) { + if (merge && model !== existing) { + var attrs = this._isModel(model) ? model.attributes : model; if (options.parse) attrs = existing.parse(attrs, options); existing.set(attrs, options); - if (sortable && !sort && existing.hasChanged(sortAttr)) sort = true; + if (sortable && !sort) sort = existing.hasChanged(sortAttr); + } + if (!modelMap[existing.cid]) { + modelMap[existing.cid] = true; + set.push(existing); } models[i] = existing; // If this is a new, valid model, push it to the `toAdd` list. } else if (add) { - model = models[i] = this._prepareModel(attrs, options); - if (!model) continue; - toAdd.push(model); - this._addReference(model, options); + model = models[i] = this._prepareModel(model, options); + if (model) { + toAdd.push(model); + this._addReference(model, options); + modelMap[model.cid] = true; + set.push(model); + } } - - // Do not add multiple models with the same `id`. - model = existing || model; - if (!model) continue; - id = this.modelId(model.attributes); - if (order && (model.isNew() || !modelMap[id])) { - order.push(model); - - // Check to see if this is actually a new model at this index. - orderChanged = orderChanged || !this.models[i] || model.cid !== this.models[i].cid; - } - - modelMap[id] = true; } - // Remove nonexistent models if appropriate. + // Remove stale models. if (remove) { - for (var i = 0; i < this.length; i++) { - if (!modelMap[(model = this.models[i]).cid]) toRemove.push(model); + for (i = 0; i < this.length; i++) { + model = this.models[i]; + if (!modelMap[model.cid]) toRemove.push(model); } if (toRemove.length) this._removeModels(toRemove, options); } // See if sorting is needed, update `length` and splice in new models. - if (toAdd.length || orderChanged) { + var orderChanged = false; + var replace = !sortable && add && remove; + if (set.length && replace) { + orderChanged = this.length != set.length || _.some(this.models, function(model, index) { + return model !== set[index]; + }); + this.models.length = 0; + splice(this.models, set, 0); + this.length = this.models.length; + } else if (toAdd.length) { if (sortable) sort = true; - this.length += toAdd.length; - if (at != null) { - for (var i = 0; i < toAdd.length; i++) { - this.models.splice(at + i, 0, toAdd[i]); - } - } else { - if (order) this.models.length = 0; - var orderedModels = order || toAdd; - for (var i = 0; i < orderedModels.length; i++) { - this.models.push(orderedModels[i]); - } - } + splice(this.models, toAdd, at == null ? this.length : at); + this.length = this.models.length; } // Silently sort the collection if appropriate. @@ -872,10 +907,10 @@ // Unless silenced, it's time to fire all appropriate add/sort events. if (!options.silent) { - var addOpts = at != null ? _.clone(options) : options; - for (var i = 0; i < toAdd.length; i++) { - if (at != null) addOpts.index = at + i; - (model = toAdd[i]).trigger('add', model, this, addOpts); + for (i = 0; i < toAdd.length; i++) { + if (at != null) options.index = at + i; + model = toAdd[i]; + model.trigger('add', model, this, options); } if (sort || orderChanged) this.trigger('sort', this, options); if (toAdd.length || toRemove.length) this.trigger('update', this, options); @@ -944,10 +979,7 @@ // Return models with matching attributes. Useful for simple cases of // `filter`. where: function(attrs, first) { - var matches = _.matches(attrs); - return this[first ? 'find' : 'filter'](function(model) { - return matches(model.attributes); - }); + return this[first ? 'find' : 'filter'](attrs); }, // Return the first model with matching attributes. Useful for simple cases @@ -960,16 +992,19 @@ // normal circumstances, as the set will maintain sort order as each item // is added. sort: function(options) { - if (!this.comparator) throw new Error('Cannot sort a set without a comparator'); + var comparator = this.comparator; + if (!comparator) throw new Error('Cannot sort a set without a comparator'); options || (options = {}); - // Run sort based on type of `comparator`. - if (_.isString(this.comparator) || this.comparator.length === 1) { - this.models = this.sortBy(this.comparator, this); - } else { - this.models.sort(_.bind(this.comparator, this)); - } + var length = comparator.length; + if (_.isFunction(comparator)) comparator = _.bind(comparator, this); + // Run sort based on type of `comparator`. + if (length === 1 || _.isString(comparator)) { + this.models = this.sortBy(comparator); + } else { + this.models.sort(comparator); + } if (!options.silent) this.trigger('sort', this, options); return this; }, @@ -1058,7 +1093,6 @@ }, // Internal method called by both remove and set. - // Returns removed models, or false if nothing is removed. _removeModels: function(models, options) { var removed = []; for (var i = 0; i < models.length; i++) { @@ -1128,29 +1162,16 @@ // right here: var collectionMethods = { forEach: 3, each: 3, map: 3, collect: 3, reduce: 4, foldl: 4, inject: 4, reduceRight: 4, foldr: 4, find: 3, detect: 3, filter: 3, - select: 3, reject: 3, every: 3, all: 3, some: 3, any: 3, include: 2, - contains: 2, invoke: 0, max: 3, min: 3, toArray: 1, size: 1, first: 3, + select: 3, reject: 3, every: 3, all: 3, some: 3, any: 3, include: 3, includes: 3, + contains: 3, invoke: 0, max: 3, min: 3, toArray: 1, size: 1, first: 3, head: 3, take: 3, initial: 3, rest: 3, tail: 3, drop: 3, last: 3, without: 0, difference: 0, indexOf: 3, shuffle: 1, lastIndexOf: 3, - isEmpty: 1, chain: 1, sample: 3, partition: 3 }; + isEmpty: 1, chain: 1, sample: 3, partition: 3, groupBy: 3, countBy: 3, + sortBy: 3, indexBy: 3}; // Mix in each Underscore method as a proxy to `Collection#models`. addUnderscoreMethods(Collection, collectionMethods, 'models'); - // Underscore methods that take a property name as an argument. - var attributeMethods = ['groupBy', 'countBy', 'sortBy', 'indexBy']; - - // Use attributes instead of properties. - _.each(attributeMethods, function(method) { - if (!_[method]) return; - Collection.prototype[method] = function(value, context) { - var iterator = _.isFunction(value) ? value : function(model) { - return model.get(value); - }; - return _[method](this.models, iterator, context); - }; - }); - // Backbone.View // ------------- @@ -1174,7 +1195,7 @@ // Cached regex to split keys for `delegate`. var delegateEventSplitter = /^(\S+)\s*(.*)$/; - // List of view options to be merged as properties. + // List of view options to be set as properties. var viewOptions = ['model', 'collection', 'el', 'id', 'attributes', 'className', 'tagName', 'events']; // Set up all inheritable **Backbone.View** properties and methods. @@ -1518,7 +1539,7 @@ // falls back to polling. var History = Backbone.History = function() { this.handlers = []; - _.bindAll(this, 'checkUrl'); + this.checkUrl = _.bind(this.checkUrl, this); // Ensure that `History` can be used outside of the browser. if (typeof window !== 'undefined') { @@ -1611,7 +1632,7 @@ this.options = _.extend({root: '/'}, this.options, options); this.root = this.options.root; this._wantsHashChange = this.options.hashChange !== false; - this._hasHashChange = 'onhashchange' in window; + this._hasHashChange = 'onhashchange' in window && (document.documentMode === void 0 || document.documentMode > 7); this._useHashChange = this._wantsHashChange && this._hasHashChange; this._wantsPushState = !!this.options.pushState; this._hasPushState = !!(this.history && this.history.pushState); @@ -1730,7 +1751,7 @@ // If the root doesn't match, no routes can match either. if (!this.matchRoot()) return false; fragment = this.fragment = this.getFragment(fragment); - return _.any(this.handlers, function(handler) { + return _.some(this.handlers, function(handler) { if (handler.route.test(fragment)) { handler.callback(fragment); return true; diff --git a/core/assets/vendor/ckeditor/CHANGES.md b/core/assets/vendor/ckeditor/CHANGES.md index 8b8ff47d9..db594dc6b 100644 --- a/core/assets/vendor/ckeditor/CHANGES.md +++ b/core/assets/vendor/ckeditor/CHANGES.md @@ -1,6 +1,246 @@ CKEditor 4 Changelog ==================== +## CKEditor 4.5.3 + +New Features: + +* [#13501](http://dev.ckeditor.com/ticket/13501): Added the [`config.fileTools_defaultFileName`](http://docs.ckeditor.com/#!/api/CKEDITOR.config-cfg-fileTools_defaultFileName) option to allow setting a default filen ame for paste uploads. +* [#13603](http://dev.ckeditor.com/ticket/13603): Added support for uploading dropped BMP images. + +Fixed Issues: + +* [#13590](http://dev.ckeditor.com/ticket/13590): Fixed: Various issues related to the [Paste from Word](http://ckeditor.com/addon/pastefromword) feature. Fixes also: + * [#11215](http://dev.ckeditor.com/ticket/11215), + * [#8780](http://dev.ckeditor.com/ticket/8780), + * [#12762](http://dev.ckeditor.com/ticket/12762). +* [#13386](http://dev.ckeditor.com/ticket/13386): [Edge] Fixed: Issues with selecting and editing images. +* [#13568](http://dev.ckeditor.com/ticket/13568): Fixed: The [`editor.getSelectedHtml()`](http://docs.ckeditor.com/#!/api/CKEDITOR.editor-method-getSelectedHtml) method returns invalid results for entire content selection. +* [#13453](http://dev.ckeditor.com/ticket/13453): Fixed: Drag&drop of entire editor content throws an error. +* [#13465](http://dev.ckeditor.com/ticket/13465): Fixed: Error is thrown and the widget is lost on drag&drop if it is the only content of the editor. +* [#13414](http://dev.ckeditor.com/ticket/13414): Fixed: Content auto paragraphing in a nested editable despite editor configuration. +* [#13429](http://dev.ckeditor.com/ticket/13429): Fixed: Incorrect selection after content insertion by the [Auto Embed](http://ckeditor.com/addon/autoembed) plugin. +* [#13388](http://dev.ckeditor.com/ticket/13388): Fixed: [Table Resize](http://ckeditor.com/addon/tableresize) integration with [Undo](http://ckeditor.com/addon/undo) is broken. + +Other Changes: + +* [#13637](https://dev.ckeditor.com/ticket/13637): Several icons were refactored. +* Updated [Bender.js](https://github.com/benderjs/benderjs) to 0.3.0 and introduced the ability to run tests via HTTPs ([#13265](https://dev.ckeditor.com/ticket/13265)). + +## CKEditor 4.5.2 + +Fixed Issues: + +* [#13609](http://dev.ckeditor.com/ticket/13609): [Edge] Fixed: The browser crashes when switching to the source mode. Thanks to [Andrew Williams and Mark Smeed](http://webxsolution.com/)! +* [PR#201](https://github.com/ckeditor/ckeditor-dev/pull/201): Fixed: Buttons in the toolbar configurator cause form submission. Thanks to [colemanw](https://github.com/colemanw)! +* [#13422](http://dev.ckeditor.com/ticket/13422): Fixed: A monospaced font should be used in the `");return""+encodeURIComponent(a)+""})}function m(a){return a.replace(K,function(a,b){return decodeURIComponent(b)})}function q(a){return a.replace(/<\!--(?!{cke_protected})[\s\S]+?--\>/g,function(a){return"<\!--"+ -s+"{C}"+encodeURIComponent(a).replace(/--/g,"%2D%2D")+"--\>"})}function p(a){return a.replace(/<\!--\{cke_protected\}\{C\}([\s\S]+?)--\>/g,function(a,b){return decodeURIComponent(b)})}function o(a,b){var c=b._.dataStore;return a.replace(/<\!--\{cke_protected\}([\s\S]+?)--\>/g,function(a,b){return decodeURIComponent(b)}).replace(/\{cke_protected_(\d+)\}/g,function(a,b){return c&&c[b]||""})}function n(a,b){for(var c=[],d=b.config.protectedSource,e=b._.dataStore||(b._.dataStore={id:1}),f=/<\!--\{cke_temp(comment)?\}(\d*?)--\>/g, -d=[//gi,//gi,//gi].concat(d),a=a.replace(/<\!--[\s\S]*?--\>/g,function(a){return"<\!--{cke_tempcomment}"+(c.push(a)-1)+"--\>"}),g=0;g"});a=a.replace(f,function(a,b,d){return"<\!--"+s+(b?"{C}":"")+encodeURIComponent(c[d]).replace(/--/g,"%2D%2D")+"--\>"});a=a.replace(/<\w+(?:\s+(?:(?:[^\s=>]+\s*=\s*(?:[^'"\s>]+|'[^']*'|"[^"]*"))|[^\s=>]+))+\s*>/g, -function(a){return a.replace(/<\!--\{cke_protected\}([^>]*)--\>/g,function(a,b){e[e.id]=decodeURIComponent(b);return"{cke_protected_"+e.id++ +"}"})});return a=a.replace(/<(title|iframe|textarea)([^>]*)>([\s\S]*?)<\/\1>/g,function(a,c,d,e){return"<"+c+d+">"+o(p(e),b)+""})}CKEDITOR.htmlDataProcessor=function(b){var c,d,e=this;this.editor=b;this.dataFilter=c=new CKEDITOR.htmlParser.filter;this.htmlFilter=d=new CKEDITOR.htmlParser.filter;this.writer=new CKEDITOR.htmlParser.basicWriter;c.addRules(u); -c.addRules(y,{applyToAll:true});c.addRules(a(b,"data"),{applyToAll:true});d.addRules(r);d.addRules(x,{applyToAll:true});d.addRules(a(b,"html"),{applyToAll:true});b.on("toHtml",function(a){var a=a.data,c=a.dataValue,d,c=n(c,b),c=k(c,C),c=h(c),c=k(c,F),c=c.replace(G,"$1cke:$2"),c=c.replace(E,""),c=c.replace(/(]*>)(\r\n|\n)/g,"$1$2$2"),c=c.replace(/([^a-z0-9<\-])(on\w{3,})(?!>)/gi,"$1data-cke-"+CKEDITOR.rnd+"-$2");d=a.context||b.editable().getName();var e;if(CKEDITOR.env.ie&& -CKEDITOR.env.version<9&&d=="pre"){d="div";c="
"+c+"
";e=1}d=b.document.createElement(d);d.setHtml("a"+c);c=d.getHtml().substr(1);c=c.replace(RegExp("data-cke-"+CKEDITOR.rnd+"-","ig"),"");e&&(c=c.replace(/^
|<\/pre>$/gi,""));c=c.replace(D,"$1$2");c=m(c);c=p(c);d=a.fixForBody===false?false:f(a.enterMode,b.config.autoParagraph);c=CKEDITOR.htmlParser.fragment.fromHtml(c,a.context,d);if(d){e=c;if(!e.children.length&&CKEDITOR.dtd[e.name][d]){d=new CKEDITOR.htmlParser.element(d);e.add(d)}}a.dataValue=
-c},null,null,5);b.on("toHtml",function(a){a.data.filter.applyTo(a.data.dataValue,true,a.data.dontFilter,a.data.enterMode)&&b.fire("dataFiltered")},null,null,6);b.on("toHtml",function(a){a.data.dataValue.filterChildren(e.dataFilter,true)},null,null,10);b.on("toHtml",function(a){var a=a.data,b=a.dataValue,c=new CKEDITOR.htmlParser.basicWriter;b.writeChildrenHtml(c);b=c.getHtml(true);a.dataValue=q(b)},null,null,15);b.on("toDataFormat",function(a){var c=a.data.dataValue;a.data.enterMode!=CKEDITOR.ENTER_BR&&
-(c=c.replace(/^
/i,""));a.data.dataValue=CKEDITOR.htmlParser.fragment.fromHtml(c,a.data.context,f(a.data.enterMode,b.config.autoParagraph))},null,null,5);b.on("toDataFormat",function(a){a.data.dataValue.filterChildren(e.htmlFilter,true)},null,null,10);b.on("toDataFormat",function(a){a.data.filter.applyTo(a.data.dataValue,false,true)},null,null,11);b.on("toDataFormat",function(a){var c=a.data.dataValue,d=e.writer;d.reset();c.writeChildrenHtml(d);c=d.getHtml(true);c=p(c);c=o(c,b);a.data.dataValue= -c},null,null,15)};CKEDITOR.htmlDataProcessor.prototype={toHtml:function(a,b,c,d){var e=this.editor,f,g,h;if(b&&typeof b=="object"){f=b.context;c=b.fixForBody;d=b.dontFilter;g=b.filter;h=b.enterMode}else f=b;!f&&f!==null&&(f=e.editable().getName());return e.fire("toHtml",{dataValue:a,context:f,fixForBody:c,dontFilter:d,filter:g||e.filter,enterMode:h||e.enterMode}).dataValue},toDataFormat:function(a,b){var c,d,e;if(b){c=b.context;d=b.filter;e=b.enterMode}!c&&c!==null&&(c=this.editor.editable().getName()); -return this.editor.fire("toDataFormat",{dataValue:a,filter:d||this.editor.filter,context:c,enterMode:e||this.editor.enterMode}).dataValue}};var l=/(?: |\xa0)$/,s="{cke_protected}",v=CKEDITOR.dtd,t=["caption","colgroup","col","thead","tfoot","tbody"],B=CKEDITOR.tools.extend({},v.$blockLimit,v.$block),u={elements:{input:d,textarea:d}},y={attributeNames:[[/^on/,"data-cke-pa-on"],[/^data-cke-expando$/,""]]},r={elements:{embed:function(a){var b=a.parent;if(b&&b.name=="object"){var c=b.attributes.width, -b=b.attributes.height;if(c)a.attributes.width=c;if(b)a.attributes.height=b}},a:function(a){if(!a.children.length&&!a.attributes.name&&!a.attributes["data-cke-saved-name"])return false}}},x={elementNames:[[/^cke:/,""],[/^\?xml:namespace$/,""]],attributeNames:[[/^data-cke-(saved|pa)-/,""],[/^data-cke-.*/,""],["hidefocus",""]],elements:{$:function(a){var b=a.attributes;if(b){if(b["data-cke-temp"])return false;for(var c=["name","href","src"],d,e=0;e-1&&d>-1&&c!=d)){c=a.parent?a.getIndex():-1;d=b.parent?b.getIndex():-1}return c>d?1:-1})},param:function(a){a.children=[];a.isEmpty=true;return a},span:function(a){a.attributes["class"]=="Apple-style-span"&&delete a.name},html:function(a){delete a.attributes.contenteditable;delete a.attributes["class"]},body:function(a){delete a.attributes.spellcheck; -delete a.attributes.contenteditable},style:function(a){var b=a.children[0];if(b&&b.value)b.value=CKEDITOR.tools.trim(b.value);if(!a.attributes.type)a.attributes.type="text/css"},title:function(a){var b=a.children[0];!b&&j(a,b=new CKEDITOR.htmlParser.text);b.value=a.attributes["data-cke-title"]||""},input:g,textarea:g},attributes:{"class":function(a){return CKEDITOR.tools.ltrim(a.replace(/(?:^|\s+)cke_[^\s]*/g,""))||false}}};if(CKEDITOR.env.ie)x.attributes.style=function(a){return a.replace(/(^|;)([^\:]+)/g, -function(a){return a.toLowerCase()})};var w=/<(a|area|img|input|source)\b([^>]*)>/gi,z=/([\w-]+)\s*=\s*(?:(?:"[^"]*")|(?:'[^']*')|(?:[^ "'>]+))/gi,A=/^(href|src|name)$/i,F=/(?:])[^>]*>[\s\S]*?<\/style>)|(?:<(:?link|meta|base)[^>]*>)/gi,C=/(])[^>]*>)([\s\S]*?)(?:<\/textarea>)/gi,K=/([^<]*)<\/cke:encoded>/gi,G=/(<\/?)((?:object|embed|param|html|body|head|title)[^>]*>)/gi,D=/(<\/?)cke:((?:html|body|head|title)[^>]*>)/gi,E=/]*?)\/?>(?!\s*<\/cke:\1)/gi}(), -"use strict",CKEDITOR.htmlParser.element=function(a,f){this.name=a;this.attributes=f||{};this.children=[];var c=a||"",e=c.match(/^cke:(.*)/);e&&(c=e[1]);c=!(!CKEDITOR.dtd.$nonBodyContent[c]&&!CKEDITOR.dtd.$block[c]&&!CKEDITOR.dtd.$listItem[c]&&!CKEDITOR.dtd.$tableContent[c]&&!(CKEDITOR.dtd.$nonEditable[c]||c=="br"));this.isEmpty=!!CKEDITOR.dtd.$empty[a];this.isUnknown=!CKEDITOR.dtd[a];this._={isBlockLike:c,hasInlineStarted:this.isEmpty||!c}},CKEDITOR.htmlParser.cssStyle=function(a){var f={};((a instanceof -CKEDITOR.htmlParser.element?a.attributes.style:a)||"").replace(/"/g,'"').replace(/\s*([^ :;]+)\s*:\s*([^;]+)\s*(?=;|$)/g,function(a,e,b){e=="font-family"&&(b=b.replace(/["']/g,""));f[e.toLowerCase()]=b});return{rules:f,populate:function(a){var e=this.toString();if(e)a instanceof CKEDITOR.dom.element?a.setAttribute("style",e):a instanceof CKEDITOR.htmlParser.element?a.attributes.style=e:a.style=e},toString:function(){var a=[],e;for(e in f)f[e]&&a.push(e,":",f[e],";");return a.join("")}}},function(){function a(a){return function(b){return b.type== -CKEDITOR.NODE_ELEMENT&&(typeof a=="string"?b.name==a:b.name in a)}}var f=function(a,b){a=a[0];b=b[0];return ab?1:0},c=CKEDITOR.htmlParser.fragment.prototype;CKEDITOR.htmlParser.element.prototype=CKEDITOR.tools.extend(new CKEDITOR.htmlParser.node,{type:CKEDITOR.NODE_ELEMENT,add:c.add,clone:function(){return new CKEDITOR.htmlParser.element(this.name,this.attributes)},filter:function(a,b){var c=this,f,d,b=c.getFilterContext(b);if(b.off)return true;if(!c.parent)a.onRoot(b,c);for(;;){f=c.name; -if(!(d=a.onElementName(b,f))){this.remove();return false}c.name=d;if(!(c=a.onElement(b,c))){this.remove();return false}if(c!==this){this.replaceWith(c);return false}if(c.name==f)break;if(c.type!=CKEDITOR.NODE_ELEMENT){this.replaceWith(c);return false}if(!c.name){this.replaceWithChildren();return false}}f=c.attributes;var g,h;for(g in f){h=g;for(d=f[g];;)if(h=a.onAttributeName(b,g))if(h!=g){delete f[g];g=h}else break;else{delete f[g];break}h&&((d=a.onAttribute(b,c,h,d))===false?delete f[h]:f[h]=d)}c.isEmpty|| -this.filterChildren(a,false,b);return true},filterChildren:c.filterChildren,writeHtml:function(a,b){b&&this.filter(b);var c=this.name,j=[],d=this.attributes,g,h;a.openTag(c,d);for(g in d)j.push([g,d[g]]);a.sortAttributes&&j.sort(f);g=0;for(h=j.length;g0)this.children[a-1].next=null;this.parent.add(c,this.getIndex()+1);return c},addClass:function(a){if(!this.hasClass(a)){var b=this.attributes["class"]||"";this.attributes["class"]=b+(b?" ":"")+a}},removeClass:function(a){var b=this.attributes["class"];if(b)(b= -CKEDITOR.tools.trim(b.replace(RegExp("(?:\\s+|^)"+a+"(?:\\s+|$)")," ")))?this.attributes["class"]=b:delete this.attributes["class"]},hasClass:function(a){var b=this.attributes["class"];return!b?false:RegExp("(?:^|\\s)"+a+"(?=\\s|$)").test(b)},getFilterContext:function(a){var b=[];a||(a={off:false,nonEditable:false,nestedEditable:false});!a.off&&this.attributes["data-cke-processor"]=="off"&&b.push("off",true);!a.nonEditable&&this.attributes.contenteditable=="false"?b.push("nonEditable",true):a.nonEditable&& -(!a.nestedEditable&&this.attributes.contenteditable=="true")&&b.push("nestedEditable",true);if(b.length)for(var a=CKEDITOR.tools.copy(a),c=0;c'+ -e.getValue()+"",CKEDITOR.document);a.insertAfter(e);e.hide();e.$.form&&c._attachToForm()}else c.setData(a.getHtml(),null,true);c.on("loaded",function(){c.fire("uiReady");c.editable(a);c.container=a;c.setData(c.getData(1));c.resetDirty();c.fire("contentDom");c.mode="wysiwyg";c.fire("mode");c.status="ready";c.fireOnce("instanceReady");CKEDITOR.fire("instanceReady",null,c)},null,null,1E4);c.on("destroy",function(){if(e){c.container.clearCustomData();c.container.remove();e.show()}c.element.clearCustomData(); -delete c.element});return c};CKEDITOR.inlineAll=function(){var a,f,c;for(c in CKEDITOR.dtd.$editable)for(var e=CKEDITOR.document.getElementsByTag(c),b=0,i=e.count();b"+(a.title?'{voiceLabel}':"")+'<{outerEl} class="cke_inner cke_reset" role="presentation">{topHtml}<{outerEl} id="{contentId}" class="cke_contents cke_reset" role="presentation">{bottomHtml}'), -b=CKEDITOR.dom.element.createFromHtml(h.output({id:a.id,name:b,langDir:a.lang.dir,langCode:a.langCode,voiceLabel:a.title,topHtml:d?''+d+"":"",contentId:a.ui.spaceId("contents"),bottomHtml:g?''+g+"":"",outerEl:CKEDITOR.env.ie?"span":"div"}));if(f==CKEDITOR.ELEMENT_MODE_REPLACE){c.hide();b.insertAfter(c)}else c.append(b); -a.container=b;d&&a.ui.space("top").unselectable();g&&a.ui.space("bottom").unselectable();c=a.config.width;f=a.config.height;c&&b.setStyle("width",CKEDITOR.tools.cssLength(c));f&&a.ui.space("contents").setStyle("height",CKEDITOR.tools.cssLength(f));b.disableContextMenu();CKEDITOR.env.webkit&&b.on("focus",function(){a.focus()});a.fireOnce("uiReady")}CKEDITOR.replace=function(c,b){return a(c,b,null,CKEDITOR.ELEMENT_MODE_REPLACE)};CKEDITOR.appendTo=function(c,b,f){return a(c,b,f,CKEDITOR.ELEMENT_MODE_APPENDTO)}; -CKEDITOR.replaceAll=function(){for(var a=document.getElementsByTagName("textarea"),b=0;b",h="",a=g+a.replace(f,function(){return h+g})+h}a=a.replace(/\n/g,"
");b||(a=a.replace(RegExp("
(?=)"),function(a){return e.repeat(a,2)}));a=a.replace(/^ | $/g," ");a=a.replace(/(>|\s) /g,function(a,b){return b+" "}).replace(/ (?=<)/g," ");o(this,"text",a)},insertElement:function(a,b){b?this.insertElementIntoRange(a,b):this.insertElementIntoSelection(a)},insertElementIntoRange:function(a,b){var c=this.editor,d=c.config.enterMode,e=a.getName(),f=CKEDITOR.dtd.$block[e]; -if(b.checkReadOnly())return false;b.deleteContents(1);b.startContainer.type==CKEDITOR.NODE_ELEMENT&&b.startContainer.is({tr:1,table:1,tbody:1,thead:1,tfoot:1})&&n(b);var g,h;if(f)for(;(g=b.getCommonAncestor(0,1))&&(h=CKEDITOR.dtd[g.getName()])&&(!h||!h[e]);)if(g.getName()in CKEDITOR.dtd.span)b.splitElement(g);else if(b.checkStartOfBlock()&&b.checkEndOfBlock()){b.setStartBefore(g);b.collapse(true);g.remove()}else b.splitBlock(d==CKEDITOR.ENTER_DIV?"div":"p",c.editable());b.insertNode(a);return true}, -insertElementIntoSelection:function(a){d(this);var b=this.editor,c=b.activeEnterMode,b=b.getSelection(),f=b.getRanges()[0],h=a.getName(),h=CKEDITOR.dtd.$block[h];if(this.insertElementIntoRange(a,f)){f.moveToPosition(a,CKEDITOR.POSITION_AFTER_END);if(h)if((h=a.getNext(function(a){return e(a)&&!k(a)}))&&h.type==CKEDITOR.NODE_ELEMENT&&h.is(CKEDITOR.dtd.$block))h.getDtd()["#"]?f.moveToElementEditStart(h):f.moveToElementEditEnd(a);else if(!h&&c!=CKEDITOR.ENTER_BR){h=f.fixBlock(true,c==CKEDITOR.ENTER_DIV? -"div":"p");f.moveToElementEditStart(h)}}b.selectRanges([f]);g(this)},setData:function(a,b){b||(a=this.editor.dataProcessor.toHtml(a));this.setHtml(a);this.fixInitialSelection();if(this.status=="unloaded")this.status="ready";this.editor.fire("dataReady")},getData:function(a){var b=this.getHtml();a||(b=this.editor.dataProcessor.toDataFormat(b));return b},setReadOnly:function(a){this.setAttribute("contenteditable",!a)},detach:function(){this.removeClass("cke_editable");this.status="detached";var a=this.editor; -this._.detach();delete a.document;delete a.window},isInline:function(){return this.getDocument().equals(CKEDITOR.document)},fixInitialSelection:function(){function a(){var b=c.getDocument().$,d=b.getSelection(),e;if(d.anchorNode&&d.anchorNode==c.$)e=true;else if(CKEDITOR.env.webkit){var f=c.getDocument().getActive();f&&(f.equals(c)&&!d.anchorNode)&&(e=true)}if(e){e=new CKEDITOR.dom.range(c);e.moveToElementEditStart(c);b=b.createRange();b.setStart(e.startContainer.$,e.startOffset);b.collapse(true); -d.removeAllRanges();d.addRange(b)}}function b(){var a=c.getDocument().$,d=a.selection,e=c.getDocument().getActive();if(d.type=="None"&&e.equals(c)){d=new CKEDITOR.dom.range(c);a=a.body.createTextRange();d.moveToElementEditStart(c);d=d.startContainer;d.type!=CKEDITOR.NODE_ELEMENT&&(d=d.getParent());a.moveToElementText(d.$);a.collapse(true);a.select()}}var c=this;if(CKEDITOR.env.ie&&(CKEDITOR.env.version<9||CKEDITOR.env.quirks)){if(this.hasFocus){this.focus();b()}}else if(this.hasFocus){this.focus(); -a()}else this.once("focus",function(){a()},null,null,-999)},setup:function(){var a=this.editor;this.attachListener(a,"beforeGetData",function(){var b=this.getData();this.is("textarea")||a.config.ignoreEmptyParagraph!==false&&(b=b.replace(m,function(a,b){return b}));a.setData(b,null,1)},this);this.attachListener(a,"getSnapshot",function(a){a.data=this.getData(1)},this);this.attachListener(a,"afterSetData",function(){this.setData(a.getData(1))},this);this.attachListener(a,"loadSnapshot",function(a){this.setData(a.data, -1)},this);this.attachListener(a,"beforeFocus",function(){var b=a.getSelection();(b=b&&b.getNative())&&b.type=="Control"||this.focus()},this);this.attachListener(a,"insertHtml",function(a){this.insertHtml(a.data.dataValue,a.data.mode)},this);this.attachListener(a,"insertElement",function(a){this.insertElement(a.data)},this);this.attachListener(a,"insertText",function(a){this.insertText(a.data)},this);this.setReadOnly(a.readOnly);this.attachClass("cke_editable");this.attachClass(a.elementMode==CKEDITOR.ELEMENT_MODE_INLINE? -"cke_editable_inline":a.elementMode==CKEDITOR.ELEMENT_MODE_REPLACE||a.elementMode==CKEDITOR.ELEMENT_MODE_APPENDTO?"cke_editable_themed":"");this.attachClass("cke_contents_"+a.config.contentsLangDirection);a.keystrokeHandler.blockedKeystrokes[8]=+a.readOnly;a.keystrokeHandler.attach(this);this.on("blur",function(){this.hasFocus=false},null,null,-1);this.on("focus",function(){this.hasFocus=true},null,null,-1);a.focusManager.add(this);if(this.equals(CKEDITOR.document.getActive())){this.hasFocus=true; -a.once("contentDom",function(){a.focusManager.focus(this)},this)}this.isInline()&&this.changeAttr("tabindex",a.tabIndex);if(!this.is("textarea")){a.document=this.getDocument();a.window=this.getWindow();var b=a.document;this.changeAttr("spellcheck",!a.config.disableNativeSpellChecker);var d=a.config.contentsLangDirection;this.getDirection(1)!=d&&this.changeAttr("dir",d);var f=CKEDITOR.getCss();if(f){d=b.getHead();if(!d.getCustomData("stylesheet")){f=b.appendStyleText(f);f=new CKEDITOR.dom.element(f.ownerNode|| -f.owningElement);d.setCustomData("stylesheet",f);f.data("cke-temp",1)}}d=b.getCustomData("stylesheet_ref")||0;b.setCustomData("stylesheet_ref",d+1);this.setCustomData("cke_includeReadonly",!a.config.disableReadonlyStyling);this.attachListener(this,"click",function(a){var a=a.data,b=(new CKEDITOR.dom.elementPath(a.getTarget(),this)).contains("a");b&&(a.$.button!=2&&b.isReadOnly())&&a.preventDefault()});var g={8:1,46:1};this.attachListener(a,"key",function(b){if(a.readOnly)return true;var c=b.data.domEvent.getKey(), -d;if(c in g){var b=a.getSelection(),e,f=b.getRanges()[0],h=f.startPath(),j,k,m,c=c==8;if(CKEDITOR.env.ie&&CKEDITOR.env.version<11&&(e=b.getSelectedElement())||(e=i(b))){a.fire("saveSnapshot");f.moveToPosition(e,CKEDITOR.POSITION_BEFORE_START);e.remove();f.select();a.fire("saveSnapshot");d=1}else if(f.collapsed)if((j=h.block)&&(m=j[c?"getPrevious":"getNext"](q))&&m.type==CKEDITOR.NODE_ELEMENT&&m.is("table")&&f[c?"checkStartOfBlock":"checkEndOfBlock"]()){a.fire("saveSnapshot");f[c?"checkEndOfBlock": -"checkStartOfBlock"]()&&j.remove();f["moveToElementEdit"+(c?"End":"Start")](m);f.select();a.fire("saveSnapshot");d=1}else if(h.blockLimit&&h.blockLimit.is("td")&&(k=h.blockLimit.getAscendant("table"))&&f.checkBoundaryOfElement(k,c?CKEDITOR.START:CKEDITOR.END)&&(m=k[c?"getPrevious":"getNext"](q))){a.fire("saveSnapshot");f["moveToElementEdit"+(c?"End":"Start")](m);f.checkStartOfBlock()&&f.checkEndOfBlock()?m.remove():f.select();a.fire("saveSnapshot");d=1}else if((k=h.contains(["td","th","caption"]))&& -f.checkBoundaryOfElement(k,c?CKEDITOR.START:CKEDITOR.END))d=1}return!d});a.blockless&&(CKEDITOR.env.ie&&CKEDITOR.env.needsBrFiller)&&this.attachListener(this,"keyup",function(b){if(b.data.getKeystroke()in g&&!this.getFirst(e)){this.appendBogus();b=a.createRange();b.moveToPosition(this,CKEDITOR.POSITION_AFTER_START);b.select()}});this.attachListener(this,"dblclick",function(b){if(a.readOnly)return false;b={element:b.data.getTarget()};a.fire("doubleclick",b)});CKEDITOR.env.ie&&this.attachListener(this, -"click",c);CKEDITOR.env.ie||this.attachListener(this,"mousedown",function(b){var c=b.data.getTarget();if(c.is("img","hr","input","textarea","select")&&!c.isReadOnly()){a.getSelection().selectElement(c);c.is("input","textarea","select")&&b.data.preventDefault()}});CKEDITOR.env.gecko&&this.attachListener(this,"mouseup",function(b){if(b.data.$.button==2){b=b.data.getTarget();if(!b.getOuterHtml().replace(m,"")){var c=a.createRange();c.moveToElementEditStart(b);c.select(true)}}});if(CKEDITOR.env.webkit){this.attachListener(this, -"click",function(a){a.data.getTarget().is("input","select")&&a.data.preventDefault()});this.attachListener(this,"mouseup",function(a){a.data.getTarget().is("input","textarea")&&a.data.preventDefault()})}CKEDITOR.env.webkit&&this.attachListener(a,"key",function(b){b=b.data.domEvent.getKey();if(b in g){var c=b==8,d=a.getSelection().getRanges()[0],b=d.startPath();if(d.collapsed){var e;a:{var f=b.block;if(f)if(d[c?"checkStartOfBlock":"checkEndOfBlock"]())if(!d.moveToClosestEditablePosition(f,!c)||!d.collapsed)e= -false;else{if(d.startContainer.type==CKEDITOR.NODE_ELEMENT){var i=d.startContainer.getChild(d.startOffset-(c?1:0));if(i&&i.type==CKEDITOR.NODE_ELEMENT&&i.is("hr")){a.fire("saveSnapshot");i.remove();e=true;break a}}if((d=d.startPath().block)&&(!d||!d.contains(f))){a.fire("saveSnapshot");var j;(j=(c?d:f).getBogus())&&j.remove();e=a.getSelection();j=e.createBookmarks();(c?f:d).moveChildren(c?d:f,false);b.lastElement.mergeSiblings();h(f,d,!c);e.selectBookmarks(j);e=true}}else e=false;else e=false}if(!e)return}else{c= -d;e=b.block;j=c.endPath().block;if(!e||!j||e.equals(j))b=false;else{a.fire("saveSnapshot");(f=e.getBogus())&&f.remove();c.deleteContents();if(j.getParent()){j.moveChildren(e,false);b.lastElement.mergeSiblings();h(e,j,true)}c=a.getSelection().getRanges()[0];c.collapse(1);c.select();b=true}if(!b)return}a.getSelection().scrollIntoView();a.fire("saveSnapshot");return false}},this,null,100)}}},_:{detach:function(){this.editor.setData(this.editor.getData(),0,1);this.clearListeners();this.restoreAttrs(); -var a;if(a=this.removeCustomData("classes"))for(;a.length;)this.removeClass(a.pop());if(!this.is("textarea")){a=this.getDocument();var b=a.getHead();if(b.getCustomData("stylesheet")){var c=a.getCustomData("stylesheet_ref");if(--c)a.setCustomData("stylesheet_ref",c);else{a.removeCustomData("stylesheet_ref");b.removeCustomData("stylesheet").remove()}}}this.editor.fire("contentDomUnload");delete this.editor}}});CKEDITOR.editor.prototype.editable=function(a){var b=this._.editable;if(b&&a)return 0;if(arguments.length)b= -this._.editable=a?a instanceof CKEDITOR.editable?a:new CKEDITOR.editable(this,a):(b&&b.detach(),null);return b};var k=CKEDITOR.dom.walker.bogus(),m=/(^|]*>)\s*<(p|div|address|h\d|center|pre)[^>]*>\s*(?:]*>| |\u00A0| )?\s*(:?<\/\2>)?\s*(?=$|<\/body>)/gi,q=CKEDITOR.dom.walker.whitespaces(true),p=CKEDITOR.dom.walker.bookmark(false,true);CKEDITOR.on("instanceLoaded",function(b){var c=b.editor;c.on("insertElement",function(a){a=a.data;if(a.type==CKEDITOR.NODE_ELEMENT&&(a.is("input")|| -a.is("textarea"))){a.getAttribute("contentEditable")!="false"&&a.data("cke-editable",a.hasAttribute("contenteditable")?"true":"1");a.setAttribute("contentEditable",false)}});c.on("selectionChange",function(b){if(!c.readOnly){var d=c.getSelection();if(d&&!d.isLocked){d=c.checkDirty();c.fire("lockSnapshot");a(b);c.fire("unlockSnapshot");!d&&c.resetDirty()}}})});CKEDITOR.on("instanceCreated",function(a){var b=a.editor;b.on("mode",function(){var a=b.editable();if(a&&a.isInline()){var c=b.title;a.changeAttr("role", -"textbox");a.changeAttr("aria-label",c);c&&a.changeAttr("title",c);var d=b.fire("ariaEditorHelpLabel",{}).label;if(d)if(c=this.ui.space(this.elementMode==CKEDITOR.ELEMENT_MODE_INLINE?"top":"contents")){var e=CKEDITOR.tools.getNextId(),d=CKEDITOR.dom.element.createFromHtml(''+d+"");c.append(d);a.changeAttr("aria-describedby",e)}}})});CKEDITOR.addCss(".cke_editable{cursor:text}.cke_editable img,.cke_editable input,.cke_editable textarea{cursor:default}"); -var o=function(){function a(b){return b.type==CKEDITOR.NODE_ELEMENT}function b(c,d){var e,f,g,h,j=[],k=d.range.startContainer;e=d.range.startPath();for(var k=i[k.getName()],m=0,o=c.getChildren(),n=o.count(),u=-1,B=-1,r=0,p=e.contains(i.$list);m-1)j[u].firstNotAllowed=1;if(B>-1)j[B].lastNotAllowed=1;return j}function c(b,d){var e=[],f=b.getChildren(),g=f.count(),h,j=0,k=i[d],m=!b.is(i.$inline)||b.is("br");for(m&&e.push(" ");j ",p.document);p.insertNode(E);p.setStartAfter(E)}J=new CKEDITOR.dom.elementPath(p.startContainer);n.endPath=N=new CKEDITOR.dom.elementPath(p.endContainer);if(!p.collapsed){var D=N.block||N.blockLimit,T=p.getCommonAncestor();D&&(!D.equals(T)&& -!D.contains(T)&&p.checkEndOfBlock())&&n.zombies.push(D);p.deleteContents()}for(;(H=a(p.startContainer)&&p.startContainer.getChild(p.startOffset-1))&&a(H)&&H.isBlockBoundary()&&J.contains(H);)p.moveToPosition(H,CKEDITOR.POSITION_BEFORE_END);f(p,n.blockLimit,J,N);if(E){p.setEndBefore(E);p.collapse();E.remove()}E=p.startPath();if(D=E.contains(d,false,1)){p.splitElement(D);n.inlineStylesRoot=D;n.inlineStylesPeak=E.lastElement}E=p.createBookmark();(D=E.startNode.getPrevious(e))&&a(D)&&d(D)&&G.push(D); -(D=E.startNode.getNext(e))&&a(D)&&d(D)&&G.push(D);for(D=E.startNode;(D=D.getParent())&&d(D);)G.push(D);p.moveToBookmark(E);if(E=r){E=n.range;if(n.type=="text"&&n.inlineStylesRoot){H=n.inlineStylesPeak;p=H.getDocument().createText("{cke-peak}");for(G=n.inlineStylesRoot.getParent();!H.equals(G);){p=p.appendTo(H.clone());H=H.getParent()}r=p.getOuterHtml().split("{cke-peak}").join(r)}H=n.blockLimit.getName();if(/^\s+|\s+$/.test(r)&&"span"in CKEDITOR.dtd[H])var O=' ', -r=O+r+O;r=n.editor.dataProcessor.toHtml(r,{context:null,fixForBody:false,dontFilter:n.dontFilter,filter:n.editor.activeFilter,enterMode:n.editor.activeEnterMode});H=E.document.createElement("body");H.setHtml(r);if(O){H.getFirst().remove();H.getLast().remove()}if((O=E.startPath().block)&&!(O.getChildCount()==1&&O.getBogus()))a:{var M;if(H.getChildCount()==1&&a(M=H.getFirst())&&M.is(m)){O=M.getElementsByTag("*");E=0;for(G=O.count();E0;else{I=M.startPath();if(!N.isBlock&&j(n.editor,I.block,I.blockLimit)&&(Q=n.editor.activeEnterMode!=CKEDITOR.ENTER_BR&&n.editor.config.autoParagraph!==false?n.editor.activeEnterMode==CKEDITOR.ENTER_DIV?"div":"p":false)){Q=O.createElement(Q);Q.appendBogus();M.insertNode(Q);CKEDITOR.env.needsBrFiller&&(P=Q.getBogus())&& -P.remove();M.moveToPosition(Q,CKEDITOR.POSITION_BEFORE_END)}if((I=M.startPath().block)&&!I.equals(L)){if(P=I.getBogus()){P.remove();H.push(I)}L=I}N.firstNotAllowed&&(p=1);if(p&&N.isElement){I=M.startContainer;for(R=null;I&&!i[I.getName()][N.name];){if(I.equals(r)){I=null;break}R=I;I=I.getParent()}if(I){if(R){U=M.splitElement(R);n.zombies.push(U);n.zombies.push(R)}}else{R=r.getName();X=!E;I=E==J.length-1;R=c(N.node,R);for(var V=[],S=R.length,W=0,Z=void 0,Y=0,$=-1;W0;){d=a.getItem(b);if(!CKEDITOR.tools.trim(d.getHtml())){d.appendBogus();CKEDITOR.env.ie&&(CKEDITOR.env.version<9&&d.getChildCount())&& -d.getFirst().remove()}}}return function(d){var e=d.startContainer,f=e.getAscendant("table",1),g=false;c(f.getElementsByTag("td"));c(f.getElementsByTag("th"));f=d.clone();f.setStart(e,0);f=a(f).lastBackward();if(!f){f=d.clone();f.setEndAt(e,CKEDITOR.POSITION_BEFORE_END);f=a(f).lastForward();g=true}f||(f=e);if(f.is("table")){d.setStartAt(f,CKEDITOR.POSITION_BEFORE_START);d.collapse(true);f.remove()}else{f.is({tbody:1,thead:1,tfoot:1})&&(f=b(f,"tr",g));f.is("tr")&&(f=b(f,f.getParent().is("thead")?"th": -"td",g));(e=f.getBogus())&&e.remove();d.moveToPosition(f,g?CKEDITOR.POSITION_AFTER_START:CKEDITOR.POSITION_BEFORE_END)}}}()}(),function(){function a(){var a=this._.fakeSelection,b;if(a){b=this.getSelection(1);if(!b||!b.isHidden()){a.reset();a=0}}if(!a){a=b||this.getSelection(1);if(!a||a.getType()==CKEDITOR.SELECTION_NONE)return}this.fire("selectionCheck",a);b=this.elementPath();if(!b.compare(this._.selectionPreviousPath)){if(CKEDITOR.env.webkit)this._.previousActive=this.document.getActive();this._.selectionPreviousPath= -b;this.fire("selectionChange",{selection:a,path:b})}}function f(){o=true;if(!p){c.call(this);p=CKEDITOR.tools.setTimeout(c,200,this)}}function c(){p=null;if(o){CKEDITOR.tools.setTimeout(a,0,this);o=false}}function e(a){return n(a)||a.type==CKEDITOR.NODE_ELEMENT&&!a.is(CKEDITOR.dtd.$empty)?true:false}function b(a){function b(c,d){return!c||c.type==CKEDITOR.NODE_TEXT?false:a.clone()["moveToElementEdit"+(d?"End":"Start")](c)}if(!(a.root instanceof CKEDITOR.editable))return false;var c=a.startContainer, -d=a.getPreviousNode(e,null,c),f=a.getNextNode(e,null,c);return b(d)||b(f,1)||!d&&!f&&!(c.type==CKEDITOR.NODE_ELEMENT&&c.isBlockBoundary()&&c.getBogus())?true:false}function i(a){return a.getCustomData("cke-fillingChar")}function j(a,b){var c=a&&a.removeCustomData("cke-fillingChar");if(c){if(b!==false){var e,f=a.getDocument().getSelection().getNative(),j=f&&f.type!="None"&&f.getRangeAt(0);if(c.getLength()>1&&j&&j.intersectsNode(c.$)){e=g(f);j=f.focusNode==c.$&&f.focusOffset>0;f.anchorNode==c.$&&f.anchorOffset> -0&&e[0].offset--;j&&e[1].offset--}}c.setText(d(c.getText()));e&&h(a.getDocument().$,e)}}function d(a){return a.replace(/\u200B( )?/g,function(a){return a[1]?" ":""})}function g(a){return[{node:a.anchorNode,offset:a.anchorOffset},{node:a.focusNode,offset:a.focusOffset}]}function h(a,b){var c=a.getSelection(),d=a.createRange();d.setStart(b[0].node,b[0].offset);d.collapse(true);c.removeAllRanges();c.addRange(d);c.extend(b[1].node,b[1].offset)}function k(a){var b=CKEDITOR.dom.element.createFromHtml('
 
',a.document);a.fire("lockSnapshot");a.editable().append(b);var c=a.getSelection(1),d=a.createRange(),e=c.root.on("selectionchange",function(a){a.cancel()},null,null,0);d.setStartAt(b,CKEDITOR.POSITION_AFTER_START);d.setEndAt(b,CKEDITOR.POSITION_BEFORE_END);c.selectRanges([d]);e.removeListener();a.fire("unlockSnapshot");a._.hiddenSelectionContainer=b}function m(a){var b={37:1,39:1,8:1,46:1};return function(c){var d= -c.data.getKeystroke();if(b[d]){var e=a.getSelection().getRanges(),f=e[0];if(e.length==1&&f.collapsed)if((d=f[d<38?"getPreviousEditableNode":"getNextEditableNode"]())&&d.type==CKEDITOR.NODE_ELEMENT&&d.getAttribute("contenteditable")=="false"){a.getSelection().fake(d);c.data.preventDefault();c.cancel()}}}}function q(a){for(var b=0;b=d.getLength()?h.setStartAfter(d):h.setStartBefore(d));e&&e.type==CKEDITOR.NODE_TEXT&&(g?h.setEndAfter(e):h.setEndBefore(e));d=new CKEDITOR.dom.walker(h);d.evaluator=function(d){if(d.type==CKEDITOR.NODE_ELEMENT&&d.isReadOnly()){var e=c.clone(); -c.setEndBefore(d);c.collapsed&&a.splice(b--,1);if(!(d.getPosition(h.endContainer)&CKEDITOR.POSITION_CONTAINS)){e.setStartAfter(d);e.collapsed||a.splice(b+1,0,e)}return true}return false};d.next()}}return a}var p,o,n=CKEDITOR.dom.walker.invisible(1),l=function(){function a(b){return function(a){var c=a.editor.createRange();c.moveToClosestEditablePosition(a.selected,b)&&a.editor.getSelection().selectRanges([c]);return false}}function b(a){return function(b){var c=b.editor,d=c.createRange(),e;if(!(e= -d.moveToClosestEditablePosition(b.selected,a)))e=d.moveToClosestEditablePosition(b.selected,!a);e&&c.getSelection().selectRanges([d]);c.fire("saveSnapshot");b.selected.remove();if(!e){d.moveToElementEditablePosition(c.editable());c.getSelection().selectRanges([d])}c.fire("saveSnapshot");return false}}var c=a(),d=a(1);return{37:c,38:c,39:d,40:d,8:b(),46:b(1)}}();CKEDITOR.on("instanceCreated",function(b){function c(){var a=d.getSelection();a&&a.removeAllRanges()}var d=b.editor;d.on("contentDom",function(){function b(){n= -new CKEDITOR.dom.selection(d.getSelection());n.lock()}function c(){g.removeListener("mouseup",c);k.removeListener("mouseup",c);var a=CKEDITOR.document.$.selection,b=a.createRange();a.type!="None"&&b.parentElement().ownerDocument==e.$&&b.select()}var e=d.document,g=CKEDITOR.document,h=d.editable(),i=e.getBody(),k=e.getDocumentElement(),l=h.isInline(),o,n;CKEDITOR.env.gecko&&h.attachListener(h,"focus",function(a){a.removeListener();if(o!==0)if((a=d.getSelection().getNative())&&a.isCollapsed&&a.anchorNode== -h.$){a=d.createRange();a.moveToElementEditStart(h);a.select()}},null,null,-2);h.attachListener(h,CKEDITOR.env.webkit?"DOMFocusIn":"focus",function(){o&&CKEDITOR.env.webkit&&(o=d._.previousActive&&d._.previousActive.equals(e.getActive()));d.unlockSelection(o);o=0},null,null,-1);h.attachListener(h,"mousedown",function(){o=0});if(CKEDITOR.env.ie||l){s?h.attachListener(h,"beforedeactivate",b,null,null,-1):h.attachListener(d,"selectionCheck",b,null,null,-1);h.attachListener(h,CKEDITOR.env.webkit?"DOMFocusOut": -"blur",function(){d.lockSelection(n);o=1},null,null,-1);h.attachListener(h,"mousedown",function(){o=0})}if(CKEDITOR.env.ie&&!l){var p;h.attachListener(h,"mousedown",function(a){if(a.data.$.button==2){a=d.document.getSelection();if(!a||a.getType()==CKEDITOR.SELECTION_NONE)p=d.window.getScrollPosition()}});h.attachListener(h,"mouseup",function(a){if(a.data.$.button==2&&p){d.document.$.documentElement.scrollLeft=p.x;d.document.$.documentElement.scrollTop=p.y}p=null});if(e.$.compatMode!="BackCompat"){if(CKEDITOR.env.ie7Compat|| -CKEDITOR.env.ie6Compat)k.on("mousedown",function(a){function b(a){a=a.data.$;if(d){var c=i.$.createTextRange();try{c.moveToPoint(a.clientX,a.clientY)}catch(e){}d.setEndPoint(f.compareEndPoints("StartToStart",c)<0?"EndToEnd":"StartToStart",c);d.select()}}function c(){k.removeListener("mousemove",b);g.removeListener("mouseup",c);k.removeListener("mouseup",c);d.select()}a=a.data;if(a.getTarget().is("html")&&a.$.y7&&CKEDITOR.env.version<11)k.on("mousedown",function(a){if(a.data.getTarget().is("html")){g.on("mouseup",c);k.on("mouseup",c)}})}}h.attachListener(h,"selectionchange",a,d);h.attachListener(h,"keyup",f,d);h.attachListener(h,CKEDITOR.env.webkit?"DOMFocusIn":"focus",function(){d.forceNextSelectionCheck();d.selectionChange(1)});if(l&&(CKEDITOR.env.webkit||CKEDITOR.env.gecko)){var q; -h.attachListener(h,"mousedown",function(){q=1});h.attachListener(e.getDocumentElement(),"mouseup",function(){q&&f.call(d);q=0})}else h.attachListener(CKEDITOR.env.ie?h:e.getDocumentElement(),"mouseup",f,d);CKEDITOR.env.webkit&&h.attachListener(e,"keydown",function(a){switch(a.data.getKey()){case 13:case 33:case 34:case 35:case 36:case 37:case 39:case 8:case 45:case 46:j(h)}},null,null,-1);h.attachListener(h,"keydown",m(d),null,null,-1)});d.on("setData",function(){d.unlockSelection();CKEDITOR.env.webkit&& -c()});d.on("contentDomUnload",function(){d.unlockSelection()});if(CKEDITOR.env.ie9Compat)d.on("beforeDestroy",c,null,null,9);d.on("dataReady",function(){delete d._.fakeSelection;delete d._.hiddenSelectionContainer;d.selectionChange(1)});d.on("loadSnapshot",function(){var a=CKEDITOR.dom.walker.nodeType(CKEDITOR.NODE_ELEMENT),b=d.editable().getLast(a);if(b&&b.hasAttribute("data-cke-hidden-sel")){b.remove();if(CKEDITOR.env.gecko)(a=d.editable().getFirst(a))&&(a.is("br")&&a.getAttribute("_moz_editor_bogus_node"))&& -a.remove()}},null,null,100);d.on("key",function(a){if(d.mode=="wysiwyg"){var b=d.getSelection();if(b.isFake){var c=l[a.data.keyCode];if(c)return c({editor:d,selected:b.getSelectedElement(),selection:b,keyEvent:a})}}})});CKEDITOR.on("instanceReady",function(a){function b(){var a=e.editable();if(a)if(a=i(a)){var c=e.document.$.getSelection();if(c.type!="None"&&(c.anchorNode==a.$||c.focusNode==a.$))k=g(c);f=a.getText();a.setText(d(f))}}function c(){var a=e.editable();if(a)if(a=i(a)){a.setText(f);if(k){h(e.document.$, -k);k=null}}}var e=a.editor,f,k;if(CKEDITOR.env.webkit){e.on("selectionChange",function(){var a=e.editable(),b=i(a);b&&(b.getCustomData("ready")?j(a):b.setCustomData("ready",1))},null,null,-1);e.on("beforeSetMode",function(){j(e.editable())},null,null,-1);e.on("beforeUndoImage",b);e.on("afterUndoImage",c);e.on("beforeGetData",b,null,null,0);e.on("getData",c)}});CKEDITOR.editor.prototype.selectionChange=function(b){(b?a:f).call(this)};CKEDITOR.editor.prototype.getSelection=function(a){if((this._.savedSelection|| -this._.fakeSelection)&&!a)return this._.savedSelection||this._.fakeSelection;return(a=this.editable())&&this.mode=="wysiwyg"?new CKEDITOR.dom.selection(a):null};CKEDITOR.editor.prototype.lockSelection=function(a){a=a||this.getSelection(1);if(a.getType()!=CKEDITOR.SELECTION_NONE){!a.isLocked&&a.lock();this._.savedSelection=a;return true}return false};CKEDITOR.editor.prototype.unlockSelection=function(a){var b=this._.savedSelection;if(b){b.unlock(a);delete this._.savedSelection;return true}return false}; -CKEDITOR.editor.prototype.forceNextSelectionCheck=function(){delete this._.selectionPreviousPath};CKEDITOR.dom.document.prototype.getSelection=function(){return new CKEDITOR.dom.selection(this)};CKEDITOR.dom.range.prototype.select=function(){var a=this.root instanceof CKEDITOR.editable?this.root.editor.getSelection():new CKEDITOR.dom.selection(this.root);a.selectRanges([this]);return a};CKEDITOR.SELECTION_NONE=1;CKEDITOR.SELECTION_TEXT=2;CKEDITOR.SELECTION_ELEMENT=3;var s=typeof window.getSelection!= -"function",v=1;CKEDITOR.dom.selection=function(a){if(a instanceof CKEDITOR.dom.selection)var b=a,a=a.root;var c=a instanceof CKEDITOR.dom.element;this.rev=b?b.rev:v++;this.document=a instanceof CKEDITOR.dom.document?a:a.getDocument();this.root=c?a:this.document.getBody();this.isLocked=0;this._={cache:{}};if(b){CKEDITOR.tools.extend(this._.cache,b._.cache);this.isFake=b.isFake;this.isLocked=b.isLocked;return this}var a=this.getNative(),d,e;if(a)if(a.getRangeAt)d=(e=a.rangeCount&&a.getRangeAt(0))&& -new CKEDITOR.dom.node(e.commonAncestorContainer);else{try{e=a.createRange()}catch(f){}d=e&&CKEDITOR.dom.element.get(e.item&&e.item(0)||e.parentElement())}if(!d||!(d.type==CKEDITOR.NODE_ELEMENT||d.type==CKEDITOR.NODE_TEXT)||!this.root.equals(d)&&!this.root.contains(d)){this._.cache.type=CKEDITOR.SELECTION_NONE;this._.cache.startElement=null;this._.cache.selectedElement=null;this._.cache.selectedText="";this._.cache.ranges=new CKEDITOR.dom.rangeList}return this};var t={img:1,hr:1,li:1,table:1,tr:1, -td:1,th:1,embed:1,object:1,ol:1,ul:1,a:1,input:1,form:1,select:1,textarea:1,button:1,fieldset:1,thead:1,tfoot:1};CKEDITOR.dom.selection.prototype={getNative:function(){return this._.cache.nativeSel!==void 0?this._.cache.nativeSel:this._.cache.nativeSel=s?this.document.$.selection:this.document.getWindow().$.getSelection()},getType:s?function(){var a=this._.cache;if(a.type)return a.type;var b=CKEDITOR.SELECTION_NONE;try{var c=this.getNative(),d=c.type;if(d=="Text")b=CKEDITOR.SELECTION_TEXT;if(d=="Control")b= -CKEDITOR.SELECTION_ELEMENT;if(c.createRange().parentElement())b=CKEDITOR.SELECTION_TEXT}catch(e){}return a.type=b}:function(){var a=this._.cache;if(a.type)return a.type;var b=CKEDITOR.SELECTION_TEXT,c=this.getNative();if(!c||!c.rangeCount)b=CKEDITOR.SELECTION_NONE;else if(c.rangeCount==1){var c=c.getRangeAt(0),d=c.startContainer;if(d==c.endContainer&&d.nodeType==1&&c.endOffset-c.startOffset==1&&t[d.childNodes[c.startOffset].nodeName.toLowerCase()])b=CKEDITOR.SELECTION_ELEMENT}return a.type=b},getRanges:function(){var a= -s?function(){function a(b){return(new CKEDITOR.dom.node(b)).getIndex()}var b=function(b,c){b=b.duplicate();b.collapse(c);var d=b.parentElement();if(!d.hasChildNodes())return{container:d,offset:0};for(var e=d.children,f,h,g=b.duplicate(),j=0,k=e.length-1,i=-1,l,m;j<=k;){i=Math.floor((j+k)/2);f=e[i];g.moveToElementText(f);l=g.compareEndPoints("StartToStart",b);if(l>0)k=i-1;else if(l<0)j=i+1;else return{container:d,offset:a(f)}}if(i==-1||i==e.length-1&&l<0){g.moveToElementText(d);g.setEndPoint("StartToStart", -b);g=g.text.replace(/(\r\n|\r)/g,"\n").length;e=d.childNodes;if(!g){f=e[e.length-1];return f.nodeType!=CKEDITOR.NODE_TEXT?{container:d,offset:e.length}:{container:f,offset:f.nodeValue.length}}for(d=e.length;g>0&&d>0;){h=e[--d];if(h.nodeType==CKEDITOR.NODE_TEXT){m=h;g=g-h.nodeValue.length}}return{container:m,offset:-g}}g.collapse(l>0?true:false);g.setEndPoint(l>0?"StartToStart":"EndToStart",b);g=g.text.replace(/(\r\n|\r)/g,"\n").length;if(!g)return{container:d,offset:a(f)+(l>0?0:1)};for(;g>0;)try{h= -f[l>0?"previousSibling":"nextSibling"];if(h.nodeType==CKEDITOR.NODE_TEXT){g=g-h.nodeValue.length;m=h}f=h}catch(o){return{container:d,offset:a(f)}}return{container:m,offset:l>0?-g:m.nodeValue.length+g}};return function(){var a=this.getNative(),c=a&&a.createRange(),d=this.getType();if(!a)return[];if(d==CKEDITOR.SELECTION_TEXT){a=new CKEDITOR.dom.range(this.root);d=b(c,true);a.setStart(new CKEDITOR.dom.node(d.container),d.offset);d=b(c);a.setEnd(new CKEDITOR.dom.node(d.container),d.offset);a.endContainer.getPosition(a.startContainer)& -CKEDITOR.POSITION_PRECEDING&&a.endOffset<=a.startContainer.getIndex()&&a.collapse();return[a]}if(d==CKEDITOR.SELECTION_ELEMENT){for(var d=[],e=0;e1){g=a[a.length-1];a[0].setEnd(g.endContainer,g.endOffset)}g=a[0];var a=g.collapsed,k,l,m;if((d=g.getEnclosedNode())&&d.type== -CKEDITOR.NODE_ELEMENT&&d.getName()in t&&(!d.is("a")||!d.getText()))try{m=d.$.createControlRange();m.addElement(d.$);m.select();return}catch(o){}if(g.startContainer.type==CKEDITOR.NODE_ELEMENT&&g.startContainer.getName()in c||g.endContainer.type==CKEDITOR.NODE_ELEMENT&&g.endContainer.getName()in c){g.shrink(CKEDITOR.NODE_ELEMENT,true);a=g.collapsed}m=g.createBookmark();c=m.startNode;if(!a)f=m.endNode;m=g.document.$.body.createTextRange();m.moveToElementText(c.$);m.moveStart("character",1);if(f){h= -g.document.$.body.createTextRange();h.moveToElementText(f.$);m.setEndPoint("EndToEnd",h);m.moveEnd("character",-1)}else{k=c.getNext(i);l=c.hasAscendant("pre");k=!(k&&k.getText&&k.getText().match(h))&&(l||!c.hasPrevious()||c.getPrevious().is&&c.getPrevious().is("br"));l=g.document.createElement("span");l.setHtml("");l.insertBefore(c);k&&g.document.createText("").insertBefore(c)}g.setStartBefore(c);c.remove();if(a){if(k){m.moveStart("character",-1);m.select();g.document.$.selection.clear()}else m.select(); -g.moveToPosition(l,CKEDITOR.POSITION_BEFORE_START);l.remove()}else{g.setEndBefore(f);f.remove();m.select()}}else{f=this.getNative();if(!f)return;this.removeAllRanges();for(m=0;m= -0){g.collapse(1);l.setEnd(g.endContainer.$,g.endOffset)}else throw n;}f.addRange(l)}}this.reset();this.root.fire("selectionchange")}}},fake:function(a){var b=this.root.editor;this.reset();k(b);var c=this._.cache,d=new CKEDITOR.dom.range(this.root);d.setStartBefore(a);d.setEndAfter(a);c.ranges=new CKEDITOR.dom.rangeList(d);c.selectedElement=c.startElement=a;c.type=CKEDITOR.SELECTION_ELEMENT;c.selectedText=c.nativeSel=null;this.isFake=1;this.rev=v++;b._.fakeSelection=this;this.root.fire("selectionchange")}, -isHidden:function(){var a=this.getCommonAncestor();a&&a.type==CKEDITOR.NODE_TEXT&&(a=a.getParent());return!(!a||!a.data("cke-hidden-sel"))},createBookmarks:function(a){a=this.getRanges().createBookmarks(a);this.isFake&&(a.isFake=1);return a},createBookmarks2:function(a){a=this.getRanges().createBookmarks2(a);this.isFake&&(a.isFake=1);return a},selectBookmarks:function(a){for(var b=[],c=0;c]*>)[ \t\r\n]*/gi,"$1");f=f.replace(/([ \t\n\r]+| )/g, -" ");f=f.replace(/]*>/gi,"\n");if(CKEDITOR.env.ie){var g=a.getDocument().createElement("div");g.append(e);e.$.outerHTML="
"+f+"
";e.copyAttributes(g.getFirst());e=g.getFirst().remove()}else e.setHtml(f);b=e}else f?b=m(c?[a.getHtml()]:h(a),b):a.moveChildren(b);b.replace(a);if(d){var c=b,j;if((j=c.getPrevious(A))&&j.type==CKEDITOR.NODE_ELEMENT&&j.is("pre")){d=k(j.getHtml(),/\n$/,"")+"\n\n"+k(c.getHtml(),/^\n/,"");CKEDITOR.env.ie?c.$.outerHTML="
"+d+"
":c.setHtml(d);j.remove()}}else c&& -n(b)}function h(a){var b=[];k(a.getOuterHtml(),/(\S\s*)\n(?:\s|(]+data-cke-bookmark.*?\/span>))*\n(?!$)/gi,function(a,b,c){return b+"
"+c+"
"}).replace(/([\s\S]*?)<\/pre>/gi,function(a,c){b.push(c)});return b}function k(a,b,c){var d="",e="",a=a.replace(/(^]+data-cke-bookmark.*?\/span>)|(]+data-cke-bookmark.*?\/span>$)/gi,function(a,b,c){b&&(d=b);c&&(e=c);return""});return d+a.replace(b,c)+e}function m(a,b){var c;a.length>1&&(c=new CKEDITOR.dom.documentFragment(b.getDocument()));
-for(var d=0;d"),e=e.replace(/[ \t]{2,}/g,function(a){return CKEDITOR.tools.repeat(" ",a.length-1)+" "});if(c){var f=b.clone();f.setHtml(e);c.append(f)}else b.setHtml(e)}return c||b}function q(a,b){var c=this._.definition,
-d=c.attributes,c=c.styles,e=t(this)[a.getName()],f=CKEDITOR.tools.isEmpty(d)&&CKEDITOR.tools.isEmpty(c),g;for(g in d)if(!((g=="class"||this._.definition.fullMatch)&&a.getAttribute(g)!=B(g,d[g]))&&!(b&&g.slice(0,5)=="data-")){f=a.hasAttribute(g);a.removeAttribute(g)}for(var h in c)if(!(this._.definition.fullMatch&&a.getStyle(h)!=B(h,c[h],true))){f=f||!!a.getStyle(h);a.removeStyle(h)}o(a,e,y[a.getName()]);f&&(this._.definition.alwaysRemoveElement?n(a,1):!CKEDITOR.dtd.$block[a.getName()]||this._.enterMode==
-CKEDITOR.ENTER_BR&&!a.hasAttributes()?n(a):a.renameNode(this._.enterMode==CKEDITOR.ENTER_P?"p":"div"))}function p(a){for(var b=t(this),c=a.getElementsByTag(this.element),d,e=c.count();--e>=0;){d=c.getItem(e);d.isReadOnly()||q.call(this,d,true)}for(var f in b)if(f!=this.element){c=a.getElementsByTag(f);for(e=c.count()-1;e>=0;e--){d=c.getItem(e);d.isReadOnly()||o(d,b[f])}}}function o(a,b,c){if(b=b&&b.attributes)for(var d=0;d",a||b.name,"");return c.join("")},getDefinition:function(){return this._.definition}};CKEDITOR.style.getStyleText=function(a){var b=a._ST;if(b)return b;var b=a.styles,c=
-a.attributes&&a.attributes.style||"",d="";c.length&&(c=c.replace(x,";"));for(var e in b){var f=b[e],g=(e+":"+f).replace(x,";");f=="inherit"?d=d+g:c=c+g}c.length&&(c=CKEDITOR.tools.normalizeCssText(c,true));return a._ST=c+d};CKEDITOR.style.customHandlers={};CKEDITOR.style.addCustomHandler=function(a){var b=function(a){this._={definition:a};this.setup&&this.setup(a)};b.prototype=CKEDITOR.tools.extend(CKEDITOR.tools.prototypedCopy(CKEDITOR.style.prototype),{assignedTo:CKEDITOR.STYLE_OBJECT},a,true);
-return this.customHandlers[a.type]=b};var F=CKEDITOR.POSITION_PRECEDING|CKEDITOR.POSITION_IDENTICAL|CKEDITOR.POSITION_IS_CONTAINED,C=CKEDITOR.POSITION_FOLLOWING|CKEDITOR.POSITION_IDENTICAL|CKEDITOR.POSITION_IS_CONTAINED}(),CKEDITOR.styleCommand=function(a,f){this.requiredContent=this.allowedContent=this.style=a;CKEDITOR.tools.extend(this,f,true)},CKEDITOR.styleCommand.prototype.exec=function(a){a.focus();this.state==CKEDITOR.TRISTATE_OFF?a.applyStyle(this.style):this.state==CKEDITOR.TRISTATE_ON&&
-a.removeStyle(this.style)},CKEDITOR.stylesSet=new CKEDITOR.resourceManager("","stylesSet"),CKEDITOR.addStylesSet=CKEDITOR.tools.bind(CKEDITOR.stylesSet.add,CKEDITOR.stylesSet),CKEDITOR.loadStylesSet=function(a,f,c){CKEDITOR.stylesSet.addExternal(a,f,"");CKEDITOR.stylesSet.load(a,c)},CKEDITOR.tools.extend(CKEDITOR.editor.prototype,{attachStyleStateChange:function(a,f){var c=this._.styleStateChangeCallbacks;if(!c){c=this._.styleStateChangeCallbacks=[];this.on("selectionChange",function(a){for(var b=
-0;b"}}),"use strict",function(){var a={},f={},c;for(c in CKEDITOR.dtd.$blockLimit)c in CKEDITOR.dtd.$list||(a[c]=1);for(c in CKEDITOR.dtd.$block)c in CKEDITOR.dtd.$blockLimit||c in CKEDITOR.dtd.$empty||(f[c]=1);CKEDITOR.dom.elementPath=function(c,b){var i=null,j=null,d=[],g=c,h,b=b||c.getDocument().getBody();do if(g.type==CKEDITOR.NODE_ELEMENT){d.push(g);if(!this.lastElement){this.lastElement=g;if(g.is(CKEDITOR.dtd.$object)||g.getAttribute("contenteditable")=="false")continue}if(g.equals(b))break;
-if(!j){h=g.getName();g.getAttribute("contenteditable")=="true"?j=g:!i&&f[h]&&(i=g);if(a[h]){var k;if(k=!i){if(h=h=="div"){a:{h=g.getChildren();k=0;for(var m=h.count();k-1}:typeof a=="function"?e=a:typeof a=="object"&&(e=function(b){return b.getName()in a});var b=this.elements,i=b.length;f&&i--;if(c){b=Array.prototype.slice.call(b,
-0);b.reverse()}for(f=0;f=e){i=b.createText("");i.insertAfter(this)}else{a=b.createText("");a.insertAfter(i);a.remove()}return i},substring:function(a,
-f){return typeof f!="number"?this.$.nodeValue.substr(a):this.$.nodeValue.substring(a,f)}}),function(){function a(a,e,b){var f=a.serializable,j=e[b?"endContainer":"startContainer"],d=b?"endOffset":"startOffset",g=f?e.document.getById(a.startNode):a.startNode,a=f?e.document.getById(a.endNode):a.endNode;if(j.equals(g.getPrevious())){e.startOffset=e.startOffset-j.getLength()-a.getPrevious().getLength();j=a.getNext()}else if(j.equals(a.getPrevious())){e.startOffset=e.startOffset-j.getLength();j=a.getNext()}j.equals(g.getParent())&&
-e[d]++;j.equals(a.getParent())&&e[d]++;e[b?"endContainer":"startContainer"]=j;return e}CKEDITOR.dom.rangeList=function(a){if(a instanceof CKEDITOR.dom.rangeList)return a;a?a instanceof CKEDITOR.dom.range&&(a=[a]):a=[];return CKEDITOR.tools.extend(a,f)};var f={createIterator:function(){var a=this,e=CKEDITOR.dom.walker.bookmark(),b=[],f;return{getNextRange:function(j){f=f===void 0?0:f+1;var d=a[f];if(d&&a.length>1){if(!f)for(var g=a.length-1;g>=0;g--)b.unshift(a[g].createBookmark(true));if(j)for(var h=
-0;a[f+h+1];){for(var k=d.document,j=0,g=k.getById(b[h].endNode),k=k.getById(b[h+1].startNode);;){g=g.getNextSourceNode(false);if(k.equals(g))j=1;else if(e(g)||g.type==CKEDITOR.NODE_ELEMENT&&g.isBlockBoundary())continue;break}if(!j)break;h++}for(d.moveToBookmark(b.shift());h--;){g=a[++f];g.moveToBookmark(b.shift());d.setEnd(g.endContainer,g.endOffset)}}return d}}},createBookmarks:function(c){for(var e=[],b,f=0;fb?-1:1}),e=
-0,f;e',CKEDITOR.document);a.appendTo(CKEDITOR.document.getHead());try{var f=a.getComputedStyle("border-top-color"),
-c=a.getComputedStyle("border-right-color");CKEDITOR.env.hc=!!(f&&f==c)}catch(e){CKEDITOR.env.hc=false}a.remove()}if(CKEDITOR.env.hc)CKEDITOR.env.cssClass=CKEDITOR.env.cssClass+" cke_hc";CKEDITOR.document.appendStyleText(".cke{visibility:hidden;}");CKEDITOR.status="loaded";CKEDITOR.fireOnce("loaded");if(a=CKEDITOR._.pending){delete CKEDITOR._.pending;for(f=0;f0)for(var g=0;g=0;b--)if(a==m[b].name){m.splice(b,1);return}for(var g=[],e=[],d=u;d!=p&&d.name!=a;){d._.isBlockLike||e.unshift(d);g.push(d);d=d.returnPoint||d.parent}if(d!=
+p){for(b=0;b0?this.children[b-1]:null;if(d){if(a._.isBlockLike&&d.type==CKEDITOR.NODE_TEXT){d.value=CKEDITOR.tools.rtrim(d.value);if(d.value.length===
+0){this.children.pop();this.add(a);return}}d.next=a}a.previous=d;a.parent=this;this.children.splice(b,0,a);if(!this._.hasInlineStarted)this._.hasInlineStarted=a.type==CKEDITOR.NODE_TEXT||a.type==CKEDITOR.NODE_ELEMENT&&!a._.isBlockLike},filter:function(a,b){b=this.getFilterContext(b);a.onRoot(b,this);this.filterChildren(a,false,b)},filterChildren:function(a,b,d){if(this.childrenFilteredBy!=a.id){d=this.getFilterContext(d);if(b&&!this.parent)a.onRoot(d,this);this.childrenFilteredBy=a.id;for(b=0;b=0&&a
+7||e.name in CKEDITOR.dtd.tr||e.name in CKEDITOR.dtd.$listItem))h=false;else{h=b(e);h=!h||e.name=="form"&&h.name=="input"}h&&e.add(g(a))}}}function i(a,c){if((!l||CKEDITOR.env.needsBrFiller)&&a.type==CKEDITOR.NODE_ELEMENT&&a.name=="br"&&!a.attributes["data-cke-eol"])return true;var b;if(a.type==CKEDITOR.NODE_TEXT&&(b=a.value.match(m))){if(b.index){(new CKEDITOR.htmlParser.text(a.value.substring(0,b.index))).insertBefore(a);a.value=b[0]}if(!CKEDITOR.env.needsBrFiller&&l&&(!c||a.parent.name in t))return true;
+if(!l)if((b=a.previous)&&b.name=="br"||!b||k(b))return true}return false}var f={elements:{}},l=c=="html",t=CKEDITOR.tools.extend({},v),E;for(E in t)"#"in u[E]||delete t[E];for(E in t)f.elements[E]=e(l,a.config.fillEmptyBlocks);f.root=e(l,false);f.elements.br=function(a){return function(c){if(c.parent.type!=CKEDITOR.NODE_DOCUMENT_FRAGMENT){var b=c.attributes;if("data-cke-bogus"in b||"data-cke-eol"in b)delete b["data-cke-bogus"];else{for(b=c.next;b&&h(b);)b=b.next;var e=d(c);!b&&k(c.parent)?j(c.parent,
+g(a)):k(b)&&(e&&!k(e))&&g(a).insertBefore(b)}}}}(l);return f}function f(a,c){return a!=CKEDITOR.ENTER_BR&&c!==false?a==CKEDITOR.ENTER_DIV?"div":"p":false}function b(a){for(a=a.children[a.children.length-1];a&&h(a);)a=a.previous;return a}function d(a){for(a=a.previous;a&&h(a);)a=a.previous;return a}function h(a){return a.type==CKEDITOR.NODE_TEXT&&!CKEDITOR.tools.trim(a.value)||a.type==CKEDITOR.NODE_ELEMENT&&a.attributes["data-cke-bookmark"]}function k(a){return a&&(a.type==CKEDITOR.NODE_ELEMENT&&a.name in
+v||a.type==CKEDITOR.NODE_DOCUMENT_FRAGMENT)}function j(a,c){var b=a.children[a.children.length-1];a.children.push(c);c.parent=a;if(b){b.next=c;c.previous=b}}function i(a){a=a.attributes;a.contenteditable!="false"&&(a["data-cke-editable"]=a.contenteditable?"true":1);a.contenteditable="false"}function e(a){a=a.attributes;switch(a["data-cke-editable"]){case "true":a.contenteditable="true";break;case "1":delete a.contenteditable}}function c(a){return a.replace(x,function(a,c,b){return"<"+c+b.replace(B,
+function(a,c){return A.test(c)&&b.indexOf("data-cke-saved-"+c)==-1?" data-cke-saved-"+a+" data-cke-"+CKEDITOR.rnd+"-"+a:a})+">"})}function g(a,c){return a.replace(c,function(a,c,b){a.indexOf("/g,">")+"");return""+encodeURIComponent(a)+""})}function l(a){return a.replace(J,function(a,c){return decodeURIComponent(c)})}function q(a){return a.replace(/<\!--(?!{cke_protected})[\s\S]+?--\>/g,function(a){return"<\!--"+
+r+"{C}"+encodeURIComponent(a).replace(/--/g,"%2D%2D")+"--\>"})}function n(a){return a.replace(/<\!--\{cke_protected\}\{C\}([\s\S]+?)--\>/g,function(a,c){return decodeURIComponent(c)})}function o(a,c){var b=c._.dataStore;return a.replace(/<\!--\{cke_protected\}([\s\S]+?)--\>/g,function(a,c){return decodeURIComponent(c)}).replace(/\{cke_protected_(\d+)\}/g,function(a,c){return b&&b[c]||""})}function p(a,c){for(var b=[],g=c.config.protectedSource,e=c._.dataStore||(c._.dataStore={id:1}),d=/<\!--\{cke_temp(comment)?\}(\d*?)--\>/g,
+g=[/|$)/gi,//gi,//gi].concat(g),a=a.replace(/<\!--[\s\S]*?--\>/g,function(a){return"<\!--{cke_tempcomment}"+(b.push(a)-1)+"--\>"}),h=0;h"});a=a.replace(d,function(a,c,g){return"<\!--"+r+(c?"{C}":"")+encodeURIComponent(b[g]).replace(/--/g,"%2D%2D")+"--\>"});a=a.replace(/<\w+(?:\s+(?:(?:[^\s=>]+\s*=\s*(?:[^'"\s>]+|'[^']*'|"[^"]*"))|[^\s=\/>]+))+\s*\/?>/g,
+function(a){return a.replace(/<\!--\{cke_protected\}([^>]*)--\>/g,function(a,c){e[e.id]=decodeURIComponent(c);return"{cke_protected_"+e.id++ +"}"})});return a=a.replace(/<(title|iframe|textarea)([^>]*)>([\s\S]*?)<\/\1>/g,function(a,b,g,e){return"<"+b+g+">"+o(n(e),c)+""})}CKEDITOR.htmlDataProcessor=function(b){var e,d,h=this;this.editor=b;this.dataFilter=e=new CKEDITOR.htmlParser.filter;this.htmlFilter=d=new CKEDITOR.htmlParser.filter;this.writer=new CKEDITOR.htmlParser.basicWriter;e.addRules(w);
+e.addRules(t,{applyToAll:true});e.addRules(a(b,"data"),{applyToAll:true});d.addRules(s);d.addRules(z,{applyToAll:true});d.addRules(a(b,"html"),{applyToAll:true});b.on("toHtml",function(a){var a=a.data,e=a.dataValue,d,e=p(e,b),e=g(e,C),e=c(e),e=g(e,D),e=e.replace(E,"$1cke:$2"),e=e.replace(M,""),e=e.replace(/(]*>)(\r\n|\n)/g,"$1$2$2"),e=e.replace(/([^a-z0-9<\-])(on\w{3,})(?!>)/gi,"$1data-cke-"+CKEDITOR.rnd+"-$2");d=a.context||b.editable().getName();var h;if(CKEDITOR.env.ie&&
+CKEDITOR.env.version<9&&d=="pre"){d="div";e="
"+e+"
";h=1}d=b.document.createElement(d);d.setHtml("a"+e);e=d.getHtml().substr(1);e=e.replace(RegExp("data-cke-"+CKEDITOR.rnd+"-","ig"),"");h&&(e=e.replace(/^
|<\/pre>$/gi,""));e=e.replace(F,"$1$2");e=l(e);e=n(e);d=a.fixForBody===false?false:f(a.enterMode,b.config.autoParagraph);e=CKEDITOR.htmlParser.fragment.fromHtml(e,a.context,d);if(d){h=e;if(!h.children.length&&CKEDITOR.dtd[h.name][d]){d=new CKEDITOR.htmlParser.element(d);h.add(d)}}a.dataValue=
+e},null,null,5);b.on("toHtml",function(a){a.data.filter.applyTo(a.data.dataValue,true,a.data.dontFilter,a.data.enterMode)&&b.fire("dataFiltered")},null,null,6);b.on("toHtml",function(a){a.data.dataValue.filterChildren(h.dataFilter,true)},null,null,10);b.on("toHtml",function(a){var a=a.data,c=a.dataValue,b=new CKEDITOR.htmlParser.basicWriter;c.writeChildrenHtml(b);c=b.getHtml(true);a.dataValue=q(c)},null,null,15);b.on("toDataFormat",function(a){var c=a.data.dataValue;a.data.enterMode!=CKEDITOR.ENTER_BR&&
+(c=c.replace(/^
/i,""));a.data.dataValue=CKEDITOR.htmlParser.fragment.fromHtml(c,a.data.context,f(a.data.enterMode,b.config.autoParagraph))},null,null,5);b.on("toDataFormat",function(a){a.data.dataValue.filterChildren(h.htmlFilter,true)},null,null,10);b.on("toDataFormat",function(a){a.data.filter.applyTo(a.data.dataValue,false,true)},null,null,11);b.on("toDataFormat",function(a){var c=a.data.dataValue,g=h.writer;g.reset();c.writeChildrenHtml(g);c=g.getHtml(true);c=n(c);c=o(c,b);a.data.dataValue= +c},null,null,15)};CKEDITOR.htmlDataProcessor.prototype={toHtml:function(a,c,b,g){var e=this.editor,d,h,i,f;if(c&&typeof c=="object"){d=c.context;b=c.fixForBody;g=c.dontFilter;h=c.filter;i=c.enterMode;f=c.protectedWhitespaces}else d=c;!d&&d!==null&&(d=e.editable().getName());return e.fire("toHtml",{dataValue:a,context:d,fixForBody:b,dontFilter:g,filter:h||e.filter,enterMode:i||e.enterMode,protectedWhitespaces:f}).dataValue},toDataFormat:function(a,c){var b,g,e;if(c){b=c.context;g=c.filter;e=c.enterMode}!b&& +b!==null&&(b=this.editor.editable().getName());return this.editor.fire("toDataFormat",{dataValue:a,filter:g||this.editor.filter,context:b,enterMode:e||this.editor.enterMode}).dataValue}};var m=/(?: |\xa0)$/,r="{cke_protected}",u=CKEDITOR.dtd,y=["caption","colgroup","col","thead","tfoot","tbody"],v=CKEDITOR.tools.extend({},u.$blockLimit,u.$block),w={elements:{input:i,textarea:i}},t={attributeNames:[[/^on/,"data-cke-pa-on"],[/^data-cke-expando$/,""]]},s={elements:{embed:function(a){var c=a.parent; +if(c&&c.name=="object"){var b=c.attributes.width,c=c.attributes.height;if(b)a.attributes.width=b;if(c)a.attributes.height=c}},a:function(a){if(!a.children.length&&!a.attributes.name&&!a.attributes["data-cke-saved-name"])return false}}},z={elementNames:[[/^cke:/,""],[/^\?xml:namespace$/,""]],attributeNames:[[/^data-cke-(saved|pa)-/,""],[/^data-cke-.*/,""],["hidefocus",""]],elements:{$:function(a){var c=a.attributes;if(c){if(c["data-cke-temp"])return false;for(var b=["name","href","src"],g,e=0;e-1&&g>-1&&b!=g)){b=a.parent?a.getIndex():-1;g=c.parent?c.getIndex():-1}return b>g?1:-1})},param:function(a){a.children=[];a.isEmpty=true;return a},span:function(a){a.attributes["class"]=="Apple-style-span"&&delete a.name},html:function(a){delete a.attributes.contenteditable; +delete a.attributes["class"]},body:function(a){delete a.attributes.spellcheck;delete a.attributes.contenteditable},style:function(a){var c=a.children[0];if(c&&c.value)c.value=CKEDITOR.tools.trim(c.value);if(!a.attributes.type)a.attributes.type="text/css"},title:function(a){var c=a.children[0];!c&&j(a,c=new CKEDITOR.htmlParser.text);c.value=a.attributes["data-cke-title"]||""},input:e,textarea:e},attributes:{"class":function(a){return CKEDITOR.tools.ltrim(a.replace(/(?:^|\s+)cke_[^\s]*/g,""))||false}}}; +if(CKEDITOR.env.ie)z.attributes.style=function(a){return a.replace(/(^|;)([^\:]+)/g,function(a){return a.toLowerCase()})};var x=/<(a|area|img|input|source)\b([^>]*)>/gi,B=/([\w-:]+)\s*=\s*(?:(?:"[^"]*")|(?:'[^']*')|(?:[^ "'>]+))/gi,A=/^(href|src|name)$/i,D=/(?:])[^>]*>[\s\S]*?<\/style>)|(?:<(:?link|meta|base)[^>]*>)/gi,C=/(])[^>]*>)([\s\S]*?)(?:<\/textarea>)/gi,J=/([^<]*)<\/cke:encoded>/gi,E=/(<\/?)((?:object|embed|param|html|body|head|title)[^>]*>)/gi,F=/(<\/?)cke:((?:html|body|head|title)[^>]*>)/gi, +M=/]*?)\/?>(?!\s*<\/cke:\1)/gi}(),"use strict",CKEDITOR.htmlParser.element=function(a,f){this.name=a;this.attributes=f||{};this.children=[];var b=a||"",d=b.match(/^cke:(.*)/);d&&(b=d[1]);b=!(!CKEDITOR.dtd.$nonBodyContent[b]&&!CKEDITOR.dtd.$block[b]&&!CKEDITOR.dtd.$listItem[b]&&!CKEDITOR.dtd.$tableContent[b]&&!(CKEDITOR.dtd.$nonEditable[b]||b=="br"));this.isEmpty=!!CKEDITOR.dtd.$empty[a];this.isUnknown=!CKEDITOR.dtd[a];this._={isBlockLike:b,hasInlineStarted:this.isEmpty||!b}}, +CKEDITOR.htmlParser.cssStyle=function(a){var f={};((a instanceof CKEDITOR.htmlParser.element?a.attributes.style:a)||"").replace(/"/g,'"').replace(/\s*([^ :;]+)\s*:\s*([^;]+)\s*(?=;|$)/g,function(a,d,h){d=="font-family"&&(h=h.replace(/["']/g,""));f[d.toLowerCase()]=h});return{rules:f,populate:function(a){var d=this.toString();if(d)a instanceof CKEDITOR.dom.element?a.setAttribute("style",d):a instanceof CKEDITOR.htmlParser.element?a.attributes.style=d:a.style=d},toString:function(){var a=[],d; +for(d in f)f[d]&&a.push(d,":",f[d],";");return a.join("")}}},function(){function a(a){return function(b){return b.type==CKEDITOR.NODE_ELEMENT&&(typeof a=="string"?b.name==a:b.name in a)}}var f=function(a,b){a=a[0];b=b[0];return ab?1:0},b=CKEDITOR.htmlParser.fragment.prototype;CKEDITOR.htmlParser.element.prototype=CKEDITOR.tools.extend(new CKEDITOR.htmlParser.node,{type:CKEDITOR.NODE_ELEMENT,add:b.add,clone:function(){return new CKEDITOR.htmlParser.element(this.name,this.attributes)},filter:function(a, +b){var f=this,j,i,b=f.getFilterContext(b);if(b.off)return true;if(!f.parent)a.onRoot(b,f);for(;;){j=f.name;if(!(i=a.onElementName(b,j))){this.remove();return false}f.name=i;if(!(f=a.onElement(b,f))){this.remove();return false}if(f!==this){this.replaceWith(f);return false}if(f.name==j)break;if(f.type!=CKEDITOR.NODE_ELEMENT){this.replaceWith(f);return false}if(!f.name){this.replaceWithChildren();return false}}j=f.attributes;var e,c;for(e in j){c=e;for(i=j[e];;)if(c=a.onAttributeName(b,e))if(c!=e){delete j[e]; +e=c}else break;else{delete j[e];break}c&&((i=a.onAttribute(b,f,c,i))===false?delete j[c]:j[c]=i)}f.isEmpty||this.filterChildren(a,false,b);return true},filterChildren:b.filterChildren,writeHtml:function(a,b){b&&this.filter(b);var k=this.name,j=[],i=this.attributes,e,c;a.openTag(k,i);for(e in i)j.push([e,i[e]]);a.sortAttributes&&j.sort(f);e=0;for(c=j.length;e0)this.children[a-1].next=null;this.parent.add(f,this.getIndex()+1);return f},addClass:function(a){if(!this.hasClass(a)){var b=this.attributes["class"]||"";this.attributes["class"]=b+(b?" ": +"")+a}},removeClass:function(a){var b=this.attributes["class"];if(b)(b=CKEDITOR.tools.trim(b.replace(RegExp("(?:\\s+|^)"+a+"(?:\\s+|$)")," ")))?this.attributes["class"]=b:delete this.attributes["class"]},hasClass:function(a){var b=this.attributes["class"];return!b?false:RegExp("(?:^|\\s)"+a+"(?=\\s|$)").test(b)},getFilterContext:function(a){var b=[];a||(a={off:false,nonEditable:false,nestedEditable:false});!a.off&&this.attributes["data-cke-processor"]=="off"&&b.push("off",true);!a.nonEditable&&this.attributes.contenteditable== +"false"?b.push("nonEditable",true):a.nonEditable&&(!a.nestedEditable&&this.attributes.contenteditable=="true")&&b.push("nestedEditable",true);if(b.length)for(var a=CKEDITOR.tools.copy(a),f=0;f'+d.getValue()+"",CKEDITOR.document);a.insertAfter(d);d.hide();d.$.form&&b._attachToForm()}else b.setData(a.getHtml(),null,true);b.on("loaded",function(){b.fire("uiReady");b.editable(a);b.container=a;b.ui.contentsElement=a;b.setData(b.getData(1));b.resetDirty();b.fire("contentDom");b.mode="wysiwyg";b.fire("mode");b.status="ready";b.fireOnce("instanceReady");CKEDITOR.fire("instanceReady",null,b)},null,null,1E4);b.on("destroy",function(){if(d){b.container.clearCustomData(); +b.container.remove();d.show()}b.element.clearCustomData();delete b.element});return b};CKEDITOR.inlineAll=function(){var a,f,b;for(b in CKEDITOR.dtd.$editable)for(var d=CKEDITOR.document.getElementsByTag(b),h=0,k=d.count();h"+(a.title?'{voiceLabel}':"")+'<{outerEl} class="cke_inner cke_reset" role="presentation">{topHtml}<{outerEl} id="{contentId}" class="cke_contents cke_reset" role="presentation">{bottomHtml}'), +b=CKEDITOR.dom.element.createFromHtml(c.output({id:a.id,name:b,langDir:a.lang.dir,langCode:a.langCode,voiceLabel:a.title,topHtml:i?''+i+"":"",contentId:a.ui.spaceId("contents"),bottomHtml:e?''+e+"":"",outerEl:CKEDITOR.env.ie?"span":"div"}));if(j==CKEDITOR.ELEMENT_MODE_REPLACE){f.hide();b.insertAfter(f)}else f.append(b); +a.container=b;a.ui.contentsElement=a.ui.space("contents");i&&a.ui.space("top").unselectable();e&&a.ui.space("bottom").unselectable();f=a.config.width;j=a.config.height;f&&b.setStyle("width",CKEDITOR.tools.cssLength(f));j&&a.ui.space("contents").setStyle("height",CKEDITOR.tools.cssLength(j));b.disableContextMenu();CKEDITOR.env.webkit&&b.on("focus",function(){a.focus()});a.fireOnce("uiReady")}CKEDITOR.replace=function(b,h){return a(b,h,null,CKEDITOR.ELEMENT_MODE_REPLACE)};CKEDITOR.appendTo=function(b, +h,f){return a(b,h,f,CKEDITOR.ELEMENT_MODE_APPENDTO)};CKEDITOR.replaceAll=function(){for(var a=document.getElementsByTagName("textarea"),b=0;b'+g+""); +b.append(g);a.changeAttr("aria-describedby",e)}}})});CKEDITOR.addCss(".cke_editable{cursor:text}.cke_editable img,.cke_editable input,.cke_editable textarea{cursor:default}");var o=CKEDITOR.dom.walker.whitespaces(true),p=CKEDITOR.dom.walker.bookmark(false,true),m=CKEDITOR.dom.walker.empty(),r=CKEDITOR.dom.walker.bogus(),u=/(^|]*>)\s*<(p|div|address|h\d|center|pre)[^>]*>\s*(?:]*>| |\u00A0| )?\s*(:?<\/\2>)?\s*(?=$|<\/body>)/gi,y=function(){function a(c){return c.type==CKEDITOR.NODE_ELEMENT} +function c(b,g){var e,d,h,i,j=[],l=g.range.startContainer;e=g.range.startPath();for(var l=f[l.getName()],k=0,m=b.getChildren(),E=m.count(),o=-1,v=-1,r=0,n=e.contains(f.$list);k-1)j[o].firstNotAllowed=1;if(v>-1)j[v].lastNotAllowed=1;return j}function b(c,g){var e=[],d=c.getChildren(),h=d.count(),i,j=0,l=f[g],k=!c.is(f.$inline)||c.is("br");for(k&&e.push(" ");j ",o.document);o.insertNode(w);o.setStartAfter(w)}p=new CKEDITOR.dom.elementPath(o.startContainer);j.endPath=q=new CKEDITOR.dom.elementPath(o.endContainer);if(!o.collapsed){var n=q.block||q.blockLimit,y=o.getCommonAncestor();n&&(!n.equals(y)&&!n.contains(y)&&o.checkEndOfBlock())&&j.zombies.push(n);o.deleteContents()}for(;(u=a(o.startContainer)&& +o.startContainer.getChild(o.startOffset-1))&&a(u)&&u.isBlockBoundary()&&p.contains(u);)o.moveToPosition(u,CKEDITOR.POSITION_BEFORE_END);d(o,j.blockLimit,p,q);if(w){o.setEndBefore(w);o.collapse();w.remove()}w=o.startPath();if(n=w.contains(e,false,1)){o.splitElement(n);j.inlineStylesRoot=n;j.inlineStylesPeak=w.lastElement}w=o.createBookmark();(n=w.startNode.getPrevious(i))&&a(n)&&e(n)&&r.push(n);(n=w.startNode.getNext(i))&&a(n)&&e(n)&&r.push(n);for(n=w.startNode;(n=n.getParent())&&e(n);)r.push(n);o.moveToBookmark(w); +if(w=v){w=j.range;if(j.type=="text"&&j.inlineStylesRoot){u=j.inlineStylesPeak;o=u.getDocument().createText("{cke-peak}");for(r=j.inlineStylesRoot.getParent();!u.equals(r);){o=o.appendTo(u.clone());u=u.getParent()}v=o.getOuterHtml().split("{cke-peak}").join(v)}u=j.blockLimit.getName();if(/^\s+|\s+$/.test(v)&&"span"in CKEDITOR.dtd[u])var L=' ',v=L+v+L;v=j.editor.dataProcessor.toHtml(v,{context:null,fixForBody:false,protectedWhitespaces:!!L,dontFilter:j.dontFilter, +filter:j.editor.activeFilter,enterMode:j.editor.activeEnterMode});u=w.document.createElement("body");u.setHtml(v);if(L){u.getFirst().remove();u.getLast().remove()}if((L=w.startPath().block)&&!(L.getChildCount()==1&&L.getBogus()))a:{var I;if(u.getChildCount()==1&&a(I=u.getFirst())&&I.is(k)&&!I.hasAttribute("contenteditable")){L=I.getElementsByTag("*");w=0;for(r=L.count();w0;else{G=I.startPath();if(!q.isBlock&&g(j.editor,G.block,G.blockLimit)&&(C=l(j.editor))){C=w.createElement(C);C.appendBogus();I.insertNode(C);CKEDITOR.env.needsBrFiller&&(Q=C.getBogus())&&Q.remove();I.moveToPosition(C,CKEDITOR.POSITION_BEFORE_END)}if((G=I.startPath().block)&&!G.equals(R)){if(Q=G.getBogus()){Q.remove();L.push(G)}R=G}q.firstNotAllowed&&(n=1);if(n&&q.isElement){G= +I.startContainer;for(V=null;G&&!f[G.getName()][q.name];){if(G.equals(u)){G=null;break}V=G;G=G.getParent()}if(G){if(V){W=I.splitElement(V);j.zombies.push(W);j.zombies.push(V)}}else{V=u.getName();$=!r;G=r==o.length-1;V=b(q.node,V);for(var T=[],aa=V.length,Y=0,X=void 0,ba=0,ea=-1;Y0;){g=a.getItem(c);if(!CKEDITOR.tools.trim(g.getHtml())){g.appendBogus();CKEDITOR.env.ie&&(CKEDITOR.env.version<9&&g.getChildCount())&&g.getFirst().remove()}}} +return function(g){var e=g.startContainer,d=e.getAscendant("table",1),h=false;b(d.getElementsByTag("td"));b(d.getElementsByTag("th"));d=g.clone();d.setStart(e,0);d=a(d).lastBackward();if(!d){d=g.clone();d.setEndAt(e,CKEDITOR.POSITION_BEFORE_END);d=a(d).lastForward();h=true}d||(d=e);if(d.is("table")){g.setStartAt(d,CKEDITOR.POSITION_BEFORE_START);g.collapse(true);d.remove()}else{d.is({tbody:1,thead:1,tfoot:1})&&(d=c(d,"tr",h));d.is("tr")&&(d=c(d,d.getParent().is("thead")?"th":"td",h));(e=d.getBogus())&& +e.remove();g.moveToPosition(d,h?CKEDITOR.POSITION_AFTER_START:CKEDITOR.POSITION_BEFORE_END)}}}();a={detect:function(a,c){var b=a.range,g=b.clone(),e=b.clone(),d=new CKEDITOR.dom.elementPath(b.startContainer,c),h=new CKEDITOR.dom.elementPath(b.endContainer,c);g.collapse(1);e.collapse();if(d.block&&g.checkBoundaryOfElement(d.block,CKEDITOR.END)){b.setStartAfter(d.block);a.prependEolBr=1}if(h.block&&e.checkBoundaryOfElement(h.block,CKEDITOR.START)){b.setEndBefore(h.block);a.appendEolBr=1}},fix:function(a, +c){var b=c.getDocument(),g;if(a.appendEolBr){g=this.createEolBr(b);a.fragment.append(g)}a.prependEolBr&&(!g||g.getPrevious())&&a.fragment.append(this.createEolBr(b),1)},createEolBr:function(a){return a.createElement("br",{attributes:{"data-cke-eol":1}})}};f={exclude:function(a){var c=a.range.getBoundaryNodes(),b=c.startNode;(c=c.endNode)&&(r(c)&&(!b||!b.equals(c)))&&a.range.setEndBefore(c)}};d={rebuild:function(a,c){var b=a.range,g=b.getCommonAncestor(),e=new CKEDITOR.dom.elementPath(g,c),d=new CKEDITOR.dom.elementPath(b.startContainer, +c),b=new CKEDITOR.dom.elementPath(b.endContainer,c),h;g.type==CKEDITOR.NODE_TEXT&&(g=g.getParent());if(e.blockLimit.is({tr:1,table:1})){var f=e.contains("table").getParent();h=function(a){return!a.equals(f)}}else if(e.block&&e.block.is(CKEDITOR.dtd.$listItem)){d=d.contains(CKEDITOR.dtd.$list);b=b.contains(CKEDITOR.dtd.$list);if(!d.equals(b)){var i=e.contains(CKEDITOR.dtd.$list).getParent();h=function(a){return!a.equals(i)}}}h||(h=function(a){return!a.equals(e.block)&&!a.equals(e.blockLimit)});this.rebuildFragment(a, +c,g,h)},rebuildFragment:function(a,c,b,g){for(var e;b&&!b.equals(c)&&g(b);){e=b.clone(0,1);a.fragment.appendTo(e);a.fragment=e;b=b.getParent()}}};b={shrink:function(a){var a=a.range,c=a.startContainer,b=a.endContainer,g=a.startOffset,e=a.endOffset;c.type==CKEDITOR.NODE_ELEMENT&&(c.equals(b)&&c.is("tr")&&++g==e)&&a.shrink(CKEDITOR.SHRINK_TEXT)}};var w=function(){function a(c,b){var g=c.getParent();if(g.is(CKEDITOR.dtd.$inline))c[b?"insertBefore":"insertAfter"](g)}function c(b,g,e){a(g);a(e,1);for(var d;d= +e.getNext();){d.insertAfter(g);g=d}m(b)&&b.remove()}function b(a,c){var g=new CKEDITOR.dom.range(a);g.setStartAfter(c.startNode);g.setEndBefore(c.endNode);return g}return{list:{detectMerge:function(a,c){var g=b(c,a.bookmark),e=g.startPath(),d=g.endPath(),h=e.contains(CKEDITOR.dtd.$list),f=d.contains(CKEDITOR.dtd.$list);a.mergeList=h&&f&&h.getParent().equals(f.getParent())&&!h.equals(f);a.mergeListItems=e.block&&d.block&&e.block.is(CKEDITOR.dtd.$listItem)&&d.block.is(CKEDITOR.dtd.$listItem);if(a.mergeList|| +a.mergeListItems){g=g.clone();g.setStartBefore(a.bookmark.startNode);g.setEndAfter(a.bookmark.endNode);a.mergeListBookmark=g.createBookmark()}},merge:function(a,b){if(a.mergeListBookmark){var g=a.mergeListBookmark.startNode,e=a.mergeListBookmark.endNode,d=new CKEDITOR.dom.elementPath(g,b),h=new CKEDITOR.dom.elementPath(e,b);if(a.mergeList){var f=d.contains(CKEDITOR.dtd.$list),i=h.contains(CKEDITOR.dtd.$list);if(!f.equals(i)){i.moveChildren(f);i.remove()}}if(a.mergeListItems){d=d.contains(CKEDITOR.dtd.$listItem); +h=h.contains(CKEDITOR.dtd.$listItem);d.equals(h)||c(h,g,e)}g.remove();e.remove()}}},block:{detectMerge:function(a,c){if(!a.tableContentsRanges&&!a.mergeListBookmark){var b=new CKEDITOR.dom.range(c);b.setStartBefore(a.bookmark.startNode);b.setEndAfter(a.bookmark.endNode);a.mergeBlockBookmark=b.createBookmark()}},merge:function(a,b){if(a.mergeBlockBookmark&&!a.purgeTableBookmark){var g=a.mergeBlockBookmark.startNode,e=a.mergeBlockBookmark.endNode,d=new CKEDITOR.dom.elementPath(g,b),h=new CKEDITOR.dom.elementPath(e, +b),d=d.block,h=h.block;d&&(h&&!d.equals(h))&&c(h,g,e);g.remove();e.remove()}}},table:function(){function a(b){var e=[],d,h=new CKEDITOR.dom.walker(b),f=b.startPath().contains(g),i=b.endPath().contains(g),j={};h.guard=function(a,h){if(a.type==CKEDITOR.NODE_ELEMENT){var l="visited_"+(h?"out":"in");if(a.getCustomData(l))return;CKEDITOR.dom.element.setMarker(j,a,l,1)}if(h&&f&&a.equals(f)){d=b.clone();d.setEndAt(f,CKEDITOR.POSITION_BEFORE_END);e.push(d)}else if(!h&&i&&a.equals(i)){d=b.clone();d.setStartAt(i, +CKEDITOR.POSITION_AFTER_START);e.push(d)}else if(!h&&a.type==CKEDITOR.NODE_ELEMENT&&a.is(g)&&(!f||c(a,f))&&(!i||c(a,i))){d=b.clone();d.selectNodeContents(a);e.push(d)}};h.lastForward();CKEDITOR.dom.element.clearAllMarkers(j);return e}function c(a,b){var g=CKEDITOR.POSITION_CONTAINS+CKEDITOR.POSITION_IS_CONTAINED,e=a.getPosition(b);return e===CKEDITOR.POSITION_IDENTICAL?false:(e&g)===0}var g={td:1,th:1,caption:1};return{detectPurge:function(a){var c=a.range,b=c.clone();b.enlarge(CKEDITOR.ENLARGE_ELEMENT); +var b=new CKEDITOR.dom.walker(b),e=0;b.evaluator=function(a){a.type==CKEDITOR.NODE_ELEMENT&&a.is(g)&&++e};b.checkForward();if(e>1){var b=c.startPath().contains("table"),d=c.endPath().contains("table");if(b&&d&&c.checkBoundaryOfElement(b,CKEDITOR.START)&&c.checkBoundaryOfElement(d,CKEDITOR.END)){c=a.range.clone();c.setStartBefore(b);c.setEndAfter(d);a.purgeTableBookmark=c.createBookmark()}}},detectRanges:function(e,d){var h=b(d,e.bookmark),f=h.clone(),i,j,l=h.getCommonAncestor();l.is(CKEDITOR.dtd.$tableContent)&& +!l.is(g)&&(l=l.getAscendant("table",true));j=l;l=new CKEDITOR.dom.elementPath(h.startContainer,j);j=new CKEDITOR.dom.elementPath(h.endContainer,j);l=l.contains("table");j=j.contains("table");if(l||j){if(l&&j&&c(l,j)){e.tableSurroundingRange=f;f.setStartAt(l,CKEDITOR.POSITION_AFTER_END);f.setEndAt(j,CKEDITOR.POSITION_BEFORE_START);f=h.clone();f.setEndAt(l,CKEDITOR.POSITION_AFTER_END);i=h.clone();i.setStartAt(j,CKEDITOR.POSITION_BEFORE_START);i=a(f).concat(a(i))}else if(l){if(!j){e.tableSurroundingRange= +f;f.setStartAt(l,CKEDITOR.POSITION_AFTER_END);h.setEndAt(l,CKEDITOR.POSITION_AFTER_END)}}else{e.tableSurroundingRange=f;f.setEndAt(j,CKEDITOR.POSITION_BEFORE_START);h.setStartAt(j,CKEDITOR.POSITION_AFTER_START)}e.tableContentsRanges=i?i:a(h)}},deleteRanges:function(a){for(var c;c=a.tableContentsRanges.pop();){c.extractContents();m(c.startContainer)&&c.startContainer.appendBogus()}a.tableSurroundingRange&&a.tableSurroundingRange.extractContents()},purge:function(a){if(a.purgeTableBookmark){var c=a.doc, +b=a.range.clone(),c=c.createElement("p");c.insertBefore(a.purgeTableBookmark.startNode);b.moveToBookmark(a.purgeTableBookmark);b.deleteContents();a.range.moveToPosition(c,CKEDITOR.POSITION_AFTER_START)}}}}(),detectExtractMerge:function(a){return!(a.range.startPath().contains(CKEDITOR.dtd.$listItem)&&a.range.endPath().contains(CKEDITOR.dtd.$listItem))},fixUneditableRangePosition:function(a){a.startContainer.getDtd()["#"]||a.moveToClosestEditablePosition(null,true)},autoParagraph:function(a,c){var b= +c.startPath(),e;if(g(a,b.block,b.blockLimit)&&(e=l(a))){e=c.document.createElement(e);e.appendBogus();c.insertNode(e);c.moveToPosition(e,CKEDITOR.POSITION_AFTER_START)}}}}()}(),function(){function a(){var a=this._.fakeSelection,c;if(a){c=this.getSelection(1);if(!c||!c.isHidden()){a.reset();a=0}}if(!a){a=c||this.getSelection(1);if(!a||a.getType()==CKEDITOR.SELECTION_NONE)return}this.fire("selectionCheck",a);c=this.elementPath();if(!c.compare(this._.selectionPreviousPath)){if(CKEDITOR.env.webkit)this._.previousActive= +this.document.getActive();this._.selectionPreviousPath=c;this.fire("selectionChange",{selection:a,path:c})}}function f(){o=true;if(!n){b.call(this);n=CKEDITOR.tools.setTimeout(b,200,this)}}function b(){n=null;if(o){CKEDITOR.tools.setTimeout(a,0,this);o=false}}function d(a){return p(a)||a.type==CKEDITOR.NODE_ELEMENT&&!a.is(CKEDITOR.dtd.$empty)?true:false}function h(a){function c(b,g){return!b||b.type==CKEDITOR.NODE_TEXT?false:a.clone()["moveToElementEdit"+(g?"End":"Start")](b)}if(!(a.root instanceof +CKEDITOR.editable))return false;var b=a.startContainer,g=a.getPreviousNode(d,null,b),e=a.getNextNode(d,null,b);return c(g)||c(e,1)||!g&&!e&&!(b.type==CKEDITOR.NODE_ELEMENT&&b.isBlockBoundary()&&b.getBogus())?true:false}function k(a){return a.getCustomData("cke-fillingChar")}function j(a,b){var g=a&&a.removeCustomData("cke-fillingChar");if(g){if(b!==false){var d,h=a.getDocument().getSelection().getNative(),f=h&&h.type!="None"&&h.getRangeAt(0);if(g.getLength()>1&&f&&f.intersectsNode(g.$)){d=e(h);f= +h.focusNode==g.$&&h.focusOffset>0;h.anchorNode==g.$&&h.anchorOffset>0&&d[0].offset--;f&&d[1].offset--}}g.setText(i(g.getText()));d&&c(a.getDocument().$,d)}}function i(a){return a.replace(/\u200B( )?/g,function(a){return a[1]?" ":""})}function e(a){return[{node:a.anchorNode,offset:a.anchorOffset},{node:a.focusNode,offset:a.focusOffset}]}function c(a,c){var b=a.getSelection(),g=a.createRange();g.setStart(c[0].node,c[0].offset);g.collapse(true);b.removeAllRanges();b.addRange(g);b.extend(c[1].node,c[1].offset)} +function g(a){var c=CKEDITOR.dom.element.createFromHtml('
 
',a.document);a.fire("lockSnapshot");a.editable().append(c);var b=a.getSelection(1),g=a.createRange(),e=b.root.on("selectionchange",function(a){a.cancel()},null,null,0);g.setStartAt(c,CKEDITOR.POSITION_AFTER_START);g.setEndAt(c,CKEDITOR.POSITION_BEFORE_END);b.selectRanges([g]);e.removeListener();a.fire("unlockSnapshot"); +a._.hiddenSelectionContainer=c}function l(a){var c={37:1,39:1,8:1,46:1};return function(b){var g=b.data.getKeystroke();if(c[g]){var e=a.getSelection().getRanges(),d=e[0];if(e.length==1&&d.collapsed)if((g=d[g<38?"getPreviousEditableNode":"getNextEditableNode"]())&&g.type==CKEDITOR.NODE_ELEMENT&&g.getAttribute("contenteditable")=="false"){a.getSelection().fake(g);b.data.preventDefault();b.cancel()}}}}function q(a){for(var c=0;c=g.getLength()?f.setStartAfter(g):f.setStartBefore(g));e&&e.type==CKEDITOR.NODE_TEXT&&(h?f.setEndAfter(e):f.setEndBefore(e));g=new CKEDITOR.dom.walker(f); +g.evaluator=function(g){if(g.type==CKEDITOR.NODE_ELEMENT&&g.isReadOnly()){var e=b.clone();b.setEndBefore(g);b.collapsed&&a.splice(c--,1);if(!(g.getPosition(f.endContainer)&CKEDITOR.POSITION_CONTAINS)){e.setStartAfter(g);e.collapsed||a.splice(c+1,0,e)}return true}return false};g.next()}}return a}var n,o,p=CKEDITOR.dom.walker.invisible(1),m=function(){function a(c){return function(a){var b=a.editor.createRange();b.moveToClosestEditablePosition(a.selected,c)&&a.editor.getSelection().selectRanges([b]); +return false}}function c(a){return function(c){var b=c.editor,g=b.createRange(),e;if(!(e=g.moveToClosestEditablePosition(c.selected,a)))e=g.moveToClosestEditablePosition(c.selected,!a);e&&b.getSelection().selectRanges([g]);b.fire("saveSnapshot");c.selected.remove();if(!e){g.moveToElementEditablePosition(b.editable());b.getSelection().selectRanges([g])}b.fire("saveSnapshot");return false}}var b=a(),g=a(1);return{37:b,38:b,39:g,40:g,8:c(),46:c(1)}}();CKEDITOR.on("instanceCreated",function(c){function b(){var a= +g.getSelection();a&&a.removeAllRanges()}var g=c.editor;g.on("contentDom",function(){function c(){n=new CKEDITOR.dom.selection(g.getSelection());n.lock()}function b(){d.removeListener("mouseup",b);k.removeListener("mouseup",b);var a=CKEDITOR.document.$.selection,c=a.createRange();a.type!="None"&&c.parentElement().ownerDocument==e.$&&c.select()}var e=g.document,d=CKEDITOR.document,h=g.editable(),i=e.getBody(),k=e.getDocumentElement(),m=h.isInline(),o,n;CKEDITOR.env.gecko&&h.attachListener(h,"focus", +function(a){a.removeListener();if(o!==0)if((a=g.getSelection().getNative())&&a.isCollapsed&&a.anchorNode==h.$){a=g.createRange();a.moveToElementEditStart(h);a.select()}},null,null,-2);h.attachListener(h,CKEDITOR.env.webkit?"DOMFocusIn":"focus",function(){o&&CKEDITOR.env.webkit&&(o=g._.previousActive&&g._.previousActive.equals(e.getActive()));g.unlockSelection(o);o=0},null,null,-1);h.attachListener(h,"mousedown",function(){o=0});if(CKEDITOR.env.ie||m){r?h.attachListener(h,"beforedeactivate",c,null, +null,-1):h.attachListener(g,"selectionCheck",c,null,null,-1);h.attachListener(h,CKEDITOR.env.webkit?"DOMFocusOut":"blur",function(){g.lockSelection(n);o=1},null,null,-1);h.attachListener(h,"mousedown",function(){o=0})}if(CKEDITOR.env.ie&&!m){var p;h.attachListener(h,"mousedown",function(a){if(a.data.$.button==2){a=g.document.getSelection();if(!a||a.getType()==CKEDITOR.SELECTION_NONE)p=g.window.getScrollPosition()}});h.attachListener(h,"mouseup",function(a){if(a.data.$.button==2&&p){g.document.$.documentElement.scrollLeft= +p.x;g.document.$.documentElement.scrollTop=p.y}p=null});if(e.$.compatMode!="BackCompat"){if(CKEDITOR.env.ie7Compat||CKEDITOR.env.ie6Compat)k.on("mousedown",function(a){function c(a){a=a.data.$;if(g){var b=i.$.createTextRange();try{b.moveToPoint(a.clientX,a.clientY)}catch(e){}g.setEndPoint(h.compareEndPoints("StartToStart",b)<0?"EndToEnd":"StartToStart",b);g.select()}}function b(){k.removeListener("mousemove",c);d.removeListener("mouseup",b);k.removeListener("mouseup",b);g.select()}a=a.data;if(a.getTarget().is("html")&& +a.$.y7&&CKEDITOR.env.version<11)k.on("mousedown",function(a){if(a.data.getTarget().is("html")){d.on("mouseup",b);k.on("mouseup",b)}})}}h.attachListener(h,"selectionchange",a,g);h.attachListener(h,"keyup",f,g);h.attachListener(h,CKEDITOR.env.webkit?"DOMFocusIn":"focus",function(){g.forceNextSelectionCheck(); +g.selectionChange(1)});if(m&&(CKEDITOR.env.webkit||CKEDITOR.env.gecko)){var q;h.attachListener(h,"mousedown",function(){q=1});h.attachListener(e.getDocumentElement(),"mouseup",function(){q&&f.call(g);q=0})}else h.attachListener(CKEDITOR.env.ie?h:e.getDocumentElement(),"mouseup",f,g);CKEDITOR.env.webkit&&h.attachListener(e,"keydown",function(a){switch(a.data.getKey()){case 13:case 33:case 34:case 35:case 36:case 37:case 39:case 8:case 45:case 46:j(h)}},null,null,-1);h.attachListener(h,"keydown",l(g), +null,null,-1)});g.on("setData",function(){g.unlockSelection();CKEDITOR.env.webkit&&b()});g.on("contentDomUnload",function(){g.unlockSelection()});if(CKEDITOR.env.ie9Compat)g.on("beforeDestroy",b,null,null,9);g.on("dataReady",function(){delete g._.fakeSelection;delete g._.hiddenSelectionContainer;g.selectionChange(1)});g.on("loadSnapshot",function(){var a=CKEDITOR.dom.walker.nodeType(CKEDITOR.NODE_ELEMENT),c=g.editable().getLast(a);if(c&&c.hasAttribute("data-cke-hidden-sel")){c.remove();if(CKEDITOR.env.gecko)(a= +g.editable().getFirst(a))&&(a.is("br")&&a.getAttribute("_moz_editor_bogus_node"))&&a.remove()}},null,null,100);g.on("key",function(a){if(g.mode=="wysiwyg"){var c=g.getSelection();if(c.isFake){var b=m[a.data.keyCode];if(b)return b({editor:g,selected:c.getSelectedElement(),selection:c,keyEvent:a})}}})});CKEDITOR.on("instanceReady",function(a){function b(){var a=d.editable();if(a)if(a=k(a)){var c=d.document.$.getSelection();if(c.type!="None"&&(c.anchorNode==a.$||c.focusNode==a.$))f=e(c);h=a.getText(); +a.setText(i(h))}}function g(){var a=d.editable();if(a)if(a=k(a)){a.setText(h);if(f){c(d.document.$,f);f=null}}}var d=a.editor,h,f;if(CKEDITOR.env.webkit){d.on("selectionChange",function(){var a=d.editable(),c=k(a);c&&(c.getCustomData("ready")?j(a):c.setCustomData("ready",1))},null,null,-1);d.on("beforeSetMode",function(){j(d.editable())},null,null,-1);d.on("beforeUndoImage",b);d.on("afterUndoImage",g);d.on("beforeGetData",b,null,null,0);d.on("getData",g)}});CKEDITOR.editor.prototype.selectionChange= +function(c){(c?a:f).call(this)};CKEDITOR.editor.prototype.getSelection=function(a){if((this._.savedSelection||this._.fakeSelection)&&!a)return this._.savedSelection||this._.fakeSelection;return(a=this.editable())&&this.mode=="wysiwyg"?new CKEDITOR.dom.selection(a):null};CKEDITOR.editor.prototype.lockSelection=function(a){a=a||this.getSelection(1);if(a.getType()!=CKEDITOR.SELECTION_NONE){!a.isLocked&&a.lock();this._.savedSelection=a;return true}return false};CKEDITOR.editor.prototype.unlockSelection= +function(a){var c=this._.savedSelection;if(c){c.unlock(a);delete this._.savedSelection;return true}return false};CKEDITOR.editor.prototype.forceNextSelectionCheck=function(){delete this._.selectionPreviousPath};CKEDITOR.dom.document.prototype.getSelection=function(){return new CKEDITOR.dom.selection(this)};CKEDITOR.dom.range.prototype.select=function(){var a=this.root instanceof CKEDITOR.editable?this.root.editor.getSelection():new CKEDITOR.dom.selection(this.root);a.selectRanges([this]);return a}; +CKEDITOR.SELECTION_NONE=1;CKEDITOR.SELECTION_TEXT=2;CKEDITOR.SELECTION_ELEMENT=3;var r=typeof window.getSelection!="function",u=1;CKEDITOR.dom.selection=function(a){if(a instanceof CKEDITOR.dom.selection)var c=a,a=a.root;var b=a instanceof CKEDITOR.dom.element;this.rev=c?c.rev:u++;this.document=a instanceof CKEDITOR.dom.document?a:a.getDocument();this.root=b?a:this.document.getBody();this.isLocked=0;this._={cache:{}};if(c){CKEDITOR.tools.extend(this._.cache,c._.cache);this.isFake=c.isFake;this.isLocked= +c.isLocked;return this}var a=this.getNative(),g,e;if(a)if(a.getRangeAt)g=(e=a.rangeCount&&a.getRangeAt(0))&&new CKEDITOR.dom.node(e.commonAncestorContainer);else{try{e=a.createRange()}catch(d){}g=e&&CKEDITOR.dom.element.get(e.item&&e.item(0)||e.parentElement())}if(!g||!(g.type==CKEDITOR.NODE_ELEMENT||g.type==CKEDITOR.NODE_TEXT)||!this.root.equals(g)&&!this.root.contains(g)){this._.cache.type=CKEDITOR.SELECTION_NONE;this._.cache.startElement=null;this._.cache.selectedElement=null;this._.cache.selectedText= +"";this._.cache.ranges=new CKEDITOR.dom.rangeList}return this};var y={img:1,hr:1,li:1,table:1,tr:1,td:1,th:1,embed:1,object:1,ol:1,ul:1,a:1,input:1,form:1,select:1,textarea:1,button:1,fieldset:1,thead:1,tfoot:1};CKEDITOR.dom.selection.prototype={getNative:function(){return this._.cache.nativeSel!==void 0?this._.cache.nativeSel:this._.cache.nativeSel=r?this.document.$.selection:this.document.getWindow().$.getSelection()},getType:r?function(){var a=this._.cache;if(a.type)return a.type;var c=CKEDITOR.SELECTION_NONE; +try{var b=this.getNative(),g=b.type;if(g=="Text")c=CKEDITOR.SELECTION_TEXT;if(g=="Control")c=CKEDITOR.SELECTION_ELEMENT;if(b.createRange().parentElement())c=CKEDITOR.SELECTION_TEXT}catch(e){}return a.type=c}:function(){var a=this._.cache;if(a.type)return a.type;var c=CKEDITOR.SELECTION_TEXT,b=this.getNative();if(!b||!b.rangeCount)c=CKEDITOR.SELECTION_NONE;else if(b.rangeCount==1){var b=b.getRangeAt(0),g=b.startContainer;if(g==b.endContainer&&g.nodeType==1&&b.endOffset-b.startOffset==1&&y[g.childNodes[b.startOffset].nodeName.toLowerCase()])c= +CKEDITOR.SELECTION_ELEMENT}return a.type=c},getRanges:function(){var a=r?function(){function a(c){return(new CKEDITOR.dom.node(c)).getIndex()}var c=function(c,b){c=c.duplicate();c.collapse(b);var g=c.parentElement();if(!g.hasChildNodes())return{container:g,offset:0};for(var e=g.children,d,h,f=c.duplicate(),i=0,j=e.length-1,l=-1,k,m;i<=j;){l=Math.floor((i+j)/2);d=e[l];f.moveToElementText(d);k=f.compareEndPoints("StartToStart",c);if(k>0)j=l-1;else if(k<0)i=l+1;else return{container:g,offset:a(d)}}if(l== +-1||l==e.length-1&&k<0){f.moveToElementText(g);f.setEndPoint("StartToStart",c);f=f.text.replace(/(\r\n|\r)/g,"\n").length;e=g.childNodes;if(!f){d=e[e.length-1];return d.nodeType!=CKEDITOR.NODE_TEXT?{container:g,offset:e.length}:{container:d,offset:d.nodeValue.length}}for(g=e.length;f>0&&g>0;){h=e[--g];if(h.nodeType==CKEDITOR.NODE_TEXT){m=h;f=f-h.nodeValue.length}}return{container:m,offset:-f}}f.collapse(k>0?true:false);f.setEndPoint(k>0?"StartToStart":"EndToStart",c);f=f.text.replace(/(\r\n|\r)/g, +"\n").length;if(!f)return{container:g,offset:a(d)+(k>0?0:1)};for(;f>0;)try{h=d[k>0?"previousSibling":"nextSibling"];if(h.nodeType==CKEDITOR.NODE_TEXT){f=f-h.nodeValue.length;m=h}d=h}catch(o){return{container:g,offset:a(d)}}return{container:m,offset:k>0?-f:m.nodeValue.length+f}};return function(){var a=this.getNative(),b=a&&a.createRange(),g=this.getType();if(!a)return[];if(g==CKEDITOR.SELECTION_TEXT){a=new CKEDITOR.dom.range(this.root);g=c(b,true);a.setStart(new CKEDITOR.dom.node(g.container),g.offset); +g=c(b);a.setEnd(new CKEDITOR.dom.node(g.container),g.offset);a.endContainer.getPosition(a.startContainer)&CKEDITOR.POSITION_PRECEDING&&a.endOffset<=a.startContainer.getIndex()&&a.collapse();return[a]}if(g==CKEDITOR.SELECTION_ELEMENT){for(var g=[],e=0;e1){d=a[a.length-1];a[0].setEnd(d.endContainer,d.endOffset)}d=a[0];var a=d.collapsed,l,k,m;if((b=d.getEnclosedNode())&&b.type==CKEDITOR.NODE_ELEMENT&&b.getName()in y&&(!b.is("a")||!b.getText()))try{m=b.$.createControlRange();m.addElement(b.$);m.select();return}catch(o){}if(d.startContainer.type==CKEDITOR.NODE_ELEMENT&&d.startContainer.getName()in c||d.endContainer.type==CKEDITOR.NODE_ELEMENT&&d.endContainer.getName()in c){d.shrink(CKEDITOR.NODE_ELEMENT,true);a=d.collapsed}m= +d.createBookmark();c=m.startNode;if(!a)e=m.endNode;m=d.document.$.body.createTextRange();m.moveToElementText(c.$);m.moveStart("character",1);if(e){f=d.document.$.body.createTextRange();f.moveToElementText(e.$);m.setEndPoint("EndToEnd",f);m.moveEnd("character",-1)}else{l=c.getNext(i);k=c.hasAscendant("pre");l=!(l&&l.getText&&l.getText().match(f))&&(k||!c.hasPrevious()||c.getPrevious().is&&c.getPrevious().is("br"));k=d.document.createElement("span");k.setHtml("");k.insertBefore(c);l&&d.document.createText("").insertBefore(c)}d.setStartBefore(c); +c.remove();if(a){if(l){m.moveStart("character",-1);m.select();d.document.$.selection.clear()}else m.select();d.moveToPosition(k,CKEDITOR.POSITION_BEFORE_START);k.remove()}else{d.setEndBefore(e);e.remove();m.select()}}else{e=this.getNative();if(!e)return;this.removeAllRanges();for(m=0;m=0){d.collapse(1);k.setEnd(d.endContainer.$,d.endOffset)}else throw n;}e.addRange(k)}}this.reset();this.root.fire("selectionchange")}}},fake:function(a){var c=this.root.editor;this.reset();g(c);var b=this._.cache,e=new CKEDITOR.dom.range(this.root);e.setStartBefore(a);e.setEndAfter(a);b.ranges=new CKEDITOR.dom.rangeList(e);b.selectedElement=b.startElement=a;b.type=CKEDITOR.SELECTION_ELEMENT; +b.selectedText=b.nativeSel=null;this.isFake=1;this.rev=u++;c._.fakeSelection=this;this.root.fire("selectionchange")},isHidden:function(){var a=this.getCommonAncestor();a&&a.type==CKEDITOR.NODE_TEXT&&(a=a.getParent());return!(!a||!a.data("cke-hidden-sel"))},createBookmarks:function(a){a=this.getRanges().createBookmarks(a);this.isFake&&(a.isFake=1);return a},createBookmarks2:function(a){a=this.getRanges().createBookmarks2(a);this.isFake&&(a.isFake=1);return a},selectBookmarks:function(a){for(var c= +[],b,g=0;g]*>)[ \t\r\n]*/gi,"$1");f=f.replace(/([ \t\n\r]+| )/g," ");f=f.replace(/]*>/gi,"\n");if(CKEDITOR.env.ie){var i=a.getDocument().createElement("div");i.append(h);h.$.outerHTML="
"+f+"
";h.copyAttributes(i.getFirst());h=i.getFirst().remove()}else h.setHtml(f); +b=h}else f?b=l(e?[a.getHtml()]:c(a),b):a.moveChildren(b);b.replace(a);if(d){var e=b,j;if((j=e.getPrevious(A))&&j.type==CKEDITOR.NODE_ELEMENT&&j.is("pre")){d=g(j.getHtml(),/\n$/,"")+"\n\n"+g(e.getHtml(),/^\n/,"");CKEDITOR.env.ie?e.$.outerHTML="
"+d+"
":e.setHtml(d);j.remove()}}else e&&p(b)}function c(a){var c=[];g(a.getOuterHtml(),/(\S\s*)\n(?:\s|(]+data-cke-bookmark.*?\/span>))*\n(?!$)/gi,function(a,c,b){return c+"
"+b+"
"}).replace(/([\s\S]*?)<\/pre>/gi,function(a,
+b){c.push(b)});return c}function g(a,c,b){var g="",e="",a=a.replace(/(^]+data-cke-bookmark.*?\/span>)|(]+data-cke-bookmark.*?\/span>$)/gi,function(a,c,b){c&&(g=c);b&&(e=b);return""});return g+a.replace(c,b)+e}function l(a,c){var b;a.length>1&&(b=new CKEDITOR.dom.documentFragment(c.getDocument()));for(var e=0;e"),d=d.replace(/[ \t]{2,}/g,function(a){return CKEDITOR.tools.repeat(" ",a.length-1)+" "});if(b){var h=c.clone();h.setHtml(d);b.append(h)}else c.setHtml(d)}return b||c}function q(a,c){var b=this._.definition,g=b.attributes,b=b.styles,e=y(this)[a.getName()],d=CKEDITOR.tools.isEmpty(g)&&CKEDITOR.tools.isEmpty(b),h;for(h in g)if(!((h=="class"||this._.definition.fullMatch)&&a.getAttribute(h)!=v(h,g[h]))&&!(c&&h.slice(0,
+5)=="data-")){d=a.hasAttribute(h);a.removeAttribute(h)}for(var f in b)if(!(this._.definition.fullMatch&&a.getStyle(f)!=v(f,b[f],true))){d=d||!!a.getStyle(f);a.removeStyle(f)}o(a,e,t[a.getName()]);d&&(this._.definition.alwaysRemoveElement?p(a,1):!CKEDITOR.dtd.$block[a.getName()]||this._.enterMode==CKEDITOR.ENTER_BR&&!a.hasAttributes()?p(a):a.renameNode(this._.enterMode==CKEDITOR.ENTER_P?"p":"div"))}function n(a){for(var c=y(this),b=a.getElementsByTag(this.element),g,e=b.count();--e>=0;){g=b.getItem(e);
+g.isReadOnly()||q.call(this,g,true)}for(var d in c)if(d!=this.element){b=a.getElementsByTag(d);for(e=b.count()-1;e>=0;e--){g=b.getItem(e);g.isReadOnly()||o(g,c[d])}}}function o(a,c,b){if(c=c&&c.attributes)for(var g=0;g",a||c.name,"");return b.join("")},getDefinition:function(){return this._.definition}};CKEDITOR.style.getStyleText=function(a){var c=a._ST;if(c)return c;var c=a.styles,b=a.attributes&&a.attributes.style||"",g="";b.length&&(b=b.replace(z,";"));for(var e in c){var d=c[e],h=(e+":"+d).replace(z,";");d=="inherit"?g=g+h:b=b+h}b.length&&(b=CKEDITOR.tools.normalizeCssText(b,true));return a._ST=b+g};CKEDITOR.style.customHandlers={};
+CKEDITOR.style.addCustomHandler=function(a){var c=function(a){this._={definition:a};this.setup&&this.setup(a)};c.prototype=CKEDITOR.tools.extend(CKEDITOR.tools.prototypedCopy(CKEDITOR.style.prototype),{assignedTo:CKEDITOR.STYLE_OBJECT},a,true);return this.customHandlers[a.type]=c};var D=CKEDITOR.POSITION_PRECEDING|CKEDITOR.POSITION_IDENTICAL|CKEDITOR.POSITION_IS_CONTAINED,C=CKEDITOR.POSITION_FOLLOWING|CKEDITOR.POSITION_IDENTICAL|CKEDITOR.POSITION_IS_CONTAINED}(),CKEDITOR.styleCommand=function(a,f){this.requiredContent=
+this.allowedContent=this.style=a;CKEDITOR.tools.extend(this,f,true)},CKEDITOR.styleCommand.prototype.exec=function(a){a.focus();this.state==CKEDITOR.TRISTATE_OFF?a.applyStyle(this.style):this.state==CKEDITOR.TRISTATE_ON&&a.removeStyle(this.style)},CKEDITOR.stylesSet=new CKEDITOR.resourceManager("","stylesSet"),CKEDITOR.addStylesSet=CKEDITOR.tools.bind(CKEDITOR.stylesSet.add,CKEDITOR.stylesSet),CKEDITOR.loadStylesSet=function(a,f,b){CKEDITOR.stylesSet.addExternal(a,f,"");CKEDITOR.stylesSet.load(a,
+b)},CKEDITOR.tools.extend(CKEDITOR.editor.prototype,{attachStyleStateChange:function(a,f){var b=this._.styleStateChangeCallbacks;if(!b){b=this._.styleStateChangeCallbacks=[];this.on("selectionChange",function(a){for(var h=0;h"}}),"use strict",function(){var a={},f={},b;for(b in CKEDITOR.dtd.$blockLimit)b in CKEDITOR.dtd.$list||(a[b]=1);for(b in CKEDITOR.dtd.$block)b in CKEDITOR.dtd.$blockLimit||b in CKEDITOR.dtd.$empty||(f[b]=1);CKEDITOR.dom.elementPath=function(b,h){var k=null,j=null,i=[],e=b,c,h=h||b.getDocument().getBody();
+do if(e.type==CKEDITOR.NODE_ELEMENT){i.push(e);if(!this.lastElement){this.lastElement=e;if(e.is(CKEDITOR.dtd.$object)||e.getAttribute("contenteditable")=="false")continue}if(e.equals(h))break;if(!j){c=e.getName();e.getAttribute("contenteditable")=="true"?j=e:!k&&f[c]&&(k=e);if(a[c]){var g;if(g=!k){if(c=c=="div"){a:{c=e.getChildren();g=0;for(var l=c.count();g-1}:typeof a=="function"?d=a:typeof a=="object"&&(d=function(b){return b.getName()in a});var h=this.elements,k=h.length;f&&k--;if(b){h=Array.prototype.slice.call(h,0);h.reverse()}for(f=0;f=d){k=h.createText("");k.insertAfter(this)}else{a=h.createText("");a.insertAfter(k);a.remove()}return k},substring:function(a,f){return typeof f!="number"?this.$.nodeValue.substr(a):this.$.nodeValue.substring(a,f)}}),function(){function a(a,d,h){var f=a.serializable,j=d[h?"endContainer":"startContainer"],i=h?"endOffset":"startOffset",e=f?d.document.getById(a.startNode):a.startNode,a=f?d.document.getById(a.endNode):a.endNode;if(j.equals(e.getPrevious())){d.startOffset=
+d.startOffset-j.getLength()-a.getPrevious().getLength();j=a.getNext()}else if(j.equals(a.getPrevious())){d.startOffset=d.startOffset-j.getLength();j=a.getNext()}j.equals(e.getParent())&&d[i]++;j.equals(a.getParent())&&d[i]++;d[h?"endContainer":"startContainer"]=j;return d}CKEDITOR.dom.rangeList=function(a){if(a instanceof CKEDITOR.dom.rangeList)return a;a?a instanceof CKEDITOR.dom.range&&(a=[a]):a=[];return CKEDITOR.tools.extend(a,f)};var f={createIterator:function(){var a=this,d=CKEDITOR.dom.walker.bookmark(),
+h=[],f;return{getNextRange:function(j){f=f===void 0?0:f+1;var i=a[f];if(i&&a.length>1){if(!f)for(var e=a.length-1;e>=0;e--)h.unshift(a[e].createBookmark(true));if(j)for(var c=0;a[f+c+1];){for(var g=i.document,j=0,e=g.getById(h[c].endNode),g=g.getById(h[c+1].startNode);;){e=e.getNextSourceNode(false);if(g.equals(e))j=1;else if(d(e)||e.type==CKEDITOR.NODE_ELEMENT&&e.isBlockBoundary())continue;break}if(!j)break;c++}for(i.moveToBookmark(h.shift());c--;){e=a[++f];e.moveToBookmark(h.shift());i.setEnd(e.endContainer,
+e.endOffset)}}return i}}},createBookmarks:function(b){for(var d=[],h,f=0;fc?-1:1}),d=0,h;d',CKEDITOR.document);a.appendTo(CKEDITOR.document.getHead());try{var f=a.getComputedStyle("border-top-color"),b=a.getComputedStyle("border-right-color");CKEDITOR.env.hc=!!(f&&f==b)}catch(d){CKEDITOR.env.hc=false}a.remove()}if(CKEDITOR.env.hc)CKEDITOR.env.cssClass=CKEDITOR.env.cssClass+" cke_hc";CKEDITOR.document.appendStyleText(".cke{visibility:hidden;}");
+CKEDITOR.status="loaded";CKEDITOR.fireOnce("loaded");if(a=CKEDITOR._.pending){delete CKEDITOR._.pending;for(f=0;f",c.label,"",'");else{e={type:"hbox",widths:c.widths,padding:0,children:[{type:"html",html:'