From 9f6958bea9f19a2889c4cd4006293624697a17bb Mon Sep 17 00:00:00 2001
From: Brian Weaver <weaver.299@osu.edu>
Date: Mon, 16 Mar 2020 14:12:21 -0400
Subject: [PATCH] Update drupal/core-recommended to 8.8.3

---
 composer.json                                 |    2 +-
 composer.lock                                 |   24 +-
 vendor/composer/autoload_classmap.php         |    1 +
 vendor/composer/autoload_static.php           |    1 +
 vendor/composer/installed.json                |   26 +-
 web/core/MAINTAINERS.txt                      |    1 -
 web/core/assets/vendor/ckeditor/CHANGES.md    |  617 +++----
 web/core/assets/vendor/ckeditor/ckeditor.js   | 1482 ++++++++---------
 web/core/assets/vendor/ckeditor/lang/af.js    |    2 +-
 web/core/assets/vendor/ckeditor/lang/ar.js    |    2 +-
 web/core/assets/vendor/ckeditor/lang/az.js    |    2 +-
 web/core/assets/vendor/ckeditor/lang/bg.js    |    2 +-
 web/core/assets/vendor/ckeditor/lang/bn.js    |    2 +-
 web/core/assets/vendor/ckeditor/lang/bs.js    |    2 +-
 web/core/assets/vendor/ckeditor/lang/ca.js    |    2 +-
 web/core/assets/vendor/ckeditor/lang/cs.js    |    2 +-
 web/core/assets/vendor/ckeditor/lang/cy.js    |    2 +-
 web/core/assets/vendor/ckeditor/lang/da.js    |    4 +-
 web/core/assets/vendor/ckeditor/lang/de-ch.js |    2 +-
 web/core/assets/vendor/ckeditor/lang/de.js    |    2 +-
 web/core/assets/vendor/ckeditor/lang/el.js    |    2 +-
 web/core/assets/vendor/ckeditor/lang/en-au.js |    2 +-
 web/core/assets/vendor/ckeditor/lang/en-ca.js |    2 +-
 web/core/assets/vendor/ckeditor/lang/en-gb.js |    2 +-
 web/core/assets/vendor/ckeditor/lang/en.js    |    2 +-
 web/core/assets/vendor/ckeditor/lang/eo.js    |    2 +-
 web/core/assets/vendor/ckeditor/lang/es-mx.js |    2 +-
 web/core/assets/vendor/ckeditor/lang/es.js    |    2 +-
 web/core/assets/vendor/ckeditor/lang/et.js    |    2 +-
 web/core/assets/vendor/ckeditor/lang/eu.js    |    2 +-
 web/core/assets/vendor/ckeditor/lang/fa.js    |    4 +-
 web/core/assets/vendor/ckeditor/lang/fi.js    |    2 +-
 web/core/assets/vendor/ckeditor/lang/fo.js    |    2 +-
 web/core/assets/vendor/ckeditor/lang/fr-ca.js |    2 +-
 web/core/assets/vendor/ckeditor/lang/fr.js    |    2 +-
 web/core/assets/vendor/ckeditor/lang/gl.js    |    2 +-
 web/core/assets/vendor/ckeditor/lang/gu.js    |    2 +-
 web/core/assets/vendor/ckeditor/lang/he.js    |    2 +-
 web/core/assets/vendor/ckeditor/lang/hi.js    |    2 +-
 web/core/assets/vendor/ckeditor/lang/hr.js    |    2 +-
 web/core/assets/vendor/ckeditor/lang/hu.js    |    2 +-
 web/core/assets/vendor/ckeditor/lang/id.js    |    2 +-
 web/core/assets/vendor/ckeditor/lang/is.js    |    2 +-
 web/core/assets/vendor/ckeditor/lang/it.js    |    2 +-
 web/core/assets/vendor/ckeditor/lang/ja.js    |    2 +-
 web/core/assets/vendor/ckeditor/lang/ka.js    |    2 +-
 web/core/assets/vendor/ckeditor/lang/km.js    |    2 +-
 web/core/assets/vendor/ckeditor/lang/ko.js    |    4 +-
 web/core/assets/vendor/ckeditor/lang/ku.js    |    2 +-
 web/core/assets/vendor/ckeditor/lang/lt.js    |    2 +-
 web/core/assets/vendor/ckeditor/lang/lv.js    |    2 +-
 web/core/assets/vendor/ckeditor/lang/mk.js    |    2 +-
 web/core/assets/vendor/ckeditor/lang/mn.js    |    2 +-
 web/core/assets/vendor/ckeditor/lang/ms.js    |    2 +-
 web/core/assets/vendor/ckeditor/lang/nb.js    |    2 +-
 web/core/assets/vendor/ckeditor/lang/nl.js    |    2 +-
 web/core/assets/vendor/ckeditor/lang/no.js    |    2 +-
 web/core/assets/vendor/ckeditor/lang/oc.js    |    2 +-
 web/core/assets/vendor/ckeditor/lang/pl.js    |    2 +-
 web/core/assets/vendor/ckeditor/lang/pt-br.js |    4 +-
 web/core/assets/vendor/ckeditor/lang/pt.js    |    2 +-
 web/core/assets/vendor/ckeditor/lang/ro.js    |    2 +-
 web/core/assets/vendor/ckeditor/lang/ru.js    |    2 +-
 web/core/assets/vendor/ckeditor/lang/si.js    |    2 +-
 web/core/assets/vendor/ckeditor/lang/sk.js    |    2 +-
 web/core/assets/vendor/ckeditor/lang/sl.js    |    2 +-
 web/core/assets/vendor/ckeditor/lang/sq.js    |    2 +-
 .../assets/vendor/ckeditor/lang/sr-latn.js    |    2 +-
 web/core/assets/vendor/ckeditor/lang/sr.js    |    2 +-
 web/core/assets/vendor/ckeditor/lang/sv.js    |    2 +-
 web/core/assets/vendor/ckeditor/lang/th.js    |    2 +-
 web/core/assets/vendor/ckeditor/lang/tr.js    |    2 +-
 web/core/assets/vendor/ckeditor/lang/tt.js    |    2 +-
 web/core/assets/vendor/ckeditor/lang/ug.js    |    2 +-
 web/core/assets/vendor/ckeditor/lang/uk.js    |    2 +-
 web/core/assets/vendor/ckeditor/lang/vi.js    |    4 +-
 web/core/assets/vendor/ckeditor/lang/zh-cn.js |    2 +-
 web/core/assets/vendor/ckeditor/lang/zh.js    |    2 +-
 .../specialchar/dialogs/specialchar.js        |   20 +-
 .../plugins/tabletools/dialogs/tableCell.js   |   28 +-
 .../ckeditor/skins/moono-lisa/editor.css      |    2 +-
 .../skins/moono-lisa/editor_gecko.css         |    2 +-
 .../ckeditor/skins/moono-lisa/editor_ie.css   |    2 +-
 .../ckeditor/skins/moono-lisa/editor_ie8.css  |    2 +-
 .../skins/moono-lisa/editor_iequirks.css      |    2 +-
 web/core/core.libraries.yml                   |    4 +-
 web/core/core.services.yml                    |    1 +
 web/core/drupalci.yml                         |    4 -
 web/core/includes/bootstrap.inc               |    2 +-
 web/core/includes/database.inc                |    2 +-
 web/core/includes/install.core.inc            |    8 +-
 web/core/includes/schema.inc                  |    7 +-
 web/core/includes/theme.inc                   |   10 +-
 web/core/includes/update.inc                  |    2 +-
 web/core/lib/Drupal.php                       |    2 +-
 .../Annotation/Doctrine/DocParser.php         |    8 +-
 .../lib/Drupal/Component/Datetime/Time.php    |   16 +-
 .../Component/Datetime/TimeInterface.php      |    6 +
 .../lib/Drupal/Core/Access/AccessResult.php   |    1 +
 .../Drupal/Core/Archiver/ArchiverManager.php  |   19 +-
 .../Core/Asset/LibraryDiscoveryParser.php     |    2 +-
 .../Drupal/Core/Config/StorageComparer.php    |    4 +-
 .../lib/Drupal/Core/Database/Connection.php   |    2 +-
 .../Core/Database/Driver/mysql/Schema.php     |    4 +-
 .../Core/Database/Driver/pgsql/Schema.php     |    4 +-
 .../Core/Database/Driver/sqlite/Schema.php    |    4 +-
 .../Drupal/Core/Database/Install/Tasks.php    |    4 +-
 .../Drupal/Core/Datetime/DrupalDateTime.php   |   29 +-
 .../Drupal/Core/Entity/ContentEntityType.php  |   26 +-
 .../Entity/ContentEntityTypeInterface.php     |   13 +
 .../Sql/SqlContentEntityStorageSchema.php     |   62 +-
 .../lib/Drupal/Core/Entity/entity.api.php     |   14 +
 .../Drupal/Core/Field/AllowedTagsXssTrait.php |    3 +
 .../Core/Field/PluginSettingsInterface.php    |    4 +-
 .../lib/Drupal/Core/Form/FormSubmitter.php    |    4 +-
 web/core/lib/Drupal/Core/Render/Element.php   |    2 +-
 .../Render/ElementInfoManagerInterface.php    |    2 +-
 .../lib/Drupal/Core/Routing/RouteProvider.php |    2 +-
 .../Drupal/Core/Security/RequestSanitizer.php |    2 +-
 .../lib/Drupal/Core/Template/Attribute.php    |   30 +
 .../Drupal/Core/Template/AttributeHelper.php  |   76 +
 web/core/misc/ajax.es6.js                     |   22 +-
 web/core/misc/dialog/off-canvas.tabledrag.css |    2 +-
 web/core/modules/color/color.module           |    5 +-
 .../modules/comment/migrations/d7_comment.yml |    6 +-
 .../Kernel/Migrate/d7/MigrateCommentTest.php  |   20 +
 web/core/modules/editor/editor.module         |    2 -
 web/core/modules/field/field.module           |    2 +-
 .../process/d7/FieldInstanceSettings.php      |    2 +-
 .../migrate/source/d7/FieldInstance.php       |    3 -
 .../source/d7/FieldOptionTranslation.php      |   11 +-
 .../d7/MigrateFieldOptionTranslationTest.php  |    3 +
 .../templates/field-ui-table.html.twig        |    2 +-
 .../EntityReferenceItemNormalizer.php         |    5 +-
 .../modules/help_topics/help_topics.module    |    2 +-
 .../language/src/LanguageServiceProvider.php  |    6 +
 .../BlockComponentRenderArray.php             |    7 +
 .../src/Plugin/Block/FieldBlock.php           |    2 +-
 ...FieldBlockEntityReferenceCacheTagsTest.php |  141 ++
 .../tests/src/Kernel/FieldBlockTest.php       |   19 +-
 .../Unit/BlockComponentRenderArrayTest.php    |   64 +-
 .../src/Plugin/Field/FieldType/LinkItem.php   |   12 +-
 web/core/modules/locale/locale.bulk.inc       |    5 +
 .../src/Plugin/migrate/process/LinkUri.php    |    3 +
 .../Plugin/migrate/process/LinkUriTest.php    |    4 +
 .../migrate/src/Plugin/migrate/id_map/Sql.php |    2 +-
 .../src/Kernel/MigrateConfigRollbackTest.php  |    3 +-
 .../migrate_drupal/tests/fixtures/drupal7.php |  100 +-
 .../tests/src/Functional/d7/Upgrade7Test.php  |    4 +-
 web/core/modules/node/node.module             |    2 +-
 .../Plugin/Field/FieldType/ListFloatItem.php  |    3 +-
 .../Field/FieldType/ListIntegerItem.php       |    3 +-
 .../Plugin/Field/FieldType/ListStringItem.php |    3 +-
 web/core/modules/rdf/rdf.module               |    4 +-
 .../src/Functional/CommentAttributesTest.php  |   79 +-
 .../EntityReferenceFieldAttributesTest.php    |   23 +-
 .../Functional/FileFieldAttributesTest.php    |   21 +-
 .../Functional/ImageFieldAttributesTest.php   |   23 +-
 .../src/Functional/NodeAttributesTest.php     |   30 +-
 .../src/Functional/StandardProfileTest.php    |  118 +-
 .../src/Functional/TaxonomyAttributesTest.php |   27 +-
 .../src/Functional/UserAttributesTest.php     |   39 +-
 .../src/Kernel/Field/FieldRdfaTestBase.php    |   14 +-
 .../tests/src/Traits/EasyRdf_ParsedUri.php    |  352 ++++
 .../rdf/tests/src/Traits/RdfParsingTrait.php  |  146 ++
 .../Unit/RdfMappingConfigEntityUnitTest.php   |    8 +-
 web/core/modules/system/system.module         |   41 +-
 .../templates/menu-local-tasks.html.twig      |    2 +-
 ...rupal-8.update-test-postupdate-enabled.php |   39 -
 ...update-test-postupdate-failing-enabled.php |   38 -
 .../entity_test_revlog.install                |   14 +
 .../EntityTestMulWithRevisionLogPub.php       |   45 +
 .../modules/system_test/system_test.module    |   18 +
 .../update_test_no_preexisting.info.yml       |    5 +
 .../update_test_no_preexisting.install        |   13 +
 .../Traits/EntityDefinitionTestTrait.php      |   10 +-
 .../MoveRevisionMetadataFieldsUpdateTest.php  |   40 +
 .../Update/BrokenCacheUpdateTest.php          |   17 +-
 .../Update/NoPreExistingSchemaUpdateTest.php  |   55 +
 .../Update/PathAliasToEntityUpdateTest.php    |   63 +-
 .../Update/UpdatePathNewDependencyTest.php    |   16 +-
 .../Update/UpdatePathTestJavaScriptTest.php   |   13 +-
 .../UpdatePathWithBrokenRoutingFilledTest.php |   30 +-
 .../UpdatePathWithBrokenRoutingTest.php       |   20 +-
 .../Update/UpdatePostUpdateFailingTest.php    |   44 +-
 .../Update/UpdatePostUpdateTest.php           |   46 +-
 .../source/d6/TermLocalizedTranslation.php    |    8 +-
 web/core/modules/taxonomy/taxonomy.module     |    2 +-
 .../modules/taxonomy/taxonomy.post_update.php |    2 +-
 .../tests/src/Kernel/TermKernelTest.php       |   23 +
 .../Views/ArgumentValidatorTermTest.php       |    4 +-
 .../modules/toolbar/css/toolbar.module.css    |    2 +-
 .../update/src/Form/UpdateManagerUpdate.php   |    4 +-
 web/core/modules/update/src/ModuleVersion.php |  131 ++
 .../update/src/ProjectCoreCompatibility.php   |  229 +++
 .../update/src/ProjectSecurityData.php        |  211 +++
 .../update/src/ProjectSecurityRequirement.php |  282 ++++
 web/core/modules/update/src/UpdateFetcher.php |    2 +-
 .../update/templates/update-version.html.twig |   23 +-
 .../aaa_update_test.1_0-supported.xml         |   80 +
 .../aaa_update_test.1_0-unsupported.xml       |   86 +
 .../update_test/aaa_update_test.1_0.xml       |   23 +-
 .../aaa_update_test.1_1-alpha1.xml            |   28 +-
 .../update_test/aaa_update_test.1_1-beta1.xml |   33 +-
 .../update_test/aaa_update_test.1_1.xml       |   37 +-
 .../aaa_update_test.1_2-alpha1.xml            |   42 +-
 .../update_test/aaa_update_test.1_2-beta1.xml |   47 +-
 .../update_test/aaa_update_test.1_2.xml       |   51 +-
 .../aaa_update_test.2_0-alpha1.xml            |   56 +-
 .../update_test/aaa_update_test.2_0-beta1.xml |   63 +-
 .../update_test/aaa_update_test.2_0.xml       |   65 +-
 .../update_test/aaa_update_test.8.x-1.2.xml   |   69 +
 ...est.core_compatibility.8.x-1.2_8.x-2.2.xml |   58 +
 .../aaa_update_test.sec.8.x-1.1_8.x-1.2.xml   |   17 +-
 .../aaa_update_test.sec.8.x-1.2.xml           |   17 +-
 .../aaa_update_test.sec.8.x-1.2_8.x-2.2.xml   |   39 +-
 ...aaa_update_test.sec.8.x-2.2_1.x_secure.xml |   31 +-
 .../update_test/bbb_update_test.1_0.xml       |    9 +-
 .../update_test/ccc_update_test.1_0.xml       |    9 +-
 .../modules/update_test/drupal.0.0-alpha1.xml |   25 +-
 .../modules/update_test/drupal.0.0-beta1.xml  |   31 +-
 .../tests/modules/update_test/drupal.0.0.xml  |   36 +-
 .../modules/update_test/drupal.0.1-alpha1.xml |   42 +-
 .../modules/update_test/drupal.0.1-beta1.xml  |   48 +-
 .../tests/modules/update_test/drupal.0.1.xml  |   53 +-
 .../modules/update_test/drupal.1.0-alpha1.xml |   59 +-
 .../modules/update_test/drupal.1.0-beta1.xml  |   65 +-
 .../update_test/drupal.1.0-unsupported.xml    |  163 ++
 .../tests/modules/update_test/drupal.1.0.xml  |   97 +-
 .../drupal.1.1-alpha1-core_compatibility.xml  |  144 ++
 .../modules/update_test/drupal.1.1-alpha1.xml |   76 +-
 .../modules/update_test/drupal.1.1-beta1.xml  |   82 +-
 .../drupal.1.1-core_compatibility.xml         |  170 ++
 .../tests/modules/update_test/drupal.1.1.xml  |   87 +-
 .../tests/modules/update_test/drupal.9.xml    |   10 +-
 .../tests/modules/update_test/drupal.dev.xml  |   15 +-
 .../update_test/drupal.sec.0.1_0.2.xml        |   20 +-
 .../update_test/drupal.sec.0.2-rc2-b.xml      |   71 +-
 .../update_test/drupal.sec.0.2-rc2.xml        |   71 +-
 .../modules/update_test/drupal.sec.0.2.xml    |   20 +-
 .../modules/update_test/drupal.sec.1.2.xml    |   35 +-
 .../drupal.sec.1.2_insecure-unsupported.xml   |  103 ++
 .../update_test/drupal.sec.1.2_insecure.xml   |   35 +-
 .../modules/update_test/drupal.sec.2.0.xml    |   88 +
 .../update_test/drupal.sec.2.0_3.0-rc1.xml    |  104 ++
 .../update_test/drupal.sec.2.0_9.0.0.xml      |  126 ++
 .../modules/update_test/drupal.sec.9.0.xml    |  107 ++
 .../modules/update_test/drupal.sec.9.9.0.xml  |  107 ++
 .../update_test/src/Datetime/TestTime.php     |   22 +
 .../update_test/update_test.services.yml      |    4 +
 .../update_test_basetheme.1_1-sec.xml         |   13 +-
 .../update_test_new_module.1_1.xml            |    9 +-
 .../update_test/update_test_subtheme.1_0.xml  |    9 +-
 .../FileTransferAuthorizeFormTest.php         |   32 +-
 .../src/Functional/UpdateContribTest.php      |  161 ++
 .../tests/src/Functional/UpdateCoreTest.php   |  294 ++++
 .../tests/src/Functional/UpdateTestBase.php   |   89 +-
 .../tests/src/Unit/ModuleVersionTest.php      |  400 +++++
 .../src/Unit/ProjectCoreCompatibilityTest.php |  143 ++
 .../tests/src/Unit/UpdateFetcherTest.php      |   12 +-
 web/core/modules/update/update.compare.inc    |  160 +-
 web/core/modules/update/update.install        |    9 +
 web/core/modules/update/update.report.inc     |   30 +
 web/core/modules/user/src/RoleInterface.php   |    4 +-
 .../tests/src/Functional/UserBlocksTest.php   |   11 -
 .../Plugin/views/display/PathPluginBase.php   |    2 +-
 .../exposed_form/ExposedFormPluginBase.php    |    6 +-
 .../views/templates/views-view-opml.html.twig |    2 +-
 .../views/templates/views-view-rss.html.twig  |    2 +-
 .../src/Functional/Handler/HandlerAllTest.php |    4 +
 .../tests/src/Functional/Wizard/BasicTest.php |   14 +
 .../Kernel/Plugin/FieldOrLanguageJoinTest.php |    8 +-
 ...ViewsConfigDependenciesIntegrationTest.php |    2 +-
 .../Unit/Plugin/field/FieldPluginBaseTest.php |    3 +
 web/core/modules/views_ui/src/ViewAddForm.php |    7 +
 .../workspaces/src/EntityOperations.php       |    2 +-
 .../modules/workspaces/src/EntityTypeInfo.php |    9 +-
 .../EntitySchemaSubscriber.php                |   15 +-
 .../drupal-8.6.0-workspaces_installed.php     |  Bin 44502 -> 48180 bytes
 .../Update/WorkspacesUpdateTest.php           |    2 +-
 .../WorkspaceRevisionMetadataFieldTest.php    |   77 +
 .../Functional/WorkspacesUninstallTest.php    |    5 +-
 .../modules/workspaces/workspaces.install     |   15 +-
 .../workspaces/workspaces.post_update.php     |   19 +
 .../Template/ComposerProjectTemplatesTest.php |  211 +++
 .../FunctionalTests/AssertLegacyTrait.php     |  204 +--
 .../FunctionalTests/BrowserTestBaseTest.php   |   12 +-
 .../Test/AssertLegacyTraitDeprecatedTest.php  |    2 +-
 .../Update/UpdatePathTestBase.php             |  145 +-
 .../Core/Database/DatabaseLegacyTest.php      |   14 +-
 .../KernelTests/Core/Database/SelectTest.php  |   10 +-
 .../Core/Entity/FieldSqlStorageTest.php       |    6 +-
 .../FieldableEntityDefinitionUpdateTest.php   |   39 +-
 .../Drupal/KernelTests/KernelTestBase.php     |    7 +-
 .../tests/Drupal/Tests/BrowserTestBase.php    |    6 +-
 .../Annotation/Doctrine/DocParserTest.php     |   99 +-
 .../Tests/Component/Datetime/TimeTest.php     |   22 +
 .../Tests/Core/Access/AccessResultTest.php    |   16 +
 .../Core/Assert/AssertLegacyTraitTest.php     |    4 +-
 .../Asset/CssCollectionRendererUnitTest.php   |    2 +-
 .../YamlFileLoaderTest.php                    |    6 +-
 .../AllowedTagsXssTraitDeprecateTest.php      |   37 +
 .../Core/Template/AttributeHelperTest.php     |   82 +
 .../Tests/Core/Template/AttributeTest.php     |   58 +
 .../Drupal/Tests/UpdatePathTestTrait.php      |  169 ++
 web/core/tests/bootstrap.php                  |    2 +-
 .../test_composer_project_templates.sh        |   48 -
 web/core/themes/claro/claro.theme             |    2 +-
 .../templates/admin/update-version.html.twig  |   23 +-
 .../themes/seven/css/theme/update-report.css  |   28 +
 web/core/themes/seven/seven.libraries.yml     |    6 +
 web/core/themes/seven/seven.theme             |   13 +
 .../layout--fourcol-section.html.twig         |    4 +-
 .../layout--threecol-section.html.twig        |    4 +-
 .../layout--twocol-section.html.twig          |    4 +-
 ...guage-negotiation-configure-form.html.twig |   35 +-
 .../admin/status-report-counter.html.twig     |    1 -
 .../admin/system-config-form.html.twig        |    4 +-
 .../templates/admin/update-version.html.twig  |   23 +-
 .../content-edit/entity-add-list.html.twig    |    4 +-
 .../templates/content/comment.html.twig       |    2 +-
 .../content/media-embed-error.html.twig       |    4 +-
 .../content/media-oembed-iframe.html.twig     |    4 +-
 .../stable/templates/content/media.html.twig  |    2 -
 .../content/off-canvas-page-wrapper.html.twig |    2 +-
 .../stable/templates/dataset/forums.html.twig |    1 +
 .../templates/field/file-audio.html.twig      |    4 +-
 .../templates/field/file-video.html.twig      |    4 +-
 .../stable/templates/form/fieldset.html.twig  |   23 +-
 .../stable/templates/form/textarea.html.twig  |    2 +-
 .../templates/layout/layout--onecol.html.twig |    4 +-
 .../layout--threecol-25-50-25.html.twig       |    4 +-
 .../layout--threecol-33-34-33.html.twig       |    4 +-
 .../layout/layout--twocol-bricks.html.twig    |    4 +-
 .../templates/layout/layout--twocol.html.twig |    4 +-
 .../stable/templates/layout/region.html.twig  |    2 +-
 .../media--media-library.html.twig            |    4 +-
 .../media-library-item.html.twig              |    4 +-
 .../media-library-wrapper.html.twig           |    6 +-
 339 files changed, 8161 insertions(+), 3414 deletions(-)
 create mode 100644 web/core/lib/Drupal/Core/Template/AttributeHelper.php
 create mode 100644 web/core/modules/layout_builder/tests/src/Functional/LayoutBuilderFieldBlockEntityReferenceCacheTagsTest.php
 create mode 100644 web/core/modules/rdf/tests/src/Traits/EasyRdf_ParsedUri.php
 create mode 100644 web/core/modules/rdf/tests/src/Traits/RdfParsingTrait.php
 delete mode 100644 web/core/modules/system/tests/fixtures/update/drupal-8.update-test-postupdate-enabled.php
 delete mode 100644 web/core/modules/system/tests/fixtures/update/drupal-8.update-test-postupdate-failing-enabled.php
 create mode 100644 web/core/modules/system/tests/modules/entity_test_revlog/entity_test_revlog.install
 create mode 100644 web/core/modules/system/tests/modules/entity_test_revlog/src/Entity/EntityTestMulWithRevisionLogPub.php
 create mode 100644 web/core/modules/system/tests/modules/update_test_no_preexisting/update_test_no_preexisting.info.yml
 create mode 100644 web/core/modules/system/tests/modules/update_test_no_preexisting/update_test_no_preexisting.install
 create mode 100644 web/core/modules/system/tests/src/Functional/Update/NoPreExistingSchemaUpdateTest.php
 create mode 100644 web/core/modules/update/src/ModuleVersion.php
 create mode 100644 web/core/modules/update/src/ProjectCoreCompatibility.php
 create mode 100644 web/core/modules/update/src/ProjectSecurityData.php
 create mode 100644 web/core/modules/update/src/ProjectSecurityRequirement.php
 create mode 100644 web/core/modules/update/tests/modules/update_test/aaa_update_test.1_0-supported.xml
 create mode 100644 web/core/modules/update/tests/modules/update_test/aaa_update_test.1_0-unsupported.xml
 create mode 100644 web/core/modules/update/tests/modules/update_test/aaa_update_test.8.x-1.2.xml
 create mode 100644 web/core/modules/update/tests/modules/update_test/aaa_update_test.core_compatibility.8.x-1.2_8.x-2.2.xml
 create mode 100644 web/core/modules/update/tests/modules/update_test/drupal.1.0-unsupported.xml
 create mode 100644 web/core/modules/update/tests/modules/update_test/drupal.1.1-alpha1-core_compatibility.xml
 create mode 100644 web/core/modules/update/tests/modules/update_test/drupal.1.1-core_compatibility.xml
 create mode 100644 web/core/modules/update/tests/modules/update_test/drupal.sec.1.2_insecure-unsupported.xml
 create mode 100644 web/core/modules/update/tests/modules/update_test/drupal.sec.2.0.xml
 create mode 100644 web/core/modules/update/tests/modules/update_test/drupal.sec.2.0_3.0-rc1.xml
 create mode 100644 web/core/modules/update/tests/modules/update_test/drupal.sec.2.0_9.0.0.xml
 create mode 100644 web/core/modules/update/tests/modules/update_test/drupal.sec.9.0.xml
 create mode 100644 web/core/modules/update/tests/modules/update_test/drupal.sec.9.9.0.xml
 create mode 100644 web/core/modules/update/tests/modules/update_test/src/Datetime/TestTime.php
 create mode 100644 web/core/modules/update/tests/modules/update_test/update_test.services.yml
 create mode 100644 web/core/modules/update/tests/src/Unit/ModuleVersionTest.php
 create mode 100644 web/core/modules/update/tests/src/Unit/ProjectCoreCompatibilityTest.php
 create mode 100644 web/core/modules/workspaces/tests/src/Functional/WorkspaceRevisionMetadataFieldTest.php
 create mode 100644 web/core/tests/Drupal/BuildTests/Composer/Template/ComposerProjectTemplatesTest.php
 create mode 100644 web/core/tests/Drupal/Tests/Core/Field/AllowedTagsXssTraitDeprecateTest.php
 create mode 100644 web/core/tests/Drupal/Tests/Core/Template/AttributeHelperTest.php
 create mode 100644 web/core/tests/Drupal/Tests/UpdatePathTestTrait.php
 delete mode 100755 web/core/tests/scripts/test_composer_project_templates.sh
 create mode 100644 web/core/themes/seven/css/theme/update-report.css

diff --git a/composer.json b/composer.json
index 3bbe92c2ff..f3dc7a2784 100644
--- a/composer.json
+++ b/composer.json
@@ -105,7 +105,7 @@
         "drupal/config_update": "1.5",
         "drupal/console": "1.8",
         "drupal/content_access": "1.0-alpha1",
-        "drupal/core-recommended": "8.8.2",
+        "drupal/core-recommended": "8.8.3",
         "drupal/crop": "2.0-rc1",
         "drupal/ctools": "3.2",
         "drupal/devel": "2.0",
diff --git a/composer.lock b/composer.lock
index 9c4c43e312..290c2a62e1 100644
--- a/composer.lock
+++ b/composer.lock
@@ -4,7 +4,7 @@
         "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
         "This file is @generated automatically"
     ],
-    "content-hash": "9e737f53869960f42c47910fdc3c02ac",
+    "content-hash": "db8018ab2f0e51bc0f08ec430804a913",
     "packages": [
         {
             "name": "alchemy/zippy",
@@ -3387,16 +3387,16 @@
         },
         {
             "name": "drupal/core",
-            "version": "8.8.2",
+            "version": "8.8.3",
             "source": {
                 "type": "git",
                 "url": "https://github.com/drupal/core.git",
-                "reference": "f997857003276c2ae6d27db30f0eab9c7dd10e62"
+                "reference": "77971de6d6ade7366cdd3fadfc16c5d02e531446"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/drupal/core/zipball/f997857003276c2ae6d27db30f0eab9c7dd10e62",
-                "reference": "f997857003276c2ae6d27db30f0eab9c7dd10e62",
+                "url": "https://api.github.com/repos/drupal/core/zipball/77971de6d6ade7366cdd3fadfc16c5d02e531446",
+                "reference": "77971de6d6ade7366cdd3fadfc16c5d02e531446",
                 "shasum": ""
             },
             "require": {
@@ -3618,20 +3618,20 @@
                 "GPL-2.0-or-later"
             ],
             "description": "Drupal is an open source content management platform powering millions of websites and applications.",
-            "time": "2020-02-01T19:51:15+00:00"
+            "time": "2020-03-04T18:01:37+00:00"
         },
         {
             "name": "drupal/core-recommended",
-            "version": "8.8.2",
+            "version": "8.8.3",
             "source": {
                 "type": "git",
                 "url": "https://github.com/drupal/core-recommended.git",
-                "reference": "67ed5b68da2784ead5a55330c6c0fde6bb3cb9f3"
+                "reference": "c43bf9881a299de9189440e0772579775b1f93f1"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/drupal/core-recommended/zipball/67ed5b68da2784ead5a55330c6c0fde6bb3cb9f3",
-                "reference": "67ed5b68da2784ead5a55330c6c0fde6bb3cb9f3",
+                "url": "https://api.github.com/repos/drupal/core-recommended/zipball/c43bf9881a299de9189440e0772579775b1f93f1",
+                "reference": "c43bf9881a299de9189440e0772579775b1f93f1",
                 "shasum": ""
             },
             "require": {
@@ -3644,7 +3644,7 @@
                 "doctrine/common": "v2.7.3",
                 "doctrine/inflector": "v1.2.0",
                 "doctrine/lexer": "1.0.2",
-                "drupal/core": "8.8.2",
+                "drupal/core": "8.8.3",
                 "easyrdf/easyrdf": "0.9.1",
                 "egulias/email-validator": "2.1.11",
                 "guzzlehttp/guzzle": "6.3.3",
@@ -3698,7 +3698,7 @@
                 "GPL-2.0-or-later"
             ],
             "description": "Locked core dependencies; require this project INSTEAD OF drupal/core.",
-            "time": "2020-02-01T19:51:15+00:00"
+            "time": "2020-03-04T18:01:37+00:00"
         },
         {
             "name": "drupal/crop",
diff --git a/vendor/composer/autoload_classmap.php b/vendor/composer/autoload_classmap.php
index f0867f40df..78ca9e36ed 100644
--- a/vendor/composer/autoload_classmap.php
+++ b/vendor/composer/autoload_classmap.php
@@ -2646,6 +2646,7 @@
     'Drupal\\Core\\Template\\Attribute' => $baseDir . '/web/core/lib/Drupal/Core/Template/Attribute.php',
     'Drupal\\Core\\Template\\AttributeArray' => $baseDir . '/web/core/lib/Drupal/Core/Template/AttributeArray.php',
     'Drupal\\Core\\Template\\AttributeBoolean' => $baseDir . '/web/core/lib/Drupal/Core/Template/AttributeBoolean.php',
+    'Drupal\\Core\\Template\\AttributeHelper' => $baseDir . '/web/core/lib/Drupal/Core/Template/AttributeHelper.php',
     'Drupal\\Core\\Template\\AttributeString' => $baseDir . '/web/core/lib/Drupal/Core/Template/AttributeString.php',
     'Drupal\\Core\\Template\\AttributeValueBase' => $baseDir . '/web/core/lib/Drupal/Core/Template/AttributeValueBase.php',
     'Drupal\\Core\\Template\\Loader\\FilesystemLoader' => $baseDir . '/web/core/lib/Drupal/Core/Template/Loader/FilesystemLoader.php',
diff --git a/vendor/composer/autoload_static.php b/vendor/composer/autoload_static.php
index c7a581ce5a..840c37d9a6 100644
--- a/vendor/composer/autoload_static.php
+++ b/vendor/composer/autoload_static.php
@@ -3299,6 +3299,7 @@ class ComposerStaticInit5c689ffcd54b9e495ed983fdce09b530
         'Drupal\\Core\\Template\\Attribute' => __DIR__ . '/../..' . '/web/core/lib/Drupal/Core/Template/Attribute.php',
         'Drupal\\Core\\Template\\AttributeArray' => __DIR__ . '/../..' . '/web/core/lib/Drupal/Core/Template/AttributeArray.php',
         'Drupal\\Core\\Template\\AttributeBoolean' => __DIR__ . '/../..' . '/web/core/lib/Drupal/Core/Template/AttributeBoolean.php',
+        'Drupal\\Core\\Template\\AttributeHelper' => __DIR__ . '/../..' . '/web/core/lib/Drupal/Core/Template/AttributeHelper.php',
         'Drupal\\Core\\Template\\AttributeString' => __DIR__ . '/../..' . '/web/core/lib/Drupal/Core/Template/AttributeString.php',
         'Drupal\\Core\\Template\\AttributeValueBase' => __DIR__ . '/../..' . '/web/core/lib/Drupal/Core/Template/AttributeValueBase.php',
         'Drupal\\Core\\Template\\Loader\\FilesystemLoader' => __DIR__ . '/../..' . '/web/core/lib/Drupal/Core/Template/Loader/FilesystemLoader.php',
diff --git a/vendor/composer/installed.json b/vendor/composer/installed.json
index deb747ca25..ecf33ce5f4 100644
--- a/vendor/composer/installed.json
+++ b/vendor/composer/installed.json
@@ -3496,17 +3496,17 @@
     },
     {
         "name": "drupal/core",
-        "version": "8.8.2",
-        "version_normalized": "8.8.2.0",
+        "version": "8.8.3",
+        "version_normalized": "8.8.3.0",
         "source": {
             "type": "git",
             "url": "https://github.com/drupal/core.git",
-            "reference": "f997857003276c2ae6d27db30f0eab9c7dd10e62"
+            "reference": "77971de6d6ade7366cdd3fadfc16c5d02e531446"
         },
         "dist": {
             "type": "zip",
-            "url": "https://api.github.com/repos/drupal/core/zipball/f997857003276c2ae6d27db30f0eab9c7dd10e62",
-            "reference": "f997857003276c2ae6d27db30f0eab9c7dd10e62",
+            "url": "https://api.github.com/repos/drupal/core/zipball/77971de6d6ade7366cdd3fadfc16c5d02e531446",
+            "reference": "77971de6d6ade7366cdd3fadfc16c5d02e531446",
             "shasum": ""
         },
         "require": {
@@ -3672,7 +3672,7 @@
             "drupal/workflows": "self.version",
             "drupal/workspaces": "self.version"
         },
-        "time": "2020-02-01T19:51:15+00:00",
+        "time": "2020-03-04T18:01:37+00:00",
         "type": "drupal-core",
         "extra": {
             "drupal-scaffold": {
@@ -3733,17 +3733,17 @@
     },
     {
         "name": "drupal/core-recommended",
-        "version": "8.8.2",
-        "version_normalized": "8.8.2.0",
+        "version": "8.8.3",
+        "version_normalized": "8.8.3.0",
         "source": {
             "type": "git",
             "url": "https://github.com/drupal/core-recommended.git",
-            "reference": "67ed5b68da2784ead5a55330c6c0fde6bb3cb9f3"
+            "reference": "c43bf9881a299de9189440e0772579775b1f93f1"
         },
         "dist": {
             "type": "zip",
-            "url": "https://api.github.com/repos/drupal/core-recommended/zipball/67ed5b68da2784ead5a55330c6c0fde6bb3cb9f3",
-            "reference": "67ed5b68da2784ead5a55330c6c0fde6bb3cb9f3",
+            "url": "https://api.github.com/repos/drupal/core-recommended/zipball/c43bf9881a299de9189440e0772579775b1f93f1",
+            "reference": "c43bf9881a299de9189440e0772579775b1f93f1",
             "shasum": ""
         },
         "require": {
@@ -3756,7 +3756,7 @@
             "doctrine/common": "v2.7.3",
             "doctrine/inflector": "v1.2.0",
             "doctrine/lexer": "1.0.2",
-            "drupal/core": "8.8.2",
+            "drupal/core": "8.8.3",
             "easyrdf/easyrdf": "0.9.1",
             "egulias/email-validator": "2.1.11",
             "guzzlehttp/guzzle": "6.3.3",
@@ -3804,7 +3804,7 @@
         "conflict": {
             "webflo/drupal-core-strict": "*"
         },
-        "time": "2020-02-01T19:51:15+00:00",
+        "time": "2020-03-04T18:01:37+00:00",
         "type": "metapackage",
         "notification-url": "https://packagist.org/downloads/",
         "license": [
diff --git a/web/core/MAINTAINERS.txt b/web/core/MAINTAINERS.txt
index e262d8838b..e6a3a747c5 100644
--- a/web/core/MAINTAINERS.txt
+++ b/web/core/MAINTAINERS.txt
@@ -505,7 +505,6 @@ API-first Initiative
 - Gabe Sullice 'gabesullice' https://www.drupal.org/u/gabesullice
 
 Admin UI & JavaScript Modernisation Initiative
-- Angela Byron 'webchick' https://www.drupal.org/u/webchick
 - Cristina Chumillas 'ckrina' https://www.drupal.org/u/ckrina
 - Sally Young 'justafish' https://www.drupal.org/u/justafish
 
diff --git a/web/core/assets/vendor/ckeditor/CHANGES.md b/web/core/assets/vendor/ckeditor/CHANGES.md
index 63c82556be..cbe53e1afd 100644
--- a/web/core/assets/vendor/ckeditor/CHANGES.md
+++ b/web/core/assets/vendor/ckeditor/CHANGES.md
@@ -1,126 +1,151 @@
 CKEditor 4 Changelog
 ====================
 
+## CKEditor 4.13.1
+
+Fixed Issues:
+
+* [#875](https://github.com/ckeditor/ckeditor4/issues/875): Fixed: Pasting inside the editor that contains a table with the [Table Selection](https://ckeditor.com/cke4/addon/tableselection) plugin after selecting all content replaces only the table element instead of the entire content.
+* [#3415](https://github.com/ckeditor/ckeditor4/issues/3415): [Firefox] Fixed: Pasting individual list elements fails. Thanks to [Jack Wickham](https://github.com/jackwickham)!
+* [#3413](https://github.com/ckeditor/ckeditor4/issues/3413): Fixed: Menu items with labels containing double quotes are rendered incorrectly.
+* [#3475](https://github.com/ckeditor/ckeditor4/issues/3475): [Firefox] Fixed: Pasting plain text over existing content fails and throws an error.
+* [#2027](https://github.com/ckeditor/ckeditor4/issues/2027): Fixed: Incorrect email display text after reopening the [Link](https://ckeditor.com/cke4/addon/link) dialog for display names starting with `@`.
+* [#3544](https://github.com/ckeditor/ckeditor4/issues/3544): Fixed: The [Special Characters](https://ckeditor.com/cke4/addon/specialchar) dialog read incorrectly by screen readers due to empty table cells at the end.
+* [#1653](https://github.com/ckeditor/ckeditor4/issues/1653): Fixed: [Balloon Toolbar](https://ckeditor.com/cke4/addon/balloontoolbar) is not repositioned when the editor is scrolled with the [Div Editing Area](https://ckeditor.com/cke4/addon/divarea) feature enabled.
+* [#3559](https://github.com/ckeditor/ckeditor4/issues/3559): Fixed: [Color Dialog](https://ckeditor.com/cke4/addon/colordialog) is incorrectly positioned when used with another dialog.
+* [#3593](https://github.com/ckeditor/ckeditor4/issues/3593): Fixed: Cannot access a text or comment node when replacing an element node with them via [`CKEDITOR.htmlParser.filter`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_htmlParser_filter.html).
+* [#3524](https://github.com/ckeditor/ckeditor4/issues/3524): Fixed: The [Easy Image](https://ckeditor.com/cke4/addon/easyimage) plugin throws an error when any image with an unsupported data type is pasted into the editor.
+* [#3552](https://github.com/ckeditor/ckeditor4/issues/3352): Fixed: Incorrect value of [`CKEDITOR.plugins.widget.repository#selected`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_plugins_widget_repository.html#property-selected) after selecting the whole editor content.
+* [#3586](https://github.com/ckeditor/ckeditor4/issues/3586): Fixed: Content pasted from Microsoft Excel is not correctly recognised by the [Paste from Word](https://ckeditor.com/cke4/addon/pastefromword) plugin.
+* [#3585](https://github.com/ckeditor/ckeditor4/issues/3585): [Firefox] Fixed: Microsoft Excel content is pasted as an image.
+* [#3625](https://github.com/ckeditor/ckeditor4/issues/3625): [Firefox] Fixed: Microsoft PowerPoint content is pasted as an image.
+* [#3474](https://github.com/ckeditor/ckeditor4/issues/3474): Fixed: Incorrect focus order after any tab in a [dialog](https://ckeditor.com/cke4/addon/dialog) was clicked.
+* [#3689](https://github.com/ckeditor/ckeditor4/issues/3689): Fixed: Cannot change [dialog](https://ckeditor.com/cke4/addon/dialog) tabs with keyboard arrow keys after focusing any tab with a mouse click.
+
+API Changes:
+
+* [#3634](https://github.com/ckeditor/ckeditor4/issues/3634): Added the [`CKEDITOR.plugins.clipboard.dataTransfer#getTypes()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_plugins_clipboard_dataTransfer.html#method-getTypes) method.
+
 ## CKEditor 4.13
 
 New Features:
 
-* [#835](https://github.com/ckeditor/ckeditor-dev/issues/835): Extended support for pasting from external applications:
+* [#835](https://github.com/ckeditor/ckeditor4/issues/835): Extended support for pasting from external applications:
    * Added support for pasting rich content from Google Docs with the [Paste from Google Docs](https://ckeditor.com/cke4/addon/pastefromgdocs) plugin.
    * Added a new [Paste Tools](https://ckeditor.com/cke4/addon/pastetools) plugin for unified paste handling.
-* [#3315](https://github.com/ckeditor/ckeditor-dev/issues/3315): Added support for strikethrough in the [BBCode](https://ckeditor.com/cke4/addon/bbcode) plugin. Thanks to [Alexander Kahl](https://github.com/akahl-owl)!
-* [#3175](https://github.com/ckeditor/ckeditor-dev/issues/3175): Introduced selection optimization mechanism for handling incorrect selection behaviors in various browsers:
-    * [#3256](https://github.com/ckeditor/ckeditor-dev/issues/3256): Triple-clicking in the last table cell and deleting content no longer pulls the content below into the table.
-    * [#3118](https://github.com/ckeditor/ckeditor-dev/issues/3118): Selecting a paragraph with a triple-click and applying a heading applies the heading only to the selected paragraph.
-    * [#3161](https://github.com/ckeditor/ckeditor-dev/issues/3161): Double-clicking a `<span>` element containing just one word creates a correct selection including the clicked `<span>` only.
-* [#3359](https://github.com/ckeditor/ckeditor-dev/issues/3359): Improved [dialog](https://ckeditor.com/cke4/addon/dialog) positioning and behavior when the dialog is resized or moved, or the browser window is resized.
-* [#2227](https://github.com/ckeditor/ckeditor-dev/issues/2227): Added the [`config.linkDefaultProtocol`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_config.html#cfg-linkDefaultProtocol) configuration option that allows setting the default URL protocol for the [Link](https://ckeditor.com/cke4/addon/link) plugin dialog.
-* [#3240](https://github.com/ckeditor/ckeditor-dev/issues/3240): Extended the [`CKEDITOR.plugins.widget#mask`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_plugins_widget.html#property-mask) property to allow masking only the specified part of a [widget](https://ckeditor.com/cke4/addon/widget).
-* [#3138](https://github.com/ckeditor/ckeditor-dev/issues/3138): Added the possibility to use the [`widgetDefinition.getClipboardHtml()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_plugins_widget.html#method-getClipboardHtml) method to customize the [widget](https://ckeditor.com/cke4/addon/widget) HTML during copy, cut and drag operations.
+* [#3315](https://github.com/ckeditor/ckeditor4/issues/3315): Added support for strikethrough in the [BBCode](https://ckeditor.com/cke4/addon/bbcode) plugin. Thanks to [Alexander Kahl](https://github.com/akahl-owl)!
+* [#3175](https://github.com/ckeditor/ckeditor4/issues/3175): Introduced selection optimization mechanism for handling incorrect selection behaviors in various browsers:
+    * [#3256](https://github.com/ckeditor/ckeditor4/issues/3256): Triple-clicking in the last table cell and deleting content no longer pulls the content below into the table.
+    * [#3118](https://github.com/ckeditor/ckeditor4/issues/3118): Selecting a paragraph with a triple-click and applying a heading applies the heading only to the selected paragraph.
+    * [#3161](https://github.com/ckeditor/ckeditor4/issues/3161): Double-clicking a `<span>` element containing just one word creates a correct selection including the clicked `<span>` only.
+* [#3359](https://github.com/ckeditor/ckeditor4/issues/3359): Improved [dialog](https://ckeditor.com/cke4/addon/dialog) positioning and behavior when the dialog is resized or moved, or the browser window is resized.
+* [#2227](https://github.com/ckeditor/ckeditor4/issues/2227): Added the [`config.linkDefaultProtocol`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_config.html#cfg-linkDefaultProtocol) configuration option that allows setting the default URL protocol for the [Link](https://ckeditor.com/cke4/addon/link) plugin dialog.
+* [#3240](https://github.com/ckeditor/ckeditor4/issues/3240): Extended the [`CKEDITOR.plugins.widget#mask`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_plugins_widget.html#property-mask) property to allow masking only the specified part of a [widget](https://ckeditor.com/cke4/addon/widget).
+* [#3138](https://github.com/ckeditor/ckeditor4/issues/3138): Added the possibility to use the [`widgetDefinition.getClipboardHtml()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_plugins_widget.html#method-getClipboardHtml) method to customize the [widget](https://ckeditor.com/cke4/addon/widget) HTML during copy, cut and drag operations.
 
 Fixed Issues:
 
-* [#808](https://github.com/ckeditor/ckeditor-dev/issues/808): Fixed: [Widgets](https://ckeditor.com/cke4/addon/widget) and other content disappear on drag and drop in [read-only mode](https://ckeditor.com/docs/ckeditor4/latest/guide/dev_readonly.html).
-* [#3260](https://github.com/ckeditor/ckeditor-dev/issues/3260): Fixed: [Widget](https://ckeditor.com/cke4/addon/widget) drag handler is visible in [read-only mode](https://ckeditor.com/docs/ckeditor4/latest/guide/dev_readonly.html).
-* [#3261](https://github.com/ckeditor/ckeditor-dev/issues/3261): Fixed: A [widget](https://ckeditor.com/cke4/addon/widget) initialized using the dialog has an incorrect owner document.
-* [#3198](https://github.com/ckeditor/ckeditor-dev/issues/3198): Fixed: Blurring and focusing the editor when a [widget](https://ckeditor.com/cke4/addon/widget) is focused creates an additional undo step.
-* [#2859](https://github.com/ckeditor/ckeditor-dev/pull/2859): [IE, Edge] Fixed: Various editor UI elements react to right mouse button click:
-  * [#2845](https://github.com/ckeditor/ckeditor-dev/issues/2845): [Rich Combo](https://ckeditor.com/cke4/addon/richcombo).
-  * [#2857](https://github.com/ckeditor/ckeditor-dev/issues/2857): [List Block](https://ckeditor.com/cke4/addon/listblock).
-  * [#2858](https://github.com/ckeditor/ckeditor-dev/issues/2858): [Menu](https://ckeditor.com/cke4/addon/menu).
-* [#3158](https://github.com/ckeditor/ckeditor-dev/issues/3158): [Chrome, Safari] Fixed: [Undo](https://ckeditor.com/cke4/addon/undo) plugin breaks with the filling character.
-* [#504](https://github.com/ckeditor/ckeditor-dev/issues/504): [Edge] Fixed: The editor's selection is collapsed to the beginning of the content when focusing the editor for the first time.
-* [#3101](https://github.com/ckeditor/ckeditor-dev/issues/3101): Fixed: [`CKEDITOR.dom.range#_getTableElement()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_dom_range.html#method-_getTableElement) returns `null` instead of a table element for edge cases.
-* [#3287](https://github.com/ckeditor/ckeditor-dev/issues/3287): Fixed: [`CKEDITOR.tools.promise`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_tools_promise.html) initializes incorrectly if an AMD loader is present.
-* [#3379](https://github.com/ckeditor/ckeditor-dev/issues/3379): Fixed: Incorrect [`CKEDITOR.editor#getData()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_editor.html#method-getData) call when inserting content into the editor.
-* [#941](https://github.com/ckeditor/ckeditor-dev/issues/941): Fixed: An error is thrown after styling a table cell text selected using the native selection when the [Table Selection](https://ckeditor.com/cke4/addon/tableselection) plugin is enabled.
-* [#3136](https://github.com/ckeditor/ckeditor-dev/issues/3136): [Firefox] Fixed: Clicking [Balloon Toolbar](https://ckeditor.com/cke4/addon/balloontoolbar) items removes the native table selection.
-* [#3381](https://github.com/ckeditor/ckeditor-dev/issues/3381): [IE8] Fixed: The [`CKEDITOR.tools.object.keys()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_tools_object.html#method-keys) method does not accept non-objects.
-* [#2395](https://github.com/ckeditor/ckeditor-dev/issues/2395): [Android] Fixed: Focused input in a [dialog](https://ckeditor.com/cke4/addon/dialog) is scrolled out of the viewport when the soft keyboard appears.
-* [#453](https://github.com/ckeditor/ckeditor-dev/issues/453): Fixed: [Link](https://ckeditor.com/cke4/addon/link) dialog has an invalid width when the editor is maximized and the browser window is resized.
-* [#2138](https://github.com/ckeditor/ckeditor-dev/issues/2138): Fixed: An email address containing a question mark is mishandled by the [Link](https://ckeditor.com/cke4/addon/link) plugin.
+* [#808](https://github.com/ckeditor/ckeditor4/issues/808): Fixed: [Widgets](https://ckeditor.com/cke4/addon/widget) and other content disappear on drag and drop in [read-only mode](https://ckeditor.com/docs/ckeditor4/latest/guide/dev_readonly.html).
+* [#3260](https://github.com/ckeditor/ckeditor4/issues/3260): Fixed: [Widget](https://ckeditor.com/cke4/addon/widget) drag handler is visible in [read-only mode](https://ckeditor.com/docs/ckeditor4/latest/guide/dev_readonly.html).
+* [#3261](https://github.com/ckeditor/ckeditor4/issues/3261): Fixed: A [widget](https://ckeditor.com/cke4/addon/widget) initialized using the dialog has an incorrect owner document.
+* [#3198](https://github.com/ckeditor/ckeditor4/issues/3198): Fixed: Blurring and focusing the editor when a [widget](https://ckeditor.com/cke4/addon/widget) is focused creates an additional undo step.
+* [#2859](https://github.com/ckeditor/ckeditor4/pull/2859): [IE, Edge] Fixed: Various editor UI elements react to right mouse button click:
+	* [#2845](https://github.com/ckeditor/ckeditor4/issues/2845): [Rich Combo](https://ckeditor.com/cke4/addon/richcombo).
+	* [#2857](https://github.com/ckeditor/ckeditor4/issues/2857): [List Block](https://ckeditor.com/cke4/addon/listblock).
+	* [#2858](https://github.com/ckeditor/ckeditor4/issues/2858): [Menu](https://ckeditor.com/cke4/addon/menu).
+* [#3158](https://github.com/ckeditor/ckeditor4/issues/3158): [Chrome, Safari] Fixed: [Undo](https://ckeditor.com/cke4/addon/undo) plugin breaks with the filling character.
+* [#504](https://github.com/ckeditor/ckeditor4/issues/504): [Edge] Fixed: The editor's selection is collapsed to the beginning of the content when focusing the editor for the first time.
+* [#3101](https://github.com/ckeditor/ckeditor4/issues/3101): Fixed: [`CKEDITOR.dom.range#_getTableElement()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_dom_range.html#method-_getTableElement) returns `null` instead of a table element for edge cases.
+* [#3287](https://github.com/ckeditor/ckeditor4/issues/3287): Fixed: [`CKEDITOR.tools.promise`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_tools_promise.html) initializes incorrectly if an AMD loader is present.
+* [#3379](https://github.com/ckeditor/ckeditor4/issues/3379): Fixed: Incorrect [`CKEDITOR.editor#getData()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_editor.html#method-getData) call when inserting content into the editor.
+* [#941](https://github.com/ckeditor/ckeditor4/issues/941): Fixed: An error is thrown after styling a table cell text selected using the native selection when the [Table Selection](https://ckeditor.com/cke4/addon/tableselection) plugin is enabled.
+* [#3136](https://github.com/ckeditor/ckeditor4/issues/3136): [Firefox] Fixed: Clicking [Balloon Toolbar](https://ckeditor.com/cke4/addon/balloontoolbar) items removes the native table selection.
+* [#3381](https://github.com/ckeditor/ckeditor4/issues/3381): [IE8] Fixed: The [`CKEDITOR.tools.object.keys()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_tools_object.html#method-keys) method does not accept non-objects.
+* [#2395](https://github.com/ckeditor/ckeditor4/issues/2395): [Android] Fixed: Focused input in a [dialog](https://ckeditor.com/cke4/addon/dialog) is scrolled out of the viewport when the soft keyboard appears.
+* [#453](https://github.com/ckeditor/ckeditor4/issues/453): Fixed: [Link](https://ckeditor.com/cke4/addon/link) dialog has an invalid width when the editor is maximized and the browser window is resized.
+* [#2138](https://github.com/ckeditor/ckeditor4/issues/2138): Fixed: An email address containing a question mark is mishandled by the [Link](https://ckeditor.com/cke4/addon/link) plugin.
 * [#14613](https://dev.ckeditor.com/ticket/14613): Fixed: Race condition when loading plugins for an already destroyed editor instance throws an error.
-* [#2257](https://github.com/ckeditor/ckeditor-dev/issues/2257): Fixed: The editor throws an exception when destroyed shortly after it was created.
-* [#3115](https://github.com/ckeditor/ckeditor-dev/issues/3115): Fixed: Destroying the editor during the initialization throws an error.
+* [#2257](https://github.com/ckeditor/ckeditor4/issues/2257): Fixed: The editor throws an exception when destroyed shortly after it was created.
+* [#3115](https://github.com/ckeditor/ckeditor4/issues/3115): Fixed: Destroying the editor during the initialization throws an error.
 * [#3354](https://github.com/ckeditor/ckeditor4/issues/3354): [iOS] Fixed: Pasting no longer works on iOS version 13.
 * [#3423](https://github.com/ckeditor/ckeditor4/issues/3423) Fixed: [Bookmarks](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_dom_range.html#method-createBookmark) can be created inside temporary elements.
 
 API Changes:
 
-* [#3154](https://github.com/ckeditor/ckeditor-dev/issues/3154): Added the [`CKEDITOR.tools.array.some()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_tools_array.html#method-some) method.
-* [#3245](https://github.com/ckeditor/ckeditor-dev/issues/3245): Added the [`CKEDITOR.plugins.undo.UndoManager.addFilterRule()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_plugins_undo_UndoManager.html#method-addFilterRule) method that allows filtering undo snapshot contents.
-* [#2845](https://github.com/ckeditor/ckeditor-dev/issues/2845): Added the [`CKEDITOR.tools.normalizeMouseButton()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_tools.html#method-normalizeMouseButton) method.
-* [#2975](https://github.com/ckeditor/ckeditor-dev/issues/2975): Added the [`CKEDITOR.dom.element#fireEventHandler()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_dom_element.html#method-fireEventHandler) method.
-* [#3247](https://github.com/ckeditor/ckeditor-dev/issues/3247): Extended the [`CKEDITOR.tools.bind()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_tools.html#method-bind) method to accept arguments for bound functions.
-* [#3326](https://github.com/ckeditor/ckeditor-dev/issues/3326): Added the [`CKEDITOR.dom.text#isEmpty()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_dom_text.html#method-isEmpty) method.
-* [#2423](https://github.com/ckeditor/ckeditor-dev/issues/2423): Added the [`CKEDITOR.plugins.dialog.getModel()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_dialog.html#method-getModel) and [`CKEDITOR.plugins.dialog.getMode()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_dialog.html#method-getMode) methods with their [`CKEDITOR.plugin.definition`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_dialog_definition.html) counterparts, allowing to get the dialog subject of a change.
-* [#3124](https://github.com/ckeditor/ckeditor-dev/issues/3124): Added the [`CKEDITOR.dom.element#isDetached()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_dom_element.html#method-isDetached) method.
+* [#3154](https://github.com/ckeditor/ckeditor4/issues/3154): Added the [`CKEDITOR.tools.array.some()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_tools_array.html#method-some) method.
+* [#3245](https://github.com/ckeditor/ckeditor4/issues/3245): Added the [`CKEDITOR.plugins.undo.UndoManager.addFilterRule()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_plugins_undo_UndoManager.html#method-addFilterRule) method that allows filtering undo snapshot contents.
+* [#2845](https://github.com/ckeditor/ckeditor4/issues/2845): Added the [`CKEDITOR.tools.normalizeMouseButton()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_tools.html#method-normalizeMouseButton) method.
+* [#2975](https://github.com/ckeditor/ckeditor4/issues/2975): Added the [`CKEDITOR.dom.element#fireEventHandler()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_dom_element.html#method-fireEventHandler) method.
+* [#3247](https://github.com/ckeditor/ckeditor4/issues/3247): Extended the [`CKEDITOR.tools.bind()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_tools.html#method-bind) method to accept arguments for bound functions.
+* [#3326](https://github.com/ckeditor/ckeditor4/issues/3326): Added the [`CKEDITOR.dom.text#isEmpty()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_dom_text.html#method-isEmpty) method.
+* [#2423](https://github.com/ckeditor/ckeditor4/issues/2423): Added the [`CKEDITOR.plugins.dialog.getModel()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_dialog.html#method-getModel) and [`CKEDITOR.plugins.dialog.getMode()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_dialog.html#method-getMode) methods with their [`CKEDITOR.plugin.definition`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_dialog_definition.html) counterparts, allowing to get the dialog subject of a change.
+* [#3124](https://github.com/ckeditor/ckeditor4/issues/3124): Added the [`CKEDITOR.dom.element#isDetached()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_dom_element.html#method-isDetached) method.
 
 ## CKEditor 4.12.1
 
 Fixed Issues:
 
-* [#3220](https://github.com/ckeditor/ckeditor-dev/issues/3220): Fixed: Prevent [Paste from Word](https://ckeditor.com/cke4/addon/pastefromword) filter from deleting [Page Break](https://ckeditor.com/cke4/addon/pagebreak) elements on paste.
+* [#3220](https://github.com/ckeditor/ckeditor4/issues/3220): Fixed: Prevent [Paste from Word](https://ckeditor.com/cke4/addon/pastefromword) filter from deleting [Page Break](https://ckeditor.com/cke4/addon/pagebreak) elements on paste.
 
 ## CKEditor 4.12
 
 New Features:
 
-* [#2598](https://github.com/ckeditor/ckeditor-dev/issues/2598): Added the [Page Break](https://ckeditor.com/cke4/addon/pagebreak) feature support for the [Paste from Word](https://ckeditor.com/cke4/addon/pastefromword) plugin.
-* [#1490](https://github.com/ckeditor/ckeditor-dev/issues/1490): Improved the [Paste from Word](https://ckeditor.com/cke4/addon/pastefromword) plugin to retain table cell borders.
-* [#2870](https://github.com/ckeditor/ckeditor-dev/issues/2870): Improved support for preserving the indentation of list items for nested lists pasted with the [Paste from Word](https://ckeditor.com/cke4/addon/pastefromword) plugin.
-* [#2048](https://github.com/ckeditor/ckeditor-dev/issues/2048): New [`CKEDITOR.config.image2_maxSize`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_config.html#cfg-image2_maxSize) configuration option for the [Enhanced Image](https://ckeditor.com/cke4/addon/image2) plugin that allows setting a maximum size that an image can be resized to with the resizer.
-* [#2639](https://github.com/ckeditor/ckeditor-dev/issues/2639): The [Color Dialog](https://ckeditor.com/cke4/addon/colordialog) plugin now shows the current selection's color when opened.
-* [#2084](https://github.com/ckeditor/ckeditor-dev/issues/2084): The [Table Tools](https://ckeditor.com/cke4/addon/tabletools) plugin now allows to change the cell height unit type to either pixels or percent.
-* [#3164](https://github.com/ckeditor/ckeditor-dev/issues/3164): The [Table Tools](https://ckeditor.com/cke4/addon/tabletools) plugin now accepts floating point values as the table cell width and height.
+* [#2598](https://github.com/ckeditor/ckeditor4/issues/2598): Added the [Page Break](https://ckeditor.com/cke4/addon/pagebreak) feature support for the [Paste from Word](https://ckeditor.com/cke4/addon/pastefromword) plugin.
+* [#1490](https://github.com/ckeditor/ckeditor4/issues/1490): Improved the [Paste from Word](https://ckeditor.com/cke4/addon/pastefromword) plugin to retain table cell borders.
+* [#2870](https://github.com/ckeditor/ckeditor4/issues/2870): Improved support for preserving the indentation of list items for nested lists pasted with the [Paste from Word](https://ckeditor.com/cke4/addon/pastefromword) plugin.
+* [#2048](https://github.com/ckeditor/ckeditor4/issues/2048): New [`CKEDITOR.config.image2_maxSize`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_config.html#cfg-image2_maxSize) configuration option for the [Enhanced Image](https://ckeditor.com/cke4/addon/image2) plugin that allows setting a maximum size that an image can be resized to with the resizer.
+* [#2639](https://github.com/ckeditor/ckeditor4/issues/2639): The [Color Dialog](https://ckeditor.com/cke4/addon/colordialog) plugin now shows the current selection's color when opened.
+* [#2084](https://github.com/ckeditor/ckeditor4/issues/2084): The [Table Tools](https://ckeditor.com/cke4/addon/tabletools) plugin now allows to change the cell height unit type to either pixels or percent.
+* [#3164](https://github.com/ckeditor/ckeditor4/issues/3164): The [Table Tools](https://ckeditor.com/cke4/addon/tabletools) plugin now accepts floating point values as the table cell width and height.
 
 Fixed Issues:
 
-* [#2672](https://github.com/ckeditor/ckeditor-dev/issues/2672): Fixed: When resizing an [Enhanced Image](https://ckeditor.com/cke4/addon/image2) to a minimum size with the resizer, the image dialog does not show actual values.
-* [#1478](https://github.com/ckeditor/ckeditor-dev/issues/1478): Fixed: Custom colors added to [Color Button](https://ckeditor.com/cke4/addon/colorbutton) with the [`config.colorButton_colors`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_config.html#cfg-colorButton_colors) configuration option in the form of a label or code do not work correctly.
-* [#1469](https://github.com/ckeditor/ckeditor-dev/issues/1469): Fixed: Trying to get data from a nested editable inside a freshly pasted widget throws an error.
-* [#2235](https://github.com/ckeditor/ckeditor-dev/issues/2235): Fixed: An [Image](https://ckeditor.com/cke4/addon/image) in a table cell has an empty URL field when edited from the context menu opened by right-click when the [Table Selection](https://ckeditor.com/cke4/addon/tableselection) plugin is in use.
-* [#3098](https://github.com/ckeditor/ckeditor-dev/issues/3098): Fixed: Unit pickers for table cell width and height in the [Table Tools](https://ckeditor.com/cke4/addon/tabletools) plugin have a different width.
-* [#2923](https://github.com/ckeditor/ckeditor-dev/issues/2923): Fixed: The CSS `windowtext` color is not correctly recognized by the [`CKEDITOR.tools.style.parse`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_tools_style_parse.html) methods.
-* [#3120](https://github.com/ckeditor/ckeditor-dev/issues/3120): [IE8] Fixed: The [`CKEDITOR.tools.extend()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_tool.html#method-extend) method does not work with the [`DontEnum`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#Properties) object property attribute.
-* [#2813](https://github.com/ckeditor/ckeditor-dev/issues/2813): Fixed: Editor HTML insertion methods ([`editor.insertHtml()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_editor.html#method-insertHtml), [`editor.insertHtmlIntoRange()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_editor.html#method-insertHtmlIntoRange), [`editor.insertElement()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_editor.html#method-insertElement) and [`editor.insertElementIntoRange()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_editor.html#method-insertElementIntoRange)) pollute the editable with empty `<span>` elements.
-* [#2751](https://github.com/ckeditor/ckeditor-dev/issues/2751): Fixed: An editor with [`config.enterMode`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_config.html#cfg-enterMode) set to [`ENTER_DIV`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR.html#property-ENTER_DIV) alters pasted content.
+* [#2672](https://github.com/ckeditor/ckeditor4/issues/2672): Fixed: When resizing an [Enhanced Image](https://ckeditor.com/cke4/addon/image2) to a minimum size with the resizer, the image dialog does not show actual values.
+* [#1478](https://github.com/ckeditor/ckeditor4/issues/1478): Fixed: Custom colors added to [Color Button](https://ckeditor.com/cke4/addon/colorbutton) with the [`config.colorButton_colors`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_config.html#cfg-colorButton_colors) configuration option in the form of a label or code do not work correctly.
+* [#1469](https://github.com/ckeditor/ckeditor4/issues/1469): Fixed: Trying to get data from a nested editable inside a freshly pasted widget throws an error.
+* [#2235](https://github.com/ckeditor/ckeditor4/issues/2235): Fixed: An [Image](https://ckeditor.com/cke4/addon/image) in a table cell has an empty URL field when edited from the context menu opened by right-click when the [Table Selection](https://ckeditor.com/cke4/addon/tableselection) plugin is in use.
+* [#3098](https://github.com/ckeditor/ckeditor4/issues/3098): Fixed: Unit pickers for table cell width and height in the [Table Tools](https://ckeditor.com/cke4/addon/tabletools) plugin have a different width.
+* [#2923](https://github.com/ckeditor/ckeditor4/issues/2923): Fixed: The CSS `windowtext` color is not correctly recognized by the [`CKEDITOR.tools.style.parse`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_tools_style_parse.html) methods.
+* [#3120](https://github.com/ckeditor/ckeditor4/issues/3120): [IE8] Fixed: The [`CKEDITOR.tools.extend()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_tool.html#method-extend) method does not work with the [`DontEnum`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#Properties) object property attribute.
+* [#2813](https://github.com/ckeditor/ckeditor4/issues/2813): Fixed: Editor HTML insertion methods ([`editor.insertHtml()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_editor.html#method-insertHtml), [`editor.insertHtmlIntoRange()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_editor.html#method-insertHtmlIntoRange), [`editor.insertElement()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_editor.html#method-insertElement) and [`editor.insertElementIntoRange()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_editor.html#method-insertElementIntoRange)) pollute the editable with empty `<span>` elements.
+* [#2751](https://github.com/ckeditor/ckeditor4/issues/2751): Fixed: An editor with [`config.enterMode`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_config.html#cfg-enterMode) set to [`ENTER_DIV`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR.html#property-ENTER_DIV) alters pasted content.
 
 API Changes:
 
-* [#1496](https://github.com/ckeditor/ckeditor-dev/issues/1496): The [Balloon Toolbar](https://ckeditor.com/cke4/addon/balloontoolbar) plugin exposes the [`CKEDITOR.ui.balloonToolbar.reposition()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_ui_balloonToolbar.html#reposition) and [`CKEDITOR.ui.balloonToolbarView.reposition()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_ui_balloonToolbarView.html#reposition) methods.
-* [#2021](https://github.com/ckeditor/ckeditor-dev/issues/2021): Added new [`CKEDITOR.dom.documentFragment.find()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_dom_documentFragment.html#method-find) and [`CKEDITOR.dom.documentFragment.findOne()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_dom_documentFragment.html#method-findOne) methods.
-* [#2700](https://github.com/ckeditor/ckeditor-dev/issues/2700): Added the [`CKEDITOR.tools.array.find()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_tools_array.html#method-find) method.
-* [#3123](https://github.com/ckeditor/ckeditor-dev/issues/3123): Added the [`CKEDITOR.tools.object.keys()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_tools_object.html#method-keys) method.
-* [#3123](https://github.com/ckeditor/ckeditor-dev/issues/3123): Added the [`CKEDITOR.tools.object.entries()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_tools_object.html#method-entries) method.
-* [#3123](https://github.com/ckeditor/ckeditor-dev/issues/3123): Added the [`CKEDITOR.tools.object.values()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_tools_object.html#method-values) method.
-* [#2821](https://github.com/ckeditor/ckeditor-dev/issues/2821): The [`CKEDITOR.template#source`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_template.html#property-source) property can now be a function, so it can return the changed template values during the runtime. Thanks to [Jacek Pulit](https://github.com/jacek-pulit)!
-* [#2598](https://github.com/ckeditor/ckeditor-dev/issues/2598): Added the [`CKEDITOR.plugins.pagebreak.createElement()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_plugins_pagebreak.html#method-createElement) method allowing to create a [Page Break](https://ckeditor.com/cke4/addon/pagebreak) plugin [`CKEDITOR.dom.element`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_dom_element.html) instance.
-* [#2748](https://github.com/ckeditor/ckeditor-dev/issues/2748): Enhanced error messages thrown when creating an editor on a non-existent element or when trying to instantiate the second editor on the same element. Thanks to [Byran Zaugg](https://github.com/blzaugg)!
-* [#2698](https://github.com/ckeditor/ckeditor-dev/issues/2698): Added the [`CKEDITOR.htmlParser.element.findOne()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_htmlParser_element.html#method-findOne) method.
-* [#2935](https://github.com/ckeditor/ckeditor-dev/issues/2935): Introduced the [`CKEDITOR.config.pasteFromWord_keepZeroMargins`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_config.html#cfg-pasteFromWord_keepZeroMargins) configuration option that allows for keeping any `margin-*: 0` style that would be otherwise removed when pasting content with the [Paste from Word](https://ckeditor.com/cke4/addon/pastefromword) plugin.
-* [#2962](https://github.com/ckeditor/ckeditor-dev/issues/2962): Added the [`CKEDITOR.tools.promise`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_tools_promise.html) class.
-* [#2924](https://github.com/ckeditor/ckeditor-dev/issues/2924): Added the [`CKEDITOR.tools.style.border`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_tools_style_border.html) object wrapping CSS border style helpers under a single type.
-* [#2495](https://github.com/ckeditor/ckeditor-dev/issues/2495): The [Table Selection](https://ckeditor.com/cke4/addon/tableselection) plugin can now be disabled for the given table with the `data-cke-tableselection-ignored` attribute.
-* [#2692](https://github.com/ckeditor/ckeditor-dev/issues/2692): Plugins can now expose information about the supported environment by implementing the [`pluginDefinition.isSupportedEnvironment()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_pluginDefinition.html#method-isSupportedEnvironment) method.
+* [#1496](https://github.com/ckeditor/ckeditor4/issues/1496): The [Balloon Toolbar](https://ckeditor.com/cke4/addon/balloontoolbar) plugin exposes the [`CKEDITOR.ui.balloonToolbar.reposition()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_ui_balloonToolbar.html#reposition) and [`CKEDITOR.ui.balloonToolbarView.reposition()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_ui_balloonToolbarView.html#reposition) methods.
+* [#2021](https://github.com/ckeditor/ckeditor4/issues/2021): Added new [`CKEDITOR.dom.documentFragment.find()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_dom_documentFragment.html#method-find) and [`CKEDITOR.dom.documentFragment.findOne()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_dom_documentFragment.html#method-findOne) methods.
+* [#2700](https://github.com/ckeditor/ckeditor4/issues/2700): Added the [`CKEDITOR.tools.array.find()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_tools_array.html#method-find) method.
+* [#3123](https://github.com/ckeditor/ckeditor4/issues/3123): Added the [`CKEDITOR.tools.object.keys()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_tools_object.html#method-keys) method.
+* [#3123](https://github.com/ckeditor/ckeditor4/issues/3123): Added the [`CKEDITOR.tools.object.entries()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_tools_object.html#method-entries) method.
+* [#3123](https://github.com/ckeditor/ckeditor4/issues/3123): Added the [`CKEDITOR.tools.object.values()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_tools_object.html#method-values) method.
+* [#2821](https://github.com/ckeditor/ckeditor4/issues/2821): The [`CKEDITOR.template#source`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_template.html#property-source) property can now be a function, so it can return the changed template values during the runtime. Thanks to [Jacek Pulit](https://github.com/jacek-pulit)!
+* [#2598](https://github.com/ckeditor/ckeditor4/issues/2598): Added the [`CKEDITOR.plugins.pagebreak.createElement()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_plugins_pagebreak.html#method-createElement) method allowing to create a [Page Break](https://ckeditor.com/cke4/addon/pagebreak) plugin [`CKEDITOR.dom.element`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_dom_element.html) instance.
+* [#2748](https://github.com/ckeditor/ckeditor4/issues/2748): Enhanced error messages thrown when creating an editor on a non-existent element or when trying to instantiate the second editor on the same element. Thanks to [Byran Zaugg](https://github.com/blzaugg)!
+* [#2698](https://github.com/ckeditor/ckeditor4/issues/2698): Added the [`CKEDITOR.htmlParser.element.findOne()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_htmlParser_element.html#method-findOne) method.
+* [#2935](https://github.com/ckeditor/ckeditor4/issues/2935): Introduced the [`CKEDITOR.config.pasteFromWord_keepZeroMargins`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_config.html#cfg-pasteFromWord_keepZeroMargins) configuration option that allows for keeping any `margin-*: 0` style that would be otherwise removed when pasting content with the [Paste from Word](https://ckeditor.com/cke4/addon/pastefromword) plugin.
+* [#2962](https://github.com/ckeditor/ckeditor4/issues/2962): Added the [`CKEDITOR.tools.promise`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_tools_promise.html) class.
+* [#2924](https://github.com/ckeditor/ckeditor4/issues/2924): Added the [`CKEDITOR.tools.style.border`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_tools_style_border.html) object wrapping CSS border style helpers under a single type.
+* [#2495](https://github.com/ckeditor/ckeditor4/issues/2495): The [Table Selection](https://ckeditor.com/cke4/addon/tableselection) plugin can now be disabled for the given table with the `data-cke-tableselection-ignored` attribute.
+* [#2692](https://github.com/ckeditor/ckeditor4/issues/2692): Plugins can now expose information about the supported environment by implementing the [`pluginDefinition.isSupportedEnvironment()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_pluginDefinition.html#method-isSupportedEnvironment) method.
 
 Other Changes:
 
-* [#2741](https://github.com/ckeditor/ckeditor-dev/issues/2741): Replaced deprecated `arguments.callee` calls with named function expressions to allow the editor to work in strict mode.
-* [#2924](https://github.com/ckeditor/ckeditor-dev/issues/2924): Marked [`CKEDITOR.tools.style.parse.border()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_tools_style_parse.html#method-border) as deprecated in favor of the [`CKEDITOR.tools.style.border.fromCssRule()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_tools_style_border.html#static-method-fromCssRule) method.
-* [#3132](https://github.com/ckeditor/ckeditor-dev/issues/2924): Marked [`CKEDITOR.tools.objectKeys()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_tools.html#method-objectKeys) as deprecated in favor of the [`CKEDITOR.tools.object.keys()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_tools_object.html#method-keys) method.
+* [#2741](https://github.com/ckeditor/ckeditor4/issues/2741): Replaced deprecated `arguments.callee` calls with named function expressions to allow the editor to work in strict mode.
+* [#2924](https://github.com/ckeditor/ckeditor4/issues/2924): Marked [`CKEDITOR.tools.style.parse.border()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_tools_style_parse.html#method-border) as deprecated in favor of the [`CKEDITOR.tools.style.border.fromCssRule()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_tools_style_border.html#static-method-fromCssRule) method.
+* [#3132](https://github.com/ckeditor/ckeditor4/issues/2924): Marked [`CKEDITOR.tools.objectKeys()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_tools.html#method-objectKeys) as deprecated in favor of the [`CKEDITOR.tools.object.keys()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_tools_object.html#method-keys) method.
 
 ## CKEditor 4.11.4
 
 Fixed Issues:
 
-* [#589](https://github.com/ckeditor/ckeditor-dev/issues/589): Fixed: The editor causes memory leaks in create and destroy cycles.
-* [#1397](https://github.com/ckeditor/ckeditor-dev/issues/1397): Fixed: Using the dialog to remove headers from a [table](https://ckeditor.com/cke4/addon/table) with one header row only throws an error.
-* [#1479](https://github.com/ckeditor/ckeditor-dev/issues/1479): Fixed: [Justification](https://ckeditor.com/cke4/addon/justify) for styled content in BR mode is disabled.
-* [#2816](https://github.com/ckeditor/ckeditor-dev/issues/2816): Fixed: [Enhanced Image](https://ckeditor.com/cke4/addon/image2) resize handler is visible in [read-only mode](https://ckeditor.com/docs/ckeditor4/latest/guide/dev_readonly.html).
-* [#2874](https://github.com/ckeditor/ckeditor-dev/issues/2874): Fixed: [Enhanced Image](https://ckeditor.com/cke4/addon/image2) resize handler is not created when the editor is initialized in [read-only mode](https://ckeditor.com/docs/ckeditor4/latest/guide/dev_readonly.html).
-* [#2775](https://github.com/ckeditor/ckeditor-dev/issues/2775): Fixed: [Clipboard](https://ckeditor.com/cke4/addon/clipboard) paste buttons have wrong state when [read-only](https://ckeditor.com/docs/ckeditor4/latest/guide/dev_readonly.html) mode is set by the mouse event listener with the [Div Editing Area](https://ckeditor.com/cke4/addon/divarea) plugin.
-* [#1901](https://github.com/ckeditor/ckeditor-dev/issues/1901): Fixed: Cannot open the context menu over a [Widget](https://ckeditor.com/cke4/addon/widget) with the <kbd>Shift</kbd>+<kbd>F10</kbd> keyboard shortcut.
+* [#589](https://github.com/ckeditor/ckeditor4/issues/589): Fixed: The editor causes memory leaks in create and destroy cycles.
+* [#1397](https://github.com/ckeditor/ckeditor4/issues/1397): Fixed: Using the dialog to remove headers from a [table](https://ckeditor.com/cke4/addon/table) with one header row only throws an error.
+* [#1479](https://github.com/ckeditor/ckeditor4/issues/1479): Fixed: [Justification](https://ckeditor.com/cke4/addon/justify) for styled content in BR mode is disabled.
+* [#2816](https://github.com/ckeditor/ckeditor4/issues/2816): Fixed: [Enhanced Image](https://ckeditor.com/cke4/addon/image2) resize handler is visible in [read-only mode](https://ckeditor.com/docs/ckeditor4/latest/guide/dev_readonly.html).
+* [#2874](https://github.com/ckeditor/ckeditor4/issues/2874): Fixed: [Enhanced Image](https://ckeditor.com/cke4/addon/image2) resize handler is not created when the editor is initialized in [read-only mode](https://ckeditor.com/docs/ckeditor4/latest/guide/dev_readonly.html).
+* [#2775](https://github.com/ckeditor/ckeditor4/issues/2775): Fixed: [Clipboard](https://ckeditor.com/cke4/addon/clipboard) paste buttons have wrong state when [read-only](https://ckeditor.com/docs/ckeditor4/latest/guide/dev_readonly.html) mode is set by the mouse event listener with the [Div Editing Area](https://ckeditor.com/cke4/addon/divarea) plugin.
+* [#1901](https://github.com/ckeditor/ckeditor4/issues/1901): Fixed: Cannot open the context menu over a [Widget](https://ckeditor.com/cke4/addon/widget) with the <kbd>Shift</kbd>+<kbd>F10</kbd> keyboard shortcut.
 
 Other Changes:
 
@@ -142,45 +167,45 @@ Other Changes:
 
 Fixed Issues:
 
-* [#2721](https://github.com/ckeditor/ckeditor-dev/issues/2721), [#487](https://github.com/ckeditor/ckeditor-dev/issues/487): Fixed: The order of sublist items is reversed when a higher level list item is removed.
-* [#2527](https://github.com/ckeditor/ckeditor-dev/issues/2527): Fixed: [Emoji](https://ckeditor.com/cke4/addon/emoji) autocomplete order does not prioritize emojis with the name starting from the used string.
-* [#2572](https://github.com/ckeditor/ckeditor-dev/issues/2572): Fixed: Icons in the [Emoji](https://ckeditor.com/cke4/addon/emoji) dropdown navigation groups are not centered.
-* [#1191](https://github.com/ckeditor/ckeditor-dev/issues/1191): Fixed: Items in the [elements path](https://ckeditor.com/cke4/addon/elementspath) are draggable.
-* [#2292](https://github.com/ckeditor/ckeditor-dev/issues/2292): Fixed: Dropping a list with a link on the editor's margin causes a console error and removes the dragged text from editor.
-* [#2756](https://github.com/ckeditor/ckeditor-dev/issues/2756): Fixed: The [Auto Link](https://ckeditor.com/cke4/addon/autolink) plugin causes an error when typing in the [source editing mode](https://ckeditor.com/docs/ckeditor4/latest/guide/dev_sourcearea.html).
-* [#1986](https://github.com/ckeditor/ckeditor-dev/issues/1986): Fixed: The Cell Properties dialog from the [Table Tools](https://ckeditor.com/cke4/addon/tabletools) plugin shows styles that are not allowed through [`config.allowedContent`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_config.html#cfg-allowedContent).
-* [#2565](https://github.com/ckeditor/ckeditor-dev/issues/2565): [IE, Edge] Fixed: Buttons in the [editor toolbar](https://ckeditor.com/cke4/addon/toolbar) are activated by clicking them with the right mouse button.
-* [#2792](https://github.com/ckeditor/ckeditor-dev/pull/2792): Fixed: A bug in the [Copy Formatting](https://ckeditor.com/cke4/addon/copyformatting) plugin that caused the following issues:
-    * [#2780](https://github.com/ckeditor/ckeditor-dev/issues/2780): Fixed: Undo steps disappear after multiple changes of selection.
-    * [#2470](https://github.com/ckeditor/ckeditor-dev/issues/2470): [Firefox] Fixed: Widget's nested editable gets blurred upon focus.
-    * [#2655](https://github.com/ckeditor/ckeditor-dev/issues/2655): [Chrome, Safari] Fixed: Widget's nested editable cannot be focused under certain circumstances.
+* [#2721](https://github.com/ckeditor/ckeditor4/issues/2721), [#487](https://github.com/ckeditor/ckeditor4/issues/487): Fixed: The order of sublist items is reversed when a higher level list item is removed.
+* [#2527](https://github.com/ckeditor/ckeditor4/issues/2527): Fixed: [Emoji](https://ckeditor.com/cke4/addon/emoji) autocomplete order does not prioritize emojis with the name starting from the used string.
+* [#2572](https://github.com/ckeditor/ckeditor4/issues/2572): Fixed: Icons in the [Emoji](https://ckeditor.com/cke4/addon/emoji) dropdown navigation groups are not centered.
+* [#1191](https://github.com/ckeditor/ckeditor4/issues/1191): Fixed: Items in the [elements path](https://ckeditor.com/cke4/addon/elementspath) are draggable.
+* [#2292](https://github.com/ckeditor/ckeditor4/issues/2292): Fixed: Dropping a list with a link on the editor's margin causes a console error and removes the dragged text from editor.
+* [#2756](https://github.com/ckeditor/ckeditor4/issues/2756): Fixed: The [Auto Link](https://ckeditor.com/cke4/addon/autolink) plugin causes an error when typing in the [source editing mode](https://ckeditor.com/docs/ckeditor4/latest/guide/dev_sourcearea.html).
+* [#1986](https://github.com/ckeditor/ckeditor4/issues/1986): Fixed: The Cell Properties dialog from the [Table Tools](https://ckeditor.com/cke4/addon/tabletools) plugin shows styles that are not allowed through [`config.allowedContent`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_config.html#cfg-allowedContent).
+* [#2565](https://github.com/ckeditor/ckeditor4/issues/2565): [IE, Edge] Fixed: Buttons in the [editor toolbar](https://ckeditor.com/cke4/addon/toolbar) are activated by clicking them with the right mouse button.
+* [#2792](https://github.com/ckeditor/ckeditor4/pull/2792): Fixed: A bug in the [Copy Formatting](https://ckeditor.com/cke4/addon/copyformatting) plugin that caused the following issues:
+    * [#2780](https://github.com/ckeditor/ckeditor4/issues/2780): Fixed: Undo steps disappear after multiple changes of selection.
+    * [#2470](https://github.com/ckeditor/ckeditor4/issues/2470): [Firefox] Fixed: Widget's nested editable gets blurred upon focus.
+    * [#2655](https://github.com/ckeditor/ckeditor4/issues/2655): [Chrome, Safari] Fixed: Widget's nested editable cannot be focused under certain circumstances.
 
 ## CKEditor 4.11.2
 
 Fixed Issues:
 
-* [#2403](https://github.com/ckeditor/ckeditor-dev/issues/2403): Fixed: Styling inline editor initialized inside a table with the [Table Selection](https://ckeditor.com/cke4/addon/tableselection) plugin is causing style leaks.
-* [#2514](https://github.com/ckeditor/ckeditor-dev/issues/2403): Fixed: Pasting table data into inline editor initialized inside a table with the [Table Selection](https://ckeditor.com/cke4/addon/tableselection) plugin inserts pasted content into the wrapping table.
-* [#2451](https://github.com/ckeditor/ckeditor-dev/issues/2451): Fixed: The [Remove Format](https://ckeditor.com/cke4/addon/removeformat) plugin changes selection.
-* [#2546](https://github.com/ckeditor/ckeditor-dev/issues/2546): Fixed: The separator in the toolbar moves when buttons are focused.
-* [#2506](https://github.com/ckeditor/ckeditor-dev/issues/2506): Fixed: [Enhanced Image](https://ckeditor.com/cke4/addon/image2) throws a type error when an empty `<figure>` tag with an `image` class is upcasted.
-* [#2650](https://github.com/ckeditor/ckeditor-dev/issues/2650): Fixed: [Table](https://ckeditor.com/cke4/addon/table) dialog validator fails when the `getValue()` function is defined in the global scope.
-* [#2690](https://github.com/ckeditor/ckeditor-dev/issues/2690): Fixed: Decimal characters are removed from the inside of numbered lists when pasting content using the [Paste from Word](https://ckeditor.com/cke4/addon/pastefromword) plugin.
-* [#2205](https://github.com/ckeditor/ckeditor-dev/issues/2205): Fixed: It is not possible to add new list items under an item containing a block element.
-* [#2411](https://github.com/ckeditor/ckeditor-dev/issues/2411), [#2438](https://github.com/ckeditor/ckeditor-dev/issues/2438) Fixed: Apply numbered list option throws a console error for a specific markup.
-* [#2430](https://github.com/ckeditor/ckeditor-dev/issues/2430) Fixed: [Color Button](https://ckeditor.com/cke4/addon/colorbutton) and [List Block](https://ckeditor.com/cke4/addon/listblock) items are draggable.
+* [#2403](https://github.com/ckeditor/ckeditor4/issues/2403): Fixed: Styling inline editor initialized inside a table with the [Table Selection](https://ckeditor.com/cke4/addon/tableselection) plugin is causing style leaks.
+* [#2514](https://github.com/ckeditor/ckeditor4/issues/2403): Fixed: Pasting table data into inline editor initialized inside a table with the [Table Selection](https://ckeditor.com/cke4/addon/tableselection) plugin inserts pasted content into the wrapping table.
+* [#2451](https://github.com/ckeditor/ckeditor4/issues/2451): Fixed: The [Remove Format](https://ckeditor.com/cke4/addon/removeformat) plugin changes selection.
+* [#2546](https://github.com/ckeditor/ckeditor4/issues/2546): Fixed: The separator in the toolbar moves when buttons are focused.
+* [#2506](https://github.com/ckeditor/ckeditor4/issues/2506): Fixed: [Enhanced Image](https://ckeditor.com/cke4/addon/image2) throws a type error when an empty `<figure>` tag with an `image` class is upcasted.
+* [#2650](https://github.com/ckeditor/ckeditor4/issues/2650): Fixed: [Table](https://ckeditor.com/cke4/addon/table) dialog validator fails when the `getValue()` function is defined in the global scope.
+* [#2690](https://github.com/ckeditor/ckeditor4/issues/2690): Fixed: Decimal characters are removed from the inside of numbered lists when pasting content using the [Paste from Word](https://ckeditor.com/cke4/addon/pastefromword) plugin.
+* [#2205](https://github.com/ckeditor/ckeditor4/issues/2205): Fixed: It is not possible to add new list items under an item containing a block element.
+* [#2411](https://github.com/ckeditor/ckeditor4/issues/2411), [#2438](https://github.com/ckeditor/ckeditor4/issues/2438) Fixed: Apply numbered list option throws a console error for a specific markup.
+* [#2430](https://github.com/ckeditor/ckeditor4/issues/2430) Fixed: [Color Button](https://ckeditor.com/cke4/addon/colorbutton) and [List Block](https://ckeditor.com/cke4/addon/listblock) items are draggable.
 
 Other Changes:
 
 * Updated the [WebSpellChecker](https://ckeditor.com/cke4/addon/wsc) (WSC) plugin:
 	* [#52](https://github.com/WebSpellChecker/ckeditor-plugin-wsc/issues/52) Fixed: Clicking "Finish Checking" without a prior action would hang the Spell Checking dialog.
-* [#2603](https://github.com/ckeditor/ckeditor-dev/issues/2603): Corrected the GPL license entry in the `package.json` file.
+* [#2603](https://github.com/ckeditor/ckeditor4/issues/2603): Corrected the GPL license entry in the `package.json` file.
 
 ## CKEditor 4.11.1
 
 Fixed Issues:
 
-* [#2571](https://github.com/ckeditor/ckeditor-dev/issues/2571): Fixed: Clicking the categories in the [Emoji](https://ckeditor.com/cke4/addon/emoji) dropdown panel scrolls the entire page.
+* [#2571](https://github.com/ckeditor/ckeditor4/issues/2571): Fixed: Clicking the categories in the [Emoji](https://ckeditor.com/cke4/addon/emoji) dropdown panel scrolls the entire page.
 
 ## CKEditor 4.11
 
@@ -194,119 +219,119 @@ Fixed Issues:
 
 New Features:
 
-* [#2062](https://github.com/ckeditor/ckeditor-dev/pull/2062): Added the emoji dropdown that allows the user to choose the emoji from the toolbar and search for them using keywords.
-* [#2154](https://github.com/ckeditor/ckeditor-dev/issues/2154): The [Link](https://ckeditor.com/cke4/addon/link) plugin now supports phone number links.
-* [#1815](https://github.com/ckeditor/ckeditor-dev/issues/1815): The [Auto Link](https://ckeditor.com/cke4/addon/autolink) plugin supports typing link completion.
-* [#2478](https://github.com/ckeditor/ckeditor-dev/issues/2478): [Link](https://ckeditor.com/cke4/addon/link) can be inserted using the <kbd>Ctrl</kbd>/<kbd>Cmd</kbd> + <kbd>K</kbd> keystroke.
-* [#651](https://github.com/ckeditor/ckeditor-dev/issues/651): Text pasted using the [Paste from Word](https://ckeditor.com/cke4/addon/pastefromword) plugin preserves indentation in paragraphs.
-* [#2248](https://github.com/ckeditor/ckeditor-dev/issues/2248): Added support for justification in the [BBCode](https://ckeditor.com/cke4/addon/bbcode) plugin. Thanks to [Matěj Kmínek](https://github.com/KminekMatej)!
-* [#706](https://github.com/ckeditor/ckeditor-dev/issues/706): Added a different cursor style when selecting cells for the [Table Selection](https://ckeditor.com/cke4/addon/tableselection) plugin.
-* [#2072](https://github.com/ckeditor/ckeditor-dev/issues/2072): The [UI Button](https://ckeditor.com/cke4/addon/button) plugin supports custom `aria-haspopup` property values. The [Menu Button](https://ckeditor.com/cke4/addon/menubutton) `aria-haspopup` value is now `menu`, the [Panel Button](https://ckeditor.com/cke4/addon/panelbutton) and [Rich Combo](https://ckeditor.com/cke4/addon/richcombo) `aria-haspopup` value is now `listbox`.
-* [#1176](https://github.com/ckeditor/ckeditor-dev/pull/1176): The [Balloon Panel](https://ckeditor.com/cke4/addon/balloonpanel) can now be attached to a selection instead of an element.
-* [#2202](https://github.com/ckeditor/ckeditor-dev/issues/2202): Added the `contextmenu_contentsCss` configuration option to allow adding custom CSS to the [Context Menu](https://ckeditor.com/cke4/addon/contextmenu).
+* [#2062](https://github.com/ckeditor/ckeditor4/pull/2062): Added the emoji dropdown that allows the user to choose the emoji from the toolbar and search for them using keywords.
+* [#2154](https://github.com/ckeditor/ckeditor4/issues/2154): The [Link](https://ckeditor.com/cke4/addon/link) plugin now supports phone number links.
+* [#1815](https://github.com/ckeditor/ckeditor4/issues/1815): The [Auto Link](https://ckeditor.com/cke4/addon/autolink) plugin supports typing link completion.
+* [#2478](https://github.com/ckeditor/ckeditor4/issues/2478): [Link](https://ckeditor.com/cke4/addon/link) can be inserted using the <kbd>Ctrl</kbd>/<kbd>Cmd</kbd> + <kbd>K</kbd> keystroke.
+* [#651](https://github.com/ckeditor/ckeditor4/issues/651): Text pasted using the [Paste from Word](https://ckeditor.com/cke4/addon/pastefromword) plugin preserves indentation in paragraphs.
+* [#2248](https://github.com/ckeditor/ckeditor4/issues/2248): Added support for justification in the [BBCode](https://ckeditor.com/cke4/addon/bbcode) plugin. Thanks to [Matěj Kmínek](https://github.com/KminekMatej)!
+* [#706](https://github.com/ckeditor/ckeditor4/issues/706): Added a different cursor style when selecting cells for the [Table Selection](https://ckeditor.com/cke4/addon/tableselection) plugin.
+* [#2072](https://github.com/ckeditor/ckeditor4/issues/2072): The [UI Button](https://ckeditor.com/cke4/addon/button) plugin supports custom `aria-haspopup` property values. The [Menu Button](https://ckeditor.com/cke4/addon/menubutton) `aria-haspopup` value is now `menu`, the [Panel Button](https://ckeditor.com/cke4/addon/panelbutton) and [Rich Combo](https://ckeditor.com/cke4/addon/richcombo) `aria-haspopup` value is now `listbox`.
+* [#1176](https://github.com/ckeditor/ckeditor4/pull/1176): The [Balloon Panel](https://ckeditor.com/cke4/addon/balloonpanel) can now be attached to a selection instead of an element.
+* [#2202](https://github.com/ckeditor/ckeditor4/issues/2202): Added the `contextmenu_contentsCss` configuration option to allow adding custom CSS to the [Context Menu](https://ckeditor.com/cke4/addon/contextmenu).
 
 Fixed Issues:
 
-* [#1477](https://github.com/ckeditor/ckeditor-dev/issues/1477): Fixed: On destroy, [Balloon Toolbar](https://ckeditor.com/cke4/addon/balloontoolbar) does not destroy its content.
-* [#2394](https://github.com/ckeditor/ckeditor-dev/issues/2394): Fixed: [Emoji](https://ckeditor.com/cke4/addon/emoji) dropdown does not show up with repeated symbols in a single line.
-* [#1181](https://github.com/ckeditor/ckeditor-dev/issues/1181): [Chrome] Fixed: Opening the context menu in a read-only editor results in an error.
-* [#2276](https://github.com/ckeditor/ckeditor-dev/issues/2276): [iOS] Fixed: [Button](https://ckeditor.com/cke4/addon/button) state does not refresh properly.
-* [#1489](https://github.com/ckeditor/ckeditor-dev/issues/1489): Fixed: Table contents can be removed in read-only mode when the [Table Selection](https://ckeditor.com/cke4/addon/tableselection) plugin is used.
-* [#1264](https://github.com/ckeditor/ckeditor-dev/issues/1264) Fixed: Right-click does not clear the selection created with the [Table Selection](https://ckeditor.com/cke4/addon/tableselection) plugin.
-* [#586](https://github.com/ckeditor/ckeditor-dev/issues/586) Fixed: The `required` attribute is not correctly recognized by the [Form Elements](https://ckeditor.com/cke4/addon/forms) plugin dialog. Thanks to [Roli Züger](https://github.com/rzueger)!
-* [#2380](https://github.com/ckeditor/ckeditor-dev/issues/2380) Fixed: Styling HTML comments in a top-level element results in extra paragraphs.
-* [#2294](https://github.com/ckeditor/ckeditor-dev/issues/2294) Fixed: Pasting content from Microsoft Outlook and then bolding it results in an error.
-* [#2035](https://github.com/ckeditor/ckeditor-dev/issues/2035) [Edge] Fixed: `Permission denied` is thrown when opening a [Panel](https://ckeditor.com/cke4/addon/panel) instance.
-* [#965](https://github.com/ckeditor/ckeditor-dev/issues/965) Fixed: The [`config.forceSimpleAmpersand`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_config.html#cfg-forceSimpleAmpersand) option does not work. Thanks to [Alex Maris](https://github.com/alexmaris)!
-* [#2448](https://github.com/ckeditor/ckeditor-dev/issues/2448): Fixed: The [`Escape HTML Entities`] plugin with custom [additional entities](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_config.html#cfg-entities_additional) configuration breaks HTML escaping.
-* [#898](https://github.com/ckeditor/ckeditor-dev/issues/898): Fixed: [Enhanced Image](https://ckeditor.com/cke4/addon/image2) long alternative text protrudes into the editor when the image is selected.
-* [#1113](https://github.com/ckeditor/ckeditor-dev/issues/1113): [Firefox] Fixed: Nested contenteditable elements path is not updated on focus with the [Div Editing Area](https://ckeditor.com/cke4/addon/divarea) plugin.
-* [#1682](https://github.com/ckeditor/ckeditor-dev/issues/1682) Fixed: Hovering the [Balloon Toolbar](https://ckeditor.com/cke4/addon/balloontoolbar) panel changes its size, causing flickering.
-* [#421](https://github.com/ckeditor/ckeditor-dev/issues/421) Fixed: Expandable [Button](https://ckeditor.com/cke4/addon/button) puts the `(Selected)` text at the end of the label when clicked.
-* [#1454](https://github.com/ckeditor/ckeditor-dev/issues/1454): Fixed: The [`onAbort`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_fileTools_uploadWidgetDefinition.html#property-onAbort) method of the [Upload Widget](https://ckeditor.com/cke4/addon/uploadwidget) is not called when the loader is aborted.
-* [#1451](https://github.com/ckeditor/ckeditor-dev/issues/1451): Fixed: The context menu is incorrectly positioned when opened with <kbd>Shift</kbd>+<kbd>F10</kbd>.
-* [#1722](https://github.com/ckeditor/ckeditor-dev/issues/1722): [`CKEDITOR.filter.instances`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_filter.html#static-property-instances) is causing memory leaks.
-* [#2491](https://github.com/ckeditor/ckeditor-dev/issues/2491): Fixed: The [Mentions](https://ckeditor.com/cke4/addon/mentions) plugin is not matching diacritic characters.
-* [#2519](https://github.com/ckeditor/ckeditor-dev/issues/2519): Fixed: The [Accessibility Help](https://ckeditor.com/cke4/addon/a11yhelp) dialog should display all available keystrokes for a single command.
+* [#1477](https://github.com/ckeditor/ckeditor4/issues/1477): Fixed: On destroy, [Balloon Toolbar](https://ckeditor.com/cke4/addon/balloontoolbar) does not destroy its content.
+* [#2394](https://github.com/ckeditor/ckeditor4/issues/2394): Fixed: [Emoji](https://ckeditor.com/cke4/addon/emoji) dropdown does not show up with repeated symbols in a single line.
+* [#1181](https://github.com/ckeditor/ckeditor4/issues/1181): [Chrome] Fixed: Opening the context menu in a read-only editor results in an error.
+* [#2276](https://github.com/ckeditor/ckeditor4/issues/2276): [iOS] Fixed: [Button](https://ckeditor.com/cke4/addon/button) state does not refresh properly.
+* [#1489](https://github.com/ckeditor/ckeditor4/issues/1489): Fixed: Table contents can be removed in read-only mode when the [Table Selection](https://ckeditor.com/cke4/addon/tableselection) plugin is used.
+* [#1264](https://github.com/ckeditor/ckeditor4/issues/1264) Fixed: Right-click does not clear the selection created with the [Table Selection](https://ckeditor.com/cke4/addon/tableselection) plugin.
+* [#586](https://github.com/ckeditor/ckeditor4/issues/586) Fixed: The `required` attribute is not correctly recognized by the [Form Elements](https://ckeditor.com/cke4/addon/forms) plugin dialog. Thanks to [Roli Züger](https://github.com/rzueger)!
+* [#2380](https://github.com/ckeditor/ckeditor4/issues/2380) Fixed: Styling HTML comments in a top-level element results in extra paragraphs.
+* [#2294](https://github.com/ckeditor/ckeditor4/issues/2294) Fixed: Pasting content from Microsoft Outlook and then bolding it results in an error.
+* [#2035](https://github.com/ckeditor/ckeditor4/issues/2035) [Edge] Fixed: `Permission denied` is thrown when opening a [Panel](https://ckeditor.com/cke4/addon/panel) instance.
+* [#965](https://github.com/ckeditor/ckeditor4/issues/965) Fixed: The [`config.forceSimpleAmpersand`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_config.html#cfg-forceSimpleAmpersand) option does not work. Thanks to [Alex Maris](https://github.com/alexmaris)!
+* [#2448](https://github.com/ckeditor/ckeditor4/issues/2448): Fixed: The [`Escape HTML Entities`] plugin with custom [additional entities](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_config.html#cfg-entities_additional) configuration breaks HTML escaping.
+* [#898](https://github.com/ckeditor/ckeditor4/issues/898): Fixed: [Enhanced Image](https://ckeditor.com/cke4/addon/image2) long alternative text protrudes into the editor when the image is selected.
+* [#1113](https://github.com/ckeditor/ckeditor4/issues/1113): [Firefox] Fixed: Nested contenteditable elements path is not updated on focus with the [Div Editing Area](https://ckeditor.com/cke4/addon/divarea) plugin.
+* [#1682](https://github.com/ckeditor/ckeditor4/issues/1682) Fixed: Hovering the [Balloon Toolbar](https://ckeditor.com/cke4/addon/balloontoolbar) panel changes its size, causing flickering.
+* [#421](https://github.com/ckeditor/ckeditor4/issues/421) Fixed: Expandable [Button](https://ckeditor.com/cke4/addon/button) puts the `(Selected)` text at the end of the label when clicked.
+* [#1454](https://github.com/ckeditor/ckeditor4/issues/1454): Fixed: The [`onAbort`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_fileTools_uploadWidgetDefinition.html#property-onAbort) method of the [Upload Widget](https://ckeditor.com/cke4/addon/uploadwidget) is not called when the loader is aborted.
+* [#1451](https://github.com/ckeditor/ckeditor4/issues/1451): Fixed: The context menu is incorrectly positioned when opened with <kbd>Shift</kbd>+<kbd>F10</kbd>.
+* [#1722](https://github.com/ckeditor/ckeditor4/issues/1722): [`CKEDITOR.filter.instances`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_filter.html#static-property-instances) is causing memory leaks.
+* [#2491](https://github.com/ckeditor/ckeditor4/issues/2491): Fixed: The [Mentions](https://ckeditor.com/cke4/addon/mentions) plugin is not matching diacritic characters.
+* [#2519](https://github.com/ckeditor/ckeditor4/issues/2519): Fixed: The [Accessibility Help](https://ckeditor.com/cke4/addon/a11yhelp) dialog should display all available keystrokes for a single command.
 
 API Changes:
 
-* [#2453](https://github.com/ckeditor/ckeditor-dev/issues/2453): The [`CKEDITOR.ui.panel.block.getItems`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_ui_panel_block.html#method-getItems) method now also returns `input` elements in addition to links.
-* [#2224](https://github.com/ckeditor/ckeditor-dev/issues/2224):  The [`CKEDITOR.tools.convertToPx`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_tools.html#method-convertToPx) function now converts negative values.
-* [#2253](https://github.com/ckeditor/ckeditor-dev/issues/2253): The widget definition [`insert`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_plugins_widget_definition.html#property-insert) method now passes `editor` and `commandData`. Thanks to [marcparmet](https://github.com/marcparmet)!
-* [#2045](https://github.com/ckeditor/ckeditor-dev/issues/2045): Extracted [`tools.eventsBuffer`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_tools.html#method-eventsBuffer) and [`tools.throttle`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_tools.html#method-throttle) functions logic into a separate namespace.
+* [#2453](https://github.com/ckeditor/ckeditor4/issues/2453): The [`CKEDITOR.ui.panel.block.getItems`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_ui_panel_block.html#method-getItems) method now also returns `input` elements in addition to links.
+* [#2224](https://github.com/ckeditor/ckeditor4/issues/2224):  The [`CKEDITOR.tools.convertToPx`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_tools.html#method-convertToPx) function now converts negative values.
+* [#2253](https://github.com/ckeditor/ckeditor4/issues/2253): The widget definition [`insert`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_plugins_widget_definition.html#property-insert) method now passes `editor` and `commandData`. Thanks to [marcparmet](https://github.com/marcparmet)!
+* [#2045](https://github.com/ckeditor/ckeditor4/issues/2045): Extracted [`tools.eventsBuffer`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_tools.html#method-eventsBuffer) and [`tools.throttle`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_tools.html#method-throttle) functions logic into a separate namespace.
 	* [`tools.eventsBuffer`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_tools.html#method-eventsBuffer) was extracted into [`tools.buffers.event`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_tools_buffers_event.html),
 	* [`tools.throttle`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_tools.html#method-throttle) was extracted into [`tools.buffers.throttle`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_tools_buffers_throttle.html).
-* [#2466](https://github.com/ckeditor/ckeditor-dev/issues/2466):  The [`CKEDITOR.filter`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_tools.html#method-constructor) constructor accepts an additional `rules` parameter allowing to bind the editor and filter together.
-* [#2493](https://github.com/ckeditor/ckeditor-dev/issues/2493):  The [`editor.getCommandKeystroke`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_editor.html#method-getCommandKeystroke) method accepts an additional `all` parameter allowing to retrieve an array of all command keystrokes.
-* [#2483](https://github.com/ckeditor/ckeditor-dev/issues/2483): Button's DOM element created with the [`hasArrow`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_ui.html#method-addButton) definition option can by identified by the `.cke_button_expandable` CSS class.
+* [#2466](https://github.com/ckeditor/ckeditor4/issues/2466):  The [`CKEDITOR.filter`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_tools.html#method-constructor) constructor accepts an additional `rules` parameter allowing to bind the editor and filter together.
+* [#2493](https://github.com/ckeditor/ckeditor4/issues/2493):  The [`editor.getCommandKeystroke`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_editor.html#method-getCommandKeystroke) method accepts an additional `all` parameter allowing to retrieve an array of all command keystrokes.
+* [#2483](https://github.com/ckeditor/ckeditor4/issues/2483): Button's DOM element created with the [`hasArrow`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_ui.html#method-addButton) definition option can by identified by the `.cke_button_expandable` CSS class.
 
 Other Changes:
 
-* [#1713](https://github.com/ckeditor/ckeditor-dev/issues/1713): Removed the redundant `lang.title` entry from the [Clipboard](https://ckeditor.com/cke4/addon/clipboard) plugin.
+* [#1713](https://github.com/ckeditor/ckeditor4/issues/1713): Removed the redundant `lang.title` entry from the [Clipboard](https://ckeditor.com/cke4/addon/clipboard) plugin.
 
 ## CKEditor 4.10.1
 
 Fixed Issues:
 
-* [#2114](https://github.com/ckeditor/ckeditor-dev/issues/2114): Fixed: [Autocomplete](https://ckeditor.com/cke4/addon/autocomplete) cannot be initialized before [`instanceReady`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_editor.html#event-instanceReady).
-* [#2107](https://github.com/ckeditor/ckeditor-dev/issues/2107): Fixed: Holding and releasing the mouse button is not inserting an [autocomplete](https://ckeditor.com/cke4/addon/autocomplete) suggestion.
-* [#2167](https://github.com/ckeditor/ckeditor-dev/issues/2167): Fixed: Matching in [Emoji](https://ckeditor.com/cke4/addon/emoji) plugin is not case insensitive.
-* [#2195](https://github.com/ckeditor/ckeditor-dev/issues/2195): Fixed: [Emoji](https://ckeditor.com/cke4/addon/emoji) shows the suggestion box when the colon is preceded with other characters than white space.
-* [#2169](https://github.com/ckeditor/ckeditor-dev/issues/2169): [Edge] Fixed: Error thrown when pasting into the editor.
-* [#1084](https://github.com/ckeditor/ckeditor-dev/issues/1084) Fixed: Using the "Automatic" option with [Color Button](https://ckeditor.com/cke4/addon/colorbutton) on a text with the color already defined sets an invalid color value.
-* [#2271](https://github.com/ckeditor/ckeditor-dev/issues/2271): Fixed: Custom color name not used as a label in the [Color Button](https://ckeditor.com/cke4/addon/image2) plugin. Thanks to [Eric Geloen](https://github.com/egeloen)!
-* [#2296](https://github.com/ckeditor/ckeditor-dev/issues/2296): Fixed: The [Color Button](https://ckeditor.com/cke4/addon/colorbutton) plugin throws an error when activated on content containing HTML comments.
-* [#966](https://github.com/ckeditor/ckeditor-dev/issues/966): Fixed: Executing [`editor.destroy()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_editor.html#method-destroy) during the [file upload](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_fileTools_uploadWidgetDefinition.html#property-onUploading) throws an error. Thanks to [Maksim Makarevich](https://github.com/MaksimMakarevich)!
-* [#1719](https://github.com/ckeditor/ckeditor-dev/issues/1719): Fixed: <kbd>Ctrl</kbd>/<kbd>Cmd</kbd> + <kbd>A</kbd> inadvertently focuses inline editor if it is starting and ending with a list. Thanks to [theNailz](https://github.com/theNailz)!
-* [#1046](https://github.com/ckeditor/ckeditor-dev/issues/1046): Fixed: Subsequent new links do not include the `id` attribute. Thanks to [Nathan Samson](https://github.com/nathansamson)!
-* [#1348](https://github.com/ckeditor/ckeditor-dev/issues/1348): Fixed: [Enhanced Image](https://ckeditor.com/cke4/addon/image2) plugin aspect ratio locking uses an old width and height on image URL change.
-* [#1791](https://github.com/ckeditor/ckeditor-dev/issues/1791): Fixed: [Image](https://ckeditor.com/cke4/addon/image) and [Enhanced Image](https://ckeditor.com/cke4/addon/image2) plugins can be enabled when [Easy Image](https://ckeditor.com/cke4/addon/easyimage) is present.
-* [#2254](https://github.com/ckeditor/ckeditor-dev/issues/2254): Fixed: [Image](https://ckeditor.com/cke4/addon/image) ratio locking is too precise for resized images. Thanks to [Jonathan Gilbert](https://github.com/logiclrd)!
-* [#1184](https://github.com/ckeditor/ckeditor-dev/issues/1184): [IE8-11] Fixed: Copying and pasting data in [read-only mode](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_editor.html#property-readOnly) throws an error.
-* [#1916](https://github.com/ckeditor/ckeditor-dev/issues/1916): [IE9-11] Fixed: Pressing the <kbd>Delete</kbd> key in [read-only mode](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_editor.html#property-readOnly) throws an error.
-* [#2003](https://github.com/ckeditor/ckeditor-dev/issues/2003): [Firefox] Fixed: Right-clicking multiple selected table cells containing empty paragraphs removes the selection.
-* [#1816](https://github.com/ckeditor/ckeditor-dev/issues/1816): Fixed: Table breaks when <kbd>Enter</kbd> is pressed over the [Table Selection](https://ckeditor.com/cke4/addon/tableselection) plugin.
-* [#1115](https://github.com/ckeditor/ckeditor-dev/issues/1115): Fixed: The `<font>` tag is not preserved when proper configuration is provided and a style is applied by the [Font](https://ckeditor.com/cke4/addon/font) plugin.
-* [#727](https://github.com/ckeditor/ckeditor-dev/issues/727): Fixed: Custom styles may be invisible in the [Styles Combo](https://ckeditor.com/cke4/addon/stylescombo) plugin.
-* [#988](https://github.com/ckeditor/ckeditor-dev/issues/988): Fixed: ACF-enabled custom elements prefixed with `object`, `embed`, `param` are removed from the editor content.
+* [#2114](https://github.com/ckeditor/ckeditor4/issues/2114): Fixed: [Autocomplete](https://ckeditor.com/cke4/addon/autocomplete) cannot be initialized before [`instanceReady`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_editor.html#event-instanceReady).
+* [#2107](https://github.com/ckeditor/ckeditor4/issues/2107): Fixed: Holding and releasing the mouse button is not inserting an [autocomplete](https://ckeditor.com/cke4/addon/autocomplete) suggestion.
+* [#2167](https://github.com/ckeditor/ckeditor4/issues/2167): Fixed: Matching in [Emoji](https://ckeditor.com/cke4/addon/emoji) plugin is not case insensitive.
+* [#2195](https://github.com/ckeditor/ckeditor4/issues/2195): Fixed: [Emoji](https://ckeditor.com/cke4/addon/emoji) shows the suggestion box when the colon is preceded with other characters than white space.
+* [#2169](https://github.com/ckeditor/ckeditor4/issues/2169): [Edge] Fixed: Error thrown when pasting into the editor.
+* [#1084](https://github.com/ckeditor/ckeditor4/issues/1084) Fixed: Using the "Automatic" option with [Color Button](https://ckeditor.com/cke4/addon/colorbutton) on a text with the color already defined sets an invalid color value.
+* [#2271](https://github.com/ckeditor/ckeditor4/issues/2271): Fixed: Custom color name not used as a label in the [Color Button](https://ckeditor.com/cke4/addon/image2) plugin. Thanks to [Eric Geloen](https://github.com/egeloen)!
+* [#2296](https://github.com/ckeditor/ckeditor4/issues/2296): Fixed: The [Color Button](https://ckeditor.com/cke4/addon/colorbutton) plugin throws an error when activated on content containing HTML comments.
+* [#966](https://github.com/ckeditor/ckeditor4/issues/966): Fixed: Executing [`editor.destroy()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_editor.html#method-destroy) during the [file upload](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_fileTools_uploadWidgetDefinition.html#property-onUploading) throws an error. Thanks to [Maksim Makarevich](https://github.com/MaksimMakarevich)!
+* [#1719](https://github.com/ckeditor/ckeditor4/issues/1719): Fixed: <kbd>Ctrl</kbd>/<kbd>Cmd</kbd> + <kbd>A</kbd> inadvertently focuses inline editor if it is starting and ending with a list. Thanks to [theNailz](https://github.com/theNailz)!
+* [#1046](https://github.com/ckeditor/ckeditor4/issues/1046): Fixed: Subsequent new links do not include the `id` attribute. Thanks to [Nathan Samson](https://github.com/nathansamson)!
+* [#1348](https://github.com/ckeditor/ckeditor4/issues/1348): Fixed: [Enhanced Image](https://ckeditor.com/cke4/addon/image2) plugin aspect ratio locking uses an old width and height on image URL change.
+* [#1791](https://github.com/ckeditor/ckeditor4/issues/1791): Fixed: [Image](https://ckeditor.com/cke4/addon/image) and [Enhanced Image](https://ckeditor.com/cke4/addon/image2) plugins can be enabled when [Easy Image](https://ckeditor.com/cke4/addon/easyimage) is present.
+* [#2254](https://github.com/ckeditor/ckeditor4/issues/2254): Fixed: [Image](https://ckeditor.com/cke4/addon/image) ratio locking is too precise for resized images. Thanks to [Jonathan Gilbert](https://github.com/logiclrd)!
+* [#1184](https://github.com/ckeditor/ckeditor4/issues/1184): [IE8-11] Fixed: Copying and pasting data in [read-only mode](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_editor.html#property-readOnly) throws an error.
+* [#1916](https://github.com/ckeditor/ckeditor4/issues/1916): [IE9-11] Fixed: Pressing the <kbd>Delete</kbd> key in [read-only mode](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_editor.html#property-readOnly) throws an error.
+* [#2003](https://github.com/ckeditor/ckeditor4/issues/2003): [Firefox] Fixed: Right-clicking multiple selected table cells containing empty paragraphs removes the selection.
+* [#1816](https://github.com/ckeditor/ckeditor4/issues/1816): Fixed: Table breaks when <kbd>Enter</kbd> is pressed over the [Table Selection](https://ckeditor.com/cke4/addon/tableselection) plugin.
+* [#1115](https://github.com/ckeditor/ckeditor4/issues/1115): Fixed: The `<font>` tag is not preserved when proper configuration is provided and a style is applied by the [Font](https://ckeditor.com/cke4/addon/font) plugin.
+* [#727](https://github.com/ckeditor/ckeditor4/issues/727): Fixed: Custom styles may be invisible in the [Styles Combo](https://ckeditor.com/cke4/addon/stylescombo) plugin.
+* [#988](https://github.com/ckeditor/ckeditor4/issues/988): Fixed: ACF-enabled custom elements prefixed with `object`, `embed`, `param` are removed from the editor content.
 
 API Changes:
 
-* [#2249](https://github.com/ckeditor/ckeditor-dev/issues/1791): Added the [`editor.plugins.detectConflict()`](https://ckeditor.com/docs/ckeditor4/latest/CKEDITOR_editor_plugins.html#method-detectConflict) method finding conflicts between provided plugins.
+* [#2249](https://github.com/ckeditor/ckeditor4/issues/1791): Added the [`editor.plugins.detectConflict()`](https://ckeditor.com/docs/ckeditor4/latest/CKEDITOR_editor_plugins.html#method-detectConflict) method finding conflicts between provided plugins.
 
 ## CKEditor 4.10
 
 New Features:
 
-* [#1751](https://github.com/ckeditor/ckeditor-dev/issues/1751): Introduced the **Autocomplete** feature that consists of the following plugins:
+* [#1751](https://github.com/ckeditor/ckeditor4/issues/1751): Introduced the **Autocomplete** feature that consists of the following plugins:
 	* [Autocomplete](https://ckeditor.com/cke4/addon/autocomplete) &ndash; Provides contextual completion feature for custom text matches based on user input.
 	* [Text Watcher](https://ckeditor.com/cke4/addon/textWatcher) &ndash; Checks whether an editor's text change matches the chosen criteria.
 	* [Text Match](https://ckeditor.com/cke4/addon/textMatch) &ndash; Allows to search [`CKEDITOR.dom.range`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_dom_range.html) for matching text.
-* [#1703](https://github.com/ckeditor/ckeditor-dev/issues/1703): Introduced the [Mentions](https://ckeditor.com/cke4/addon/mentions) plugin providing smart completion feature for custom text matches based on user input starting with a chosen marker character.
-* [#1746](https://github.com/ckeditor/ckeditor-dev/issues/1703): Introduced the [Emoji](https://ckeditor.com/cke4/addon/emoji) plugin providing completion feature for emoji ideograms.
-* [#1761](https://github.com/ckeditor/ckeditor-dev/issues/1761): The [Auto Link](https://ckeditor.com/cke4/addon/autolink) plugin now supports email links.
+* [#1703](https://github.com/ckeditor/ckeditor4/issues/1703): Introduced the [Mentions](https://ckeditor.com/cke4/addon/mentions) plugin providing smart completion feature for custom text matches based on user input starting with a chosen marker character.
+* [#1746](https://github.com/ckeditor/ckeditor4/issues/1703): Introduced the [Emoji](https://ckeditor.com/cke4/addon/emoji) plugin providing completion feature for emoji ideograms.
+* [#1761](https://github.com/ckeditor/ckeditor4/issues/1761): The [Auto Link](https://ckeditor.com/cke4/addon/autolink) plugin now supports email links.
 
 Fixed Issues:
 
-* [#1458](https://github.com/ckeditor/ckeditor-dev/issues/1458): [Edge] Fixed: After blurring the editor it takes 2 clicks to focus a widget.
-* [#1034](https://github.com/ckeditor/ckeditor-dev/issues/1034): Fixed: JAWS leaves forms mode after pressing the <kbd>Enter</kbd> key in an inline editor instance.
-* [#1748](https://github.com/ckeditor/ckeditor-dev/pull/1748): Fixed: Missing [`CKEDITOR.dialog.definition.onHide`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_dialog_definition.html#property-onHide) API documentation. Thanks to [sunnyone](https://github.com/sunnyone)!
-* [#1321](https://github.com/ckeditor/ckeditor-dev/issues/1321): Fixed: Ideographic space character (`\u3000`) is lost when pasting text.
-* [#1776](https://github.com/ckeditor/ckeditor-dev/issues/1776): Fixed: Empty caption placeholder of the [Image Base](https://ckeditor.com/cke4/addon/imagebase) plugin is not hidden when blurred.
-* [#1592](https://github.com/ckeditor/ckeditor-dev/issues/1592): Fixed: The [Image Base](https://ckeditor.com/cke4/addon/imagebase) plugin caption is not visible after paste.
-* [#620](https://github.com/ckeditor/ckeditor-dev/issues/620): Fixed: The [`config.forcePasteAsPlainText`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_config.html#cfg-forcePasteAsPlainText) option is not respected in internal and cross-editor pasting.
-* [#1467](https://github.com/ckeditor/ckeditor-dev/issues/1467): Fixed: The resizing cursor of the [Table Resize](https://ckeditor.com/cke4/addon/tableresize) plugin appearing in the middle of a merged cell.
+* [#1458](https://github.com/ckeditor/ckeditor4/issues/1458): [Edge] Fixed: After blurring the editor it takes 2 clicks to focus a widget.
+* [#1034](https://github.com/ckeditor/ckeditor4/issues/1034): Fixed: JAWS leaves forms mode after pressing the <kbd>Enter</kbd> key in an inline editor instance.
+* [#1748](https://github.com/ckeditor/ckeditor4/pull/1748): Fixed: Missing [`CKEDITOR.dialog.definition.onHide`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_dialog_definition.html#property-onHide) API documentation. Thanks to [sunnyone](https://github.com/sunnyone)!
+* [#1321](https://github.com/ckeditor/ckeditor4/issues/1321): Fixed: Ideographic space character (`\u3000`) is lost when pasting text.
+* [#1776](https://github.com/ckeditor/ckeditor4/issues/1776): Fixed: Empty caption placeholder of the [Image Base](https://ckeditor.com/cke4/addon/imagebase) plugin is not hidden when blurred.
+* [#1592](https://github.com/ckeditor/ckeditor4/issues/1592): Fixed: The [Image Base](https://ckeditor.com/cke4/addon/imagebase) plugin caption is not visible after paste.
+* [#620](https://github.com/ckeditor/ckeditor4/issues/620): Fixed: The [`config.forcePasteAsPlainText`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_config.html#cfg-forcePasteAsPlainText) option is not respected in internal and cross-editor pasting.
+* [#1467](https://github.com/ckeditor/ckeditor4/issues/1467): Fixed: The resizing cursor of the [Table Resize](https://ckeditor.com/cke4/addon/tableresize) plugin appearing in the middle of a merged cell.
 
 API Changes:
 
-* [#850](https://github.com/ckeditor/ckeditor-dev/issues/850): Backward incompatibility: Replaced the `replace` dialog from the [Find / Replace](https://ckeditor.com/cke4/addon/find) plugin with a `tabId` option in the `find` command.
-* [#1582](https://github.com/ckeditor/ckeditor-dev/issues/1582): The [`CKEDITOR.editor.addCommand()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_editor.html#method-addCommand) method can now accept a [`CKEDITOR.command`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_command.html) instance as a parameter.
-* [#1712](https://github.com/ckeditor/ckeditor-dev/issues/1712): The [`extraPlugins`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_config.html#cfg-extraPlugins), [`removePlugins`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_config.html#cfg-removePlugins) and [`plugins`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_config.html#cfg-plugins) configuration options allow whitespace.
-* [#1802](https://github.com/ckeditor/ckeditor-dev/issues/1802): The [`extraPlugins`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_config.html#cfg-extraPlugins), [`removePlugins`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_config.html#cfg-removePlugins) and [`plugins`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_config.html#cfg-plugins) configuration options allow passing plugin names as an array.
-* [#1724](https://github.com/ckeditor/ckeditor-dev/issues/1724): Added an option to the [`getClientRect()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_dom_element.html#method-getClientRect) function allowing to retrieve an absolute bounding rectangle of the element, i.e. a position relative to the upper-left corner of the topmost viewport.
-* [#1498](https://github.com/ckeditor/ckeditor-dev/issues/1498) : Added a new [`getClientRects()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_dom_range.html#method-getClientRects) method to `CKEDITOR.dom.range`. It returns a list of rectangles for each selected element.
-* [#1993](https://github.com/ckeditor/ckeditor-dev/issues/1993): Added the [`CKEDITOR.tools.throttle()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_tools.html#method-throttle) function.
+* [#850](https://github.com/ckeditor/ckeditor4/issues/850): Backward incompatibility: Replaced the `replace` dialog from the [Find / Replace](https://ckeditor.com/cke4/addon/find) plugin with a `tabId` option in the `find` command.
+* [#1582](https://github.com/ckeditor/ckeditor4/issues/1582): The [`CKEDITOR.editor.addCommand()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_editor.html#method-addCommand) method can now accept a [`CKEDITOR.command`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_command.html) instance as a parameter.
+* [#1712](https://github.com/ckeditor/ckeditor4/issues/1712): The [`extraPlugins`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_config.html#cfg-extraPlugins), [`removePlugins`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_config.html#cfg-removePlugins) and [`plugins`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_config.html#cfg-plugins) configuration options allow whitespace.
+* [#1802](https://github.com/ckeditor/ckeditor4/issues/1802): The [`extraPlugins`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_config.html#cfg-extraPlugins), [`removePlugins`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_config.html#cfg-removePlugins) and [`plugins`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_config.html#cfg-plugins) configuration options allow passing plugin names as an array.
+* [#1724](https://github.com/ckeditor/ckeditor4/issues/1724): Added an option to the [`getClientRect()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_dom_element.html#method-getClientRect) function allowing to retrieve an absolute bounding rectangle of the element, i.e. a position relative to the upper-left corner of the topmost viewport.
+* [#1498](https://github.com/ckeditor/ckeditor4/issues/1498) : Added a new [`getClientRects()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_dom_range.html#method-getClientRects) method to `CKEDITOR.dom.range`. It returns a list of rectangles for each selected element.
+* [#1993](https://github.com/ckeditor/ckeditor4/issues/1993): Added the [`CKEDITOR.tools.throttle()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_tools.html#method-throttle) function.
 
 Other Changes:
 
@@ -342,48 +367,48 @@ We would like to thank the [Drupal security team](https://www.drupal.org/drupal-
 
 Fixed Issues:
 
-* [#1835](https://github.com/ckeditor/ckeditor-dev/issues/1835): Fixed: Integration between [CKFinder](https://ckeditor.com/ckeditor-4/ckfinder/) and the [File Browser](https://ckeditor.com/cke4/addon/filebrowser) plugin does not work.
+* [#1835](https://github.com/ckeditor/ckeditor4/issues/1835): Fixed: Integration between [CKFinder](https://ckeditor.com/ckeditor-4/ckfinder/) and the [File Browser](https://ckeditor.com/cke4/addon/filebrowser) plugin does not work.
 
 ## CKEditor 4.9
 
 New Features:
 
-* [#932](https://github.com/ckeditor/ckeditor-dev/issues/932): Introduced Easy Image feature for inserting images that are automatically rescaled, optimized, responsive and delivered through a blazing-fast CDN. Three new plugins were added to support it:
+* [#932](https://github.com/ckeditor/ckeditor4/issues/932): Introduced Easy Image feature for inserting images that are automatically rescaled, optimized, responsive and delivered through a blazing-fast CDN. Three new plugins were added to support it:
     * [Easy Image](https://ckeditor.com/cke4/addon/easyimage),
     * [Cloud Services](https://ckeditor.com/cke4/addon/cloudservices)
     * [Image Base](https://ckeditor.com/cke4/addon/imagebase)
-* [#1338](https://github.com/ckeditor/ckeditor-dev/issues/1338): Keystroke labels are displayed for function keys (like F7, F8).
-* [#643](https://github.com/ckeditor/ckeditor-dev/issues/643): The [File Browser](https://ckeditor.com/cke4/addon/filebrowser) plugin can now upload files using XHR requests. This allows for setting custom HTTP headers using the [`config.fileTools_requestHeaders`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_config.html#cfg-fileTools_requestHeaders) configuration option.
-* [#1365](https://github.com/ckeditor/ckeditor-dev/issues/1365): The [File Browser](https://ckeditor.com/cke4/addon/filebrowser) plugin uses XHR requests by default.
-* [#1399](https://github.com/ckeditor/ckeditor-dev/issues/1399): Added the possibility to set [`CKEDITOR.config.startupFocus`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_config.html#cfg-startupFocus) as `start` or `end` to specify where the editor focus should be after the initialization.
-* [#1441](https://github.com/ckeditor/ckeditor-dev/issues/1441): The [Magic Line](https://ckeditor.com/cke4/addon/magicline) plugin line element can now be identified by the `data-cke-magic-line="1"` attribute.
+* [#1338](https://github.com/ckeditor/ckeditor4/issues/1338): Keystroke labels are displayed for function keys (like F7, F8).
+* [#643](https://github.com/ckeditor/ckeditor4/issues/643): The [File Browser](https://ckeditor.com/cke4/addon/filebrowser) plugin can now upload files using XHR requests. This allows for setting custom HTTP headers using the [`config.fileTools_requestHeaders`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_config.html#cfg-fileTools_requestHeaders) configuration option.
+* [#1365](https://github.com/ckeditor/ckeditor4/issues/1365): The [File Browser](https://ckeditor.com/cke4/addon/filebrowser) plugin uses XHR requests by default.
+* [#1399](https://github.com/ckeditor/ckeditor4/issues/1399): Added the possibility to set [`CKEDITOR.config.startupFocus`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_config.html#cfg-startupFocus) as `start` or `end` to specify where the editor focus should be after the initialization.
+* [#1441](https://github.com/ckeditor/ckeditor4/issues/1441): The [Magic Line](https://ckeditor.com/cke4/addon/magicline) plugin line element can now be identified by the `data-cke-magic-line="1"` attribute.
 
 Fixed Issues:
 
-* [#595](https://github.com/ckeditor/ckeditor-dev/issues/595): Fixed: Pasting does not work on mobile devices.
-* [#869](https://github.com/ckeditor/ckeditor-dev/issues/869): Fixed: Empty selection clears cached clipboard data in the editor.
-* [#1419](https://github.com/ckeditor/ckeditor-dev/issues/1419): Fixed: The [Widget Selection](https://ckeditor.com/cke4/addon/widgetselection) plugin selects the editor content with the <kbd>Alt+A</kbd> key combination on Windows.
-* [#1274](https://github.com/ckeditor/ckeditor-dev/issues/1274): Fixed: [Balloon Toolbar](https://ckeditor.com/cke4/addon/balloontoolbar) does not match a single selected image using the [`contextDefinition.cssSelector`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_plugins_balloontoolbar_contextDefinition.html#property-cssSelector) matcher.
-* [#1232](https://github.com/ckeditor/ckeditor-dev/issues/1232): Fixed: [Balloon Toolbar](https://ckeditor.com/cke4/addon/balloontoolbar) buttons should be registered as focusable elements.
-* [#1342](https://github.com/ckeditor/ckeditor-dev/issues/1342): Fixed: [Balloon Toolbar](https://ckeditor.com/cke4/addon/balloontoolbar) should be re-positioned after the [`change`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_editor.html#event-change) event.
-* [#1426](https://github.com/ckeditor/ckeditor-dev/issues/1426): [IE8-9] Fixed: Missing [Balloon Toolbar](https://ckeditor.com/cke4/addon/balloontoolbar) background in the [Kama](https://ckeditor.com/cke4/addon/kama) skin. Thanks to [Christian Elmer](https://github.com/keinkurt)!
-* [#1470](https://github.com/ckeditor/ckeditor-dev/issues/1470): Fixed: [Balloon Toolbar](https://ckeditor.com/cke4/addon/balloontoolbar) is not visible after drag and drop of a widget it is attached to.
-* [#1048](https://github.com/ckeditor/ckeditor-dev/issues/1048): Fixed: [Balloon Panel](https://ckeditor.com/cke4/addon/balloonpanel) is not positioned properly when a margin is added to its non-static parent.
-* [#889](https://github.com/ckeditor/ckeditor-dev/issues/889): Fixed: Unclear error message for width and height fields in the [Image](https://ckeditor.com/cke4/addon/image) and [Enhanced Image](https://ckeditor.com/cke4/addon/image2) plugins.
-* [#859](https://github.com/ckeditor/ckeditor-dev/issues/859): Fixed: Cannot edit a link after a double-click on the text in the link.
-* [#1013](https://github.com/ckeditor/ckeditor-dev/issues/1013): Fixed: [Paste from Word](https://ckeditor.com/cke4/addon/pastefromword) does not work correctly with the [`config.forcePasteAsPlainText`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_config.html#cfg-forcePasteAsPlainText) option.
-* [#1356](https://github.com/ckeditor/ckeditor-dev/issues/1356): Fixed: [Border parse function](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_tools_style_parse.html#method-border) does not allow spaces in the color value.
-* [#1010](https://github.com/ckeditor/ckeditor-dev/issues/1010): Fixed: The CSS `border` shorthand property was incorrectly expanded ignoring the `border-color` style.
-* [#1535](https://github.com/ckeditor/ckeditor-dev/issues/1535): Fixed: [Widget](https://ckeditor.com/cke4/addon/widget) mouseover border contrast is insufficient.
-* [#1516](https://github.com/ckeditor/ckeditor-dev/issues/1516): Fixed: Fake selection allows removing content in read-only mode using the <kbd>Backspace</kbd> and <kbd>Delete</kbd> keys.
-* [#1570](https://github.com/ckeditor/ckeditor-dev/issues/1570): Fixed: Fake selection allows cutting content in read-only mode using the <kbd>Ctrl</kbd>/<kbd>Cmd</kbd> + <kbd>X</kbd> keys.
-* [#1363](https://github.com/ckeditor/ckeditor-dev/issues/1363): Fixed: Paste notification is unclear and it might confuse users.
+* [#595](https://github.com/ckeditor/ckeditor4/issues/595): Fixed: Pasting does not work on mobile devices.
+* [#869](https://github.com/ckeditor/ckeditor4/issues/869): Fixed: Empty selection clears cached clipboard data in the editor.
+* [#1419](https://github.com/ckeditor/ckeditor4/issues/1419): Fixed: The [Widget Selection](https://ckeditor.com/cke4/addon/widgetselection) plugin selects the editor content with the <kbd>Alt+A</kbd> key combination on Windows.
+* [#1274](https://github.com/ckeditor/ckeditor4/issues/1274): Fixed: [Balloon Toolbar](https://ckeditor.com/cke4/addon/balloontoolbar) does not match a single selected image using the [`contextDefinition.cssSelector`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_plugins_balloontoolbar_contextDefinition.html#property-cssSelector) matcher.
+* [#1232](https://github.com/ckeditor/ckeditor4/issues/1232): Fixed: [Balloon Toolbar](https://ckeditor.com/cke4/addon/balloontoolbar) buttons should be registered as focusable elements.
+* [#1342](https://github.com/ckeditor/ckeditor4/issues/1342): Fixed: [Balloon Toolbar](https://ckeditor.com/cke4/addon/balloontoolbar) should be re-positioned after the [`change`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_editor.html#event-change) event.
+* [#1426](https://github.com/ckeditor/ckeditor4/issues/1426): [IE8-9] Fixed: Missing [Balloon Toolbar](https://ckeditor.com/cke4/addon/balloontoolbar) background in the [Kama](https://ckeditor.com/cke4/addon/kama) skin. Thanks to [Christian Elmer](https://github.com/keinkurt)!
+* [#1470](https://github.com/ckeditor/ckeditor4/issues/1470): Fixed: [Balloon Toolbar](https://ckeditor.com/cke4/addon/balloontoolbar) is not visible after drag and drop of a widget it is attached to.
+* [#1048](https://github.com/ckeditor/ckeditor4/issues/1048): Fixed: [Balloon Panel](https://ckeditor.com/cke4/addon/balloonpanel) is not positioned properly when a margin is added to its non-static parent.
+* [#889](https://github.com/ckeditor/ckeditor4/issues/889): Fixed: Unclear error message for width and height fields in the [Image](https://ckeditor.com/cke4/addon/image) and [Enhanced Image](https://ckeditor.com/cke4/addon/image2) plugins.
+* [#859](https://github.com/ckeditor/ckeditor4/issues/859): Fixed: Cannot edit a link after a double-click on the text in the link.
+* [#1013](https://github.com/ckeditor/ckeditor4/issues/1013): Fixed: [Paste from Word](https://ckeditor.com/cke4/addon/pastefromword) does not work correctly with the [`config.forcePasteAsPlainText`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_config.html#cfg-forcePasteAsPlainText) option.
+* [#1356](https://github.com/ckeditor/ckeditor4/issues/1356): Fixed: [Border parse function](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_tools_style_parse.html#method-border) does not allow spaces in the color value.
+* [#1010](https://github.com/ckeditor/ckeditor4/issues/1010): Fixed: The CSS `border` shorthand property was incorrectly expanded ignoring the `border-color` style.
+* [#1535](https://github.com/ckeditor/ckeditor4/issues/1535): Fixed: [Widget](https://ckeditor.com/cke4/addon/widget) mouseover border contrast is insufficient.
+* [#1516](https://github.com/ckeditor/ckeditor4/issues/1516): Fixed: Fake selection allows removing content in read-only mode using the <kbd>Backspace</kbd> and <kbd>Delete</kbd> keys.
+* [#1570](https://github.com/ckeditor/ckeditor4/issues/1570): Fixed: Fake selection allows cutting content in read-only mode using the <kbd>Ctrl</kbd>/<kbd>Cmd</kbd> + <kbd>X</kbd> keys.
+* [#1363](https://github.com/ckeditor/ckeditor4/issues/1363): Fixed: Paste notification is unclear and it might confuse users.
 
 
 API Changes:
 
-* [#1346](https://github.com/ckeditor/ckeditor-dev/issues/1346): [Balloon Toolbar](https://ckeditor.com/cke4/addon/balloontoolbar) [context manager API](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR.plugins.balloontoolbar.contextManager.html) is now available in the [`pluginDefinition.init()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_pluginDefinition.html#method-init) method of the [requiring](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_pluginDefinition.html#property-requires) plugin.
-* [#1530](https://github.com/ckeditor/ckeditor-dev/issues/1530): Added the possibility to use custom icons for [buttons](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_ui_button.html.html).
+* [#1346](https://github.com/ckeditor/ckeditor4/issues/1346): [Balloon Toolbar](https://ckeditor.com/cke4/addon/balloontoolbar) [context manager API](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR.plugins.balloontoolbar.contextManager.html) is now available in the [`pluginDefinition.init()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_pluginDefinition.html#method-init) method of the [requiring](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_pluginDefinition.html#property-requires) plugin.
+* [#1530](https://github.com/ckeditor/ckeditor4/issues/1530): Added the possibility to use custom icons for [buttons](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_ui_button.html.html).
 
 Other Changes:
 
@@ -397,139 +422,139 @@ Other Changes:
 	* Fixed: User Dictionary cannot be created in WSC due to `You already have the dictionary` error.
 	* Fixed: Words with apostrophe `'` on the replacement make the WSC dialog inaccessible.
 	* Fixed: SCAYT/WSC causes the `Uncaught TypeError` error in the browser console.
-* [#1337](https://github.com/ckeditor/ckeditor-dev/issues/1337): Updated the samples layout with the new CKEditor 4 logo and color scheme.
-* [#1591](https://github.com/ckeditor/ckeditor-dev/issues/1591): CKBuilder and language tools are now downloaded over HTTPS. Thanks to [August Detlefsen](https://github.com/augustd)!
+* [#1337](https://github.com/ckeditor/ckeditor4/issues/1337): Updated the samples layout with the new CKEditor 4 logo and color scheme.
+* [#1591](https://github.com/ckeditor/ckeditor4/issues/1591): CKBuilder and language tools are now downloaded over HTTPS. Thanks to [August Detlefsen](https://github.com/augustd)!
 
 ## CKEditor 4.8
 
 **Important Notes:**
 
-* [#1249](https://github.com/ckeditor/ckeditor-dev/issues/1249): Enabled the [Upload Image](https://ckeditor.com/cke4/addon/uploadimage) plugin by default in standard and full presets. Also, it will no longer log an error in case of missing [`config.imageUploadUrl`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_config.html#cfg-imageUploadUrl) property.
+* [#1249](https://github.com/ckeditor/ckeditor4/issues/1249): Enabled the [Upload Image](https://ckeditor.com/cke4/addon/uploadimage) plugin by default in standard and full presets. Also, it will no longer log an error in case of missing [`config.imageUploadUrl`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_config.html#cfg-imageUploadUrl) property.
 
 New Features:
 
-* [#933](https://github.com/ckeditor/ckeditor-dev/issues/933): Introduced [Balloon Toolbar](https://ckeditor.com/cke4/addon/balloontoolbar) plugin.
-* [#662](https://github.com/ckeditor/ckeditor-dev/issues/662): Introduced image inlining for the [Paste from Word](https://ckeditor.com/cke4/addon/pastefromword) plugin.
-* [#468](https://github.com/ckeditor/ckeditor-dev/issues/468): [Edge] Introduced support for the Clipboard API.
-* [#607](https://github.com/ckeditor/ckeditor-dev/issues/607): Manually inserted Hex color is prefixed with a hash character (`#`) if needed. It ensures a valid Hex color value is used when setting the table cell border or background color with the [Color Dialog](https://ckeditor.com/cke4/addon/colordialog) window.
-* [#584](https://github.com/ckeditor/ckeditor-dev/issues/584): [Font size and Family](https://ckeditor.com/cke4/addon/font) and [Format](https://ckeditor.com/cke4/addon/format) drop-downs are not toggleable anymore. Default option to reset styles added.
-* [#856](https://github.com/ckeditor/ckeditor-dev/issues/856): Introduced the [`CKEDITOR.tools.keystrokeToArray()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_tools.html#method-keystrokeToArray) method. It converts a keystroke into its string representation, returning every key name as a separate array element.
-* [#1053](https://github.com/ckeditor/ckeditor-dev/issues/1053): Introduced the [`CKEDITOR.tools.object.merge()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_tools_object.html#method-merge) method. It allows to merge two objects, returning the new object with all properties from both objects deeply cloned.
-* [#1073](https://github.com/ckeditor/ckeditor-dev/issues/1073): Introduced the [`CKEDITOR.tools.array.every()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_tools_array.html#method-every) method. It invokes a given test function on every array element and returns `true` if all elements pass the test.
+* [#933](https://github.com/ckeditor/ckeditor4/issues/933): Introduced [Balloon Toolbar](https://ckeditor.com/cke4/addon/balloontoolbar) plugin.
+* [#662](https://github.com/ckeditor/ckeditor4/issues/662): Introduced image inlining for the [Paste from Word](https://ckeditor.com/cke4/addon/pastefromword) plugin.
+* [#468](https://github.com/ckeditor/ckeditor4/issues/468): [Edge] Introduced support for the Clipboard API.
+* [#607](https://github.com/ckeditor/ckeditor4/issues/607): Manually inserted Hex color is prefixed with a hash character (`#`) if needed. It ensures a valid Hex color value is used when setting the table cell border or background color with the [Color Dialog](https://ckeditor.com/cke4/addon/colordialog) window.
+* [#584](https://github.com/ckeditor/ckeditor4/issues/584): [Font size and Family](https://ckeditor.com/cke4/addon/font) and [Format](https://ckeditor.com/cke4/addon/format) drop-downs are not toggleable anymore. Default option to reset styles added.
+* [#856](https://github.com/ckeditor/ckeditor4/issues/856): Introduced the [`CKEDITOR.tools.keystrokeToArray()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_tools.html#method-keystrokeToArray) method. It converts a keystroke into its string representation, returning every key name as a separate array element.
+* [#1053](https://github.com/ckeditor/ckeditor4/issues/1053): Introduced the [`CKEDITOR.tools.object.merge()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_tools_object.html#method-merge) method. It allows to merge two objects, returning the new object with all properties from both objects deeply cloned.
+* [#1073](https://github.com/ckeditor/ckeditor4/issues/1073): Introduced the [`CKEDITOR.tools.array.every()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_tools_array.html#method-every) method. It invokes a given test function on every array element and returns `true` if all elements pass the test.
 
 Fixed Issues:
 
-* [#796](https://github.com/ckeditor/ckeditor-dev/issues/796): Fixed: A list is pasted from OneNote in the reversed order.
-* [#834](https://github.com/ckeditor/ckeditor-dev/issues/834): [IE9-11] Fixed: The editor does not save the selected state of radio buttons inserted by the [Form Elements](https://ckeditor.com/cke4/addon/forms) plugin.
-* [#704](https://github.com/ckeditor/ckeditor-dev/issues/704): [Edge] Fixed: Using <kbd>Ctrl</kbd>/<kbd>Cmd</kbd> + <kbd>Z</kbd> breaks widget structure.
-* [#591](https://github.com/ckeditor/ckeditor-dev/issues/591): Fixed: A column is inserted in a wrong order inside the table if any cell has a vertical split.
-* [#787](https://github.com/ckeditor/ckeditor-dev/issues/787): Fixed: Using Cut inside a nested table does not cut the selected content.
-* [#842](https://github.com/ckeditor/ckeditor-dev/issues/842): Fixed: List style not restored when toggling list indent level in the [Indent List](https://ckeditor.com/cke4/addon/indentlist) plugin.
-* [#711](https://github.com/ckeditor/ckeditor-dev/issues/711): Fixed: Dragging widgets should only work with the left mouse button.
-* [#862](https://github.com/ckeditor/ckeditor-dev/issues/862): Fixed: The "Object Styles" group in the [Styles Combo](https://ckeditor.com/cke4/addon/stylescombo) plugin is visible only if the whole element is selected.
-* [#994](https://github.com/ckeditor/ckeditor-dev/pull/994): Fixed: Typo in the [`CKEDITOR.focusManager.focus()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_focusManager.html#method-focus) API documentation. Thanks to [benjy](https://github.com/benjy)!
-* [#1014](https://github.com/ckeditor/ckeditor-dev/issues/1014): Fixed: The [Table Tools](https://ckeditor.com/cke4/addon/tabletools) Cell Properties dialog is now [Advanced Content Filter](https://ckeditor.com/docs/ckeditor4/latest/guide/dev_acf.html) aware &mdash; it is not possible to change the cell width or height if corresponding styles are disabled.
-* [#877](https://github.com/ckeditor/ckeditor-dev/issues/877): Fixed: A list with custom bullets with exotic characters crashes the editor when [pasted from Word](https://ckeditor.com/cke4/addon/pastefromword).
-* [#605](https://github.com/ckeditor/ckeditor-dev/issues/605): Fixed: Inline widgets do not preserve trailing spaces.
-* [#1008](https://github.com/ckeditor/ckeditor-dev/issues/1008): Fixed: Shorthand Hex colors from the [`config.colorButton_colors`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_config.html#cfg-colorButton_colors) option are not correctly highlighted in the [Color Button](https://ckeditor.com/cke4/addon/colorbutton) Text Color or Background Color panel.
-* [#1094](https://github.com/ckeditor/ckeditor-dev/issues/1094): Fixed: Widget definition [`upcast`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_plugins_widget_definition.html#property-upcasts) methods are called for every element.
-* [#1057](https://github.com/ckeditor/ckeditor-dev/issues/1057): Fixed: The [Notification](https://ckeditor.com/addon/notification) plugin overwrites Web Notifications API due to leakage to the global scope.
-* [#1068](https://github.com/ckeditor/ckeditor-dev/issues/1068): Fixed: Upload widget paste listener ignores changes to the [`uploadWidgetDefinition`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR.fileTools.uploadWidgetDefinition.html).
-* [#921](https://github.com/ckeditor/ckeditor-dev/issues/921): Fixed: [Edge] CKEditor erroneously perceives internal copy and paste as type "external".
-* [#1213](https://github.com/ckeditor/ckeditor-dev/issues/1213): Fixed: Multiple images uploaded using [Upload Image](https://ckeditor.com/cke4/addon/uploadimage) plugin are randomly duplicated or mangled.
-* [#532](https://github.com/ckeditor/ckeditor-dev/issues/532): Fixed: Removed an outdated user guide link from the [About](https://ckeditor.com/cke4/addon/about) dialog.
-* [#1221](https://github.com/ckeditor/ckeditor-dev/issues/1221): Fixed: Invalid CSS loaded by [Balloon Panel](https://ckeditor.com/cke4/addon/balloonpanel) plugin when [`config.skin`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_config.html#cfg-skin) is loaded using a custom path.
-* [#522](https://github.com/ckeditor/ckeditor-dev/issues/522): Fixed: Widget selection is not removed when widget is inside table cell with [Table Selection](https://ckeditor.com/cke4/addon/tableselection) plugin enabled.
-* [#1027](https://github.com/ckeditor/ckeditor-dev/issues/1027): Fixed: Cannot add multiple images to the table with [Table Selection](https://ckeditor.com/cke4/addon/tableselection) plugin in certain situations.
-* [#1069](https://github.com/ckeditor/ckeditor-dev/issues/1069): Fixed: Wrong shape processing by [Paste from Word](https://ckeditor.com/cke4/addon/pastefromword) plugin.
-* [#995](https://github.com/ckeditor/ckeditor-dev/issues/995): Fixed: Hyperlinked image gets inserted twice by [Paste from Word](https://ckeditor.com/cke4/addon/pastefromword) plugin.
-* [#1287](https://github.com/ckeditor/ckeditor-dev/issues/1287): Fixed: [Widget](https://ckeditor.com/cke4/addon/widget) plugin throws exception if included in editor build but not loaded into editor's instance.
+* [#796](https://github.com/ckeditor/ckeditor4/issues/796): Fixed: A list is pasted from OneNote in the reversed order.
+* [#834](https://github.com/ckeditor/ckeditor4/issues/834): [IE9-11] Fixed: The editor does not save the selected state of radio buttons inserted by the [Form Elements](https://ckeditor.com/cke4/addon/forms) plugin.
+* [#704](https://github.com/ckeditor/ckeditor4/issues/704): [Edge] Fixed: Using <kbd>Ctrl</kbd>/<kbd>Cmd</kbd> + <kbd>Z</kbd> breaks widget structure.
+* [#591](https://github.com/ckeditor/ckeditor4/issues/591): Fixed: A column is inserted in a wrong order inside the table if any cell has a vertical split.
+* [#787](https://github.com/ckeditor/ckeditor4/issues/787): Fixed: Using Cut inside a nested table does not cut the selected content.
+* [#842](https://github.com/ckeditor/ckeditor4/issues/842): Fixed: List style not restored when toggling list indent level in the [Indent List](https://ckeditor.com/cke4/addon/indentlist) plugin.
+* [#711](https://github.com/ckeditor/ckeditor4/issues/711): Fixed: Dragging widgets should only work with the left mouse button.
+* [#862](https://github.com/ckeditor/ckeditor4/issues/862): Fixed: The "Object Styles" group in the [Styles Combo](https://ckeditor.com/cke4/addon/stylescombo) plugin is visible only if the whole element is selected.
+* [#994](https://github.com/ckeditor/ckeditor4/pull/994): Fixed: Typo in the [`CKEDITOR.focusManager.focus()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_focusManager.html#method-focus) API documentation. Thanks to [benjy](https://github.com/benjy)!
+* [#1014](https://github.com/ckeditor/ckeditor4/issues/1014): Fixed: The [Table Tools](https://ckeditor.com/cke4/addon/tabletools) Cell Properties dialog is now [Advanced Content Filter](https://ckeditor.com/docs/ckeditor4/latest/guide/dev_acf.html) aware &mdash; it is not possible to change the cell width or height if corresponding styles are disabled.
+* [#877](https://github.com/ckeditor/ckeditor4/issues/877): Fixed: A list with custom bullets with exotic characters crashes the editor when [pasted from Word](https://ckeditor.com/cke4/addon/pastefromword).
+* [#605](https://github.com/ckeditor/ckeditor4/issues/605): Fixed: Inline widgets do not preserve trailing spaces.
+* [#1008](https://github.com/ckeditor/ckeditor4/issues/1008): Fixed: Shorthand Hex colors from the [`config.colorButton_colors`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_config.html#cfg-colorButton_colors) option are not correctly highlighted in the [Color Button](https://ckeditor.com/cke4/addon/colorbutton) Text Color or Background Color panel.
+* [#1094](https://github.com/ckeditor/ckeditor4/issues/1094): Fixed: Widget definition [`upcast`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_plugins_widget_definition.html#property-upcasts) methods are called for every element.
+* [#1057](https://github.com/ckeditor/ckeditor4/issues/1057): Fixed: The [Notification](https://ckeditor.com/addon/notification) plugin overwrites Web Notifications API due to leakage to the global scope.
+* [#1068](https://github.com/ckeditor/ckeditor4/issues/1068): Fixed: Upload widget paste listener ignores changes to the [`uploadWidgetDefinition`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR.fileTools.uploadWidgetDefinition.html).
+* [#921](https://github.com/ckeditor/ckeditor4/issues/921): Fixed: [Edge] CKEditor erroneously perceives internal copy and paste as type "external".
+* [#1213](https://github.com/ckeditor/ckeditor4/issues/1213): Fixed: Multiple images uploaded using [Upload Image](https://ckeditor.com/cke4/addon/uploadimage) plugin are randomly duplicated or mangled.
+* [#532](https://github.com/ckeditor/ckeditor4/issues/532): Fixed: Removed an outdated user guide link from the [About](https://ckeditor.com/cke4/addon/about) dialog.
+* [#1221](https://github.com/ckeditor/ckeditor4/issues/1221): Fixed: Invalid CSS loaded by [Balloon Panel](https://ckeditor.com/cke4/addon/balloonpanel) plugin when [`config.skin`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_config.html#cfg-skin) is loaded using a custom path.
+* [#522](https://github.com/ckeditor/ckeditor4/issues/522): Fixed: Widget selection is not removed when widget is inside table cell with [Table Selection](https://ckeditor.com/cke4/addon/tableselection) plugin enabled.
+* [#1027](https://github.com/ckeditor/ckeditor4/issues/1027): Fixed: Cannot add multiple images to the table with [Table Selection](https://ckeditor.com/cke4/addon/tableselection) plugin in certain situations.
+* [#1069](https://github.com/ckeditor/ckeditor4/issues/1069): Fixed: Wrong shape processing by [Paste from Word](https://ckeditor.com/cke4/addon/pastefromword) plugin.
+* [#995](https://github.com/ckeditor/ckeditor4/issues/995): Fixed: Hyperlinked image gets inserted twice by [Paste from Word](https://ckeditor.com/cke4/addon/pastefromword) plugin.
+* [#1287](https://github.com/ckeditor/ckeditor4/issues/1287): Fixed: [Widget](https://ckeditor.com/cke4/addon/widget) plugin throws exception if included in editor build but not loaded into editor's instance.
 
 API Changes:
 
-* [#1097](https://github.com/ckeditor/ckeditor-dev/issues/1097): Widget [`upcast`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_plugins_widget_definition.html#property-upcast) methods are now called in the [widget definition's](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_plugins_widget.html#property-definition) context.
-* [#1118](https://github.com/ckeditor/ckeditor-dev/issues/1118): Added the `show` option in the [`balloonPanel.attach()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_ui_balloonPanel.html#method-attach) method, allowing to attach a hidden [Balloon Panel](https://ckeditor.com/cke4/addon/balloonpanel) instance.
-* [#1145](https://github.com/ckeditor/ckeditor-dev/issues/1145): Added the [`skipNotifications`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_fileTools_uploadWidgetDefinition.html#property-skipNotifications) option to the [`CKEDITOR.fileTools.uploadWidgetDefinition`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR.fileTools.uploadWidgetDefinition.html), allowing to switch off default notifications displayed by upload widgets.
+* [#1097](https://github.com/ckeditor/ckeditor4/issues/1097): Widget [`upcast`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_plugins_widget_definition.html#property-upcast) methods are now called in the [widget definition's](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_plugins_widget.html#property-definition) context.
+* [#1118](https://github.com/ckeditor/ckeditor4/issues/1118): Added the `show` option in the [`balloonPanel.attach()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_ui_balloonPanel.html#method-attach) method, allowing to attach a hidden [Balloon Panel](https://ckeditor.com/cke4/addon/balloonpanel) instance.
+* [#1145](https://github.com/ckeditor/ckeditor4/issues/1145): Added the [`skipNotifications`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_fileTools_uploadWidgetDefinition.html#property-skipNotifications) option to the [`CKEDITOR.fileTools.uploadWidgetDefinition`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR.fileTools.uploadWidgetDefinition.html), allowing to switch off default notifications displayed by upload widgets.
 
 Other Changes:
 
-* [#815](https://github.com/ckeditor/ckeditor-dev/issues/815): Removed Node.js dependency from the CKEditor build script.
-* [#1041](https://github.com/ckeditor/ckeditor-dev/pull/1041), [#1131](https://github.com/ckeditor/ckeditor-dev/issues/1131): Updated URLs pointing to [CKSource](https://cksource.com/) and [CKEditor](https://ckeditor.com/) resources after the launch of new websites.
+* [#815](https://github.com/ckeditor/ckeditor4/issues/815): Removed Node.js dependency from the CKEditor build script.
+* [#1041](https://github.com/ckeditor/ckeditor4/pull/1041), [#1131](https://github.com/ckeditor/ckeditor4/issues/1131): Updated URLs pointing to [CKSource](https://cksource.com/) and [CKEditor](https://ckeditor.com/) resources after the launch of new websites.
 
 ## CKEditor 4.7.3
 
 New Features:
 
-* [#568](https://github.com/ckeditor/ckeditor-dev/issues/568): Added possibility to adjust nested editables' filters using the [`CKEDITOR.filter.disallowedContent`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_filter.html#property-disallowedContent) property.
+* [#568](https://github.com/ckeditor/ckeditor4/issues/568): Added possibility to adjust nested editables' filters using the [`CKEDITOR.filter.disallowedContent`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_filter.html#property-disallowedContent) property.
 
 Fixed Issues:
 
-* [#554](https://github.com/ckeditor/ckeditor-dev/issues/554): Fixed: [`change`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_editor.html#event-change) event not fired when typing the first character after pasting into the editor. Thanks to [Daniel Miller](https://github.com/millerdev)!
-* [#566](https://github.com/ckeditor/ckeditor-dev/issues/566): Fixed: The CSS `border` shorthand property with zero width (`border: 0px solid #000;`) causes the table to have the border attribute set to 1.
-* [#779](https://github.com/ckeditor/ckeditor-dev/issues/779): Fixed: The [Remove Format](https://ckeditor.com/cke4/addon/removeformat) plugin removes elements with language definition inserted by the [Language](https://ckeditor.com/cke4/addon/language) plugin.
-* [#423](https://github.com/ckeditor/ckeditor-dev/issues/423): Fixed: The [Paste from Word](https://ckeditor.com/cke4/addon/pastefromword) plugin pastes paragraphs into the editor even if [`CKEDITOR.config.enterMode`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_config.html#cfg-enterMode) is set to `CKEDITOR.ENTER_BR`.
-* [#719](https://github.com/ckeditor/ckeditor-dev/issues/719): Fixed: Image inserted using the [Enhanced Image](https://ckeditor.com/cke4/addon/image2) plugin can be resized when the editor is in [read-only mode](https://ckeditor.com/docs/ckeditor4/latest/guide/dev_readonly.html).
-* [#577](https://github.com/ckeditor/ckeditor-dev/issues/577): Fixed: The "Delete Columns" command provided by the [Table Tools](https://ckeditor.com/cke4/addon/tabletools) plugin throws an error when trying to delete columns.
-* [#867](https://github.com/ckeditor/ckeditor-dev/issues/867): Fixed: Typing into a selected table throws an error.
-* [#817](https://github.com/ckeditor/ckeditor-dev/issues/817): Fixed: The [Save](https://ckeditor.com/cke4/addon/save) plugin does not work in [Source Mode](https://ckeditor.com/cke4/addon/sourcearea).
+* [#554](https://github.com/ckeditor/ckeditor4/issues/554): Fixed: [`change`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_editor.html#event-change) event not fired when typing the first character after pasting into the editor. Thanks to [Daniel Miller](https://github.com/millerdev)!
+* [#566](https://github.com/ckeditor/ckeditor4/issues/566): Fixed: The CSS `border` shorthand property with zero width (`border: 0px solid #000;`) causes the table to have the border attribute set to 1.
+* [#779](https://github.com/ckeditor/ckeditor4/issues/779): Fixed: The [Remove Format](https://ckeditor.com/cke4/addon/removeformat) plugin removes elements with language definition inserted by the [Language](https://ckeditor.com/cke4/addon/language) plugin.
+* [#423](https://github.com/ckeditor/ckeditor4/issues/423): Fixed: The [Paste from Word](https://ckeditor.com/cke4/addon/pastefromword) plugin pastes paragraphs into the editor even if [`CKEDITOR.config.enterMode`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_config.html#cfg-enterMode) is set to `CKEDITOR.ENTER_BR`.
+* [#719](https://github.com/ckeditor/ckeditor4/issues/719): Fixed: Image inserted using the [Enhanced Image](https://ckeditor.com/cke4/addon/image2) plugin can be resized when the editor is in [read-only mode](https://ckeditor.com/docs/ckeditor4/latest/guide/dev_readonly.html).
+* [#577](https://github.com/ckeditor/ckeditor4/issues/577): Fixed: The "Delete Columns" command provided by the [Table Tools](https://ckeditor.com/cke4/addon/tabletools) plugin throws an error when trying to delete columns.
+* [#867](https://github.com/ckeditor/ckeditor4/issues/867): Fixed: Typing into a selected table throws an error.
+* [#817](https://github.com/ckeditor/ckeditor4/issues/817): Fixed: The [Save](https://ckeditor.com/cke4/addon/save) plugin does not work in [Source Mode](https://ckeditor.com/cke4/addon/sourcearea).
 
 Other Changes:
 
 * Updated the [WebSpellChecker](https://ckeditor.com/cke4/addon/wsc) plugin:
 	* [#40](https://github.com/WebSpellChecker/ckeditor-plugin-wsc/issues/40): Fixed: IE10 throws an error when spell checking is started.
-* [#800](https://github.com/ckeditor/ckeditor-dev/issues/800): Added the [`CKEDITOR.dom.selection.isCollapsed()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_dom_selection.html#method-isCollapsed) method which is a simpler way to check if the selection is collapsed.
-* [#830](https://github.com/ckeditor/ckeditor-dev/issues/830): Added an option to define which dialog tab should be shown by default when creating [`CKEDITOR.dialogCommand`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR.dialogCommand.html).
+* [#800](https://github.com/ckeditor/ckeditor4/issues/800): Added the [`CKEDITOR.dom.selection.isCollapsed()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_dom_selection.html#method-isCollapsed) method which is a simpler way to check if the selection is collapsed.
+* [#830](https://github.com/ckeditor/ckeditor4/issues/830): Added an option to define which dialog tab should be shown by default when creating [`CKEDITOR.dialogCommand`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR.dialogCommand.html).
 
 ## CKEditor 4.7.2
 
 New Features:
 
-* [#455](https://github.com/ckeditor/ckeditor-dev/issues/455): Added [Advanced Content Filter](https://ckeditor.com/docs/ckeditor4/latest/guide/dev_acf.html) integration with the [Justify](https://ckeditor.com/cke4/addon/justify) plugin.
+* [#455](https://github.com/ckeditor/ckeditor4/issues/455): Added [Advanced Content Filter](https://ckeditor.com/docs/ckeditor4/latest/guide/dev_acf.html) integration with the [Justify](https://ckeditor.com/cke4/addon/justify) plugin.
 
 Fixed Issues:
 
-* [#663](https://github.com/ckeditor/ckeditor-dev/issues/663): [Chrome] Fixed: Clicking the scrollbar throws an `Uncaught TypeError: element.is is not a function` error.
-* [#694](https://github.com/ckeditor/ckeditor-dev/pull/694): Refactoring in the [Table Selection](https://ckeditor.com/cke4/addon/tableselection) plugin:
-  * [#520](https://github.com/ckeditor/ckeditor-dev/issues/520): Fixed: Widgets cannot be properly pasted into a table cell.
-  * [#460](https://github.com/ckeditor/ckeditor-dev/issues/460): Fixed: Editor gone after pasting into an editor within a table.
-* [#579](https://github.com/ckeditor/ckeditor-dev/issues/579): Fixed: Internal `cke_table-faked-selection-table` class is visible in the Stylesheet Classes field of the [Table Properties](https://ckeditor.com/cke4/addon/table) dialog.
-* [#545](https://github.com/ckeditor/ckeditor-dev/issues/545): [Edge] Fixed: Error thrown when pressing the [Select All](https://ckeditor.com/cke4/addon/selectall) button in [Source Mode](https://ckeditor.com/cke4/addon/sourcearea).
-* [#582](https://github.com/ckeditor/ckeditor-dev/issues/582): Fixed: Double slash in the path to stylesheet needed by the [Table Selection](https://ckeditor.com/cke4/addon/tableselection) plugin. Thanks to [Marius Dumitru Florea](https://github.com/mflorea)!
-* [#491](https://github.com/ckeditor/ckeditor-dev/issues/491): Fixed: Unnecessary dependency on the [Editor Toolbar](https://ckeditor.com/cke4/addon/toolbar) plugin inside the [Notification](https://ckeditor.com/cke4/addon/notification) plugin.
-* [#646](https://github.com/ckeditor/ckeditor-dev/issues/646): Fixed: Error thrown into the browser console after opening the [Styles Combo](https://ckeditor.com/cke4/addon/stylescombo) plugin menu in the editor without any selection.
-* [#501](https://github.com/ckeditor/ckeditor-dev/issues/501): Fixed: Double click does not open the dialog for modifying anchors inserted via the [Link](https://ckeditor.com/cke4/addon/link) plugin.
+* [#663](https://github.com/ckeditor/ckeditor4/issues/663): [Chrome] Fixed: Clicking the scrollbar throws an `Uncaught TypeError: element.is is not a function` error.
+* [#694](https://github.com/ckeditor/ckeditor4/pull/694): Refactoring in the [Table Selection](https://ckeditor.com/cke4/addon/tableselection) plugin:
+  * [#520](https://github.com/ckeditor/ckeditor4/issues/520): Fixed: Widgets cannot be properly pasted into a table cell.
+  * [#460](https://github.com/ckeditor/ckeditor4/issues/460): Fixed: Editor gone after pasting into an editor within a table.
+* [#579](https://github.com/ckeditor/ckeditor4/issues/579): Fixed: Internal `cke_table-faked-selection-table` class is visible in the Stylesheet Classes field of the [Table Properties](https://ckeditor.com/cke4/addon/table) dialog.
+* [#545](https://github.com/ckeditor/ckeditor4/issues/545): [Edge] Fixed: Error thrown when pressing the [Select All](https://ckeditor.com/cke4/addon/selectall) button in [Source Mode](https://ckeditor.com/cke4/addon/sourcearea).
+* [#582](https://github.com/ckeditor/ckeditor4/issues/582): Fixed: Double slash in the path to stylesheet needed by the [Table Selection](https://ckeditor.com/cke4/addon/tableselection) plugin. Thanks to [Marius Dumitru Florea](https://github.com/mflorea)!
+* [#491](https://github.com/ckeditor/ckeditor4/issues/491): Fixed: Unnecessary dependency on the [Editor Toolbar](https://ckeditor.com/cke4/addon/toolbar) plugin inside the [Notification](https://ckeditor.com/cke4/addon/notification) plugin.
+* [#646](https://github.com/ckeditor/ckeditor4/issues/646): Fixed: Error thrown into the browser console after opening the [Styles Combo](https://ckeditor.com/cke4/addon/stylescombo) plugin menu in the editor without any selection.
+* [#501](https://github.com/ckeditor/ckeditor4/issues/501): Fixed: Double click does not open the dialog for modifying anchors inserted via the [Link](https://ckeditor.com/cke4/addon/link) plugin.
 * [#9780](https://dev.ckeditor.com/ticket/9780): [IE8-9] Fixed: Clicking inside an empty [read-only](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_editor.html#property-readOnly) editor throws an error.
 * [#16820](https://dev.ckeditor.com/ticket/16820): [IE10] Fixed: Clicking below a single horizontal rule throws an error.
-* [#426](https://github.com/ckeditor/ckeditor-dev/issues/426): Fixed: The [`range.cloneContents()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_dom_range.html#method-cloneContents) method selects the whole element when the selection starts at the beginning of that element.
-* [#644](https://github.com/ckeditor/ckeditor-dev/issues/644): Fixed: The [`range.extractContents()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_dom_range.html#method-extractContents) method returns an incorrect result when multiple nodes are selected.
-* [#684](https://github.com/ckeditor/ckeditor-dev/issues/684): Fixed: The [`elementPath.contains()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_dom_elementPath.html#method-contains) method incorrectly excludes the last element instead of root when the `fromTop` parameter is set to `true`.
+* [#426](https://github.com/ckeditor/ckeditor4/issues/426): Fixed: The [`range.cloneContents()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_dom_range.html#method-cloneContents) method selects the whole element when the selection starts at the beginning of that element.
+* [#644](https://github.com/ckeditor/ckeditor4/issues/644): Fixed: The [`range.extractContents()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_dom_range.html#method-extractContents) method returns an incorrect result when multiple nodes are selected.
+* [#684](https://github.com/ckeditor/ckeditor4/issues/684): Fixed: The [`elementPath.contains()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_dom_elementPath.html#method-contains) method incorrectly excludes the last element instead of root when the `fromTop` parameter is set to `true`.
 
 Other Changes:
 
 * Updated the [SCAYT](https://ckeditor.com/cke4/addon/scayt) (Spell Check As You Type) plugin:
 	* [#148](https://github.com/WebSpellChecker/ckeditor-plugin-scayt/issues/148): Fixed: SCAYT leaves underlined word after the CKEditor Replace dialog corrects it.
-* [#751](https://github.com/ckeditor/ckeditor-dev/issues/751): Added the [`CKEDITOR.dom.nodeList.toArray()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_dom_nodeList.html#method-toArray) method which returns an array representation of a [node list](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR.dom.nodeList.html).
+* [#751](https://github.com/ckeditor/ckeditor4/issues/751): Added the [`CKEDITOR.dom.nodeList.toArray()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_dom_nodeList.html#method-toArray) method which returns an array representation of a [node list](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR.dom.nodeList.html).
 
 ## CKEditor 4.7.1
 
 New Features:
 
 * Added a new Mexican Spanish localization. Thanks to [David Alexandro Rodriguez](https://www.transifex.com/user/profile/darsco16/)!
-* [#413](https://github.com/ckeditor/ckeditor-dev/issues/413): Added Paste as Plain Text keyboard shortcut to the [Accessibility Help](https://ckeditor.com/cke4/addon/a11yhelp) instructions.
+* [#413](https://github.com/ckeditor/ckeditor4/issues/413): Added Paste as Plain Text keyboard shortcut to the [Accessibility Help](https://ckeditor.com/cke4/addon/a11yhelp) instructions.
 
 Fixed Issues:
 
-* [#515](https://github.com/ckeditor/ckeditor-dev/issues/515): [Chrome] Fixed: Mouse actions on CKEditor scrollbar throw an exception when the [Table Selection](https://ckeditor.com/cke4/addon/tableselection) plugin is loaded.
-* [#493](https://github.com/ckeditor/ckeditor-dev/issues/493): Fixed: Selection started from a nested table causes an error in the browser while scrolling down.
-* [#415](https://github.com/ckeditor/ckeditor-dev/issues/415): [Firefox] Fixed: <kbd>Enter</kbd> key breaks the table structure when pressed in a table selection.
-* [#457](https://github.com/ckeditor/ckeditor-dev/issues/457): Fixed: Error thrown when deleting content from the editor with no selection.
-* [#478](https://github.com/ckeditor/ckeditor-dev/issues/478): [Chrome] Fixed:  Error thrown by the [Enter Key](https://ckeditor.com/cke4/addon/enterkey) plugin when pressing <kbd>Enter</kbd> with no selection.
-* [#424](https://github.com/ckeditor/ckeditor-dev/issues/424): Fixed: Error thrown by [Tab Key Handling](https://ckeditor.com/cke4/addon/tab) and [Indent List](https://ckeditor.com/cke4/addon/indentlist) plugins when pressing <kbd>Tab</kbd> with no selection in inline editor.
-* [#476](https://github.com/ckeditor/ckeditor-dev/issues/476): Fixed: Anchors inserted with the [Link](https://ckeditor.com/cke4/addon/link) plugin on collapsed selection cannot be edited.
-* [#417](https://github.com/ckeditor/ckeditor-dev/issues/417): Fixed: The [Table Resize](https://ckeditor.com/cke4/addon/tableresize) plugin throws an error when used with a table with only header or footer rows.
-* [#523](https://github.com/ckeditor/ckeditor-dev/issues/523): Fixed: The [`editor.getCommandKeystroke()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_editor.html#method-getCommandKeystroke) method does not obtain the correct keystroke.
-* [#534](https://github.com/ckeditor/ckeditor-dev/issues/534): [IE] Fixed: [Paste from Word](https://ckeditor.com/cke4/addon/pastefromword) does not work in Quirks Mode.
-* [#450](https://github.com/ckeditor/ckeditor-dev/issues/450): Fixed: [`CKEDITOR.filter`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR.filter.html) incorrectly transforms the `margin` CSS property.
+* [#515](https://github.com/ckeditor/ckeditor4/issues/515): [Chrome] Fixed: Mouse actions on CKEditor scrollbar throw an exception when the [Table Selection](https://ckeditor.com/cke4/addon/tableselection) plugin is loaded.
+* [#493](https://github.com/ckeditor/ckeditor4/issues/493): Fixed: Selection started from a nested table causes an error in the browser while scrolling down.
+* [#415](https://github.com/ckeditor/ckeditor4/issues/415): [Firefox] Fixed: <kbd>Enter</kbd> key breaks the table structure when pressed in a table selection.
+* [#457](https://github.com/ckeditor/ckeditor4/issues/457): Fixed: Error thrown when deleting content from the editor with no selection.
+* [#478](https://github.com/ckeditor/ckeditor4/issues/478): [Chrome] Fixed:  Error thrown by the [Enter Key](https://ckeditor.com/cke4/addon/enterkey) plugin when pressing <kbd>Enter</kbd> with no selection.
+* [#424](https://github.com/ckeditor/ckeditor4/issues/424): Fixed: Error thrown by [Tab Key Handling](https://ckeditor.com/cke4/addon/tab) and [Indent List](https://ckeditor.com/cke4/addon/indentlist) plugins when pressing <kbd>Tab</kbd> with no selection in inline editor.
+* [#476](https://github.com/ckeditor/ckeditor4/issues/476): Fixed: Anchors inserted with the [Link](https://ckeditor.com/cke4/addon/link) plugin on collapsed selection cannot be edited.
+* [#417](https://github.com/ckeditor/ckeditor4/issues/417): Fixed: The [Table Resize](https://ckeditor.com/cke4/addon/tableresize) plugin throws an error when used with a table with only header or footer rows.
+* [#523](https://github.com/ckeditor/ckeditor4/issues/523): Fixed: The [`editor.getCommandKeystroke()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_editor.html#method-getCommandKeystroke) method does not obtain the correct keystroke.
+* [#534](https://github.com/ckeditor/ckeditor4/issues/534): [IE] Fixed: [Paste from Word](https://ckeditor.com/cke4/addon/pastefromword) does not work in Quirks Mode.
+* [#450](https://github.com/ckeditor/ckeditor4/issues/450): Fixed: [`CKEDITOR.filter`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR.filter.html) incorrectly transforms the `margin` CSS property.
 
 ## CKEditor 4.7
 
@@ -582,7 +607,7 @@ Fixed Issues:
 * [#14407](https://dev.ckeditor.com/ticket/14407): [IE] Fixed: Non-editable widgets can be edited.
 * [#16927](https://dev.ckeditor.com/ticket/16927): Fixed: An error thrown if a bundle containing the [Color Button](https://ckeditor.com/cke4/addon/colorbutton) plugin is run in ES5 strict mode. Thanks to [Igor Rubinovich](https://github.com/IgorRubinovich)!
 * [#16920](https://dev.ckeditor.com/ticket/16920): Fixed: Several plugins not using the [Dialog](https://ckeditor.com/cke4/addon/dialog) plugin as a direct dependency.
-* [PR#336](https://github.com/ckeditor/ckeditor-dev/pull/336): Fixed: Typo in [`CKEDITOR.getCss()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR.html#method-getCss) API documentation. Thanks to [knusperpixel](https://github.com/knusperpixel)!
+* [PR#336](https://github.com/ckeditor/ckeditor4/pull/336): Fixed: Typo in [`CKEDITOR.getCss()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR.html#method-getCss) API documentation. Thanks to [knusperpixel](https://github.com/knusperpixel)!
 * [#17027](https://dev.ckeditor.com/ticket/17027): Fixed: Command event data should be initialized as an empty object.
 * Fixed the behavior of HTML parser when parsing `src`/`srcdoc` attributes of the `<iframe>` element in a CKEditor setup with ACF turned off and without the [Iframe Dialog](https://ckeditor.com/cke4/addon/iframe) plugin. The issue was originally reported as a security issue by [Sriramk21](https://twitter.com/sriramk21) from Pegasystems and was later downgraded by the security team into a normal issue due to the requirement of having ACF turned off. Disabling [Advanced Content Filter](https://ckeditor.com/docs/ckeditor4/latest/guide/dev_advanced_content_filter.html) is against [security best practices](https://ckeditor.com/docs/ckeditor4/latest/guide/dev_best_practices.html#security), so the problem described above has not been considered a security issue as such.
 
@@ -739,7 +764,7 @@ Fixed Issues:
 
 Fixed Issues:
 
-* [#10685](https://dev.ckeditor.com/ticket/10685): Fixed: Unreadable toolbar icons after updating to the new editor version. Fixed with [6876179](https://github.com/ckeditor/ckeditor-dev/commit/6876179db4ee97e786b07b8fd72e6b4120732185) in [ckeditor-dev](https://github.com/ckeditor/ckeditor-dev) and [6c9189f4](https://github.com/ckeditor/ckeditor-presets/commit/6c9189f46392d2c126854fe8889b820b8c76d291) in [ckeditor-presets](https://github.com/ckeditor/ckeditor-presets).
+* [#10685](https://dev.ckeditor.com/ticket/10685): Fixed: Unreadable toolbar icons after updating to the new editor version. Fixed with [6876179](https://github.com/ckeditor/ckeditor4/commit/6876179db4ee97e786b07b8fd72e6b4120732185) in [ckeditor4](https://github.com/ckeditor/ckeditor4) and [6c9189f4](https://github.com/ckeditor/ckeditor4-presets/commit/6c9189f46392d2c126854fe8889b820b8c76d291) in [ckeditor4-presets](https://github.com/ckeditor/ckeditor4-presets).
 * [#14573](https://dev.ckeditor.com/ticket/14573): Fixed: Missing [Widget](https://ckeditor.com/cke4/addon/widget) drag handler CSS when there are multiple editor instances.
 * [#14620](https://dev.ckeditor.com/ticket/14620): Fixed: Setting both the `min-height` style for the `<body>` element and the `height` style for the `<html>` element breaks the [Auto Grow](https://ckeditor.com/cke4/addon/autogrow) plugin.
 * [#14538](https://dev.ckeditor.com/ticket/14538): Fixed: Keyboard focus goes into an embedded `<iframe>` element.
@@ -885,7 +910,7 @@ Other Changes:
 Fixed Issues:
 
 * [#13609](https://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)!
+* [PR#201](https://github.com/ckeditor/ckeditor4/pull/201): Fixed: Buttons in the toolbar configurator cause form submission. Thanks to [colemanw](https://github.com/colemanw)!
 * [#13422](https://dev.ckeditor.com/ticket/13422): Fixed: A monospaced font should be used in the `<textarea>` element storing editor configuration in the toolbar configurator.
 * [#13494](https://dev.ckeditor.com/ticket/13494): Fixed: Error thrown in the toolbar configurator if plugin requirements are not met.
 * [#13409](https://dev.ckeditor.com/ticket/13409): Fixed: List elements incorrectly merged when pressing *Backspace* or *Delete*.
@@ -1070,7 +1095,7 @@ Fixed Issues:
 * [#13268](https://dev.ckeditor.com/ticket/13268): Fixed: Documentation for [`CKEDITOR.dom.text`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR.dom.text.html) is incorrect. Thanks to [Ben Kiefer](https://github.com/benkiefer)!
 * [#12739](https://dev.ckeditor.com/ticket/12739): Fixed: Link loses inline styles when edited without the [Advanced Tab for Dialogs](https://ckeditor.com/cke4/addon/dialogadvtab) plugin. Thanks to [Віталій Крутько](https://github.com/asmforce)!
 * [#13292](https://dev.ckeditor.com/ticket/13292): Fixed: Protection pattern does not work in attribute in self-closing elements with no space before `/>`. Thanks to [Віталій Крутько](https://github.com/asmforce)!
-* [PR#192](https://github.com/ckeditor/ckeditor-dev/pull/192): Fixed: Variable name typo in the [Dialog User Interface](https://ckeditor.com/cke4/addon/dialogui) plugin which caused [`CKEDITOR.ui.dialog.radio`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR.ui.dialog.radio.html) validation to not work. Thanks to [Florian Ludwig](https://github.com/FlorianLudwig)!
+* [PR#192](https://github.com/ckeditor/ckeditor4/pull/192): Fixed: Variable name typo in the [Dialog User Interface](https://ckeditor.com/cke4/addon/dialogui) plugin which caused [`CKEDITOR.ui.dialog.radio`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR.ui.dialog.radio.html) validation to not work. Thanks to [Florian Ludwig](https://github.com/FlorianLudwig)!
 * [#13232](https://dev.ckeditor.com/ticket/13232): [Safari] Fixed: The [`element.appendText()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_dom_element.html#method-appendText) method does not work properly for empty elements.
 * [#13233](https://dev.ckeditor.com/ticket/13233): Fixed: [HTMLDataProcessor](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR.htmlDataProcessor.html) can process `foo:href` attributes.
 * [#12796](https://dev.ckeditor.com/ticket/12796): Fixed: The [Indent List](https://ckeditor.com/cke4/addon/indentlist) plugin unwraps parent `<li>` elements. Thanks to [Andrew Stucki](https://github.com/andrewstucki)!
@@ -1230,7 +1255,7 @@ Fixed Issues:
 Important Notes:
 
 * The CKEditor testing environment is now publicly available. Read more about how to set up the environment and execute tests in the [CKEditor Testing Environment](https://ckeditor.com/docs/ckeditor4/latest/guide/dev_tests.html) guide.
-	Please note that the [`tests/`](https://github.com/ckeditor/ckeditor-dev/tree/master/tests) directory which contains editor tests is not available in release packages. It can only be found in the development version of CKEditor on [GitHub](https://github.com/ckeditor/ckeditor-dev/).
+	Please note that the [`tests/`](https://github.com/ckeditor/ckeditor4/tree/master/tests) directory which contains editor tests is not available in release packages. It can only be found in the development version of CKEditor on [GitHub](https://github.com/ckeditor/ckeditor4/).
 
 New Features:
 
diff --git a/web/core/assets/vendor/ckeditor/ckeditor.js b/web/core/assets/vendor/ckeditor/ckeditor.js
index 40f3aa413c..3f9e325858 100644
--- a/web/core/assets/vendor/ckeditor/ckeditor.js
+++ b/web/core/assets/vendor/ckeditor/ckeditor.js
@@ -1,15 +1,15 @@
 /*
-Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2020, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */
-(function(){if(!window.CKEDITOR||!window.CKEDITOR.dom){window.CKEDITOR||(window.CKEDITOR=function(){var b=/(^|.*[\\\/])ckeditor\.js(?:\?.*|;.*)?$/i,h={timestamp:"JA5A",version:"4.13.0",revision:"af6f51523",rnd:Math.floor(900*Math.random())+100,_:{pending:[],basePathSrcPattern:b},status:"unloaded",basePath:function(){var a=window.CKEDITOR_BASEPATH||"";if(!a)for(var f=document.getElementsByTagName("script"),g=0;g<f.length;g++){var l=f[g].src.match(b);if(l){a=l[1];break}}-1==a.indexOf(":/")&&"//"!=a.slice(0,
+(function(){if(!window.CKEDITOR||!window.CKEDITOR.dom){window.CKEDITOR||(window.CKEDITOR=function(){var b=/(^|.*[\\\/])ckeditor\.js(?:\?.*|;.*)?$/i,h={timestamp:"K1SC",version:"4.13.1",revision:"411985373",rnd:Math.floor(900*Math.random())+100,_:{pending:[],basePathSrcPattern:b},status:"unloaded",basePath:function(){var a=window.CKEDITOR_BASEPATH||"";if(!a)for(var f=document.getElementsByTagName("script"),g=0;g<f.length;g++){var k=f[g].src.match(b);if(k){a=k[1];break}}-1==a.indexOf(":/")&&"//"!=a.slice(0,
 2)&&(a=0===a.indexOf("/")?location.href.match(/^.*?:\/\/[^\/]*/)[0]+a:location.href.match(/^[^\?]*\/(?:)/)[0]+a);if(!a)throw'The CKEditor installation path could not be automatically detected. Please set the global variable "CKEDITOR_BASEPATH" before creating editor instances.';return a}(),getUrl:function(a){-1==a.indexOf(":/")&&0!==a.indexOf("/")&&(a=this.basePath+a);this.timestamp&&"/"!=a.charAt(a.length-1)&&!/[&?]t=/.test(a)&&(a+=(0<=a.indexOf("?")?"\x26":"?")+"t\x3d"+this.timestamp);return a},
 domReady:function(){function a(){try{document.addEventListener?(document.removeEventListener("DOMContentLoaded",a,!1),f()):document.attachEvent&&"complete"===document.readyState&&(document.detachEvent("onreadystatechange",a),f())}catch(b){}}function f(){for(var a;a=b.shift();)a()}var b=[];return function(f){function d(){try{document.documentElement.doScroll("left")}catch(c){setTimeout(d,1);return}a()}b.push(f);"complete"===document.readyState&&setTimeout(a,1);if(1==b.length)if(document.addEventListener)document.addEventListener("DOMContentLoaded",
 a,!1),window.addEventListener("load",a,!1);else if(document.attachEvent){document.attachEvent("onreadystatechange",a);window.attachEvent("onload",a);f=!1;try{f=!window.frameElement}catch(e){}document.documentElement.doScroll&&f&&d()}}}()},g=window.CKEDITOR_GETURL;if(g){var f=h.getUrl;h.getUrl=function(a){return g.call(h,a)||f.call(h,a)}}return h}());CKEDITOR.event||(CKEDITOR.event=function(){},CKEDITOR.event.implementOn=function(b){var h=CKEDITOR.event.prototype,g;for(g in h)null==b[g]&&(b[g]=h[g])},
-CKEDITOR.event.prototype=function(){function b(f){var a=h(this);return a[f]||(a[f]=new g(f))}var h=function(f){f=f.getPrivate&&f.getPrivate()||f._||(f._={});return f.events||(f.events={})},g=function(f){this.name=f;this.listeners=[]};g.prototype={getListenerIndex:function(f){for(var a=0,b=this.listeners;a<b.length;a++)if(b[a].fn==f)return a;return-1}};return{define:function(f,a){var g=b.call(this,f);CKEDITOR.tools.extend(g,a,!0)},on:function(f,a,g,h,l){function d(n,c,d,w){n={name:f,sender:this,editor:n,
-data:c,listenerData:h,stop:d,cancel:w,removeListener:e};return!1===a.call(g,n)?!1:n.data}function e(){n.removeListener(f,a)}var c=b.call(this,f);if(0>c.getListenerIndex(a)){c=c.listeners;g||(g=this);isNaN(l)&&(l=10);var n=this;d.fn=a;d.priority=l;for(var w=c.length-1;0<=w;w--)if(c[w].priority<=l)return c.splice(w+1,0,d),{removeListener:e};c.unshift(d)}return{removeListener:e}},once:function(){var f=Array.prototype.slice.call(arguments),a=f[1];f[1]=function(f){f.removeListener();return a.apply(this,
-arguments)};return this.on.apply(this,f)},capture:function(){CKEDITOR.event.useCapture=1;var f=this.on.apply(this,arguments);CKEDITOR.event.useCapture=0;return f},fire:function(){var f=0,a=function(){f=1},b=0,g=function(){b=1};return function(l,d,e){var c=h(this)[l];l=f;var n=b;f=b=0;if(c){var w=c.listeners;if(w.length)for(var w=w.slice(0),z,r=0;r<w.length;r++){if(c.errorProof)try{z=w[r].call(this,e,d,a,g)}catch(p){}else z=w[r].call(this,e,d,a,g);!1===z?b=1:"undefined"!=typeof z&&(d=z);if(f||b)break}}d=
-b?!1:"undefined"==typeof d?!0:d;f=l;b=n;return d}}(),fireOnce:function(f,a,b){a=this.fire(f,a,b);delete h(this)[f];return a},removeListener:function(f,a){var b=h(this)[f];if(b){var g=b.getListenerIndex(a);0<=g&&b.listeners.splice(g,1)}},removeAllListeners:function(){var f=h(this),a;for(a in f)delete f[a]},hasListeners:function(f){return(f=h(this)[f])&&0<f.listeners.length}}}());CKEDITOR.editor||(CKEDITOR.editor=function(){CKEDITOR._.pending.push([this,arguments]);CKEDITOR.event.call(this)},CKEDITOR.editor.prototype.fire=
+CKEDITOR.event.prototype=function(){function b(f){var a=h(this);return a[f]||(a[f]=new g(f))}var h=function(f){f=f.getPrivate&&f.getPrivate()||f._||(f._={});return f.events||(f.events={})},g=function(f){this.name=f;this.listeners=[]};g.prototype={getListenerIndex:function(f){for(var a=0,b=this.listeners;a<b.length;a++)if(b[a].fn==f)return a;return-1}};return{define:function(f,a){var g=b.call(this,f);CKEDITOR.tools.extend(g,a,!0)},on:function(f,a,g,h,k){function d(n,c,d,v){n={name:f,sender:this,editor:n,
+data:c,listenerData:h,stop:d,cancel:v,removeListener:e};return!1===a.call(g,n)?!1:n.data}function e(){n.removeListener(f,a)}var c=b.call(this,f);if(0>c.getListenerIndex(a)){c=c.listeners;g||(g=this);isNaN(k)&&(k=10);var n=this;d.fn=a;d.priority=k;for(var v=c.length-1;0<=v;v--)if(c[v].priority<=k)return c.splice(v+1,0,d),{removeListener:e};c.unshift(d)}return{removeListener:e}},once:function(){var f=Array.prototype.slice.call(arguments),a=f[1];f[1]=function(f){f.removeListener();return a.apply(this,
+arguments)};return this.on.apply(this,f)},capture:function(){CKEDITOR.event.useCapture=1;var f=this.on.apply(this,arguments);CKEDITOR.event.useCapture=0;return f},fire:function(){var f=0,a=function(){f=1},b=0,g=function(){b=1};return function(k,d,e){var c=h(this)[k];k=f;var n=b;f=b=0;if(c){var v=c.listeners;if(v.length)for(var v=v.slice(0),x,p=0;p<v.length;p++){if(c.errorProof)try{x=v[p].call(this,e,d,a,g)}catch(r){}else x=v[p].call(this,e,d,a,g);!1===x?b=1:"undefined"!=typeof x&&(d=x);if(f||b)break}}d=
+b?!1:"undefined"==typeof d?!0:d;f=k;b=n;return d}}(),fireOnce:function(f,a,b){a=this.fire(f,a,b);delete h(this)[f];return a},removeListener:function(f,a){var b=h(this)[f];if(b){var g=b.getListenerIndex(a);0<=g&&b.listeners.splice(g,1)}},removeAllListeners:function(){var f=h(this),a;for(a in f)delete f[a]},hasListeners:function(f){return(f=h(this)[f])&&0<f.listeners.length}}}());CKEDITOR.editor||(CKEDITOR.editor=function(){CKEDITOR._.pending.push([this,arguments]);CKEDITOR.event.call(this)},CKEDITOR.editor.prototype.fire=
 function(b,h){b in{instanceReady:1,loaded:1}&&(this[b]=!0);return CKEDITOR.event.prototype.fire.call(this,b,h,this)},CKEDITOR.editor.prototype.fireOnce=function(b,h){b in{instanceReady:1,loaded:1}&&(this[b]=!0);return CKEDITOR.event.prototype.fireOnce.call(this,b,h,this)},CKEDITOR.event.implementOn(CKEDITOR.editor.prototype));CKEDITOR.env||(CKEDITOR.env=function(){var b=navigator.userAgent.toLowerCase(),h=b.match(/edge[ \/](\d+.?\d*)/),g=-1<b.indexOf("trident/"),g=!(!h&&!g),g={ie:g,edge:!!h,webkit:!g&&
 -1<b.indexOf(" applewebkit/"),air:-1<b.indexOf(" adobeair/"),mac:-1<b.indexOf("macintosh"),quirks:"BackCompat"==document.compatMode&&(!document.documentMode||10>document.documentMode),mobile:-1<b.indexOf("mobile"),iOS:/(ipad|iphone|ipod)/.test(b),isCustomDomain:function(){if(!this.ie)return!1;var a=document.domain,f=window.location.hostname;return a!=f&&a!="["+f+"]"},secure:"https:"==location.protocol};g.gecko="Gecko"==navigator.product&&!g.webkit&&!g.ie;g.webkit&&(-1<b.indexOf("chrome")?g.chrome=
 !0:g.safari=!0);var f=0;g.ie&&(f=h?parseFloat(h[1]):g.quirks||!document.documentMode?parseFloat(b.match(/msie (\d+)/)[1]):document.documentMode,g.ie9Compat=9==f,g.ie8Compat=8==f,g.ie7Compat=7==f,g.ie6Compat=7>f||g.quirks);g.gecko&&(h=b.match(/rv:([\d\.]+)/))&&(h=h[1].split("."),f=1E4*h[0]+100*(h[1]||0)+1*(h[2]||0));g.air&&(f=parseFloat(b.match(/ adobeair\/(\d+)/)[1]));g.webkit&&(f=parseFloat(b.match(/ applewebkit\/(\d+)/)[1]));g.version=f;g.isCompatible=!(g.ie&&7>f)&&!(g.gecko&&4E4>f)&&!(g.webkit&&
@@ -18,12 +18,12 @@ CKEDITOR.loadFullCore=function(){if("basic_ready"!=CKEDITOR.status)CKEDITOR.load
 "basic_ready",b&&b._load?b():h&&setTimeout(function(){CKEDITOR.loadFullCore&&CKEDITOR.loadFullCore()},1E3*h))})})();CKEDITOR.status="basic_loaded"}();"use strict";CKEDITOR.VERBOSITY_WARN=1;CKEDITOR.VERBOSITY_ERROR=2;CKEDITOR.verbosity=CKEDITOR.VERBOSITY_WARN|CKEDITOR.VERBOSITY_ERROR;CKEDITOR.warn=function(b,h){CKEDITOR.verbosity&CKEDITOR.VERBOSITY_WARN&&CKEDITOR.fire("log",{type:"warn",errorCode:b,additionalData:h})};CKEDITOR.error=function(b,h){CKEDITOR.verbosity&CKEDITOR.VERBOSITY_ERROR&&CKEDITOR.fire("log",
 {type:"error",errorCode:b,additionalData:h})};CKEDITOR.on("log",function(b){if(window.console&&window.console.log){var h=console[b.data.type]?b.data.type:"log",g=b.data.errorCode;if(b=b.data.additionalData)console[h]("[CKEDITOR] Error code: "+g+".",b);else console[h]("[CKEDITOR] Error code: "+g+".");console[h]("[CKEDITOR] For more information about this error go to https://ckeditor.com/docs/ckeditor4/latest/guide/dev_errors.html#"+g)}},null,null,999);CKEDITOR.dom={};(function(){function b(n,c,d){this._minInterval=
 n;this._context=d;this._lastOutput=this._scheduledTimer=0;this._output=CKEDITOR.tools.bind(c,d||{});var a=this;this.input=function(){function n(){a._lastOutput=(new Date).getTime();a._scheduledTimer=0;a._call()}if(!a._scheduledTimer||!1!==a._reschedule()){var c=(new Date).getTime()-a._lastOutput;c<a._minInterval?a._scheduledTimer=setTimeout(n,a._minInterval-c):n()}}}function h(n,c,d){b.call(this,n,c,d);this._args=[];var a=this;this.input=CKEDITOR.tools.override(this.input,function(n){return function(){a._args=
-Array.prototype.slice.call(arguments);n.call(this)}})}var g=[],f=CKEDITOR.env.gecko?"-moz-":CKEDITOR.env.webkit?"-webkit-":CKEDITOR.env.ie?"-ms-":"",a=/&/g,m=/>/g,k=/</g,l=/"/g,d=/&(lt|gt|amp|quot|nbsp|shy|#\d{1,5});/g,e={lt:"\x3c",gt:"\x3e",amp:"\x26",quot:'"',nbsp:" ",shy:"­"},c=function(n,c){return"#"==c[0]?String.fromCharCode(parseInt(c.slice(1),10)):e[c]};CKEDITOR.on("reset",function(){g=[]});CKEDITOR.tools={arrayCompare:function(n,c){if(!n&&!c)return!0;if(!n||!c||n.length!=c.length)return!1;
-for(var d=0;d<n.length;d++)if(n[d]!=c[d])return!1;return!0},getIndex:function(n,c){for(var d=0;d<n.length;++d)if(c(n[d]))return d;return-1},clone:function(c){var d;if(c&&c instanceof Array){d=[];for(var a=0;a<c.length;a++)d[a]=CKEDITOR.tools.clone(c[a]);return d}if(null===c||"object"!=typeof c||c instanceof String||c instanceof Number||c instanceof Boolean||c instanceof Date||c instanceof RegExp||c.nodeType||c.window===c)return c;d=new c.constructor;for(a in c)d[a]=CKEDITOR.tools.clone(c[a]);return d},
+Array.prototype.slice.call(arguments);n.call(this)}})}var g=[],f=CKEDITOR.env.gecko?"-moz-":CKEDITOR.env.webkit?"-webkit-":CKEDITOR.env.ie?"-ms-":"",a=/&/g,m=/>/g,l=/</g,k=/"/g,d=/&(lt|gt|amp|quot|nbsp|shy|#\d{1,5});/g,e={lt:"\x3c",gt:"\x3e",amp:"\x26",quot:'"',nbsp:" ",shy:"­"},c=function(n,c){return"#"==c[0]?String.fromCharCode(parseInt(c.slice(1),10)):e[c]};CKEDITOR.on("reset",function(){g=[]});CKEDITOR.tools={arrayCompare:function(n,c){if(!n&&!c)return!0;if(!n||!c||n.length!=c.length)return!1;
+for(var d=0;d<n.length;d++)if(n[d]!=c[d])return!1;return!0},getIndex:function(c,d){for(var a=0;a<c.length;++a)if(d(c[a]))return a;return-1},clone:function(c){var d;if(c&&c instanceof Array){d=[];for(var a=0;a<c.length;a++)d[a]=CKEDITOR.tools.clone(c[a]);return d}if(null===c||"object"!=typeof c||c instanceof String||c instanceof Number||c instanceof Boolean||c instanceof Date||c instanceof RegExp||c.nodeType||c.window===c)return c;d=new c.constructor;for(a in c)d[a]=CKEDITOR.tools.clone(c[a]);return d},
 capitalize:function(c,d){return c.charAt(0).toUpperCase()+(d?c.slice(1):c.slice(1).toLowerCase())},extend:function(c){var d=arguments.length,a,e;"boolean"==typeof(a=arguments[d-1])?d--:"boolean"==typeof(a=arguments[d-2])&&(e=arguments[d-1],d-=2);for(var f=1;f<d;f++){var b=arguments[f]||{};CKEDITOR.tools.array.forEach(CKEDITOR.tools.object.keys(b),function(d){if(!0===a||null==c[d])if(!e||d in e)c[d]=b[d]})}return c},prototypedCopy:function(c){var d=function(){};d.prototype=c;return new d},copy:function(c){var d=
 {},a;for(a in c)d[a]=c[a];return d},isArray:function(c){return"[object Array]"==Object.prototype.toString.call(c)},isEmpty:function(c){for(var d in c)if(c.hasOwnProperty(d))return!1;return!0},cssVendorPrefix:function(c,d,a){if(a)return f+c+":"+d+";"+c+":"+d;a={};a[c]=d;a[f+c]=d;return a},cssStyleToDomStyle:function(){var c=document.createElement("div").style,d="undefined"!=typeof c.cssFloat?"cssFloat":"undefined"!=typeof c.styleFloat?"styleFloat":"float";return function(c){return"float"==c?d:c.replace(/-./g,
-function(c){return c.substr(1).toUpperCase()})}}(),buildStyleHtml:function(c){c=[].concat(c);for(var d,a=[],e=0;e<c.length;e++)if(d=c[e])/@import|[{}]/.test(d)?a.push("\x3cstyle\x3e"+d+"\x3c/style\x3e"):a.push('\x3clink type\x3d"text/css" rel\x3dstylesheet href\x3d"'+d+'"\x3e');return a.join("")},htmlEncode:function(c){return void 0===c||null===c?"":String(c).replace(a,"\x26amp;").replace(m,"\x26gt;").replace(k,"\x26lt;")},htmlDecode:function(n){return n.replace(d,c)},htmlEncodeAttr:function(c){return CKEDITOR.tools.htmlEncode(c).replace(l,
-"\x26quot;")},htmlDecodeAttr:function(c){return CKEDITOR.tools.htmlDecode(c)},transformPlainTextToHtml:function(c,d){var a=d==CKEDITOR.ENTER_BR,e=this.htmlEncode(c.replace(/\r\n/g,"\n")),e=e.replace(/\t/g,"\x26nbsp;\x26nbsp; \x26nbsp;"),f=d==CKEDITOR.ENTER_P?"p":"div";if(!a){var b=/\n{2}/g;if(b.test(e))var l="\x3c"+f+"\x3e",g="\x3c/"+f+"\x3e",e=l+e.replace(b,function(){return g+l})+g}e=e.replace(/\n/g,"\x3cbr\x3e");a||(e=e.replace(new RegExp("\x3cbr\x3e(?\x3d\x3c/"+f+"\x3e)"),function(c){return CKEDITOR.tools.repeat(c,
+function(c){return c.substr(1).toUpperCase()})}}(),buildStyleHtml:function(c){c=[].concat(c);for(var d,a=[],e=0;e<c.length;e++)if(d=c[e])/@import|[{}]/.test(d)?a.push("\x3cstyle\x3e"+d+"\x3c/style\x3e"):a.push('\x3clink type\x3d"text/css" rel\x3dstylesheet href\x3d"'+d+'"\x3e');return a.join("")},htmlEncode:function(c){return void 0===c||null===c?"":String(c).replace(a,"\x26amp;").replace(m,"\x26gt;").replace(l,"\x26lt;")},htmlDecode:function(n){return n.replace(d,c)},htmlEncodeAttr:function(c){return CKEDITOR.tools.htmlEncode(c).replace(k,
+"\x26quot;")},htmlDecodeAttr:function(c){return CKEDITOR.tools.htmlDecode(c)},transformPlainTextToHtml:function(c,d){var a=d==CKEDITOR.ENTER_BR,e=this.htmlEncode(c.replace(/\r\n/g,"\n")),e=e.replace(/\t/g,"\x26nbsp;\x26nbsp; \x26nbsp;"),f=d==CKEDITOR.ENTER_P?"p":"div";if(!a){var b=/\n{2}/g;if(b.test(e))var k="\x3c"+f+"\x3e",g="\x3c/"+f+"\x3e",e=k+e.replace(b,function(){return g+k})+g}e=e.replace(/\n/g,"\x3cbr\x3e");a||(e=e.replace(new RegExp("\x3cbr\x3e(?\x3d\x3c/"+f+"\x3e)"),function(c){return CKEDITOR.tools.repeat(c,
 2)}));e=e.replace(/^ | $/g,"\x26nbsp;");return e=e.replace(/(>|\s) /g,function(c,n){return n+"\x26nbsp;"}).replace(/ (?=<)/g,"\x26nbsp;")},getNextNumber:function(){var c=0;return function(){return++c}}(),getNextId:function(){return"cke_"+this.getNextNumber()},getUniqueId:function(){for(var c="e",d=0;8>d;d++)c+=Math.floor(65536*(1+Math.random())).toString(16).substring(1);return c},override:function(c,d){var a=d(c);a.prototype=c.prototype;return a},setTimeout:function(c,d,a,e,f){f||(f=window);a||(a=
 f);return f.setTimeout(function(){e?c.apply(a,[].concat(e)):c.apply(a)},d||0)},throttle:function(c,d,a){return new this.buffers.throttle(c,d,a)},trim:function(){var c=/(?:^[ \t\n\r]+)|(?:[ \t\n\r]+$)/g;return function(d){return d.replace(c,"")}}(),ltrim:function(){var c=/^[ \t\n\r]+/g;return function(d){return d.replace(c,"")}}(),rtrim:function(){var c=/[ \t\n\r]+$/g;return function(d){return d.replace(c,"")}}(),indexOf:function(c,d){if("function"==typeof d)for(var a=0,e=c.length;a<e;a++){if(d(c[a]))return a}else{if(c.indexOf)return c.indexOf(d);
 a=0;for(e=c.length;a<e;a++)if(c[a]===d)return a}return-1},search:function(c,d){var a=CKEDITOR.tools.indexOf(c,d);return 0<=a?c[a]:null},bind:function(c,d){var a=Array.prototype.slice.call(arguments,2);return function(){return c.apply(d,a.concat(Array.prototype.slice.call(arguments)))}},createClass:function(c){var d=c.$,a=c.base,e=c.privates||c._,f=c.proto;c=c.statics;!d&&(d=function(){a&&this.base.apply(this,arguments)});if(e)var b=d,d=function(){var c=this._||(this._={}),d;for(d in e){var n=e[d];
@@ -34,11 +34,11 @@ a&&(d=d.replace("-",""));c.setStyle("width",d);d=c.$.clientWidth;return a?-d:d}r
 d,a){var e={};a&&(c=(new CKEDITOR.dom.element("span")).setAttribute("style",c).getAttribute("style")||"");c&&(c=CKEDITOR.tools.normalizeHex(CKEDITOR.tools.convertRgbToHex(c)));if(!c||";"==c)return e;c.replace(/&quot;/g,'"').replace(/\s*([^:;\s]+)\s*:\s*([^;]+)\s*(?=;|$)/g,function(c,n,a){d&&(n=n.toLowerCase(),"font-family"==n&&(a=a.replace(/\s*,\s*/g,",")),a=CKEDITOR.tools.trim(a));e[n]=a});return e},writeCssText:function(c,d){var a,e=[];for(a in c)e.push(a+":"+c[a]);d&&e.sort();return e.join("; ")},
 objectCompare:function(c,d,a){var e;if(!c&&!d)return!0;if(!c||!d)return!1;for(e in c)if(c[e]!=d[e])return!1;if(!a)for(e in d)if(c[e]!=d[e])return!1;return!0},objectKeys:function(c){return CKEDITOR.tools.object.keys(c)},convertArrayToObject:function(c,d){var a={};1==arguments.length&&(d=!0);for(var e=0,f=c.length;e<f;++e)a[c[e]]=d;return a},fixDomain:function(){for(var c;;)try{c=window.parent.document.domain;break}catch(d){c=c?c.replace(/.+?(?:\.|$)/,""):document.domain;if(!c)break;document.domain=
 c}return!!c},eventsBuffer:function(c,d,a){return new this.buffers.event(c,d,a)},enableHtml5Elements:function(c,d){for(var a="abbr article aside audio bdi canvas data datalist details figcaption figure footer header hgroup main mark meter nav output progress section summary time video".split(" "),e=a.length,f;e--;)f=c.createElement(a[e]),d&&c.appendChild(f)},checkIfAnyArrayItemMatches:function(c,d){for(var a=0,e=c.length;a<e;++a)if(c[a].match(d))return!0;return!1},checkIfAnyObjectPropertyMatches:function(c,
-d){for(var a in c)if(a.match(d))return!0;return!1},keystrokeToString:function(c,d){var a=this.keystrokeToArray(c,d);a.display=a.display.join("+");a.aria=a.aria.join("+");return a},keystrokeToArray:function(c,d){var a=d&16711680,e=d&65535,f=CKEDITOR.env.mac,b=[],l=[];a&CKEDITOR.CTRL&&(b.push(f?"⌘":c[17]),l.push(f?c[224]:c[17]));a&CKEDITOR.ALT&&(b.push(f?"⌥":c[18]),l.push(c[18]));a&CKEDITOR.SHIFT&&(b.push(f?"⇧":c[16]),l.push(c[16]));e&&(c[e]?(b.push(c[e]),l.push(c[e])):(b.push(String.fromCharCode(e)),
-l.push(String.fromCharCode(e))));return{display:b,aria:l}},transparentImageData:"data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw\x3d\x3d",getCookie:function(c){c=c.toLowerCase();for(var d=document.cookie.split(";"),a,e,f=0;f<d.length;f++)if(a=d[f].split("\x3d"),e=decodeURIComponent(CKEDITOR.tools.trim(a[0]).toLowerCase()),e===c)return decodeURIComponent(1<a.length?a[1]:"");return null},setCookie:function(c,d){document.cookie=encodeURIComponent(c)+"\x3d"+encodeURIComponent(d)+
+d){for(var a in c)if(a.match(d))return!0;return!1},keystrokeToString:function(c,d){var a=this.keystrokeToArray(c,d);a.display=a.display.join("+");a.aria=a.aria.join("+");return a},keystrokeToArray:function(c,d){var a=d&16711680,e=d&65535,f=CKEDITOR.env.mac,b=[],k=[];a&CKEDITOR.CTRL&&(b.push(f?"⌘":c[17]),k.push(f?c[224]:c[17]));a&CKEDITOR.ALT&&(b.push(f?"⌥":c[18]),k.push(c[18]));a&CKEDITOR.SHIFT&&(b.push(f?"⇧":c[16]),k.push(c[16]));e&&(c[e]?(b.push(c[e]),k.push(c[e])):(b.push(String.fromCharCode(e)),
+k.push(String.fromCharCode(e))));return{display:b,aria:k}},transparentImageData:"data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw\x3d\x3d",getCookie:function(c){c=c.toLowerCase();for(var d=document.cookie.split(";"),a,e,f=0;f<d.length;f++)if(a=d[f].split("\x3d"),e=decodeURIComponent(CKEDITOR.tools.trim(a[0]).toLowerCase()),e===c)return decodeURIComponent(1<a.length?a[1]:"");return null},setCookie:function(c,d){document.cookie=encodeURIComponent(c)+"\x3d"+encodeURIComponent(d)+
 ";path\x3d/"},getCsrfToken:function(){var c=CKEDITOR.tools.getCookie("ckCsrfToken");if(!c||40!=c.length){var c=[],d="";if(window.crypto&&window.crypto.getRandomValues)c=new Uint8Array(40),window.crypto.getRandomValues(c);else for(var a=0;40>a;a++)c.push(Math.floor(256*Math.random()));for(a=0;a<c.length;a++)var e="abcdefghijklmnopqrstuvwxyz0123456789".charAt(c[a]%36),d=d+(.5<Math.random()?e.toUpperCase():e);c=d;CKEDITOR.tools.setCookie("ckCsrfToken",c)}return c},escapeCss:function(c){return c?window.CSS&&
 CSS.escape?CSS.escape(c):isNaN(parseInt(c.charAt(0),10))?c:"\\3"+c.charAt(0)+" "+c.substring(1,c.length):""},getMouseButton:function(c){return(c=c&&c.data?c.data.$:c)?CKEDITOR.tools.normalizeMouseButton(c.button):!1},normalizeMouseButton:function(c,d){if(!CKEDITOR.env.ie||9<=CKEDITOR.env.version&&!CKEDITOR.env.ie6Compat)return c;for(var a=[[CKEDITOR.MOUSE_BUTTON_LEFT,1],[CKEDITOR.MOUSE_BUTTON_MIDDLE,4],[CKEDITOR.MOUSE_BUTTON_RIGHT,2]],e=0;e<a.length;e++){var f=a[e];if(f[0]===c&&d)return f[1];if(!d&&
-f[1]===c)return f[0]}},convertHexStringToBytes:function(c){var d=[],a=c.length/2,e;for(e=0;e<a;e++)d.push(parseInt(c.substr(2*e,2),16));return d},convertBytesToBase64:function(c){var d="",a=c.length,e;for(e=0;e<a;e+=3){var f=c.slice(e,e+3),b=f.length,l=[],g;if(3>b)for(g=b;3>g;g++)f[g]=0;l[0]=(f[0]&252)>>2;l[1]=(f[0]&3)<<4|f[1]>>4;l[2]=(f[1]&15)<<2|(f[2]&192)>>6;l[3]=f[2]&63;for(g=0;4>g;g++)d=g<=b?d+"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(l[g]):d+"\x3d"}return d},
+f[1]===c)return f[0]}},convertHexStringToBytes:function(c){var d=[],a=c.length/2,e;for(e=0;e<a;e++)d.push(parseInt(c.substr(2*e,2),16));return d},convertBytesToBase64:function(c){var d="",a=c.length,e;for(e=0;e<a;e+=3){var f=c.slice(e,e+3),b=f.length,k=[],g;if(3>b)for(g=b;3>g;g++)f[g]=0;k[0]=(f[0]&252)>>2;k[1]=(f[0]&3)<<4|f[1]>>4;k[2]=(f[1]&15)<<2|(f[2]&192)>>6;k[3]=f[2]&63;for(g=0;4>g;g++)d=g<=b?d+"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(k[g]):d+"\x3d"}return d},
 style:{parse:{_colors:{aliceblue:"#F0F8FF",antiquewhite:"#FAEBD7",aqua:"#00FFFF",aquamarine:"#7FFFD4",azure:"#F0FFFF",beige:"#F5F5DC",bisque:"#FFE4C4",black:"#000000",blanchedalmond:"#FFEBCD",blue:"#0000FF",blueviolet:"#8A2BE2",brown:"#A52A2A",burlywood:"#DEB887",cadetblue:"#5F9EA0",chartreuse:"#7FFF00",chocolate:"#D2691E",coral:"#FF7F50",cornflowerblue:"#6495ED",cornsilk:"#FFF8DC",crimson:"#DC143C",cyan:"#00FFFF",darkblue:"#00008B",darkcyan:"#008B8B",darkgoldenrod:"#B8860B",darkgray:"#A9A9A9",darkgreen:"#006400",
 darkgrey:"#A9A9A9",darkkhaki:"#BDB76B",darkmagenta:"#8B008B",darkolivegreen:"#556B2F",darkorange:"#FF8C00",darkorchid:"#9932CC",darkred:"#8B0000",darksalmon:"#E9967A",darkseagreen:"#8FBC8F",darkslateblue:"#483D8B",darkslategray:"#2F4F4F",darkslategrey:"#2F4F4F",darkturquoise:"#00CED1",darkviolet:"#9400D3",deeppink:"#FF1493",deepskyblue:"#00BFFF",dimgray:"#696969",dimgrey:"#696969",dodgerblue:"#1E90FF",firebrick:"#B22222",floralwhite:"#FFFAF0",forestgreen:"#228B22",fuchsia:"#FF00FF",gainsboro:"#DCDCDC",
 ghostwhite:"#F8F8FF",gold:"#FFD700",goldenrod:"#DAA520",gray:"#808080",green:"#008000",greenyellow:"#ADFF2F",grey:"#808080",honeydew:"#F0FFF0",hotpink:"#FF69B4",indianred:"#CD5C5C",indigo:"#4B0082",ivory:"#FFFFF0",khaki:"#F0E68C",lavender:"#E6E6FA",lavenderblush:"#FFF0F5",lawngreen:"#7CFC00",lemonchiffon:"#FFFACD",lightblue:"#ADD8E6",lightcoral:"#F08080",lightcyan:"#E0FFFF",lightgoldenrodyellow:"#FAFAD2",lightgray:"#D3D3D3",lightgreen:"#90EE90",lightgrey:"#D3D3D3",lightpink:"#FFB6C1",lightsalmon:"#FFA07A",
@@ -54,13 +54,13 @@ return a},findKey:function(c,d){if("object"!==typeof c)return null;for(var a in
 var e=CKEDITOR.tools.copy(d);a(c.getFrame());var f=CKEDITOR.document.getWindow().getScrollPosition();e.top+=f.y;e.left+=f.x;"x"in e&&"y"in e&&(e.y+=f.y,e.x+=f.x);e.right=e.left+e.width;e.bottom=e.top+e.height;return e}};b.prototype={reset:function(){this._lastOutput=0;this._clearTimer()},_reschedule:function(){return!1},_call:function(){this._output()},_clearTimer:function(){this._scheduledTimer&&clearTimeout(this._scheduledTimer);this._scheduledTimer=0}};h.prototype=CKEDITOR.tools.prototypedCopy(b.prototype);
 h.prototype._reschedule=function(){this._scheduledTimer&&this._clearTimer()};h.prototype._call=function(){this._output.apply(this._context,this._args)};CKEDITOR.tools.buffers={};CKEDITOR.tools.buffers.event=b;CKEDITOR.tools.buffers.throttle=h;CKEDITOR.tools.style.border=CKEDITOR.tools.createClass({$:function(c){c=c||{};this.width=c.width;this.style=c.style;this.color=c.color;this._.normalize()},_:{normalizeMap:{color:[[/windowtext/g,"black"]]},normalize:function(){for(var c in this._.normalizeMap){var d=
 this[c];d&&(this[c]=CKEDITOR.tools.array.reduce(this._.normalizeMap[c],function(c,d){return c.replace(d[0],d[1])},d))}}},proto:{toString:function(){return CKEDITOR.tools.array.filter([this.width,this.style,this.color],function(c){return!!c}).join(" ")}},statics:{fromCssRule:function(c){var d={},a=c.split(/\s+/g);c=CKEDITOR.tools.style.parse._findColor(c);c.length&&(d.color=c[0]);CKEDITOR.tools.array.forEach(a,function(c){d.style||-1===CKEDITOR.tools.indexOf(CKEDITOR.tools.style.parse._borderStyle,
-c)?!d.width&&CKEDITOR.tools.style.parse._widthRegExp.test(c)&&(d.width=c):d.style=c});return new CKEDITOR.tools.style.border(d)},splitCssValues:function(c,d){d=d||{};var a=CKEDITOR.tools.array.reduce(["width","style","color"],function(a,e){var f=c["border-"+e]||d[e];a[e]=f?CKEDITOR.tools.style.parse.sideShorthand(f):null;return a},{});return CKEDITOR.tools.array.reduce(["top","right","bottom","left"],function(d,e){var f={},b;for(b in a){var l=c["border-"+e+"-"+b];f[b]=l?l:a[b]&&a[b][e]}d["border-"+
+c)?!d.width&&CKEDITOR.tools.style.parse._widthRegExp.test(c)&&(d.width=c):d.style=c});return new CKEDITOR.tools.style.border(d)},splitCssValues:function(c,d){d=d||{};var a=CKEDITOR.tools.array.reduce(["width","style","color"],function(a,e){var f=c["border-"+e]||d[e];a[e]=f?CKEDITOR.tools.style.parse.sideShorthand(f):null;return a},{});return CKEDITOR.tools.array.reduce(["top","right","bottom","left"],function(d,e){var f={},b;for(b in a){var k=c["border-"+e+"-"+b];f[b]=k?k:a[b]&&a[b][e]}d["border-"+
 e]=new CKEDITOR.tools.style.border(f);return d},{})}}});CKEDITOR.tools.array.indexOf=CKEDITOR.tools.indexOf;CKEDITOR.tools.array.isArray=CKEDITOR.tools.isArray;CKEDITOR.MOUSE_BUTTON_LEFT=0;CKEDITOR.MOUSE_BUTTON_MIDDLE=1;CKEDITOR.MOUSE_BUTTON_RIGHT=2})();CKEDITOR.dtd=function(){var b=CKEDITOR.tools.extend,h=function(d,c){for(var a=CKEDITOR.tools.clone(d),f=1;f<arguments.length;f++){c=arguments[f];for(var b in c)delete a[b]}return a},g={},f={},a={address:1,article:1,aside:1,blockquote:1,details:1,div:1,
-dl:1,fieldset:1,figure:1,footer:1,form:1,h1:1,h2:1,h3:1,h4:1,h5:1,h6:1,header:1,hgroup:1,hr:1,main:1,menu:1,nav:1,ol:1,p:1,pre:1,section:1,table:1,ul:1},m={command:1,link:1,meta:1,noscript:1,script:1,style:1},k={},l={"#":1},d={center:1,dir:1,noframes:1};b(g,{a:1,abbr:1,area:1,audio:1,b:1,bdi:1,bdo:1,br:1,button:1,canvas:1,cite:1,code:1,command:1,datalist:1,del:1,dfn:1,em:1,embed:1,i:1,iframe:1,img:1,input:1,ins:1,kbd:1,keygen:1,label:1,map:1,mark:1,meter:1,noscript:1,object:1,output:1,progress:1,
-q:1,ruby:1,s:1,samp:1,script:1,select:1,small:1,span:1,strong:1,sub:1,sup:1,textarea:1,time:1,u:1,"var":1,video:1,wbr:1},l,{acronym:1,applet:1,basefont:1,big:1,font:1,isindex:1,strike:1,style:1,tt:1});b(f,a,g,d);h={a:h(g,{a:1,button:1}),abbr:g,address:f,area:k,article:f,aside:f,audio:b({source:1,track:1},f),b:g,base:k,bdi:g,bdo:g,blockquote:f,body:f,br:k,button:h(g,{a:1,button:1}),canvas:g,caption:f,cite:g,code:g,col:k,colgroup:{col:1},command:k,datalist:b({option:1},g),dd:f,del:g,details:b({summary:1},
-f),dfn:g,div:f,dl:{dt:1,dd:1},dt:f,em:g,embed:k,fieldset:b({legend:1},f),figcaption:f,figure:b({figcaption:1},f),footer:f,form:f,h1:g,h2:g,h3:g,h4:g,h5:g,h6:g,head:b({title:1,base:1},m),header:f,hgroup:{h1:1,h2:1,h3:1,h4:1,h5:1,h6:1},hr:k,html:b({head:1,body:1},f,m),i:g,iframe:l,img:k,input:k,ins:g,kbd:g,keygen:k,label:g,legend:g,li:f,link:k,main:f,map:f,mark:g,menu:b({li:1},f),meta:k,meter:h(g,{meter:1}),nav:f,noscript:b({link:1,meta:1,style:1},g),object:b({param:1},g),ol:{li:1},optgroup:{option:1},
-option:l,output:g,p:g,param:k,pre:g,progress:h(g,{progress:1}),q:g,rp:g,rt:g,ruby:b({rp:1,rt:1},g),s:g,samp:g,script:l,section:f,select:{optgroup:1,option:1},small:g,source:k,span:g,strong:g,style:l,sub:g,summary:b({h1:1,h2:1,h3:1,h4:1,h5:1,h6:1},g),sup:g,table:{caption:1,colgroup:1,thead:1,tfoot:1,tbody:1,tr:1},tbody:{tr:1},td:f,textarea:l,tfoot:{tr:1},th:f,thead:{tr:1},time:h(g,{time:1}),title:l,tr:{th:1,td:1},track:k,u:g,ul:{li:1},"var":g,video:b({source:1,track:1},f),wbr:k,acronym:g,applet:b({param:1},
-f),basefont:k,big:g,center:f,dialog:k,dir:{li:1},font:g,isindex:k,noframes:f,strike:g,tt:g};b(h,{$block:b({audio:1,dd:1,dt:1,figcaption:1,li:1,video:1},a,d),$blockLimit:{article:1,aside:1,audio:1,body:1,caption:1,details:1,dir:1,div:1,dl:1,fieldset:1,figcaption:1,figure:1,footer:1,form:1,header:1,hgroup:1,main:1,menu:1,nav:1,ol:1,section:1,table:1,td:1,th:1,tr:1,ul:1,video:1},$cdata:{script:1,style:1},$editable:{address:1,article:1,aside:1,blockquote:1,body:1,details:1,div:1,fieldset:1,figcaption:1,
+dl:1,fieldset:1,figure:1,footer:1,form:1,h1:1,h2:1,h3:1,h4:1,h5:1,h6:1,header:1,hgroup:1,hr:1,main:1,menu:1,nav:1,ol:1,p:1,pre:1,section:1,table:1,ul:1},m={command:1,link:1,meta:1,noscript:1,script:1,style:1},l={},k={"#":1},d={center:1,dir:1,noframes:1};b(g,{a:1,abbr:1,area:1,audio:1,b:1,bdi:1,bdo:1,br:1,button:1,canvas:1,cite:1,code:1,command:1,datalist:1,del:1,dfn:1,em:1,embed:1,i:1,iframe:1,img:1,input:1,ins:1,kbd:1,keygen:1,label:1,map:1,mark:1,meter:1,noscript:1,object:1,output:1,progress:1,
+q:1,ruby:1,s:1,samp:1,script:1,select:1,small:1,span:1,strong:1,sub:1,sup:1,textarea:1,time:1,u:1,"var":1,video:1,wbr:1},k,{acronym:1,applet:1,basefont:1,big:1,font:1,isindex:1,strike:1,style:1,tt:1});b(f,a,g,d);h={a:h(g,{a:1,button:1}),abbr:g,address:f,area:l,article:f,aside:f,audio:b({source:1,track:1},f),b:g,base:l,bdi:g,bdo:g,blockquote:f,body:f,br:l,button:h(g,{a:1,button:1}),canvas:g,caption:f,cite:g,code:g,col:l,colgroup:{col:1},command:l,datalist:b({option:1},g),dd:f,del:g,details:b({summary:1},
+f),dfn:g,div:f,dl:{dt:1,dd:1},dt:f,em:g,embed:l,fieldset:b({legend:1},f),figcaption:f,figure:b({figcaption:1},f),footer:f,form:f,h1:g,h2:g,h3:g,h4:g,h5:g,h6:g,head:b({title:1,base:1},m),header:f,hgroup:{h1:1,h2:1,h3:1,h4:1,h5:1,h6:1},hr:l,html:b({head:1,body:1},f,m),i:g,iframe:k,img:l,input:l,ins:g,kbd:g,keygen:l,label:g,legend:g,li:f,link:l,main:f,map:f,mark:g,menu:b({li:1},f),meta:l,meter:h(g,{meter:1}),nav:f,noscript:b({link:1,meta:1,style:1},g),object:b({param:1},g),ol:{li:1},optgroup:{option:1},
+option:k,output:g,p:g,param:l,pre:g,progress:h(g,{progress:1}),q:g,rp:g,rt:g,ruby:b({rp:1,rt:1},g),s:g,samp:g,script:k,section:f,select:{optgroup:1,option:1},small:g,source:l,span:g,strong:g,style:k,sub:g,summary:b({h1:1,h2:1,h3:1,h4:1,h5:1,h6:1},g),sup:g,table:{caption:1,colgroup:1,thead:1,tfoot:1,tbody:1,tr:1},tbody:{tr:1},td:f,textarea:k,tfoot:{tr:1},th:f,thead:{tr:1},time:h(g,{time:1}),title:k,tr:{th:1,td:1},track:l,u:g,ul:{li:1},"var":g,video:b({source:1,track:1},f),wbr:l,acronym:g,applet:b({param:1},
+f),basefont:l,big:g,center:f,dialog:l,dir:{li:1},font:g,isindex:l,noframes:f,strike:g,tt:g};b(h,{$block:b({audio:1,dd:1,dt:1,figcaption:1,li:1,video:1},a,d),$blockLimit:{article:1,aside:1,audio:1,body:1,caption:1,details:1,dir:1,div:1,dl:1,fieldset:1,figcaption:1,figure:1,footer:1,form:1,header:1,hgroup:1,main:1,menu:1,nav:1,ol:1,section:1,table:1,td:1,th:1,tr:1,ul:1,video:1},$cdata:{script:1,style:1},$editable:{address:1,article:1,aside:1,blockquote:1,body:1,details:1,div:1,fieldset:1,figcaption:1,
 footer:1,form:1,h1:1,h2:1,h3:1,h4:1,h5:1,h6:1,header:1,hgroup:1,main:1,nav:1,p:1,pre:1,section:1},$empty:{area:1,base:1,basefont:1,br:1,col:1,command:1,dialog:1,embed:1,hr:1,img:1,input:1,isindex:1,keygen:1,link:1,meta:1,param:1,source:1,track:1,wbr:1},$inline:g,$list:{dl:1,ol:1,ul:1},$listItem:{dd:1,dt:1,li:1},$nonBodyContent:b({body:1,head:1,html:1},h.head),$nonEditable:{applet:1,audio:1,button:1,embed:1,iframe:1,map:1,object:1,option:1,param:1,script:1,textarea:1,video:1},$object:{applet:1,audio:1,
 button:1,hr:1,iframe:1,img:1,input:1,object:1,select:1,table:1,textarea:1,video:1},$removeEmpty:{abbr:1,acronym:1,b:1,bdi:1,bdo:1,big:1,cite:1,code:1,del:1,dfn:1,em:1,font:1,i:1,ins:1,label:1,kbd:1,mark:1,meter:1,output:1,q:1,ruby:1,s:1,samp:1,small:1,span:1,strike:1,strong:1,sub:1,sup:1,time:1,tt:1,u:1,"var":1},$tabIndex:{a:1,area:1,button:1,input:1,object:1,select:1,textarea:1},$tableContent:{caption:1,col:1,colgroup:1,tbody:1,td:1,tfoot:1,th:1,thead:1,tr:1},$transparent:{a:1,audio:1,canvas:1,del:1,
 ins:1,map:1,noscript:1,object:1,video:1},$intermediate:{caption:1,colgroup:1,dd:1,dt:1,figcaption:1,legend:1,li:1,optgroup:1,option:1,rp:1,rt:1,summary:1,tbody:1,td:1,tfoot:1,th:1,thead:1,tr:1}});return h}();CKEDITOR.dom.event=function(b){this.$=b};CKEDITOR.dom.event.prototype={getKey:function(){return this.$.keyCode||this.$.which},getKeystroke:function(){var b=this.getKey();if(this.$.ctrlKey||this.$.metaKey)b+=CKEDITOR.CTRL;this.$.shiftKey&&(b+=CKEDITOR.SHIFT);this.$.altKey&&(b+=CKEDITOR.ALT);return b},
@@ -86,13 +86,13 @@ h&&h.is("textarea","input")&&(b=!0);if(!b&&h&&"undefined"!=typeof h.$.isContentE
 getViewPaneSize:function(){var b=this.$.document,h="CSS1Compat"==b.compatMode;return{width:(h?b.documentElement.clientWidth:b.body.clientWidth)||0,height:(h?b.documentElement.clientHeight:b.body.clientHeight)||0}},getScrollPosition:function(){var b=this.$;if("pageXOffset"in b)return{x:b.pageXOffset||0,y:b.pageYOffset||0};b=b.document;return{x:b.documentElement.scrollLeft||b.body.scrollLeft||0,y:b.documentElement.scrollTop||b.body.scrollTop||0}},getFrame:function(){var b=this.$.frameElement;return b?
 new CKEDITOR.dom.element.get(b):null}});CKEDITOR.dom.document=function(b){CKEDITOR.dom.domObject.call(this,b)};CKEDITOR.dom.document.prototype=new CKEDITOR.dom.domObject;CKEDITOR.tools.extend(CKEDITOR.dom.document.prototype,{type:CKEDITOR.NODE_DOCUMENT,appendStyleSheet:function(b){if(this.$.createStyleSheet)this.$.createStyleSheet(b);else{var h=new CKEDITOR.dom.element("link");h.setAttributes({rel:"stylesheet",type:"text/css",href:b});this.getHead().append(h)}},appendStyleText:function(b){if(this.$.createStyleSheet){var h=
 this.$.createStyleSheet("");h.cssText=b}else{var g=new CKEDITOR.dom.element("style",this);g.append(new CKEDITOR.dom.text(b,this));this.getHead().append(g)}return h||g.$.sheet},createElement:function(b,h){var g=new CKEDITOR.dom.element(b,this);h&&(h.attributes&&g.setAttributes(h.attributes),h.styles&&g.setStyles(h.styles));return g},createText:function(b){return new CKEDITOR.dom.text(b,this)},focus:function(){this.getWindow().focus()},getActive:function(){var b;try{b=this.$.activeElement}catch(h){return null}return new CKEDITOR.dom.element(b)},
-getById:function(b){return(b=this.$.getElementById(b))?new CKEDITOR.dom.element(b):null},getByAddress:function(b,h){for(var g=this.$.documentElement,f=0;g&&f<b.length;f++){var a=b[f];if(h)for(var m=-1,k=0;k<g.childNodes.length;k++){var l=g.childNodes[k];if(!0!==h||3!=l.nodeType||!l.previousSibling||3!=l.previousSibling.nodeType)if(m++,m==a){g=l;break}}else g=g.childNodes[a]}return g?new CKEDITOR.dom.node(g):null},getElementsByTag:function(b,h){CKEDITOR.env.ie&&8>=document.documentMode||!h||(b=h+":"+
+getById:function(b){return(b=this.$.getElementById(b))?new CKEDITOR.dom.element(b):null},getByAddress:function(b,h){for(var g=this.$.documentElement,f=0;g&&f<b.length;f++){var a=b[f];if(h)for(var m=-1,l=0;l<g.childNodes.length;l++){var k=g.childNodes[l];if(!0!==h||3!=k.nodeType||!k.previousSibling||3!=k.previousSibling.nodeType)if(m++,m==a){g=k;break}}else g=g.childNodes[a]}return g?new CKEDITOR.dom.node(g):null},getElementsByTag:function(b,h){CKEDITOR.env.ie&&8>=document.documentMode||!h||(b=h+":"+
 b);return new CKEDITOR.dom.nodeList(this.$.getElementsByTagName(b))},getHead:function(){var b=this.$.getElementsByTagName("head")[0];return b=b?new CKEDITOR.dom.element(b):this.getDocumentElement().append(new CKEDITOR.dom.element("head"),!0)},getBody:function(){return new CKEDITOR.dom.element(this.$.body)},getDocumentElement:function(){return new CKEDITOR.dom.element(this.$.documentElement)},getWindow:function(){return new CKEDITOR.dom.window(this.$.parentWindow||this.$.defaultView)},write:function(b){this.$.open("text/html",
 "replace");CKEDITOR.env.ie&&(b=b.replace(/(?:^\s*<!DOCTYPE[^>]*?>)|^/i,'$\x26\n\x3cscript data-cke-temp\x3d"1"\x3e('+CKEDITOR.tools.fixDomain+")();\x3c/script\x3e"));this.$.write(b);this.$.close()},find:function(b){return new CKEDITOR.dom.nodeList(this.$.querySelectorAll(b))},findOne:function(b){return(b=this.$.querySelector(b))?new CKEDITOR.dom.element(b):null},_getHtml5ShivFrag:function(){var b=this.getCustomData("html5ShivFrag");b||(b=this.$.createDocumentFragment(),CKEDITOR.tools.enableHtml5Elements(b,
 !0),this.setCustomData("html5ShivFrag",b));return b}});CKEDITOR.dom.nodeList=function(b){this.$=b};CKEDITOR.dom.nodeList.prototype={count:function(){return this.$.length},getItem:function(b){return 0>b||b>=this.$.length?null:(b=this.$[b])?new CKEDITOR.dom.node(b):null},toArray:function(){return CKEDITOR.tools.array.map(this.$,function(b){return new CKEDITOR.dom.node(b)})}};CKEDITOR.dom.element=function(b,h){"string"==typeof b&&(b=(h?h.$:document).createElement(b));CKEDITOR.dom.domObject.call(this,
 b)};CKEDITOR.dom.element.get=function(b){return(b="string"==typeof b?document.getElementById(b)||document.getElementsByName(b)[0]:b)&&(b.$?b:new CKEDITOR.dom.element(b))};CKEDITOR.dom.element.prototype=new CKEDITOR.dom.node;CKEDITOR.dom.element.createFromHtml=function(b,h){var g=new CKEDITOR.dom.element("div",h);g.setHtml(b);return g.getFirst().remove()};CKEDITOR.dom.element.setMarker=function(b,h,g,f){var a=h.getCustomData("list_marker_id")||h.setCustomData("list_marker_id",CKEDITOR.tools.getNextNumber()).getCustomData("list_marker_id"),
 m=h.getCustomData("list_marker_names")||h.setCustomData("list_marker_names",{}).getCustomData("list_marker_names");b[a]=h;m[g]=1;return h.setCustomData(g,f)};CKEDITOR.dom.element.clearAllMarkers=function(b){for(var h in b)CKEDITOR.dom.element.clearMarkers(b,b[h],1)};CKEDITOR.dom.element.clearMarkers=function(b,h,g){var f=h.getCustomData("list_marker_names"),a=h.getCustomData("list_marker_id"),m;for(m in f)h.removeCustomData(m);h.removeCustomData("list_marker_names");g&&(h.removeCustomData("list_marker_id"),
-delete b[a])};(function(){function b(a,d){return-1<(" "+a+" ").replace(m," ").indexOf(" "+d+" ")}function h(a){var d=!0;a.$.id||(a.$.id="cke_tmp_"+CKEDITOR.tools.getNextNumber(),d=!1);return function(){d||a.removeAttribute("id")}}function g(a,d){var e=CKEDITOR.tools.escapeCss(a.$.id);return"#"+e+" "+d.split(/,\s*/).join(", #"+e+" ")}function f(a){for(var d=0,e=0,c=k[a].length;e<c;e++)d+=parseFloat(this.getComputedStyle(k[a][e])||0,10)||0;return d}var a=document.createElement("_").classList,a="undefined"!==
+delete b[a])};(function(){function b(a,d){return-1<(" "+a+" ").replace(m," ").indexOf(" "+d+" ")}function h(a){var d=!0;a.$.id||(a.$.id="cke_tmp_"+CKEDITOR.tools.getNextNumber(),d=!1);return function(){d||a.removeAttribute("id")}}function g(a,d){var e=CKEDITOR.tools.escapeCss(a.$.id);return"#"+e+" "+d.split(/,\s*/).join(", #"+e+" ")}function f(a){for(var d=0,e=0,c=l[a].length;e<c;e++)d+=parseFloat(this.getComputedStyle(l[a][e])||0,10)||0;return d}var a=document.createElement("_").classList,a="undefined"!==
 typeof a&&null!==String(a.add).match(/\[Native code\]/gi),m=/[\n\t\r]/g;CKEDITOR.tools.extend(CKEDITOR.dom.element.prototype,{type:CKEDITOR.NODE_ELEMENT,addClass:a?function(a){this.$.classList.add(a);return this}:function(a){var d=this.$.className;d&&(b(d,a)||(d+=" "+a));this.$.className=d||a;return this},removeClass:a?function(a){var d=this.$;d.classList.remove(a);d.className||d.removeAttribute("class");return this}:function(a){var d=this.getAttribute("class");d&&b(d,a)&&((d=d.replace(new RegExp("(?:^|\\s+)"+
 a+"(?\x3d\\s|$)"),"").replace(/^\s+/,""))?this.setAttribute("class",d):this.removeAttribute("class"));return this},hasClass:function(a){return b(this.$.className,a)},append:function(a,d){"string"==typeof a&&(a=this.getDocument().createElement(a));d?this.$.insertBefore(a.$,this.$.firstChild):this.$.appendChild(a.$);return a},appendHtml:function(a){if(this.$.childNodes.length){var d=new CKEDITOR.dom.element("div",this.getDocument());d.setHtml(a);d.moveChildren(this)}else this.setHtml(a)},appendText:function(a){null!=
 this.$.text&&CKEDITOR.env.ie&&9>CKEDITOR.env.version?this.$.text+=a:this.append(new CKEDITOR.dom.text(a))},appendBogus:function(a){if(a||CKEDITOR.env.needsBrFiller){for(a=this.getLast();a&&a.type==CKEDITOR.NODE_TEXT&&!CKEDITOR.tools.rtrim(a.getText());)a=a.getPrevious();a&&a.is&&a.is("br")||(a=this.getDocument().createElement("br"),CKEDITOR.env.gecko&&a.setAttribute("type","_moz"),this.append(a))}},breakParent:function(a,d){var e=new CKEDITOR.dom.range(this.getDocument());e.setStartAfter(this);e.setEndAfter(a);
@@ -116,40 +116,40 @@ arguments)}catch(c){}else a.apply(this,arguments);return this}:a}(),setAttribute
 0;d<a.length;d++)this.removeAttribute(a[d]);else for(d in a=a||this.getAttributes(),a)a.hasOwnProperty(d)&&this.removeAttribute(d)},removeStyle:function(a){var d=this.$.style;if(d.removeProperty||"border"!=a&&"margin"!=a&&"padding"!=a)d.removeProperty?d.removeProperty(a):d.removeAttribute(CKEDITOR.tools.cssStyleToDomStyle(a)),this.$.style.cssText||this.removeAttribute("style");else{var e=["top","left","right","bottom"],c;"border"==a&&(c=["color","style","width"]);for(var d=[],f=0;f<e.length;f++)if(c)for(var b=
 0;b<c.length;b++)d.push([a,e[f],c[b]].join("-"));else d.push([a,e[f]].join("-"));for(a=0;a<d.length;a++)this.removeStyle(d[a])}},setStyle:function(a,d){this.$.style[CKEDITOR.tools.cssStyleToDomStyle(a)]=d;return this},setStyles:function(a){for(var d in a)this.setStyle(d,a[d]);return this},setOpacity:function(a){CKEDITOR.env.ie&&9>CKEDITOR.env.version?(a=Math.round(100*a),this.setStyle("filter",100<=a?"":"progid:DXImageTransform.Microsoft.Alpha(opacity\x3d"+a+")")):this.setStyle("opacity",a)},unselectable:function(){this.setStyles(CKEDITOR.tools.cssVendorPrefix("user-select",
 "none"));if(CKEDITOR.env.ie){this.setAttribute("unselectable","on");for(var a,d=this.getElementsByTag("*"),e=0,c=d.count();e<c;e++)a=d.getItem(e),a.setAttribute("unselectable","on")}},getPositionedAncestor:function(){for(var a=this;"html"!=a.getName();){if("static"!=a.getComputedStyle("position"))return a;a=a.getParent()}return null},getDocumentPosition:function(a){var d=0,e=0,c=this.getDocument(),f=c.getBody(),b="BackCompat"==c.$.compatMode;if(document.documentElement.getBoundingClientRect&&(CKEDITOR.env.ie?
-8!==CKEDITOR.env.version:1)){var g=this.$.getBoundingClientRect(),h=c.$.documentElement,k=h.clientTop||f.$.clientTop||0,q=h.clientLeft||f.$.clientLeft||0,m=!0;CKEDITOR.env.ie&&(m=c.getDocumentElement().contains(this),c=c.getBody().contains(this),m=b&&c||!b&&m);m&&(CKEDITOR.env.webkit||CKEDITOR.env.ie&&12<=CKEDITOR.env.version?(d=f.$.scrollLeft||h.scrollLeft,e=f.$.scrollTop||h.scrollTop):(e=b?f.$:h,d=e.scrollLeft,e=e.scrollTop),d=g.left+d-q,e=g.top+e-k)}else for(k=this,q=null;k&&"body"!=k.getName()&&
-"html"!=k.getName();){d+=k.$.offsetLeft-k.$.scrollLeft;e+=k.$.offsetTop-k.$.scrollTop;k.equals(this)||(d+=k.$.clientLeft||0,e+=k.$.clientTop||0);for(;q&&!q.equals(k);)d-=q.$.scrollLeft,e-=q.$.scrollTop,q=q.getParent();q=k;k=(g=k.$.offsetParent)?new CKEDITOR.dom.element(g):null}a&&(g=this.getWindow(),k=a.getWindow(),!g.equals(k)&&g.$.frameElement&&(a=(new CKEDITOR.dom.element(g.$.frameElement)).getDocumentPosition(a),d+=a.x,e+=a.y));document.documentElement.getBoundingClientRect||!CKEDITOR.env.gecko||
+8!==CKEDITOR.env.version:1)){var g=this.$.getBoundingClientRect(),h=c.$.documentElement,r=h.clientTop||f.$.clientTop||0,q=h.clientLeft||f.$.clientLeft||0,l=!0;CKEDITOR.env.ie&&(l=c.getDocumentElement().contains(this),c=c.getBody().contains(this),l=b&&c||!b&&l);l&&(CKEDITOR.env.webkit||CKEDITOR.env.ie&&12<=CKEDITOR.env.version?(d=f.$.scrollLeft||h.scrollLeft,e=f.$.scrollTop||h.scrollTop):(e=b?f.$:h,d=e.scrollLeft,e=e.scrollTop),d=g.left+d-q,e=g.top+e-r)}else for(r=this,q=null;r&&"body"!=r.getName()&&
+"html"!=r.getName();){d+=r.$.offsetLeft-r.$.scrollLeft;e+=r.$.offsetTop-r.$.scrollTop;r.equals(this)||(d+=r.$.clientLeft||0,e+=r.$.clientTop||0);for(;q&&!q.equals(r);)d-=q.$.scrollLeft,e-=q.$.scrollTop,q=q.getParent();q=r;r=(g=r.$.offsetParent)?new CKEDITOR.dom.element(g):null}a&&(g=this.getWindow(),r=a.getWindow(),!g.equals(r)&&g.$.frameElement&&(a=(new CKEDITOR.dom.element(g.$.frameElement)).getDocumentPosition(a),d+=a.x,e+=a.y));document.documentElement.getBoundingClientRect||!CKEDITOR.env.gecko||
 b||(d+=this.$.clientLeft?1:0,e+=this.$.clientTop?1:0);return{x:d,y:e}},scrollIntoView:function(a){var d=this.getParent();if(d){do if((d.$.clientWidth&&d.$.clientWidth<d.$.scrollWidth||d.$.clientHeight&&d.$.clientHeight<d.$.scrollHeight)&&!d.is("body")&&this.scrollIntoParent(d,a,1),d.is("html")){var e=d.getWindow();try{var c=e.$.frameElement;c&&(d=new CKEDITOR.dom.element(c))}catch(f){}}while(d=d.getParent())}},scrollIntoParent:function(a,d,e){var c,f,b,g;function h(c,d){/body|html/.test(a.getName())?
-a.getWindow().$.scrollBy(c,d):(a.$.scrollLeft+=c,a.$.scrollTop+=d)}function k(c,a){var d={x:0,y:0};if(!c.is(m?"body":"html")){var e=c.$.getBoundingClientRect();d.x=e.left;d.y=e.top}e=c.getWindow();e.equals(a)||(e=k(CKEDITOR.dom.element.get(e.$.frameElement),a),d.x+=e.x,d.y+=e.y);return d}function q(c,a){return parseInt(c.getComputedStyle("margin-"+a)||0,10)||0}!a&&(a=this.getWindow());b=a.getDocument();var m="BackCompat"==b.$.compatMode;a instanceof CKEDITOR.dom.window&&(a=m?b.getBody():b.getDocumentElement());
-CKEDITOR.env.webkit&&(b=this.getEditor(!1))&&(b._.previousScrollTop=null);b=a.getWindow();f=k(this,b);var t=k(a,b),y=this.$.offsetHeight;c=this.$.offsetWidth;var v=a.$.clientHeight,x=a.$.clientWidth;b=f.x-q(this,"left")-t.x||0;g=f.y-q(this,"top")-t.y||0;c=f.x+c+q(this,"right")-(t.x+x)||0;f=f.y+y+q(this,"bottom")-(t.y+v)||0;(0>g||0<f)&&h(0,!0===d?g:!1===d?f:0>g?g:f);e&&(0>b||0<c)&&h(0>b?b:c,0)},setState:function(a,d,e){d=d||"cke";switch(a){case CKEDITOR.TRISTATE_ON:this.addClass(d+"_on");this.removeClass(d+
+a.getWindow().$.scrollBy(c,d):(a.$.scrollLeft+=c,a.$.scrollTop+=d)}function r(c,a){var d={x:0,y:0};if(!c.is(l?"body":"html")){var e=c.$.getBoundingClientRect();d.x=e.left;d.y=e.top}e=c.getWindow();e.equals(a)||(e=r(CKEDITOR.dom.element.get(e.$.frameElement),a),d.x+=e.x,d.y+=e.y);return d}function q(c,a){return parseInt(c.getComputedStyle("margin-"+a)||0,10)||0}!a&&(a=this.getWindow());b=a.getDocument();var l="BackCompat"==b.$.compatMode;a instanceof CKEDITOR.dom.window&&(a=l?b.getBody():b.getDocumentElement());
+CKEDITOR.env.webkit&&(b=this.getEditor(!1))&&(b._.previousScrollTop=null);b=a.getWindow();f=r(this,b);var m=r(a,b),z=this.$.offsetHeight;c=this.$.offsetWidth;var y=a.$.clientHeight,u=a.$.clientWidth;b=f.x-q(this,"left")-m.x||0;g=f.y-q(this,"top")-m.y||0;c=f.x+c+q(this,"right")-(m.x+u)||0;f=f.y+z+q(this,"bottom")-(m.y+y)||0;(0>g||0<f)&&h(0,!0===d?g:!1===d?f:0>g?g:f);e&&(0>b||0<c)&&h(0>b?b:c,0)},setState:function(a,d,e){d=d||"cke";switch(a){case CKEDITOR.TRISTATE_ON:this.addClass(d+"_on");this.removeClass(d+
 "_off");this.removeClass(d+"_disabled");e&&this.setAttribute("aria-pressed",!0);e&&this.removeAttribute("aria-disabled");break;case CKEDITOR.TRISTATE_DISABLED:this.addClass(d+"_disabled");this.removeClass(d+"_off");this.removeClass(d+"_on");e&&this.setAttribute("aria-disabled",!0);e&&this.removeAttribute("aria-pressed");break;default:this.addClass(d+"_off"),this.removeClass(d+"_on"),this.removeClass(d+"_disabled"),e&&this.removeAttribute("aria-pressed"),e&&this.removeAttribute("aria-disabled")}},
 getFrameDocument:function(){var a=this.$;try{a.contentWindow.document}catch(d){a.src=a.src}return a&&new CKEDITOR.dom.document(a.contentWindow.document)},copyAttributes:function(a,d){var e=this.$.attributes;d=d||{};for(var c=0;c<e.length;c++){var f=e[c],b=f.nodeName.toLowerCase(),g;if(!(b in d))if("checked"==b&&(g=this.getAttribute(b)))a.setAttribute(b,g);else if(!CKEDITOR.env.ie||this.hasAttribute(b))g=this.getAttribute(b),null===g&&(g=f.nodeValue),a.setAttribute(b,g)}""!==this.$.style.cssText&&
 (a.$.style.cssText=this.$.style.cssText)},renameNode:function(a){if(this.getName()!=a){var d=this.getDocument();a=new CKEDITOR.dom.element(a,d);this.copyAttributes(a);this.moveChildren(a);this.getParent(!0)&&this.$.parentNode.replaceChild(a.$,this.$);a.$["data-cke-expando"]=this.$["data-cke-expando"];this.$=a.$;delete this.getName}},getChild:function(){function a(d,e){var c=d.childNodes;if(0<=e&&e<c.length)return c[e]}return function(d){var e=this.$;if(d.slice)for(d=d.slice();0<d.length&&e;)e=a(e,
 d.shift());else e=a(e,d);return e?new CKEDITOR.dom.node(e):null}}(),getChildCount:function(){return this.$.childNodes.length},disableContextMenu:function(){function a(d){return d.type==CKEDITOR.NODE_ELEMENT&&d.hasClass("cke_enable_context_menu")}this.on("contextmenu",function(d){d.data.getTarget().getAscendant(a,!0)||d.data.preventDefault()})},getDirection:function(a){return a?this.getComputedStyle("direction")||this.getDirection()||this.getParent()&&this.getParent().getDirection(1)||this.getDocument().$.dir||
 "ltr":this.getStyle("direction")||this.getAttribute("dir")},data:function(a,d){a="data-"+a;if(void 0===d)return this.getAttribute(a);!1===d?this.removeAttribute(a):this.setAttribute(a,d);return null},getEditor:function(a){var d=CKEDITOR.instances,e,c,f;a=a||void 0===a;for(e in d)if(c=d[e],c.element.equals(this)&&c.elementMode!=CKEDITOR.ELEMENT_MODE_APPENDTO||!a&&(f=c.editable())&&(f.equals(this)||f.contains(this)))return c;return null},find:function(a){var d=h(this);a=new CKEDITOR.dom.nodeList(this.$.querySelectorAll(g(this,
 a)));d();return a},findOne:function(a){var d=h(this);a=this.$.querySelector(g(this,a));d();return a?new CKEDITOR.dom.element(a):null},forEach:function(a,d,e){if(!(e||d&&this.type!=d))var c=a(this);if(!1!==c){e=this.getChildren();for(var f=0;f<e.count();f++)c=e.getItem(f),c.type==CKEDITOR.NODE_ELEMENT?c.forEach(a,d):d&&c.type!=d||a(c)}},fireEventHandler:function(a,d){var e="on"+a,c=this.$;if(CKEDITOR.env.ie&&9>CKEDITOR.env.version){var f=c.ownerDocument.createEventObject(),b;for(b in d)f[b]=d[b];c.fireEvent(e,
-f)}else c[c[a]?a:e](d)},isDetached:function(){var a=this.getDocument(),d=a.getDocumentElement();return d.equals(this)||d.contains(this)?!CKEDITOR.env.ie||8<CKEDITOR.env.version&&!CKEDITOR.env.quirks?!a.$.defaultView:!1:!0}});var k={width:["border-left-width","border-right-width","padding-left","padding-right"],height:["border-top-width","border-bottom-width","padding-top","padding-bottom"]};CKEDITOR.dom.element.prototype.setSize=function(a,d,e){"number"==typeof d&&(!e||CKEDITOR.env.ie&&CKEDITOR.env.quirks||
+f)}else c[c[a]?a:e](d)},isDetached:function(){var a=this.getDocument(),d=a.getDocumentElement();return d.equals(this)||d.contains(this)?!CKEDITOR.env.ie||8<CKEDITOR.env.version&&!CKEDITOR.env.quirks?!a.$.defaultView:!1:!0}});var l={width:["border-left-width","border-right-width","padding-left","padding-right"],height:["border-top-width","border-bottom-width","padding-top","padding-bottom"]};CKEDITOR.dom.element.prototype.setSize=function(a,d,e){"number"==typeof d&&(!e||CKEDITOR.env.ie&&CKEDITOR.env.quirks||
 (d-=f.call(this,a)),this.setStyle(a,d+"px"))};CKEDITOR.dom.element.prototype.getSize=function(a,d){var e=Math.max(this.$["offset"+CKEDITOR.tools.capitalize(a)],this.$["client"+CKEDITOR.tools.capitalize(a)])||0;d&&(e-=f.call(this,a));return e}})();CKEDITOR.dom.documentFragment=function(b){b=b||CKEDITOR.document;this.$=b.type==CKEDITOR.NODE_DOCUMENT?b.$.createDocumentFragment():b};CKEDITOR.tools.extend(CKEDITOR.dom.documentFragment.prototype,CKEDITOR.dom.element.prototype,{type:CKEDITOR.NODE_DOCUMENT_FRAGMENT,
 insertAfterNode:function(b){b=b.$;b.parentNode.insertBefore(this.$,b.nextSibling)},getHtml:function(){var b=new CKEDITOR.dom.element("div");this.clone(1,1).appendTo(b);return b.getHtml().replace(/\s*data-cke-expando=".*?"/g,"")}},!0,{append:1,appendBogus:1,clone:1,getFirst:1,getHtml:1,getLast:1,getParent:1,getNext:1,getPrevious:1,appendTo:1,moveChildren:1,insertBefore:1,insertAfterNode:1,replace:1,trim:1,type:1,ltrim:1,rtrim:1,getDocument:1,getChildCount:1,getChild:1,getChildren:1});CKEDITOR.tools.extend(CKEDITOR.dom.documentFragment.prototype,
-CKEDITOR.dom.document.prototype,!0,{find:1,findOne:1});(function(){function b(c,a){var d=this.range;if(this._.end)return null;if(!this._.start){this._.start=1;if(d.collapsed)return this.end(),null;d.optimize()}var e,f=d.startContainer;e=d.endContainer;var b=d.startOffset,n=d.endOffset,g,h=this.guard,k=this.type,m=c?"getPreviousSourceNode":"getNextSourceNode";if(!c&&!this._.guardLTR){var l=e.type==CKEDITOR.NODE_ELEMENT?e:e.getParent(),A=e.type==CKEDITOR.NODE_ELEMENT?e.getChild(n):e.getNext();this._.guardLTR=
-function(c,a){return(!a||!l.equals(c))&&(!A||!c.equals(A))&&(c.type!=CKEDITOR.NODE_ELEMENT||!a||!c.equals(d.root))}}if(c&&!this._.guardRTL){var G=f.type==CKEDITOR.NODE_ELEMENT?f:f.getParent(),C=f.type==CKEDITOR.NODE_ELEMENT?b?f.getChild(b-1):null:f.getPrevious();this._.guardRTL=function(c,a){return(!a||!G.equals(c))&&(!C||!c.equals(C))&&(c.type!=CKEDITOR.NODE_ELEMENT||!a||!c.equals(d.root))}}var I=c?this._.guardRTL:this._.guardLTR;g=h?function(c,a){return!1===I(c,a)?!1:h(c,a)}:I;this.current?e=this.current[m](!1,
-k,g):(c?e.type==CKEDITOR.NODE_ELEMENT&&(e=0<n?e.getChild(n-1):!1===g(e,!0)?null:e.getPreviousSourceNode(!0,k,g)):(e=f,e.type==CKEDITOR.NODE_ELEMENT&&((e=e.getChild(b))||(e=!1===g(f,!0)?null:f.getNextSourceNode(!0,k,g)))),e&&!1===g(e)&&(e=null));for(;e&&!this._.end;){this.current=e;if(!this.evaluator||!1!==this.evaluator(e)){if(!a)return e}else if(a&&this.evaluator)return!1;e=e[m](!1,k,g)}this.end();return this.current=null}function h(c){for(var a,d=null;a=b.call(this,c);)d=a;return d}CKEDITOR.dom.walker=
+CKEDITOR.dom.document.prototype,!0,{find:1,findOne:1});(function(){function b(c,a){var d=this.range;if(this._.end)return null;if(!this._.start){this._.start=1;if(d.collapsed)return this.end(),null;d.optimize()}var e,f=d.startContainer;e=d.endContainer;var b=d.startOffset,n=d.endOffset,g,h=this.guard,u=this.type,l=c?"getPreviousSourceNode":"getNextSourceNode";if(!c&&!this._.guardLTR){var m=e.type==CKEDITOR.NODE_ELEMENT?e:e.getParent(),k=e.type==CKEDITOR.NODE_ELEMENT?e.getChild(n):e.getNext();this._.guardLTR=
+function(c,a){return(!a||!m.equals(c))&&(!k||!c.equals(k))&&(c.type!=CKEDITOR.NODE_ELEMENT||!a||!c.equals(d.root))}}if(c&&!this._.guardRTL){var G=f.type==CKEDITOR.NODE_ELEMENT?f:f.getParent(),F=f.type==CKEDITOR.NODE_ELEMENT?b?f.getChild(b-1):null:f.getPrevious();this._.guardRTL=function(c,a){return(!a||!G.equals(c))&&(!F||!c.equals(F))&&(c.type!=CKEDITOR.NODE_ELEMENT||!a||!c.equals(d.root))}}var K=c?this._.guardRTL:this._.guardLTR;g=h?function(c,a){return!1===K(c,a)?!1:h(c,a)}:K;this.current?e=this.current[l](!1,
+u,g):(c?e.type==CKEDITOR.NODE_ELEMENT&&(e=0<n?e.getChild(n-1):!1===g(e,!0)?null:e.getPreviousSourceNode(!0,u,g)):(e=f,e.type==CKEDITOR.NODE_ELEMENT&&((e=e.getChild(b))||(e=!1===g(f,!0)?null:f.getNextSourceNode(!0,u,g)))),e&&!1===g(e)&&(e=null));for(;e&&!this._.end;){this.current=e;if(!this.evaluator||!1!==this.evaluator(e)){if(!a)return e}else if(a&&this.evaluator)return!1;e=e[l](!1,u,g)}this.end();return this.current=null}function h(c){for(var a,d=null;a=b.call(this,c);)d=a;return d}CKEDITOR.dom.walker=
 CKEDITOR.tools.createClass({$:function(c){this.range=c;this._={}},proto:{end:function(){this._.end=1},next:function(){return b.call(this)},previous:function(){return b.call(this,1)},checkForward:function(){return!1!==b.call(this,0,1)},checkBackward:function(){return!1!==b.call(this,1,1)},lastForward:function(){return h.call(this)},lastBackward:function(){return h.call(this,1)},reset:function(){delete this.current;this._={}}}});var g={block:1,"list-item":1,table:1,"table-row-group":1,"table-header-group":1,
 "table-footer-group":1,"table-row":1,"table-column-group":1,"table-column":1,"table-cell":1,"table-caption":1},f={absolute:1,fixed:1};CKEDITOR.dom.element.prototype.isBlockBoundary=function(c){return"none"!=this.getComputedStyle("float")||this.getComputedStyle("position")in f||!g[this.getComputedStyle("display")]?!!(this.is(CKEDITOR.dtd.$block)||c&&this.is(c)):!0};CKEDITOR.dom.walker.blockBoundary=function(c){return function(a){return!(a.type==CKEDITOR.NODE_ELEMENT&&a.isBlockBoundary(c))}};CKEDITOR.dom.walker.listItemBoundary=
 function(){return this.blockBoundary({br:1})};CKEDITOR.dom.walker.bookmark=function(c,a){function d(c){return c&&c.getName&&"span"==c.getName()&&c.data("cke-bookmark")}return function(e){var f,b;f=e&&e.type!=CKEDITOR.NODE_ELEMENT&&(b=e.getParent())&&d(b);f=c?f:f||d(e);return!!(a^f)}};CKEDITOR.dom.walker.whitespaces=function(c){return function(a){var d;a&&a.type==CKEDITOR.NODE_TEXT&&(d=!CKEDITOR.tools.trim(a.getText())||CKEDITOR.env.webkit&&a.getText()==CKEDITOR.dom.selection.FILLING_CHAR_SEQUENCE);
-return!!(c^d)}};CKEDITOR.dom.walker.invisible=function(c){var a=CKEDITOR.dom.walker.whitespaces(),d=CKEDITOR.env.webkit?1:0;return function(e){a(e)?e=1:(e.type==CKEDITOR.NODE_TEXT&&(e=e.getParent()),e=e.$.offsetWidth<=d);return!!(c^e)}};CKEDITOR.dom.walker.nodeType=function(c,a){return function(d){return!!(a^d.type==c)}};CKEDITOR.dom.walker.bogus=function(c){function d(c){return!m(c)&&!k(c)}return function(e){var f=CKEDITOR.env.needsBrFiller?e.is&&e.is("br"):e.getText&&a.test(e.getText());f&&(f=e.getParent(),
-e=e.getNext(d),f=f.isBlockBoundary()&&(!e||e.type==CKEDITOR.NODE_ELEMENT&&e.isBlockBoundary()));return!!(c^f)}};CKEDITOR.dom.walker.temp=function(c){return function(a){a.type!=CKEDITOR.NODE_ELEMENT&&(a=a.getParent());a=a&&a.hasAttribute("data-cke-temp");return!!(c^a)}};var a=/^[\t\r\n ]*(?:&nbsp;|\xa0)$/,m=CKEDITOR.dom.walker.whitespaces(),k=CKEDITOR.dom.walker.bookmark(),l=CKEDITOR.dom.walker.temp(),d=function(c){return k(c)||m(c)||c.type==CKEDITOR.NODE_ELEMENT&&c.is(CKEDITOR.dtd.$inline)&&!c.is(CKEDITOR.dtd.$empty)};
-CKEDITOR.dom.walker.ignored=function(c){return function(a){a=m(a)||k(a)||l(a);return!!(c^a)}};var e=CKEDITOR.dom.walker.ignored();CKEDITOR.dom.walker.empty=function(c){return function(a){for(var d=0,f=a.getChildCount();d<f;++d)if(!e(a.getChild(d)))return!!c;return!c}};var c=CKEDITOR.dom.walker.empty(),n=CKEDITOR.dom.walker.validEmptyBlockContainers=CKEDITOR.tools.extend(function(c){var a={},d;for(d in c)CKEDITOR.dtd[d]["#"]&&(a[d]=1);return a}(CKEDITOR.dtd.$block),{caption:1,td:1,th:1});CKEDITOR.dom.walker.editable=
+return!!(c^d)}};CKEDITOR.dom.walker.invisible=function(c){var a=CKEDITOR.dom.walker.whitespaces(),d=CKEDITOR.env.webkit?1:0;return function(e){a(e)?e=1:(e.type==CKEDITOR.NODE_TEXT&&(e=e.getParent()),e=e.$.offsetWidth<=d);return!!(c^e)}};CKEDITOR.dom.walker.nodeType=function(c,a){return function(d){return!!(a^d.type==c)}};CKEDITOR.dom.walker.bogus=function(c){function d(c){return!m(c)&&!l(c)}return function(e){var f=CKEDITOR.env.needsBrFiller?e.is&&e.is("br"):e.getText&&a.test(e.getText());f&&(f=e.getParent(),
+e=e.getNext(d),f=f.isBlockBoundary()&&(!e||e.type==CKEDITOR.NODE_ELEMENT&&e.isBlockBoundary()));return!!(c^f)}};CKEDITOR.dom.walker.temp=function(c){return function(a){a.type!=CKEDITOR.NODE_ELEMENT&&(a=a.getParent());a=a&&a.hasAttribute("data-cke-temp");return!!(c^a)}};var a=/^[\t\r\n ]*(?:&nbsp;|\xa0)$/,m=CKEDITOR.dom.walker.whitespaces(),l=CKEDITOR.dom.walker.bookmark(),k=CKEDITOR.dom.walker.temp(),d=function(c){return l(c)||m(c)||c.type==CKEDITOR.NODE_ELEMENT&&c.is(CKEDITOR.dtd.$inline)&&!c.is(CKEDITOR.dtd.$empty)};
+CKEDITOR.dom.walker.ignored=function(c){return function(a){a=m(a)||l(a)||k(a);return!!(c^a)}};var e=CKEDITOR.dom.walker.ignored();CKEDITOR.dom.walker.empty=function(c){return function(a){for(var d=0,f=a.getChildCount();d<f;++d)if(!e(a.getChild(d)))return!!c;return!c}};var c=CKEDITOR.dom.walker.empty(),n=CKEDITOR.dom.walker.validEmptyBlockContainers=CKEDITOR.tools.extend(function(c){var a={},d;for(d in c)CKEDITOR.dtd[d]["#"]&&(a[d]=1);return a}(CKEDITOR.dtd.$block),{caption:1,td:1,th:1});CKEDITOR.dom.walker.editable=
 function(a){return function(d){d=e(d)?!1:d.type==CKEDITOR.NODE_TEXT||d.type==CKEDITOR.NODE_ELEMENT&&(d.is(CKEDITOR.dtd.$inline)||d.is("hr")||"false"==d.getAttribute("contenteditable")||!CKEDITOR.env.needsBrFiller&&d.is(n)&&c(d))?!0:!1;return!!(a^d)}};CKEDITOR.dom.element.prototype.getBogus=function(){var c=this;do c=c.getPreviousSourceNode();while(d(c));return c&&(CKEDITOR.env.needsBrFiller?c.is&&c.is("br"):c.getText&&a.test(c.getText()))?c:!1}})();CKEDITOR.dom.range=function(b){this.endOffset=this.endContainer=
-this.startOffset=this.startContainer=null;this.collapsed=!0;var h=b instanceof CKEDITOR.dom.document;this.document=h?b:b.getDocument();this.root=h?b.getBody():b};(function(){function b(c){c.collapsed=c.startContainer&&c.endContainer&&c.startContainer.equals(c.endContainer)&&c.startOffset==c.endOffset}function h(c,a,d,e,f){function b(c,a,d,e){var n=d?c.getPrevious():c.getNext();if(e&&k)return n;l||e?a.append(c.clone(!0,f),d):(c.remove(),m&&a.append(c,d));return n}function g(){var c,a,d,e=Math.min(H.length,
-E.length);for(c=0;c<e;c++)if(a=H[c],d=E[c],!a.equals(d))return c;return c-1}function h(){var a=Q-1,d=I&&J&&!x.equals(B);a<O-1||a<P-1||d?(d?c.moveToPosition(B,CKEDITOR.POSITION_BEFORE_START):P==a+1&&C?c.moveToPosition(E[a],CKEDITOR.POSITION_BEFORE_END):c.moveToPosition(E[a+1],CKEDITOR.POSITION_BEFORE_START),e&&(a=H[a+1])&&a.type==CKEDITOR.NODE_ELEMENT&&(d=CKEDITOR.dom.element.createFromHtml('\x3cspan data-cke-bookmark\x3d"1" style\x3d"display:none"\x3e\x26nbsp;\x3c/span\x3e',c.document),d.insertAfter(a),
-a.mergeSiblings(!1),c.moveToBookmark({startNode:d}))):c.collapse(!0)}c.optimizeBookmark();var k=0===a,m=1==a,l=2==a;a=l||m;var x=c.startContainer,B=c.endContainer,D=c.startOffset,A=c.endOffset,G,C,I,J,F,M;if(l&&B.type==CKEDITOR.NODE_TEXT&&(x.equals(B)||x.type===CKEDITOR.NODE_ELEMENT&&x.getFirst().equals(B)))d.append(c.document.createText(B.substring(D,A)));else{B.type==CKEDITOR.NODE_TEXT?l?M=!0:B=B.split(A):0<B.getChildCount()?A>=B.getChildCount()?(B=B.getChild(A-1),C=!0):B=B.getChild(A):J=C=!0;x.type==
-CKEDITOR.NODE_TEXT?l?F=!0:x.split(D):0<x.getChildCount()?0===D?(x=x.getChild(D),G=!0):x=x.getChild(D-1):I=G=!0;for(var H=x.getParents(),E=B.getParents(),Q=g(),O=H.length-1,P=E.length-1,K=d,X,S,W,ea=-1,L=Q;L<=O;L++){S=H[L];W=S.getNext();for(L!=O||S.equals(E[L])&&O<P?a&&(X=K.append(S.clone(0,f))):G?b(S,K,!1,I):F&&K.append(c.document.createText(S.substring(D)));W;){if(W.equals(E[L])){ea=L;break}W=b(W,K)}K=X}K=d;for(L=Q;L<=P;L++)if(d=E[L],W=d.getPrevious(),d.equals(H[L]))a&&(K=K.getChild(0));else{L!=
-P||d.equals(H[L])&&P<O?a&&(X=K.append(d.clone(0,f))):C?b(d,K,!1,J):M&&K.append(c.document.createText(d.substring(0,A)));if(L>ea)for(;W;)W=b(W,K,!0);K=X}l||h()}}function g(){var c=!1,a=CKEDITOR.dom.walker.whitespaces(),d=CKEDITOR.dom.walker.bookmark(!0),e=CKEDITOR.dom.walker.bogus();return function(f){return d(f)||a(f)?!0:e(f)&&!c?c=!0:f.type==CKEDITOR.NODE_TEXT&&(f.hasAscendant("pre")||CKEDITOR.tools.trim(f.getText()).length)||f.type==CKEDITOR.NODE_ELEMENT&&!f.is(m)?!1:!0}}function f(c){var a=CKEDITOR.dom.walker.whitespaces(),
-d=CKEDITOR.dom.walker.bookmark(1);return function(e){return d(e)||a(e)?!0:!c&&k(e)||e.type==CKEDITOR.NODE_ELEMENT&&e.is(CKEDITOR.dtd.$removeEmpty)}}function a(c){return function(){var a;return this[c?"getPreviousNode":"getNextNode"](function(c){!a&&e(c)&&(a=c);return d(c)&&!(k(c)&&c.equals(a))})}}var m={abbr:1,acronym:1,b:1,bdo:1,big:1,cite:1,code:1,del:1,dfn:1,em:1,font:1,i:1,ins:1,label:1,kbd:1,q:1,samp:1,small:1,span:1,strike:1,strong:1,sub:1,sup:1,tt:1,u:1,"var":1},k=CKEDITOR.dom.walker.bogus(),
-l=/^[\t\r\n ]*(?:&nbsp;|\xa0)$/,d=CKEDITOR.dom.walker.editable(),e=CKEDITOR.dom.walker.ignored(!0);CKEDITOR.dom.range.prototype={clone:function(){var c=new CKEDITOR.dom.range(this.root);c._setStartContainer(this.startContainer);c.startOffset=this.startOffset;c._setEndContainer(this.endContainer);c.endOffset=this.endOffset;c.collapsed=this.collapsed;return c},collapse:function(c){c?(this._setEndContainer(this.startContainer),this.endOffset=this.startOffset):(this._setStartContainer(this.endContainer),
+this.startOffset=this.startContainer=null;this.collapsed=!0;var h=b instanceof CKEDITOR.dom.document;this.document=h?b:b.getDocument();this.root=h?b.getBody():b};(function(){function b(c){c.collapsed=c.startContainer&&c.endContainer&&c.startContainer.equals(c.endContainer)&&c.startOffset==c.endOffset}function h(c,a,d,e,f){function b(c,a,d,e){var n=d?c.getPrevious():c.getNext();if(e&&l)return n;k||e?a.append(c.clone(!0,f),d):(c.remove(),m&&a.append(c,d));return n}function g(){var c,a,d,e=Math.min(J.length,
+L.length);for(c=0;c<e;c++)if(a=J[c],d=L[c],!a.equals(d))return c;return c-1}function h(){var a=D-1,d=K&&H&&!u.equals(C);a<I-1||a<P-1||d?(d?c.moveToPosition(C,CKEDITOR.POSITION_BEFORE_START):P==a+1&&F?c.moveToPosition(L[a],CKEDITOR.POSITION_BEFORE_END):c.moveToPosition(L[a+1],CKEDITOR.POSITION_BEFORE_START),e&&(a=J[a+1])&&a.type==CKEDITOR.NODE_ELEMENT&&(d=CKEDITOR.dom.element.createFromHtml('\x3cspan data-cke-bookmark\x3d"1" style\x3d"display:none"\x3e\x26nbsp;\x3c/span\x3e',c.document),d.insertAfter(a),
+a.mergeSiblings(!1),c.moveToBookmark({startNode:d}))):c.collapse(!0)}c.optimizeBookmark();var l=0===a,m=1==a,k=2==a;a=k||m;var u=c.startContainer,C=c.endContainer,A=c.startOffset,B=c.endOffset,G,F,K,H,E,N;if(k&&C.type==CKEDITOR.NODE_TEXT&&(u.equals(C)||u.type===CKEDITOR.NODE_ELEMENT&&u.getFirst().equals(C)))d.append(c.document.createText(C.substring(A,B)));else{C.type==CKEDITOR.NODE_TEXT?k?N=!0:C=C.split(B):0<C.getChildCount()?B>=C.getChildCount()?(C=C.getChild(B-1),F=!0):C=C.getChild(B):H=F=!0;u.type==
+CKEDITOR.NODE_TEXT?k?E=!0:u.split(A):0<u.getChildCount()?0===A?(u=u.getChild(A),G=!0):u=u.getChild(A-1):K=G=!0;for(var J=u.getParents(),L=C.getParents(),D=g(),I=J.length-1,P=L.length-1,M=d,Y,R,W,ea=-1,V=D;V<=I;V++){R=J[V];W=R.getNext();for(V!=I||R.equals(L[V])&&I<P?a&&(Y=M.append(R.clone(0,f))):G?b(R,M,!1,K):E&&M.append(c.document.createText(R.substring(A)));W;){if(W.equals(L[V])){ea=V;break}W=b(W,M)}M=Y}M=d;for(V=D;V<=P;V++)if(d=L[V],W=d.getPrevious(),d.equals(J[V]))a&&(M=M.getChild(0));else{V!=
+P||d.equals(J[V])&&P<I?a&&(Y=M.append(d.clone(0,f))):F?b(d,M,!1,H):N&&M.append(c.document.createText(d.substring(0,B)));if(V>ea)for(;W;)W=b(W,M,!0);M=Y}k||h()}}function g(){var c=!1,a=CKEDITOR.dom.walker.whitespaces(),d=CKEDITOR.dom.walker.bookmark(!0),e=CKEDITOR.dom.walker.bogus();return function(f){return d(f)||a(f)?!0:e(f)&&!c?c=!0:f.type==CKEDITOR.NODE_TEXT&&(f.hasAscendant("pre")||CKEDITOR.tools.trim(f.getText()).length)||f.type==CKEDITOR.NODE_ELEMENT&&!f.is(m)?!1:!0}}function f(c){var a=CKEDITOR.dom.walker.whitespaces(),
+d=CKEDITOR.dom.walker.bookmark(1);return function(e){return d(e)||a(e)?!0:!c&&l(e)||e.type==CKEDITOR.NODE_ELEMENT&&e.is(CKEDITOR.dtd.$removeEmpty)}}function a(c){return function(){var a;return this[c?"getPreviousNode":"getNextNode"](function(c){!a&&e(c)&&(a=c);return d(c)&&!(l(c)&&c.equals(a))})}}var m={abbr:1,acronym:1,b:1,bdo:1,big:1,cite:1,code:1,del:1,dfn:1,em:1,font:1,i:1,ins:1,label:1,kbd:1,q:1,samp:1,small:1,span:1,strike:1,strong:1,sub:1,sup:1,tt:1,u:1,"var":1},l=CKEDITOR.dom.walker.bogus(),
+k=/^[\t\r\n ]*(?:&nbsp;|\xa0)$/,d=CKEDITOR.dom.walker.editable(),e=CKEDITOR.dom.walker.ignored(!0);CKEDITOR.dom.range.prototype={clone:function(){var c=new CKEDITOR.dom.range(this.root);c._setStartContainer(this.startContainer);c.startOffset=this.startOffset;c._setEndContainer(this.endContainer);c.endOffset=this.endOffset;c.collapsed=this.collapsed;return c},collapse:function(c){c?(this._setEndContainer(this.startContainer),this.endOffset=this.startOffset):(this._setStartContainer(this.endContainer),
 this.startOffset=this.endOffset);this.collapsed=!0},cloneContents:function(c){var a=new CKEDITOR.dom.documentFragment(this.document);this.collapsed||h(this,2,a,!1,"undefined"==typeof c?!0:c);return a},deleteContents:function(c){this.collapsed||h(this,0,null,c)},extractContents:function(c,a){var d=new CKEDITOR.dom.documentFragment(this.document);this.collapsed||h(this,1,d,c,"undefined"==typeof a?!0:a);return d},equals:function(c){return this.startOffset===c.startOffset&&this.endOffset===c.endOffset&&
-this.startContainer.equals(c.startContainer)&&this.endContainer.equals(c.endContainer)},createBookmark:function(c){function a(c){return c.getAscendant(function(c){var a;if(a=c.data&&c.data("cke-temp"))a=-1===CKEDITOR.tools.array.indexOf(["cke_copybin","cke_pastebin"],c.getAttribute("id"));return a},!0)}var d=this.startContainer,e=this.endContainer,f=this.collapsed,b,g,h,k;b=this.document.createElement("span");b.data("cke-bookmark",1);b.setStyle("display","none");b.setHtml("\x26nbsp;");c&&(h="cke_bm_"+
-CKEDITOR.tools.getNextNumber(),b.setAttribute("id",h+(f?"C":"S")));f||(g=b.clone(),g.setHtml("\x26nbsp;"),c&&g.setAttribute("id",h+"E"),k=this.clone(),a(e)&&(e=a(e),k.moveToPosition(e,CKEDITOR.POSITION_AFTER_END)),k.collapse(),k.insertNode(g));k=this.clone();a(d)&&(e=a(d),k.moveToPosition(e,CKEDITOR.POSITION_BEFORE_START));k.collapse(!0);k.insertNode(b);g?(this.setStartAfter(b),this.setEndBefore(g)):this.moveToPosition(b,CKEDITOR.POSITION_AFTER_END);return{startNode:c?h+(f?"C":"S"):b,endNode:c?h+
+this.startContainer.equals(c.startContainer)&&this.endContainer.equals(c.endContainer)},createBookmark:function(c){function a(c){return c.getAscendant(function(c){var a;if(a=c.data&&c.data("cke-temp"))a=-1===CKEDITOR.tools.array.indexOf(["cke_copybin","cke_pastebin"],c.getAttribute("id"));return a},!0)}var d=this.startContainer,e=this.endContainer,f=this.collapsed,b,g,h,l;b=this.document.createElement("span");b.data("cke-bookmark",1);b.setStyle("display","none");b.setHtml("\x26nbsp;");c&&(h="cke_bm_"+
+CKEDITOR.tools.getNextNumber(),b.setAttribute("id",h+(f?"C":"S")));f||(g=b.clone(),g.setHtml("\x26nbsp;"),c&&g.setAttribute("id",h+"E"),l=this.clone(),a(e)&&(e=a(e),l.moveToPosition(e,CKEDITOR.POSITION_AFTER_END)),l.collapse(),l.insertNode(g));l=this.clone();a(d)&&(e=a(d),l.moveToPosition(e,CKEDITOR.POSITION_BEFORE_START));l.collapse(!0);l.insertNode(b);g?(this.setStartAfter(b),this.setEndBefore(g)):this.moveToPosition(b,CKEDITOR.POSITION_AFTER_END);return{startNode:c?h+(f?"C":"S"):b,endNode:c?h+
 "E":g,serializable:c,collapsed:f}},createBookmark2:function(){function c(c){var a=c.container,e=c.offset,f;f=a;var b=e;f=f.type!=CKEDITOR.NODE_ELEMENT||0===b||b==f.getChildCount()?0:f.getChild(b-1).type==CKEDITOR.NODE_TEXT&&f.getChild(b).type==CKEDITOR.NODE_TEXT;f&&(a=a.getChild(e-1),e=a.getLength());if(a.type==CKEDITOR.NODE_ELEMENT&&0<e){a:{for(f=a;e--;)if(b=f.getChild(e).getIndex(!0),0<=b){e=b;break a}e=-1}e+=1}if(a.type==CKEDITOR.NODE_TEXT){f=a;for(b=0;(f=f.getPrevious())&&f.type==CKEDITOR.NODE_TEXT;)b+=
 f.getText().replace(CKEDITOR.dom.selection.FILLING_CHAR_SEQUENCE,"").length;f=b;a.isEmpty()?(b=a.getPrevious(d),f?(e=f,a=b?b.getNext():a.getParent().getFirst()):(a=a.getParent(),e=b?b.getIndex(!0)+1:0)):e+=f}c.container=a;c.offset=e}function a(c,d){var e=d.getCustomData("cke-fillingChar");if(e){var f=c.container;e.equals(f)&&(c.offset-=CKEDITOR.dom.selection.FILLING_CHAR_SEQUENCE.length,0>=c.offset&&(c.offset=f.getIndex(),c.container=f.getParent()))}}var d=CKEDITOR.dom.walker.nodeType(CKEDITOR.NODE_TEXT,
 !0);return function(d){var e=this.collapsed,f={container:this.startContainer,offset:this.startOffset},b={container:this.endContainer,offset:this.endOffset};d&&(c(f),a(f,this.root),e||(c(b),a(b,this.root)));return{start:f.container.getAddress(d),end:e?null:b.container.getAddress(d),startOffset:f.offset,endOffset:b.offset,normalized:d,collapsed:e,is2:!0}}}(),moveToBookmark:function(c){if(c.is2){var a=this.document.getByAddress(c.start,c.normalized),d=c.startOffset,e=c.end&&this.document.getByAddress(c.end,
@@ -158,29 +158,29 @@ else{for(c=c.$;c.lastChild;)c=c.lastChild;c=new CKEDITOR.dom.node(c);c=c.getNext
 this.startOffset==this.endOffset-1?d.getChild(this.startOffset):d:d.getCommonAncestor(e);return a&&!d.is?d.getParent():d},optimize:function(){var c=this.startContainer,a=this.startOffset;c.type!=CKEDITOR.NODE_ELEMENT&&(a?a>=c.getLength()&&this.setStartAfter(c):this.setStartBefore(c));c=this.endContainer;a=this.endOffset;c.type!=CKEDITOR.NODE_ELEMENT&&(a?a>=c.getLength()&&this.setEndAfter(c):this.setEndBefore(c))},optimizeBookmark:function(){var c=this.startContainer,a=this.endContainer;c.is&&c.is("span")&&
 c.data("cke-bookmark")&&this.setStartAt(c,CKEDITOR.POSITION_BEFORE_START);a&&a.is&&a.is("span")&&a.data("cke-bookmark")&&this.setEndAt(a,CKEDITOR.POSITION_AFTER_END)},trim:function(c,a){var d=this.startContainer,e=this.startOffset,f=this.collapsed;if((!c||f)&&d&&d.type==CKEDITOR.NODE_TEXT){if(e)if(e>=d.getLength())e=d.getIndex()+1,d=d.getParent();else{var b=d.split(e),e=d.getIndex()+1,d=d.getParent();this.startContainer.equals(this.endContainer)?this.setEnd(b,this.endOffset-this.startOffset):d.equals(this.endContainer)&&
 (this.endOffset+=1)}else e=d.getIndex(),d=d.getParent();this.setStart(d,e);if(f){this.collapse(!0);return}}d=this.endContainer;e=this.endOffset;a||f||!d||d.type!=CKEDITOR.NODE_TEXT||(e?(e>=d.getLength()||d.split(e),e=d.getIndex()+1):e=d.getIndex(),d=d.getParent(),this.setEnd(d,e))},enlarge:function(c,a){function d(c){return c&&c.type==CKEDITOR.NODE_ELEMENT&&c.hasAttribute("contenteditable")?null:c}var e=new RegExp(/[^\s\ufeff]/);switch(c){case CKEDITOR.ENLARGE_INLINE:var f=1;case CKEDITOR.ENLARGE_ELEMENT:var b=
-function(c,a){var d=new CKEDITOR.dom.range(h);d.setStart(c,a);d.setEndAt(h,CKEDITOR.POSITION_BEFORE_END);var d=new CKEDITOR.dom.walker(d),f;for(d.guard=function(c){return!(c.type==CKEDITOR.NODE_ELEMENT&&c.isBlockBoundary())};f=d.next();){if(f.type!=CKEDITOR.NODE_TEXT)return!1;G=f!=c?f.getText():f.substring(a);if(e.test(G))return!1}return!0};if(this.collapsed)break;var g=this.getCommonAncestor(),h=this.root,k,m,l,x,B,D=!1,A,G;A=this.startContainer;var C=this.startOffset;A.type==CKEDITOR.NODE_TEXT?
-(C&&(A=!CKEDITOR.tools.trim(A.substring(0,C)).length&&A,D=!!A),A&&((x=A.getPrevious())||(l=A.getParent()))):(C&&(x=A.getChild(C-1)||A.getLast()),x||(l=A));for(l=d(l);l||x;){if(l&&!x){!B&&l.equals(g)&&(B=!0);if(f?l.isBlockBoundary():!h.contains(l))break;D&&"inline"==l.getComputedStyle("display")||(D=!1,B?k=l:this.setStartBefore(l));x=l.getPrevious()}for(;x;)if(A=!1,x.type==CKEDITOR.NODE_COMMENT)x=x.getPrevious();else{if(x.type==CKEDITOR.NODE_TEXT)G=x.getText(),e.test(G)&&(x=null),A=/[\s\ufeff]$/.test(G);
-else if((x.$.offsetWidth>(CKEDITOR.env.webkit?1:0)||a&&x.is("br"))&&!x.data("cke-bookmark"))if(D&&CKEDITOR.dtd.$removeEmpty[x.getName()]){G=x.getText();if(e.test(G))x=null;else for(var C=x.$.getElementsByTagName("*"),I=0,J;J=C[I++];)if(!CKEDITOR.dtd.$removeEmpty[J.nodeName.toLowerCase()]){x=null;break}x&&(A=!!G.length)}else x=null;A&&(D?B?k=l:l&&this.setStartBefore(l):D=!0);if(x){A=x.getPrevious();if(!l&&!A){l=x;x=null;break}x=A}else l=null}l&&(l=d(l.getParent()))}A=this.endContainer;C=this.endOffset;
-l=x=null;B=D=!1;A.type==CKEDITOR.NODE_TEXT?CKEDITOR.tools.trim(A.substring(C)).length?D=!0:(D=!A.getLength(),C==A.getLength()?(x=A.getNext())||(l=A.getParent()):b(A,C)&&(l=A.getParent())):(x=A.getChild(C))||(l=A);for(;l||x;){if(l&&!x){!B&&l.equals(g)&&(B=!0);if(f?l.isBlockBoundary():!h.contains(l))break;D&&"inline"==l.getComputedStyle("display")||(D=!1,B?m=l:l&&this.setEndAfter(l));x=l.getNext()}for(;x;){A=!1;if(x.type==CKEDITOR.NODE_TEXT)G=x.getText(),b(x,0)||(x=null),A=/^[\s\ufeff]/.test(G);else if(x.type==
-CKEDITOR.NODE_ELEMENT){if((0<x.$.offsetWidth||a&&x.is("br"))&&!x.data("cke-bookmark"))if(D&&CKEDITOR.dtd.$removeEmpty[x.getName()]){G=x.getText();if(e.test(G))x=null;else for(C=x.$.getElementsByTagName("*"),I=0;J=C[I++];)if(!CKEDITOR.dtd.$removeEmpty[J.nodeName.toLowerCase()]){x=null;break}x&&(A=!!G.length)}else x=null}else A=1;A&&D&&(B?m=l:this.setEndAfter(l));if(x){A=x.getNext();if(!l&&!A){l=x;x=null;break}x=A}else l=null}l&&(l=d(l.getParent()))}k&&m&&(g=k.contains(m)?m:k,this.setStartBefore(g),
-this.setEndAfter(g));break;case CKEDITOR.ENLARGE_BLOCK_CONTENTS:case CKEDITOR.ENLARGE_LIST_ITEM_CONTENTS:l=new CKEDITOR.dom.range(this.root);h=this.root;l.setStartAt(h,CKEDITOR.POSITION_AFTER_START);l.setEnd(this.startContainer,this.startOffset);l=new CKEDITOR.dom.walker(l);var F,M,H=CKEDITOR.dom.walker.blockBoundary(c==CKEDITOR.ENLARGE_LIST_ITEM_CONTENTS?{br:1}:null),E=null,Q=function(c){if(c.type==CKEDITOR.NODE_ELEMENT&&"false"==c.getAttribute("contenteditable"))if(E){if(E.equals(c)){E=null;return}}else E=
-c;else if(E)return;var a=H(c);a||(F=c);return a},f=function(c){var a=Q(c);!a&&c.is&&c.is("br")&&(M=c);return a};l.guard=Q;l=l.lastBackward();F=F||h;this.setStartAt(F,!F.is("br")&&(!l&&this.checkStartOfBlock()||l&&F.contains(l))?CKEDITOR.POSITION_AFTER_START:CKEDITOR.POSITION_AFTER_END);if(c==CKEDITOR.ENLARGE_LIST_ITEM_CONTENTS){l=this.clone();l=new CKEDITOR.dom.walker(l);var O=CKEDITOR.dom.walker.whitespaces(),P=CKEDITOR.dom.walker.bookmark();l.evaluator=function(c){return!O(c)&&!P(c)};if((l=l.previous())&&
-l.type==CKEDITOR.NODE_ELEMENT&&l.is("br"))break}l=this.clone();l.collapse();l.setEndAt(h,CKEDITOR.POSITION_BEFORE_END);l=new CKEDITOR.dom.walker(l);l.guard=c==CKEDITOR.ENLARGE_LIST_ITEM_CONTENTS?f:Q;F=E=M=null;l=l.lastForward();F=F||h;this.setEndAt(F,!l&&this.checkEndOfBlock()||l&&F.contains(l)?CKEDITOR.POSITION_BEFORE_END:CKEDITOR.POSITION_BEFORE_START);M&&this.setEndAfter(M)}},shrink:function(c,a,d){var e="boolean"===typeof d?d:d&&"boolean"===typeof d.shrinkOnBlockBoundary?d.shrinkOnBlockBoundary:
-!0,f=d&&d.skipBogus;if(!this.collapsed){c=c||CKEDITOR.SHRINK_TEXT;var b=this.clone(),g=this.startContainer,h=this.endContainer,k=this.startOffset,l=this.endOffset,m=d=1;g&&g.type==CKEDITOR.NODE_TEXT&&(k?k>=g.getLength()?b.setStartAfter(g):(b.setStartBefore(g),d=0):b.setStartBefore(g));h&&h.type==CKEDITOR.NODE_TEXT&&(l?l>=h.getLength()?b.setEndAfter(h):(b.setEndAfter(h),m=0):b.setEndBefore(h));var b=new CKEDITOR.dom.walker(b),x=CKEDITOR.dom.walker.bookmark(),B=CKEDITOR.dom.walker.bogus();b.evaluator=
-function(a){return a.type==(c==CKEDITOR.SHRINK_ELEMENT?CKEDITOR.NODE_ELEMENT:CKEDITOR.NODE_TEXT)};var D;b.guard=function(a,d){if(f&&B(a)||x(a))return!0;if(c==CKEDITOR.SHRINK_ELEMENT&&a.type==CKEDITOR.NODE_TEXT||d&&a.equals(D)||!1===e&&a.type==CKEDITOR.NODE_ELEMENT&&a.isBlockBoundary()||a.type==CKEDITOR.NODE_ELEMENT&&a.hasAttribute("contenteditable"))return!1;d||a.type!=CKEDITOR.NODE_ELEMENT||(D=a);return!0};d&&(g=b[c==CKEDITOR.SHRINK_ELEMENT?"lastForward":"next"]())&&this.setStartAt(g,a?CKEDITOR.POSITION_AFTER_START:
+function(c,a){var d=new CKEDITOR.dom.range(h);d.setStart(c,a);d.setEndAt(h,CKEDITOR.POSITION_BEFORE_END);var d=new CKEDITOR.dom.walker(d),f;for(d.guard=function(c){return!(c.type==CKEDITOR.NODE_ELEMENT&&c.isBlockBoundary())};f=d.next();){if(f.type!=CKEDITOR.NODE_TEXT)return!1;G=f!=c?f.getText():f.substring(a);if(e.test(G))return!1}return!0};if(this.collapsed)break;var g=this.getCommonAncestor(),h=this.root,l,m,k,u,C,A=!1,B,G;B=this.startContainer;var F=this.startOffset;B.type==CKEDITOR.NODE_TEXT?
+(F&&(B=!CKEDITOR.tools.trim(B.substring(0,F)).length&&B,A=!!B),B&&((u=B.getPrevious())||(k=B.getParent()))):(F&&(u=B.getChild(F-1)||B.getLast()),u||(k=B));for(k=d(k);k||u;){if(k&&!u){!C&&k.equals(g)&&(C=!0);if(f?k.isBlockBoundary():!h.contains(k))break;A&&"inline"==k.getComputedStyle("display")||(A=!1,C?l=k:this.setStartBefore(k));u=k.getPrevious()}for(;u;)if(B=!1,u.type==CKEDITOR.NODE_COMMENT)u=u.getPrevious();else{if(u.type==CKEDITOR.NODE_TEXT)G=u.getText(),e.test(G)&&(u=null),B=/[\s\ufeff]$/.test(G);
+else if((u.$.offsetWidth>(CKEDITOR.env.webkit?1:0)||a&&u.is("br"))&&!u.data("cke-bookmark"))if(A&&CKEDITOR.dtd.$removeEmpty[u.getName()]){G=u.getText();if(e.test(G))u=null;else for(var F=u.$.getElementsByTagName("*"),K=0,H;H=F[K++];)if(!CKEDITOR.dtd.$removeEmpty[H.nodeName.toLowerCase()]){u=null;break}u&&(B=!!G.length)}else u=null;B&&(A?C?l=k:k&&this.setStartBefore(k):A=!0);if(u){B=u.getPrevious();if(!k&&!B){k=u;u=null;break}u=B}else k=null}k&&(k=d(k.getParent()))}B=this.endContainer;F=this.endOffset;
+k=u=null;C=A=!1;B.type==CKEDITOR.NODE_TEXT?CKEDITOR.tools.trim(B.substring(F)).length?A=!0:(A=!B.getLength(),F==B.getLength()?(u=B.getNext())||(k=B.getParent()):b(B,F)&&(k=B.getParent())):(u=B.getChild(F))||(k=B);for(;k||u;){if(k&&!u){!C&&k.equals(g)&&(C=!0);if(f?k.isBlockBoundary():!h.contains(k))break;A&&"inline"==k.getComputedStyle("display")||(A=!1,C?m=k:k&&this.setEndAfter(k));u=k.getNext()}for(;u;){B=!1;if(u.type==CKEDITOR.NODE_TEXT)G=u.getText(),b(u,0)||(u=null),B=/^[\s\ufeff]/.test(G);else if(u.type==
+CKEDITOR.NODE_ELEMENT){if((0<u.$.offsetWidth||a&&u.is("br"))&&!u.data("cke-bookmark"))if(A&&CKEDITOR.dtd.$removeEmpty[u.getName()]){G=u.getText();if(e.test(G))u=null;else for(F=u.$.getElementsByTagName("*"),K=0;H=F[K++];)if(!CKEDITOR.dtd.$removeEmpty[H.nodeName.toLowerCase()]){u=null;break}u&&(B=!!G.length)}else u=null}else B=1;B&&A&&(C?m=k:this.setEndAfter(k));if(u){B=u.getNext();if(!k&&!B){k=u;u=null;break}u=B}else k=null}k&&(k=d(k.getParent()))}l&&m&&(g=l.contains(m)?m:l,this.setStartBefore(g),
+this.setEndAfter(g));break;case CKEDITOR.ENLARGE_BLOCK_CONTENTS:case CKEDITOR.ENLARGE_LIST_ITEM_CONTENTS:k=new CKEDITOR.dom.range(this.root);h=this.root;k.setStartAt(h,CKEDITOR.POSITION_AFTER_START);k.setEnd(this.startContainer,this.startOffset);k=new CKEDITOR.dom.walker(k);var E,N,J=CKEDITOR.dom.walker.blockBoundary(c==CKEDITOR.ENLARGE_LIST_ITEM_CONTENTS?{br:1}:null),L=null,D=function(c){if(c.type==CKEDITOR.NODE_ELEMENT&&"false"==c.getAttribute("contenteditable"))if(L){if(L.equals(c)){L=null;return}}else L=
+c;else if(L)return;var a=J(c);a||(E=c);return a},f=function(c){var a=D(c);!a&&c.is&&c.is("br")&&(N=c);return a};k.guard=D;k=k.lastBackward();E=E||h;this.setStartAt(E,!E.is("br")&&(!k&&this.checkStartOfBlock()||k&&E.contains(k))?CKEDITOR.POSITION_AFTER_START:CKEDITOR.POSITION_AFTER_END);if(c==CKEDITOR.ENLARGE_LIST_ITEM_CONTENTS){k=this.clone();k=new CKEDITOR.dom.walker(k);var I=CKEDITOR.dom.walker.whitespaces(),P=CKEDITOR.dom.walker.bookmark();k.evaluator=function(c){return!I(c)&&!P(c)};if((k=k.previous())&&
+k.type==CKEDITOR.NODE_ELEMENT&&k.is("br"))break}k=this.clone();k.collapse();k.setEndAt(h,CKEDITOR.POSITION_BEFORE_END);k=new CKEDITOR.dom.walker(k);k.guard=c==CKEDITOR.ENLARGE_LIST_ITEM_CONTENTS?f:D;E=L=N=null;k=k.lastForward();E=E||h;this.setEndAt(E,!k&&this.checkEndOfBlock()||k&&E.contains(k)?CKEDITOR.POSITION_BEFORE_END:CKEDITOR.POSITION_BEFORE_START);N&&this.setEndAfter(N)}},shrink:function(c,a,d){var e="boolean"===typeof d?d:d&&"boolean"===typeof d.shrinkOnBlockBoundary?d.shrinkOnBlockBoundary:
+!0,f=d&&d.skipBogus;if(!this.collapsed){c=c||CKEDITOR.SHRINK_TEXT;var b=this.clone(),g=this.startContainer,h=this.endContainer,k=this.startOffset,l=this.endOffset,m=d=1;g&&g.type==CKEDITOR.NODE_TEXT&&(k?k>=g.getLength()?b.setStartAfter(g):(b.setStartBefore(g),d=0):b.setStartBefore(g));h&&h.type==CKEDITOR.NODE_TEXT&&(l?l>=h.getLength()?b.setEndAfter(h):(b.setEndAfter(h),m=0):b.setEndBefore(h));var b=new CKEDITOR.dom.walker(b),u=CKEDITOR.dom.walker.bookmark(),C=CKEDITOR.dom.walker.bogus();b.evaluator=
+function(a){return a.type==(c==CKEDITOR.SHRINK_ELEMENT?CKEDITOR.NODE_ELEMENT:CKEDITOR.NODE_TEXT)};var A;b.guard=function(a,d){if(f&&C(a)||u(a))return!0;if(c==CKEDITOR.SHRINK_ELEMENT&&a.type==CKEDITOR.NODE_TEXT||d&&a.equals(A)||!1===e&&a.type==CKEDITOR.NODE_ELEMENT&&a.isBlockBoundary()||a.type==CKEDITOR.NODE_ELEMENT&&a.hasAttribute("contenteditable"))return!1;d||a.type!=CKEDITOR.NODE_ELEMENT||(A=a);return!0};d&&(g=b[c==CKEDITOR.SHRINK_ELEMENT?"lastForward":"next"]())&&this.setStartAt(g,a?CKEDITOR.POSITION_AFTER_START:
 CKEDITOR.POSITION_BEFORE_START);m&&(b.reset(),(b=b[c==CKEDITOR.SHRINK_ELEMENT?"lastBackward":"previous"]())&&this.setEndAt(b,a?CKEDITOR.POSITION_BEFORE_END:CKEDITOR.POSITION_AFTER_END));return!(!d&&!m)}},insertNode:function(c){this.optimizeBookmark();this.trim(!1,!0);var a=this.startContainer,d=a.getChild(this.startOffset);d?c.insertBefore(d):a.append(c);c.getParent()&&c.getParent().equals(this.endContainer)&&this.endOffset++;this.setStartBefore(c)},moveToPosition:function(c,a){this.setStartAt(c,
 a);this.collapse(!0)},moveToRange:function(c){this.setStart(c.startContainer,c.startOffset);this.setEnd(c.endContainer,c.endOffset)},selectNodeContents:function(c){this.setStart(c,0);this.setEnd(c,c.type==CKEDITOR.NODE_TEXT?c.getLength():c.getChildCount())},setStart:function(c,a){c.type==CKEDITOR.NODE_ELEMENT&&CKEDITOR.dtd.$empty[c.getName()]&&(a=c.getIndex(),c=c.getParent());this._setStartContainer(c);this.startOffset=a;this.endContainer||(this._setEndContainer(c),this.endOffset=a);b(this)},setEnd:function(c,
 a){c.type==CKEDITOR.NODE_ELEMENT&&CKEDITOR.dtd.$empty[c.getName()]&&(a=c.getIndex()+1,c=c.getParent());this._setEndContainer(c);this.endOffset=a;this.startContainer||(this._setStartContainer(c),this.startOffset=a);b(this)},setStartAfter:function(c){this.setStart(c.getParent(),c.getIndex()+1)},setStartBefore:function(c){this.setStart(c.getParent(),c.getIndex())},setEndAfter:function(c){this.setEnd(c.getParent(),c.getIndex()+1)},setEndBefore:function(c){this.setEnd(c.getParent(),c.getIndex())},setStartAt:function(c,
 a){switch(a){case CKEDITOR.POSITION_AFTER_START:this.setStart(c,0);break;case CKEDITOR.POSITION_BEFORE_END:c.type==CKEDITOR.NODE_TEXT?this.setStart(c,c.getLength()):this.setStart(c,c.getChildCount());break;case CKEDITOR.POSITION_BEFORE_START:this.setStartBefore(c);break;case CKEDITOR.POSITION_AFTER_END:this.setStartAfter(c)}b(this)},setEndAt:function(c,a){switch(a){case CKEDITOR.POSITION_AFTER_START:this.setEnd(c,0);break;case CKEDITOR.POSITION_BEFORE_END:c.type==CKEDITOR.NODE_TEXT?this.setEnd(c,
-c.getLength()):this.setEnd(c,c.getChildCount());break;case CKEDITOR.POSITION_BEFORE_START:this.setEndBefore(c);break;case CKEDITOR.POSITION_AFTER_END:this.setEndAfter(c)}b(this)},fixBlock:function(c,a){var d=this.createBookmark(),e=this.document.createElement(a);this.collapse(c);this.enlarge(CKEDITOR.ENLARGE_BLOCK_CONTENTS);this.extractContents().appendTo(e);e.trim();this.insertNode(e);var f=e.getBogus();f&&f.remove();e.appendBogus();this.moveToBookmark(d);return e},splitBlock:function(c,a){var d=
-new CKEDITOR.dom.elementPath(this.startContainer,this.root),e=new CKEDITOR.dom.elementPath(this.endContainer,this.root),f=d.block,b=e.block,g=null;if(!d.blockLimit.equals(e.blockLimit))return null;"br"!=c&&(f||(f=this.fixBlock(!0,c),b=(new CKEDITOR.dom.elementPath(this.endContainer,this.root)).block),b||(b=this.fixBlock(!1,c)));d=f&&this.checkStartOfBlock();e=b&&this.checkEndOfBlock();this.deleteContents();f&&f.equals(b)&&(e?(g=new CKEDITOR.dom.elementPath(this.startContainer,this.root),this.moveToPosition(b,
-CKEDITOR.POSITION_AFTER_END),b=null):d?(g=new CKEDITOR.dom.elementPath(this.startContainer,this.root),this.moveToPosition(f,CKEDITOR.POSITION_BEFORE_START),f=null):(b=this.splitElement(f,a||!1),f.is("ul","ol")||f.appendBogus()));return{previousBlock:f,nextBlock:b,wasStartOfBlock:d,wasEndOfBlock:e,elementPath:g}},splitElement:function(c,a){if(!this.collapsed)return null;this.setEndAt(c,CKEDITOR.POSITION_BEFORE_END);var d=this.extractContents(!1,a||!1),e=c.clone(!1,a||!1);d.appendTo(e);e.insertAfter(c);
-this.moveToPosition(c,CKEDITOR.POSITION_AFTER_END);return e},removeEmptyBlocksAtEnd:function(){function a(c){return function(a){return d(a)||e(a)||a.type==CKEDITOR.NODE_ELEMENT&&a.isEmptyInlineRemoveable()||c.is("table")&&a.is("caption")?!1:!0}}var d=CKEDITOR.dom.walker.whitespaces(),e=CKEDITOR.dom.walker.bookmark(!1);return function(d){for(var e=this.createBookmark(),f=this[d?"endPath":"startPath"](),b=f.block||f.blockLimit,g;b&&!b.equals(f.root)&&!b.getFirst(a(b));)g=b.getParent(),this[d?"setEndAt":
+c.getLength()):this.setEnd(c,c.getChildCount());break;case CKEDITOR.POSITION_BEFORE_START:this.setEndBefore(c);break;case CKEDITOR.POSITION_AFTER_END:this.setEndAfter(c)}b(this)},fixBlock:function(c,a){var d=this.createBookmark(),e=this.document.createElement(a);this.collapse(c);this.enlarge(CKEDITOR.ENLARGE_BLOCK_CONTENTS);this.extractContents().appendTo(e);e.trim();this.insertNode(e);var f=e.getBogus();f&&f.remove();e.appendBogus();this.moveToBookmark(d);return e},splitBlock:function(a,d){var e=
+new CKEDITOR.dom.elementPath(this.startContainer,this.root),f=new CKEDITOR.dom.elementPath(this.endContainer,this.root),b=e.block,g=f.block,h=null;if(!e.blockLimit.equals(f.blockLimit))return null;"br"!=a&&(b||(b=this.fixBlock(!0,a),g=(new CKEDITOR.dom.elementPath(this.endContainer,this.root)).block),g||(g=this.fixBlock(!1,a)));e=b&&this.checkStartOfBlock();f=g&&this.checkEndOfBlock();this.deleteContents();b&&b.equals(g)&&(f?(h=new CKEDITOR.dom.elementPath(this.startContainer,this.root),this.moveToPosition(g,
+CKEDITOR.POSITION_AFTER_END),g=null):e?(h=new CKEDITOR.dom.elementPath(this.startContainer,this.root),this.moveToPosition(b,CKEDITOR.POSITION_BEFORE_START),b=null):(g=this.splitElement(b,d||!1),b.is("ul","ol")||b.appendBogus()));return{previousBlock:b,nextBlock:g,wasStartOfBlock:e,wasEndOfBlock:f,elementPath:h}},splitElement:function(a,d){if(!this.collapsed)return null;this.setEndAt(a,CKEDITOR.POSITION_BEFORE_END);var e=this.extractContents(!1,d||!1),f=a.clone(!1,d||!1);e.appendTo(f);f.insertAfter(a);
+this.moveToPosition(a,CKEDITOR.POSITION_AFTER_END);return f},removeEmptyBlocksAtEnd:function(){function a(c){return function(a){return d(a)||e(a)||a.type==CKEDITOR.NODE_ELEMENT&&a.isEmptyInlineRemoveable()||c.is("table")&&a.is("caption")?!1:!0}}var d=CKEDITOR.dom.walker.whitespaces(),e=CKEDITOR.dom.walker.bookmark(!1);return function(d){for(var e=this.createBookmark(),f=this[d?"endPath":"startPath"](),b=f.block||f.blockLimit,g;b&&!b.equals(f.root)&&!b.getFirst(a(b));)g=b.getParent(),this[d?"setEndAt":
 "setStartAt"](b,CKEDITOR.POSITION_AFTER_END),b.remove(1),b=g;this.moveToBookmark(e)}}(),startPath:function(){return new CKEDITOR.dom.elementPath(this.startContainer,this.root)},endPath:function(){return new CKEDITOR.dom.elementPath(this.endContainer,this.root)},checkBoundaryOfElement:function(a,d){var e=d==CKEDITOR.START,b=this.clone();b.collapse(e);b[e?"setStartAt":"setEndAt"](a,e?CKEDITOR.POSITION_AFTER_START:CKEDITOR.POSITION_BEFORE_END);b=new CKEDITOR.dom.walker(b);b.evaluator=f(e);return b[e?
-"checkBackward":"checkForward"]()},checkStartOfBlock:function(){var a=this.startContainer,d=this.startOffset;CKEDITOR.env.ie&&d&&a.type==CKEDITOR.NODE_TEXT&&(a=CKEDITOR.tools.ltrim(a.substring(0,d)),l.test(a)&&this.trim(0,1));this.trim();a=new CKEDITOR.dom.elementPath(this.startContainer,this.root);d=this.clone();d.collapse(!0);d.setStartAt(a.block||a.blockLimit,CKEDITOR.POSITION_AFTER_START);a=new CKEDITOR.dom.walker(d);a.evaluator=g();return a.checkBackward()},checkEndOfBlock:function(){var a=this.endContainer,
-d=this.endOffset;CKEDITOR.env.ie&&a.type==CKEDITOR.NODE_TEXT&&(a=CKEDITOR.tools.rtrim(a.substring(d)),l.test(a)&&this.trim(1,0));this.trim();a=new CKEDITOR.dom.elementPath(this.endContainer,this.root);d=this.clone();d.collapse(!1);d.setEndAt(a.block||a.blockLimit,CKEDITOR.POSITION_BEFORE_END);a=new CKEDITOR.dom.walker(d);a.evaluator=g();return a.checkForward()},getPreviousNode:function(a,d,e){var f=this.clone();f.collapse(1);f.setStartAt(e||this.root,CKEDITOR.POSITION_AFTER_START);e=new CKEDITOR.dom.walker(f);
+"checkBackward":"checkForward"]()},checkStartOfBlock:function(){var a=this.startContainer,d=this.startOffset;CKEDITOR.env.ie&&d&&a.type==CKEDITOR.NODE_TEXT&&(a=CKEDITOR.tools.ltrim(a.substring(0,d)),k.test(a)&&this.trim(0,1));this.trim();a=new CKEDITOR.dom.elementPath(this.startContainer,this.root);d=this.clone();d.collapse(!0);d.setStartAt(a.block||a.blockLimit,CKEDITOR.POSITION_AFTER_START);a=new CKEDITOR.dom.walker(d);a.evaluator=g();return a.checkBackward()},checkEndOfBlock:function(){var a=this.endContainer,
+d=this.endOffset;CKEDITOR.env.ie&&a.type==CKEDITOR.NODE_TEXT&&(a=CKEDITOR.tools.rtrim(a.substring(d)),k.test(a)&&this.trim(1,0));this.trim();a=new CKEDITOR.dom.elementPath(this.endContainer,this.root);d=this.clone();d.collapse(!1);d.setEndAt(a.block||a.blockLimit,CKEDITOR.POSITION_BEFORE_END);a=new CKEDITOR.dom.walker(d);a.evaluator=g();return a.checkForward()},getPreviousNode:function(a,d,e){var f=this.clone();f.collapse(1);f.setStartAt(e||this.root,CKEDITOR.POSITION_AFTER_START);e=new CKEDITOR.dom.walker(f);
 e.evaluator=a;e.guard=d;return e.previous()},getNextNode:function(a,d,e){var f=this.clone();f.collapse();f.setEndAt(e||this.root,CKEDITOR.POSITION_BEFORE_END);e=new CKEDITOR.dom.walker(f);e.evaluator=a;e.guard=d;return e.next()},checkReadOnly:function(){function a(c,d){for(;c;){if(c.type==CKEDITOR.NODE_ELEMENT){if("false"==c.getAttribute("contentEditable")&&!c.data("cke-editable"))return 0;if(c.is("html")||"true"==c.getAttribute("contentEditable")&&(c.contains(d)||c.equals(d)))break}c=c.getParent()}return 1}
-return function(){var d=this.startContainer,e=this.endContainer;return!(a(d,e)&&a(e,d))}}(),moveToElementEditablePosition:function(a,d){if(a.type==CKEDITOR.NODE_ELEMENT&&!a.isEditable(!1))return this.moveToPosition(a,d?CKEDITOR.POSITION_AFTER_END:CKEDITOR.POSITION_BEFORE_START),!0;for(var f=0;a;){if(a.type==CKEDITOR.NODE_TEXT){d&&this.endContainer&&this.checkEndOfBlock()&&l.test(a.getText())?this.moveToPosition(a,CKEDITOR.POSITION_BEFORE_START):this.moveToPosition(a,d?CKEDITOR.POSITION_AFTER_END:
+return function(){var d=this.startContainer,e=this.endContainer;return!(a(d,e)&&a(e,d))}}(),moveToElementEditablePosition:function(a,d){if(a.type==CKEDITOR.NODE_ELEMENT&&!a.isEditable(!1))return this.moveToPosition(a,d?CKEDITOR.POSITION_AFTER_END:CKEDITOR.POSITION_BEFORE_START),!0;for(var f=0;a;){if(a.type==CKEDITOR.NODE_TEXT){d&&this.endContainer&&this.checkEndOfBlock()&&k.test(a.getText())?this.moveToPosition(a,CKEDITOR.POSITION_BEFORE_START):this.moveToPosition(a,d?CKEDITOR.POSITION_AFTER_END:
 CKEDITOR.POSITION_BEFORE_START);f=1;break}if(a.type==CKEDITOR.NODE_ELEMENT)if(a.isEditable())this.moveToPosition(a,d?CKEDITOR.POSITION_BEFORE_END:CKEDITOR.POSITION_AFTER_START),f=1;else if(d&&a.is("br")&&this.endContainer&&this.checkEndOfBlock())this.moveToPosition(a,CKEDITOR.POSITION_BEFORE_START);else if("false"==a.getAttribute("contenteditable")&&a.is(CKEDITOR.dtd.$block))return this.setStartBefore(a),this.setEndAfter(a),!0;var b=a,g=f,h=void 0;b.type==CKEDITOR.NODE_ELEMENT&&b.isEditable(!1)&&
 (h=b[d?"getLast":"getFirst"](e));g||h||(h=b[d?"getPrevious":"getNext"](e));a=h}return!!f},moveToClosestEditablePosition:function(a,d){var e,f=0,b,g,h=[CKEDITOR.POSITION_AFTER_END,CKEDITOR.POSITION_BEFORE_START];a?(e=new CKEDITOR.dom.range(this.root),e.moveToPosition(a,h[d?0:1])):e=this.clone();if(a&&!a.is(CKEDITOR.dtd.$block))f=1;else if(b=e[d?"getNextEditableNode":"getPreviousEditableNode"]())f=1,(g=b.type==CKEDITOR.NODE_ELEMENT)&&b.is(CKEDITOR.dtd.$block)&&"false"==b.getAttribute("contenteditable")?
 (e.setStartAt(b,CKEDITOR.POSITION_BEFORE_START),e.setEndAt(b,CKEDITOR.POSITION_AFTER_END)):!CKEDITOR.env.needsBrFiller&&g&&b.is(CKEDITOR.dom.walker.validEmptyBlockContainers)?(e.setEnd(b,0),e.collapse()):e.moveToPosition(b,h[d?1:0]);f&&this.moveToRange(e);return!!f},moveToElementEditStart:function(a){return this.moveToElementEditablePosition(a)},moveToElementEditEnd:function(a){return this.moveToElementEditablePosition(a,!0)},getEnclosedNode:function(){var a=this.clone();a.optimize();if(a.startContainer.type!=
@@ -197,179 +197,179 @@ d){var e=this.getCommonAncestor(),f=this.getBoundaryNodes(),b=[],g,h,k,l;if(e&&e
 c.enlarge(CKEDITOR.ENLARGE_ELEMENT);if(d){var f=new CKEDITOR.dom.range(c.root),e=new CKEDITOR.dom.walker(f),b=CKEDITOR.dom.walker.whitespaces();f.setStart(d.endContainer,d.endOffset);f.setEnd(c.startContainer,c.startOffset);for(f=e.next();b(f)||c.endContainer.equals(f);)f=e.next();e=!f}e?d.setEnd(c.endContainer,c.endOffset):a.push(c);return a},[])}})();CKEDITOR.POSITION_AFTER_START=1;CKEDITOR.POSITION_BEFORE_END=2;CKEDITOR.POSITION_BEFORE_START=3;CKEDITOR.POSITION_AFTER_END=4;CKEDITOR.ENLARGE_ELEMENT=
 1;CKEDITOR.ENLARGE_BLOCK_CONTENTS=2;CKEDITOR.ENLARGE_LIST_ITEM_CONTENTS=3;CKEDITOR.ENLARGE_INLINE=4;CKEDITOR.START=1;CKEDITOR.END=2;CKEDITOR.SHRINK_ELEMENT=1;CKEDITOR.SHRINK_TEXT=2;"use strict";(function(){function b(a){1>arguments.length||(this.range=a,this.forceBrBreak=0,this.enlargeBr=1,this.enforceRealBlocks=0,this._||(this._={}))}function h(a){var c=[];a.forEach(function(a){if("true"==a.getAttribute("contenteditable"))return c.push(a),!1},CKEDITOR.NODE_ELEMENT,!0);return c}function g(a,c,d,f){a:{null==
 f&&(f=h(d));for(var b;b=f.shift();)if(b.getDtd().p){f={element:b,remaining:f};break a}f=null}if(!f)return 0;if((b=CKEDITOR.filter.instances[f.element.data("cke-filter")])&&!b.check(c))return g(a,c,d,f.remaining);c=new CKEDITOR.dom.range(f.element);c.selectNodeContents(f.element);c=c.createIterator();c.enlargeBr=a.enlargeBr;c.enforceRealBlocks=a.enforceRealBlocks;c.activeFilter=c.filter=b;a._.nestedEditable={element:f.element,container:d,remaining:f.remaining,iterator:c};return 1}function f(a,c,d){if(!c)return!1;
-a=a.clone();a.collapse(!d);return a.checkBoundaryOfElement(c,d?CKEDITOR.START:CKEDITOR.END)}var a=/^[\r\n\t ]+$/,m=CKEDITOR.dom.walker.bookmark(!1,!0),k=CKEDITOR.dom.walker.whitespaces(!0),l=function(a){return m(a)&&k(a)},d={dd:1,dt:1,li:1};b.prototype={getNextParagraph:function(e){var c,b,h,k,r;e=e||"p";if(this._.nestedEditable){if(c=this._.nestedEditable.iterator.getNextParagraph(e))return this.activeFilter=this._.nestedEditable.iterator.activeFilter,c;this.activeFilter=this.filter;if(g(this,e,
-this._.nestedEditable.container,this._.nestedEditable.remaining))return this.activeFilter=this._.nestedEditable.iterator.activeFilter,this._.nestedEditable.iterator.getNextParagraph(e);this._.nestedEditable=null}if(!this.range.root.getDtd()[e])return null;if(!this._.started){var p=this.range.clone();b=p.startPath();var q=p.endPath(),u=!p.collapsed&&f(p,b.block),t=!p.collapsed&&f(p,q.block,1);p.shrink(CKEDITOR.SHRINK_ELEMENT,!0);u&&p.setStartAt(b.block,CKEDITOR.POSITION_BEFORE_END);t&&p.setEndAt(q.block,
-CKEDITOR.POSITION_AFTER_START);b=p.endContainer.hasAscendant("pre",!0)||p.startContainer.hasAscendant("pre",!0);p.enlarge(this.forceBrBreak&&!b||!this.enlargeBr?CKEDITOR.ENLARGE_LIST_ITEM_CONTENTS:CKEDITOR.ENLARGE_BLOCK_CONTENTS);p.collapsed||(b=new CKEDITOR.dom.walker(p.clone()),q=CKEDITOR.dom.walker.bookmark(!0,!0),b.evaluator=q,this._.nextNode=b.next(),b=new CKEDITOR.dom.walker(p.clone()),b.evaluator=q,b=b.previous(),this._.lastNode=b.getNextSourceNode(!0,null,p.root),this._.lastNode&&this._.lastNode.type==
-CKEDITOR.NODE_TEXT&&!CKEDITOR.tools.trim(this._.lastNode.getText())&&this._.lastNode.getParent().isBlockBoundary()&&(q=this.range.clone(),q.moveToPosition(this._.lastNode,CKEDITOR.POSITION_AFTER_END),q.checkEndOfBlock()&&(q=new CKEDITOR.dom.elementPath(q.endContainer,q.root),this._.lastNode=(q.block||q.blockLimit).getNextSourceNode(!0))),this._.lastNode&&p.root.contains(this._.lastNode)||(this._.lastNode=this._.docEndMarker=p.document.createText(""),this._.lastNode.insertAfter(b)),p=null);this._.started=
-1;b=p}q=this._.nextNode;p=this._.lastNode;for(this._.nextNode=null;q;){var u=0,t=q.hasAscendant("pre"),y=q.type!=CKEDITOR.NODE_ELEMENT,v=0;if(y)q.type==CKEDITOR.NODE_TEXT&&a.test(q.getText())&&(y=0);else{var x=q.getName();if(CKEDITOR.dtd.$block[x]&&"false"==q.getAttribute("contenteditable")){c=q;g(this,e,c);break}else if(q.isBlockBoundary(this.forceBrBreak&&!t&&{br:1})){if("br"==x)y=1;else if(!b&&!q.getChildCount()&&"hr"!=x){c=q;h=q.equals(p);break}b&&(b.setEndAt(q,CKEDITOR.POSITION_BEFORE_START),
-"br"!=x&&(this._.nextNode=q));u=1}else{if(q.getFirst()){b||(b=this.range.clone(),b.setStartAt(q,CKEDITOR.POSITION_BEFORE_START));q=q.getFirst();continue}y=1}}y&&!b&&(b=this.range.clone(),b.setStartAt(q,CKEDITOR.POSITION_BEFORE_START));h=(!u||y)&&q.equals(p);if(b&&!u)for(;!q.getNext(l)&&!h;){x=q.getParent();if(x.isBlockBoundary(this.forceBrBreak&&!t&&{br:1})){u=1;y=0;h||x.equals(p);b.setEndAt(x,CKEDITOR.POSITION_BEFORE_END);break}q=x;y=1;h=q.equals(p);v=1}y&&b.setEndAt(q,CKEDITOR.POSITION_AFTER_END);
-q=this._getNextSourceNode(q,v,p);if((h=!q)||u&&b)break}if(!c){if(!b)return this._.docEndMarker&&this._.docEndMarker.remove(),this._.nextNode=null;c=new CKEDITOR.dom.elementPath(b.startContainer,b.root);q=c.blockLimit;u={div:1,th:1,td:1};c=c.block;!c&&q&&!this.enforceRealBlocks&&u[q.getName()]&&b.checkStartOfBlock()&&b.checkEndOfBlock()&&!q.equals(b.root)?c=q:!c||this.enforceRealBlocks&&c.is(d)?(c=this.range.document.createElement(e),b.extractContents().appendTo(c),c.trim(),b.insertNode(c),k=r=!0):
-"li"!=c.getName()?b.checkStartOfBlock()&&b.checkEndOfBlock()||(c=c.clone(!1),b.extractContents().appendTo(c),c.trim(),r=b.splitBlock(),k=!r.wasStartOfBlock,r=!r.wasEndOfBlock,b.insertNode(c)):h||(this._.nextNode=c.equals(p)?null:this._getNextSourceNode(b.getBoundaryNodes().endNode,1,p))}k&&(k=c.getPrevious())&&k.type==CKEDITOR.NODE_ELEMENT&&("br"==k.getName()?k.remove():k.getLast()&&"br"==k.getLast().$.nodeName.toLowerCase()&&k.getLast().remove());r&&(k=c.getLast())&&k.type==CKEDITOR.NODE_ELEMENT&&
-"br"==k.getName()&&(!CKEDITOR.env.needsBrFiller||k.getPrevious(m)||k.getNext(m))&&k.remove();this._.nextNode||(this._.nextNode=h||c.equals(p)||!p?null:this._getNextSourceNode(c,1,p));return c},_getNextSourceNode:function(a,c,d){function f(a){return!(a.equals(d)||a.equals(b))}var b=this.range.root;for(a=a.getNextSourceNode(c,null,f);!m(a);)a=a.getNextSourceNode(c,null,f);return a}};CKEDITOR.dom.range.prototype.createIterator=function(){return new b(this)}})();CKEDITOR.command=function(b,h){this.uiItems=
+a=a.clone();a.collapse(!d);return a.checkBoundaryOfElement(c,d?CKEDITOR.START:CKEDITOR.END)}var a=/^[\r\n\t ]+$/,m=CKEDITOR.dom.walker.bookmark(!1,!0),l=CKEDITOR.dom.walker.whitespaces(!0),k=function(a){return m(a)&&l(a)},d={dd:1,dt:1,li:1};b.prototype={getNextParagraph:function(e){var c,b,h,l,p;e=e||"p";if(this._.nestedEditable){if(c=this._.nestedEditable.iterator.getNextParagraph(e))return this.activeFilter=this._.nestedEditable.iterator.activeFilter,c;this.activeFilter=this.filter;if(g(this,e,
+this._.nestedEditable.container,this._.nestedEditable.remaining))return this.activeFilter=this._.nestedEditable.iterator.activeFilter,this._.nestedEditable.iterator.getNextParagraph(e);this._.nestedEditable=null}if(!this.range.root.getDtd()[e])return null;if(!this._.started){var r=this.range.clone();b=r.startPath();var q=r.endPath(),w=!r.collapsed&&f(r,b.block),t=!r.collapsed&&f(r,q.block,1);r.shrink(CKEDITOR.SHRINK_ELEMENT,!0);w&&r.setStartAt(b.block,CKEDITOR.POSITION_BEFORE_END);t&&r.setEndAt(q.block,
+CKEDITOR.POSITION_AFTER_START);b=r.endContainer.hasAscendant("pre",!0)||r.startContainer.hasAscendant("pre",!0);r.enlarge(this.forceBrBreak&&!b||!this.enlargeBr?CKEDITOR.ENLARGE_LIST_ITEM_CONTENTS:CKEDITOR.ENLARGE_BLOCK_CONTENTS);r.collapsed||(b=new CKEDITOR.dom.walker(r.clone()),q=CKEDITOR.dom.walker.bookmark(!0,!0),b.evaluator=q,this._.nextNode=b.next(),b=new CKEDITOR.dom.walker(r.clone()),b.evaluator=q,b=b.previous(),this._.lastNode=b.getNextSourceNode(!0,null,r.root),this._.lastNode&&this._.lastNode.type==
+CKEDITOR.NODE_TEXT&&!CKEDITOR.tools.trim(this._.lastNode.getText())&&this._.lastNode.getParent().isBlockBoundary()&&(q=this.range.clone(),q.moveToPosition(this._.lastNode,CKEDITOR.POSITION_AFTER_END),q.checkEndOfBlock()&&(q=new CKEDITOR.dom.elementPath(q.endContainer,q.root),this._.lastNode=(q.block||q.blockLimit).getNextSourceNode(!0))),this._.lastNode&&r.root.contains(this._.lastNode)||(this._.lastNode=this._.docEndMarker=r.document.createText(""),this._.lastNode.insertAfter(b)),r=null);this._.started=
+1;b=r}q=this._.nextNode;r=this._.lastNode;for(this._.nextNode=null;q;){var w=0,t=q.hasAscendant("pre"),z=q.type!=CKEDITOR.NODE_ELEMENT,y=0;if(z)q.type==CKEDITOR.NODE_TEXT&&a.test(q.getText())&&(z=0);else{var u=q.getName();if(CKEDITOR.dtd.$block[u]&&"false"==q.getAttribute("contenteditable")){c=q;g(this,e,c);break}else if(q.isBlockBoundary(this.forceBrBreak&&!t&&{br:1})){if("br"==u)z=1;else if(!b&&!q.getChildCount()&&"hr"!=u){c=q;h=q.equals(r);break}b&&(b.setEndAt(q,CKEDITOR.POSITION_BEFORE_START),
+"br"!=u&&(this._.nextNode=q));w=1}else{if(q.getFirst()){b||(b=this.range.clone(),b.setStartAt(q,CKEDITOR.POSITION_BEFORE_START));q=q.getFirst();continue}z=1}}z&&!b&&(b=this.range.clone(),b.setStartAt(q,CKEDITOR.POSITION_BEFORE_START));h=(!w||z)&&q.equals(r);if(b&&!w)for(;!q.getNext(k)&&!h;){u=q.getParent();if(u.isBlockBoundary(this.forceBrBreak&&!t&&{br:1})){w=1;z=0;h||u.equals(r);b.setEndAt(u,CKEDITOR.POSITION_BEFORE_END);break}q=u;z=1;h=q.equals(r);y=1}z&&b.setEndAt(q,CKEDITOR.POSITION_AFTER_END);
+q=this._getNextSourceNode(q,y,r);if((h=!q)||w&&b)break}if(!c){if(!b)return this._.docEndMarker&&this._.docEndMarker.remove(),this._.nextNode=null;c=new CKEDITOR.dom.elementPath(b.startContainer,b.root);q=c.blockLimit;w={div:1,th:1,td:1};c=c.block;!c&&q&&!this.enforceRealBlocks&&w[q.getName()]&&b.checkStartOfBlock()&&b.checkEndOfBlock()&&!q.equals(b.root)?c=q:!c||this.enforceRealBlocks&&c.is(d)?(c=this.range.document.createElement(e),b.extractContents().appendTo(c),c.trim(),b.insertNode(c),l=p=!0):
+"li"!=c.getName()?b.checkStartOfBlock()&&b.checkEndOfBlock()||(c=c.clone(!1),b.extractContents().appendTo(c),c.trim(),p=b.splitBlock(),l=!p.wasStartOfBlock,p=!p.wasEndOfBlock,b.insertNode(c)):h||(this._.nextNode=c.equals(r)?null:this._getNextSourceNode(b.getBoundaryNodes().endNode,1,r))}l&&(l=c.getPrevious())&&l.type==CKEDITOR.NODE_ELEMENT&&("br"==l.getName()?l.remove():l.getLast()&&"br"==l.getLast().$.nodeName.toLowerCase()&&l.getLast().remove());p&&(l=c.getLast())&&l.type==CKEDITOR.NODE_ELEMENT&&
+"br"==l.getName()&&(!CKEDITOR.env.needsBrFiller||l.getPrevious(m)||l.getNext(m))&&l.remove();this._.nextNode||(this._.nextNode=h||c.equals(r)||!r?null:this._getNextSourceNode(c,1,r));return c},_getNextSourceNode:function(a,c,d){function f(a){return!(a.equals(d)||a.equals(b))}var b=this.range.root;for(a=a.getNextSourceNode(c,null,f);!m(a);)a=a.getNextSourceNode(c,null,f);return a}};CKEDITOR.dom.range.prototype.createIterator=function(){return new b(this)}})();CKEDITOR.command=function(b,h){this.uiItems=
 [];this.exec=function(f){if(this.state==CKEDITOR.TRISTATE_DISABLED||!this.checkAllowed())return!1;this.editorFocus&&b.focus();return!1===this.fire("exec")?!0:!1!==h.exec.call(this,b,f)};this.refresh=function(f,a){if(!this.readOnly&&f.readOnly)return!0;if(this.context&&!a.isContextFor(this.context)||!this.checkAllowed(!0))return this.disable(),!0;this.startDisabled||this.enable();this.modes&&!this.modes[f.mode]&&this.disable();return!1===this.fire("refresh",{editor:f,path:a})?!0:h.refresh&&!1!==h.refresh.apply(this,
 arguments)};var g;this.checkAllowed=function(f){return f||"boolean"!=typeof g?g=b.activeFilter.checkFeature(this):g};CKEDITOR.tools.extend(this,h,{modes:{wysiwyg:1},editorFocus:1,contextSensitive:!!h.context,state:CKEDITOR.TRISTATE_DISABLED});CKEDITOR.event.call(this)};CKEDITOR.command.prototype={enable:function(){this.state==CKEDITOR.TRISTATE_DISABLED&&this.checkAllowed()&&this.setState(this.preserveState&&"undefined"!=typeof this.previousState?this.previousState:CKEDITOR.TRISTATE_OFF)},disable:function(){this.setState(CKEDITOR.TRISTATE_DISABLED)},
 setState:function(b){if(this.state==b||b!=CKEDITOR.TRISTATE_DISABLED&&!this.checkAllowed())return!1;this.previousState=this.state;this.state=b;this.fire("state");return!0},toggleState:function(){this.state==CKEDITOR.TRISTATE_OFF?this.setState(CKEDITOR.TRISTATE_ON):this.state==CKEDITOR.TRISTATE_ON&&this.setState(CKEDITOR.TRISTATE_OFF)}};CKEDITOR.event.implementOn(CKEDITOR.command.prototype);CKEDITOR.ENTER_P=1;CKEDITOR.ENTER_BR=2;CKEDITOR.ENTER_DIV=3;CKEDITOR.config={customConfig:"config.js",autoUpdateElement:!0,
 language:"",defaultLanguage:"en",contentsLangDirection:"",enterMode:CKEDITOR.ENTER_P,forceEnterMode:!1,shiftEnterMode:CKEDITOR.ENTER_BR,docType:"\x3c!DOCTYPE html\x3e",bodyId:"",bodyClass:"",fullPage:!1,height:200,contentsCss:CKEDITOR.getUrl("contents.css"),extraPlugins:"",removePlugins:"",protectedSource:[],tabIndex:0,width:"",baseFloatZIndex:1E4,blockedKeystrokes:[CKEDITOR.CTRL+66,CKEDITOR.CTRL+73,CKEDITOR.CTRL+85]};(function(){function b(a,c,d,e,f){var b,g;a=[];for(b in c){g=c[b];g="boolean"==
-typeof g?{}:"function"==typeof g?{match:g}:I(g);"$"!=b.charAt(0)&&(g.elements=b);d&&(g.featureName=d.toLowerCase());var h=g;h.elements=k(h.elements,/\s+/)||null;h.propertiesOnly=h.propertiesOnly||!0===h.elements;var n=/\s*,\s*/,l=void 0;for(l in M){h[l]=k(h[l],n)||null;var q=h,m=H[l],E=k(h[H[l]],n),x=h[l],B=[],w=!0,t=void 0;E?w=!1:E={};for(t in x)"!"==t.charAt(0)&&(t=t.slice(1),B.push(t),E[t]=!0,w=!1);for(;t=B.pop();)x[t]=x["!"+t],delete x["!"+t];q[m]=(w?!1:E)||null}h.match=h.match||null;e.push(g);
-a.push(g)}c=f.elements;f=f.generic;var p;d=0;for(e=a.length;d<e;++d){b=I(a[d]);g=!0===b.classes||!0===b.styles||!0===b.attributes;h=b;l=m=n=void 0;for(n in M)h[n]=u(h[n]);q=!0;for(l in H){n=H[l];m=h[n];E=[];x=void 0;for(x in m)-1<x.indexOf("*")?E.push(new RegExp("^"+x.replace(/\*/g,".*")+"$")):E.push(x);m=E;m.length&&(h[n]=m,q=!1)}h.nothingRequired=q;h.noProperties=!(h.attributes||h.classes||h.styles);if(!0===b.elements||null===b.elements)f[g?"unshift":"push"](b);else for(p in h=b.elements,delete b.elements,
-h)if(c[p])c[p][g?"unshift":"push"](b);else c[p]=[b]}}function h(a,c,d,e){if(!a.match||a.match(c))if(e||l(a,c))if(a.propertiesOnly||(d.valid=!0),d.allAttributes||(d.allAttributes=g(a.attributes,c.attributes,d.validAttributes)),d.allStyles||(d.allStyles=g(a.styles,c.styles,d.validStyles)),!d.allClasses){a=a.classes;c=c.classes;e=d.validClasses;if(a)if(!0===a)a=!0;else{for(var f=0,b=c.length,h;f<b;++f)h=c[f],e[h]||(e[h]=a(h));a=!1}else a=!1;d.allClasses=a}}function g(a,c,d){if(!a)return!1;if(!0===a)return!0;
+typeof g?{}:"function"==typeof g?{match:g}:K(g);"$"!=b.charAt(0)&&(g.elements=b);d&&(g.featureName=d.toLowerCase());var h=g;h.elements=l(h.elements,/\s+/)||null;h.propertiesOnly=h.propertiesOnly||!0===h.elements;var n=/\s*,\s*/,k=void 0;for(k in N){h[k]=l(h[k],n)||null;var u=h,q=J[k],m=l(h[J[k]],n),D=h[k],r=[],v=!0,I=void 0;m?v=!1:m={};for(I in D)"!"==I.charAt(0)&&(I=I.slice(1),r.push(I),m[I]=!0,v=!1);for(;I=r.pop();)D[I]=D["!"+I],delete D["!"+I];u[q]=(v?!1:m)||null}h.match=h.match||null;e.push(g);
+a.push(g)}c=f.elements;f=f.generic;var t;d=0;for(e=a.length;d<e;++d){b=K(a[d]);g=!0===b.classes||!0===b.styles||!0===b.attributes;h=b;k=q=n=void 0;for(n in N)h[n]=w(h[n]);u=!0;for(k in J){n=J[k];q=h[n];m=[];D=void 0;for(D in q)-1<D.indexOf("*")?m.push(new RegExp("^"+D.replace(/\*/g,".*")+"$")):m.push(D);q=m;q.length&&(h[n]=q,u=!1)}h.nothingRequired=u;h.noProperties=!(h.attributes||h.classes||h.styles);if(!0===b.elements||null===b.elements)f[g?"unshift":"push"](b);else for(t in h=b.elements,delete b.elements,
+h)if(c[t])c[t][g?"unshift":"push"](b);else c[t]=[b]}}function h(a,c,d,e){if(!a.match||a.match(c))if(e||k(a,c))if(a.propertiesOnly||(d.valid=!0),d.allAttributes||(d.allAttributes=g(a.attributes,c.attributes,d.validAttributes)),d.allStyles||(d.allStyles=g(a.styles,c.styles,d.validStyles)),!d.allClasses){a=a.classes;c=c.classes;e=d.validClasses;if(a)if(!0===a)a=!0;else{for(var f=0,b=c.length,h;f<b;++f)h=c[f],e[h]||(e[h]=a(h));a=!1}else a=!1;d.allClasses=a}}function g(a,c,d){if(!a)return!1;if(!0===a)return!0;
 for(var e in c)d[e]||(d[e]=a(e));return!1}function f(c,d,e){if(!c.match||c.match(d)){if(c.noProperties)return!1;e.hadInvalidAttribute=a(c.attributes,d.attributes)||e.hadInvalidAttribute;e.hadInvalidStyle=a(c.styles,d.styles)||e.hadInvalidStyle;c=c.classes;d=d.classes;if(c){for(var f=!1,b=!0===c,g=d.length;g--;)if(b||c(d[g]))d.splice(g,1),f=!0;c=f}else c=!1;e.hadInvalidClass=c||e.hadInvalidClass}}function a(a,c){if(!a)return!1;var d=!1,e=!0===a,f;for(f in c)if(e||a(f))delete c[f],d=!0;return d}function m(a,
-c,d){if(a.disabled||a.customConfig&&!d||!c)return!1;a._.cachedChecks={};return!0}function k(a,c){if(!a)return!1;if(!0===a)return a;if("string"==typeof a)return a=J(a),"*"==a?!0:CKEDITOR.tools.convertArrayToObject(a.split(c));if(CKEDITOR.tools.isArray(a))return a.length?CKEDITOR.tools.convertArrayToObject(a):!1;var d={},e=0,f;for(f in a)d[f]=a[f],e++;return e?d:!1}function l(a,c){if(a.nothingRequired)return!0;var e,f,b,g;if(b=a.requiredClasses)for(g=c.classes,e=0;e<b.length;++e)if(f=b[e],"string"==
+c,d){if(a.disabled||a.customConfig&&!d||!c)return!1;a._.cachedChecks={};return!0}function l(a,c){if(!a)return!1;if(!0===a)return a;if("string"==typeof a)return a=H(a),"*"==a?!0:CKEDITOR.tools.convertArrayToObject(a.split(c));if(CKEDITOR.tools.isArray(a))return a.length?CKEDITOR.tools.convertArrayToObject(a):!1;var d={},e=0,f;for(f in a)d[f]=a[f],e++;return e?d:!1}function k(a,c){if(a.nothingRequired)return!0;var e,f,b,g;if(b=a.requiredClasses)for(g=c.classes,e=0;e<b.length;++e)if(f=b[e],"string"==
 typeof f){if(-1==CKEDITOR.tools.indexOf(g,f))return!1}else if(!CKEDITOR.tools.checkIfAnyArrayItemMatches(g,f))return!1;return d(c.styles,a.requiredStyles)&&d(c.attributes,a.requiredAttributes)}function d(a,c){if(!c)return!0;for(var d=0,e;d<c.length;++d)if(e=c[d],"string"==typeof e){if(!(e in a))return!1}else if(!CKEDITOR.tools.checkIfAnyObjectPropertyMatches(a,e))return!1;return!0}function e(a){if(!a)return{};a=a.split(/\s*,\s*/).sort();for(var c={};a.length;)c[a.shift()]="cke-test";return c}function c(a){var c,
-d,e,f,b={},g=1;for(a=J(a);c=a.match(E);)(d=c[2])?(e=n(d,"styles"),f=n(d,"attrs"),d=n(d,"classes")):e=f=d=null,b["$"+g++]={elements:c[1],classes:d,styles:e,attributes:f},a=a.slice(c[0].length);return b}function n(a,c){var d=a.match(Q[c]);return d?J(d[1]):null}function w(a){var c=a.styleBackup=a.attributes.style,d=a.classBackup=a.attributes["class"];a.styles||(a.styles=CKEDITOR.tools.parseCssText(c||"",1));a.classes||(a.classes=d?d.split(/\s+/):[])}function z(a,c,d,e){var b=0,g;e.toHtml&&(c.name=c.name.replace(O,
-"$1"));if(e.doCallbacks&&a.elementCallbacks){a:{g=a.elementCallbacks;for(var k=0,n=g.length,l;k<n;++k)if(l=g[k](c)){g=l;break a}g=void 0}if(g)return g}if(e.doTransform&&(g=a._.transformations[c.name])){w(c);for(k=0;k<g.length;++k)x(a,c,g[k]);p(c)}if(e.doFilter){a:{k=c.name;n=a._;a=n.allowedRules.elements[k];g=n.allowedRules.generic;k=n.disallowedRules.elements[k];n=n.disallowedRules.generic;l=e.skipRequired;var m={valid:!1,validAttributes:{},validClasses:{},validStyles:{},allAttributes:!1,allClasses:!1,
-allStyles:!1,hadInvalidAttribute:!1,hadInvalidClass:!1,hadInvalidStyle:!1},E,B;if(a||g){w(c);if(k)for(E=0,B=k.length;E<B;++E)if(!1===f(k[E],c,m)){a=null;break a}if(n)for(E=0,B=n.length;E<B;++E)f(n[E],c,m);if(a)for(E=0,B=a.length;E<B;++E)h(a[E],c,m,l);if(g)for(E=0,B=g.length;E<B;++E)h(g[E],c,m,l);a=m}else a=null}if(!a||!a.valid)return d.push(c),1;B=a.validAttributes;var t=a.validStyles;g=a.validClasses;var k=c.attributes,Q=c.styles,n=c.classes;l=c.classBackup;var u=c.styleBackup,C,J,A=[],m=[],I=/^data-cke-/;
-E=!1;delete k.style;delete k["class"];delete c.classBackup;delete c.styleBackup;if(!a.allAttributes)for(C in k)B[C]||(I.test(C)?C==(J=C.replace(/^data-cke-saved-/,""))||B[J]||(delete k[C],E=!0):(delete k[C],E=!0));if(!a.allStyles||a.hadInvalidStyle){for(C in Q)a.allStyles||t[C]?A.push(C+":"+Q[C]):E=!0;A.length&&(k.style=A.sort().join("; "))}else u&&(k.style=u);if(!a.allClasses||a.hadInvalidClass){for(C=0;C<n.length;++C)(a.allClasses||g[n[C]])&&m.push(n[C]);m.length&&(k["class"]=m.sort().join(" "));
-l&&m.length<l.split(/\s+/).length&&(E=!0)}else l&&(k["class"]=l);E&&(b=1);if(!e.skipFinalValidation&&!q(c))return d.push(c),1}e.toHtml&&(c.name=c.name.replace(P,"cke:$1"));return b}function r(a){var c=[],d;for(d in a)-1<d.indexOf("*")&&c.push(d.replace(/\*/g,".*"));return c.length?new RegExp("^(?:"+c.join("|")+")$"):null}function p(a){var c=a.attributes,d;delete c.style;delete c["class"];if(d=CKEDITOR.tools.writeCssText(a.styles,!0))c.style=d;a.classes.length&&(c["class"]=a.classes.sort().join(" "))}
-function q(a){switch(a.name){case "a":if(!(a.children.length||a.attributes.name||a.attributes.id))return!1;break;case "img":if(!a.attributes.src)return!1}return!0}function u(a){if(!a)return!1;if(!0===a)return!0;var c=r(a);return function(d){return d in a||c&&d.match(c)}}function t(){return new CKEDITOR.htmlParser.element("br")}function y(a){return a.type==CKEDITOR.NODE_ELEMENT&&("br"==a.name||C.$block[a.name])}function v(a,c,d){var e=a.name;if(C.$empty[e]||!a.children.length)"hr"==e&&"br"==c?a.replaceWith(t()):
-(a.parent&&d.push({check:"it",el:a.parent}),a.remove());else if(C.$block[e]||"tr"==e)if("br"==c)a.previous&&!y(a.previous)&&(c=t(),c.insertBefore(a)),a.next&&!y(a.next)&&(c=t(),c.insertAfter(a)),a.replaceWithChildren();else{var e=a.children,f;b:{f=C[c];for(var b=0,g=e.length,h;b<g;++b)if(h=e[b],h.type==CKEDITOR.NODE_ELEMENT&&!f[h.name]){f=!1;break b}f=!0}if(f)a.name=c,a.attributes={},d.push({check:"parent-down",el:a});else{f=a.parent;for(var b=f.type==CKEDITOR.NODE_DOCUMENT_FRAGMENT||"body"==f.name,
-k,n,g=e.length;0<g;)h=e[--g],b&&(h.type==CKEDITOR.NODE_TEXT||h.type==CKEDITOR.NODE_ELEMENT&&C.$inline[h.name])?(k||(k=new CKEDITOR.htmlParser.element(c),k.insertAfter(a),d.push({check:"parent-down",el:k})),k.add(h,0)):(k=null,n=C[f.name]||C.span,h.insertAfter(a),f.type==CKEDITOR.NODE_DOCUMENT_FRAGMENT||h.type!=CKEDITOR.NODE_ELEMENT||n[h.name]||d.push({check:"el-up",el:h}));a.remove()}}else e in{style:1,script:1}?a.remove():(a.parent&&d.push({check:"it",el:a.parent}),a.replaceWithChildren())}function x(a,
-c,d){var e,f;for(e=0;e<d.length;++e)if(f=d[e],!(f.check&&!a.check(f.check,!1)||f.left&&!f.left(c))){f.right(c,K);break}}function B(a,c){var d=c.getDefinition(),e=d.attributes,f=d.styles,b,g,h,k;if(a.name!=d.element)return!1;for(b in e)if("class"==b)for(d=e[b].split(/\s+/),h=a.classes.join("|");k=d.pop();){if(-1==h.indexOf(k))return!1}else if(a.attributes[b]!=e[b])return!1;for(g in f)if(a.styles[g]!=f[g])return!1;return!0}function D(a,c){var d,e;"string"==typeof a?d=a:a instanceof CKEDITOR.style?e=
-a:(d=a[0],e=a[1]);return[{element:d,left:e,right:function(a,d){d.transform(a,c)}}]}function A(a){return function(c){return B(c,a)}}function G(a){return function(c,d){d[a](c)}}var C=CKEDITOR.dtd,I=CKEDITOR.tools.copy,J=CKEDITOR.tools.trim,F=["","p","br","div"];CKEDITOR.FILTER_SKIP_TREE=2;CKEDITOR.filter=function(a,c){this.allowedContent=[];this.disallowedContent=[];this.elementCallbacks=null;this.disabled=!1;this.editor=null;this.id=CKEDITOR.tools.getNextNumber();this._={allowedRules:{elements:{},
-generic:[]},disallowedRules:{elements:{},generic:[]},transformations:{},cachedTests:{},cachedChecks:{}};CKEDITOR.filter.instances[this.id]=this;var d=this.editor=a instanceof CKEDITOR.editor?a:null;if(d&&!c){this.customConfig=!0;var e=d.config.allowedContent;!0===e?this.disabled=!0:(e||(this.customConfig=!1),this.allow(e,"config",1),this.allow(d.config.extraAllowedContent,"extra",1),this.allow(F[d.enterMode]+" "+F[d.shiftEnterMode],"default",1),this.disallow(d.config.disallowedContent))}else this.customConfig=
-!1,this.allow(c||a,"default",1)};CKEDITOR.filter.instances={};CKEDITOR.filter.prototype={allow:function(a,d,e){if(!m(this,a,e))return!1;var f,g;if("string"==typeof a)a=c(a);else if(a instanceof CKEDITOR.style){if(a.toAllowedContentRules)return this.allow(a.toAllowedContentRules(this.editor),d,e);f=a.getDefinition();a={};e=f.attributes;a[f.element]=f={styles:f.styles,requiredStyles:f.styles&&CKEDITOR.tools.object.keys(f.styles)};e&&(e=I(e),f.classes=e["class"]?e["class"].split(/\s+/):null,f.requiredClasses=
-f.classes,delete e["class"],f.attributes=e,f.requiredAttributes=e&&CKEDITOR.tools.object.keys(e))}else if(CKEDITOR.tools.isArray(a)){for(f=0;f<a.length;++f)g=this.allow(a[f],d,e);return g}b(this,a,d,this.allowedContent,this._.allowedRules);return!0},applyTo:function(a,c,d,e){if(this.disabled)return!1;var f=this,b=[],g=this.editor&&this.editor.config.protectedSource,h,k=!1,n={doFilter:!d,doTransform:!0,doCallbacks:!0,toHtml:c};a.forEach(function(a){if(a.type==CKEDITOR.NODE_ELEMENT){if("off"==a.attributes["data-cke-filter"])return!1;
-if(!c||"span"!=a.name||!~CKEDITOR.tools.object.keys(a.attributes).join("|").indexOf("data-cke-"))if(h=z(f,a,b,n),h&1)k=!0;else if(h&2)return!1}else if(a.type==CKEDITOR.NODE_COMMENT&&a.value.match(/^\{cke_protected\}(?!\{C\})/)){var d;a:{var e=decodeURIComponent(a.value.replace(/^\{cke_protected\}/,""));d=[];var l,q,m;if(g)for(q=0;q<g.length;++q)if((m=e.match(g[q]))&&m[0].length==e.length){d=!0;break a}e=CKEDITOR.htmlParser.fragment.fromHtml(e);1==e.children.length&&(l=e.children[0]).type==CKEDITOR.NODE_ELEMENT&&
-z(f,l,d,n);d=!d.length}d||b.push(a)}},null,!0);b.length&&(k=!0);var l;a=[];e=F[e||(this.editor?this.editor.enterMode:CKEDITOR.ENTER_P)];for(var m;d=b.pop();)d.type==CKEDITOR.NODE_ELEMENT?v(d,e,a):d.remove();for(;l=a.pop();)if(d=l.el,d.parent)switch(m=C[d.parent.name]||C.span,l.check){case "it":C.$removeEmpty[d.name]&&!d.children.length?v(d,e,a):q(d)||v(d,e,a);break;case "el-up":d.parent.type==CKEDITOR.NODE_DOCUMENT_FRAGMENT||m[d.name]||v(d,e,a);break;case "parent-down":d.parent.type==CKEDITOR.NODE_DOCUMENT_FRAGMENT||
-m[d.name]||v(d.parent,e,a)}return k},checkFeature:function(a){if(this.disabled||!a)return!0;a.toFeature&&(a=a.toFeature(this.editor));return!a.requiredContent||this.check(a.requiredContent)},disable:function(){this.disabled=!0},disallow:function(a){if(!m(this,a,!0))return!1;"string"==typeof a&&(a=c(a));b(this,a,null,this.disallowedContent,this._.disallowedRules);return!0},addContentForms:function(a){if(!this.disabled&&a){var c,d,e=[],f;for(c=0;c<a.length&&!f;++c)d=a[c],("string"==typeof d||d instanceof
-CKEDITOR.style)&&this.check(d)&&(f=d);if(f){for(c=0;c<a.length;++c)e.push(D(a[c],f));this.addTransformations(e)}}},addElementCallback:function(a){this.elementCallbacks||(this.elementCallbacks=[]);this.elementCallbacks.push(a)},addFeature:function(a){if(this.disabled||!a)return!0;a.toFeature&&(a=a.toFeature(this.editor));this.allow(a.allowedContent,a.name);this.addTransformations(a.contentTransformations);this.addContentForms(a.contentForms);return a.requiredContent&&(this.customConfig||this.disallowedContent.length)?
-this.check(a.requiredContent):!0},addTransformations:function(a){var c,d;if(!this.disabled&&a){var e=this._.transformations,f;for(f=0;f<a.length;++f){c=a[f];var b=void 0,g=void 0,h=void 0,k=void 0,n=void 0,l=void 0;d=[];for(g=0;g<c.length;++g)h=c[g],"string"==typeof h?(h=h.split(/\s*:\s*/),k=h[0],n=null,l=h[1]):(k=h.check,n=h.left,l=h.right),b||(b=h,b=b.element?b.element:k?k.match(/^([a-z0-9]+)/i)[0]:b.left.getDefinition().element),n instanceof CKEDITOR.style&&(n=A(n)),d.push({check:k==b?null:k,left:n,
-right:"string"==typeof l?G(l):l});c=b;e[c]||(e[c]=[]);e[c].push(d)}}},check:function(a,d,f){if(this.disabled)return!0;if(CKEDITOR.tools.isArray(a)){for(var b=a.length;b--;)if(this.check(a[b],d,f))return!0;return!1}var g,h;if("string"==typeof a){h=a+"\x3c"+(!1===d?"0":"1")+(f?"1":"0")+"\x3e";if(h in this._.cachedChecks)return this._.cachedChecks[h];g=c(a).$1;var k=g.styles,b=g.classes;g.name=g.elements;g.classes=b=b?b.split(/\s*,\s*/):[];g.styles=e(k);g.attributes=e(g.attributes);g.children=[];b.length&&
-(g.attributes["class"]=b.join(" "));k&&(g.attributes.style=CKEDITOR.tools.writeCssText(g.styles))}else g=a.getDefinition(),k=g.styles,b=g.attributes||{},k&&!CKEDITOR.tools.isEmpty(k)?(k=I(k),b.style=CKEDITOR.tools.writeCssText(k,!0)):k={},g={name:g.element,attributes:b,classes:b["class"]?b["class"].split(/\s+/):[],styles:k,children:[]};var k=CKEDITOR.tools.clone(g),n=[],l;if(!1!==d&&(l=this._.transformations[g.name])){for(b=0;b<l.length;++b)x(this,g,l[b]);p(g)}z(this,k,n,{doFilter:!0,doTransform:!1!==
-d,skipRequired:!f,skipFinalValidation:!f});0<n.length?f=!1:((d=g.attributes["class"])&&(g.attributes["class"]=g.attributes["class"].split(" ").sort().join(" ")),f=CKEDITOR.tools.objectCompare(g.attributes,k.attributes,!0),d&&(g.attributes["class"]=d));"string"==typeof a&&(this._.cachedChecks[h]=f);return f},getAllowedEnterMode:function(){var a=["p","div","br"],c={p:CKEDITOR.ENTER_P,div:CKEDITOR.ENTER_DIV,br:CKEDITOR.ENTER_BR};return function(d,e){var f=a.slice(),b;if(this.check(F[d]))return d;for(e||
+d,e,f,b={},g=1;for(a=H(a);c=a.match(L);)(d=c[2])?(e=n(d,"styles"),f=n(d,"attrs"),d=n(d,"classes")):e=f=d=null,b["$"+g++]={elements:c[1],classes:d,styles:e,attributes:f},a=a.slice(c[0].length);return b}function n(a,c){var d=a.match(D[c]);return d?H(d[1]):null}function v(a){var c=a.styleBackup=a.attributes.style,d=a.classBackup=a.attributes["class"];a.styles||(a.styles=CKEDITOR.tools.parseCssText(c||"",1));a.classes||(a.classes=d?d.split(/\s+/):[])}function x(a,c,d,e){var b=0,g;e.toHtml&&(c.name=c.name.replace(I,
+"$1"));if(e.doCallbacks&&a.elementCallbacks){a:{g=a.elementCallbacks;for(var n=0,k=g.length,l;n<k;++n)if(l=g[n](c)){g=l;break a}g=void 0}if(g)return g}if(e.doTransform&&(g=a._.transformations[c.name])){v(c);for(n=0;n<g.length;++n)u(a,c,g[n]);r(c)}if(e.doFilter){a:{n=c.name;k=a._;a=k.allowedRules.elements[n];g=k.allowedRules.generic;n=k.disallowedRules.elements[n];k=k.disallowedRules.generic;l=e.skipRequired;var m={valid:!1,validAttributes:{},validClasses:{},validStyles:{},allAttributes:!1,allClasses:!1,
+allStyles:!1,hadInvalidAttribute:!1,hadInvalidClass:!1,hadInvalidStyle:!1},D,w;if(a||g){v(c);if(n)for(D=0,w=n.length;D<w;++D)if(!1===f(n[D],c,m)){a=null;break a}if(k)for(D=0,w=k.length;D<w;++D)f(k[D],c,m);if(a)for(D=0,w=a.length;D<w;++D)h(a[D],c,m,l);if(g)for(D=0,w=g.length;D<w;++D)h(g[D],c,m,l);a=m}else a=null}if(!a||!a.valid)return d.push(c),1;w=a.validAttributes;var t=a.validStyles;g=a.validClasses;var n=c.attributes,O=c.styles,k=c.classes;l=c.classBackup;var C=c.styleBackup,H,F,B=[],m=[],A=/^data-cke-/;
+D=!1;delete n.style;delete n["class"];delete c.classBackup;delete c.styleBackup;if(!a.allAttributes)for(H in n)w[H]||(A.test(H)?H==(F=H.replace(/^data-cke-saved-/,""))||w[F]||(delete n[H],D=!0):(delete n[H],D=!0));if(!a.allStyles||a.hadInvalidStyle){for(H in O)a.allStyles||t[H]?B.push(H+":"+O[H]):D=!0;B.length&&(n.style=B.sort().join("; "))}else C&&(n.style=C);if(!a.allClasses||a.hadInvalidClass){for(H=0;H<k.length;++H)(a.allClasses||g[k[H]])&&m.push(k[H]);m.length&&(n["class"]=m.sort().join(" "));
+l&&m.length<l.split(/\s+/).length&&(D=!0)}else l&&(n["class"]=l);D&&(b=1);if(!e.skipFinalValidation&&!q(c))return d.push(c),1}e.toHtml&&(c.name=c.name.replace(P,"cke:$1"));return b}function p(a){var c=[],d;for(d in a)-1<d.indexOf("*")&&c.push(d.replace(/\*/g,".*"));return c.length?new RegExp("^(?:"+c.join("|")+")$"):null}function r(a){var c=a.attributes,d;delete c.style;delete c["class"];if(d=CKEDITOR.tools.writeCssText(a.styles,!0))c.style=d;a.classes.length&&(c["class"]=a.classes.sort().join(" "))}
+function q(a){switch(a.name){case "a":if(!(a.children.length||a.attributes.name||a.attributes.id))return!1;break;case "img":if(!a.attributes.src)return!1}return!0}function w(a){if(!a)return!1;if(!0===a)return!0;var c=p(a);return function(d){return d in a||c&&d.match(c)}}function t(){return new CKEDITOR.htmlParser.element("br")}function z(a){return a.type==CKEDITOR.NODE_ELEMENT&&("br"==a.name||F.$block[a.name])}function y(a,c,d){var e=a.name;if(F.$empty[e]||!a.children.length)"hr"==e&&"br"==c?a.replaceWith(t()):
+(a.parent&&d.push({check:"it",el:a.parent}),a.remove());else if(F.$block[e]||"tr"==e)if("br"==c)a.previous&&!z(a.previous)&&(c=t(),c.insertBefore(a)),a.next&&!z(a.next)&&(c=t(),c.insertAfter(a)),a.replaceWithChildren();else{var e=a.children,f;b:{f=F[c];for(var b=0,g=e.length,h;b<g;++b)if(h=e[b],h.type==CKEDITOR.NODE_ELEMENT&&!f[h.name]){f=!1;break b}f=!0}if(f)a.name=c,a.attributes={},d.push({check:"parent-down",el:a});else{f=a.parent;for(var b=f.type==CKEDITOR.NODE_DOCUMENT_FRAGMENT||"body"==f.name,
+n,k,g=e.length;0<g;)h=e[--g],b&&(h.type==CKEDITOR.NODE_TEXT||h.type==CKEDITOR.NODE_ELEMENT&&F.$inline[h.name])?(n||(n=new CKEDITOR.htmlParser.element(c),n.insertAfter(a),d.push({check:"parent-down",el:n})),n.add(h,0)):(n=null,k=F[f.name]||F.span,h.insertAfter(a),f.type==CKEDITOR.NODE_DOCUMENT_FRAGMENT||h.type!=CKEDITOR.NODE_ELEMENT||k[h.name]||d.push({check:"el-up",el:h}));a.remove()}}else e in{style:1,script:1}?a.remove():(a.parent&&d.push({check:"it",el:a.parent}),a.replaceWithChildren())}function u(a,
+c,d){var e,f;for(e=0;e<d.length;++e)if(f=d[e],!(f.check&&!a.check(f.check,!1)||f.left&&!f.left(c))){f.right(c,M);break}}function C(a,c){var d=c.getDefinition(),e=d.attributes,f=d.styles,b,g,h,n;if(a.name!=d.element)return!1;for(b in e)if("class"==b)for(d=e[b].split(/\s+/),h=a.classes.join("|");n=d.pop();){if(-1==h.indexOf(n))return!1}else if(a.attributes[b]!=e[b])return!1;for(g in f)if(a.styles[g]!=f[g])return!1;return!0}function A(a,c){var d,e;"string"==typeof a?d=a:a instanceof CKEDITOR.style?e=
+a:(d=a[0],e=a[1]);return[{element:d,left:e,right:function(a,d){d.transform(a,c)}}]}function B(a){return function(c){return C(c,a)}}function G(a){return function(c,d){d[a](c)}}var F=CKEDITOR.dtd,K=CKEDITOR.tools.copy,H=CKEDITOR.tools.trim,E=["","p","br","div"];CKEDITOR.FILTER_SKIP_TREE=2;CKEDITOR.filter=function(a,c){this.allowedContent=[];this.disallowedContent=[];this.elementCallbacks=null;this.disabled=!1;this.editor=null;this.id=CKEDITOR.tools.getNextNumber();this._={allowedRules:{elements:{},
+generic:[]},disallowedRules:{elements:{},generic:[]},transformations:{},cachedTests:{},cachedChecks:{}};CKEDITOR.filter.instances[this.id]=this;var d=this.editor=a instanceof CKEDITOR.editor?a:null;if(d&&!c){this.customConfig=!0;var e=d.config.allowedContent;!0===e?this.disabled=!0:(e||(this.customConfig=!1),this.allow(e,"config",1),this.allow(d.config.extraAllowedContent,"extra",1),this.allow(E[d.enterMode]+" "+E[d.shiftEnterMode],"default",1),this.disallow(d.config.disallowedContent))}else this.customConfig=
+!1,this.allow(c||a,"default",1)};CKEDITOR.filter.instances={};CKEDITOR.filter.prototype={allow:function(a,d,e){if(!m(this,a,e))return!1;var f,g;if("string"==typeof a)a=c(a);else if(a instanceof CKEDITOR.style){if(a.toAllowedContentRules)return this.allow(a.toAllowedContentRules(this.editor),d,e);f=a.getDefinition();a={};e=f.attributes;a[f.element]=f={styles:f.styles,requiredStyles:f.styles&&CKEDITOR.tools.object.keys(f.styles)};e&&(e=K(e),f.classes=e["class"]?e["class"].split(/\s+/):null,f.requiredClasses=
+f.classes,delete e["class"],f.attributes=e,f.requiredAttributes=e&&CKEDITOR.tools.object.keys(e))}else if(CKEDITOR.tools.isArray(a)){for(f=0;f<a.length;++f)g=this.allow(a[f],d,e);return g}b(this,a,d,this.allowedContent,this._.allowedRules);return!0},applyTo:function(a,c,d,e){if(this.disabled)return!1;var f=this,b=[],g=this.editor&&this.editor.config.protectedSource,h,n=!1,k={doFilter:!d,doTransform:!0,doCallbacks:!0,toHtml:c};a.forEach(function(a){if(a.type==CKEDITOR.NODE_ELEMENT){if("off"==a.attributes["data-cke-filter"])return!1;
+if(!c||"span"!=a.name||!~CKEDITOR.tools.object.keys(a.attributes).join("|").indexOf("data-cke-"))if(h=x(f,a,b,k),h&1)n=!0;else if(h&2)return!1}else if(a.type==CKEDITOR.NODE_COMMENT&&a.value.match(/^\{cke_protected\}(?!\{C\})/)){var d;a:{var e=decodeURIComponent(a.value.replace(/^\{cke_protected\}/,""));d=[];var l,u,q;if(g)for(u=0;u<g.length;++u)if((q=e.match(g[u]))&&q[0].length==e.length){d=!0;break a}e=CKEDITOR.htmlParser.fragment.fromHtml(e);1==e.children.length&&(l=e.children[0]).type==CKEDITOR.NODE_ELEMENT&&
+x(f,l,d,k);d=!d.length}d||b.push(a)}},null,!0);b.length&&(n=!0);var l;a=[];e=E[e||(this.editor?this.editor.enterMode:CKEDITOR.ENTER_P)];for(var u;d=b.pop();)d.type==CKEDITOR.NODE_ELEMENT?y(d,e,a):d.remove();for(;l=a.pop();)if(d=l.el,d.parent)switch(u=F[d.parent.name]||F.span,l.check){case "it":F.$removeEmpty[d.name]&&!d.children.length?y(d,e,a):q(d)||y(d,e,a);break;case "el-up":d.parent.type==CKEDITOR.NODE_DOCUMENT_FRAGMENT||u[d.name]||y(d,e,a);break;case "parent-down":d.parent.type==CKEDITOR.NODE_DOCUMENT_FRAGMENT||
+u[d.name]||y(d.parent,e,a)}return n},checkFeature:function(a){if(this.disabled||!a)return!0;a.toFeature&&(a=a.toFeature(this.editor));return!a.requiredContent||this.check(a.requiredContent)},disable:function(){this.disabled=!0},disallow:function(a){if(!m(this,a,!0))return!1;"string"==typeof a&&(a=c(a));b(this,a,null,this.disallowedContent,this._.disallowedRules);return!0},addContentForms:function(a){if(!this.disabled&&a){var c,d,e=[],f;for(c=0;c<a.length&&!f;++c)d=a[c],("string"==typeof d||d instanceof
+CKEDITOR.style)&&this.check(d)&&(f=d);if(f){for(c=0;c<a.length;++c)e.push(A(a[c],f));this.addTransformations(e)}}},addElementCallback:function(a){this.elementCallbacks||(this.elementCallbacks=[]);this.elementCallbacks.push(a)},addFeature:function(a){if(this.disabled||!a)return!0;a.toFeature&&(a=a.toFeature(this.editor));this.allow(a.allowedContent,a.name);this.addTransformations(a.contentTransformations);this.addContentForms(a.contentForms);return a.requiredContent&&(this.customConfig||this.disallowedContent.length)?
+this.check(a.requiredContent):!0},addTransformations:function(a){var c,d;if(!this.disabled&&a){var e=this._.transformations,f;for(f=0;f<a.length;++f){c=a[f];var b=void 0,g=void 0,h=void 0,n=void 0,k=void 0,l=void 0;d=[];for(g=0;g<c.length;++g)h=c[g],"string"==typeof h?(h=h.split(/\s*:\s*/),n=h[0],k=null,l=h[1]):(n=h.check,k=h.left,l=h.right),b||(b=h,b=b.element?b.element:n?n.match(/^([a-z0-9]+)/i)[0]:b.left.getDefinition().element),k instanceof CKEDITOR.style&&(k=B(k)),d.push({check:n==b?null:n,left:k,
+right:"string"==typeof l?G(l):l});c=b;e[c]||(e[c]=[]);e[c].push(d)}}},check:function(a,d,f){if(this.disabled)return!0;if(CKEDITOR.tools.isArray(a)){for(var b=a.length;b--;)if(this.check(a[b],d,f))return!0;return!1}var g,h;if("string"==typeof a){h=a+"\x3c"+(!1===d?"0":"1")+(f?"1":"0")+"\x3e";if(h in this._.cachedChecks)return this._.cachedChecks[h];g=c(a).$1;var n=g.styles,b=g.classes;g.name=g.elements;g.classes=b=b?b.split(/\s*,\s*/):[];g.styles=e(n);g.attributes=e(g.attributes);g.children=[];b.length&&
+(g.attributes["class"]=b.join(" "));n&&(g.attributes.style=CKEDITOR.tools.writeCssText(g.styles))}else g=a.getDefinition(),n=g.styles,b=g.attributes||{},n&&!CKEDITOR.tools.isEmpty(n)?(n=K(n),b.style=CKEDITOR.tools.writeCssText(n,!0)):n={},g={name:g.element,attributes:b,classes:b["class"]?b["class"].split(/\s+/):[],styles:n,children:[]};var n=CKEDITOR.tools.clone(g),k=[],l;if(!1!==d&&(l=this._.transformations[g.name])){for(b=0;b<l.length;++b)u(this,g,l[b]);r(g)}x(this,n,k,{doFilter:!0,doTransform:!1!==
+d,skipRequired:!f,skipFinalValidation:!f});0<k.length?f=!1:((d=g.attributes["class"])&&(g.attributes["class"]=g.attributes["class"].split(" ").sort().join(" ")),f=CKEDITOR.tools.objectCompare(g.attributes,n.attributes,!0),d&&(g.attributes["class"]=d));"string"==typeof a&&(this._.cachedChecks[h]=f);return f},getAllowedEnterMode:function(){var a=["p","div","br"],c={p:CKEDITOR.ENTER_P,div:CKEDITOR.ENTER_DIV,br:CKEDITOR.ENTER_BR};return function(d,e){var f=a.slice(),b;if(this.check(E[d]))return d;for(e||
 (f=f.reverse());b=f.pop();)if(this.check(b))return c[b];return CKEDITOR.ENTER_BR}}(),clone:function(){var a=new CKEDITOR.filter,c=CKEDITOR.tools.clone;a.allowedContent=c(this.allowedContent);a._.allowedRules=c(this._.allowedRules);a.disallowedContent=c(this.disallowedContent);a._.disallowedRules=c(this._.disallowedRules);a._.transformations=c(this._.transformations);a.disabled=this.disabled;a.editor=this.editor;return a},destroy:function(){delete CKEDITOR.filter.instances[this.id];delete this._;delete this.allowedContent;
-delete this.disallowedContent}};var M={styles:1,attributes:1,classes:1},H={styles:"requiredStyles",attributes:"requiredAttributes",classes:"requiredClasses"},E=/^([a-z0-9\-*\s]+)((?:\s*\{[!\w\-,\s\*]+\}\s*|\s*\[[!\w\-,\s\*]+\]\s*|\s*\([!\w\-,\s\*]+\)\s*){0,3})(?:;\s*|$)/i,Q={styles:/{([^}]+)}/,attrs:/\[([^\]]+)\]/,classes:/\(([^\)]+)\)/},O=/^cke:(object|embed|param)$/,P=/^(object|embed|param)$/,K;K=CKEDITOR.filter.transformationsTools={sizeToStyle:function(a){this.lengthToStyle(a,"width");this.lengthToStyle(a,
+delete this.disallowedContent}};var N={styles:1,attributes:1,classes:1},J={styles:"requiredStyles",attributes:"requiredAttributes",classes:"requiredClasses"},L=/^([a-z0-9\-*\s]+)((?:\s*\{[!\w\-,\s\*]+\}\s*|\s*\[[!\w\-,\s\*]+\]\s*|\s*\([!\w\-,\s\*]+\)\s*){0,3})(?:;\s*|$)/i,D={styles:/{([^}]+)}/,attrs:/\[([^\]]+)\]/,classes:/\(([^\)]+)\)/},I=/^cke:(object|embed|param)$/,P=/^(object|embed|param)$/,M;M=CKEDITOR.filter.transformationsTools={sizeToStyle:function(a){this.lengthToStyle(a,"width");this.lengthToStyle(a,
 "height")},sizeToAttribute:function(a){this.lengthToAttribute(a,"width");this.lengthToAttribute(a,"height")},lengthToStyle:function(a,c,d){d=d||c;if(!(d in a.styles)){var e=a.attributes[c];e&&(/^\d+$/.test(e)&&(e+="px"),a.styles[d]=e)}delete a.attributes[c]},lengthToAttribute:function(a,c,d){d=d||c;if(!(d in a.attributes)){var e=a.styles[c],f=e&&e.match(/^(\d+)(?:\.\d*)?px$/);f?a.attributes[d]=f[1]:"cke-test"==e&&(a.attributes[d]="cke-test")}delete a.styles[c]},alignmentToStyle:function(a){if(!("float"in
 a.styles)){var c=a.attributes.align;if("left"==c||"right"==c)a.styles["float"]=c}delete a.attributes.align},alignmentToAttribute:function(a){if(!("align"in a.attributes)){var c=a.styles["float"];if("left"==c||"right"==c)a.attributes.align=c}delete a.styles["float"]},splitBorderShorthand:function(a){if(a.styles.border){var c=CKEDITOR.tools.style.parse.border(a.styles.border);c.color&&(a.styles["border-color"]=c.color);c.style&&(a.styles["border-style"]=c.style);c.width&&(a.styles["border-width"]=c.width);
 delete a.styles.border}},listTypeToStyle:function(a){if(a.attributes.type)switch(a.attributes.type){case "a":a.styles["list-style-type"]="lower-alpha";break;case "A":a.styles["list-style-type"]="upper-alpha";break;case "i":a.styles["list-style-type"]="lower-roman";break;case "I":a.styles["list-style-type"]="upper-roman";break;case "1":a.styles["list-style-type"]="decimal";break;default:a.styles["list-style-type"]=a.attributes.type}},splitMarginShorthand:function(a){function c(e){a.styles["margin-top"]=
-d[e[0]];a.styles["margin-right"]=d[e[1]];a.styles["margin-bottom"]=d[e[2]];a.styles["margin-left"]=d[e[3]]}if(a.styles.margin){var d=a.styles.margin.match(/(\-?[\.\d]+\w+)/g)||["0px"];switch(d.length){case 1:c([0,0,0,0]);break;case 2:c([0,1,0,1]);break;case 3:c([0,1,2,1]);break;case 4:c([0,1,2,3])}delete a.styles.margin}},matchesStyle:B,transform:function(a,c){if("string"==typeof c)a.name=c;else{var d=c.getDefinition(),e=d.styles,f=d.attributes,b,g,h,k;a.name=d.element;for(b in f)if("class"==b)for(d=
-a.classes.join("|"),h=f[b].split(/\s+/);k=h.pop();)-1==d.indexOf(k)&&a.classes.push(k);else a.attributes[b]=f[b];for(g in e)a.styles[g]=e[g]}}}})();(function(){CKEDITOR.focusManager=function(b){if(b.focusManager)return b.focusManager;this.hasFocus=!1;this.currentActive=null;this._={editor:b};return this};CKEDITOR.focusManager._={blurDelay:200};CKEDITOR.focusManager.prototype={focus:function(b){this._.timer&&clearTimeout(this._.timer);b&&(this.currentActive=b);this.hasFocus||this._.locked||((b=CKEDITOR.currentInstance)&&
+d[e[0]];a.styles["margin-right"]=d[e[1]];a.styles["margin-bottom"]=d[e[2]];a.styles["margin-left"]=d[e[3]]}if(a.styles.margin){var d=a.styles.margin.match(/(\-?[\.\d]+\w+)/g)||["0px"];switch(d.length){case 1:c([0,0,0,0]);break;case 2:c([0,1,0,1]);break;case 3:c([0,1,2,1]);break;case 4:c([0,1,2,3])}delete a.styles.margin}},matchesStyle:C,transform:function(a,c){if("string"==typeof c)a.name=c;else{var d=c.getDefinition(),e=d.styles,f=d.attributes,b,g,h,n;a.name=d.element;for(b in f)if("class"==b)for(d=
+a.classes.join("|"),h=f[b].split(/\s+/);n=h.pop();)-1==d.indexOf(n)&&a.classes.push(n);else a.attributes[b]=f[b];for(g in e)a.styles[g]=e[g]}}}})();(function(){CKEDITOR.focusManager=function(b){if(b.focusManager)return b.focusManager;this.hasFocus=!1;this.currentActive=null;this._={editor:b};return this};CKEDITOR.focusManager._={blurDelay:200};CKEDITOR.focusManager.prototype={focus:function(b){this._.timer&&clearTimeout(this._.timer);b&&(this.currentActive=b);this.hasFocus||this._.locked||((b=CKEDITOR.currentInstance)&&
 b.focusManager.blur(1),this.hasFocus=!0,(b=this._.editor.container)&&b.addClass("cke_focus"),this._.editor.fire("focus"))},lock:function(){this._.locked=1},unlock:function(){delete this._.locked},blur:function(b){function h(){if(this.hasFocus){this.hasFocus=!1;var f=this._.editor.container;f&&f.removeClass("cke_focus");this._.editor.fire("blur")}}if(!this._.locked){this._.timer&&clearTimeout(this._.timer);var g=CKEDITOR.focusManager._.blurDelay;b||!g?h.call(this):this._.timer=CKEDITOR.tools.setTimeout(function(){delete this._.timer;
 h.call(this)},g,this)}},add:function(b,h){var g=b.getCustomData("focusmanager");if(!g||g!=this){g&&g.remove(b);var g="focus",f="blur";h&&(CKEDITOR.env.ie?(g="focusin",f="focusout"):CKEDITOR.event.useCapture=1);var a={blur:function(){b.equals(this.currentActive)&&this.blur()},focus:function(){this.focus(b)}};b.on(g,a.focus,this);b.on(f,a.blur,this);h&&(CKEDITOR.event.useCapture=0);b.setCustomData("focusmanager",this);b.setCustomData("focusmanager_handlers",a)}},remove:function(b){b.removeCustomData("focusmanager");
 var h=b.removeCustomData("focusmanager_handlers");b.removeListener("blur",h.blur);b.removeListener("focus",h.focus)}}})();CKEDITOR.keystrokeHandler=function(b){if(b.keystrokeHandler)return b.keystrokeHandler;this.keystrokes={};this.blockedKeystrokes={};this._={editor:b};return this};(function(){var b,h=function(f){f=f.data;var a=f.getKeystroke(),g=this.keystrokes[a],h=this._.editor;b=!1===h.fire("key",{keyCode:a,domEvent:f});b||(g&&(b=!1!==h.execCommand(g,{from:"keystrokeHandler"})),b||(b=!!this.blockedKeystrokes[a]));
 b&&f.preventDefault(!0);return!b},g=function(f){b&&(b=!1,f.data.preventDefault(!0))};CKEDITOR.keystrokeHandler.prototype={attach:function(f){f.on("keydown",h,this);if(CKEDITOR.env.gecko&&CKEDITOR.env.mac)f.on("keypress",g,this)}}})();(function(){CKEDITOR.lang={languages:{af:1,ar:1,az:1,bg:1,bn:1,bs:1,ca:1,cs:1,cy:1,da:1,de:1,"de-ch":1,el:1,"en-au":1,"en-ca":1,"en-gb":1,en:1,eo:1,es:1,"es-mx":1,et:1,eu:1,fa:1,fi:1,fo:1,"fr-ca":1,fr:1,gl:1,gu:1,he:1,hi:1,hr:1,hu:1,id:1,is:1,it:1,ja:1,ka:1,km:1,ko:1,
 ku:1,lt:1,lv:1,mk:1,mn:1,ms:1,nb:1,nl:1,no:1,oc:1,pl:1,"pt-br":1,pt:1,ro:1,ru:1,si:1,sk:1,sl:1,sq:1,"sr-latn":1,sr:1,sv:1,th:1,tr:1,tt:1,ug:1,uk:1,vi:1,"zh-cn":1,zh:1},rtl:{ar:1,fa:1,he:1,ku:1,ug:1},load:function(b,h,g){b&&CKEDITOR.lang.languages[b]||(b=this.detect(h,b));var f=this;h=function(){f[b].dir=f.rtl[b]?"rtl":"ltr";g(b,f[b])};this[b]?h():CKEDITOR.scriptLoader.load(CKEDITOR.getUrl("lang/"+b+".js"),h,this)},detect:function(b,h){var g=this.languages;h=h||navigator.userLanguage||navigator.language||
-b;var f=h.toLowerCase().match(/([a-z]+)(?:-([a-z]+))?/),a=f[1],f=f[2];g[a+"-"+f]?a=a+"-"+f:g[a]||(a=null);CKEDITOR.lang.detect=a?function(){return a}:function(a){return a};return a||b}}})();CKEDITOR.scriptLoader=function(){var b={},h={};return{load:function(g,f,a,m){var k="string"==typeof g;k&&(g=[g]);a||(a=CKEDITOR);var l=g.length,d=[],e=[],c=function(c){f&&(k?f.call(a,c):f.call(a,d,e))};if(0===l)c(!0);else{var n=function(a,f){(f?d:e).push(a);0>=--l&&(m&&CKEDITOR.document.getDocumentElement().removeStyle("cursor"),
-c(f))},w=function(a,c){b[a]=1;var d=h[a];delete h[a];for(var e=0;e<d.length;e++)d[e](a,c)},z=function(a){if(b[a])n(a,!0);else{var c=h[a]||(h[a]=[]);c.push(n);if(!(1<c.length)){var d=new CKEDITOR.dom.element("script");d.setAttributes({type:"text/javascript",src:a});f&&(CKEDITOR.env.ie&&(8>=CKEDITOR.env.version||CKEDITOR.env.ie9Compat)?d.$.onreadystatechange=function(){if("loaded"==d.$.readyState||"complete"==d.$.readyState)d.$.onreadystatechange=null,w(a,!0)}:(d.$.onload=function(){setTimeout(function(){d.$.onload=
-null;d.$.onerror=null;w(a,!0)},0)},d.$.onerror=function(){d.$.onload=null;d.$.onerror=null;w(a,!1)}));d.appendTo(CKEDITOR.document.getHead())}}};m&&CKEDITOR.document.getDocumentElement().setStyle("cursor","wait");for(var r=0;r<l;r++)z(g[r])}},queue:function(){function b(){var a;(a=f[0])&&this.load(a.scriptUrl,a.callback,CKEDITOR,0)}var f=[];return function(a,h){var k=this;f.push({scriptUrl:a,callback:function(){h&&h.apply(this,arguments);f.shift();b.call(k)}});1==f.length&&b.call(this)}}()}}();CKEDITOR.resourceManager=
+b;var f=h.toLowerCase().match(/([a-z]+)(?:-([a-z]+))?/),a=f[1],f=f[2];g[a+"-"+f]?a=a+"-"+f:g[a]||(a=null);CKEDITOR.lang.detect=a?function(){return a}:function(a){return a};return a||b}}})();CKEDITOR.scriptLoader=function(){var b={},h={};return{load:function(g,f,a,m){var l="string"==typeof g;l&&(g=[g]);a||(a=CKEDITOR);var k=g.length,d=[],e=[],c=function(c){f&&(l?f.call(a,c):f.call(a,d,e))};if(0===k)c(!0);else{var n=function(a,f){(f?d:e).push(a);0>=--k&&(m&&CKEDITOR.document.getDocumentElement().removeStyle("cursor"),
+c(f))},v=function(a,c){b[a]=1;var d=h[a];delete h[a];for(var e=0;e<d.length;e++)d[e](a,c)},x=function(a){if(b[a])n(a,!0);else{var c=h[a]||(h[a]=[]);c.push(n);if(!(1<c.length)){var d=new CKEDITOR.dom.element("script");d.setAttributes({type:"text/javascript",src:a});f&&(CKEDITOR.env.ie&&(8>=CKEDITOR.env.version||CKEDITOR.env.ie9Compat)?d.$.onreadystatechange=function(){if("loaded"==d.$.readyState||"complete"==d.$.readyState)d.$.onreadystatechange=null,v(a,!0)}:(d.$.onload=function(){setTimeout(function(){d.$.onload=
+null;d.$.onerror=null;v(a,!0)},0)},d.$.onerror=function(){d.$.onload=null;d.$.onerror=null;v(a,!1)}));d.appendTo(CKEDITOR.document.getHead())}}};m&&CKEDITOR.document.getDocumentElement().setStyle("cursor","wait");for(var p=0;p<k;p++)x(g[p])}},queue:function(){function b(){var a;(a=f[0])&&this.load(a.scriptUrl,a.callback,CKEDITOR,0)}var f=[];return function(a,h){var l=this;f.push({scriptUrl:a,callback:function(){h&&h.apply(this,arguments);f.shift();b.call(l)}});1==f.length&&b.call(this)}}()}}();CKEDITOR.resourceManager=
 function(b,h){this.basePath=b;this.fileName=h;this.registered={};this.loaded={};this.externals={};this._={waitingList:{}}};CKEDITOR.resourceManager.prototype={add:function(b,h){if(this.registered[b])throw Error('[CKEDITOR.resourceManager.add] The resource name "'+b+'" is already registered.');var g=this.registered[b]=h||{};g.name=b;g.path=this.getPath(b);CKEDITOR.fire(b+CKEDITOR.tools.capitalize(this.fileName)+"Ready",g);return this.get(b)},get:function(b){return this.registered[b]||null},getPath:function(b){var h=
-this.externals[b];return CKEDITOR.getUrl(h&&h.dir||this.basePath+b+"/")},getFilePath:function(b){var h=this.externals[b];return CKEDITOR.getUrl(this.getPath(b)+(h?h.file:this.fileName+".js"))},addExternal:function(b,h,g){g||(h=h.replace(/[^\/]+$/,function(a){g=a;return""}));g=g||this.fileName+".js";b=b.split(",");for(var f=0;f<b.length;f++)this.externals[b[f]]={dir:h,file:g}},load:function(b,h,g){CKEDITOR.tools.isArray(b)||(b=b?[b]:[]);for(var f=this.loaded,a=this.registered,m=[],k={},l={},d=0;d<
-b.length;d++){var e=b[d];if(e)if(f[e]||a[e])l[e]=this.get(e);else{var c=this.getFilePath(e);m.push(c);c in k||(k[c]=[]);k[c].push(e)}}CKEDITOR.scriptLoader.load(m,function(a,c){if(c.length)throw Error('[CKEDITOR.resourceManager.load] Resource name "'+k[c[0]].join(",")+'" was not found at "'+c[0]+'".');for(var d=0;d<a.length;d++)for(var e=k[a[d]],b=0;b<e.length;b++){var q=e[b];l[q]=this.get(q);f[q]=1}h.call(g,l)},this)}};CKEDITOR.plugins=new CKEDITOR.resourceManager("plugins/","plugin");CKEDITOR.plugins.load=
-CKEDITOR.tools.override(CKEDITOR.plugins.load,function(b){var h={};return function(g,f,a){var m={},k=function(g){b.call(this,g,function(d){CKEDITOR.tools.extend(m,d);var e=[],c;for(c in d){var b=d[c],g=b&&b.requires;if(!h[c]){if(b.icons)for(var l=b.icons.split(","),r=l.length;r--;)CKEDITOR.skin.addIcon(l[r],b.path+"icons/"+(CKEDITOR.env.hidpi&&b.hidpi?"hidpi/":"")+l[r]+".png");b.isSupportedEnvironment=b.isSupportedEnvironment||function(){return!0};h[c]=1}if(g)for(g.split&&(g=g.split(",")),b=0;b<g.length;b++)m[g[b]]||
-e.push(g[b])}if(e.length)k.call(this,e);else{for(c in m)b=m[c],b.onLoad&&!b.onLoad._called&&(!1===b.onLoad()&&delete m[c],b.onLoad._called=1);f&&f.call(a||window,m)}},this)};k.call(this,g)}});CKEDITOR.plugins.setLang=function(b,h,g){var f=this.get(b);b=f.langEntries||(f.langEntries={});f=f.lang||(f.lang=[]);f.split&&(f=f.split(","));-1==CKEDITOR.tools.indexOf(f,h)&&f.push(h);b[h]=g};CKEDITOR.ui=function(b){if(b.ui)return b.ui;this.items={};this.instances={};this.editor=b;this._={handlers:{}};return this};
+this.externals[b];return CKEDITOR.getUrl(h&&h.dir||this.basePath+b+"/")},getFilePath:function(b){var h=this.externals[b];return CKEDITOR.getUrl(this.getPath(b)+(h?h.file:this.fileName+".js"))},addExternal:function(b,h,g){g||(h=h.replace(/[^\/]+$/,function(a){g=a;return""}));g=g||this.fileName+".js";b=b.split(",");for(var f=0;f<b.length;f++)this.externals[b[f]]={dir:h,file:g}},load:function(b,h,g){CKEDITOR.tools.isArray(b)||(b=b?[b]:[]);for(var f=this.loaded,a=this.registered,m=[],l={},k={},d=0;d<
+b.length;d++){var e=b[d];if(e)if(f[e]||a[e])k[e]=this.get(e);else{var c=this.getFilePath(e);m.push(c);c in l||(l[c]=[]);l[c].push(e)}}CKEDITOR.scriptLoader.load(m,function(a,c){if(c.length)throw Error('[CKEDITOR.resourceManager.load] Resource name "'+l[c[0]].join(",")+'" was not found at "'+c[0]+'".');for(var d=0;d<a.length;d++)for(var e=l[a[d]],b=0;b<e.length;b++){var q=e[b];k[q]=this.get(q);f[q]=1}h.call(g,k)},this)}};CKEDITOR.plugins=new CKEDITOR.resourceManager("plugins/","plugin");CKEDITOR.plugins.load=
+CKEDITOR.tools.override(CKEDITOR.plugins.load,function(b){var h={};return function(g,f,a){var m={},l=function(g){b.call(this,g,function(d){CKEDITOR.tools.extend(m,d);var e=[],c;for(c in d){var b=d[c],g=b&&b.requires;if(!h[c]){if(b.icons)for(var k=b.icons.split(","),p=k.length;p--;)CKEDITOR.skin.addIcon(k[p],b.path+"icons/"+(CKEDITOR.env.hidpi&&b.hidpi?"hidpi/":"")+k[p]+".png");b.isSupportedEnvironment=b.isSupportedEnvironment||function(){return!0};h[c]=1}if(g)for(g.split&&(g=g.split(",")),b=0;b<g.length;b++)m[g[b]]||
+e.push(g[b])}if(e.length)l.call(this,e);else{for(c in m)b=m[c],b.onLoad&&!b.onLoad._called&&(!1===b.onLoad()&&delete m[c],b.onLoad._called=1);f&&f.call(a||window,m)}},this)};l.call(this,g)}});CKEDITOR.plugins.setLang=function(b,h,g){var f=this.get(b);b=f.langEntries||(f.langEntries={});f=f.lang||(f.lang=[]);f.split&&(f=f.split(","));-1==CKEDITOR.tools.indexOf(f,h)&&f.push(h);b[h]=g};CKEDITOR.ui=function(b){if(b.ui)return b.ui;this.items={};this.instances={};this.editor=b;this._={handlers:{}};return this};
 CKEDITOR.ui.prototype={add:function(b,h,g){g.name=b.toLowerCase();var f=this.items[b]={type:h,command:g.command||null,args:Array.prototype.slice.call(arguments,2)};CKEDITOR.tools.extend(f,g)},get:function(b){return this.instances[b]},create:function(b){var h=this.items[b],g=h&&this._.handlers[h.type],f=h&&h.command&&this.editor.getCommand(h.command),g=g&&g.create.apply(this,h.args);this.instances[b]=g;f&&f.uiItems.push(g);g&&!g.type&&(g.type=h.type);return g},addHandler:function(b,h){this._.handlers[b]=
 h},space:function(b){return CKEDITOR.document.getById(this.spaceId(b))},spaceId:function(b){return this.editor.id+"_"+b}};CKEDITOR.event.implementOn(CKEDITOR.ui);(function(){function b(a,c,d){CKEDITOR.event.call(this);a=a&&CKEDITOR.tools.clone(a);if(void 0!==c){if(!(c instanceof CKEDITOR.dom.element))throw Error("Expect element of type CKEDITOR.dom.element.");if(!d)throw Error("One of the element modes must be specified.");if(CKEDITOR.env.ie&&CKEDITOR.env.quirks&&d==CKEDITOR.ELEMENT_MODE_INLINE)throw Error("Inline element mode is not supported on IE quirks.");
 if(!g(c,d))throw Error('The specified element mode is not supported on element: "'+c.getName()+'".');this.element=c;this.elementMode=d;this.name=this.elementMode!=CKEDITOR.ELEMENT_MODE_APPENDTO&&(c.getId()||c.getNameAtt())}else this.elementMode=CKEDITOR.ELEMENT_MODE_NONE;this._={};this.commands={};this.templates={};this.name=this.name||h();this.id=CKEDITOR.tools.getNextId();this.status="unloaded";this.config=CKEDITOR.tools.prototypedCopy(CKEDITOR.config);this.ui=new CKEDITOR.ui(this);this.focusManager=
 new CKEDITOR.focusManager(this);this.keystrokeHandler=new CKEDITOR.keystrokeHandler(this);this.on("readOnly",f);this.on("selectionChange",function(a){m(this,a.data.path)});this.on("activeFilterChange",function(){m(this,this.elementPath(),!0)});this.on("mode",f);CKEDITOR.dom.selection.setupEditorOptimization(this);this.on("instanceReady",function(){if(this.config.startupFocus){if("end"===this.config.startupFocus){var a=this.createRange();a.selectNodeContents(this.editable());a.shrink(CKEDITOR.SHRINK_ELEMENT,
-!0);a.collapse();this.getSelection().selectRanges([a])}this.focus()}});CKEDITOR.fire("instanceCreated",null,this);CKEDITOR.add(this);CKEDITOR.tools.setTimeout(function(){this.isDestroyed()||this.isDetached()||l(this,a)},0,this)}function h(){do var a="editor"+ ++r;while(CKEDITOR.instances[a]);return a}function g(a,c){return c==CKEDITOR.ELEMENT_MODE_INLINE?a.is(CKEDITOR.dtd.$editable)||a.is("textarea"):c==CKEDITOR.ELEMENT_MODE_REPLACE?!a.is(CKEDITOR.dtd.$nonBodyContent):1}function f(){var c=this.commands,
-d;for(d in c)a(this,c[d])}function a(a,c){c[c.startDisabled?"disable":a.readOnly&&!c.readOnly?"disable":c.modes[a.mode]?"enable":"disable"]()}function m(a,c,d){if(c){var e,f,b=a.commands;for(f in b)e=b[f],(d||e.contextSensitive)&&e.refresh(a,c)}}function k(a){var c=a.config.customConfig;if(!c)return!1;var c=CKEDITOR.getUrl(c),d=p[c]||(p[c]={});d.fn?(d.fn.call(a,a.config),CKEDITOR.getUrl(a.config.customConfig)!=c&&k(a)||a.fireOnce("customConfigLoaded")):CKEDITOR.scriptLoader.queue(c,function(){d.fn=
-CKEDITOR.editorConfig?CKEDITOR.editorConfig:function(){};k(a)});return!0}function l(a,c){a.on("customConfigLoaded",function(){if(c){if(c.on)for(var e in c.on)a.on(e,c.on[e]);CKEDITOR.tools.extend(a.config,c,!0);delete a.config.on}e=a.config;a.readOnly=e.readOnly?!0:a.elementMode==CKEDITOR.ELEMENT_MODE_INLINE?a.element.is("textarea")?a.element.hasAttribute("disabled")||a.element.hasAttribute("readonly"):a.element.isReadOnly():a.elementMode==CKEDITOR.ELEMENT_MODE_REPLACE?a.element.hasAttribute("disabled")||
+!0);a.collapse();this.getSelection().selectRanges([a])}this.focus()}});CKEDITOR.fire("instanceCreated",null,this);CKEDITOR.add(this);CKEDITOR.tools.setTimeout(function(){this.isDestroyed()||this.isDetached()||k(this,a)},0,this)}function h(){do var a="editor"+ ++p;while(CKEDITOR.instances[a]);return a}function g(a,c){return c==CKEDITOR.ELEMENT_MODE_INLINE?a.is(CKEDITOR.dtd.$editable)||a.is("textarea"):c==CKEDITOR.ELEMENT_MODE_REPLACE?!a.is(CKEDITOR.dtd.$nonBodyContent):1}function f(){var c=this.commands,
+d;for(d in c)a(this,c[d])}function a(a,c){c[c.startDisabled?"disable":a.readOnly&&!c.readOnly?"disable":c.modes[a.mode]?"enable":"disable"]()}function m(a,c,d){if(c){var e,f,b=a.commands;for(f in b)e=b[f],(d||e.contextSensitive)&&e.refresh(a,c)}}function l(a){var c=a.config.customConfig;if(!c)return!1;var c=CKEDITOR.getUrl(c),d=r[c]||(r[c]={});d.fn?(d.fn.call(a,a.config),CKEDITOR.getUrl(a.config.customConfig)!=c&&l(a)||a.fireOnce("customConfigLoaded")):CKEDITOR.scriptLoader.queue(c,function(){d.fn=
+CKEDITOR.editorConfig?CKEDITOR.editorConfig:function(){};l(a)});return!0}function k(a,c){a.on("customConfigLoaded",function(){if(c){if(c.on)for(var e in c.on)a.on(e,c.on[e]);CKEDITOR.tools.extend(a.config,c,!0);delete a.config.on}e=a.config;a.readOnly=e.readOnly?!0:a.elementMode==CKEDITOR.ELEMENT_MODE_INLINE?a.element.is("textarea")?a.element.hasAttribute("disabled")||a.element.hasAttribute("readonly"):a.element.isReadOnly():a.elementMode==CKEDITOR.ELEMENT_MODE_REPLACE?a.element.hasAttribute("disabled")||
 a.element.hasAttribute("readonly"):!1;a.blockless=a.elementMode==CKEDITOR.ELEMENT_MODE_INLINE?!(a.element.is("textarea")||CKEDITOR.dtd[a.element.getName()].p):!1;a.tabIndex=e.tabIndex||a.element&&a.element.getAttribute("tabindex")||0;a.activeEnterMode=a.enterMode=a.blockless?CKEDITOR.ENTER_BR:e.enterMode;a.activeShiftEnterMode=a.shiftEnterMode=a.blockless?CKEDITOR.ENTER_BR:e.shiftEnterMode;e.skin&&(CKEDITOR.skinName=e.skin);a.fireOnce("configLoaded");a.dataProcessor=new CKEDITOR.htmlDataProcessor(a);
-a.filter=a.activeFilter=new CKEDITOR.filter(a);d(a)});c&&null!=c.customConfig&&(a.config.customConfig=c.customConfig);k(a)||a.fireOnce("customConfigLoaded")}function d(a){CKEDITOR.skin.loadPart("editor",function(){e(a)})}function e(a){CKEDITOR.lang.load(a.config.language,a.config.defaultLanguage,function(d,e){var f=a.config.title;a.langCode=d;a.lang=CKEDITOR.tools.prototypedCopy(e);a.title="string"==typeof f||!1===f?f:[a.lang.editor,a.name].join(", ");a.config.contentsLangDirection||(a.config.contentsLangDirection=
+a.filter=a.activeFilter=new CKEDITOR.filter(a);d(a)});c&&null!=c.customConfig&&(a.config.customConfig=c.customConfig);l(a)||a.fireOnce("customConfigLoaded")}function d(a){CKEDITOR.skin.loadPart("editor",function(){e(a)})}function e(a){CKEDITOR.lang.load(a.config.language,a.config.defaultLanguage,function(d,e){var f=a.config.title;a.langCode=d;a.lang=CKEDITOR.tools.prototypedCopy(e);a.title="string"==typeof f||!1===f?f:[a.lang.editor,a.name].join(", ");a.config.contentsLangDirection||(a.config.contentsLangDirection=
 a.elementMode==CKEDITOR.ELEMENT_MODE_INLINE?a.element.getDirection(1):a.lang.dir);a.fire("langLoaded");c(a)})}function c(a){a.getStylesSet(function(c){a.once("loaded",function(){a.fire("stylesSet",{styles:c})},null,null,1);n(a)})}function n(a){function c(a){if(!a)return"";CKEDITOR.tools.isArray(a)&&(a=a.join(","));return a.replace(/\s/g,"")}var d=a.config,e=c(d.plugins),f=c(d.extraPlugins),b=c(d.removePlugins);if(f)var g=new RegExp("(?:^|,)(?:"+f.replace(/,/g,"|")+")(?\x3d,|$)","g"),e=e.replace(g,
-""),e=e+(","+f);if(b)var h=new RegExp("(?:^|,)(?:"+b.replace(/,/g,"|")+")(?\x3d,|$)","g"),e=e.replace(h,"");CKEDITOR.env.air&&(e+=",adobeair");CKEDITOR.plugins.load(e.split(","),function(c){var e=[],f=[],b=[];a.plugins=CKEDITOR.tools.extend({},a.plugins,c);for(var g in c){var k=c[g],l=k.lang,n=null,m=k.requires,x;CKEDITOR.tools.isArray(m)&&(m=m.join(","));if(m&&(x=m.match(h)))for(;m=x.pop();)CKEDITOR.error("editor-plugin-required",{plugin:m.replace(",",""),requiredBy:g});l&&!a.lang[g]&&(l.split&&
-(l=l.split(",")),0<=CKEDITOR.tools.indexOf(l,a.langCode)?n=a.langCode:(n=a.langCode.replace(/-.*/,""),n=n!=a.langCode&&0<=CKEDITOR.tools.indexOf(l,n)?n:0<=CKEDITOR.tools.indexOf(l,"en")?"en":l[0]),k.langEntries&&k.langEntries[n]?(a.lang[g]=k.langEntries[n],n=null):b.push(CKEDITOR.getUrl(k.path+"lang/"+n+".js")));f.push(n);e.push(k)}CKEDITOR.scriptLoader.load(b,function(){if(!a.isDestroyed()&&!a.isDetached()){for(var c=["beforeInit","init","afterInit"],b=0;b<c.length;b++)for(var g=0;g<e.length;g++){var h=
-e[g];0===b&&f[g]&&h.lang&&h.langEntries&&(a.lang[h.name]=h.langEntries[f[g]]);if(h[c[b]])h[c[b]](a)}a.fireOnce("pluginsLoaded");d.keystrokes&&a.setKeystroke(a.config.keystrokes);for(g=0;g<a.config.blockedKeystrokes.length;g++)a.keystrokeHandler.blockedKeystrokes[a.config.blockedKeystrokes[g]]=1;a.status="loaded";a.fireOnce("loaded");CKEDITOR.fire("instanceLoaded",null,a)}})})}function w(){var a=this.element;if(a&&this.elementMode!=CKEDITOR.ELEMENT_MODE_APPENDTO){var c=this.getData();this.config.htmlEncodeOutput&&
-(c=CKEDITOR.tools.htmlEncode(c));a.is("textarea")?a.setValue(c):a.setHtml(c);return!0}return!1}function z(a,c){function d(a){var c=a.startContainer,e=a.endContainer;return c.is&&(c.is("tr")||c.is("td")&&c.equals(e)&&a.endOffset===c.getChildCount())?!0:!1}function e(a){var c=a.startContainer;return c.is("tr")?a.cloneContents():c.clone(!0)}for(var f=new CKEDITOR.dom.documentFragment,b,g,h,k=0;k<a.length;k++){var l=a[k],n=l.startContainer.getAscendant("tr",!0);d(l)?(b||(b=n.getAscendant("table").clone(),
-b.append(n.getAscendant({thead:1,tbody:1,tfoot:1}).clone()),f.append(b),b=b.findOne("thead, tbody, tfoot")),g&&g.equals(n)||(g=n,h=n.clone(),b.append(h)),h.append(e(l))):f.append(l.cloneContents())}return b?f:c.getHtmlFromRange(a[0])}b.prototype=CKEDITOR.editor.prototype;CKEDITOR.editor=b;var r=0,p={};CKEDITOR.tools.extend(CKEDITOR.editor.prototype,{plugins:{detectConflict:function(a,c){for(var d=0;d<c.length;d++){var e=c[d];if(this[e])return CKEDITOR.warn("editor-plugin-conflict",{plugin:a,replacedWith:e}),
+""),e=e+(","+f);if(b)var h=new RegExp("(?:^|,)(?:"+b.replace(/,/g,"|")+")(?\x3d,|$)","g"),e=e.replace(h,"");CKEDITOR.env.air&&(e+=",adobeair");CKEDITOR.plugins.load(e.split(","),function(c){var e=[],f=[],b=[];a.plugins=CKEDITOR.tools.extend({},a.plugins,c);for(var g in c){var n=c[g],k=n.lang,l=null,u=n.requires,m;CKEDITOR.tools.isArray(u)&&(u=u.join(","));if(u&&(m=u.match(h)))for(;u=m.pop();)CKEDITOR.error("editor-plugin-required",{plugin:u.replace(",",""),requiredBy:g});k&&!a.lang[g]&&(k.split&&
+(k=k.split(",")),0<=CKEDITOR.tools.indexOf(k,a.langCode)?l=a.langCode:(l=a.langCode.replace(/-.*/,""),l=l!=a.langCode&&0<=CKEDITOR.tools.indexOf(k,l)?l:0<=CKEDITOR.tools.indexOf(k,"en")?"en":k[0]),n.langEntries&&n.langEntries[l]?(a.lang[g]=n.langEntries[l],l=null):b.push(CKEDITOR.getUrl(n.path+"lang/"+l+".js")));f.push(l);e.push(n)}CKEDITOR.scriptLoader.load(b,function(){if(!a.isDestroyed()&&!a.isDetached()){for(var c=["beforeInit","init","afterInit"],b=0;b<c.length;b++)for(var g=0;g<e.length;g++){var h=
+e[g];0===b&&f[g]&&h.lang&&h.langEntries&&(a.lang[h.name]=h.langEntries[f[g]]);if(h[c[b]])h[c[b]](a)}a.fireOnce("pluginsLoaded");d.keystrokes&&a.setKeystroke(a.config.keystrokes);for(g=0;g<a.config.blockedKeystrokes.length;g++)a.keystrokeHandler.blockedKeystrokes[a.config.blockedKeystrokes[g]]=1;a.status="loaded";a.fireOnce("loaded");CKEDITOR.fire("instanceLoaded",null,a)}})})}function v(){var a=this.element;if(a&&this.elementMode!=CKEDITOR.ELEMENT_MODE_APPENDTO){var c=this.getData();this.config.htmlEncodeOutput&&
+(c=CKEDITOR.tools.htmlEncode(c));a.is("textarea")?a.setValue(c):a.setHtml(c);return!0}return!1}function x(a,c){function d(a){var c=a.startContainer,e=a.endContainer;return c.is&&(c.is("tr")||c.is("td")&&c.equals(e)&&a.endOffset===c.getChildCount())?!0:!1}function e(a){var c=a.startContainer;return c.is("tr")?a.cloneContents():c.clone(!0)}for(var f=new CKEDITOR.dom.documentFragment,b,g,h,n=0;n<a.length;n++){var k=a[n],l=k.startContainer.getAscendant("tr",!0);d(k)?(b||(b=l.getAscendant("table").clone(),
+b.append(l.getAscendant({thead:1,tbody:1,tfoot:1}).clone()),f.append(b),b=b.findOne("thead, tbody, tfoot")),g&&g.equals(l)||(g=l,h=l.clone(),b.append(h)),h.append(e(k))):f.append(k.cloneContents())}return b?f:c.getHtmlFromRange(a[0])}b.prototype=CKEDITOR.editor.prototype;CKEDITOR.editor=b;var p=0,r={};CKEDITOR.tools.extend(CKEDITOR.editor.prototype,{plugins:{detectConflict:function(a,c){for(var d=0;d<c.length;d++){var e=c[d];if(this[e])return CKEDITOR.warn("editor-plugin-conflict",{plugin:a,replacedWith:e}),
 !0}return!1}},addCommand:function(c,d){d.name=c.toLowerCase();var e=d instanceof CKEDITOR.command?d:new CKEDITOR.command(this,d);this.mode&&a(this,e);return this.commands[c]=e},_attachToForm:function(){function a(c){d.updateElement();d._.required&&!e.getValue()&&!1===d.fire("required")&&c.data.preventDefault()}function c(a){return!!(a&&a.call&&a.apply)}var d=this,e=d.element,f=new CKEDITOR.dom.element(e.$.form);e.is("textarea")&&f&&(f.on("submit",a),c(f.$.submit)&&(f.$.submit=CKEDITOR.tools.override(f.$.submit,
-function(c){return function(){a();c.apply?c.apply(this):c()}})),d.on("destroy",function(){f.removeListener("submit",a)}))},destroy:function(a){var c=CKEDITOR.filter.instances,d=this;this.fire("beforeDestroy");!a&&w.call(this);this.editable(null);this.filter&&delete this.filter;CKEDITOR.tools.array.forEach(CKEDITOR.tools.object.keys(c),function(a){a=c[a];d===a.editor&&a.destroy()});delete this.activeFilter;this.status="destroyed";this.fire("destroy");this.removeAllListeners();CKEDITOR.remove(this);
+function(c){return function(){a();c.apply?c.apply(this):c()}})),d.on("destroy",function(){f.removeListener("submit",a)}))},destroy:function(a){var c=CKEDITOR.filter.instances,d=this;this.fire("beforeDestroy");!a&&v.call(this);this.editable(null);this.filter&&delete this.filter;CKEDITOR.tools.array.forEach(CKEDITOR.tools.object.keys(c),function(a){a=c[a];d===a.editor&&a.destroy()});delete this.activeFilter;this.status="destroyed";this.fire("destroy");this.removeAllListeners();CKEDITOR.remove(this);
 CKEDITOR.fire("instanceDestroyed",null,this)},elementPath:function(a){if(!a){a=this.getSelection();if(!a)return null;a=a.getStartElement()}return a?new CKEDITOR.dom.elementPath(a,this.editable()):null},createRange:function(){var a=this.editable();return a?new CKEDITOR.dom.range(a):null},execCommand:function(a,c){var d=this.getCommand(a),e={name:a,commandData:c||{},command:d};return d&&d.state!=CKEDITOR.TRISTATE_DISABLED&&!1!==this.fire("beforeCommandExec",e)&&(e.returnValue=d.exec(e.commandData),
 !d.async&&!1!==this.fire("afterCommandExec",e))?e.returnValue:!1},getCommand:function(a){return this.commands[a]},getData:function(a){!a&&this.fire("beforeGetData");var c=this._.data;"string"!=typeof c&&(c=(c=this.element)&&this.elementMode==CKEDITOR.ELEMENT_MODE_REPLACE?c.is("textarea")?c.getValue():c.getHtml():"");c={dataValue:c};!a&&this.fire("getData",c);return c.dataValue},getSnapshot:function(){var a=this.fire("getSnapshot");"string"!=typeof a&&(a=(a=this.element)&&this.elementMode==CKEDITOR.ELEMENT_MODE_REPLACE?
 a.is("textarea")?a.getValue():a.getHtml():"");return a},loadSnapshot:function(a){this.fire("loadSnapshot",a)},setData:function(a,c,d){var e=!0,f=c;c&&"object"==typeof c&&(d=c.internal,f=c.callback,e=!c.noSnapshot);!d&&e&&this.fire("saveSnapshot");if(f||!d)this.once("dataReady",function(a){!d&&e&&this.fire("saveSnapshot");f&&f.call(a.editor)});a={dataValue:a};!d&&this.fire("setData",a);this._.data=a.dataValue;!d&&this.fire("afterSetData",a)},setReadOnly:function(a){a=null==a||a;this.readOnly!=a&&(this.readOnly=
-a,this.keystrokeHandler.blockedKeystrokes[8]=+a,this.editable().setReadOnly(a),this.fire("readOnly"))},insertHtml:function(a,c,d){this.fire("insertHtml",{dataValue:a,mode:c,range:d})},insertText:function(a){this.fire("insertText",a)},insertElement:function(a){this.fire("insertElement",a)},getSelectedHtml:function(a){var c=this.editable(),d=this.getSelection(),d=d&&d.getRanges();if(!c||!d||0===d.length)return null;c=z(d,c);return a?c.getHtml():c},extractSelectedHtml:function(a,c){var d=this.editable(),
-e=this.getSelection().getRanges(),f=new CKEDITOR.dom.documentFragment,b;if(!d||0===e.length)return null;for(b=0;b<e.length;b++)f.append(d.extractHtmlFromRange(e[b],c));c||this.getSelection().selectRanges([e[0]]);return a?f.getHtml():f},focus:function(){this.fire("beforeFocus")},checkDirty:function(){return"ready"==this.status&&this._.previousValue!==this.getSnapshot()},resetDirty:function(){this._.previousValue=this.getSnapshot()},updateElement:function(){return w.call(this)},setKeystroke:function(){for(var a=
+a,this.keystrokeHandler.blockedKeystrokes[8]=+a,this.editable().setReadOnly(a),this.fire("readOnly"))},insertHtml:function(a,c,d){this.fire("insertHtml",{dataValue:a,mode:c,range:d})},insertText:function(a){this.fire("insertText",a)},insertElement:function(a){this.fire("insertElement",a)},getSelectedHtml:function(a){var c=this.editable(),d=this.getSelection(),d=d&&d.getRanges();if(!c||!d||0===d.length)return null;c=x(d,c);return a?c.getHtml():c},extractSelectedHtml:function(a,c){var d=this.editable(),
+e=this.getSelection().getRanges(),f=new CKEDITOR.dom.documentFragment,b;if(!d||0===e.length)return null;for(b=0;b<e.length;b++)f.append(d.extractHtmlFromRange(e[b],c));c||this.getSelection().selectRanges([e[0]]);return a?f.getHtml():f},focus:function(){this.fire("beforeFocus")},checkDirty:function(){return"ready"==this.status&&this._.previousValue!==this.getSnapshot()},resetDirty:function(){this._.previousValue=this.getSnapshot()},updateElement:function(){return v.call(this)},setKeystroke:function(){for(var a=
 this.keystrokeHandler.keystrokes,c=CKEDITOR.tools.isArray(arguments[0])?arguments[0]:[[].slice.call(arguments,0)],d,e,f=c.length;f--;)d=c[f],e=0,CKEDITOR.tools.isArray(d)&&(e=d[1],d=d[0]),e?a[d]=e:delete a[d]},getCommandKeystroke:function(a,c){var d="string"===typeof a?this.getCommand(a):a,e=[];if(d){var f=CKEDITOR.tools.object.findKey(this.commands,d),b=this.keystrokeHandler.keystrokes;if(d.fakeKeystroke)e.push(d.fakeKeystroke);else for(var g in b)b[g]===f&&e.push(g)}return c?e:e[0]||null},addFeature:function(a){return this.filter.addFeature(a)},
 setActiveFilter:function(a){a||(a=this.filter);this.activeFilter!==a&&(this.activeFilter=a,this.fire("activeFilterChange"),a===this.filter?this.setActiveEnterMode(null,null):this.setActiveEnterMode(a.getAllowedEnterMode(this.enterMode),a.getAllowedEnterMode(this.shiftEnterMode,!0)))},setActiveEnterMode:function(a,c){a=a?this.blockless?CKEDITOR.ENTER_BR:a:this.enterMode;c=c?this.blockless?CKEDITOR.ENTER_BR:c:this.shiftEnterMode;if(this.activeEnterMode!=a||this.activeShiftEnterMode!=c)this.activeEnterMode=
 a,this.activeShiftEnterMode=c,this.fire("activeEnterModeChange")},showNotification:function(a){alert(a)},isDetached:function(){return!!this.container&&this.container.isDetached()},isDestroyed:function(){return"destroyed"===this.status}});CKEDITOR.editor._getEditorElement=function(a){if(!CKEDITOR.env.isCompatible)return null;var c=CKEDITOR.dom.element.get(a);return c?c.getEditor()?(CKEDITOR.error("editor-element-conflict",{editorName:c.getEditor().name}),null):c:(CKEDITOR.error("editor-incorrect-element",
 {element:a}),null)}})();CKEDITOR.ELEMENT_MODE_NONE=0;CKEDITOR.ELEMENT_MODE_REPLACE=1;CKEDITOR.ELEMENT_MODE_APPENDTO=2;CKEDITOR.ELEMENT_MODE_INLINE=3;CKEDITOR.htmlParser=function(){this._={htmlPartsRegex:/<(?:(?:\/([^>]+)>)|(?:!--([\S|\s]*?)--\x3e)|(?:([^\/\s>]+)((?:\s+[\w\-:.]+(?:\s*=\s*?(?:(?:"[^"]*")|(?:'[^']*')|[^\s"'\/>]+))?)*)[\S\s]*?(\/?)>))/g}};(function(){var b=/([\w\-:.]+)(?:(?:\s*=\s*(?:(?:"([^"]*)")|(?:'([^']*)')|([^\s>]+)))|(?=\s|$))/g,h={checked:1,compact:1,declare:1,defer:1,disabled:1,
-ismap:1,multiple:1,nohref:1,noresize:1,noshade:1,nowrap:1,readonly:1,selected:1};CKEDITOR.htmlParser.prototype={onTagOpen:function(){},onTagClose:function(){},onText:function(){},onCDATA:function(){},onComment:function(){},parse:function(g){for(var f,a,m=0,k;f=this._.htmlPartsRegex.exec(g);){a=f.index;if(a>m)if(m=g.substring(m,a),k)k.push(m);else this.onText(m);m=this._.htmlPartsRegex.lastIndex;if(a=f[1])if(a=a.toLowerCase(),k&&CKEDITOR.dtd.$cdata[a]&&(this.onCDATA(k.join("")),k=null),!k){this.onTagClose(a);
-continue}if(k)k.push(f[0]);else if(a=f[3]){if(a=a.toLowerCase(),!/="/.test(a)){var l={},d,e=f[4];f=!!f[5];if(e)for(;d=b.exec(e);){var c=d[1].toLowerCase();d=d[2]||d[3]||d[4]||"";l[c]=!d&&h[c]?c:CKEDITOR.tools.htmlDecodeAttr(d)}this.onTagOpen(a,l,f);!k&&CKEDITOR.dtd.$cdata[a]&&(k=[])}}else if(a=f[2])this.onComment(a)}if(g.length>m)this.onText(g.substring(m,g.length))}}})();CKEDITOR.htmlParser.basicWriter=CKEDITOR.tools.createClass({$:function(){this._={output:[]}},proto:{openTag:function(b){this._.output.push("\x3c",
+ismap:1,multiple:1,nohref:1,noresize:1,noshade:1,nowrap:1,readonly:1,selected:1};CKEDITOR.htmlParser.prototype={onTagOpen:function(){},onTagClose:function(){},onText:function(){},onCDATA:function(){},onComment:function(){},parse:function(g){for(var f,a,m=0,l;f=this._.htmlPartsRegex.exec(g);){a=f.index;if(a>m)if(m=g.substring(m,a),l)l.push(m);else this.onText(m);m=this._.htmlPartsRegex.lastIndex;if(a=f[1])if(a=a.toLowerCase(),l&&CKEDITOR.dtd.$cdata[a]&&(this.onCDATA(l.join("")),l=null),!l){this.onTagClose(a);
+continue}if(l)l.push(f[0]);else if(a=f[3]){if(a=a.toLowerCase(),!/="/.test(a)){var k={},d,e=f[4];f=!!f[5];if(e)for(;d=b.exec(e);){var c=d[1].toLowerCase();d=d[2]||d[3]||d[4]||"";k[c]=!d&&h[c]?c:CKEDITOR.tools.htmlDecodeAttr(d)}this.onTagOpen(a,k,f);!l&&CKEDITOR.dtd.$cdata[a]&&(l=[])}}else if(a=f[2])this.onComment(a)}if(g.length>m)this.onText(g.substring(m,g.length))}}})();CKEDITOR.htmlParser.basicWriter=CKEDITOR.tools.createClass({$:function(){this._={output:[]}},proto:{openTag:function(b){this._.output.push("\x3c",
 b)},openTagClose:function(b,h){h?this._.output.push(" /\x3e"):this._.output.push("\x3e")},attribute:function(b,h){"string"==typeof h&&(h=CKEDITOR.tools.htmlEncodeAttr(h));this._.output.push(" ",b,'\x3d"',h,'"')},closeTag:function(b){this._.output.push("\x3c/",b,"\x3e")},text:function(b){this._.output.push(b)},comment:function(b){this._.output.push("\x3c!--",b,"--\x3e")},write:function(b){this._.output.push(b)},reset:function(){this._.output=[];this._.indent=!1},getHtml:function(b){var h=this._.output.join("");
 b&&this.reset();return h}}});"use strict";(function(){CKEDITOR.htmlParser.node=function(){};CKEDITOR.htmlParser.node.prototype={remove:function(){var b=this.parent.children,h=CKEDITOR.tools.indexOf(b,this),g=this.previous,f=this.next;g&&(g.next=f);f&&(f.previous=g);b.splice(h,1);this.parent=null},replaceWith:function(b){var h=this.parent.children,g=CKEDITOR.tools.indexOf(h,this),f=b.previous=this.previous,a=b.next=this.next;f&&(f.next=b);a&&(a.previous=b);h[g]=b;b.parent=this.parent;this.parent=null},
 insertAfter:function(b){var h=b.parent.children,g=CKEDITOR.tools.indexOf(h,b),f=b.next;h.splice(g+1,0,this);this.next=b.next;this.previous=b;b.next=this;f&&(f.previous=this);this.parent=b.parent},insertBefore:function(b){var h=b.parent.children,g=CKEDITOR.tools.indexOf(h,b);h.splice(g,0,this);this.next=b;(this.previous=b.previous)&&(b.previous.next=this);b.previous=this;this.parent=b.parent},getAscendant:function(b){var h="function"==typeof b?b:"string"==typeof b?function(f){return f.name==b}:function(f){return f.name in
 b},g=this.parent;for(;g&&g.type==CKEDITOR.NODE_ELEMENT;){if(h(g))return g;g=g.parent}return null},wrapWith:function(b){this.replaceWith(b);b.add(this);return b},getIndex:function(){return CKEDITOR.tools.indexOf(this.parent.children,this)},getFilterContext:function(b){return b||{}}}})();"use strict";CKEDITOR.htmlParser.comment=function(b){this.value=b;this._={isBlockLike:!1}};CKEDITOR.htmlParser.comment.prototype=CKEDITOR.tools.extend(new CKEDITOR.htmlParser.node,{type:CKEDITOR.NODE_COMMENT,filter:function(b,
 h){var g=this.value;if(!(g=b.onComment(h,g,this)))return this.remove(),!1;if("string"!=typeof g)return this.replaceWith(g),!1;this.value=g;return!0},writeHtml:function(b,h){h&&this.filter(h);b.comment(this.value)}});"use strict";(function(){CKEDITOR.htmlParser.text=function(b){this.value=b;this._={isBlockLike:!1}};CKEDITOR.htmlParser.text.prototype=CKEDITOR.tools.extend(new CKEDITOR.htmlParser.node,{type:CKEDITOR.NODE_TEXT,filter:function(b,h){if(!(this.value=b.onText(h,this.value,this)))return this.remove(),
 !1},writeHtml:function(b,h){h&&this.filter(h);b.text(this.value)}})})();"use strict";(function(){CKEDITOR.htmlParser.cdata=function(b){this.value=b};CKEDITOR.htmlParser.cdata.prototype=CKEDITOR.tools.extend(new CKEDITOR.htmlParser.node,{type:CKEDITOR.NODE_TEXT,filter:function(){},writeHtml:function(b){b.write(this.value)}})})();"use strict";CKEDITOR.htmlParser.fragment=function(){this.children=[];this.parent=null;this._={isBlockLike:!0,hasInlineStarted:!1}};(function(){function b(a){return a.attributes["data-cke-survive"]?
-!1:"a"==a.name&&a.attributes.href||CKEDITOR.dtd.$removeEmpty[a.name]}var h=CKEDITOR.tools.extend({table:1,ul:1,ol:1,dl:1},CKEDITOR.dtd.table,CKEDITOR.dtd.ul,CKEDITOR.dtd.ol,CKEDITOR.dtd.dl),g={ol:1,ul:1},f=CKEDITOR.tools.extend({},{html:1},CKEDITOR.dtd.html,CKEDITOR.dtd.body,CKEDITOR.dtd.head,{style:1,script:1}),a={ul:"li",ol:"li",dl:"dd",table:"tbody",tbody:"tr",thead:"tr",tfoot:"tr",tr:"td"};CKEDITOR.htmlParser.fragment.fromHtml=function(m,k,l){function d(a){var c;if(0<q.length)for(var d=0;d<q.length;d++){var f=
-q[d],b=f.name,g=CKEDITOR.dtd[b],h=t.name&&CKEDITOR.dtd[t.name];h&&!h[b]||a&&g&&!g[a]&&CKEDITOR.dtd[a]?b==t.name&&(n(t,t.parent,1),d--):(c||(e(),c=1),f=f.clone(),f.parent=t,t=f,q.splice(d,1),d--)}}function e(){for(;u.length;)n(u.shift(),t)}function c(a){if(a._.isBlockLike&&"pre"!=a.name&&"textarea"!=a.name){var c=a.children.length,d=a.children[c-1],e;d&&d.type==CKEDITOR.NODE_TEXT&&((e=CKEDITOR.tools.rtrim(d.value))?d.value=e:a.children.length=c-1)}}function n(a,d,e){d=d||t||p;var f=t;void 0===a.previous&&
-(w(d,a)&&(t=d,r.onTagOpen(l,{}),a.returnPoint=d=t),c(a),b(a)&&!a.children.length||d.add(a),"pre"==a.name&&(v=!1),"textarea"==a.name&&(y=!1));a.returnPoint?(t=a.returnPoint,delete a.returnPoint):t=e?d:f}function w(a,c){if((a==p||"body"==a.name)&&l&&(!a.name||CKEDITOR.dtd[a.name][l])){var d,e;return(d=c.attributes&&(e=c.attributes["data-cke-real-element-type"])?e:c.name)&&d in CKEDITOR.dtd.$inline&&!(d in CKEDITOR.dtd.head)&&!c.isOrphan||c.type==CKEDITOR.NODE_TEXT}}function z(a,c){return a in CKEDITOR.dtd.$listItem||
-a in CKEDITOR.dtd.$tableContent?a==c||"dt"==a&&"dd"==c||"dd"==a&&"dt"==c:!1}var r=new CKEDITOR.htmlParser,p=k instanceof CKEDITOR.htmlParser.element?k:"string"==typeof k?new CKEDITOR.htmlParser.element(k):new CKEDITOR.htmlParser.fragment,q=[],u=[],t=p,y="textarea"==p.name,v="pre"==p.name;r.onTagOpen=function(a,c,k,l){c=new CKEDITOR.htmlParser.element(a,c);c.isUnknown&&k&&(c.isEmpty=!0);c.isOptionalClose=l;if(b(c))q.push(c);else{if("pre"==a)v=!0;else{if("br"==a&&v){t.add(new CKEDITOR.htmlParser.text("\n"));
-return}"textarea"==a&&(y=!0)}if("br"==a)u.push(c);else{for(;!(l=(k=t.name)?CKEDITOR.dtd[k]||(t._.isBlockLike?CKEDITOR.dtd.div:CKEDITOR.dtd.span):f,c.isUnknown||t.isUnknown||l[a]);)if(t.isOptionalClose)r.onTagClose(k);else if(a in g&&k in g)k=t.children,(k=k[k.length-1])&&"li"==k.name||n(k=new CKEDITOR.htmlParser.element("li"),t),!c.returnPoint&&(c.returnPoint=t),t=k;else if(a in CKEDITOR.dtd.$listItem&&!z(a,k))r.onTagOpen("li"==a?"ul":"dl",{},0,1);else if(k in h&&!z(a,k))!c.returnPoint&&(c.returnPoint=
-t),t=t.parent;else if(k in CKEDITOR.dtd.$inline&&q.unshift(t),t.parent)n(t,t.parent,1);else{c.isOrphan=1;break}d(a);e();c.parent=t;c.isEmpty?n(c):t=c}}};r.onTagClose=function(a){for(var c=q.length-1;0<=c;c--)if(a==q[c].name){q.splice(c,1);return}for(var d=[],f=[],b=t;b!=p&&b.name!=a;)b._.isBlockLike||f.unshift(b),d.push(b),b=b.returnPoint||b.parent;if(b!=p){for(c=0;c<d.length;c++){var g=d[c];n(g,g.parent)}t=b;b._.isBlockLike&&e();n(b,b.parent);b==t&&(t=t.parent);q=q.concat(f)}"body"==a&&(l=!1)};r.onText=
-function(c){if(!(t._.hasInlineStarted&&!u.length||v||y)&&(c=CKEDITOR.tools.ltrim(c),0===c.length))return;var b=t.name,g=b?CKEDITOR.dtd[b]||(t._.isBlockLike?CKEDITOR.dtd.div:CKEDITOR.dtd.span):f;if(!y&&!g["#"]&&b in h)r.onTagOpen(a[b]||""),r.onText(c);else{e();d();v||y||(c=c.replace(/[\t\r\n ]{2,}|[\t\r\n]/g," "));c=new CKEDITOR.htmlParser.text(c);if(w(t,c))this.onTagOpen(l,{},0,1);t.add(c)}};r.onCDATA=function(a){t.add(new CKEDITOR.htmlParser.cdata(a))};r.onComment=function(a){e();d();t.add(new CKEDITOR.htmlParser.comment(a))};
-r.parse(m);for(e();t!=p;)n(t,t.parent,1);c(p);return p};CKEDITOR.htmlParser.fragment.prototype={type:CKEDITOR.NODE_DOCUMENT_FRAGMENT,add:function(a,f){isNaN(f)&&(f=this.children.length);var b=0<f?this.children[f-1]:null;if(b){if(a._.isBlockLike&&b.type==CKEDITOR.NODE_TEXT&&(b.value=CKEDITOR.tools.rtrim(b.value),0===b.value.length)){this.children.pop();this.add(a);return}b.next=a}a.previous=b;a.parent=this;this.children.splice(f,0,a);this._.hasInlineStarted||(this._.hasInlineStarted=a.type==CKEDITOR.NODE_TEXT||
+!1:"a"==a.name&&a.attributes.href||CKEDITOR.dtd.$removeEmpty[a.name]}var h=CKEDITOR.tools.extend({table:1,ul:1,ol:1,dl:1},CKEDITOR.dtd.table,CKEDITOR.dtd.ul,CKEDITOR.dtd.ol,CKEDITOR.dtd.dl),g={ol:1,ul:1},f=CKEDITOR.tools.extend({},{html:1},CKEDITOR.dtd.html,CKEDITOR.dtd.body,CKEDITOR.dtd.head,{style:1,script:1}),a={ul:"li",ol:"li",dl:"dd",table:"tbody",tbody:"tr",thead:"tr",tfoot:"tr",tr:"td"};CKEDITOR.htmlParser.fragment.fromHtml=function(m,l,k){function d(a){var c;if(0<q.length)for(var d=0;d<q.length;d++){var f=
+q[d],b=f.name,g=CKEDITOR.dtd[b],h=t.name&&CKEDITOR.dtd[t.name];h&&!h[b]||a&&g&&!g[a]&&CKEDITOR.dtd[a]?b==t.name&&(n(t,t.parent,1),d--):(c||(e(),c=1),f=f.clone(),f.parent=t,t=f,q.splice(d,1),d--)}}function e(){for(;w.length;)n(w.shift(),t)}function c(a){if(a._.isBlockLike&&"pre"!=a.name&&"textarea"!=a.name){var c=a.children.length,d=a.children[c-1],e;d&&d.type==CKEDITOR.NODE_TEXT&&((e=CKEDITOR.tools.rtrim(d.value))?d.value=e:a.children.length=c-1)}}function n(a,d,e){d=d||t||r;var f=t;void 0===a.previous&&
+(v(d,a)&&(t=d,p.onTagOpen(k,{}),a.returnPoint=d=t),c(a),b(a)&&!a.children.length||d.add(a),"pre"==a.name&&(y=!1),"textarea"==a.name&&(z=!1));a.returnPoint?(t=a.returnPoint,delete a.returnPoint):t=e?d:f}function v(a,c){if((a==r||"body"==a.name)&&k&&(!a.name||CKEDITOR.dtd[a.name][k])){var d,e;return(d=c.attributes&&(e=c.attributes["data-cke-real-element-type"])?e:c.name)&&d in CKEDITOR.dtd.$inline&&!(d in CKEDITOR.dtd.head)&&!c.isOrphan||c.type==CKEDITOR.NODE_TEXT}}function x(a,c){return a in CKEDITOR.dtd.$listItem||
+a in CKEDITOR.dtd.$tableContent?a==c||"dt"==a&&"dd"==c||"dd"==a&&"dt"==c:!1}var p=new CKEDITOR.htmlParser,r=l instanceof CKEDITOR.htmlParser.element?l:"string"==typeof l?new CKEDITOR.htmlParser.element(l):new CKEDITOR.htmlParser.fragment,q=[],w=[],t=r,z="textarea"==r.name,y="pre"==r.name;p.onTagOpen=function(a,c,k,l){c=new CKEDITOR.htmlParser.element(a,c);c.isUnknown&&k&&(c.isEmpty=!0);c.isOptionalClose=l;if(b(c))q.push(c);else{if("pre"==a)y=!0;else{if("br"==a&&y){t.add(new CKEDITOR.htmlParser.text("\n"));
+return}"textarea"==a&&(z=!0)}if("br"==a)w.push(c);else{for(;!(l=(k=t.name)?CKEDITOR.dtd[k]||(t._.isBlockLike?CKEDITOR.dtd.div:CKEDITOR.dtd.span):f,c.isUnknown||t.isUnknown||l[a]);)if(t.isOptionalClose)p.onTagClose(k);else if(a in g&&k in g)k=t.children,(k=k[k.length-1])&&"li"==k.name||n(k=new CKEDITOR.htmlParser.element("li"),t),!c.returnPoint&&(c.returnPoint=t),t=k;else if(a in CKEDITOR.dtd.$listItem&&!x(a,k))p.onTagOpen("li"==a?"ul":"dl",{},0,1);else if(k in h&&!x(a,k))!c.returnPoint&&(c.returnPoint=
+t),t=t.parent;else if(k in CKEDITOR.dtd.$inline&&q.unshift(t),t.parent)n(t,t.parent,1);else{c.isOrphan=1;break}d(a);e();c.parent=t;c.isEmpty?n(c):t=c}}};p.onTagClose=function(a){for(var c=q.length-1;0<=c;c--)if(a==q[c].name){q.splice(c,1);return}for(var d=[],f=[],b=t;b!=r&&b.name!=a;)b._.isBlockLike||f.unshift(b),d.push(b),b=b.returnPoint||b.parent;if(b!=r){for(c=0;c<d.length;c++){var g=d[c];n(g,g.parent)}t=b;b._.isBlockLike&&e();n(b,b.parent);b==t&&(t=t.parent);q=q.concat(f)}"body"==a&&(k=!1)};p.onText=
+function(c){if(!(t._.hasInlineStarted&&!w.length||y||z)&&(c=CKEDITOR.tools.ltrim(c),0===c.length))return;var b=t.name,g=b?CKEDITOR.dtd[b]||(t._.isBlockLike?CKEDITOR.dtd.div:CKEDITOR.dtd.span):f;if(!z&&!g["#"]&&b in h)p.onTagOpen(a[b]||""),p.onText(c);else{e();d();y||z||(c=c.replace(/[\t\r\n ]{2,}|[\t\r\n]/g," "));c=new CKEDITOR.htmlParser.text(c);if(v(t,c))this.onTagOpen(k,{},0,1);t.add(c)}};p.onCDATA=function(a){t.add(new CKEDITOR.htmlParser.cdata(a))};p.onComment=function(a){e();d();t.add(new CKEDITOR.htmlParser.comment(a))};
+p.parse(m);for(e();t!=r;)n(t,t.parent,1);c(r);return r};CKEDITOR.htmlParser.fragment.prototype={type:CKEDITOR.NODE_DOCUMENT_FRAGMENT,add:function(a,f){isNaN(f)&&(f=this.children.length);var b=0<f?this.children[f-1]:null;if(b){if(a._.isBlockLike&&b.type==CKEDITOR.NODE_TEXT&&(b.value=CKEDITOR.tools.rtrim(b.value),0===b.value.length)){this.children.pop();this.add(a);return}b.next=a}a.previous=b;a.parent=this;this.children.splice(f,0,a);this._.hasInlineStarted||(this._.hasInlineStarted=a.type==CKEDITOR.NODE_TEXT||
 a.type==CKEDITOR.NODE_ELEMENT&&!a._.isBlockLike)},filter:function(a,f){f=this.getFilterContext(f);a.onRoot(f,this);this.filterChildren(a,!1,f)},filterChildren:function(a,f,b){if(this.childrenFilteredBy!=a.id){b=this.getFilterContext(b);if(f&&!this.parent)a.onRoot(b,this);this.childrenFilteredBy=a.id;for(f=0;f<this.children.length;f++)!1===this.children[f].filter(a,b)&&f--}},writeHtml:function(a,f){f&&this.filter(f);this.writeChildrenHtml(a)},writeChildrenHtml:function(a,f,b){var d=this.getFilterContext();
-if(b&&!this.parent&&f)f.onRoot(d,this);f&&this.filterChildren(f,!1,d);f=0;b=this.children;for(d=b.length;f<d;f++)b[f].writeHtml(a)},forEach:function(a,f,b){if(!(b||f&&this.type!=f))var d=a(this);if(!1!==d){b=this.children;for(var e=0;e<b.length;e++)d=b[e],d.type==CKEDITOR.NODE_ELEMENT?d.forEach(a,f):f&&d.type!=f||a(d)}},getFilterContext:function(a){return a||{}}}})();"use strict";(function(){function b(){this.rules=[]}function h(g,f,a,h){var k,l;for(k in f)(l=g[k])||(l=g[k]=new b),l.add(f[k],a,h)}
+if(b&&!this.parent&&f)f.onRoot(d,this);f&&this.filterChildren(f,!1,d);f=0;b=this.children;for(d=b.length;f<d;f++)b[f].writeHtml(a)},forEach:function(a,f,b){if(!(b||f&&this.type!=f))var d=a(this);if(!1!==d){b=this.children;for(var e=0;e<b.length;e++)d=b[e],d.type==CKEDITOR.NODE_ELEMENT?d.forEach(a,f):f&&d.type!=f||a(d)}},getFilterContext:function(a){return a||{}}}})();"use strict";(function(){function b(){this.rules=[]}function h(g,f,a,h){var l,k;for(l in f)(k=g[l])||(k=g[l]=new b),k.add(f[l],a,h)}
 CKEDITOR.htmlParser.filter=CKEDITOR.tools.createClass({$:function(g){this.id=CKEDITOR.tools.getNextNumber();this.elementNameRules=new b;this.attributeNameRules=new b;this.elementsRules={};this.attributesRules={};this.textRules=new b;this.commentRules=new b;this.rootRules=new b;g&&this.addRules(g,10)},proto:{addRules:function(b,f){var a;"number"==typeof f?a=f:f&&"priority"in f&&(a=f.priority);"number"!=typeof a&&(a=10);"object"!=typeof f&&(f={});b.elementNames&&this.elementNameRules.addMany(b.elementNames,
 a,f);b.attributeNames&&this.attributeNameRules.addMany(b.attributeNames,a,f);b.elements&&h(this.elementsRules,b.elements,a,f);b.attributes&&h(this.attributesRules,b.attributes,a,f);b.text&&this.textRules.add(b.text,a,f);b.comment&&this.commentRules.add(b.comment,a,f);b.root&&this.rootRules.add(b.root,a,f)},applyTo:function(b){b.filter(this)},onElementName:function(b,f){return this.elementNameRules.execOnName(b,f)},onAttributeName:function(b,f){return this.attributeNameRules.execOnName(b,f)},onText:function(b,
-f,a){return this.textRules.exec(b,f,a)},onComment:function(b,f,a){return this.commentRules.exec(b,f,a)},onRoot:function(b,f){return this.rootRules.exec(b,f)},onElement:function(b,f){for(var a=[this.elementsRules["^"],this.elementsRules[f.name],this.elementsRules.$],h,k=0;3>k;k++)if(h=a[k]){h=h.exec(b,f,this);if(!1===h)return null;if(h&&h!=f)return this.onNode(b,h);if(f.parent&&!f.name)break}return f},onNode:function(b,f){var a=f.type;return a==CKEDITOR.NODE_ELEMENT?this.onElement(b,f):a==CKEDITOR.NODE_TEXT?
-new CKEDITOR.htmlParser.text(this.onText(b,f.value)):a==CKEDITOR.NODE_COMMENT?new CKEDITOR.htmlParser.comment(this.onComment(b,f.value)):null},onAttribute:function(b,f,a,h){return(a=this.attributesRules[a])?a.exec(b,h,f,this):h}}});CKEDITOR.htmlParser.filterRulesGroup=b;b.prototype={add:function(b,f,a){this.rules.splice(this.findIndex(f),0,{value:b,priority:f,options:a})},addMany:function(b,f,a){for(var h=[this.findIndex(f),0],k=0,l=b.length;k<l;k++)h.push({value:b[k],priority:f,options:a});this.rules.splice.apply(this.rules,
-h)},findIndex:function(b){for(var f=this.rules,a=f.length-1;0<=a&&b<f[a].priority;)a--;return a+1},exec:function(b,f){var a=f instanceof CKEDITOR.htmlParser.node||f instanceof CKEDITOR.htmlParser.fragment,h=Array.prototype.slice.call(arguments,1),k=this.rules,l=k.length,d,e,c,n;for(n=0;n<l;n++)if(a&&(d=f.type,e=f.name),c=k[n],!(b.nonEditable&&!c.options.applyToAll||b.nestedEditable&&c.options.excludeNestedEditable)){c=c.value.apply(null,h);if(!1===c||a&&c&&(c.name!=e||c.type!=d))return c;null!=c&&
-(h[0]=f=c)}return f},execOnName:function(b,f){for(var a=0,h=this.rules,k=h.length,l;f&&a<k;a++)l=h[a],b.nonEditable&&!l.options.applyToAll||b.nestedEditable&&l.options.excludeNestedEditable||(f=f.replace(l.value[0],l.value[1]));return f}}})();(function(){function b(c,d){function e(a){return a||CKEDITOR.env.needsNbspFiller?new CKEDITOR.htmlParser.text(" "):new CKEDITOR.htmlParser.element("br",{"data-cke-bogus":1})}function b(a,c){return function(d){if(d.type!=CKEDITOR.NODE_DOCUMENT_FRAGMENT){var b=
-[],k=g(d),n,E;if(k)for(h(k,1)&&b.push(k);k;)m(k)&&(n=f(k))&&h(n)&&((E=f(n))&&!m(E)?b.push(n):(e(l).insertAfter(n),n.remove())),k=k.previous;for(k=0;k<b.length;k++)b[k].remove();if(b=!a||!1!==("function"==typeof c?c(d):c))l||CKEDITOR.env.needsBrFiller||d.type!=CKEDITOR.NODE_DOCUMENT_FRAGMENT?l||CKEDITOR.env.needsBrFiller||!(7<document.documentMode||d.name in CKEDITOR.dtd.tr||d.name in CKEDITOR.dtd.$listItem)?(b=g(d),b=!b||"form"==d.name&&"input"==b.name):b=!1:b=!1;b&&d.add(e(a))}}}function h(a,c){if((!l||
-CKEDITOR.env.needsBrFiller)&&a.type==CKEDITOR.NODE_ELEMENT&&"br"==a.name&&!a.attributes["data-cke-eol"])return!0;var d;return a.type==CKEDITOR.NODE_TEXT&&(d=a.value.match(t))&&(d.index&&((new CKEDITOR.htmlParser.text(a.value.substring(0,d.index))).insertBefore(a),a.value=d[0]),!CKEDITOR.env.needsBrFiller&&l&&(!c||a.parent.name in E)||!l&&((d=a.previous)&&"br"==d.name||!d||m(d)))?!0:!1}var n={elements:{}},l="html"==d,E=CKEDITOR.tools.extend({},B),x;for(x in E)"#"in v[x]||delete E[x];for(x in E)n.elements[x]=
-b(l,c.config.fillEmptyBlocks);n.root=b(l,!1);n.elements.br=function(c){return function(d){if(d.parent.type!=CKEDITOR.NODE_DOCUMENT_FRAGMENT){var b=d.attributes;if("data-cke-bogus"in b||"data-cke-eol"in b)delete b["data-cke-bogus"];else{for(b=d.next;b&&a(b);)b=b.next;var g=f(d);!b&&m(d.parent)?k(d.parent,e(c)):m(b)&&g&&!m(g)&&e(c).insertBefore(b)}}}}(l);return n}function h(a,c){return a!=CKEDITOR.ENTER_BR&&!1!==c?a==CKEDITOR.ENTER_DIV?"div":"p":!1}function g(c){for(c=c.children[c.children.length-1];c&&
-a(c);)c=c.previous;return c}function f(c){for(c=c.previous;c&&a(c);)c=c.previous;return c}function a(a){return a.type==CKEDITOR.NODE_TEXT&&!CKEDITOR.tools.trim(a.value)||a.type==CKEDITOR.NODE_ELEMENT&&a.attributes["data-cke-bookmark"]}function m(a){return a&&(a.type==CKEDITOR.NODE_ELEMENT&&a.name in B||a.type==CKEDITOR.NODE_DOCUMENT_FRAGMENT)}function k(a,c){var d=a.children[a.children.length-1];a.children.push(c);c.parent=a;d&&(d.next=c,c.previous=d)}function l(a){a=a.attributes;"false"!=a.contenteditable&&
-(a["data-cke-editable"]=a.contenteditable?"true":1);a.contenteditable="false"}function d(a){a=a.attributes;switch(a["data-cke-editable"]){case "true":a.contenteditable="true";break;case "1":delete a.contenteditable}}function e(a){return a.replace(I,function(a,c,d){return"\x3c"+c+d.replace(J,function(a,c){return F.test(c)&&-1==d.indexOf("data-cke-saved-"+c)?" data-cke-saved-"+a+" data-cke-"+CKEDITOR.rnd+"-"+a:a})+"\x3e"})}function c(a,c){return a.replace(c,function(a,c,d){0===a.indexOf("\x3ctextarea")&&
-(a=c+p(d).replace(/</g,"\x26lt;").replace(/>/g,"\x26gt;")+"\x3c/textarea\x3e");return"\x3ccke:encoded\x3e"+encodeURIComponent(a)+"\x3c/cke:encoded\x3e"})}function n(a){return a.replace(E,function(a,c){return decodeURIComponent(c)})}function w(a){return a.replace(/\x3c!--(?!{cke_protected})[\s\S]+?--\x3e/g,function(a){return"\x3c!--"+y+"{C}"+encodeURIComponent(a).replace(/--/g,"%2D%2D")+"--\x3e"})}function z(a){return CKEDITOR.tools.array.reduce(a.split(""),function(a,c){var d=c.toLowerCase(),e=c.toUpperCase(),
-b=r(d);d!==e&&(b+="|"+r(e));return a+("("+b+")")},"")}function r(a){var c;c=a.charCodeAt(0);var d=c.toString(16);c={htmlCode:"\x26#"+c+";?",hex:"\x26#x0*"+d+";?",entity:{"\x3c":"\x26lt;","\x3e":"\x26gt;",":":"\x26colon;"}[a]};for(var e in c)c[e]&&(a+="|"+c[e]);return a}function p(a){return a.replace(/\x3c!--\{cke_protected\}\{C\}([\s\S]+?)--\x3e/g,function(a,c){return decodeURIComponent(c)})}function q(a,c){var d=c._.dataStore;return a.replace(/\x3c!--\{cke_protected\}([\s\S]+?)--\x3e/g,function(a,
-c){return decodeURIComponent(c)}).replace(/\{cke_protected_(\d+)\}/g,function(a,c){return d&&d[c]||""})}function u(a,c){var d=[],e=c.config.protectedSource,b=c._.dataStore||(c._.dataStore={id:1}),f=/<\!--\{cke_temp(comment)?\}(\d*?)--\x3e/g,e=[/<script[\s\S]*?(<\/script>|$)/gi,/<noscript[\s\S]*?<\/noscript>/gi,/<meta[\s\S]*?\/?>/gi].concat(e);a=a.replace(/\x3c!--[\s\S]*?--\x3e/g,function(a){return"\x3c!--{cke_tempcomment}"+(d.push(a)-1)+"--\x3e"});for(var g=0;g<e.length;g++)a=a.replace(e[g],function(a){a=
-a.replace(f,function(a,c,e){return d[e]});return/cke_temp(comment)?/.test(a)?a:"\x3c!--{cke_temp}"+(d.push(a)-1)+"--\x3e"});a=a.replace(f,function(a,c,e){return"\x3c!--"+y+(c?"{C}":"")+encodeURIComponent(d[e]).replace(/--/g,"%2D%2D")+"--\x3e"});a=a.replace(/<\w+(?:\s+(?:(?:[^\s=>]+\s*=\s*(?:[^'"\s>]+|'[^']*'|"[^"]*"))|[^\s=\/>]+))+\s*\/?>/g,function(a){return a.replace(/\x3c!--\{cke_protected\}([^>]*)--\x3e/g,function(a,c){b[b.id]=decodeURIComponent(c);return"{cke_protected_"+b.id++ +"}"})});return a=
-a.replace(/<(title|iframe|textarea)([^>]*)>([\s\S]*?)<\/\1>/g,function(a,d,e,b){return"\x3c"+d+e+"\x3e"+q(p(b),c)+"\x3c/"+d+"\x3e"})}CKEDITOR.htmlDataProcessor=function(a){var d,f,g=this;this.editor=a;this.dataFilter=d=new CKEDITOR.htmlParser.filter;this.htmlFilter=f=new CKEDITOR.htmlParser.filter;this.writer=new CKEDITOR.htmlParser.basicWriter;d.addRules(D);d.addRules(A,{applyToAll:!0});d.addRules(b(a,"data"),{applyToAll:!0});f.addRules(G);f.addRules(C,{applyToAll:!0});f.addRules(b(a,"html"),{applyToAll:!0});
-a.on("toHtml",function(d){d=d.data;var b=d.dataValue,f,b=b.replace(Q,""),b=u(b,a),b=c(b,H),b=e(b),b=c(b,M),b=b.replace(O,"$1cke:$2"),b=b.replace(K,"\x3ccke:$1$2\x3e\x3c/cke:$1\x3e"),b=b.replace(/(<pre\b[^>]*>)(\r\n|\n)/g,"$1$2$2"),b=b.replace(/([^a-z0-9<\-])(on\w{3,})(?!>)/gi,"$1data-cke-"+CKEDITOR.rnd+"-$2");f=d.context||a.editable().getName();var g;CKEDITOR.env.ie&&9>CKEDITOR.env.version&&"pre"==f&&(f="div",b="\x3cpre\x3e"+b+"\x3c/pre\x3e",g=1);f=a.document.createElement(f);f.setHtml("a"+b);b=f.getHtml().substr(1);
-b=b.replace(new RegExp("data-cke-"+CKEDITOR.rnd+"-","ig"),"");g&&(b=b.replace(/^<pre>|<\/pre>$/gi,""));b=b.replace(P,"$1$2");b=n(b);b=p(b);f=!1===d.fixForBody?!1:h(d.enterMode,a.config.autoParagraph);b=CKEDITOR.htmlParser.fragment.fromHtml(b,d.context,f);f&&(g=b,!g.children.length&&CKEDITOR.dtd[g.name][f]&&(f=new CKEDITOR.htmlParser.element(f),g.add(f)));d.dataValue=b},null,null,5);a.on("toHtml",function(c){c.data.filter.applyTo(c.data.dataValue,!0,c.data.dontFilter,c.data.enterMode)&&a.fire("dataFiltered")},
-null,null,6);a.on("toHtml",function(a){a.data.dataValue.filterChildren(g.dataFilter,!0)},null,null,10);a.on("toHtml",function(a){a=a.data;var c=a.dataValue,d=new CKEDITOR.htmlParser.basicWriter;c.writeChildrenHtml(d);c=d.getHtml(!0);a.dataValue=w(c)},null,null,15);a.on("toDataFormat",function(c){var d=c.data.dataValue;c.data.enterMode!=CKEDITOR.ENTER_BR&&(d=d.replace(/^<br *\/?>/i,""));c.data.dataValue=CKEDITOR.htmlParser.fragment.fromHtml(d,c.data.context,h(c.data.enterMode,a.config.autoParagraph))},
-null,null,5);a.on("toDataFormat",function(a){a.data.dataValue.filterChildren(g.htmlFilter,!0)},null,null,10);a.on("toDataFormat",function(a){a.data.filter.applyTo(a.data.dataValue,!1,!0)},null,null,11);a.on("toDataFormat",function(c){var d=c.data.dataValue,e=g.writer;e.reset();d.writeChildrenHtml(e);d=e.getHtml(!0);d=p(d);d=q(d,a);c.data.dataValue=d},null,null,15)};CKEDITOR.htmlDataProcessor.prototype={toHtml:function(a,c,d,e){var b=this.editor,f,g,h,k;c&&"object"==typeof c?(f=c.context,d=c.fixForBody,
-e=c.dontFilter,g=c.filter,h=c.enterMode,k=c.protectedWhitespaces):f=c;f||null===f||(f=b.editable().getName());return b.fire("toHtml",{dataValue:a,context:f,fixForBody:d,dontFilter:e,filter:g||b.filter,enterMode:h||b.enterMode,protectedWhitespaces:k}).dataValue},toDataFormat:function(a,c){var d,e,b;c&&(d=c.context,e=c.filter,b=c.enterMode);d||null===d||(d=this.editor.editable().getName());return this.editor.fire("toDataFormat",{dataValue:a,filter:e||this.editor.filter,context:d,enterMode:b||this.editor.enterMode}).dataValue}};
-var t=/(?:&nbsp;|\xa0)$/,y="{cke_protected}",v=CKEDITOR.dtd,x="caption colgroup col thead tfoot tbody".split(" "),B=CKEDITOR.tools.extend({},v.$blockLimit,v.$block),D={elements:{input:l,textarea:l}},A={attributeNames:[[/^on/,"data-cke-pa-on"],[/^srcdoc/,"data-cke-pa-srcdoc"],[/^data-cke-expando$/,""]],elements:{iframe:function(a){if(a.attributes&&a.attributes.src){var c=a.attributes.src.toLowerCase().replace(/[^a-z]/gi,"");if(0===c.indexOf("javascript")||0===c.indexOf("data"))a.attributes["data-cke-pa-src"]=
-a.attributes.src,delete a.attributes.src}}}},G={elements:{embed:function(a){var c=a.parent;if(c&&"object"==c.name){var d=c.attributes.width,c=c.attributes.height;d&&(a.attributes.width=d);c&&(a.attributes.height=c)}},a:function(a){var c=a.attributes;if(!(a.children.length||c.name||c.id||a.attributes["data-cke-saved-name"]))return!1}}},C={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!1;for(var d=["name","href","src"],e,b=0;b<d.length;b++)e="data-cke-saved-"+d[b],e in c&&delete c[d[b]]}return a},table:function(a){a.children.slice(0).sort(function(a,c){var d,e;a.type==CKEDITOR.NODE_ELEMENT&&c.type==a.type&&(d=CKEDITOR.tools.indexOf(x,a.name),e=CKEDITOR.tools.indexOf(x,c.name));-1<d&&-1<e&&d!=e||(d=a.parent?a.getIndex():-1,e=c.parent?c.getIndex():-1);return d>e?1:-1})},param:function(a){a.children=[];a.isEmpty=!0;return a},span:function(a){"Apple-style-span"==
-a.attributes["class"]&&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];c&&c.value&&(c.value=CKEDITOR.tools.trim(c.value));a.attributes.type||(a.attributes.type="text/css")},title:function(a){var c=a.children[0];!c&&k(a,c=new CKEDITOR.htmlParser.text);c.value=a.attributes["data-cke-title"]||""},input:d,textarea:d},attributes:{"class":function(a){return CKEDITOR.tools.ltrim(a.replace(/(?:^|\s+)cke_[^\s]*/g,
-""))||!1}}};CKEDITOR.env.ie&&(C.attributes.style=function(a){return a.replace(/(^|;)([^\:]+)/g,function(a){return a.toLowerCase()})});var I=/<(a|area|img|input|source)\b([^>]*)>/gi,J=/([\w-:]+)\s*=\s*(?:(?:"[^"]*")|(?:'[^']*')|(?:[^ "'>]+))/gi,F=/^(href|src|name)$/i,M=/(?:<style(?=[ >])[^>]*>[\s\S]*?<\/style>)|(?:<(:?link|meta|base)[^>]*>)/gi,H=/(<textarea(?=[ >])[^>]*>)([\s\S]*?)(?:<\/textarea>)/gi,E=/<cke:encoded>([^<]*)<\/cke:encoded>/gi,Q=new RegExp("("+z("\x3ccke:encoded\x3e")+"(.*?)"+z("\x3c/cke:encoded\x3e")+
-")|("+z("\x3c")+z("/")+"?"+z("cke:encoded\x3e")+")","gi"),O=/(<\/?)((?:object|embed|param|html|body|head|title)([\s][^>]*)?>)/gi,P=/(<\/?)cke:((?:html|body|head|title)[^>]*>)/gi,K=/<cke:(param|embed)([^>]*?)\/?>(?!\s*<\/cke:\1)/gi})();"use strict";CKEDITOR.htmlParser.element=function(b,h){this.name=b;this.attributes=h||{};this.children=[];var g=b||"",f=g.match(/^cke:(.*)/);f&&(g=f[1]);g=!!(CKEDITOR.dtd.$nonBodyContent[g]||CKEDITOR.dtd.$block[g]||CKEDITOR.dtd.$listItem[g]||CKEDITOR.dtd.$tableContent[g]||
+f,a){return this.textRules.exec(b,f,a)},onComment:function(b,f,a){return this.commentRules.exec(b,f,a)},onRoot:function(b,f){return this.rootRules.exec(b,f)},onElement:function(b,f){for(var a=[this.elementsRules["^"],this.elementsRules[f.name],this.elementsRules.$],h,l=0;3>l;l++)if(h=a[l]){h=h.exec(b,f,this);if(!1===h)return null;if(h&&h!=f)return this.onNode(b,h);if(f.parent&&!f.name)break}return f},onNode:function(b,f){var a=f.type;return a==CKEDITOR.NODE_ELEMENT?this.onElement(b,f):a==CKEDITOR.NODE_TEXT?
+new CKEDITOR.htmlParser.text(this.onText(b,f.value,f)):a==CKEDITOR.NODE_COMMENT?new CKEDITOR.htmlParser.comment(this.onComment(b,f.value,f)):null},onAttribute:function(b,f,a,h){return(a=this.attributesRules[a])?a.exec(b,h,f,this):h}}});CKEDITOR.htmlParser.filterRulesGroup=b;b.prototype={add:function(b,f,a){this.rules.splice(this.findIndex(f),0,{value:b,priority:f,options:a})},addMany:function(b,f,a){for(var h=[this.findIndex(f),0],l=0,k=b.length;l<k;l++)h.push({value:b[l],priority:f,options:a});this.rules.splice.apply(this.rules,
+h)},findIndex:function(b){for(var f=this.rules,a=f.length-1;0<=a&&b<f[a].priority;)a--;return a+1},exec:function(b,f){var a=f instanceof CKEDITOR.htmlParser.node||f instanceof CKEDITOR.htmlParser.fragment,h=Array.prototype.slice.call(arguments,1),l=this.rules,k=l.length,d,e,c,n;for(n=0;n<k;n++)if(a&&(d=f.type,e=f.name),c=l[n],!(b.nonEditable&&!c.options.applyToAll||b.nestedEditable&&c.options.excludeNestedEditable)){c=c.value.apply(null,h);if(!1===c||a&&c&&(c.name!=e||c.type!=d))return c;null!=c&&
+(h[0]=f=c)}return f},execOnName:function(b,f){for(var a=0,h=this.rules,l=h.length,k;f&&a<l;a++)k=h[a],b.nonEditable&&!k.options.applyToAll||b.nestedEditable&&k.options.excludeNestedEditable||(f=f.replace(k.value[0],k.value[1]));return f}}})();(function(){function b(c,d){function e(a){return a||CKEDITOR.env.needsNbspFiller?new CKEDITOR.htmlParser.text(" "):new CKEDITOR.htmlParser.element("br",{"data-cke-bogus":1})}function b(a,c){return function(d){if(d.type!=CKEDITOR.NODE_DOCUMENT_FRAGMENT){var b=
+[],n=g(d),l,u;if(n)for(h(n,1)&&b.push(n);n;)m(n)&&(l=f(n))&&h(l)&&((u=f(l))&&!m(u)?b.push(l):(e(k).insertAfter(l),l.remove())),n=n.previous;for(n=0;n<b.length;n++)b[n].remove();if(b=!a||!1!==("function"==typeof c?c(d):c))k||CKEDITOR.env.needsBrFiller||d.type!=CKEDITOR.NODE_DOCUMENT_FRAGMENT?k||CKEDITOR.env.needsBrFiller||!(7<document.documentMode||d.name in CKEDITOR.dtd.tr||d.name in CKEDITOR.dtd.$listItem)?(b=g(d),b=!b||"form"==d.name&&"input"==b.name):b=!1:b=!1;b&&d.add(e(a))}}}function h(a,c){if((!k||
+CKEDITOR.env.needsBrFiller)&&a.type==CKEDITOR.NODE_ELEMENT&&"br"==a.name&&!a.attributes["data-cke-eol"])return!0;var d;return a.type==CKEDITOR.NODE_TEXT&&(d=a.value.match(t))&&(d.index&&((new CKEDITOR.htmlParser.text(a.value.substring(0,d.index))).insertBefore(a),a.value=d[0]),!CKEDITOR.env.needsBrFiller&&k&&(!c||a.parent.name in u)||!k&&((d=a.previous)&&"br"==d.name||!d||m(d)))?!0:!1}var n={elements:{}},k="html"==d,u=CKEDITOR.tools.extend({},C),D;for(D in u)"#"in y[D]||delete u[D];for(D in u)n.elements[D]=
+b(k,c.config.fillEmptyBlocks);n.root=b(k,!1);n.elements.br=function(c){return function(d){if(d.parent.type!=CKEDITOR.NODE_DOCUMENT_FRAGMENT){var b=d.attributes;if("data-cke-bogus"in b||"data-cke-eol"in b)delete b["data-cke-bogus"];else{for(b=d.next;b&&a(b);)b=b.next;var g=f(d);!b&&m(d.parent)?l(d.parent,e(c)):m(b)&&g&&!m(g)&&e(c).insertBefore(b)}}}}(k);return n}function h(a,c){return a!=CKEDITOR.ENTER_BR&&!1!==c?a==CKEDITOR.ENTER_DIV?"div":"p":!1}function g(c){for(c=c.children[c.children.length-1];c&&
+a(c);)c=c.previous;return c}function f(c){for(c=c.previous;c&&a(c);)c=c.previous;return c}function a(a){return a.type==CKEDITOR.NODE_TEXT&&!CKEDITOR.tools.trim(a.value)||a.type==CKEDITOR.NODE_ELEMENT&&a.attributes["data-cke-bookmark"]}function m(a){return a&&(a.type==CKEDITOR.NODE_ELEMENT&&a.name in C||a.type==CKEDITOR.NODE_DOCUMENT_FRAGMENT)}function l(a,c){var d=a.children[a.children.length-1];a.children.push(c);c.parent=a;d&&(d.next=c,c.previous=d)}function k(a){a=a.attributes;"false"!=a.contenteditable&&
+(a["data-cke-editable"]=a.contenteditable?"true":1);a.contenteditable="false"}function d(a){a=a.attributes;switch(a["data-cke-editable"]){case "true":a.contenteditable="true";break;case "1":delete a.contenteditable}}function e(a){return a.replace(K,function(a,c,d){return"\x3c"+c+d.replace(H,function(a,c){return E.test(c)&&-1==d.indexOf("data-cke-saved-"+c)?" data-cke-saved-"+a+" data-cke-"+CKEDITOR.rnd+"-"+a:a})+"\x3e"})}function c(a,c){return a.replace(c,function(a,c,d){0===a.indexOf("\x3ctextarea")&&
+(a=c+r(d).replace(/</g,"\x26lt;").replace(/>/g,"\x26gt;")+"\x3c/textarea\x3e");return"\x3ccke:encoded\x3e"+encodeURIComponent(a)+"\x3c/cke:encoded\x3e"})}function n(a){return a.replace(L,function(a,c){return decodeURIComponent(c)})}function v(a){return a.replace(/\x3c!--(?!{cke_protected})[\s\S]+?--\x3e/g,function(a){return"\x3c!--"+z+"{C}"+encodeURIComponent(a).replace(/--/g,"%2D%2D")+"--\x3e"})}function x(a){return CKEDITOR.tools.array.reduce(a.split(""),function(a,c){var d=c.toLowerCase(),e=c.toUpperCase(),
+b=p(d);d!==e&&(b+="|"+p(e));return a+("("+b+")")},"")}function p(a){var c;c=a.charCodeAt(0);var d=c.toString(16);c={htmlCode:"\x26#"+c+";?",hex:"\x26#x0*"+d+";?",entity:{"\x3c":"\x26lt;","\x3e":"\x26gt;",":":"\x26colon;"}[a]};for(var e in c)c[e]&&(a+="|"+c[e]);return a}function r(a){return a.replace(/\x3c!--\{cke_protected\}\{C\}([\s\S]+?)--\x3e/g,function(a,c){return decodeURIComponent(c)})}function q(a,c){var d=c._.dataStore;return a.replace(/\x3c!--\{cke_protected\}([\s\S]+?)--\x3e/g,function(a,
+c){return decodeURIComponent(c)}).replace(/\{cke_protected_(\d+)\}/g,function(a,c){return d&&d[c]||""})}function w(a,c){var d=[],e=c.config.protectedSource,b=c._.dataStore||(c._.dataStore={id:1}),f=/<\!--\{cke_temp(comment)?\}(\d*?)--\x3e/g,e=[/<script[\s\S]*?(<\/script>|$)/gi,/<noscript[\s\S]*?<\/noscript>/gi,/<meta[\s\S]*?\/?>/gi].concat(e);a=a.replace(/\x3c!--[\s\S]*?--\x3e/g,function(a){return"\x3c!--{cke_tempcomment}"+(d.push(a)-1)+"--\x3e"});for(var g=0;g<e.length;g++)a=a.replace(e[g],function(a){a=
+a.replace(f,function(a,c,e){return d[e]});return/cke_temp(comment)?/.test(a)?a:"\x3c!--{cke_temp}"+(d.push(a)-1)+"--\x3e"});a=a.replace(f,function(a,c,e){return"\x3c!--"+z+(c?"{C}":"")+encodeURIComponent(d[e]).replace(/--/g,"%2D%2D")+"--\x3e"});a=a.replace(/<\w+(?:\s+(?:(?:[^\s=>]+\s*=\s*(?:[^'"\s>]+|'[^']*'|"[^"]*"))|[^\s=\/>]+))+\s*\/?>/g,function(a){return a.replace(/\x3c!--\{cke_protected\}([^>]*)--\x3e/g,function(a,c){b[b.id]=decodeURIComponent(c);return"{cke_protected_"+b.id++ +"}"})});return a=
+a.replace(/<(title|iframe|textarea)([^>]*)>([\s\S]*?)<\/\1>/g,function(a,d,e,b){return"\x3c"+d+e+"\x3e"+q(r(b),c)+"\x3c/"+d+"\x3e"})}CKEDITOR.htmlDataProcessor=function(a){var d,f,g=this;this.editor=a;this.dataFilter=d=new CKEDITOR.htmlParser.filter;this.htmlFilter=f=new CKEDITOR.htmlParser.filter;this.writer=new CKEDITOR.htmlParser.basicWriter;d.addRules(A);d.addRules(B,{applyToAll:!0});d.addRules(b(a,"data"),{applyToAll:!0});f.addRules(G);f.addRules(F,{applyToAll:!0});f.addRules(b(a,"html"),{applyToAll:!0});
+a.on("toHtml",function(d){d=d.data;var b=d.dataValue,f,b=b.replace(D,""),b=w(b,a),b=c(b,J),b=e(b),b=c(b,N),b=b.replace(I,"$1cke:$2"),b=b.replace(M,"\x3ccke:$1$2\x3e\x3c/cke:$1\x3e"),b=b.replace(/(<pre\b[^>]*>)(\r\n|\n)/g,"$1$2$2"),b=b.replace(/([^a-z0-9<\-])(on\w{3,})(?!>)/gi,"$1data-cke-"+CKEDITOR.rnd+"-$2");f=d.context||a.editable().getName();var g;CKEDITOR.env.ie&&9>CKEDITOR.env.version&&"pre"==f&&(f="div",b="\x3cpre\x3e"+b+"\x3c/pre\x3e",g=1);f=a.document.createElement(f);f.setHtml("a"+b);b=f.getHtml().substr(1);
+b=b.replace(new RegExp("data-cke-"+CKEDITOR.rnd+"-","ig"),"");g&&(b=b.replace(/^<pre>|<\/pre>$/gi,""));b=b.replace(P,"$1$2");b=n(b);b=r(b);f=!1===d.fixForBody?!1:h(d.enterMode,a.config.autoParagraph);b=CKEDITOR.htmlParser.fragment.fromHtml(b,d.context,f);f&&(g=b,!g.children.length&&CKEDITOR.dtd[g.name][f]&&(f=new CKEDITOR.htmlParser.element(f),g.add(f)));d.dataValue=b},null,null,5);a.on("toHtml",function(c){c.data.filter.applyTo(c.data.dataValue,!0,c.data.dontFilter,c.data.enterMode)&&a.fire("dataFiltered")},
+null,null,6);a.on("toHtml",function(a){a.data.dataValue.filterChildren(g.dataFilter,!0)},null,null,10);a.on("toHtml",function(a){a=a.data;var c=a.dataValue,d=new CKEDITOR.htmlParser.basicWriter;c.writeChildrenHtml(d);c=d.getHtml(!0);a.dataValue=v(c)},null,null,15);a.on("toDataFormat",function(c){var d=c.data.dataValue;c.data.enterMode!=CKEDITOR.ENTER_BR&&(d=d.replace(/^<br *\/?>/i,""));c.data.dataValue=CKEDITOR.htmlParser.fragment.fromHtml(d,c.data.context,h(c.data.enterMode,a.config.autoParagraph))},
+null,null,5);a.on("toDataFormat",function(a){a.data.dataValue.filterChildren(g.htmlFilter,!0)},null,null,10);a.on("toDataFormat",function(a){a.data.filter.applyTo(a.data.dataValue,!1,!0)},null,null,11);a.on("toDataFormat",function(c){var d=c.data.dataValue,e=g.writer;e.reset();d.writeChildrenHtml(e);d=e.getHtml(!0);d=r(d);d=q(d,a);c.data.dataValue=d},null,null,15)};CKEDITOR.htmlDataProcessor.prototype={toHtml:function(a,c,d,e){var b=this.editor,f,g,h,n;c&&"object"==typeof c?(f=c.context,d=c.fixForBody,
+e=c.dontFilter,g=c.filter,h=c.enterMode,n=c.protectedWhitespaces):f=c;f||null===f||(f=b.editable().getName());return b.fire("toHtml",{dataValue:a,context:f,fixForBody:d,dontFilter:e,filter:g||b.filter,enterMode:h||b.enterMode,protectedWhitespaces:n}).dataValue},toDataFormat:function(a,c){var d,e,b;c&&(d=c.context,e=c.filter,b=c.enterMode);d||null===d||(d=this.editor.editable().getName());return this.editor.fire("toDataFormat",{dataValue:a,filter:e||this.editor.filter,context:d,enterMode:b||this.editor.enterMode}).dataValue}};
+var t=/(?:&nbsp;|\xa0)$/,z="{cke_protected}",y=CKEDITOR.dtd,u="caption colgroup col thead tfoot tbody".split(" "),C=CKEDITOR.tools.extend({},y.$blockLimit,y.$block),A={elements:{input:k,textarea:k}},B={attributeNames:[[/^on/,"data-cke-pa-on"],[/^srcdoc/,"data-cke-pa-srcdoc"],[/^data-cke-expando$/,""]],elements:{iframe:function(a){if(a.attributes&&a.attributes.src){var c=a.attributes.src.toLowerCase().replace(/[^a-z]/gi,"");if(0===c.indexOf("javascript")||0===c.indexOf("data"))a.attributes["data-cke-pa-src"]=
+a.attributes.src,delete a.attributes.src}}}},G={elements:{embed:function(a){var c=a.parent;if(c&&"object"==c.name){var d=c.attributes.width,c=c.attributes.height;d&&(a.attributes.width=d);c&&(a.attributes.height=c)}},a:function(a){var c=a.attributes;if(!(a.children.length||c.name||c.id||a.attributes["data-cke-saved-name"]))return!1}}},F={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!1;for(var d=["name","href","src"],e,b=0;b<d.length;b++)e="data-cke-saved-"+d[b],e in c&&delete c[d[b]]}return a},table:function(a){a.children.slice(0).sort(function(a,c){var d,e;a.type==CKEDITOR.NODE_ELEMENT&&c.type==a.type&&(d=CKEDITOR.tools.indexOf(u,a.name),e=CKEDITOR.tools.indexOf(u,c.name));-1<d&&-1<e&&d!=e||(d=a.parent?a.getIndex():-1,e=c.parent?c.getIndex():-1);return d>e?1:-1})},param:function(a){a.children=[];a.isEmpty=!0;return a},span:function(a){"Apple-style-span"==
+a.attributes["class"]&&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];c&&c.value&&(c.value=CKEDITOR.tools.trim(c.value));a.attributes.type||(a.attributes.type="text/css")},title:function(a){var c=a.children[0];!c&&l(a,c=new CKEDITOR.htmlParser.text);c.value=a.attributes["data-cke-title"]||""},input:d,textarea:d},attributes:{"class":function(a){return CKEDITOR.tools.ltrim(a.replace(/(?:^|\s+)cke_[^\s]*/g,
+""))||!1}}};CKEDITOR.env.ie&&(F.attributes.style=function(a){return a.replace(/(^|;)([^\:]+)/g,function(a){return a.toLowerCase()})});var K=/<(a|area|img|input|source)\b([^>]*)>/gi,H=/([\w-:]+)\s*=\s*(?:(?:"[^"]*")|(?:'[^']*')|(?:[^ "'>]+))/gi,E=/^(href|src|name)$/i,N=/(?:<style(?=[ >])[^>]*>[\s\S]*?<\/style>)|(?:<(:?link|meta|base)[^>]*>)/gi,J=/(<textarea(?=[ >])[^>]*>)([\s\S]*?)(?:<\/textarea>)/gi,L=/<cke:encoded>([^<]*)<\/cke:encoded>/gi,D=new RegExp("("+x("\x3ccke:encoded\x3e")+"(.*?)"+x("\x3c/cke:encoded\x3e")+
+")|("+x("\x3c")+x("/")+"?"+x("cke:encoded\x3e")+")","gi"),I=/(<\/?)((?:object|embed|param|html|body|head|title)([\s][^>]*)?>)/gi,P=/(<\/?)cke:((?:html|body|head|title)[^>]*>)/gi,M=/<cke:(param|embed)([^>]*?)\/?>(?!\s*<\/cke:\1)/gi})();"use strict";CKEDITOR.htmlParser.element=function(b,h){this.name=b;this.attributes=h||{};this.children=[];var g=b||"",f=g.match(/^cke:(.*)/);f&&(g=f[1]);g=!!(CKEDITOR.dtd.$nonBodyContent[g]||CKEDITOR.dtd.$block[g]||CKEDITOR.dtd.$listItem[g]||CKEDITOR.dtd.$tableContent[g]||
 CKEDITOR.dtd.$nonEditable[g]||"br"==g);this.isEmpty=!!CKEDITOR.dtd.$empty[b];this.isUnknown=!CKEDITOR.dtd[b];this._={isBlockLike:g,hasInlineStarted:this.isEmpty||!g}};CKEDITOR.htmlParser.cssStyle=function(b){var h={};((b instanceof CKEDITOR.htmlParser.element?b.attributes.style:b)||"").replace(/&quot;/g,'"').replace(/\s*([^ :;]+)\s*:\s*([^;]+)\s*(?=;|$)/g,function(b,f,a){"font-family"==f&&(a=a.replace(/["']/g,""));h[f.toLowerCase()]=a});return{rules:h,populate:function(b){var f=this.toString();f&&
 (b instanceof CKEDITOR.dom.element?b.setAttribute("style",f):b instanceof CKEDITOR.htmlParser.element?b.attributes.style=f:b.style=f)},toString:function(){var b=[],f;for(f in h)h[f]&&b.push(f,":",h[f],";");return b.join("")}}};(function(){function b(b){return function(a){return a.type==CKEDITOR.NODE_ELEMENT&&("string"==typeof b?a.name==b:a.name in b)}}var h=function(b,a){b=b[0];a=a[0];return b<a?-1:b>a?1:0},g=CKEDITOR.htmlParser.fragment.prototype;CKEDITOR.htmlParser.element.prototype=CKEDITOR.tools.extend(new CKEDITOR.htmlParser.node,
-{type:CKEDITOR.NODE_ELEMENT,add:g.add,clone:function(){return new CKEDITOR.htmlParser.element(this.name,this.attributes)},filter:function(b,a){var g=this,h,l;a=g.getFilterContext(a);if(!g.parent)b.onRoot(a,g);for(;;){h=g.name;if(!(l=b.onElementName(a,h)))return this.remove(),!1;g.name=l;if(!(g=b.onElement(a,g)))return this.remove(),!1;if(g!==this)return this.replaceWith(g),!1;if(g.name==h)break;if(g.type!=CKEDITOR.NODE_ELEMENT)return this.replaceWith(g),!1;if(!g.name)return this.replaceWithChildren(),
-!1}h=g.attributes;var d,e;for(d in h){for(l=h[d];;)if(e=b.onAttributeName(a,d))if(e!=d)delete h[d],d=e;else break;else{delete h[d];break}e&&(!1===(l=b.onAttribute(a,g,e,l))?delete h[e]:h[e]=l)}g.isEmpty||this.filterChildren(b,!1,a);return!0},filterChildren:g.filterChildren,writeHtml:function(b,a){a&&this.filter(a);var g=this.name,k=[],l=this.attributes,d,e;b.openTag(g,l);for(d in l)k.push([d,l[d]]);b.sortAttributes&&k.sort(h);d=0;for(e=k.length;d<e;d++)l=k[d],b.attribute(l[0],l[1]);b.openTagClose(g,
+{type:CKEDITOR.NODE_ELEMENT,add:g.add,clone:function(){return new CKEDITOR.htmlParser.element(this.name,this.attributes)},filter:function(b,a){var g=this,h,k;a=g.getFilterContext(a);if(!g.parent)b.onRoot(a,g);for(;;){h=g.name;if(!(k=b.onElementName(a,h)))return this.remove(),!1;g.name=k;if(!(g=b.onElement(a,g)))return this.remove(),!1;if(g!==this)return this.replaceWith(g),!1;if(g.name==h)break;if(g.type!=CKEDITOR.NODE_ELEMENT)return this.replaceWith(g),!1;if(!g.name)return this.replaceWithChildren(),
+!1}h=g.attributes;var d,e;for(d in h){for(k=h[d];;)if(e=b.onAttributeName(a,d))if(e!=d)delete h[d],d=e;else break;else{delete h[d];break}e&&(!1===(k=b.onAttribute(a,g,e,k))?delete h[e]:h[e]=k)}g.isEmpty||this.filterChildren(b,!1,a);return!0},filterChildren:g.filterChildren,writeHtml:function(b,a){a&&this.filter(a);var g=this.name,l=[],k=this.attributes,d,e;b.openTag(g,k);for(d in k)l.push([d,k[d]]);b.sortAttributes&&l.sort(h);d=0;for(e=l.length;d<e;d++)k=l[d],b.attribute(k[0],k[1]);b.openTagClose(g,
 this.isEmpty);this.writeChildrenHtml(b);this.isEmpty||b.closeTag(g)},writeChildrenHtml:g.writeChildrenHtml,replaceWithChildren:function(){for(var b=this.children,a=b.length;a;)b[--a].insertAfter(this);this.remove()},forEach:g.forEach,getFirst:function(f){if(!f)return this.children.length?this.children[0]:null;"function"!=typeof f&&(f=b(f));for(var a=0,g=this.children.length;a<g;++a)if(f(this.children[a]))return this.children[a];return null},getHtml:function(){var b=new CKEDITOR.htmlParser.basicWriter;
 this.writeChildrenHtml(b);return b.getHtml()},setHtml:function(b){b=this.children=CKEDITOR.htmlParser.fragment.fromHtml(b).children;for(var a=0,g=b.length;a<g;++a)b[a].parent=this},getOuterHtml:function(){var b=new CKEDITOR.htmlParser.basicWriter;this.writeHtml(b);return b.getHtml()},split:function(b){for(var a=this.children.splice(b,this.children.length-b),g=this.clone(),h=0;h<a.length;++h)a[h].parent=g;g.children=a;a[0]&&(a[0].previous=null);0<b&&(this.children[b-1].next=null);this.parent.add(g,
-this.getIndex()+1);return g},find:function(b,a){void 0===a&&(a=!1);var g=[],h;for(h=0;h<this.children.length;h++){var l=this.children[h];"function"==typeof b&&b(l)?g.push(l):"string"==typeof b&&l.name===b&&g.push(l);a&&l.find&&(g=g.concat(l.find(b,a)))}return g},findOne:function(b,a){var g=null,h=CKEDITOR.tools.array.find(this.children,function(h){var d="function"===typeof b?b(h):h.name===b;if(d||!a)return d;h.children&&h.findOne&&(g=h.findOne(b,!0));return!!g});return g||h||null},addClass:function(b){if(!this.hasClass(b)){var a=
+this.getIndex()+1);return g},find:function(b,a){void 0===a&&(a=!1);var g=[],h;for(h=0;h<this.children.length;h++){var k=this.children[h];"function"==typeof b&&b(k)?g.push(k):"string"==typeof b&&k.name===b&&g.push(k);a&&k.find&&(g=g.concat(k.find(b,a)))}return g},findOne:function(b,a){var g=null,h=CKEDITOR.tools.array.find(this.children,function(h){var d="function"===typeof b?b(h):h.name===b;if(d||!a)return d;h.children&&h.findOne&&(g=h.findOne(b,!0));return!!g});return g||h||null},addClass:function(b){if(!this.hasClass(b)){var a=
 this.attributes["class"]||"";this.attributes["class"]=a+(a?" ":"")+b}},removeClass:function(b){var a=this.attributes["class"];a&&((a=CKEDITOR.tools.trim(a.replace(new RegExp("(?:\\s+|^)"+b+"(?:\\s+|$)")," ")))?this.attributes["class"]=a:delete this.attributes["class"])},hasClass:function(b){var a=this.attributes["class"];return a?(new RegExp("(?:^|\\s)"+b+"(?\x3d\\s|$)")).test(a):!1},getFilterContext:function(b){var a=[];b||(b={nonEditable:!1,nestedEditable:!1});b.nonEditable||"false"!=this.attributes.contenteditable?
 b.nonEditable&&!b.nestedEditable&&"true"==this.attributes.contenteditable&&a.push("nestedEditable",!0):a.push("nonEditable",!0);if(a.length){b=CKEDITOR.tools.copy(b);for(var g=0;g<a.length;g+=2)b[a[g]]=a[g+1]}return b}},!0)})();(function(){var b=/{([^}]+)}/g;CKEDITOR.template=function(b){this.source="function"===typeof b?b:String(b)};CKEDITOR.template.prototype.output=function(h,g){var f=("function"===typeof this.source?this.source(h):this.source).replace(b,function(a,b){return void 0!==h[b]?h[b]:
 a});return g?g.push(f):f}})();delete CKEDITOR.loadFullCore;CKEDITOR.instances={};CKEDITOR.document=new CKEDITOR.dom.document(document);CKEDITOR.add=function(b){function h(){CKEDITOR.currentInstance==b&&(CKEDITOR.currentInstance=null,CKEDITOR.fire("currentInstance"))}CKEDITOR.instances[b.name]=b;b.on("focus",function(){CKEDITOR.currentInstance!=b&&(CKEDITOR.currentInstance=b,CKEDITOR.fire("currentInstance"))});b.on("blur",h);b.on("destroy",h);CKEDITOR.fire("instance",null,b)};CKEDITOR.remove=function(b){delete CKEDITOR.instances[b.name]};
 (function(){var b={};CKEDITOR.addTemplate=function(h,g){var f=b[h];if(f)return f;f={name:h,source:g};CKEDITOR.fire("template",f);return b[h]=new CKEDITOR.template(f.source)};CKEDITOR.getTemplate=function(h){return b[h]}})();(function(){var b=[];CKEDITOR.addCss=function(h){b.push(h)};CKEDITOR.getCss=function(){return b.join("\n")}})();CKEDITOR.on("instanceDestroyed",function(){CKEDITOR.tools.isEmpty(this.instances)&&CKEDITOR.fire("reset")});CKEDITOR.TRISTATE_ON=1;CKEDITOR.TRISTATE_OFF=2;CKEDITOR.TRISTATE_DISABLED=
 0;(function(){CKEDITOR.inline=function(b,h){b=CKEDITOR.editor._getEditorElement(b);if(!b)return null;var g=new CKEDITOR.editor(h,b,CKEDITOR.ELEMENT_MODE_INLINE),f=b.is("textarea")?b:null;f?(g.setData(f.getValue(),null,!0),b=CKEDITOR.dom.element.createFromHtml('\x3cdiv contenteditable\x3d"'+!!g.readOnly+'" class\x3d"cke_textarea_inline"\x3e'+f.getValue()+"\x3c/div\x3e",CKEDITOR.document),b.insertAfter(f),f.hide(),f.$.form&&g._attachToForm()):g.setData(b.getHtml(),null,!0);g.on("loaded",function(){g.fire("uiReady");
 g.editable(b);g.container=b;g.ui.contentsElement=b;g.setData(g.getData(1));g.resetDirty();g.fire("contentDom");g.mode="wysiwyg";g.fire("mode");g.status="ready";g.fireOnce("instanceReady");CKEDITOR.fire("instanceReady",null,g)},null,null,1E4);g.on("destroy",function(){var a=g.container;f&&a&&(a.clearCustomData(),a.remove());f&&f.show();g.element.clearCustomData();delete g.element});return g};CKEDITOR.inlineAll=function(){var b,h,g;for(g in CKEDITOR.dtd.$editable)for(var f=CKEDITOR.document.getElementsByTag(g),
-a=0,m=f.count();a<m;a++)b=f.getItem(a),"true"==b.getAttribute("contenteditable")&&(h={element:b,config:{}},!1!==CKEDITOR.fire("inline",h)&&CKEDITOR.inline(b,h.config))};CKEDITOR.domReady(function(){!CKEDITOR.disableAutoInline&&CKEDITOR.inlineAll()})})();CKEDITOR.replaceClass="ckeditor";(function(){function b(b,a,m,k){b=CKEDITOR.editor._getEditorElement(b);if(!b)return null;var l=new CKEDITOR.editor(a,b,k);k==CKEDITOR.ELEMENT_MODE_REPLACE&&(b.setStyle("visibility","hidden"),l._.required=b.hasAttribute("required"),
-b.removeAttribute("required"));m&&l.setData(m,null,!0);l.on("loaded",function(){l.isDestroyed()||l.isDetached()||(g(l),k==CKEDITOR.ELEMENT_MODE_REPLACE&&l.config.autoUpdateElement&&b.$.form&&l._attachToForm(),l.setMode(l.config.startupMode,function(){l.resetDirty();l.status="ready";l.fireOnce("instanceReady");CKEDITOR.fire("instanceReady",null,l)}))});l.on("destroy",h);return l}function h(){var b=this.container,a=this.element;b&&(b.clearCustomData(),b.remove());a&&(a.clearCustomData(),this.elementMode==
-CKEDITOR.ELEMENT_MODE_REPLACE&&(a.show(),this._.required&&a.setAttribute("required","required")),delete this.element)}function g(b){var a=b.name,g=b.element,h=b.elementMode,l=b.fire("uiSpace",{space:"top",html:""}).html,d=b.fire("uiSpace",{space:"bottom",html:""}).html,e=new CKEDITOR.template('\x3c{outerEl} id\x3d"cke_{name}" class\x3d"{id} cke cke_reset cke_chrome cke_editor_{name} cke_{langDir} '+CKEDITOR.env.cssClass+'"  dir\x3d"{langDir}" lang\x3d"{langCode}" role\x3d"application"'+(b.title?' aria-labelledby\x3d"cke_{name}_arialbl"':
-"")+"\x3e"+(b.title?'\x3cspan id\x3d"cke_{name}_arialbl" class\x3d"cke_voice_label"\x3e{voiceLabel}\x3c/span\x3e':"")+'\x3c{outerEl} class\x3d"cke_inner cke_reset" role\x3d"presentation"\x3e{topHtml}\x3c{outerEl} id\x3d"{contentId}" class\x3d"cke_contents cke_reset" role\x3d"presentation"\x3e\x3c/{outerEl}\x3e{bottomHtml}\x3c/{outerEl}\x3e\x3c/{outerEl}\x3e'),a=CKEDITOR.dom.element.createFromHtml(e.output({id:b.id,name:a,langDir:b.lang.dir,langCode:b.langCode,voiceLabel:b.title,topHtml:l?'\x3cspan id\x3d"'+
-b.ui.spaceId("top")+'" class\x3d"cke_top cke_reset_all" role\x3d"presentation" style\x3d"height:auto"\x3e'+l+"\x3c/span\x3e":"",contentId:b.ui.spaceId("contents"),bottomHtml:d?'\x3cspan id\x3d"'+b.ui.spaceId("bottom")+'" class\x3d"cke_bottom cke_reset_all" role\x3d"presentation"\x3e'+d+"\x3c/span\x3e":"",outerEl:CKEDITOR.env.ie?"span":"div"}));h==CKEDITOR.ELEMENT_MODE_REPLACE?(g.hide(),a.insertAfter(g)):g.append(a);b.container=a;b.ui.contentsElement=b.ui.space("contents");l&&b.ui.space("top").unselectable();
+a=0,m=f.count();a<m;a++)b=f.getItem(a),"true"==b.getAttribute("contenteditable")&&(h={element:b,config:{}},!1!==CKEDITOR.fire("inline",h)&&CKEDITOR.inline(b,h.config))};CKEDITOR.domReady(function(){!CKEDITOR.disableAutoInline&&CKEDITOR.inlineAll()})})();CKEDITOR.replaceClass="ckeditor";(function(){function b(b,a,m,l){b=CKEDITOR.editor._getEditorElement(b);if(!b)return null;var k=new CKEDITOR.editor(a,b,l);l==CKEDITOR.ELEMENT_MODE_REPLACE&&(b.setStyle("visibility","hidden"),k._.required=b.hasAttribute("required"),
+b.removeAttribute("required"));m&&k.setData(m,null,!0);k.on("loaded",function(){k.isDestroyed()||k.isDetached()||(g(k),l==CKEDITOR.ELEMENT_MODE_REPLACE&&k.config.autoUpdateElement&&b.$.form&&k._attachToForm(),k.setMode(k.config.startupMode,function(){k.resetDirty();k.status="ready";k.fireOnce("instanceReady");CKEDITOR.fire("instanceReady",null,k)}))});k.on("destroy",h);return k}function h(){var b=this.container,a=this.element;b&&(b.clearCustomData(),b.remove());a&&(a.clearCustomData(),this.elementMode==
+CKEDITOR.ELEMENT_MODE_REPLACE&&(a.show(),this._.required&&a.setAttribute("required","required")),delete this.element)}function g(b){var a=b.name,g=b.element,h=b.elementMode,k=b.fire("uiSpace",{space:"top",html:""}).html,d=b.fire("uiSpace",{space:"bottom",html:""}).html,e=new CKEDITOR.template('\x3c{outerEl} id\x3d"cke_{name}" class\x3d"{id} cke cke_reset cke_chrome cke_editor_{name} cke_{langDir} '+CKEDITOR.env.cssClass+'"  dir\x3d"{langDir}" lang\x3d"{langCode}" role\x3d"application"'+(b.title?' aria-labelledby\x3d"cke_{name}_arialbl"':
+"")+"\x3e"+(b.title?'\x3cspan id\x3d"cke_{name}_arialbl" class\x3d"cke_voice_label"\x3e{voiceLabel}\x3c/span\x3e':"")+'\x3c{outerEl} class\x3d"cke_inner cke_reset" role\x3d"presentation"\x3e{topHtml}\x3c{outerEl} id\x3d"{contentId}" class\x3d"cke_contents cke_reset" role\x3d"presentation"\x3e\x3c/{outerEl}\x3e{bottomHtml}\x3c/{outerEl}\x3e\x3c/{outerEl}\x3e'),a=CKEDITOR.dom.element.createFromHtml(e.output({id:b.id,name:a,langDir:b.lang.dir,langCode:b.langCode,voiceLabel:b.title,topHtml:k?'\x3cspan id\x3d"'+
+b.ui.spaceId("top")+'" class\x3d"cke_top cke_reset_all" role\x3d"presentation" style\x3d"height:auto"\x3e'+k+"\x3c/span\x3e":"",contentId:b.ui.spaceId("contents"),bottomHtml:d?'\x3cspan id\x3d"'+b.ui.spaceId("bottom")+'" class\x3d"cke_bottom cke_reset_all" role\x3d"presentation"\x3e'+d+"\x3c/span\x3e":"",outerEl:CKEDITOR.env.ie?"span":"div"}));h==CKEDITOR.ELEMENT_MODE_REPLACE?(g.hide(),a.insertAfter(g)):g.append(a);b.container=a;b.ui.contentsElement=b.ui.space("contents");k&&b.ui.space("top").unselectable();
 d&&b.ui.space("bottom").unselectable();g=b.config.width;h=b.config.height;g&&a.setStyle("width",CKEDITOR.tools.cssLength(g));h&&b.ui.space("contents").setStyle("height",CKEDITOR.tools.cssLength(h));a.disableContextMenu();CKEDITOR.env.webkit&&a.on("focus",function(){b.focus()});b.fireOnce("uiReady")}CKEDITOR.replace=function(f,a){return b(f,a,null,CKEDITOR.ELEMENT_MODE_REPLACE)};CKEDITOR.appendTo=function(f,a,g){return b(f,a,g,CKEDITOR.ELEMENT_MODE_APPENDTO)};CKEDITOR.replaceAll=function(){for(var b=
 document.getElementsByTagName("textarea"),a=0;a<b.length;a++){var g=null,h=b[a];if(h.name||h.id){if("string"==typeof arguments[0]){if(!(new RegExp("(?:^|\\s)"+arguments[0]+"(?:$|\\s)")).test(h.className))continue}else if("function"==typeof arguments[0]&&(g={},!1===arguments[0](h,g)))continue;this.replace(h,g)}}};CKEDITOR.editor.prototype.addMode=function(b,a){(this._.modes||(this._.modes={}))[b]=a};CKEDITOR.editor.prototype.setMode=function(b,a){var g=this,h=this._.modes;if(b!=g.mode&&h&&h[b]){g.fire("beforeSetMode",
-b);if(g.mode){var l=g.checkDirty(),h=g._.previousModeData,d,e=0;g.fire("beforeModeUnload");g.editable(0);g._.previousMode=g.mode;g._.previousModeData=d=g.getData(1);"source"==g.mode&&h==d&&(g.fire("lockSnapshot",{forceUpdate:!0}),e=1);g.ui.space("contents").setHtml("");g.mode=""}else g._.previousModeData=g.getData(1);this._.modes[b](function(){g.mode=b;void 0!==l&&!l&&g.resetDirty();e?g.fire("unlockSnapshot"):"wysiwyg"==b&&g.fire("saveSnapshot");setTimeout(function(){g.isDestroyed()||g.isDetached()||
-(g.fire("mode"),a&&a.call(g))},0)})}};CKEDITOR.editor.prototype.resize=function(b,a,g,h){var l=this.container,d=this.ui.space("contents"),e=CKEDITOR.env.webkit&&this.document&&this.document.getWindow().$.frameElement;h=h?this.container.getFirst(function(a){return a.type==CKEDITOR.NODE_ELEMENT&&a.hasClass("cke_inner")}):l;h.setSize("width",b,!0);e&&(e.style.width="1%");var c=(h.$.offsetHeight||0)-(d.$.clientHeight||0),l=Math.max(a-(g?0:c),0);a=g?a+c:a;d.setStyle("height",l+"px");e&&(e.style.width=
-"100%");this.fire("resize",{outerHeight:a,contentsHeight:l,outerWidth:b||h.getSize("width")})};CKEDITOR.editor.prototype.getResizable=function(b){return b?this.ui.space("contents"):this.container};CKEDITOR.domReady(function(){CKEDITOR.replaceClass&&CKEDITOR.replaceAll(CKEDITOR.replaceClass)})})();CKEDITOR.config.startupMode="wysiwyg";(function(){function b(a){var c=a.editor,d=a.data.path,b=d.blockLimit,e=a.data.selection,g=e.getRanges()[0],n;if(CKEDITOR.env.gecko||CKEDITOR.env.ie&&CKEDITOR.env.needsBrFiller)if(e=
-h(e,d))e.appendBogus(),n=CKEDITOR.env.ie&&!CKEDITOR.env.edge||CKEDITOR.env.edge&&c._.previousActive;k(c,d.block,b)&&g.collapsed&&!g.getCommonAncestor().isReadOnly()&&(d=g.clone(),d.enlarge(CKEDITOR.ENLARGE_BLOCK_CONTENTS),b=new CKEDITOR.dom.walker(d),b.guard=function(a){return!f(a)||a.type==CKEDITOR.NODE_COMMENT||a.isReadOnly()},!b.checkForward()||d.checkStartOfBlock()&&d.checkEndOfBlock())&&(c=g.fixBlock(!0,c.activeEnterMode==CKEDITOR.ENTER_DIV?"div":"p"),CKEDITOR.env.needsBrFiller||(c=c.getFirst(f))&&
-c.type==CKEDITOR.NODE_TEXT&&CKEDITOR.tools.trim(c.getText()).match(/^(?:&nbsp;|\xa0)$/)&&c.remove(),n=1,a.cancel());n&&g.select()}function h(a,c){if(a.isFake)return 0;var d=c.block||c.blockLimit,b=d&&d.getLast(f);if(!(!d||!d.isBlockBoundary()||b&&b.type==CKEDITOR.NODE_ELEMENT&&b.isBlockBoundary()||d.is("pre")||d.getBogus()))return d}function g(a){var c=a.data.getTarget();c.is("input")&&(c=c.getAttribute("type"),"submit"!=c&&"reset"!=c||a.data.preventDefault())}function f(a){return n(a)&&w(a)}function a(a,
-c){return function(d){var b=d.data.$.toElement||d.data.$.fromElement||d.data.$.relatedTarget;(b=b&&b.nodeType==CKEDITOR.NODE_ELEMENT?new CKEDITOR.dom.element(b):null)&&(c.equals(b)||c.contains(b))||a.call(this,d)}}function m(a){function c(a){return function(c,b){b&&c.type==CKEDITOR.NODE_ELEMENT&&c.is(e)&&(d=c);if(!(b||!f(c)||a&&r(c)))return!1}}var d,b=a.getRanges()[0];a=a.root;var e={table:1,ul:1,ol:1,dl:1};if(b.startPath().contains(e)){var g=b.clone();g.collapse(1);g.setStartAt(a,CKEDITOR.POSITION_AFTER_START);
-a=new CKEDITOR.dom.walker(g);a.guard=c();a.checkBackward();if(d)return g=b.clone(),g.collapse(),g.setEndAt(d,CKEDITOR.POSITION_AFTER_END),a=new CKEDITOR.dom.walker(g),a.guard=c(!0),d=!1,a.checkForward(),d}return null}function k(a,c,d){return!1!==a.config.autoParagraph&&a.activeEnterMode!=CKEDITOR.ENTER_BR&&(a.editable().equals(d)&&!c||c&&"true"==c.getAttribute("contenteditable"))}function l(a){return a.activeEnterMode!=CKEDITOR.ENTER_BR&&!1!==a.config.autoParagraph?a.activeEnterMode==CKEDITOR.ENTER_DIV?
-"div":"p":!1}function d(a){a&&a.isEmptyInlineRemoveable()&&a.remove()}function e(a){var c=a.editor;c.getSelection().scrollIntoView();setTimeout(function(){c.fire("saveSnapshot")},0)}function c(a,c,d){var b=a.getCommonAncestor(c);for(c=a=d?c:a;(a=a.getParent())&&!b.equals(a)&&1==a.getChildCount();)c=a;c.remove()}var n,w,z,r,p,q,u,t,y,v;CKEDITOR.editable=CKEDITOR.tools.createClass({base:CKEDITOR.dom.element,$:function(a,c){this.base(c.$||c);this.editor=a;this.status="unloaded";this.hasFocus=!1;this.setup()},
+b);if(g.mode){var k=g.checkDirty(),h=g._.previousModeData,d,e=0;g.fire("beforeModeUnload");g.editable(0);g._.previousMode=g.mode;g._.previousModeData=d=g.getData(1);"source"==g.mode&&h==d&&(g.fire("lockSnapshot",{forceUpdate:!0}),e=1);g.ui.space("contents").setHtml("");g.mode=""}else g._.previousModeData=g.getData(1);this._.modes[b](function(){g.mode=b;void 0!==k&&!k&&g.resetDirty();e?g.fire("unlockSnapshot"):"wysiwyg"==b&&g.fire("saveSnapshot");setTimeout(function(){g.isDestroyed()||g.isDetached()||
+(g.fire("mode"),a&&a.call(g))},0)})}};CKEDITOR.editor.prototype.resize=function(b,a,g,h){var k=this.container,d=this.ui.space("contents"),e=CKEDITOR.env.webkit&&this.document&&this.document.getWindow().$.frameElement;h=h?this.container.getFirst(function(a){return a.type==CKEDITOR.NODE_ELEMENT&&a.hasClass("cke_inner")}):k;h.setSize("width",b,!0);e&&(e.style.width="1%");var c=(h.$.offsetHeight||0)-(d.$.clientHeight||0),k=Math.max(a-(g?0:c),0);a=g?a+c:a;d.setStyle("height",k+"px");e&&(e.style.width=
+"100%");this.fire("resize",{outerHeight:a,contentsHeight:k,outerWidth:b||h.getSize("width")})};CKEDITOR.editor.prototype.getResizable=function(b){return b?this.ui.space("contents"):this.container};CKEDITOR.domReady(function(){CKEDITOR.replaceClass&&CKEDITOR.replaceAll(CKEDITOR.replaceClass)})})();CKEDITOR.config.startupMode="wysiwyg";(function(){function b(a){var c=a.editor,d=a.data.path,b=d.blockLimit,e=a.data.selection,g=e.getRanges()[0],n;if(CKEDITOR.env.gecko||CKEDITOR.env.ie&&CKEDITOR.env.needsBrFiller)if(e=
+h(e,d))e.appendBogus(),n=CKEDITOR.env.ie&&!CKEDITOR.env.edge||CKEDITOR.env.edge&&c._.previousActive;l(c,d.block,b)&&g.collapsed&&!g.getCommonAncestor().isReadOnly()&&(d=g.clone(),d.enlarge(CKEDITOR.ENLARGE_BLOCK_CONTENTS),b=new CKEDITOR.dom.walker(d),b.guard=function(a){return!f(a)||a.type==CKEDITOR.NODE_COMMENT||a.isReadOnly()},!b.checkForward()||d.checkStartOfBlock()&&d.checkEndOfBlock())&&(c=g.fixBlock(!0,c.activeEnterMode==CKEDITOR.ENTER_DIV?"div":"p"),CKEDITOR.env.needsBrFiller||(c=c.getFirst(f))&&
+c.type==CKEDITOR.NODE_TEXT&&CKEDITOR.tools.trim(c.getText()).match(/^(?:&nbsp;|\xa0)$/)&&c.remove(),n=1,a.cancel());n&&g.select()}function h(a,c){if(a.isFake)return 0;var d=c.block||c.blockLimit,b=d&&d.getLast(f);if(!(!d||!d.isBlockBoundary()||b&&b.type==CKEDITOR.NODE_ELEMENT&&b.isBlockBoundary()||d.is("pre")||d.getBogus()))return d}function g(a){var c=a.data.getTarget();c.is("input")&&(c=c.getAttribute("type"),"submit"!=c&&"reset"!=c||a.data.preventDefault())}function f(a){return n(a)&&v(a)}function a(a,
+c){return function(d){var b=d.data.$.toElement||d.data.$.fromElement||d.data.$.relatedTarget;(b=b&&b.nodeType==CKEDITOR.NODE_ELEMENT?new CKEDITOR.dom.element(b):null)&&(c.equals(b)||c.contains(b))||a.call(this,d)}}function m(a){function c(a){return function(c,b){b&&c.type==CKEDITOR.NODE_ELEMENT&&c.is(e)&&(d=c);if(!(b||!f(c)||a&&p(c)))return!1}}var d,b=a.getRanges()[0];a=a.root;var e={table:1,ul:1,ol:1,dl:1};if(b.startPath().contains(e)){var g=b.clone();g.collapse(1);g.setStartAt(a,CKEDITOR.POSITION_AFTER_START);
+a=new CKEDITOR.dom.walker(g);a.guard=c();a.checkBackward();if(d)return g=b.clone(),g.collapse(),g.setEndAt(d,CKEDITOR.POSITION_AFTER_END),a=new CKEDITOR.dom.walker(g),a.guard=c(!0),d=!1,a.checkForward(),d}return null}function l(a,c,d){return!1!==a.config.autoParagraph&&a.activeEnterMode!=CKEDITOR.ENTER_BR&&(a.editable().equals(d)&&!c||c&&"true"==c.getAttribute("contenteditable"))}function k(a){return a.activeEnterMode!=CKEDITOR.ENTER_BR&&!1!==a.config.autoParagraph?a.activeEnterMode==CKEDITOR.ENTER_DIV?
+"div":"p":!1}function d(a){a&&a.isEmptyInlineRemoveable()&&a.remove()}function e(a){var c=a.editor;c.getSelection().scrollIntoView();setTimeout(function(){c.fire("saveSnapshot")},0)}function c(a,c,d){var b=a.getCommonAncestor(c);for(c=a=d?c:a;(a=a.getParent())&&!b.equals(a)&&1==a.getChildCount();)c=a;c.remove()}var n,v,x,p,r,q,w,t,z,y;CKEDITOR.editable=CKEDITOR.tools.createClass({base:CKEDITOR.dom.element,$:function(a,c){this.base(c.$||c);this.editor=a;this.status="unloaded";this.hasFocus=!1;this.setup()},
 proto:{focus:function(){var a;if(CKEDITOR.env.webkit&&!this.hasFocus&&(a=this.editor._.previousActive||this.getDocument().getActive(),this.contains(a))){a.focus();return}CKEDITOR.env.edge&&14<CKEDITOR.env.version&&!this.hasFocus&&this.getDocument().equals(CKEDITOR.document)&&(this.editor._.previousScrollTop=this.$.scrollTop);try{if(!CKEDITOR.env.ie||CKEDITOR.env.edge&&14<CKEDITOR.env.version||!this.getDocument().equals(CKEDITOR.document))if(CKEDITOR.env.chrome){var c=this.$.scrollTop;this.$.focus();
 this.$.scrollTop=c}else this.$.focus();else this.$.setActive()}catch(d){if(!CKEDITOR.env.ie)throw d;}CKEDITOR.env.safari&&!this.isInline()&&(a=CKEDITOR.document.getActive(),a.equals(this.getWindow().getFrame())||this.getWindow().focus())},on:function(c,d){var b=Array.prototype.slice.call(arguments,0);CKEDITOR.env.ie&&/^focus|blur$/.exec(c)&&(c="focus"==c?"focusin":"focusout",d=a(d,this),b[0]=c,b[1]=d);return CKEDITOR.dom.element.prototype.on.apply(this,b)},attachListener:function(a){!this._.listeners&&
 (this._.listeners=[]);var c=Array.prototype.slice.call(arguments,1),c=a.on.apply(a,c);this._.listeners.push(c);return c},clearListeners:function(){var a=this._.listeners;try{for(;a.length;)a.pop().removeListener()}catch(c){}},restoreAttrs:function(){var a=this._.attrChanges,c,d;for(d in a)a.hasOwnProperty(d)&&(c=a[d],null!==c?this.setAttribute(d,c):this.removeAttribute(d))},attachClass:function(a){var c=this.getCustomData("classes");this.hasClass(a)||(!c&&(c=[]),c.push(a),this.setCustomData("classes",
 c),this.addClass(a))},changeAttr:function(a,c){var d=this.getAttribute(a);c!==d&&(!this._.attrChanges&&(this._.attrChanges={}),a in this._.attrChanges||(this._.attrChanges[a]=d),this.setAttribute(a,c))},insertText:function(a){this.editor.focus();this.insertHtml(this.transformPlainTextToHtml(a),"text")},transformPlainTextToHtml:function(a){var c=this.editor.getSelection().getStartElement().hasAscendant("pre",!0)?CKEDITOR.ENTER_BR:this.editor.activeEnterMode;return CKEDITOR.tools.transformPlainTextToHtml(a,
 c)},insertHtml:function(a,c,d){var b=this.editor;b.focus();b.fire("saveSnapshot");d||(d=b.getSelection().getRanges()[0]);q(this,c||"html",a,d);d.select();e(this);this.editor.fire("afterInsertHtml",{})},insertHtmlIntoRange:function(a,c,d){q(this,d||"html",a,c);this.editor.fire("afterInsertHtml",{intoRange:c})},insertElement:function(a,c){var d=this.editor;d.focus();d.fire("saveSnapshot");var b=d.activeEnterMode,d=d.getSelection(),g=a.getName(),g=CKEDITOR.dtd.$block[g];c||(c=d.getRanges()[0]);this.insertElementIntoRange(a,
-c)&&(c.moveToPosition(a,CKEDITOR.POSITION_AFTER_END),g&&((g=a.getNext(function(a){return f(a)&&!r(a)}))&&g.type==CKEDITOR.NODE_ELEMENT&&g.is(CKEDITOR.dtd.$block)?g.getDtd()["#"]?c.moveToElementEditStart(g):c.moveToElementEditEnd(a):g||b==CKEDITOR.ENTER_BR||(g=c.fixBlock(!0,b==CKEDITOR.ENTER_DIV?"div":"p"),c.moveToElementEditStart(g))));d.selectRanges([c]);e(this)},insertElementIntoSelection:function(a){this.insertElement(a)},insertElementIntoRange:function(a,c){var b=this.editor,e=b.config.enterMode,
-f=a.getName(),g=CKEDITOR.dtd.$block[f];if(c.checkReadOnly())return!1;c.deleteContents(1);c.startContainer.type==CKEDITOR.NODE_ELEMENT&&(c.startContainer.is({tr:1,table:1,tbody:1,thead:1,tfoot:1})?u(c):c.startContainer.is(CKEDITOR.dtd.$list)&&t(c));var h,n;if(g)for(;(h=c.getCommonAncestor(0,1))&&(n=CKEDITOR.dtd[h.getName()])&&(!n||!n[f]);)if(h.getName()in CKEDITOR.dtd.span){var g=c.splitElement(h),k=c.createBookmark();d(h);d(g);c.moveToBookmark(k)}else c.checkStartOfBlock()&&c.checkEndOfBlock()?(c.setStartBefore(h),
+c)&&(c.moveToPosition(a,CKEDITOR.POSITION_AFTER_END),g&&((g=a.getNext(function(a){return f(a)&&!p(a)}))&&g.type==CKEDITOR.NODE_ELEMENT&&g.is(CKEDITOR.dtd.$block)?g.getDtd()["#"]?c.moveToElementEditStart(g):c.moveToElementEditEnd(a):g||b==CKEDITOR.ENTER_BR||(g=c.fixBlock(!0,b==CKEDITOR.ENTER_DIV?"div":"p"),c.moveToElementEditStart(g))));d.selectRanges([c]);e(this)},insertElementIntoSelection:function(a){this.insertElement(a)},insertElementIntoRange:function(a,c){var b=this.editor,e=b.config.enterMode,
+f=a.getName(),g=CKEDITOR.dtd.$block[f];if(c.checkReadOnly())return!1;c.deleteContents(1);c.startContainer.type==CKEDITOR.NODE_ELEMENT&&(c.startContainer.is({tr:1,table:1,tbody:1,thead:1,tfoot:1})?w(c):c.startContainer.is(CKEDITOR.dtd.$list)&&t(c));var h,n;if(g)for(;(h=c.getCommonAncestor(0,1))&&(n=CKEDITOR.dtd[h.getName()])&&(!n||!n[f]);)if(h.getName()in CKEDITOR.dtd.span){var g=c.splitElement(h),k=c.createBookmark();d(h);d(g);c.moveToBookmark(k)}else c.checkStartOfBlock()&&c.checkEndOfBlock()?(c.setStartBefore(h),
 c.collapse(!0),h.remove()):c.splitBlock(e==CKEDITOR.ENTER_DIV?"div":"p",b.editable());c.insertNode(a);return!0},setData:function(a,c){c||(a=this.editor.dataProcessor.toHtml(a));this.setHtml(a);this.fixInitialSelection();"unloaded"==this.status&&(this.status="ready");this.editor.fire("dataReady")},getData:function(a){var c=this.getHtml();a||(c=this.editor.dataProcessor.toDataFormat(c));return c},setReadOnly:function(a){this.setAttribute("contenteditable",!a)},detach:function(){this.status="detached";
 this.editor.setData(this.editor.getData(),{internal:!0});this.clearListeners();try{this._.cleanCustomData()}catch(a){if(!CKEDITOR.env.ie||-2146828218!==a.number)throw a;}this.editor.fire("contentDomUnload");delete this.editor.document;delete this.editor.window;delete this.editor},isInline:function(){return this.getDocument().equals(CKEDITOR.document)},fixInitialSelection:function(){function a(){var c=d.getDocument().$,b=c.getSelection(),e;a:if(b.anchorNode&&b.anchorNode==d.$)e=!0;else{if(CKEDITOR.env.webkit&&
 (e=d.getDocument().getActive())&&e.equals(d)&&!b.anchorNode){e=!0;break a}e=void 0}e&&(e=new CKEDITOR.dom.range(d),e.moveToElementEditStart(d),c=c.createRange(),c.setStart(e.startContainer.$,e.startOffset),c.collapse(!0),b.removeAllRanges(),b.addRange(c))}function c(){var a=d.getDocument().$,b=a.selection,e=d.getDocument().getActive();"None"==b.type&&e.equals(d)&&(b=new CKEDITOR.dom.range(d),a=a.body.createTextRange(),b.moveToElementEditStart(d),b=b.startContainer,b.type!=CKEDITOR.NODE_ELEMENT&&(b=
-b.getParent()),a.moveToElementText(b.$),a.collapse(!0),a.select())}var d=this;if(CKEDITOR.env.ie&&(9>CKEDITOR.env.version||CKEDITOR.env.quirks))this.hasFocus&&(this.focus(),c());else if(this.hasFocus)this.focus(),a();else this.once("focus",function(){a()},null,null,-999)},getHtmlFromRange:function(a){if(a.collapsed)return new CKEDITOR.dom.documentFragment(a.document);a={doc:this.getDocument(),range:a.clone()};y.eol.detect(a,this);y.bogus.exclude(a);y.cell.shrink(a);a.fragment=a.range.cloneContents();
-y.tree.rebuild(a,this);y.eol.fix(a,this);return new CKEDITOR.dom.documentFragment(a.fragment.$)},extractHtmlFromRange:function(a,c){var d=v,b={range:a,doc:a.document},e=this.getHtmlFromRange(a);if(a.collapsed)return a.optimize(),e;a.enlarge(CKEDITOR.ENLARGE_INLINE,1);d.table.detectPurge(b);b.bookmark=a.createBookmark();delete b.range;var f=this.editor.createRange();f.moveToPosition(b.bookmark.startNode,CKEDITOR.POSITION_BEFORE_START);b.targetBookmark=f.createBookmark();d.list.detectMerge(b,this);
+b.getParent()),a.moveToElementText(b.$),a.collapse(!0),a.select())}var d=this;if(CKEDITOR.env.ie&&(9>CKEDITOR.env.version||CKEDITOR.env.quirks))this.hasFocus&&(this.focus(),c());else if(this.hasFocus)this.focus(),a();else this.once("focus",function(){a()},null,null,-999)},getHtmlFromRange:function(a){if(a.collapsed)return new CKEDITOR.dom.documentFragment(a.document);a={doc:this.getDocument(),range:a.clone()};z.eol.detect(a,this);z.bogus.exclude(a);z.cell.shrink(a);a.fragment=a.range.cloneContents();
+z.tree.rebuild(a,this);z.eol.fix(a,this);return new CKEDITOR.dom.documentFragment(a.fragment.$)},extractHtmlFromRange:function(a,c){var d=y,b={range:a,doc:a.document},e=this.getHtmlFromRange(a);if(a.collapsed)return a.optimize(),e;a.enlarge(CKEDITOR.ENLARGE_INLINE,1);d.table.detectPurge(b);b.bookmark=a.createBookmark();delete b.range;var f=this.editor.createRange();f.moveToPosition(b.bookmark.startNode,CKEDITOR.POSITION_BEFORE_START);b.targetBookmark=f.createBookmark();d.list.detectMerge(b,this);
 d.table.detectRanges(b,this);d.block.detectMerge(b,this);b.tableContentsRanges?(d.table.deleteRanges(b),a.moveToBookmark(b.bookmark),b.range=a):(a.moveToBookmark(b.bookmark),b.range=a,a.extractContents(d.detectExtractMerge(b)));a.moveToBookmark(b.targetBookmark);a.optimize();d.fixUneditableRangePosition(a);d.list.merge(b,this);d.table.purge(b,this);d.block.merge(b,this);if(c){d=a.startPath();if(b=a.checkStartOfBlock()&&a.checkEndOfBlock()&&d.block&&!a.root.equals(d.block)){a:{var b=d.block.getElementsByTag("span"),
-f=0,g;if(b)for(;g=b.getItem(f++);)if(!w(g)){b=!0;break a}b=!1}b=!b}b&&(a.moveToPosition(d.block,CKEDITOR.POSITION_BEFORE_START),d.block.remove())}else d.autoParagraph(this.editor,a),z(a.startContainer)&&a.startContainer.appendBogus();a.startContainer.mergeSiblings();return e},setup:function(){var a=this.editor;this.attachListener(a,"beforeGetData",function(){var c=this.getData();this.is("textarea")||!1!==a.config.ignoreEmptyParagraph&&(c=c.replace(p,function(a,c){return c}));a.setData(c,null,1)},
+f=0,g;if(b)for(;g=b.getItem(f++);)if(!v(g)){b=!0;break a}b=!1}b=!b}b&&(a.moveToPosition(d.block,CKEDITOR.POSITION_BEFORE_START),d.block.remove())}else d.autoParagraph(this.editor,a),x(a.startContainer)&&a.startContainer.appendBogus();a.startContainer.mergeSiblings();return e},setup:function(){var a=this.editor;this.attachListener(a,"beforeGetData",function(){var c=this.getData();this.is("textarea")||!1!==a.config.ignoreEmptyParagraph&&(c=c.replace(r,function(a,c){return c}));a.setData(c,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 c=a.getSelection();(c=c&&c.getNative())&&"Control"==c.type||this.focus()},this);this.attachListener(a,"insertHtml",function(a){this.insertHtml(a.data.dataValue,a.data.mode,a.data.range)},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");a.elementMode==CKEDITOR.ELEMENT_MODE_INLINE?this.attachClass("cke_editable_inline"):a.elementMode!=CKEDITOR.ELEMENT_MODE_REPLACE&&a.elementMode!=CKEDITOR.ELEMENT_MODE_APPENDTO||this.attachClass("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=!1},null,null,-1);this.on("focus",function(){this.hasFocus=!0},null,null,-1);if(CKEDITOR.env.webkit)this.on("scroll",function(){a._.previousScrollTop=a.editable().$.scrollTop},null,null,-1);if(CKEDITOR.env.edge&&14<CKEDITOR.env.version){var d=function(){var c=a.editable();null!=a._.previousScrollTop&&c.getDocument().equals(CKEDITOR.document)&&(c.$.scrollTop=a._.previousScrollTop,a._.previousScrollTop=null,this.removeListener("scroll",
@@ -379,36 +379,36 @@ if(h){var e=b.getHead(),k=e.getCustomData("stylesheet");k?h!=k.getText()&&(CKEDI
 f.select(),a.fire("saveSnapshot"),b=1):f.collapsed&&((h=g.block)&&(q=h[d?"getPrevious":"getNext"](n))&&q.type==CKEDITOR.NODE_ELEMENT&&q.is("table")&&f[d?"checkStartOfBlock":"checkEndOfBlock"]()?(a.fire("saveSnapshot"),f[d?"checkEndOfBlock":"checkStartOfBlock"]()&&h.remove(),f["moveToElementEdit"+(d?"End":"Start")](q),f.select(),a.fire("saveSnapshot"),b=1):g.blockLimit&&g.blockLimit.is("td")&&(k=g.blockLimit.getAscendant("table"))&&f.checkBoundaryOfElement(k,d?CKEDITOR.START:CKEDITOR.END)&&(q=k[d?
 "getPrevious":"getNext"](n))?(a.fire("saveSnapshot"),f["moveToElementEdit"+(d?"End":"Start")](q),f.checkStartOfBlock()&&f.checkEndOfBlock()?q.remove():f.select(),a.fire("saveSnapshot"),b=1):(k=g.contains(["td","th","caption"]))&&f.checkBoundaryOfElement(k,d?CKEDITOR.START:CKEDITOR.END)&&(b=1))}return!b}});a.blockless&&CKEDITOR.env.ie&&CKEDITOR.env.needsBrFiller&&this.attachListener(this,"keyup",function(c){c.data.getKeystroke()in l&&!this.getFirst(f)&&(this.appendBogus(),c=a.createRange(),c.moveToPosition(this,
 CKEDITOR.POSITION_AFTER_START),c.select())});this.attachListener(this,"dblclick",function(c){if(a.readOnly)return!1;c={element:c.data.getTarget()};a.fire("doubleclick",c)});CKEDITOR.env.ie&&this.attachListener(this,"click",g);CKEDITOR.env.ie&&!CKEDITOR.env.edge||this.attachListener(this,"mousedown",function(c){var d=c.data.getTarget();d.is("img","hr","input","textarea","select")&&!d.isReadOnly()&&(a.getSelection().selectElement(d),d.is("input","textarea","select")&&c.data.preventDefault())});CKEDITOR.env.edge&&
-this.attachListener(this,"mouseup",function(c){(c=c.data.getTarget())&&c.is("img")&&!c.isReadOnly()&&a.getSelection().selectElement(c)});CKEDITOR.env.gecko&&this.attachListener(this,"mouseup",function(c){if(2==c.data.$.button&&(c=c.data.getTarget(),!c.getAscendant("table")&&!c.getOuterHtml().replace(p,""))){var d=a.createRange();d.moveToElementEditStart(c);d.select(!0)}});CKEDITOR.env.webkit&&(this.attachListener(this,"click",function(a){a.data.getTarget().is("input","select")&&a.data.preventDefault()}),
+this.attachListener(this,"mouseup",function(c){(c=c.data.getTarget())&&c.is("img")&&!c.isReadOnly()&&a.getSelection().selectElement(c)});CKEDITOR.env.gecko&&this.attachListener(this,"mouseup",function(c){if(2==c.data.$.button&&(c=c.data.getTarget(),!c.getAscendant("table")&&!c.getOuterHtml().replace(r,""))){var d=a.createRange();d.moveToElementEditStart(c);d.select(!0)}});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(d){if(a.readOnly)return!0;var b=d.data.domEvent.getKey();if(b in l&&(d=a.getSelection(),0!==d.getRanges().length)){var b=8==b,e=d.getRanges()[0];d=e.startPath();if(e.collapsed)a:{var f=d.block;if(f&&e[b?"checkStartOfBlock":"checkEndOfBlock"]()&&e.moveToClosestEditablePosition(f,!b)&&e.collapsed){if(e.startContainer.type==CKEDITOR.NODE_ELEMENT){var g=
 e.startContainer.getChild(e.startOffset-(b?1:0));if(g&&g.type==CKEDITOR.NODE_ELEMENT&&g.is("hr")){a.fire("saveSnapshot");g.remove();d=!0;break a}}e=e.startPath().block;if(!e||e&&e.contains(f))d=void 0;else{a.fire("saveSnapshot");var h;(h=(b?e:f).getBogus())&&h.remove();h=a.getSelection();g=h.createBookmarks();(b?f:e).moveChildren(b?e:f,!1);d.lastElement.mergeSiblings();c(f,e,!b);h.selectBookmarks(g);d=!0}}else d=!1}else b=e,h=d.block,e=b.endPath().block,h&&e&&!h.equals(e)?(a.fire("saveSnapshot"),
 (f=h.getBogus())&&f.remove(),b.enlarge(CKEDITOR.ENLARGE_INLINE),b.deleteContents(),e.getParent()&&(e.moveChildren(h,!1),d.lastElement.mergeSiblings(),c(h,e,!0)),b=a.getSelection().getRanges()[0],b.collapse(1),b.optimize(),""===b.startContainer.getHtml()&&b.startContainer.appendBogus(),b.select(),d=!0):d=!1;if(!d)return;a.getSelection().scrollIntoView();a.fire("saveSnapshot");return!1}},this,null,100)}},getUniqueId:function(){var a;try{this._.expandoNumber=a=CKEDITOR.dom.domObject.prototype.getUniqueId.call(this)}catch(c){a=
 this._&&this._.expandoNumber}return a}},_:{cleanCustomData:function(){this.removeClass("cke_editable");this.restoreAttrs();for(var a=this.removeCustomData("classes");a&&a.length;)this.removeClass(a.pop());if(!this.is("textarea")){var a=this.getDocument(),c=a.getHead();if(c.getCustomData("stylesheet")){var d=a.getCustomData("stylesheet_ref");--d?a.setCustomData("stylesheet_ref",d):(a.removeCustomData("stylesheet_ref"),c.removeCustomData("stylesheet").remove())}}}}});CKEDITOR.editor.prototype.editable=
 function(a){var c=this._.editable;if(c&&a)return 0;if(!arguments.length)return c;a?c=a instanceof CKEDITOR.editable?a:new CKEDITOR.editable(this,a):(c&&c.detach(),c=null);return this._.editable=c};CKEDITOR.on("instanceLoaded",function(a){var c=a.editor;c.on("insertElement",function(a){a=a.data;a.type==CKEDITOR.NODE_ELEMENT&&(a.is("input")||a.is("textarea"))&&("false"!=a.getAttribute("contentEditable")&&a.data("cke-editable",a.hasAttribute("contenteditable")?"true":"1"),a.setAttribute("contentEditable",
 !1))});c.on("selectionChange",function(a){if(!c.readOnly){var d=c.getSelection();d&&!d.isLocked&&(d=c.checkDirty(),c.fire("lockSnapshot"),b(a),c.fire("unlockSnapshot"),!d&&c.resetDirty())}})});CKEDITOR.on("instanceCreated",function(a){var c=a.editor;c.on("mode",function(){var a=c.editable();if(a&&a.isInline()){var d=c.title;a.changeAttr("role","textbox");a.changeAttr("aria-multiline","true");a.changeAttr("aria-label",d);d&&a.changeAttr("title",d);var b=c.fire("ariaEditorHelpLabel",{}).label;if(b&&
-(d=this.ui.space(this.elementMode==CKEDITOR.ELEMENT_MODE_INLINE?"top":"contents"))){var e=CKEDITOR.tools.getNextId(),b=CKEDITOR.dom.element.createFromHtml('\x3cspan id\x3d"'+e+'" class\x3d"cke_voice_label"\x3e'+b+"\x3c/span\x3e");d.append(b);a.changeAttr("aria-describedby",e)}}})});CKEDITOR.addCss(".cke_editable{cursor:text}.cke_editable img,.cke_editable input,.cke_editable textarea{cursor:default}");n=CKEDITOR.dom.walker.whitespaces(!0);w=CKEDITOR.dom.walker.bookmark(!1,!0);z=CKEDITOR.dom.walker.empty();
-r=CKEDITOR.dom.walker.bogus();p=/(^|<body\b[^>]*>)\s*<(p|div|address|h\d|center|pre)[^>]*>\s*(?:<br[^>]*>|&nbsp;|\u00A0|&#160;)?\s*(:?<\/\2>)?\s*(?=$|<\/body>)/gi;q=function(){function a(c){return c.type==CKEDITOR.NODE_ELEMENT}function c(d,b){var e,f,g,h,n=[],k=b.range.startContainer;e=b.range.startPath();for(var k=m[k.getName()],l=0,q=d.getChildren(),w=q.count(),p=-1,t=-1,C=0,r=e.contains(m.$list);l<w;++l)e=q.getItem(l),a(e)?(g=e.getName(),r&&g in CKEDITOR.dtd.$list?n=n.concat(c(e,b)):(h=!!k[g],
-"br"!=g||!e.data("cke-eol")||l&&l!=w-1||(C=(f=l?n[l-1].node:q.getItem(l+1))&&(!a(f)||!f.is("br")),f=f&&a(f)&&m.$block[f.getName()]),-1!=p||h||(p=l),h||(t=l),n.push({isElement:1,isLineBreak:C,isBlock:e.isBlockBoundary(),hasBlockSibling:f,node:e,name:g,allowed:h}),f=C=0)):n.push({isElement:0,node:e,allowed:1});-1<p&&(n[p].firstNotAllowed=1);-1<t&&(n[t].lastNotAllowed=1);return n}function b(c,d){var e=[],f=c.getChildren(),g=f.count(),h,n=0,k=m[d],l=!c.is(m.$inline)||c.is("br");for(l&&e.push(" ");n<g;n++)h=
+(d=this.ui.space(this.elementMode==CKEDITOR.ELEMENT_MODE_INLINE?"top":"contents"))){var e=CKEDITOR.tools.getNextId(),b=CKEDITOR.dom.element.createFromHtml('\x3cspan id\x3d"'+e+'" class\x3d"cke_voice_label"\x3e'+b+"\x3c/span\x3e");d.append(b);a.changeAttr("aria-describedby",e)}}})});CKEDITOR.addCss(".cke_editable{cursor:text}.cke_editable img,.cke_editable input,.cke_editable textarea{cursor:default}");n=CKEDITOR.dom.walker.whitespaces(!0);v=CKEDITOR.dom.walker.bookmark(!1,!0);x=CKEDITOR.dom.walker.empty();
+p=CKEDITOR.dom.walker.bogus();r=/(^|<body\b[^>]*>)\s*<(p|div|address|h\d|center|pre)[^>]*>\s*(?:<br[^>]*>|&nbsp;|\u00A0|&#160;)?\s*(:?<\/\2>)?\s*(?=$|<\/body>)/gi;q=function(){function a(c){return c.type==CKEDITOR.NODE_ELEMENT}function c(d,b){var e,f,g,h,n=[],k=b.range.startContainer;e=b.range.startPath();for(var k=m[k.getName()],l=0,q=d.getChildren(),r=q.count(),v=-1,t=-1,w=0,F=e.contains(m.$list);l<r;++l)e=q.getItem(l),a(e)?(g=e.getName(),F&&g in CKEDITOR.dtd.$list?n=n.concat(c(e,b)):(h=!!k[g],
+"br"!=g||!e.data("cke-eol")||l&&l!=r-1||(w=(f=l?n[l-1].node:q.getItem(l+1))&&(!a(f)||!f.is("br")),f=f&&a(f)&&m.$block[f.getName()]),-1!=v||h||(v=l),h||(t=l),n.push({isElement:1,isLineBreak:w,isBlock:e.isBlockBoundary(),hasBlockSibling:f,node:e,name:g,allowed:h}),f=w=0)):n.push({isElement:0,node:e,allowed:1});-1<v&&(n[v].firstNotAllowed=1);-1<t&&(n[t].lastNotAllowed=1);return n}function b(c,d){var e=[],f=c.getChildren(),g=f.count(),h,n=0,k=m[d],l=!c.is(m.$inline)||c.is("br");for(l&&e.push(" ");n<g;n++)h=
 f.getItem(n),a(h)&&!h.is(k)?e=e.concat(b(h,d)):e.push(h);l&&e.push(" ");return e}function e(c){return a(c.startContainer)&&c.startContainer.getChild(c.startOffset-1)}function g(c){return c&&a(c)&&(c.is(m.$removeEmpty)||c.is("a")&&!c.isBlockBoundary())}function h(c,d,b,e){var f=c.clone(),g,n;f.setEndAt(d,CKEDITOR.POSITION_BEFORE_END);(g=(new CKEDITOR.dom.walker(f)).next())&&a(g)&&q[g.getName()]&&(n=g.getPrevious())&&a(n)&&!n.getParent().equals(c.startContainer)&&b.contains(n)&&e.contains(g)&&g.isIdentical(n)&&
-(g.moveChildren(n),g.remove(),h(c,d,b,e))}function n(c,d){function b(c,d){if(d.isBlock&&d.isElement&&!d.node.is("br")&&a(c)&&c.is("br"))return c.remove(),1}var e=d.endContainer.getChild(d.endOffset),f=d.endContainer.getChild(d.endOffset-1);e&&b(e,c[c.length-1]);f&&b(f,c[0])&&(d.setEnd(d.endContainer,d.endOffset-1),d.collapse())}var m=CKEDITOR.dtd,q={p:1,div:1,h1:1,h2:1,h3:1,h4:1,h5:1,h6:1,ul:1,ol:1,li:1,pre:1,dl:1,blockquote:1},w={p:1,div:1,h1:1,h2:1,h3:1,h4:1,h5:1,h6:1},p=CKEDITOR.tools.extend({},
-m.$inline);delete p.br;return function(E,q,t,r){var v=E.editor,u=!1;"unfiltered_html"==q&&(q="html",u=!0);if(!r.checkReadOnly()){var z=(new CKEDITOR.dom.elementPath(r.startContainer,r.root)).blockLimit||r.root;q={type:q,dontFilter:u,editable:E,editor:v,range:r,blockLimit:z,mergeCandidates:[],zombies:[]};var u=q.range,z=q.mergeCandidates,y="html"===q.type,F,L,T,Z,ca,aa;"text"==q.type&&u.shrink(CKEDITOR.SHRINK_ELEMENT,!0,!1)&&(L=CKEDITOR.dom.element.createFromHtml("\x3cspan\x3e\x26nbsp;\x3c/span\x3e",
-u.document),u.insertNode(L),u.setStartAfter(L));T=new CKEDITOR.dom.elementPath(u.startContainer);q.endPath=Z=new CKEDITOR.dom.elementPath(u.endContainer);if(!u.collapsed){F=Z.block||Z.blockLimit;var da=u.getCommonAncestor();F&&!F.equals(da)&&!F.contains(da)&&u.checkEndOfBlock()&&q.zombies.push(F);u.deleteContents()}for(;(ca=e(u))&&a(ca)&&ca.isBlockBoundary()&&T.contains(ca);)u.moveToPosition(ca,CKEDITOR.POSITION_BEFORE_END);h(u,q.blockLimit,T,Z);L&&(u.setEndBefore(L),u.collapse(),L.remove());L=u.startPath();
-if(F=L.contains(g,!1,1))aa=u.splitElement(F),q.inlineStylesRoot=F,q.inlineStylesPeak=L.lastElement;L=u.createBookmark();y&&(d(F),d(aa));(F=L.startNode.getPrevious(f))&&a(F)&&g(F)&&z.push(F);(F=L.startNode.getNext(f))&&a(F)&&g(F)&&z.push(F);for(F=L.startNode;(F=F.getParent())&&g(F);)z.push(F);u.moveToBookmark(L);v.enterMode===CKEDITOR.ENTER_DIV&&""===v.getData(!0)&&((v=E.getFirst())&&v.remove(),r.setStartAt(E,CKEDITOR.POSITION_AFTER_START),r.collapse(!0));if(E=t){E=q.range;if("text"==q.type&&q.inlineStylesRoot){r=
-q.inlineStylesPeak;v=r.getDocument().createText("{cke-peak}");for(aa=q.inlineStylesRoot.getParent();!r.equals(aa);)v=v.appendTo(r.clone()),r=r.getParent();t=v.getOuterHtml().split("{cke-peak}").join(t)}r=q.blockLimit.getName();if(/^\s+|\s+$/.test(t)&&"span"in CKEDITOR.dtd[r]){var ba='\x3cspan data-cke-marker\x3d"1"\x3e\x26nbsp;\x3c/span\x3e';t=ba+t+ba}t=q.editor.dataProcessor.toHtml(t,{context:null,fixForBody:!1,protectedWhitespaces:!!ba,dontFilter:q.dontFilter,filter:q.editor.activeFilter,enterMode:q.editor.activeEnterMode});
-r=E.document.createElement("body");r.setHtml(t);ba&&(r.getFirst().remove(),r.getLast().remove());if((ba=E.startPath().block)&&(1!=ba.getChildCount()||!ba.getBogus()))a:{var R;if(1==r.getChildCount()&&a(R=r.getFirst())&&R.is(w)&&!R.hasAttribute("contenteditable")){ba=R.getElementsByTag("*");E=0;for(aa=ba.count();E<aa;E++)if(v=ba.getItem(E),!v.is(p))break a;R.moveChildren(R.getParent(1));R.remove()}}q.dataWrapper=r;E=t}if(E){R=q.range;E=R.document;r=q.blockLimit;aa=0;var U,ba=[],N,V;t=L=0;var Y,v=R.startContainer;
-ca=q.endPath.elements[0];var fa,u=ca.getPosition(v),z=!!ca.getCommonAncestor(v)&&u!=CKEDITOR.POSITION_IDENTICAL&&!(u&CKEDITOR.POSITION_CONTAINS+CKEDITOR.POSITION_IS_CONTAINED),v=c(q.dataWrapper,q);for(n(v,R);aa<v.length;aa++){u=v[aa];if(y=u.isLineBreak)y=R,F=r,Z=T=void 0,u.hasBlockSibling?y=1:(T=y.startContainer.getAscendant(m.$block,1))&&T.is({div:1,p:1})?(Z=T.getPosition(F),Z==CKEDITOR.POSITION_IDENTICAL||Z==CKEDITOR.POSITION_CONTAINS?y=0:(F=y.splitElement(T),y.moveToPosition(F,CKEDITOR.POSITION_AFTER_START),
-y=1)):y=0;if(y)t=0<aa;else{y=R.startPath();!u.isBlock&&k(q.editor,y.block,y.blockLimit)&&(V=l(q.editor))&&(V=E.createElement(V),V.appendBogus(),R.insertNode(V),CKEDITOR.env.needsBrFiller&&(U=V.getBogus())&&U.remove(),R.moveToPosition(V,CKEDITOR.POSITION_BEFORE_END));if((y=R.startPath().block)&&!y.equals(N)){if(U=y.getBogus())U.remove(),ba.push(y);N=y}u.firstNotAllowed&&(L=1);if(L&&u.isElement){y=R.startContainer;for(F=null;y&&!m[y.getName()][u.name];){if(y.equals(r)){y=null;break}F=y;y=y.getParent()}if(y)F&&
-(Y=R.splitElement(F),q.zombies.push(Y),q.zombies.push(F));else{F=r.getName();fa=!aa;y=aa==v.length-1;F=b(u.node,F);T=[];Z=F.length;for(var da=0,ha=void 0,ga=0,ja=-1;da<Z;da++)ha=F[da]," "==ha?(ga||fa&&!da||(T.push(new CKEDITOR.dom.text(" ")),ja=T.length),ga=1):(T.push(ha),ga=0);y&&ja==T.length&&T.pop();fa=T}}if(fa){for(;y=fa.pop();)R.insertNode(y);fa=0}else R.insertNode(u.node);u.lastNotAllowed&&aa<v.length-1&&((Y=z?ca:Y)&&R.setEndAt(Y,CKEDITOR.POSITION_AFTER_START),L=0);R.collapse()}}1!=v.length?
-U=!1:(U=v[0],U=U.isElement&&"false"==U.node.getAttribute("contenteditable"));U&&(t=!0,y=v[0].node,R.setStartAt(y,CKEDITOR.POSITION_BEFORE_START),R.setEndAt(y,CKEDITOR.POSITION_AFTER_END));q.dontMoveCaret=t;q.bogusNeededBlocks=ba}U=q.range;var ia;Y=q.bogusNeededBlocks;for(fa=U.createBookmark();N=q.zombies.pop();)N.getParent()&&(V=U.clone(),V.moveToElementEditStart(N),V.removeEmptyBlocksAtEnd());if(Y)for(;N=Y.pop();)CKEDITOR.env.needsBrFiller?N.appendBogus():N.append(U.document.createText(" "));for(;N=
-q.mergeCandidates.pop();)N.mergeSiblings();U.moveToBookmark(fa);if(!q.dontMoveCaret){for(N=e(U);N&&a(N)&&!N.is(m.$empty);){if(N.isBlockBoundary())U.moveToPosition(N,CKEDITOR.POSITION_BEFORE_END);else{if(g(N)&&N.getHtml().match(/(\s|&nbsp;)$/g)){ia=null;break}ia=U.clone();ia.moveToPosition(N,CKEDITOR.POSITION_BEFORE_END)}N=N.getLast(f)}ia&&U.moveToRange(ia)}}}}();u=function(){function a(c){c=new CKEDITOR.dom.walker(c);c.guard=function(a,c){if(c)return!1;if(a.type==CKEDITOR.NODE_ELEMENT)return a.is(CKEDITOR.dtd.$tableContent)};
+(g.moveChildren(n),g.remove(),h(c,d,b,e))}function n(c,d){function b(c,d){if(d.isBlock&&d.isElement&&!d.node.is("br")&&a(c)&&c.is("br"))return c.remove(),1}var e=d.endContainer.getChild(d.endOffset),f=d.endContainer.getChild(d.endOffset-1);e&&b(e,c[c.length-1]);f&&b(f,c[0])&&(d.setEnd(d.endContainer,d.endOffset-1),d.collapse())}var m=CKEDITOR.dtd,q={p:1,div:1,h1:1,h2:1,h3:1,h4:1,h5:1,h6:1,ul:1,ol:1,li:1,pre:1,dl:1,blockquote:1},r={p:1,div:1,h1:1,h2:1,h3:1,h4:1,h5:1,h6:1},v=CKEDITOR.tools.extend({},
+m.$inline);delete v.br;return function(q,D,I,t){var w=q.editor,p=!1;"unfiltered_html"==D&&(D="html",p=!0);if(!t.checkReadOnly()){var y=(new CKEDITOR.dom.elementPath(t.startContainer,t.root)).blockLimit||t.root;D={type:D,dontFilter:p,editable:q,editor:w,range:t,blockLimit:y,mergeCandidates:[],zombies:[]};var p=D.range,y=D.mergeCandidates,x="html"===D.type,z,E,S,X,ba,Z;"text"==D.type&&p.shrink(CKEDITOR.SHRINK_ELEMENT,!0,!1)&&(E=CKEDITOR.dom.element.createFromHtml("\x3cspan\x3e\x26nbsp;\x3c/span\x3e",
+p.document),p.insertNode(E),p.setStartAfter(E));S=new CKEDITOR.dom.elementPath(p.startContainer);D.endPath=X=new CKEDITOR.dom.elementPath(p.endContainer);if(!p.collapsed){z=X.block||X.blockLimit;var da=p.getCommonAncestor();z&&!z.equals(da)&&!z.contains(da)&&p.checkEndOfBlock()&&D.zombies.push(z);p.deleteContents()}for(;(ba=e(p))&&a(ba)&&ba.isBlockBoundary()&&S.contains(ba);)p.moveToPosition(ba,CKEDITOR.POSITION_BEFORE_END);h(p,D.blockLimit,S,X);E&&(p.setEndBefore(E),p.collapse(),E.remove());E=p.startPath();
+if(z=E.contains(g,!1,1))Z=p.splitElement(z),D.inlineStylesRoot=z,D.inlineStylesPeak=E.lastElement;E=p.createBookmark();x&&(d(z),d(Z));(z=E.startNode.getPrevious(f))&&a(z)&&g(z)&&y.push(z);(z=E.startNode.getNext(f))&&a(z)&&g(z)&&y.push(z);for(z=E.startNode;(z=z.getParent())&&g(z);)y.push(z);p.moveToBookmark(E);w.enterMode===CKEDITOR.ENTER_DIV&&""===w.getData(!0)&&((w=q.getFirst())&&w.remove(),t.setStartAt(q,CKEDITOR.POSITION_AFTER_START),t.collapse(!0));if(q=I){q=D.range;if("text"==D.type&&D.inlineStylesRoot){t=
+D.inlineStylesPeak;w=t.getDocument().createText("{cke-peak}");for(Z=D.inlineStylesRoot.getParent();!t.equals(Z);)w=w.appendTo(t.clone()),t=t.getParent();I=w.getOuterHtml().split("{cke-peak}").join(I)}t=D.blockLimit.getName();if(/^\s+|\s+$/.test(I)&&"span"in CKEDITOR.dtd[t]){var aa='\x3cspan data-cke-marker\x3d"1"\x3e\x26nbsp;\x3c/span\x3e';I=aa+I+aa}I=D.editor.dataProcessor.toHtml(I,{context:null,fixForBody:!1,protectedWhitespaces:!!aa,dontFilter:D.dontFilter,filter:D.editor.activeFilter,enterMode:D.editor.activeEnterMode});
+t=q.document.createElement("body");t.setHtml(I);aa&&(t.getFirst().remove(),t.getLast().remove());if((aa=q.startPath().block)&&(1!=aa.getChildCount()||!aa.getBogus()))a:{var Q;if(1==t.getChildCount()&&a(Q=t.getFirst())&&Q.is(r)&&!Q.hasAttribute("contenteditable")){aa=Q.getElementsByTag("*");q=0;for(Z=aa.count();q<Z;q++)if(w=aa.getItem(q),!w.is(v))break a;Q.moveChildren(Q.getParent(1));Q.remove()}}D.dataWrapper=t;q=I}if(q){Q=D.range;q=Q.document;t=D.blockLimit;Z=0;var T,aa=[],O,U;I=E=0;var ca,w=Q.startContainer;
+ba=D.endPath.elements[0];var fa,p=ba.getPosition(w),y=!!ba.getCommonAncestor(w)&&p!=CKEDITOR.POSITION_IDENTICAL&&!(p&CKEDITOR.POSITION_CONTAINS+CKEDITOR.POSITION_IS_CONTAINED),w=c(D.dataWrapper,D);for(n(w,Q);Z<w.length;Z++){p=w[Z];if(x=p.isLineBreak)x=Q,z=t,X=S=void 0,p.hasBlockSibling?x=1:(S=x.startContainer.getAscendant(m.$block,1))&&S.is({div:1,p:1})?(X=S.getPosition(z),X==CKEDITOR.POSITION_IDENTICAL||X==CKEDITOR.POSITION_CONTAINS?x=0:(z=x.splitElement(S),x.moveToPosition(z,CKEDITOR.POSITION_AFTER_START),
+x=1)):x=0;if(x)I=0<Z;else{x=Q.startPath();!p.isBlock&&l(D.editor,x.block,x.blockLimit)&&(U=k(D.editor))&&(U=q.createElement(U),U.appendBogus(),Q.insertNode(U),CKEDITOR.env.needsBrFiller&&(T=U.getBogus())&&T.remove(),Q.moveToPosition(U,CKEDITOR.POSITION_BEFORE_END));if((x=Q.startPath().block)&&!x.equals(O)){if(T=x.getBogus())T.remove(),aa.push(x);O=x}p.firstNotAllowed&&(E=1);if(E&&p.isElement){x=Q.startContainer;for(z=null;x&&!m[x.getName()][p.name];){if(x.equals(t)){x=null;break}z=x;x=x.getParent()}if(x)z&&
+(ca=Q.splitElement(z),D.zombies.push(ca),D.zombies.push(z));else{z=t.getName();fa=!Z;x=Z==w.length-1;z=b(p.node,z);S=[];X=z.length;for(var da=0,ha=void 0,ga=0,ja=-1;da<X;da++)ha=z[da]," "==ha?(ga||fa&&!da||(S.push(new CKEDITOR.dom.text(" ")),ja=S.length),ga=1):(S.push(ha),ga=0);x&&ja==S.length&&S.pop();fa=S}}if(fa){for(;x=fa.pop();)Q.insertNode(x);fa=0}else Q.insertNode(p.node);p.lastNotAllowed&&Z<w.length-1&&((ca=y?ba:ca)&&Q.setEndAt(ca,CKEDITOR.POSITION_AFTER_START),E=0);Q.collapse()}}1!=w.length?
+T=!1:(T=w[0],T=T.isElement&&"false"==T.node.getAttribute("contenteditable"));T&&(I=!0,x=w[0].node,Q.setStartAt(x,CKEDITOR.POSITION_BEFORE_START),Q.setEndAt(x,CKEDITOR.POSITION_AFTER_END));D.dontMoveCaret=I;D.bogusNeededBlocks=aa}T=D.range;var ia;ca=D.bogusNeededBlocks;for(fa=T.createBookmark();O=D.zombies.pop();)O.getParent()&&(U=T.clone(),U.moveToElementEditStart(O),U.removeEmptyBlocksAtEnd());if(ca)for(;O=ca.pop();)CKEDITOR.env.needsBrFiller?O.appendBogus():O.append(T.document.createText(" "));
+for(;O=D.mergeCandidates.pop();)O.mergeSiblings();T.moveToBookmark(fa);if(!D.dontMoveCaret){for(O=e(T);O&&a(O)&&!O.is(m.$empty);){if(O.isBlockBoundary())T.moveToPosition(O,CKEDITOR.POSITION_BEFORE_END);else{if(g(O)&&O.getHtml().match(/(\s|&nbsp;)$/g)){ia=null;break}ia=T.clone();ia.moveToPosition(O,CKEDITOR.POSITION_BEFORE_END)}O=O.getLast(f)}ia&&T.moveToRange(ia)}}}}();w=function(){function a(c){c=new CKEDITOR.dom.walker(c);c.guard=function(a,c){if(c)return!1;if(a.type==CKEDITOR.NODE_ELEMENT)return a.is(CKEDITOR.dtd.$tableContent)};
 c.evaluator=function(a){return a.type==CKEDITOR.NODE_ELEMENT};return c}function c(a,d,b){d=a.getDocument().createElement(d);a.append(d,b);return d}function d(a){var c=a.count(),b;for(c;0<c--;)b=a.getItem(c),CKEDITOR.tools.trim(b.getHtml())||(b.appendBogus(),CKEDITOR.env.ie&&9>CKEDITOR.env.version&&b.getChildCount()&&b.getFirst().remove())}return function(b){var e=b.startContainer,f=e.getAscendant("table",1),g=!1;d(f.getElementsByTag("td"));d(f.getElementsByTag("th"));f=b.clone();f.setStart(e,0);f=
 a(f).lastBackward();f||(f=b.clone(),f.setEndAt(e,CKEDITOR.POSITION_BEFORE_END),f=a(f).lastForward(),g=!0);f||(f=e);f.is("table")?(b.setStartAt(f,CKEDITOR.POSITION_BEFORE_START),b.collapse(!0),f.remove()):(f.is({tbody:1,thead:1,tfoot:1})&&(f=c(f,"tr",g)),f.is("tr")&&(f=c(f,f.getParent().is("thead")?"th":"td",g)),(e=f.getBogus())&&e.remove(),b.moveToPosition(f,g?CKEDITOR.POSITION_AFTER_START:CKEDITOR.POSITION_BEFORE_END))}}();t=function(){function a(c){c=new CKEDITOR.dom.walker(c);c.guard=function(a,
 c){if(c)return!1;if(a.type==CKEDITOR.NODE_ELEMENT)return a.is(CKEDITOR.dtd.$list)||a.is(CKEDITOR.dtd.$listItem)};c.evaluator=function(a){return a.type==CKEDITOR.NODE_ELEMENT&&a.is(CKEDITOR.dtd.$listItem)};return c}return function(c){var d=c.startContainer,b=!1,e;e=c.clone();e.setStart(d,0);e=a(e).lastBackward();e||(e=c.clone(),e.setEndAt(d,CKEDITOR.POSITION_BEFORE_END),e=a(e).lastForward(),b=!0);e||(e=d);e.is(CKEDITOR.dtd.$list)?(c.setStartAt(e,CKEDITOR.POSITION_BEFORE_START),c.collapse(!0),e.remove()):
-((d=e.getBogus())&&d.remove(),c.moveToPosition(e,b?CKEDITOR.POSITION_AFTER_START:CKEDITOR.POSITION_BEFORE_END),c.select())}}();y={eol:{detect:function(a,c){var d=a.range,b=d.clone(),e=d.clone(),f=new CKEDITOR.dom.elementPath(d.startContainer,c),g=new CKEDITOR.dom.elementPath(d.endContainer,c);b.collapse(1);e.collapse();f.block&&b.checkBoundaryOfElement(f.block,CKEDITOR.END)&&(d.setStartAfter(f.block),a.prependEolBr=1);g.block&&e.checkBoundaryOfElement(g.block,CKEDITOR.START)&&(d.setEndBefore(g.block),
-a.appendEolBr=1)},fix:function(a,c){var d=c.getDocument(),b;a.appendEolBr&&(b=this.createEolBr(d),a.fragment.append(b));!a.prependEolBr||b&&!b.getPrevious()||a.fragment.append(this.createEolBr(d),1)},createEolBr:function(a){return a.createElement("br",{attributes:{"data-cke-eol":1}})}},bogus:{exclude:function(a){var c=a.range.getBoundaryNodes(),d=c.startNode,c=c.endNode;!c||!r(c)||d&&d.equals(c)||a.range.setEndBefore(c)}},tree:{rebuild:function(a,c){var d=a.range,b=d.getCommonAncestor(),e=new CKEDITOR.dom.elementPath(b,
+((d=e.getBogus())&&d.remove(),c.moveToPosition(e,b?CKEDITOR.POSITION_AFTER_START:CKEDITOR.POSITION_BEFORE_END),c.select())}}();z={eol:{detect:function(a,c){var d=a.range,b=d.clone(),e=d.clone(),f=new CKEDITOR.dom.elementPath(d.startContainer,c),g=new CKEDITOR.dom.elementPath(d.endContainer,c);b.collapse(1);e.collapse();f.block&&b.checkBoundaryOfElement(f.block,CKEDITOR.END)&&(d.setStartAfter(f.block),a.prependEolBr=1);g.block&&e.checkBoundaryOfElement(g.block,CKEDITOR.START)&&(d.setEndBefore(g.block),
+a.appendEolBr=1)},fix:function(a,c){var d=c.getDocument(),b;a.appendEolBr&&(b=this.createEolBr(d),a.fragment.append(b));!a.prependEolBr||b&&!b.getPrevious()||a.fragment.append(this.createEolBr(d),1)},createEolBr:function(a){return a.createElement("br",{attributes:{"data-cke-eol":1}})}},bogus:{exclude:function(a){var c=a.range.getBoundaryNodes(),d=c.startNode,c=c.endNode;!c||!p(c)||d&&d.equals(c)||a.range.setEndBefore(c)}},tree:{rebuild:function(a,c){var d=a.range,b=d.getCommonAncestor(),e=new CKEDITOR.dom.elementPath(b,
 c),f=new CKEDITOR.dom.elementPath(d.startContainer,c),d=new CKEDITOR.dom.elementPath(d.endContainer,c),g;b.type==CKEDITOR.NODE_TEXT&&(b=b.getParent());if(e.blockLimit.is({tr:1,table:1})){var h=e.contains("table").getParent();g=function(a){return!a.equals(h)}}else if(e.block&&e.block.is(CKEDITOR.dtd.$listItem)&&(f=f.contains(CKEDITOR.dtd.$list),d=d.contains(CKEDITOR.dtd.$list),!f.equals(d))){var n=e.contains(CKEDITOR.dtd.$list).getParent();g=function(a){return!a.equals(n)}}g||(g=function(a){return!a.equals(e.block)&&
-!a.equals(e.blockLimit)});this.rebuildFragment(a,c,b,g)},rebuildFragment:function(a,c,d,b){for(var e;d&&!d.equals(c)&&b(d);)e=d.clone(0,1),a.fragment.appendTo(e),a.fragment=e,d=d.getParent()}},cell:{shrink:function(a){a=a.range;var c=a.startContainer,d=a.endContainer,b=a.startOffset,e=a.endOffset;c.type==CKEDITOR.NODE_ELEMENT&&c.equals(d)&&c.is("tr")&&++b==e&&a.shrink(CKEDITOR.SHRINK_TEXT)}}};v=function(){function a(c,d){var b=c.getParent();if(b.is(CKEDITOR.dtd.$inline))c[d?"insertBefore":"insertAfter"](b)}
-function c(d,b,e){a(b);a(e,1);for(var f;f=e.getNext();)f.insertAfter(b),b=f;z(d)&&d.remove()}function d(a,c){var b=new CKEDITOR.dom.range(a);b.setStartAfter(c.startNode);b.setEndBefore(c.endNode);return b}return{list:{detectMerge:function(a,c){var b=d(c,a.bookmark),e=b.startPath(),f=b.endPath(),g=e.contains(CKEDITOR.dtd.$list),h=f.contains(CKEDITOR.dtd.$list);a.mergeList=g&&h&&g.getParent().equals(h.getParent())&&!g.equals(h);a.mergeListItems=e.block&&f.block&&e.block.is(CKEDITOR.dtd.$listItem)&&
+!a.equals(e.blockLimit)});this.rebuildFragment(a,c,b,g)},rebuildFragment:function(a,c,d,b){for(var e;d&&!d.equals(c)&&b(d);)e=d.clone(0,1),a.fragment.appendTo(e),a.fragment=e,d=d.getParent()}},cell:{shrink:function(a){a=a.range;var c=a.startContainer,d=a.endContainer,b=a.startOffset,e=a.endOffset;c.type==CKEDITOR.NODE_ELEMENT&&c.equals(d)&&c.is("tr")&&++b==e&&a.shrink(CKEDITOR.SHRINK_TEXT)}}};y=function(){function a(c,d){var b=c.getParent();if(b.is(CKEDITOR.dtd.$inline))c[d?"insertBefore":"insertAfter"](b)}
+function c(d,b,e){a(b);a(e,1);for(var f;f=e.getNext();)f.insertAfter(b),b=f;x(d)&&d.remove()}function d(a,c){var b=new CKEDITOR.dom.range(a);b.setStartAfter(c.startNode);b.setEndBefore(c.endNode);return b}return{list:{detectMerge:function(a,c){var b=d(c,a.bookmark),e=b.startPath(),f=b.endPath(),g=e.contains(CKEDITOR.dtd.$list),h=f.contains(CKEDITOR.dtd.$list);a.mergeList=g&&h&&g.getParent().equals(h.getParent())&&!g.equals(h);a.mergeListItems=e.block&&f.block&&e.block.is(CKEDITOR.dtd.$listItem)&&
 f.block.is(CKEDITOR.dtd.$listItem);if(a.mergeList||a.mergeListItems)b=b.clone(),b.setStartBefore(a.bookmark.startNode),b.setEndAfter(a.bookmark.endNode),a.mergeListBookmark=b.createBookmark()},merge:function(a,d){if(a.mergeListBookmark){var b=a.mergeListBookmark.startNode,e=a.mergeListBookmark.endNode,f=new CKEDITOR.dom.elementPath(b,d),g=new CKEDITOR.dom.elementPath(e,d);if(a.mergeList){var h=f.contains(CKEDITOR.dtd.$list),n=g.contains(CKEDITOR.dtd.$list);h.equals(n)||(n.moveChildren(h),n.remove())}a.mergeListItems&&
 (f=f.contains(CKEDITOR.dtd.$listItem),g=g.contains(CKEDITOR.dtd.$listItem),f.equals(g)||c(g,b,e));b.remove();e.remove()}}},block:{detectMerge:function(a,c){if(!a.tableContentsRanges&&!a.mergeListBookmark){var d=new CKEDITOR.dom.range(c);d.setStartBefore(a.bookmark.startNode);d.setEndAfter(a.bookmark.endNode);a.mergeBlockBookmark=d.createBookmark()}},merge:function(a,d){if(a.mergeBlockBookmark&&!a.purgeTableBookmark){var b=a.mergeBlockBookmark.startNode,e=a.mergeBlockBookmark.endNode,f=new CKEDITOR.dom.elementPath(b,
 d),g=new CKEDITOR.dom.elementPath(e,d),f=f.block,g=g.block;f&&g&&!f.equals(g)&&c(g,b,e);b.remove();e.remove()}}},table:function(){function a(d){var e=[],f,g=new CKEDITOR.dom.walker(d),h=d.startPath().contains(b),n=d.endPath().contains(b),k={};g.guard=function(a,g){if(a.type==CKEDITOR.NODE_ELEMENT){var l="visited_"+(g?"out":"in");if(a.getCustomData(l))return;CKEDITOR.dom.element.setMarker(k,a,l,1)}if(g&&h&&a.equals(h))f=d.clone(),f.setEndAt(h,CKEDITOR.POSITION_BEFORE_END),e.push(f);else if(!g&&n&&
@@ -416,131 +416,131 @@ a.equals(n))f=d.clone(),f.setStartAt(n,CKEDITOR.POSITION_AFTER_START),e.push(f);
 CKEDITOR.POSITION_IS_CONTAINED,e=a.getPosition(d);return e===CKEDITOR.POSITION_IDENTICAL?!1:0===(e&b)}var b={td:1,th:1,caption:1};return{detectPurge:function(a){var c=a.range,d=c.clone();d.enlarge(CKEDITOR.ENLARGE_ELEMENT);var d=new CKEDITOR.dom.walker(d),e=0;d.evaluator=function(a){a.type==CKEDITOR.NODE_ELEMENT&&a.is(b)&&++e};d.checkForward();if(1<e){var d=c.startPath().contains("table"),f=c.endPath().contains("table");d&&f&&c.checkBoundaryOfElement(d,CKEDITOR.START)&&c.checkBoundaryOfElement(f,
 CKEDITOR.END)&&(c=a.range.clone(),c.setStartBefore(d),c.setEndAfter(f),a.purgeTableBookmark=c.createBookmark())}},detectRanges:function(e,f){var g=d(f,e.bookmark),h=g.clone(),n,k,l=g.getCommonAncestor();l.is(CKEDITOR.dtd.$tableContent)&&!l.is(b)&&(l=l.getAscendant("table",!0));k=l;l=new CKEDITOR.dom.elementPath(g.startContainer,k);k=new CKEDITOR.dom.elementPath(g.endContainer,k);l=l.contains("table");k=k.contains("table");if(l||k)l&&k&&c(l,k)?(e.tableSurroundingRange=h,h.setStartAt(l,CKEDITOR.POSITION_AFTER_END),
 h.setEndAt(k,CKEDITOR.POSITION_BEFORE_START),h=g.clone(),h.setEndAt(l,CKEDITOR.POSITION_AFTER_END),n=g.clone(),n.setStartAt(k,CKEDITOR.POSITION_BEFORE_START),n=a(h).concat(a(n))):l?k||(e.tableSurroundingRange=h,h.setStartAt(l,CKEDITOR.POSITION_AFTER_END),g.setEndAt(l,CKEDITOR.POSITION_AFTER_END)):(e.tableSurroundingRange=h,h.setEndAt(k,CKEDITOR.POSITION_BEFORE_START),g.setStartAt(k,CKEDITOR.POSITION_AFTER_START)),e.tableContentsRanges=n?n:a(g)},deleteRanges:function(a){for(var c;c=a.tableContentsRanges.pop();)c.extractContents(),
-z(c.startContainer)&&c.startContainer.appendBogus();a.tableSurroundingRange&&a.tableSurroundingRange.extractContents()},purge:function(a){if(a.purgeTableBookmark){var c=a.doc,d=a.range.clone(),c=c.createElement("p");c.insertBefore(a.purgeTableBookmark.startNode);d.moveToBookmark(a.purgeTableBookmark);d.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,!0)},autoParagraph:function(a,c){var d=c.startPath(),b;k(a,d.block,d.blockLimit)&&(b=l(a))&&(b=c.document.createElement(b),b.appendBogus(),c.insertNode(b),c.moveToPosition(b,CKEDITOR.POSITION_AFTER_START))}}}()})();(function(){function b(a){return CKEDITOR.plugins.widget&&CKEDITOR.plugins.widget.isDomWidget(a)}function h(a,c){if(0===a.length||b(a[0].getEnclosedNode()))return!1;var d,e;if((d=
+x(c.startContainer)&&c.startContainer.appendBogus();a.tableSurroundingRange&&a.tableSurroundingRange.extractContents()},purge:function(a){if(a.purgeTableBookmark){var c=a.doc,d=a.range.clone(),c=c.createElement("p");c.insertBefore(a.purgeTableBookmark.startNode);d.moveToBookmark(a.purgeTableBookmark);d.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,!0)},autoParagraph:function(a,c){var d=c.startPath(),b;l(a,d.block,d.blockLimit)&&(b=k(a))&&(b=c.document.createElement(b),b.appendBogus(),c.insertNode(b),c.moveToPosition(b,CKEDITOR.POSITION_AFTER_START))}}}()})();(function(){function b(a){return CKEDITOR.plugins.widget&&CKEDITOR.plugins.widget.isDomWidget(a)}function h(a,c){if(0===a.length||b(a[0].getEnclosedNode()))return!1;var d,e;if((d=
 !c&&1===a.length)&&!(d=a[0].collapsed)){var f=a[0];d=f.startContainer.getAscendant({td:1,th:1},!0);var g=f.endContainer.getAscendant({td:1,th:1},!0);e=CKEDITOR.tools.trim;d&&d.equals(g)&&!d.findOne("td, th, tr, tbody, table")?(f=f.cloneContents(),d=f.getFirst()?e(f.getFirst().getText())!==e(d.getText()):!0):d=!1}if(d)return!1;for(e=0;e<a.length;e++)if(d=a[e]._getTableElement(),!d)return!1;return!0}function g(a){function c(a){a=a.find("td, th");var d=[],b;for(b=0;b<a.count();b++)d.push(a.getItem(b));
-return d}var d=[],b,e;for(e=0;e<a.length;e++)b=a[e]._getTableElement(),b.is&&b.is({td:1,th:1})?d.push(b):d=d.concat(c(b));return d}function f(a){a=g(a);var c="",d=[],b,e;for(e=0;e<a.length;e++)b&&!b.equals(a[e].getAscendant("tr"))?(c+=d.join("\t")+"\n",b=a[e].getAscendant("tr"),d=[]):0===e&&(b=a[e].getAscendant("tr")),d.push(a[e].getText());return c+=d.join("\t")}function a(a){var c=this.root.editor,d=c.getSelection(1);this.reset();v=!0;d.root.once("selectionchange",function(a){a.cancel()},null,null,
-0);d.selectRanges([a[0]]);d=this._.cache;d.ranges=new CKEDITOR.dom.rangeList(a);d.type=CKEDITOR.SELECTION_TEXT;d.selectedElement=a[0]._getTableElement();d.selectedText=f(a);d.nativeSel=null;this.isFake=1;this.rev=u++;c._.fakeSelection=this;v=!1;this.root.fire("selectionchange")}function m(){var a=this._.fakeSelection,c;if(a){c=this.getSelection(1);var d;if(!(d=!c)&&(d=!c.isHidden())){d=a;var e=c.getRanges(),f=d.getRanges(),g=e.length&&e[0]._getTableElement()&&e[0]._getTableElement().getAscendant("table",
+return d}var d=[],b,e;for(e=0;e<a.length;e++)b=a[e]._getTableElement(),b.is&&b.is({td:1,th:1})?d.push(b):d=d.concat(c(b));return d}function f(a){a=g(a);var c="",d=[],b,e;for(e=0;e<a.length;e++)b&&!b.equals(a[e].getAscendant("tr"))?(c+=d.join("\t")+"\n",b=a[e].getAscendant("tr"),d=[]):0===e&&(b=a[e].getAscendant("tr")),d.push(a[e].getText());return c+=d.join("\t")}function a(a){var c=this.root.editor,d=c.getSelection(1);this.reset();y=!0;d.root.once("selectionchange",function(a){a.cancel()},null,null,
+0);d.selectRanges([a[0]]);d=this._.cache;d.ranges=new CKEDITOR.dom.rangeList(a);d.type=CKEDITOR.SELECTION_TEXT;d.selectedElement=a[0]._getTableElement();d.selectedText=f(a);d.nativeSel=null;this.isFake=1;this.rev=w++;c._.fakeSelection=this;y=!1;this.root.fire("selectionchange")}function m(){var a=this._.fakeSelection,c;if(a){c=this.getSelection(1);var d;if(!(d=!c)&&(d=!c.isHidden())){d=a;var e=c.getRanges(),f=d.getRanges(),g=e.length&&e[0]._getTableElement()&&e[0]._getTableElement().getAscendant("table",
 !0),n=f.length&&f[0]._getTableElement()&&f[0]._getTableElement().getAscendant("table",!0),k=1===e.length&&e[0]._getTableElement()&&e[0]._getTableElement().is("table"),l=1===f.length&&f[0]._getTableElement()&&f[0]._getTableElement().is("table");if(b(d.getSelectedElement()))d=!1;else{var m=1===e.length&&e[0].collapsed,f=h(e,!!CKEDITOR.env.webkit)&&h(f);g=g&&n?g.equals(n)||n.contains(g):!1;g&&(m||f)?(k&&!l&&d.selectRanges(e),d=!0):d=!1}d=!d}d&&(a.reset(),a=0)}if(!a&&(a=c||this.getSelection(1),!a||a.getType()==
-CKEDITOR.SELECTION_NONE))return;this.fire("selectionCheck",a);c=this.elementPath();c.compare(this._.selectionPreviousPath)||(d=this._.selectionPreviousPath&&this._.selectionPreviousPath.blockLimit.equals(c.blockLimit),!CKEDITOR.env.webkit&&!CKEDITOR.env.gecko||d||(this._.previousActive=this.document.getActive()),this._.selectionPreviousPath=c,this.fire("selectionChange",{selection:a,path:c}))}function k(){B=!0;x||(l.call(this),x=CKEDITOR.tools.setTimeout(l,200,this))}function l(){x=null;B&&(CKEDITOR.tools.setTimeout(m,
-0,this),B=!1)}function d(a){return D(a)||a.type==CKEDITOR.NODE_ELEMENT&&!a.is(CKEDITOR.dtd.$empty)?!0:!1}function e(a){function c(d,b){return d&&d.type!=CKEDITOR.NODE_TEXT?a.clone()["moveToElementEdit"+(b?"End":"Start")](d):!1}if(!(a.root instanceof CKEDITOR.editable))return!1;var b=a.startContainer,e=a.getPreviousNode(d,null,b),f=a.getNextNode(d,null,b);return c(e)||c(f,1)||!(e||f||b.type==CKEDITOR.NODE_ELEMENT&&b.isBlockBoundary()&&b.getBogus())?!0:!1}function c(a){n(a,!1);var c=a.getDocument().createText(t);
-a.setCustomData("cke-fillingChar",c);return c}function n(a,c){var d=a&&a.removeCustomData("cke-fillingChar");if(d){if(!1!==c){var b=a.getDocument().getSelection().getNative(),e=b&&"None"!=b.type&&b.getRangeAt(0),f=t.length;if(d.getLength()>f&&e&&e.intersectsNode(d.$)){var g=[{node:b.anchorNode,offset:b.anchorOffset},{node:b.focusNode,offset:b.focusOffset}];b.anchorNode==d.$&&b.anchorOffset>f&&(g[0].offset-=f);b.focusNode==d.$&&b.focusOffset>f&&(g[1].offset-=f)}}d.setText(w(d.getText(),1));g&&(d=a.getDocument().$,
-b=d.getSelection(),d=d.createRange(),d.setStart(g[0].node,g[0].offset),d.collapse(!0),b.removeAllRanges(),b.addRange(d),b.extend(g[1].node,g[1].offset))}}function w(a,c){return c?a.replace(y,function(a,c){return c?" ":""}):a.replace(t,"")}function z(a,c){var d=c&&CKEDITOR.tools.htmlEncode(c)||"\x26nbsp;",d=CKEDITOR.dom.element.createFromHtml('\x3cdiv data-cke-hidden-sel\x3d"1" data-cke-temp\x3d"1" style\x3d"'+(CKEDITOR.env.ie&&14>CKEDITOR.env.version?"display:none":"position:fixed;top:0;left:-1000px;width:0;height:0;overflow:hidden;")+
-'"\x3e'+d+"\x3c/div\x3e",a.document);a.fire("lockSnapshot");a.editable().append(d);var b=a.getSelection(1),e=a.createRange(),f=b.root.on("selectionchange",function(a){a.cancel()},null,null,0);e.setStartAt(d,CKEDITOR.POSITION_AFTER_START);e.setEndAt(d,CKEDITOR.POSITION_BEFORE_END);b.selectRanges([e]);f.removeListener();a.fire("unlockSnapshot");a._.hiddenSelectionContainer=d}function r(a){var c={37:1,39:1,8:1,46:1};return function(d){var b=d.data.getKeystroke();if(c[b]){var e=a.getSelection().getRanges(),
-f=e[0];1==e.length&&f.collapsed&&(b=f[38>b?"getPreviousEditableNode":"getNextEditableNode"]())&&b.type==CKEDITOR.NODE_ELEMENT&&"false"==b.getAttribute("contenteditable")&&(a.getSelection().fake(b),d.data.preventDefault(),d.cancel())}}}function p(a){for(var c=0;c<a.length;c++){var d=a[c];d.getCommonAncestor().isReadOnly()&&a.splice(c,1);if(!d.collapsed){if(d.startContainer.isReadOnly())for(var b=d.startContainer,e;b&&!((e=b.type==CKEDITOR.NODE_ELEMENT)&&b.is("body")||!b.isReadOnly());)e&&"false"==
+CKEDITOR.SELECTION_NONE))return;this.fire("selectionCheck",a);c=this.elementPath();c.compare(this._.selectionPreviousPath)||(d=this._.selectionPreviousPath&&this._.selectionPreviousPath.blockLimit.equals(c.blockLimit),!CKEDITOR.env.webkit&&!CKEDITOR.env.gecko||d||(this._.previousActive=this.document.getActive()),this._.selectionPreviousPath=c,this.fire("selectionChange",{selection:a,path:c}))}function l(){C=!0;u||(k.call(this),u=CKEDITOR.tools.setTimeout(k,200,this))}function k(){u=null;C&&(CKEDITOR.tools.setTimeout(m,
+0,this),C=!1)}function d(a){return A(a)||a.type==CKEDITOR.NODE_ELEMENT&&!a.is(CKEDITOR.dtd.$empty)?!0:!1}function e(a){function c(d,b){return d&&d.type!=CKEDITOR.NODE_TEXT?a.clone()["moveToElementEdit"+(b?"End":"Start")](d):!1}if(!(a.root instanceof CKEDITOR.editable))return!1;var b=a.startContainer,e=a.getPreviousNode(d,null,b),f=a.getNextNode(d,null,b);return c(e)||c(f,1)||!(e||f||b.type==CKEDITOR.NODE_ELEMENT&&b.isBlockBoundary()&&b.getBogus())?!0:!1}function c(a){n(a,!1);var c=a.getDocument().createText(t);
+a.setCustomData("cke-fillingChar",c);return c}function n(a,c){var d=a&&a.removeCustomData("cke-fillingChar");if(d){if(!1!==c){var b=a.getDocument().getSelection().getNative(),e=b&&"None"!=b.type&&b.getRangeAt(0),f=t.length;if(d.getLength()>f&&e&&e.intersectsNode(d.$)){var g=[{node:b.anchorNode,offset:b.anchorOffset},{node:b.focusNode,offset:b.focusOffset}];b.anchorNode==d.$&&b.anchorOffset>f&&(g[0].offset-=f);b.focusNode==d.$&&b.focusOffset>f&&(g[1].offset-=f)}}d.setText(v(d.getText(),1));g&&(d=a.getDocument().$,
+b=d.getSelection(),d=d.createRange(),d.setStart(g[0].node,g[0].offset),d.collapse(!0),b.removeAllRanges(),b.addRange(d),b.extend(g[1].node,g[1].offset))}}function v(a,c){return c?a.replace(z,function(a,c){return c?" ":""}):a.replace(t,"")}function x(a,c){var d=c&&CKEDITOR.tools.htmlEncode(c)||"\x26nbsp;",d=CKEDITOR.dom.element.createFromHtml('\x3cdiv data-cke-hidden-sel\x3d"1" data-cke-temp\x3d"1" style\x3d"'+(CKEDITOR.env.ie&&14>CKEDITOR.env.version?"display:none":"position:fixed;top:0;left:-1000px;width:0;height:0;overflow:hidden;")+
+'"\x3e'+d+"\x3c/div\x3e",a.document);a.fire("lockSnapshot");a.editable().append(d);var b=a.getSelection(1),e=a.createRange(),f=b.root.on("selectionchange",function(a){a.cancel()},null,null,0);e.setStartAt(d,CKEDITOR.POSITION_AFTER_START);e.setEndAt(d,CKEDITOR.POSITION_BEFORE_END);b.selectRanges([e]);f.removeListener();a.fire("unlockSnapshot");a._.hiddenSelectionContainer=d}function p(a){var c={37:1,39:1,8:1,46:1};return function(d){var b=d.data.getKeystroke();if(c[b]){var e=a.getSelection().getRanges(),
+f=e[0];1==e.length&&f.collapsed&&(b=f[38>b?"getPreviousEditableNode":"getNextEditableNode"]())&&b.type==CKEDITOR.NODE_ELEMENT&&"false"==b.getAttribute("contenteditable")&&(a.getSelection().fake(b),d.data.preventDefault(),d.cancel())}}}function r(a){for(var c=0;c<a.length;c++){var d=a[c];d.getCommonAncestor().isReadOnly()&&a.splice(c,1);if(!d.collapsed){if(d.startContainer.isReadOnly())for(var b=d.startContainer,e;b&&!((e=b.type==CKEDITOR.NODE_ELEMENT)&&b.is("body")||!b.isReadOnly());)e&&"false"==
 b.getAttribute("contentEditable")&&d.setStartAfter(b),b=b.getParent();b=d.startContainer;e=d.endContainer;var f=d.startOffset,g=d.endOffset,h=d.clone();b&&b.type==CKEDITOR.NODE_TEXT&&(f>=b.getLength()?h.setStartAfter(b):h.setStartBefore(b));e&&e.type==CKEDITOR.NODE_TEXT&&(g?h.setEndAfter(e):h.setEndBefore(e));b=new CKEDITOR.dom.walker(h);b.evaluator=function(b){if(b.type==CKEDITOR.NODE_ELEMENT&&b.isReadOnly()){var e=d.clone();d.setEndBefore(b);d.collapsed&&a.splice(c--,1);b.getPosition(h.endContainer)&
-CKEDITOR.POSITION_CONTAINS||(e.setStartAfter(b),e.collapsed||a.splice(c+1,0,e));return!0}return!1};b.next()}}return a}var q="function"!=typeof window.getSelection,u=1,t=CKEDITOR.tools.repeat("​",7),y=new RegExp(t+"( )?","g"),v,x,B,D=CKEDITOR.dom.walker.invisible(1),A=function(){function a(c){return function(a){var d=a.editor.createRange();d.moveToClosestEditablePosition(a.selected,c)&&a.editor.getSelection().selectRanges([d]);return!1}}function c(a){return function(c){var d=c.editor,b=d.createRange(),
+CKEDITOR.POSITION_CONTAINS||(e.setStartAfter(b),e.collapsed||a.splice(c+1,0,e));return!0}return!1};b.next()}}return a}var q="function"!=typeof window.getSelection,w=1,t=CKEDITOR.tools.repeat("​",7),z=new RegExp(t+"( )?","g"),y,u,C,A=CKEDITOR.dom.walker.invisible(1),B=function(){function a(c){return function(a){var d=a.editor.createRange();d.moveToClosestEditablePosition(a.selected,c)&&a.editor.getSelection().selectRanges([d]);return!1}}function c(a){return function(c){var d=c.editor,b=d.createRange(),
 e;if(!d.readOnly)return(e=b.moveToClosestEditablePosition(c.selected,a))||(e=b.moveToClosestEditablePosition(c.selected,!a)),e&&d.getSelection().selectRanges([b]),d.fire("saveSnapshot"),c.selected.remove(),e||(b.moveToElementEditablePosition(d.editable()),d.getSelection().selectRanges([b])),d.fire("saveSnapshot"),!1}}var d=a(),b=a(1);return{37:d,38:d,39:b,40:b,8:c(),46:c(1)}}();CKEDITOR.on("instanceCreated",function(a){function c(){var a=d.getSelection();a&&a.removeAllRanges()}var d=a.editor;d.on("contentDom",
-function(){function a(){t=new CKEDITOR.dom.selection(d.getSelection());t.lock()}function c(){f.removeListener("mouseup",c);l.removeListener("mouseup",c);var a=CKEDITOR.document.$.selection,d=a.createRange();"None"!=a.type&&d.parentElement()&&d.parentElement().ownerDocument==e.$&&d.select()}function b(a){a=a.getRanges()[0];return a?(a=a.startContainer.getAscendant(function(a){return a.type==CKEDITOR.NODE_ELEMENT&&a.hasAttribute("contenteditable")},!0))&&"false"===a.getAttribute("contenteditable")?
-a:null:null}var e=d.document,f=CKEDITOR.document,g=d.editable(),h=e.getBody(),l=e.getDocumentElement(),w=g.isInline(),p,t;CKEDITOR.env.gecko&&g.attachListener(g,"focus",function(a){a.removeListener();0!==p&&(a=d.getSelection().getNative())&&a.isCollapsed&&a.anchorNode==g.$&&(a=d.createRange(),a.moveToElementEditStart(g),a.select())},null,null,-2);g.attachListener(g,CKEDITOR.env.webkit||CKEDITOR.env.gecko?"focusin":"focus",function(){if(p&&(CKEDITOR.env.webkit||CKEDITOR.env.gecko)){p=d._.previousActive&&
-d._.previousActive.equals(e.getActive());var a=null!=d._.previousScrollTop&&d._.previousScrollTop!=g.$.scrollTop;CKEDITOR.env.webkit&&p&&a&&(g.$.scrollTop=d._.previousScrollTop)}d.unlockSelection(p);p=0},null,null,-1);g.attachListener(g,"mousedown",function(){p=0});if(CKEDITOR.env.ie||CKEDITOR.env.gecko||w)q?g.attachListener(g,"beforedeactivate",a,null,null,-1):g.attachListener(d,"selectionCheck",a,null,null,-1),g.attachListener(g,CKEDITOR.env.webkit||CKEDITOR.env.gecko?"focusout":"blur",function(){var a=
-t&&(t.isFake||2>t.getRanges());CKEDITOR.env.gecko&&!w&&a||(d.lockSelection(t),p=1)},null,null,-1),g.attachListener(g,"mousedown",function(){p=0});if(CKEDITOR.env.ie&&!w){var u;g.attachListener(g,"mousedown",function(a){2==a.data.$.button&&((a=d.document.getSelection())&&a.getType()!=CKEDITOR.SELECTION_NONE||(u=d.window.getScrollPosition()))});g.attachListener(g,"mouseup",function(a){2==a.data.$.button&&u&&(d.document.$.documentElement.scrollLeft=u.x,d.document.$.documentElement.scrollTop=u.y);u=null});
-if("BackCompat"!=e.$.compatMode){if(CKEDITOR.env.ie7Compat||CKEDITOR.env.ie6Compat){var v,B;l.on("mousedown",function(a){function c(a){a=a.data.$;if(v){var d=h.$.createTextRange();try{d.moveToPoint(a.clientX,a.clientY)}catch(b){}v.setEndPoint(0>B.compareEndPoints("StartToStart",d)?"EndToEnd":"StartToStart",d);v.select()}}function d(){l.removeListener("mousemove",c);f.removeListener("mouseup",d);l.removeListener("mouseup",d);v.select()}a=a.data;if(a.getTarget().is("html")&&a.$.y<l.$.clientHeight&&
-a.$.x<l.$.clientWidth){v=h.$.createTextRange();try{v.moveToPoint(a.$.clientX,a.$.clientY)}catch(b){}B=v.duplicate();l.on("mousemove",c);f.on("mouseup",d);l.on("mouseup",d)}})}if(7<CKEDITOR.env.version&&11>CKEDITOR.env.version)l.on("mousedown",function(a){a.data.getTarget().is("html")&&(f.on("mouseup",c),l.on("mouseup",c))})}}g.attachListener(g,"selectionchange",m,d);g.attachListener(g,"keyup",k,d);g.attachListener(g,"touchstart",k,d);g.attachListener(g,"touchend",k,d);CKEDITOR.env.ie&&g.attachListener(g,
-"keydown",function(a){var c=this.getSelection(1),d=b(c);d&&!d.equals(g)&&(c.selectElement(d),a.data.preventDefault())},d);g.attachListener(g,CKEDITOR.env.webkit||CKEDITOR.env.gecko?"focusin":"focus",function(){d.forceNextSelectionCheck();d.selectionChange(1)});if(w&&(CKEDITOR.env.webkit||CKEDITOR.env.gecko)){var y;g.attachListener(g,"mousedown",function(){y=1});g.attachListener(e.getDocumentElement(),"mouseup",function(){y&&k.call(d);y=0})}else g.attachListener(CKEDITOR.env.ie?g:e.getDocumentElement(),
-"mouseup",k,d);CKEDITOR.env.webkit&&g.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:g.hasFocus&&n(g)}},null,null,-1);g.attachListener(g,"keydown",r(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),c=d.editable().getLast(a);c&&c.hasAttribute("data-cke-hidden-sel")&&(c.remove(),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("wysiwyg"==d.mode){var c=d.getSelection();if(c.isFake){var b=A[a.data.keyCode];if(b)return b({editor:d,selected:c.getSelectedElement(),
-selection:c,keyEvent:a})}}})});if(CKEDITOR.env.webkit)CKEDITOR.on("instanceReady",function(a){var c=a.editor;c.on("selectionChange",function(){var a=c.editable(),d=a.getCustomData("cke-fillingChar");d&&(d.getCustomData("ready")?(n(a),a.editor.fire("selectionCheck")):d.setCustomData("ready",1))},null,null,-1);c.on("beforeSetMode",function(){n(c.editable())},null,null,-1);c.on("getSnapshot",function(a){a.data&&(a.data=w(a.data))},c,null,20);c.on("toDataFormat",function(a){a.data.dataValue=w(a.data.dataValue)},
-null,null,0)});CKEDITOR.editor.prototype.selectionChange=function(a){(a?m:k).call(this)};CKEDITOR.editor.prototype.getSelection=function(a){return!this._.savedSelection&&!this._.fakeSelection||a?(a=this.editable())&&"wysiwyg"==this.mode?new CKEDITOR.dom.selection(a):null:this._.savedSelection||this._.fakeSelection};CKEDITOR.editor.prototype.lockSelection=function(a){a=a||this.getSelection(1);return a.getType()!=CKEDITOR.SELECTION_NONE?(!a.isLocked&&a.lock(),this._.savedSelection=a,!0):!1};CKEDITOR.editor.prototype.unlockSelection=
+function(){function a(){t=new CKEDITOR.dom.selection(d.getSelection());t.lock()}function c(){f.removeListener("mouseup",c);k.removeListener("mouseup",c);var a=CKEDITOR.document.$.selection,d=a.createRange();"None"!=a.type&&d.parentElement()&&d.parentElement().ownerDocument==e.$&&d.select()}function b(a){a=a.getRanges()[0];return a?(a=a.startContainer.getAscendant(function(a){return a.type==CKEDITOR.NODE_ELEMENT&&a.hasAttribute("contenteditable")},!0))&&"false"===a.getAttribute("contenteditable")?
+a:null:null}var e=d.document,f=CKEDITOR.document,g=d.editable(),h=e.getBody(),k=e.getDocumentElement(),r=g.isInline(),v,t;CKEDITOR.env.gecko&&g.attachListener(g,"focus",function(a){a.removeListener();0!==v&&(a=d.getSelection().getNative())&&a.isCollapsed&&a.anchorNode==g.$&&(a=d.createRange(),a.moveToElementEditStart(g),a.select())},null,null,-2);g.attachListener(g,CKEDITOR.env.webkit||CKEDITOR.env.gecko?"focusin":"focus",function(){if(v&&(CKEDITOR.env.webkit||CKEDITOR.env.gecko)){v=d._.previousActive&&
+d._.previousActive.equals(e.getActive());var a=null!=d._.previousScrollTop&&d._.previousScrollTop!=g.$.scrollTop;CKEDITOR.env.webkit&&v&&a&&(g.$.scrollTop=d._.previousScrollTop)}d.unlockSelection(v);v=0},null,null,-1);g.attachListener(g,"mousedown",function(){v=0});if(CKEDITOR.env.ie||CKEDITOR.env.gecko||r)q?g.attachListener(g,"beforedeactivate",a,null,null,-1):g.attachListener(d,"selectionCheck",a,null,null,-1),g.attachListener(g,CKEDITOR.env.webkit||CKEDITOR.env.gecko?"focusout":"blur",function(){var a=
+t&&(t.isFake||2>t.getRanges().length);CKEDITOR.env.gecko&&!r&&a||(d.lockSelection(t),v=1)},null,null,-1),g.attachListener(g,"mousedown",function(){v=0});if(CKEDITOR.env.ie&&!r){var w;g.attachListener(g,"mousedown",function(a){2==a.data.$.button&&((a=d.document.getSelection())&&a.getType()!=CKEDITOR.SELECTION_NONE||(w=d.window.getScrollPosition()))});g.attachListener(g,"mouseup",function(a){2==a.data.$.button&&w&&(d.document.$.documentElement.scrollLeft=w.x,d.document.$.documentElement.scrollTop=w.y);
+w=null});if("BackCompat"!=e.$.compatMode){if(CKEDITOR.env.ie7Compat||CKEDITOR.env.ie6Compat){var u,x;k.on("mousedown",function(a){function c(a){a=a.data.$;if(u){var d=h.$.createTextRange();try{d.moveToPoint(a.clientX,a.clientY)}catch(b){}u.setEndPoint(0>x.compareEndPoints("StartToStart",d)?"EndToEnd":"StartToStart",d);u.select()}}function d(){k.removeListener("mousemove",c);f.removeListener("mouseup",d);k.removeListener("mouseup",d);u.select()}a=a.data;if(a.getTarget().is("html")&&a.$.y<k.$.clientHeight&&
+a.$.x<k.$.clientWidth){u=h.$.createTextRange();try{u.moveToPoint(a.$.clientX,a.$.clientY)}catch(b){}x=u.duplicate();k.on("mousemove",c);f.on("mouseup",d);k.on("mouseup",d)}})}if(7<CKEDITOR.env.version&&11>CKEDITOR.env.version)k.on("mousedown",function(a){a.data.getTarget().is("html")&&(f.on("mouseup",c),k.on("mouseup",c))})}}g.attachListener(g,"selectionchange",m,d);g.attachListener(g,"keyup",l,d);g.attachListener(g,"touchstart",l,d);g.attachListener(g,"touchend",l,d);CKEDITOR.env.ie&&g.attachListener(g,
+"keydown",function(a){var c=this.getSelection(1),d=b(c);d&&!d.equals(g)&&(c.selectElement(d),a.data.preventDefault())},d);g.attachListener(g,CKEDITOR.env.webkit||CKEDITOR.env.gecko?"focusin":"focus",function(){d.forceNextSelectionCheck();d.selectionChange(1)});if(r&&(CKEDITOR.env.webkit||CKEDITOR.env.gecko)){var y;g.attachListener(g,"mousedown",function(){y=1});g.attachListener(e.getDocumentElement(),"mouseup",function(){y&&l.call(d);y=0})}else g.attachListener(CKEDITOR.env.ie?g:e.getDocumentElement(),
+"mouseup",l,d);CKEDITOR.env.webkit&&g.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:g.hasFocus&&n(g)}},null,null,-1);g.attachListener(g,"keydown",p(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),c=d.editable().getLast(a);c&&c.hasAttribute("data-cke-hidden-sel")&&(c.remove(),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("wysiwyg"==d.mode){var c=d.getSelection();if(c.isFake){var b=B[a.data.keyCode];if(b)return b({editor:d,selected:c.getSelectedElement(),
+selection:c,keyEvent:a})}}})});if(CKEDITOR.env.webkit)CKEDITOR.on("instanceReady",function(a){var c=a.editor;c.on("selectionChange",function(){var a=c.editable(),d=a.getCustomData("cke-fillingChar");d&&(d.getCustomData("ready")?(n(a),a.editor.fire("selectionCheck")):d.setCustomData("ready",1))},null,null,-1);c.on("beforeSetMode",function(){n(c.editable())},null,null,-1);c.on("getSnapshot",function(a){a.data&&(a.data=v(a.data))},c,null,20);c.on("toDataFormat",function(a){a.data.dataValue=v(a.data.dataValue)},
+null,null,0)});CKEDITOR.editor.prototype.selectionChange=function(a){(a?m:l).call(this)};CKEDITOR.editor.prototype.getSelection=function(a){return!this._.savedSelection&&!this._.fakeSelection||a?(a=this.editable())&&"wysiwyg"==this.mode?new CKEDITOR.dom.selection(a):null:this._.savedSelection||this._.fakeSelection};CKEDITOR.editor.prototype.lockSelection=function(a){a=a||this.getSelection(1);return a.getType()!=CKEDITOR.SELECTION_NONE?(!a.isLocked&&a.lock(),this._.savedSelection=a,!0):!1};CKEDITOR.editor.prototype.unlockSelection=
 function(a){var c=this._.savedSelection;return c?(c.unlock(a),delete this._.savedSelection,!0):!1};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;CKEDITOR.dom.selection=function(a){if(a instanceof CKEDITOR.dom.selection){var c=a;a=a.root}var d=a instanceof CKEDITOR.dom.element;this.rev=c?c.rev:u++;this.document=a instanceof CKEDITOR.dom.document?a:a.getDocument();this.root=d?a:this.document.getBody();this.isLocked=0;this._={cache:{}};if(c)return CKEDITOR.tools.extend(this._.cache,c._.cache),this.isFake=c.isFake,this.isLocked=c.isLocked,this;a=this.getNative();var b,e;if(a)if(a.getRangeAt)b=
+1;CKEDITOR.SELECTION_TEXT=2;CKEDITOR.SELECTION_ELEMENT=3;CKEDITOR.dom.selection=function(a){if(a instanceof CKEDITOR.dom.selection){var c=a;a=a.root}var d=a instanceof CKEDITOR.dom.element;this.rev=c?c.rev:w++;this.document=a instanceof CKEDITOR.dom.document?a:a.getDocument();this.root=d?a:this.document.getBody();this.isLocked=0;this._={cache:{}};if(c)return CKEDITOR.tools.extend(this._.cache,c._.cache),this.isFake=c.isFake,this.isLocked=c.isLocked,this;a=this.getNative();var b,e;if(a)if(a.getRangeAt)b=
 (e=a.rangeCount&&a.getRangeAt(0))&&new CKEDITOR.dom.node(e.commonAncestorContainer);else{try{e=a.createRange()}catch(f){}b=e&&CKEDITOR.dom.element.get(e.item&&e.item(0)||e.parentElement())}if(!b||b.type!=CKEDITOR.NODE_ELEMENT&&b.type!=CKEDITOR.NODE_TEXT||!this.root.equals(b)&&!this.root.contains(b))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 G=
-{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.tools.extend(CKEDITOR.dom.selection,{_removeFillingCharSequenceString:w,_createFillingCharSequenceNode:c,FILLING_CHAR_SEQUENCE:t});CKEDITOR.dom.selection.prototype={getNative:function(){return void 0!==this._.cache.nativeSel?this._.cache.nativeSel:this._.cache.nativeSel=q?this.document.$.selection:this.document.getWindow().$.getSelection()},getType:q?
+{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.tools.extend(CKEDITOR.dom.selection,{_removeFillingCharSequenceString:v,_createFillingCharSequenceNode:c,FILLING_CHAR_SEQUENCE:t});CKEDITOR.dom.selection.prototype={getNative:function(){return void 0!==this._.cache.nativeSel?this._.cache.nativeSel:this._.cache.nativeSel=q?this.document.$.selection:this.document.getWindow().$.getSelection()},getType:q?
 function(){var a=this._.cache;if(a.type)return a.type;var c=CKEDITOR.SELECTION_NONE;try{var d=this.getNative(),b=d.type;"Text"==b&&(c=CKEDITOR.SELECTION_TEXT);"Control"==b&&(c=CKEDITOR.SELECTION_ELEMENT);d.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,d=this.getNative();if(!d||!d.rangeCount)c=CKEDITOR.SELECTION_NONE;else if(1==d.rangeCount){var d=d.getRangeAt(0),b=d.startContainer;
-b==d.endContainer&&1==b.nodeType&&1==d.endOffset-d.startOffset&&G[b.childNodes[d.startOffset].nodeName.toLowerCase()]&&(c=CKEDITOR.SELECTION_ELEMENT)}return a.type=c},getRanges:function(){var a=q?function(){function a(c){return(new CKEDITOR.dom.node(c)).getIndex()}var c=function(c,d){c=c.duplicate();c.collapse(d);var b=c.parentElement();if(!b.hasChildNodes())return{container:b,offset:0};for(var e=b.children,f,g,h=c.duplicate(),n=0,l=e.length-1,k=-1,m,q;n<=l;)if(k=Math.floor((n+l)/2),f=e[k],h.moveToElementText(f),
-m=h.compareEndPoints("StartToStart",c),0<m)l=k-1;else if(0>m)n=k+1;else return{container:b,offset:a(f)};if(-1==k||k==e.length-1&&0>m){h.moveToElementText(b);h.setEndPoint("StartToStart",c);h=h.text.replace(/(\r\n|\r)/g,"\n").length;e=b.childNodes;if(!h)return f=e[e.length-1],f.nodeType!=CKEDITOR.NODE_TEXT?{container:b,offset:e.length}:{container:f,offset:f.nodeValue.length};for(b=e.length;0<h&&0<b;)g=e[--b],g.nodeType==CKEDITOR.NODE_TEXT&&(q=g,h-=g.nodeValue.length);return{container:q,offset:-h}}h.collapse(0<
-m?!0:!1);h.setEndPoint(0<m?"StartToStart":"EndToStart",c);h=h.text.replace(/(\r\n|\r)/g,"\n").length;if(!h)return{container:b,offset:a(f)+(0<m?0:1)};for(;0<h;)try{g=f[0<m?"previousSibling":"nextSibling"],g.nodeType==CKEDITOR.NODE_TEXT&&(h-=g.nodeValue.length,q=g),f=g}catch(w){return{container:b,offset:a(f)}}return{container:q,offset:0<m?-h:q.nodeValue.length+h}};return function(){var a=this.getNative(),d=a&&a.createRange(),b=this.getType();if(!a)return[];if(b==CKEDITOR.SELECTION_TEXT)return a=new CKEDITOR.dom.range(this.root),
+b==d.endContainer&&1==b.nodeType&&1==d.endOffset-d.startOffset&&G[b.childNodes[d.startOffset].nodeName.toLowerCase()]&&(c=CKEDITOR.SELECTION_ELEMENT)}return a.type=c},getRanges:function(){var a=q?function(){function a(c){return(new CKEDITOR.dom.node(c)).getIndex()}var c=function(c,d){c=c.duplicate();c.collapse(d);var b=c.parentElement();if(!b.hasChildNodes())return{container:b,offset:0};for(var e=b.children,f,g,h=c.duplicate(),n=0,k=e.length-1,l=-1,m,q;n<=k;)if(l=Math.floor((n+k)/2),f=e[l],h.moveToElementText(f),
+m=h.compareEndPoints("StartToStart",c),0<m)k=l-1;else if(0>m)n=l+1;else return{container:b,offset:a(f)};if(-1==l||l==e.length-1&&0>m){h.moveToElementText(b);h.setEndPoint("StartToStart",c);h=h.text.replace(/(\r\n|\r)/g,"\n").length;e=b.childNodes;if(!h)return f=e[e.length-1],f.nodeType!=CKEDITOR.NODE_TEXT?{container:b,offset:e.length}:{container:f,offset:f.nodeValue.length};for(b=e.length;0<h&&0<b;)g=e[--b],g.nodeType==CKEDITOR.NODE_TEXT&&(q=g,h-=g.nodeValue.length);return{container:q,offset:-h}}h.collapse(0<
+m?!0:!1);h.setEndPoint(0<m?"StartToStart":"EndToStart",c);h=h.text.replace(/(\r\n|\r)/g,"\n").length;if(!h)return{container:b,offset:a(f)+(0<m?0:1)};for(;0<h;)try{g=f[0<m?"previousSibling":"nextSibling"],g.nodeType==CKEDITOR.NODE_TEXT&&(h-=g.nodeValue.length,q=g),f=g}catch(r){return{container:b,offset:a(f)}}return{container:q,offset:0<m?-h:q.nodeValue.length+h}};return function(){var a=this.getNative(),d=a&&a.createRange(),b=this.getType();if(!a)return[];if(b==CKEDITOR.SELECTION_TEXT)return a=new CKEDITOR.dom.range(this.root),
 b=c(d,!0),a.setStart(new CKEDITOR.dom.node(b.container),b.offset),b=c(d),a.setEnd(new CKEDITOR.dom.node(b.container),b.offset),a.endContainer.getPosition(a.startContainer)&CKEDITOR.POSITION_PRECEDING&&a.endOffset<=a.startContainer.getIndex()&&a.collapse(),[a];if(b==CKEDITOR.SELECTION_ELEMENT){for(var b=[],e=0;e<d.length;e++){for(var f=d.item(e),g=f.parentNode,h=0,a=new CKEDITOR.dom.range(this.root);h<g.childNodes.length&&g.childNodes[h]!=f;h++);a.setStart(new CKEDITOR.dom.node(g),h);a.setEnd(new CKEDITOR.dom.node(g),
-h+1);b.push(a)}return b}return[]}}():function(){var a=[],c,d=this.getNative();if(!d)return a;for(var b=0;b<d.rangeCount;b++){var e=d.getRangeAt(b);c=new CKEDITOR.dom.range(this.root);c.setStart(new CKEDITOR.dom.node(e.startContainer),e.startOffset);c.setEnd(new CKEDITOR.dom.node(e.endContainer),e.endOffset);a.push(c)}return a};return function(c){var d=this._.cache,b=d.ranges;b||(d.ranges=b=new CKEDITOR.dom.rangeList(a.call(this)));return c?p(new CKEDITOR.dom.rangeList(b.slice())):b}}(),getStartElement:function(){var a=
+h+1);b.push(a)}return b}return[]}}():function(){var a=[],c,d=this.getNative();if(!d)return a;for(var b=0;b<d.rangeCount;b++){var e=d.getRangeAt(b);c=new CKEDITOR.dom.range(this.root);c.setStart(new CKEDITOR.dom.node(e.startContainer),e.startOffset);c.setEnd(new CKEDITOR.dom.node(e.endContainer),e.endOffset);a.push(c)}return a};return function(c){var d=this._.cache,b=d.ranges;b||(d.ranges=b=new CKEDITOR.dom.rangeList(a.call(this)));return c?r(new CKEDITOR.dom.rangeList(b.slice())):b}}(),getStartElement:function(){var a=
 this._.cache;if(void 0!==a.startElement)return a.startElement;var c;switch(this.getType()){case CKEDITOR.SELECTION_ELEMENT:return this.getSelectedElement();case CKEDITOR.SELECTION_TEXT:var d=this.getRanges()[0];if(d){if(d.collapsed)c=d.startContainer,c.type!=CKEDITOR.NODE_ELEMENT&&(c=c.getParent());else{for(d.optimize();c=d.startContainer,d.startOffset==(c.getChildCount?c.getChildCount():c.getLength())&&!c.isBlockBoundary();)d.setStartAfter(c);c=d.startContainer;if(c.type!=CKEDITOR.NODE_ELEMENT)return c.getParent();
 if((c=c.getChild(d.startOffset))&&c.type==CKEDITOR.NODE_ELEMENT)for(d=c.getFirst();d&&d.type==CKEDITOR.NODE_ELEMENT;)c=d,d=d.getFirst();else c=d.startContainer}c=c.$}}return a.startElement=c?new CKEDITOR.dom.element(c):null},getSelectedElement:function(){var a=this._.cache;if(void 0!==a.selectedElement)return a.selectedElement;var c=this,d=CKEDITOR.tools.tryThese(function(){return c.getNative().createRange().item(0)},function(){for(var a=c.getRanges()[0].clone(),d,b,e=2;e&&!((d=a.getEnclosedNode())&&
 d.type==CKEDITOR.NODE_ELEMENT&&G[d.getName()]&&(b=d));e--)a.shrink(CKEDITOR.SHRINK_ELEMENT);return b&&b.$});return a.selectedElement=d?new CKEDITOR.dom.element(d):null},getSelectedText:function(){var a=this._.cache;if(void 0!==a.selectedText)return a.selectedText;var c=this.getNative(),c=q?"Control"==c.type?"":c.createRange().text:c.toString();return a.selectedText=c},lock:function(){this.getRanges();this.getStartElement();this.getSelectedElement();this.getSelectedText();this._.cache.nativeSel=null;
 this.isLocked=1},unlock:function(c){if(this.isLocked){if(c)var d=this.getSelectedElement(),b=this.getRanges(),e=this.isFake;this.isLocked=0;this.reset();c&&(c=d||b[0]&&b[0].getCommonAncestor())&&c.getAscendant("body",1)&&(this.root.editor.plugins.tableselection&&h(b)?a.call(this,b):e?this.fake(d):d&&2>b.length?this.selectElement(d):this.selectRanges(b))}},reset:function(){this._.cache={};this.isFake=0;var a=this.root.editor;if(a&&a._.fakeSelection)if(this.rev==a._.fakeSelection.rev){delete a._.fakeSelection;
-var c=a._.hiddenSelectionContainer;if(c){var d=a.checkDirty();a.fire("lockSnapshot");c.remove();a.fire("unlockSnapshot");!d&&a.resetDirty()}delete a._.hiddenSelectionContainer}else CKEDITOR.warn("selection-fake-reset");this.rev=u++},selectElement:function(a){var c=new CKEDITOR.dom.range(this.root);c.setStartBefore(a);c.setEndAfter(a);this.selectRanges([c])},selectRanges:function(d){var b=this.root.editor,f=b&&b._.hiddenSelectionContainer;this.reset();if(f)for(var f=this.root,g,l=0;l<d.length;++l)g=
-d[l],g.endContainer.equals(f)&&(g.endOffset=Math.min(g.endOffset,f.getChildCount()));if(d.length)if(this.isLocked){var k=CKEDITOR.document.getActive();this.unlock();this.selectRanges(d);this.lock();k&&!k.equals(this.root)&&k.focus()}else{var m;a:{var w,p;if(1==d.length&&!(p=d[0]).collapsed&&(m=p.getEnclosedNode())&&m.type==CKEDITOR.NODE_ELEMENT&&(p=p.clone(),p.shrink(CKEDITOR.SHRINK_ELEMENT,!0),(w=p.getEnclosedNode())&&w.type==CKEDITOR.NODE_ELEMENT&&(m=w),"false"==m.getAttribute("contenteditable")))break a;
-m=void 0}if(m)this.fake(m);else if(b&&b.plugins.tableselection&&b.plugins.tableselection.isSupportedEnvironment()&&h(d)&&!v&&!d[0]._getTableElement({table:1}).hasAttribute("data-cke-tableselection-ignored"))a.call(this,d);else{if(q){w=CKEDITOR.dom.walker.whitespaces(!0);m=/\ufeff|\u00a0/;p={table:1,tbody:1,tr:1};1<d.length&&(b=d[d.length-1],d[0].setEnd(b.endContainer,b.endOffset));b=d[0];d=b.collapsed;var t,r,u;if((f=b.getEnclosedNode())&&f.type==CKEDITOR.NODE_ELEMENT&&f.getName()in G&&(!f.is("a")||
-!f.getText()))try{u=f.$.createControlRange();u.addElement(f.$);u.select();return}catch(B){}if(b.startContainer.type==CKEDITOR.NODE_ELEMENT&&b.startContainer.getName()in p||b.endContainer.type==CKEDITOR.NODE_ELEMENT&&b.endContainer.getName()in p)b.shrink(CKEDITOR.NODE_ELEMENT,!0),d=b.collapsed;u=b.createBookmark();p=u.startNode;d||(k=u.endNode);u=b.document.$.body.createTextRange();u.moveToElementText(p.$);u.moveStart("character",1);k?(m=b.document.$.body.createTextRange(),m.moveToElementText(k.$),
-u.setEndPoint("EndToEnd",m),u.moveEnd("character",-1)):(t=p.getNext(w),r=p.hasAscendant("pre"),t=!(t&&t.getText&&t.getText().match(m))&&(r||!p.hasPrevious()||p.getPrevious().is&&p.getPrevious().is("br")),r=b.document.createElement("span"),r.setHtml("\x26#65279;"),r.insertBefore(p),t&&b.document.createText("").insertBefore(p));b.setStartBefore(p);p.remove();d?(t?(u.moveStart("character",-1),u.select(),b.document.$.selection.clear()):u.select(),b.moveToPosition(r,CKEDITOR.POSITION_BEFORE_START),r.remove()):
-(b.setEndBefore(k),k.remove(),u.select())}else{k=this.getNative();if(!k)return;this.removeAllRanges();for(u=0;u<d.length;u++){if(u<d.length-1&&(t=d[u],r=d[u+1],m=t.clone(),m.setStart(t.endContainer,t.endOffset),m.setEnd(r.startContainer,r.startOffset),!m.collapsed&&(m.shrink(CKEDITOR.NODE_ELEMENT,!0),b=m.getCommonAncestor(),m=m.getEnclosedNode(),b.isReadOnly()||m&&m.isReadOnly()))){r.setStart(t.startContainer,t.startOffset);d.splice(u--,1);continue}b=d[u];r=this.document.$.createRange();b.collapsed&&
-CKEDITOR.env.webkit&&e(b)&&(m=c(this.root),b.insertNode(m),(t=m.getNext())&&!m.getPrevious()&&t.type==CKEDITOR.NODE_ELEMENT&&"br"==t.getName()?(n(this.root),b.moveToPosition(t,CKEDITOR.POSITION_BEFORE_START)):b.moveToPosition(m,CKEDITOR.POSITION_AFTER_END));r.setStart(b.startContainer.$,b.startOffset);try{r.setEnd(b.endContainer.$,b.endOffset)}catch(y){if(0<=y.toString().indexOf("NS_ERROR_ILLEGAL_VALUE"))b.collapse(1),r.setEnd(b.endContainer.$,b.endOffset);else throw y;}k.addRange(r)}}this.reset();
-this.root.fire("selectionchange")}}},fake:function(a,c){var d=this.root.editor;void 0===c&&a.hasAttribute("aria-label")&&(c=a.getAttribute("aria-label"));this.reset();z(d,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++;d._.fakeSelection=this;this.root.fire("selectionchange")},isHidden:function(){var a=
+var c=a._.hiddenSelectionContainer;if(c){var d=a.checkDirty();a.fire("lockSnapshot");c.remove();a.fire("unlockSnapshot");!d&&a.resetDirty()}delete a._.hiddenSelectionContainer}else CKEDITOR.warn("selection-fake-reset");this.rev=w++},selectElement:function(a){var c=new CKEDITOR.dom.range(this.root);c.setStartBefore(a);c.setEndAfter(a);this.selectRanges([c])},selectRanges:function(d){var b=this.root.editor,f=b&&b._.hiddenSelectionContainer;this.reset();if(f)for(var f=this.root,g,k=0;k<d.length;++k)g=
+d[k],g.endContainer.equals(f)&&(g.endOffset=Math.min(g.endOffset,f.getChildCount()));if(d.length)if(this.isLocked){var l=CKEDITOR.document.getActive();this.unlock();this.selectRanges(d);this.lock();l&&!l.equals(this.root)&&l.focus()}else{var m;a:{var r,v;if(1==d.length&&!(v=d[0]).collapsed&&(m=v.getEnclosedNode())&&m.type==CKEDITOR.NODE_ELEMENT&&(v=v.clone(),v.shrink(CKEDITOR.SHRINK_ELEMENT,!0),(r=v.getEnclosedNode())&&r.type==CKEDITOR.NODE_ELEMENT&&(m=r),"false"==m.getAttribute("contenteditable")))break a;
+m=void 0}if(m)this.fake(m);else if(b&&b.plugins.tableselection&&b.plugins.tableselection.isSupportedEnvironment()&&h(d)&&!y&&!d[0]._getTableElement({table:1}).hasAttribute("data-cke-tableselection-ignored"))a.call(this,d);else{if(q){r=CKEDITOR.dom.walker.whitespaces(!0);m=/\ufeff|\u00a0/;v={table:1,tbody:1,tr:1};1<d.length&&(b=d[d.length-1],d[0].setEnd(b.endContainer,b.endOffset));b=d[0];d=b.collapsed;var t,w,u;if((f=b.getEnclosedNode())&&f.type==CKEDITOR.NODE_ELEMENT&&f.getName()in G&&(!f.is("a")||
+!f.getText()))try{u=f.$.createControlRange();u.addElement(f.$);u.select();return}catch(p){}if(b.startContainer.type==CKEDITOR.NODE_ELEMENT&&b.startContainer.getName()in v||b.endContainer.type==CKEDITOR.NODE_ELEMENT&&b.endContainer.getName()in v)b.shrink(CKEDITOR.NODE_ELEMENT,!0),d=b.collapsed;u=b.createBookmark();v=u.startNode;d||(l=u.endNode);u=b.document.$.body.createTextRange();u.moveToElementText(v.$);u.moveStart("character",1);l?(m=b.document.$.body.createTextRange(),m.moveToElementText(l.$),
+u.setEndPoint("EndToEnd",m),u.moveEnd("character",-1)):(t=v.getNext(r),w=v.hasAscendant("pre"),t=!(t&&t.getText&&t.getText().match(m))&&(w||!v.hasPrevious()||v.getPrevious().is&&v.getPrevious().is("br")),w=b.document.createElement("span"),w.setHtml("\x26#65279;"),w.insertBefore(v),t&&b.document.createText("").insertBefore(v));b.setStartBefore(v);v.remove();d?(t?(u.moveStart("character",-1),u.select(),b.document.$.selection.clear()):u.select(),b.moveToPosition(w,CKEDITOR.POSITION_BEFORE_START),w.remove()):
+(b.setEndBefore(l),l.remove(),u.select())}else{l=this.getNative();if(!l)return;this.removeAllRanges();for(u=0;u<d.length;u++){if(u<d.length-1&&(t=d[u],w=d[u+1],m=t.clone(),m.setStart(t.endContainer,t.endOffset),m.setEnd(w.startContainer,w.startOffset),!m.collapsed&&(m.shrink(CKEDITOR.NODE_ELEMENT,!0),b=m.getCommonAncestor(),m=m.getEnclosedNode(),b.isReadOnly()||m&&m.isReadOnly()))){w.setStart(t.startContainer,t.startOffset);d.splice(u--,1);continue}b=d[u];w=this.document.$.createRange();b.collapsed&&
+CKEDITOR.env.webkit&&e(b)&&(m=c(this.root),b.insertNode(m),(t=m.getNext())&&!m.getPrevious()&&t.type==CKEDITOR.NODE_ELEMENT&&"br"==t.getName()?(n(this.root),b.moveToPosition(t,CKEDITOR.POSITION_BEFORE_START)):b.moveToPosition(m,CKEDITOR.POSITION_AFTER_END));w.setStart(b.startContainer.$,b.startOffset);try{w.setEnd(b.endContainer.$,b.endOffset)}catch(x){if(0<=x.toString().indexOf("NS_ERROR_ILLEGAL_VALUE"))b.collapse(1),w.setEnd(b.endContainer.$,b.endOffset);else throw x;}l.addRange(w)}}this.reset();
+this.root.fire("selectionchange")}}},fake:function(a,c){var d=this.root.editor;void 0===c&&a.hasAttribute("aria-label")&&(c=a.getAttribute("aria-label"));this.reset();x(d,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=w++;d._.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"))},isInTable:function(a){return h(this.getRanges(),a)},isCollapsed:function(){var a=this.getRanges();return 1===a.length&&a[0].collapsed},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=[],d,b=0;b<
 a.length;b++){var e=new CKEDITOR.dom.range(this.root);e.moveToBookmark(a[b]);c.push(e)}a.isFake&&(d=h(c)?c[0]._getTableElement():c[0].getEnclosedNode(),d&&d.type==CKEDITOR.NODE_ELEMENT||(CKEDITOR.warn("selection-not-fake"),a.isFake=0));a.isFake&&!h(c)?this.fake(d):this.selectRanges(c);return this},getCommonAncestor:function(){var a=this.getRanges();return a.length?a[0].startContainer.getCommonAncestor(a[a.length-1].endContainer):null},scrollIntoView:function(){this.type!=CKEDITOR.SELECTION_NONE&&
 this.getRanges()[0].scrollIntoView()},removeAllRanges:function(){if(this.getType()!=CKEDITOR.SELECTION_NONE){var a=this.getNative();try{a&&a[q?"empty":"removeAllRanges"]()}catch(c){}this.reset()}}}})();"use strict";CKEDITOR.STYLE_BLOCK=1;CKEDITOR.STYLE_INLINE=2;CKEDITOR.STYLE_OBJECT=3;(function(){function b(a,c){for(var d,b;(a=a.getParent())&&!a.equals(c);)if(a.getAttribute("data-nostyle"))d=a;else if(!b){var e=a.getAttribute("contentEditable");"false"==e?d=a:"true"==e&&(b=1)}return d}function h(a,
-c,d,b){return(a.getPosition(c)|b)==b&&(!d.childRule||d.childRule(a))}function g(c){var d=c.document;if(c.collapsed)d=u(this,d),c.insertNode(d),c.moveToPosition(d,CKEDITOR.POSITION_BEFORE_END);else{var e=this.element,f=this._.definition,n,k=f.ignoreReadonly,l=k||f.includeReadonly;null==l&&(l=c.root.getCustomData("cke_includeReadonly"));var m=CKEDITOR.dtd[e];m||(n=!0,m=CKEDITOR.dtd.span);c.enlarge(CKEDITOR.ENLARGE_INLINE,1);c.trim();var q=c.createBookmark(),w=q.startNode,p=q.endNode,t=w,v;if(!k){var B=
-c.getCommonAncestor(),k=b(w,B),B=b(p,B);k&&(t=k.getNextSourceNode(!0));B&&(p=B)}for(t.getPosition(p)==CKEDITOR.POSITION_FOLLOWING&&(t=0);t;){k=!1;if(t.equals(p))t=null,k=!0;else{var y=t.type==CKEDITOR.NODE_ELEMENT?t.getName():null,B=y&&"false"==t.getAttribute("contentEditable"),z=y&&t.getAttribute("data-nostyle");if(y&&t.data("cke-bookmark")||t.type===CKEDITOR.NODE_COMMENT){t=t.getNextSourceNode(!0);continue}if(B&&l&&CKEDITOR.dtd.$block[y])for(var x=t,A=a(x),N=void 0,V=A.length,Y=0,x=V&&new CKEDITOR.dom.range(x.getDocument());Y<
-V;++Y){var N=A[Y],fa=CKEDITOR.filter.instances[N.data("cke-filter")];if(fa?fa.check(this):1)x.selectNodeContents(N),g.call(this,x)}A=y?!m[y]||z?0:B&&!l?0:h(t,p,f,M):1;if(A)if(N=t.getParent(),A=f,V=e,Y=n,!N||!(N.getDtd()||CKEDITOR.dtd.span)[V]&&!Y||A.parentRule&&!A.parentRule(N))k=!0;else{if(v||y&&CKEDITOR.dtd.$removeEmpty[y]&&(t.getPosition(p)|M)!=M||(v=c.clone(),v.setStartBefore(t)),y=t.type,y==CKEDITOR.NODE_TEXT||B||y==CKEDITOR.NODE_ELEMENT&&!t.getChildCount()){for(var y=t,ha;(k=!y.getNext(J))&&
-(ha=y.getParent(),m[ha.getName()])&&h(ha,w,f,H);)y=ha;v.setEndAfter(y)}}else k=!0;t=t.getNextSourceNode(z||B)}if(k&&v&&!v.collapsed){for(var k=u(this,d),B=k.hasAttributes(),z=v.getCommonAncestor(),y={},A={},N={},V={},ga,G,D;k&&z;){if(z.getName()==e){for(ga in f.attributes)!V[ga]&&(D=z.getAttribute(G))&&(k.getAttribute(ga)==D?A[ga]=1:V[ga]=1);for(G in f.styles)!N[G]&&(D=z.getStyle(G))&&(k.getStyle(G)==D?y[G]=1:N[G]=1)}z=z.getParent()}for(ga in A)k.removeAttribute(ga);for(G in y)k.removeStyle(G);B&&
-!k.hasAttributes()&&(k=null);k?(v.extractContents().appendTo(k),v.insertNode(k),r.call(this,k),k.mergeSiblings(),CKEDITOR.env.ie||k.$.normalize()):(k=new CKEDITOR.dom.element("span"),v.extractContents().appendTo(k),v.insertNode(k),r.call(this,k),k.remove(!0));v=null}}c.moveToBookmark(q);c.shrink(CKEDITOR.SHRINK_TEXT);c.shrink(CKEDITOR.NODE_ELEMENT,!0)}}function f(a){function c(){for(var a=new CKEDITOR.dom.elementPath(b.getParent()),d=new CKEDITOR.dom.elementPath(l.getParent()),e=null,f=null,g=0;g<
-a.elements.length;g++){var h=a.elements[g];if(h==a.block||h==a.blockLimit)break;m.checkElementRemovable(h,!0)&&(e=h)}for(g=0;g<d.elements.length;g++){h=d.elements[g];if(h==d.block||h==d.blockLimit)break;m.checkElementRemovable(h,!0)&&(f=h)}f&&l.breakParent(f);e&&b.breakParent(e)}a.enlarge(CKEDITOR.ENLARGE_INLINE,1);var d=a.createBookmark(),b=d.startNode,e=this._.definition.alwaysRemoveElement;if(a.collapsed){for(var f=new CKEDITOR.dom.elementPath(b.getParent(),a.root),g,h=0,k;h<f.elements.length&&
-(k=f.elements[h])&&k!=f.block&&k!=f.blockLimit;h++)if(this.checkElementRemovable(k)){var n;!e&&a.collapsed&&(a.checkBoundaryOfElement(k,CKEDITOR.END)||(n=a.checkBoundaryOfElement(k,CKEDITOR.START)))?(g=k,g.match=n?"start":"end"):(k.mergeSiblings(),k.is(this.element)?z.call(this,k):p(k,v(this)[k.getName()]))}if(g){e=b;for(h=0;;h++){k=f.elements[h];if(k.equals(g))break;else if(k.match)continue;else k=k.clone();k.append(e);e=k}e["start"==g.match?"insertBefore":"insertAfter"](g)}}else{var l=d.endNode,
-m=this;c();for(f=b;!f.equals(l);)g=f.getNextSourceNode(),f.type==CKEDITOR.NODE_ELEMENT&&this.checkElementRemovable(f)&&(f.getName()==this.element?z.call(this,f):p(f,v(this)[f.getName()]),g.type==CKEDITOR.NODE_ELEMENT&&g.contains(b)&&(c(),g=b.getNext())),f=g}a.moveToBookmark(d);a.shrink(CKEDITOR.NODE_ELEMENT,!0)}function a(a){var c=[];a.forEach(function(a){if("true"==a.getAttribute("contenteditable"))return c.push(a),!1},CKEDITOR.NODE_ELEMENT,!0);return c}function m(a){var c=a.getEnclosedNode()||a.getCommonAncestor(!1,
-!0);(a=(new CKEDITOR.dom.elementPath(c,a.root)).contains(this.element,1))&&!a.isReadOnly()&&t(a,this)}function k(a){var c=a.getCommonAncestor(!0,!0);if(a=(new CKEDITOR.dom.elementPath(c,a.root)).contains(this.element,1)){var c=this._.definition,d=c.attributes;if(d)for(var b in d)a.removeAttribute(b,d[b]);if(c.styles)for(var e in c.styles)c.styles.hasOwnProperty(e)&&a.removeStyle(e)}}function l(a){var c=a.createBookmark(!0),d=a.createIterator();d.enforceRealBlocks=!0;this._.enterMode&&(d.enlargeBr=
-this._.enterMode!=CKEDITOR.ENTER_BR);for(var b,f=a.document,g;b=d.getNextParagraph();)!b.isReadOnly()&&(d.activeFilter?d.activeFilter.check(this):1)&&(g=u(this,f,b),e(b,g));a.moveToBookmark(c)}function d(a){var c=a.createBookmark(1),d=a.createIterator();d.enforceRealBlocks=!0;d.enlargeBr=this._.enterMode!=CKEDITOR.ENTER_BR;for(var b,f;b=d.getNextParagraph();)this.checkElementRemovable(b)&&(b.is("pre")?((f=this._.enterMode==CKEDITOR.ENTER_BR?null:a.document.createElement(this._.enterMode==CKEDITOR.ENTER_P?
-"p":"div"))&&b.copyAttributes(f),e(b,f)):z.call(this,b));a.moveToBookmark(c)}function e(a,d){var b=!d;b&&(d=a.getDocument().createElement("div"),a.copyAttributes(d));var e=d&&d.is("pre"),f=a.is("pre"),g=!e&&f;if(e&&!f){f=d;(g=a.getBogus())&&g.remove();g=a.getHtml();g=n(g,/(?:^[ \t\n\r]+)|(?:[ \t\n\r]+$)/g,"");g=g.replace(/[ \t\r\n]*(<br[^>]*>)[ \t\r\n]*/gi,"$1");g=g.replace(/([ \t\n\r]+|&nbsp;)/g," ");g=g.replace(/<br\b[^>]*>/gi,"\n");if(CKEDITOR.env.ie){var h=a.getDocument().createElement("div");
-h.append(f);f.$.outerHTML="\x3cpre\x3e"+g+"\x3c/pre\x3e";f.copyAttributes(h.getFirst());f=h.getFirst().remove()}else f.setHtml(g);d=f}else g?d=w(b?[a.getHtml()]:c(a),d):a.moveChildren(d);d.replace(a);if(e){var b=d,k;(k=b.getPrevious(F))&&k.type==CKEDITOR.NODE_ELEMENT&&k.is("pre")&&(e=n(k.getHtml(),/\n$/,"")+"\n\n"+n(b.getHtml(),/^\n/,""),CKEDITOR.env.ie?b.$.outerHTML="\x3cpre\x3e"+e+"\x3c/pre\x3e":b.setHtml(e),k.remove())}else b&&q(d)}function c(a){var c=[];n(a.getOuterHtml(),/(\S\s*)\n(?:\s|(<span[^>]+data-cke-bookmark.*?\/span>))*\n(?!$)/gi,
-function(a,c,d){return c+"\x3c/pre\x3e"+d+"\x3cpre\x3e"}).replace(/<pre\b.*?>([\s\S]*?)<\/pre>/gi,function(a,d){c.push(d)});return c}function n(a,c,d){var b="",e="";a=a.replace(/(^<span[^>]+data-cke-bookmark.*?\/span>)|(<span[^>]+data-cke-bookmark.*?\/span>$)/gi,function(a,c,d){c&&(b=c);d&&(e=d);return""});return b+a.replace(c,d)+e}function w(a,c){var d;1<a.length&&(d=new CKEDITOR.dom.documentFragment(c.getDocument()));for(var b=0;b<a.length;b++){var e=a[b],e=e.replace(/(\r\n|\r)/g,"\n"),e=n(e,/^[ \t]*\n/,
-""),e=n(e,/\n$/,""),e=n(e,/^[ \t]+|[ \t]+$/g,function(a,c){return 1==a.length?"\x26nbsp;":c?" "+CKEDITOR.tools.repeat("\x26nbsp;",a.length-1):CKEDITOR.tools.repeat("\x26nbsp;",a.length-1)+" "}),e=e.replace(/\n/g,"\x3cbr\x3e"),e=e.replace(/[ \t]{2,}/g,function(a){return CKEDITOR.tools.repeat("\x26nbsp;",a.length-1)+" "});if(d){var f=c.clone();f.setHtml(e);d.append(f)}else c.setHtml(e)}return d||c}function z(a,c){var d=this._.definition,b=d.attributes,d=d.styles,e=v(this)[a.getName()],f=CKEDITOR.tools.isEmpty(b)&&
-CKEDITOR.tools.isEmpty(d),g;for(g in b)if("class"!=g&&!this._.definition.fullMatch||a.getAttribute(g)==x(g,b[g]))c&&"data-"==g.slice(0,5)||(f=a.hasAttribute(g),a.removeAttribute(g));for(var h in d)this._.definition.fullMatch&&a.getStyle(h)!=x(h,d[h],!0)||(f=f||!!a.getStyle(h),a.removeStyle(h));p(a,e,A[a.getName()]);f&&(this._.definition.alwaysRemoveElement?q(a,1):!CKEDITOR.dtd.$block[a.getName()]||this._.enterMode==CKEDITOR.ENTER_BR&&!a.hasAttributes()?q(a):a.renameNode(this._.enterMode==CKEDITOR.ENTER_P?
-"p":"div"))}function r(a){for(var c=v(this),d=a.getElementsByTag(this.element),b,e=d.count();0<=--e;)b=d.getItem(e),b.isReadOnly()||z.call(this,b,!0);for(var f in c)if(f!=this.element)for(d=a.getElementsByTag(f),e=d.count()-1;0<=e;e--)b=d.getItem(e),b.isReadOnly()||p(b,c[f])}function p(a,c,d){if(c=c&&c.attributes)for(var b=0;b<c.length;b++){var e=c[b][0],f;if(f=a.getAttribute(e)){var g=c[b][1];(null===g||g.test&&g.test(f)||"string"==typeof g&&f==g)&&a.removeAttribute(e)}}d||q(a)}function q(a,c){if(!a.hasAttributes()||
-c)if(CKEDITOR.dtd.$block[a.getName()]){var d=a.getPrevious(F),b=a.getNext(F);!d||d.type!=CKEDITOR.NODE_TEXT&&d.isBlockBoundary({br:1})||a.append("br",1);!b||b.type!=CKEDITOR.NODE_TEXT&&b.isBlockBoundary({br:1})||a.append("br");a.remove(!0)}else d=a.getFirst(),b=a.getLast(),a.remove(!0),d&&(d.type==CKEDITOR.NODE_ELEMENT&&d.mergeSiblings(),b&&!d.equals(b)&&b.type==CKEDITOR.NODE_ELEMENT&&b.mergeSiblings())}function u(a,c,d){var b;b=a.element;"*"==b&&(b="span");b=new CKEDITOR.dom.element(b,c);d&&d.copyAttributes(b);
-b=t(b,a);c.getCustomData("doc_processing_style")&&b.hasAttribute("id")?b.removeAttribute("id"):c.setCustomData("doc_processing_style",1);return b}function t(a,c){var d=c._.definition,b=d.attributes,d=CKEDITOR.style.getStyleText(d);if(b)for(var e in b)a.setAttribute(e,b[e]);d&&a.setAttribute("style",d);a.getDocument().removeCustomData("doc_processing_style");return a}function y(a,c){for(var d in a)a[d]=a[d].replace(I,function(a,d){return c[d]})}function v(a){if(a._.overrides)return a._.overrides;var c=
-a._.overrides={},d=a._.definition.overrides;if(d){CKEDITOR.tools.isArray(d)||(d=[d]);for(var b=0;b<d.length;b++){var e=d[b],f,g;"string"==typeof e?f=e.toLowerCase():(f=e.element?e.element.toLowerCase():a.element,g=e.attributes);e=c[f]||(c[f]={});if(g){var e=e.attributes=e.attributes||[],h;for(h in g)e.push([h.toLowerCase(),g[h]])}}}return c}function x(a,c,d){var b=new CKEDITOR.dom.element("span");b[d?"setStyle":"setAttribute"](a,c);return b[d?"getStyle":"getAttribute"](a)}function B(a,c){function d(a,
-c){return"font-family"==c.toLowerCase()?a.replace(/["']/g,""):a}"string"==typeof a&&(a=CKEDITOR.tools.parseCssText(a));"string"==typeof c&&(c=CKEDITOR.tools.parseCssText(c,!0));for(var b in a)if(!(b in c)||d(c[b],b)!=d(a[b],b)&&"inherit"!=a[b]&&"inherit"!=c[b])return!1;return!0}function D(a,c,d){var b=a.getRanges();c=c?this.removeFromRange:this.applyToRange;for(var e,f=b.createIterator();e=f.getNextRange();)c.call(this,e,d);a.selectRanges(b)}var A={address:1,div:1,h1:1,h2:1,h3:1,h4:1,h5:1,h6:1,p:1,
-pre:1,section:1,header:1,footer:1,nav:1,article:1,aside:1,figure:1,dialog:1,hgroup:1,time:1,meter:1,menu:1,command:1,keygen:1,output:1,progress:1,details:1,datagrid:1,datalist:1},G={a:1,blockquote:1,embed:1,hr:1,img:1,li:1,object:1,ol:1,table:1,td:1,tr:1,th:1,ul:1,dl:1,dt:1,dd:1,form:1,audio:1,video:1},C=/\s*(?:;\s*|$)/,I=/#\((.+?)\)/g,J=CKEDITOR.dom.walker.bookmark(0,1),F=CKEDITOR.dom.walker.whitespaces(1);CKEDITOR.style=function(a,c){if("string"==typeof a.type)return new CKEDITOR.style.customHandlers[a.type](a);
-var d=a.attributes;d&&d.style&&(a.styles=CKEDITOR.tools.extend({},a.styles,CKEDITOR.tools.parseCssText(d.style)),delete d.style);c&&(a=CKEDITOR.tools.clone(a),y(a.attributes,c),y(a.styles,c));d=this.element=a.element?"string"==typeof a.element?a.element.toLowerCase():a.element:"*";this.type=a.type||(A[d]?CKEDITOR.STYLE_BLOCK:G[d]?CKEDITOR.STYLE_OBJECT:CKEDITOR.STYLE_INLINE);"object"==typeof this.element&&(this.type=CKEDITOR.STYLE_OBJECT);this._={definition:a}};CKEDITOR.style.prototype={apply:function(a){if(a instanceof
-CKEDITOR.dom.document)return D.call(this,a.getSelection());if(this.checkApplicable(a.elementPath(),a)){var c=this._.enterMode;c||(this._.enterMode=a.activeEnterMode);D.call(this,a.getSelection(),0,a);this._.enterMode=c}},remove:function(a){if(a instanceof CKEDITOR.dom.document)return D.call(this,a.getSelection(),1);if(this.checkApplicable(a.elementPath(),a)){var c=this._.enterMode;c||(this._.enterMode=a.activeEnterMode);D.call(this,a.getSelection(),1,a);this._.enterMode=c}},applyToRange:function(a){this.applyToRange=
-this.type==CKEDITOR.STYLE_INLINE?g:this.type==CKEDITOR.STYLE_BLOCK?l:this.type==CKEDITOR.STYLE_OBJECT?m:null;return this.applyToRange(a)},removeFromRange:function(a){this.removeFromRange=this.type==CKEDITOR.STYLE_INLINE?f:this.type==CKEDITOR.STYLE_BLOCK?d:this.type==CKEDITOR.STYLE_OBJECT?k:null;return this.removeFromRange(a)},applyToObject:function(a){t(a,this)},checkActive:function(a,c){switch(this.type){case CKEDITOR.STYLE_BLOCK:return this.checkElementRemovable(a.block||a.blockLimit,!0,c);case CKEDITOR.STYLE_OBJECT:case CKEDITOR.STYLE_INLINE:for(var d=
+c,d,b){return(a.getPosition(c)|b)==b&&(!d.childRule||d.childRule(a))}function g(c){var d=c.document;if(c.collapsed)d=w(this,d),c.insertNode(d),c.moveToPosition(d,CKEDITOR.POSITION_BEFORE_END);else{var e=this.element,f=this._.definition,n,k=f.ignoreReadonly,l=k||f.includeReadonly;null==l&&(l=c.root.getCustomData("cke_includeReadonly"));var m=CKEDITOR.dtd[e];m||(n=!0,m=CKEDITOR.dtd.span);c.enlarge(CKEDITOR.ENLARGE_INLINE,1);c.trim();var q=c.createBookmark(),r=q.startNode,v=q.endNode,t=r,u;if(!k){var x=
+c.getCommonAncestor(),k=b(r,x),x=b(v,x);k&&(t=k.getNextSourceNode(!0));x&&(v=x)}for(t.getPosition(v)==CKEDITOR.POSITION_FOLLOWING&&(t=0);t;){k=!1;if(t.equals(v))t=null,k=!0;else{var y=t.type==CKEDITOR.NODE_ELEMENT?t.getName():null,x=y&&"false"==t.getAttribute("contentEditable"),z=y&&t.getAttribute("data-nostyle");if(y&&t.data("cke-bookmark")||t.type===CKEDITOR.NODE_COMMENT){t=t.getNextSourceNode(!0);continue}if(x&&l&&CKEDITOR.dtd.$block[y])for(var C=t,B=a(C),O=void 0,U=B.length,ca=0,C=U&&new CKEDITOR.dom.range(C.getDocument());ca<
+U;++ca){var O=B[ca],fa=CKEDITOR.filter.instances[O.data("cke-filter")];if(fa?fa.check(this):1)C.selectNodeContents(O),g.call(this,C)}B=y?!m[y]||z?0:x&&!l?0:h(t,v,f,N):1;if(B)if(O=t.getParent(),B=f,U=e,ca=n,!O||!(O.getDtd()||CKEDITOR.dtd.span)[U]&&!ca||B.parentRule&&!B.parentRule(O))k=!0;else{if(u||y&&CKEDITOR.dtd.$removeEmpty[y]&&(t.getPosition(v)|N)!=N||(u=c.clone(),u.setStartBefore(t)),y=t.type,y==CKEDITOR.NODE_TEXT||x||y==CKEDITOR.NODE_ELEMENT&&!t.getChildCount()){for(var y=t,ha;(k=!y.getNext(H))&&
+(ha=y.getParent(),m[ha.getName()])&&h(ha,r,f,J);)y=ha;u.setEndAfter(y)}}else k=!0;t=t.getNextSourceNode(z||x)}if(k&&u&&!u.collapsed){for(var k=w(this,d),x=k.hasAttributes(),z=u.getCommonAncestor(),y={},B={},O={},U={},ga,A,G;k&&z;){if(z.getName()==e){for(ga in f.attributes)!U[ga]&&(G=z.getAttribute(A))&&(k.getAttribute(ga)==G?B[ga]=1:U[ga]=1);for(A in f.styles)!O[A]&&(G=z.getStyle(A))&&(k.getStyle(A)==G?y[A]=1:O[A]=1)}z=z.getParent()}for(ga in B)k.removeAttribute(ga);for(A in y)k.removeStyle(A);x&&
+!k.hasAttributes()&&(k=null);k?(u.extractContents().appendTo(k),u.insertNode(k),p.call(this,k),k.mergeSiblings(),CKEDITOR.env.ie||k.$.normalize()):(k=new CKEDITOR.dom.element("span"),u.extractContents().appendTo(k),u.insertNode(k),p.call(this,k),k.remove(!0));u=null}}c.moveToBookmark(q);c.shrink(CKEDITOR.SHRINK_TEXT);c.shrink(CKEDITOR.NODE_ELEMENT,!0)}}function f(a){function c(){for(var a=new CKEDITOR.dom.elementPath(b.getParent()),d=new CKEDITOR.dom.elementPath(l.getParent()),e=null,f=null,g=0;g<
+a.elements.length;g++){var h=a.elements[g];if(h==a.block||h==a.blockLimit)break;m.checkElementRemovable(h,!0)&&(e=h)}for(g=0;g<d.elements.length;g++){h=d.elements[g];if(h==d.block||h==d.blockLimit)break;m.checkElementRemovable(h,!0)&&(f=h)}f&&l.breakParent(f);e&&b.breakParent(e)}a.enlarge(CKEDITOR.ENLARGE_INLINE,1);var d=a.createBookmark(),b=d.startNode,e=this._.definition.alwaysRemoveElement;if(a.collapsed){for(var f=new CKEDITOR.dom.elementPath(b.getParent(),a.root),g,h=0,n;h<f.elements.length&&
+(n=f.elements[h])&&n!=f.block&&n!=f.blockLimit;h++)if(this.checkElementRemovable(n)){var k;!e&&a.collapsed&&(a.checkBoundaryOfElement(n,CKEDITOR.END)||(k=a.checkBoundaryOfElement(n,CKEDITOR.START)))?(g=n,g.match=k?"start":"end"):(n.mergeSiblings(),n.is(this.element)?x.call(this,n):r(n,y(this)[n.getName()]))}if(g){e=b;for(h=0;;h++){n=f.elements[h];if(n.equals(g))break;else if(n.match)continue;else n=n.clone();n.append(e);e=n}e["start"==g.match?"insertBefore":"insertAfter"](g)}}else{var l=d.endNode,
+m=this;c();for(f=b;!f.equals(l);)g=f.getNextSourceNode(),f.type==CKEDITOR.NODE_ELEMENT&&this.checkElementRemovable(f)&&(f.getName()==this.element?x.call(this,f):r(f,y(this)[f.getName()]),g.type==CKEDITOR.NODE_ELEMENT&&g.contains(b)&&(c(),g=b.getNext())),f=g}a.moveToBookmark(d);a.shrink(CKEDITOR.NODE_ELEMENT,!0)}function a(a){var c=[];a.forEach(function(a){if("true"==a.getAttribute("contenteditable"))return c.push(a),!1},CKEDITOR.NODE_ELEMENT,!0);return c}function m(a){var c=a.getEnclosedNode()||a.getCommonAncestor(!1,
+!0);(a=(new CKEDITOR.dom.elementPath(c,a.root)).contains(this.element,1))&&!a.isReadOnly()&&t(a,this)}function l(a){var c=a.getCommonAncestor(!0,!0);if(a=(new CKEDITOR.dom.elementPath(c,a.root)).contains(this.element,1)){var c=this._.definition,d=c.attributes;if(d)for(var b in d)a.removeAttribute(b,d[b]);if(c.styles)for(var e in c.styles)c.styles.hasOwnProperty(e)&&a.removeStyle(e)}}function k(a){var c=a.createBookmark(!0),d=a.createIterator();d.enforceRealBlocks=!0;this._.enterMode&&(d.enlargeBr=
+this._.enterMode!=CKEDITOR.ENTER_BR);for(var b,f=a.document,g;b=d.getNextParagraph();)!b.isReadOnly()&&(d.activeFilter?d.activeFilter.check(this):1)&&(g=w(this,f,b),e(b,g));a.moveToBookmark(c)}function d(a){var c=a.createBookmark(1),d=a.createIterator();d.enforceRealBlocks=!0;d.enlargeBr=this._.enterMode!=CKEDITOR.ENTER_BR;for(var b,f;b=d.getNextParagraph();)this.checkElementRemovable(b)&&(b.is("pre")?((f=this._.enterMode==CKEDITOR.ENTER_BR?null:a.document.createElement(this._.enterMode==CKEDITOR.ENTER_P?
+"p":"div"))&&b.copyAttributes(f),e(b,f)):x.call(this,b));a.moveToBookmark(c)}function e(a,d){var b=!d;b&&(d=a.getDocument().createElement("div"),a.copyAttributes(d));var e=d&&d.is("pre"),f=a.is("pre"),g=!e&&f;if(e&&!f){f=d;(g=a.getBogus())&&g.remove();g=a.getHtml();g=n(g,/(?:^[ \t\n\r]+)|(?:[ \t\n\r]+$)/g,"");g=g.replace(/[ \t\r\n]*(<br[^>]*>)[ \t\r\n]*/gi,"$1");g=g.replace(/([ \t\n\r]+|&nbsp;)/g," ");g=g.replace(/<br\b[^>]*>/gi,"\n");if(CKEDITOR.env.ie){var h=a.getDocument().createElement("div");
+h.append(f);f.$.outerHTML="\x3cpre\x3e"+g+"\x3c/pre\x3e";f.copyAttributes(h.getFirst());f=h.getFirst().remove()}else f.setHtml(g);d=f}else g?d=v(b?[a.getHtml()]:c(a),d):a.moveChildren(d);d.replace(a);if(e){var b=d,k;(k=b.getPrevious(E))&&k.type==CKEDITOR.NODE_ELEMENT&&k.is("pre")&&(e=n(k.getHtml(),/\n$/,"")+"\n\n"+n(b.getHtml(),/^\n/,""),CKEDITOR.env.ie?b.$.outerHTML="\x3cpre\x3e"+e+"\x3c/pre\x3e":b.setHtml(e),k.remove())}else b&&q(d)}function c(a){var c=[];n(a.getOuterHtml(),/(\S\s*)\n(?:\s|(<span[^>]+data-cke-bookmark.*?\/span>))*\n(?!$)/gi,
+function(a,c,d){return c+"\x3c/pre\x3e"+d+"\x3cpre\x3e"}).replace(/<pre\b.*?>([\s\S]*?)<\/pre>/gi,function(a,d){c.push(d)});return c}function n(a,c,d){var b="",e="";a=a.replace(/(^<span[^>]+data-cke-bookmark.*?\/span>)|(<span[^>]+data-cke-bookmark.*?\/span>$)/gi,function(a,c,d){c&&(b=c);d&&(e=d);return""});return b+a.replace(c,d)+e}function v(a,c){var d;1<a.length&&(d=new CKEDITOR.dom.documentFragment(c.getDocument()));for(var b=0;b<a.length;b++){var e=a[b],e=e.replace(/(\r\n|\r)/g,"\n"),e=n(e,/^[ \t]*\n/,
+""),e=n(e,/\n$/,""),e=n(e,/^[ \t]+|[ \t]+$/g,function(a,c){return 1==a.length?"\x26nbsp;":c?" "+CKEDITOR.tools.repeat("\x26nbsp;",a.length-1):CKEDITOR.tools.repeat("\x26nbsp;",a.length-1)+" "}),e=e.replace(/\n/g,"\x3cbr\x3e"),e=e.replace(/[ \t]{2,}/g,function(a){return CKEDITOR.tools.repeat("\x26nbsp;",a.length-1)+" "});if(d){var f=c.clone();f.setHtml(e);d.append(f)}else c.setHtml(e)}return d||c}function x(a,c){var d=this._.definition,b=d.attributes,d=d.styles,e=y(this)[a.getName()],f=CKEDITOR.tools.isEmpty(b)&&
+CKEDITOR.tools.isEmpty(d),g;for(g in b)if("class"!=g&&!this._.definition.fullMatch||a.getAttribute(g)==u(g,b[g]))c&&"data-"==g.slice(0,5)||(f=a.hasAttribute(g),a.removeAttribute(g));for(var h in d)this._.definition.fullMatch&&a.getStyle(h)!=u(h,d[h],!0)||(f=f||!!a.getStyle(h),a.removeStyle(h));r(a,e,B[a.getName()]);f&&(this._.definition.alwaysRemoveElement?q(a,1):!CKEDITOR.dtd.$block[a.getName()]||this._.enterMode==CKEDITOR.ENTER_BR&&!a.hasAttributes()?q(a):a.renameNode(this._.enterMode==CKEDITOR.ENTER_P?
+"p":"div"))}function p(a){for(var c=y(this),d=a.getElementsByTag(this.element),b,e=d.count();0<=--e;)b=d.getItem(e),b.isReadOnly()||x.call(this,b,!0);for(var f in c)if(f!=this.element)for(d=a.getElementsByTag(f),e=d.count()-1;0<=e;e--)b=d.getItem(e),b.isReadOnly()||r(b,c[f])}function r(a,c,d){if(c=c&&c.attributes)for(var b=0;b<c.length;b++){var e=c[b][0],f;if(f=a.getAttribute(e)){var g=c[b][1];(null===g||g.test&&g.test(f)||"string"==typeof g&&f==g)&&a.removeAttribute(e)}}d||q(a)}function q(a,c){if(!a.hasAttributes()||
+c)if(CKEDITOR.dtd.$block[a.getName()]){var d=a.getPrevious(E),b=a.getNext(E);!d||d.type!=CKEDITOR.NODE_TEXT&&d.isBlockBoundary({br:1})||a.append("br",1);!b||b.type!=CKEDITOR.NODE_TEXT&&b.isBlockBoundary({br:1})||a.append("br");a.remove(!0)}else d=a.getFirst(),b=a.getLast(),a.remove(!0),d&&(d.type==CKEDITOR.NODE_ELEMENT&&d.mergeSiblings(),b&&!d.equals(b)&&b.type==CKEDITOR.NODE_ELEMENT&&b.mergeSiblings())}function w(a,c,d){var b;b=a.element;"*"==b&&(b="span");b=new CKEDITOR.dom.element(b,c);d&&d.copyAttributes(b);
+b=t(b,a);c.getCustomData("doc_processing_style")&&b.hasAttribute("id")?b.removeAttribute("id"):c.setCustomData("doc_processing_style",1);return b}function t(a,c){var d=c._.definition,b=d.attributes,d=CKEDITOR.style.getStyleText(d);if(b)for(var e in b)a.setAttribute(e,b[e]);d&&a.setAttribute("style",d);a.getDocument().removeCustomData("doc_processing_style");return a}function z(a,c){for(var d in a)a[d]=a[d].replace(K,function(a,d){return c[d]})}function y(a){if(a._.overrides)return a._.overrides;var c=
+a._.overrides={},d=a._.definition.overrides;if(d){CKEDITOR.tools.isArray(d)||(d=[d]);for(var b=0;b<d.length;b++){var e=d[b],f,g;"string"==typeof e?f=e.toLowerCase():(f=e.element?e.element.toLowerCase():a.element,g=e.attributes);e=c[f]||(c[f]={});if(g){var e=e.attributes=e.attributes||[],h;for(h in g)e.push([h.toLowerCase(),g[h]])}}}return c}function u(a,c,d){var b=new CKEDITOR.dom.element("span");b[d?"setStyle":"setAttribute"](a,c);return b[d?"getStyle":"getAttribute"](a)}function C(a,c){function d(a,
+c){return"font-family"==c.toLowerCase()?a.replace(/["']/g,""):a}"string"==typeof a&&(a=CKEDITOR.tools.parseCssText(a));"string"==typeof c&&(c=CKEDITOR.tools.parseCssText(c,!0));for(var b in a)if(!(b in c)||d(c[b],b)!=d(a[b],b)&&"inherit"!=a[b]&&"inherit"!=c[b])return!1;return!0}function A(a,c,d){var b=a.getRanges();c=c?this.removeFromRange:this.applyToRange;for(var e,f=b.createIterator();e=f.getNextRange();)c.call(this,e,d);a.selectRanges(b)}var B={address:1,div:1,h1:1,h2:1,h3:1,h4:1,h5:1,h6:1,p:1,
+pre:1,section:1,header:1,footer:1,nav:1,article:1,aside:1,figure:1,dialog:1,hgroup:1,time:1,meter:1,menu:1,command:1,keygen:1,output:1,progress:1,details:1,datagrid:1,datalist:1},G={a:1,blockquote:1,embed:1,hr:1,img:1,li:1,object:1,ol:1,table:1,td:1,tr:1,th:1,ul:1,dl:1,dt:1,dd:1,form:1,audio:1,video:1},F=/\s*(?:;\s*|$)/,K=/#\((.+?)\)/g,H=CKEDITOR.dom.walker.bookmark(0,1),E=CKEDITOR.dom.walker.whitespaces(1);CKEDITOR.style=function(a,c){if("string"==typeof a.type)return new CKEDITOR.style.customHandlers[a.type](a);
+var d=a.attributes;d&&d.style&&(a.styles=CKEDITOR.tools.extend({},a.styles,CKEDITOR.tools.parseCssText(d.style)),delete d.style);c&&(a=CKEDITOR.tools.clone(a),z(a.attributes,c),z(a.styles,c));d=this.element=a.element?"string"==typeof a.element?a.element.toLowerCase():a.element:"*";this.type=a.type||(B[d]?CKEDITOR.STYLE_BLOCK:G[d]?CKEDITOR.STYLE_OBJECT:CKEDITOR.STYLE_INLINE);"object"==typeof this.element&&(this.type=CKEDITOR.STYLE_OBJECT);this._={definition:a}};CKEDITOR.style.prototype={apply:function(a){if(a instanceof
+CKEDITOR.dom.document)return A.call(this,a.getSelection());if(this.checkApplicable(a.elementPath(),a)){var c=this._.enterMode;c||(this._.enterMode=a.activeEnterMode);A.call(this,a.getSelection(),0,a);this._.enterMode=c}},remove:function(a){if(a instanceof CKEDITOR.dom.document)return A.call(this,a.getSelection(),1);if(this.checkApplicable(a.elementPath(),a)){var c=this._.enterMode;c||(this._.enterMode=a.activeEnterMode);A.call(this,a.getSelection(),1,a);this._.enterMode=c}},applyToRange:function(a){this.applyToRange=
+this.type==CKEDITOR.STYLE_INLINE?g:this.type==CKEDITOR.STYLE_BLOCK?k:this.type==CKEDITOR.STYLE_OBJECT?m:null;return this.applyToRange(a)},removeFromRange:function(a){this.removeFromRange=this.type==CKEDITOR.STYLE_INLINE?f:this.type==CKEDITOR.STYLE_BLOCK?d:this.type==CKEDITOR.STYLE_OBJECT?l:null;return this.removeFromRange(a)},applyToObject:function(a){t(a,this)},checkActive:function(a,c){switch(this.type){case CKEDITOR.STYLE_BLOCK:return this.checkElementRemovable(a.block||a.blockLimit,!0,c);case CKEDITOR.STYLE_OBJECT:case CKEDITOR.STYLE_INLINE:for(var d=
 a.elements,b=0,e;b<d.length;b++)if(e=d[b],this.type!=CKEDITOR.STYLE_INLINE||e!=a.block&&e!=a.blockLimit){if(this.type==CKEDITOR.STYLE_OBJECT){var f=e.getName();if(!("string"==typeof this.element?f==this.element:f in this.element))continue}if(this.checkElementRemovable(e,!0,c))return!0}}return!1},checkApplicable:function(a,c,d){c&&c instanceof CKEDITOR.filter&&(d=c);if(d&&!d.check(this))return!1;switch(this.type){case CKEDITOR.STYLE_OBJECT:return!!a.contains(this.element);case CKEDITOR.STYLE_BLOCK:return!!a.blockLimit.getDtd()[this.element]}return!0},
-checkElementMatch:function(a,c){var d=this._.definition;if(!a||!d.ignoreReadonly&&a.isReadOnly())return!1;var b=a.getName();if("string"==typeof this.element?b==this.element:b in this.element){if(!c&&!a.hasAttributes())return!0;if(b=d._AC)d=b;else{var b={},e=0,f=d.attributes;if(f)for(var g in f)e++,b[g]=f[g];if(g=CKEDITOR.style.getStyleText(d))b.style||e++,b.style=g;b._length=e;d=d._AC=b}if(d._length){for(var h in d)if("_length"!=h)if(b=a.getAttribute(h)||"","style"==h?B(d[h],b):d[h]==b){if(!c)return!0}else if(c)return!1;
-if(c)return!0}else return!0}return!1},checkElementRemovable:function(a,c,d){if(this.checkElementMatch(a,c,d))return!0;if(c=v(this)[a.getName()]){var b;if(!(c=c.attributes))return!0;for(d=0;d<c.length;d++)if(b=c[d][0],b=a.getAttribute(b)){var e=c[d][1];if(null===e)return!0;if("string"==typeof e){if(b==e)return!0}else if(e.test(b))return!0}}return!1},buildPreview:function(a){var c=this._.definition,d=[],b=c.element;"bdo"==b&&(b="span");var d=["\x3c",b],e=c.attributes;if(e)for(var f in e)d.push(" ",
-f,'\x3d"',e[f],'"');(e=CKEDITOR.style.getStyleText(c))&&d.push(' style\x3d"',e,'"');d.push("\x3e",a||c.name,"\x3c/",b,"\x3e");return d.join("")},getDefinition:function(){return this._.definition}};CKEDITOR.style.getStyleText=function(a){var c=a._ST;if(c)return c;var c=a.styles,d=a.attributes&&a.attributes.style||"",b="";d.length&&(d=d.replace(C,";"));for(var e in c){var f=c[e],g=(e+":"+f).replace(C,";");"inherit"==f?b+=g:d+=g}d.length&&(d=CKEDITOR.tools.normalizeCssText(d,!0));return a._ST=d+b};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,!0);return this.customHandlers[a.type]=c};var M=CKEDITOR.POSITION_PRECEDING|CKEDITOR.POSITION_IDENTICAL|CKEDITOR.POSITION_IS_CONTAINED,H=CKEDITOR.POSITION_FOLLOWING|CKEDITOR.POSITION_IDENTICAL|CKEDITOR.POSITION_IS_CONTAINED})();CKEDITOR.styleCommand=function(b,
+checkElementMatch:function(a,c){var d=this._.definition;if(!a||!d.ignoreReadonly&&a.isReadOnly())return!1;var b=a.getName();if("string"==typeof this.element?b==this.element:b in this.element){if(!c&&!a.hasAttributes())return!0;if(b=d._AC)d=b;else{var b={},e=0,f=d.attributes;if(f)for(var g in f)e++,b[g]=f[g];if(g=CKEDITOR.style.getStyleText(d))b.style||e++,b.style=g;b._length=e;d=d._AC=b}if(d._length){for(var h in d)if("_length"!=h)if(b=a.getAttribute(h)||"","style"==h?C(d[h],b):d[h]==b){if(!c)return!0}else if(c)return!1;
+if(c)return!0}else return!0}return!1},checkElementRemovable:function(a,c,d){if(this.checkElementMatch(a,c,d))return!0;if(c=y(this)[a.getName()]){var b;if(!(c=c.attributes))return!0;for(d=0;d<c.length;d++)if(b=c[d][0],b=a.getAttribute(b)){var e=c[d][1];if(null===e)return!0;if("string"==typeof e){if(b==e)return!0}else if(e.test(b))return!0}}return!1},buildPreview:function(a){var c=this._.definition,d=[],b=c.element;"bdo"==b&&(b="span");var d=["\x3c",b],e=c.attributes;if(e)for(var f in e)d.push(" ",
+f,'\x3d"',e[f],'"');(e=CKEDITOR.style.getStyleText(c))&&d.push(' style\x3d"',e,'"');d.push("\x3e",a||c.name,"\x3c/",b,"\x3e");return d.join("")},getDefinition:function(){return this._.definition}};CKEDITOR.style.getStyleText=function(a){var c=a._ST;if(c)return c;var c=a.styles,d=a.attributes&&a.attributes.style||"",b="";d.length&&(d=d.replace(F,";"));for(var e in c){var f=c[e],g=(e+":"+f).replace(F,";");"inherit"==f?b+=g:d+=g}d.length&&(d=CKEDITOR.tools.normalizeCssText(d,!0));return a._ST=d+b};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,!0);return this.customHandlers[a.type]=c};var N=CKEDITOR.POSITION_PRECEDING|CKEDITOR.POSITION_IDENTICAL|CKEDITOR.POSITION_IS_CONTAINED,J=CKEDITOR.POSITION_FOLLOWING|CKEDITOR.POSITION_IDENTICAL|CKEDITOR.POSITION_IS_CONTAINED})();CKEDITOR.styleCommand=function(b,
 h){this.requiredContent=this.allowedContent=this.style=b;CKEDITOR.tools.extend(this,h,!0)};CKEDITOR.styleCommand.prototype.exec=function(b){b.focus();this.state==CKEDITOR.TRISTATE_OFF?b.applyStyle(this.style):this.state==CKEDITOR.TRISTATE_ON&&b.removeStyle(this.style)};CKEDITOR.stylesSet=new CKEDITOR.resourceManager("","stylesSet");CKEDITOR.addStylesSet=CKEDITOR.tools.bind(CKEDITOR.stylesSet.add,CKEDITOR.stylesSet);CKEDITOR.loadStylesSet=function(b,h,g){CKEDITOR.stylesSet.addExternal(b,h,"");CKEDITOR.stylesSet.load(b,
-g)};CKEDITOR.tools.extend(CKEDITOR.editor.prototype,{attachStyleStateChange:function(b,h){var g=this._.styleStateChangeCallbacks;g||(g=this._.styleStateChangeCallbacks=[],this.on("selectionChange",function(b){for(var a=0;a<g.length;a++){var h=g[a],k=h.style.checkActive(b.data.path,this)?CKEDITOR.TRISTATE_ON:CKEDITOR.TRISTATE_OFF;h.fn.call(this,k)}}));g.push({style:b,fn:h})},applyStyle:function(b){b.apply(this)},removeStyle:function(b){b.remove(this)},getStylesSet:function(b){if(this._.stylesDefinitions)b(this._.stylesDefinitions);
+g)};CKEDITOR.tools.extend(CKEDITOR.editor.prototype,{attachStyleStateChange:function(b,h){var g=this._.styleStateChangeCallbacks;g||(g=this._.styleStateChangeCallbacks=[],this.on("selectionChange",function(b){for(var a=0;a<g.length;a++){var h=g[a],l=h.style.checkActive(b.data.path,this)?CKEDITOR.TRISTATE_ON:CKEDITOR.TRISTATE_OFF;h.fn.call(this,l)}}));g.push({style:b,fn:h})},applyStyle:function(b){b.apply(this)},removeStyle:function(b){b.remove(this)},getStylesSet:function(b){if(this._.stylesDefinitions)b(this._.stylesDefinitions);
 else{var h=this,g=h.config.stylesCombo_stylesSet||h.config.stylesSet;if(!1===g)b(null);else if(g instanceof Array)h._.stylesDefinitions=g,b(g);else{g||(g="default");var g=g.split(":"),f=g[0];CKEDITOR.stylesSet.addExternal(f,g[1]?g.slice(1).join(":"):CKEDITOR.getUrl("styles.js"),"");CKEDITOR.stylesSet.load(f,function(a){h._.stylesDefinitions=a[f];b(h._.stylesDefinitions)})}}}});(function(){if(window.Promise)CKEDITOR.tools.promise=Promise;else{var b=CKEDITOR.getUrl("vendor/promise.js");if("function"===
 typeof window.define&&window.define.amd&&"function"===typeof window.require)return window.require([b],function(b){CKEDITOR.tools.promise=b});CKEDITOR.scriptLoader.load(b,function(h){if(!h)return CKEDITOR.error("no-vendor-lib",{path:b});if("undefined"!==typeof window.ES6Promise)return CKEDITOR.tools.promise=ES6Promise})}})();(function(){function b(b,a,m){b.once("selectionCheck",function(b){if(!h){var f=b.data.getRanges()[0];m.equals(f)?b.cancel():a.equals(f)&&(g=!0)}},null,null,-1)}var h=!0,g=!1;CKEDITOR.dom.selection.setupEditorOptimization=
 function(b){b.on("selectionCheck",function(a){a.data&&!g&&a.data.optimizeInElementEnds();g=!1});b.on("contentDom",function(){var a=b.editable();a&&(a.attachListener(a,"keydown",function(a){this._.shiftPressed=a.data.$.shiftKey},this),a.attachListener(a,"keyup",function(a){this._.shiftPressed=a.data.$.shiftKey},this))})};CKEDITOR.dom.selection.prototype.optimizeInElementEnds=function(){var f=this.getRanges()[0],a=this.root.editor,g;if(this.root.editor._.shiftPressed||this.isFake||f.isCollapsed||f.startContainer.equals(f.endContainer))g=
-!1;else if(0===f.endOffset)g=!0;else{g=f.startContainer.type===CKEDITOR.NODE_TEXT;var k=f.endContainer.type===CKEDITOR.NODE_TEXT,l=g?f.startContainer.getLength():f.startContainer.getChildCount();g=f.startOffset===l||g^k}g&&(g=f.clone(),f.shrink(CKEDITOR.SHRINK_TEXT,!1,{skipBogus:!0}),h=!1,b(a,f,g),f.select(),h=!0)}})();CKEDITOR.dom.comment=function(b,h){"string"==typeof b&&(b=(h?h.$:document).createComment(b));CKEDITOR.dom.domObject.call(this,b)};CKEDITOR.dom.comment.prototype=new CKEDITOR.dom.node;
-CKEDITOR.tools.extend(CKEDITOR.dom.comment.prototype,{type:CKEDITOR.NODE_COMMENT,getOuterHtml:function(){return"\x3c!--"+this.$.nodeValue+"--\x3e"}});"use strict";(function(){var b={},h={},g;for(g in CKEDITOR.dtd.$blockLimit)g in CKEDITOR.dtd.$list||(b[g]=1);for(g in CKEDITOR.dtd.$block)g in CKEDITOR.dtd.$blockLimit||g in CKEDITOR.dtd.$empty||(h[g]=1);CKEDITOR.dom.elementPath=function(f,a){var g=null,k=null,l=[],d=f,e;a=a||f.getDocument().getBody();d||(d=a);do if(d.type==CKEDITOR.NODE_ELEMENT){l.push(d);
-if(!this.lastElement&&(this.lastElement=d,d.is(CKEDITOR.dtd.$object)||"false"==d.getAttribute("contenteditable")))continue;if(d.equals(a))break;if(!k&&(e=d.getName(),"true"==d.getAttribute("contenteditable")?k=d:!g&&h[e]&&(g=d),b[e])){if(e=!g&&"div"==e){a:{e=d.getChildren();for(var c=0,n=e.count();c<n;c++){var w=e.getItem(c);if(w.type==CKEDITOR.NODE_ELEMENT&&CKEDITOR.dtd.$block[w.getName()]){e=!0;break a}}e=!1}e=!e}e?g=d:k=d}}while(d=d.getParent());k||(k=a);this.block=g;this.blockLimit=k;this.root=
-a;this.elements=l}})();CKEDITOR.dom.elementPath.prototype={compare:function(b){var h=this.elements;b=b&&b.elements;if(!b||h.length!=b.length)return!1;for(var g=0;g<h.length;g++)if(!h[g].equals(b[g]))return!1;return!0},contains:function(b,h,g){var f=0,a;"string"==typeof b&&(a=function(a){return a.getName()==b});b instanceof CKEDITOR.dom.element?a=function(a){return a.equals(b)}:CKEDITOR.tools.isArray(b)?a=function(a){return-1<CKEDITOR.tools.indexOf(b,a.getName())}:"function"==typeof b?a=b:"object"==
-typeof b&&(a=function(a){return a.getName()in b});var m=this.elements,k=m.length;h&&(g?f+=1:--k);g&&(m=Array.prototype.slice.call(m,0),m.reverse());for(;f<k;f++)if(a(m[f]))return m[f];return null},isContextFor:function(b){var h;return b in CKEDITOR.dtd.$block?(h=this.contains(CKEDITOR.dtd.$intermediate)||this.root.equals(this.block)&&this.block||this.blockLimit,!!h.getDtd()[b]):!0},direction:function(){return(this.block||this.blockLimit||this.root).getDirection(1)}};CKEDITOR.dom.text=function(b,h){"string"==
+!1;else if(0===f.endOffset)g=!0;else{g=f.startContainer.type===CKEDITOR.NODE_TEXT;var l=f.endContainer.type===CKEDITOR.NODE_TEXT,k=g?f.startContainer.getLength():f.startContainer.getChildCount();g=f.startOffset===k||g^l}g&&(g=f.clone(),f.shrink(CKEDITOR.SHRINK_TEXT,!1,{skipBogus:!0}),h=!1,b(a,f,g),f.select(),h=!0)}})();CKEDITOR.dom.comment=function(b,h){"string"==typeof b&&(b=(h?h.$:document).createComment(b));CKEDITOR.dom.domObject.call(this,b)};CKEDITOR.dom.comment.prototype=new CKEDITOR.dom.node;
+CKEDITOR.tools.extend(CKEDITOR.dom.comment.prototype,{type:CKEDITOR.NODE_COMMENT,getOuterHtml:function(){return"\x3c!--"+this.$.nodeValue+"--\x3e"}});"use strict";(function(){var b={},h={},g;for(g in CKEDITOR.dtd.$blockLimit)g in CKEDITOR.dtd.$list||(b[g]=1);for(g in CKEDITOR.dtd.$block)g in CKEDITOR.dtd.$blockLimit||g in CKEDITOR.dtd.$empty||(h[g]=1);CKEDITOR.dom.elementPath=function(f,a){var g=null,l=null,k=[],d=f,e;a=a||f.getDocument().getBody();d||(d=a);do if(d.type==CKEDITOR.NODE_ELEMENT){k.push(d);
+if(!this.lastElement&&(this.lastElement=d,d.is(CKEDITOR.dtd.$object)||"false"==d.getAttribute("contenteditable")))continue;if(d.equals(a))break;if(!l&&(e=d.getName(),"true"==d.getAttribute("contenteditable")?l=d:!g&&h[e]&&(g=d),b[e])){if(e=!g&&"div"==e){a:{e=d.getChildren();for(var c=0,n=e.count();c<n;c++){var v=e.getItem(c);if(v.type==CKEDITOR.NODE_ELEMENT&&CKEDITOR.dtd.$block[v.getName()]){e=!0;break a}}e=!1}e=!e}e?g=d:l=d}}while(d=d.getParent());l||(l=a);this.block=g;this.blockLimit=l;this.root=
+a;this.elements=k}})();CKEDITOR.dom.elementPath.prototype={compare:function(b){var h=this.elements;b=b&&b.elements;if(!b||h.length!=b.length)return!1;for(var g=0;g<h.length;g++)if(!h[g].equals(b[g]))return!1;return!0},contains:function(b,h,g){var f=0,a;"string"==typeof b&&(a=function(a){return a.getName()==b});b instanceof CKEDITOR.dom.element?a=function(a){return a.equals(b)}:CKEDITOR.tools.isArray(b)?a=function(a){return-1<CKEDITOR.tools.indexOf(b,a.getName())}:"function"==typeof b?a=b:"object"==
+typeof b&&(a=function(a){return a.getName()in b});var m=this.elements,l=m.length;h&&(g?f+=1:--l);g&&(m=Array.prototype.slice.call(m,0),m.reverse());for(;f<l;f++)if(a(m[f]))return m[f];return null},isContextFor:function(b){var h;return b in CKEDITOR.dtd.$block?(h=this.contains(CKEDITOR.dtd.$intermediate)||this.root.equals(this.block)&&this.block||this.blockLimit,!!h.getDtd()[b]):!0},direction:function(){return(this.block||this.blockLimit||this.root).getDirection(1)}};CKEDITOR.dom.text=function(b,h){"string"==
 typeof b&&(b=(h?h.$:document).createTextNode(b));this.$=b};CKEDITOR.dom.text.prototype=new CKEDITOR.dom.node;CKEDITOR.tools.extend(CKEDITOR.dom.text.prototype,{type:CKEDITOR.NODE_TEXT,getLength:function(){return this.$.nodeValue.length},getText:function(){return this.$.nodeValue},setText:function(b){this.$.nodeValue=b},isEmpty:function(b){var h=this.getText();b&&(h=CKEDITOR.tools.trim(h));return!h||h===CKEDITOR.dom.selection.FILLING_CHAR_SEQUENCE},split:function(b){var h=this.$.parentNode,g=h.childNodes.length,
-f=this.getLength(),a=this.getDocument(),m=new CKEDITOR.dom.text(this.$.splitText(b),a);h.childNodes.length==g&&(b>=f?(m=a.createText(""),m.insertAfter(this)):(b=a.createText(""),b.insertAfter(m),b.remove()));return m},substring:function(b,h){return"number"!=typeof h?this.$.nodeValue.substr(b):this.$.nodeValue.substring(b,h)}});(function(){function b(b,f,a){var h=b.serializable,k=f[a?"endContainer":"startContainer"],l=a?"endOffset":"startOffset",d=h?f.document.getById(b.startNode):b.startNode;b=h?
-f.document.getById(b.endNode):b.endNode;k.equals(d.getPrevious())?(f.startOffset=f.startOffset-k.getLength()-b.getPrevious().getLength(),k=b.getNext()):k.equals(b.getPrevious())&&(f.startOffset-=k.getLength(),k=b.getNext());k.equals(d.getParent())&&f[l]++;k.equals(b.getParent())&&f[l]++;f[a?"endContainer":"startContainer"]=k;return f}CKEDITOR.dom.rangeList=function(b){if(b instanceof CKEDITOR.dom.rangeList)return b;b?b instanceof CKEDITOR.dom.range&&(b=[b]):b=[];return CKEDITOR.tools.extend(b,h)};
-var h={createIterator:function(){var b=this,f=CKEDITOR.dom.walker.bookmark(),a=[],h;return{getNextRange:function(k){h=void 0===h?0:h+1;var l=b[h];if(l&&1<b.length){if(!h)for(var d=b.length-1;0<=d;d--)a.unshift(b[d].createBookmark(!0));if(k)for(var e=0;b[h+e+1];){var c=l.document;k=0;d=c.getById(a[e].endNode);for(c=c.getById(a[e+1].startNode);;){d=d.getNextSourceNode(!1);if(c.equals(d))k=1;else if(f(d)||d.type==CKEDITOR.NODE_ELEMENT&&d.isBlockBoundary())continue;break}if(!k)break;e++}for(l.moveToBookmark(a.shift());e--;)d=
-b[++h],d.moveToBookmark(a.shift()),l.setEnd(d.endContainer,d.endOffset)}return l}}},createBookmarks:function(g){for(var f=[],a,h=0;h<this.length;h++){f.push(a=this[h].createBookmark(g,!0));for(var k=h+1;k<this.length;k++)this[k]=b(a,this[k]),this[k]=b(a,this[k],!0)}return f},createBookmarks2:function(b){for(var f=[],a=0;a<this.length;a++)f.push(this[a].createBookmark2(b));return f},moveToBookmarks:function(b){for(var f=0;f<this.length;f++)this[f].moveToBookmark(b[f])}}})();(function(){function b(){return CKEDITOR.getUrl(CKEDITOR.skinName.split(",")[1]||
-"skins/"+CKEDITOR.skinName.split(",")[0]+"/")}function h(a){var c=CKEDITOR.skin["ua_"+a],d=CKEDITOR.env;if(c)for(var c=c.split(",").sort(function(a,c){return a>c?-1:1}),f=0,g;f<c.length;f++)if(g=c[f],d.ie&&(g.replace(/^ie/,"")==d.version||d.quirks&&"iequirks"==g)&&(g="ie"),d[g]){a+="_"+c[f];break}return CKEDITOR.getUrl(b()+a+".css")}function g(a,c){m[a]||(CKEDITOR.document.appendStyleSheet(h(a)),m[a]=1);c&&c()}function f(a){var c=a.getById(k);c||(c=a.getHead().append("style"),c.setAttribute("id",
-k),c.setAttribute("type","text/css"));return c}function a(a,c,d){var b,f,g;if(CKEDITOR.env.webkit)for(c=c.split("}").slice(0,-1),f=0;f<c.length;f++)c[f]=c[f].split("{");for(var h=0;h<a.length;h++)if(CKEDITOR.env.webkit)for(f=0;f<c.length;f++){g=c[f][1];for(b=0;b<d.length;b++)g=g.replace(d[b][0],d[b][1]);a[h].$.sheet.addRule(c[f][0],g)}else{g=c;for(b=0;b<d.length;b++)g=g.replace(d[b][0],d[b][1]);CKEDITOR.env.ie&&11>CKEDITOR.env.version?a[h].$.styleSheet.cssText+=g:a[h].$.innerHTML+=g}}var m={};CKEDITOR.skin=
+f=this.getLength(),a=this.getDocument(),m=new CKEDITOR.dom.text(this.$.splitText(b),a);h.childNodes.length==g&&(b>=f?(m=a.createText(""),m.insertAfter(this)):(b=a.createText(""),b.insertAfter(m),b.remove()));return m},substring:function(b,h){return"number"!=typeof h?this.$.nodeValue.substr(b):this.$.nodeValue.substring(b,h)}});(function(){function b(b,f,a){var h=b.serializable,l=f[a?"endContainer":"startContainer"],k=a?"endOffset":"startOffset",d=h?f.document.getById(b.startNode):b.startNode;b=h?
+f.document.getById(b.endNode):b.endNode;l.equals(d.getPrevious())?(f.startOffset=f.startOffset-l.getLength()-b.getPrevious().getLength(),l=b.getNext()):l.equals(b.getPrevious())&&(f.startOffset-=l.getLength(),l=b.getNext());l.equals(d.getParent())&&f[k]++;l.equals(b.getParent())&&f[k]++;f[a?"endContainer":"startContainer"]=l;return f}CKEDITOR.dom.rangeList=function(b){if(b instanceof CKEDITOR.dom.rangeList)return b;b?b instanceof CKEDITOR.dom.range&&(b=[b]):b=[];return CKEDITOR.tools.extend(b,h)};
+var h={createIterator:function(){var b=this,f=CKEDITOR.dom.walker.bookmark(),a=[],h;return{getNextRange:function(l){h=void 0===h?0:h+1;var k=b[h];if(k&&1<b.length){if(!h)for(var d=b.length-1;0<=d;d--)a.unshift(b[d].createBookmark(!0));if(l)for(var e=0;b[h+e+1];){var c=k.document;l=0;d=c.getById(a[e].endNode);for(c=c.getById(a[e+1].startNode);;){d=d.getNextSourceNode(!1);if(c.equals(d))l=1;else if(f(d)||d.type==CKEDITOR.NODE_ELEMENT&&d.isBlockBoundary())continue;break}if(!l)break;e++}for(k.moveToBookmark(a.shift());e--;)d=
+b[++h],d.moveToBookmark(a.shift()),k.setEnd(d.endContainer,d.endOffset)}return k}}},createBookmarks:function(g){for(var f=[],a,h=0;h<this.length;h++){f.push(a=this[h].createBookmark(g,!0));for(var l=h+1;l<this.length;l++)this[l]=b(a,this[l]),this[l]=b(a,this[l],!0)}return f},createBookmarks2:function(b){for(var f=[],a=0;a<this.length;a++)f.push(this[a].createBookmark2(b));return f},moveToBookmarks:function(b){for(var f=0;f<this.length;f++)this[f].moveToBookmark(b[f])}}})();(function(){function b(){return CKEDITOR.getUrl(CKEDITOR.skinName.split(",")[1]||
+"skins/"+CKEDITOR.skinName.split(",")[0]+"/")}function h(a){var c=CKEDITOR.skin["ua_"+a],d=CKEDITOR.env;if(c)for(var c=c.split(",").sort(function(a,c){return a>c?-1:1}),f=0,g;f<c.length;f++)if(g=c[f],d.ie&&(g.replace(/^ie/,"")==d.version||d.quirks&&"iequirks"==g)&&(g="ie"),d[g]){a+="_"+c[f];break}return CKEDITOR.getUrl(b()+a+".css")}function g(a,c){m[a]||(CKEDITOR.document.appendStyleSheet(h(a)),m[a]=1);c&&c()}function f(a){var c=a.getById(l);c||(c=a.getHead().append("style"),c.setAttribute("id",
+l),c.setAttribute("type","text/css"));return c}function a(a,c,d){var b,f,g;if(CKEDITOR.env.webkit)for(c=c.split("}").slice(0,-1),f=0;f<c.length;f++)c[f]=c[f].split("{");for(var h=0;h<a.length;h++)if(CKEDITOR.env.webkit)for(f=0;f<c.length;f++){g=c[f][1];for(b=0;b<d.length;b++)g=g.replace(d[b][0],d[b][1]);a[h].$.sheet.addRule(c[f][0],g)}else{g=c;for(b=0;b<d.length;b++)g=g.replace(d[b][0],d[b][1]);CKEDITOR.env.ie&&11>CKEDITOR.env.version?a[h].$.styleSheet.cssText+=g:a[h].$.innerHTML+=g}}var m={};CKEDITOR.skin=
 {path:b,loadPart:function(a,c){CKEDITOR.skin.name!=CKEDITOR.skinName.split(",")[0]?CKEDITOR.scriptLoader.load(CKEDITOR.getUrl(b()+"skin.js"),function(){g(a,c)}):g(a,c)},getPath:function(a){return CKEDITOR.getUrl(h(a))},icons:{},addIcon:function(a,c,d,b){a=a.toLowerCase();this.icons[a]||(this.icons[a]={path:c,offset:d||0,bgsize:b||"16px"})},getIconStyle:function(a,c,d,b,f){var g;a&&(a=a.toLowerCase(),c&&(g=this.icons[a+"-rtl"]),g||(g=this.icons[a]));a=d||g&&g.path||"";b=b||g&&g.offset;f=f||g&&g.bgsize||
-"16px";a&&(a=a.replace(/'/g,"\\'"));return a&&"background-image:url('"+CKEDITOR.getUrl(a)+"');background-position:0 "+b+"px;background-size:"+f+";"}};CKEDITOR.tools.extend(CKEDITOR.editor.prototype,{getUiColor:function(){return this.uiColor},setUiColor:function(b){var c=f(CKEDITOR.document);return(this.setUiColor=function(b){this.uiColor=b;var e=CKEDITOR.skin.chameleon,f="",g="";"function"==typeof e&&(f=e(this,"editor"),g=e(this,"panel"));b=[[d,b]];a([c],f,b);a(l,g,b)}).call(this,b)}});var k="cke_ui_color",
-l=[],d=/\$color/g;CKEDITOR.on("instanceLoaded",function(b){if(!CKEDITOR.env.ie||!CKEDITOR.env.quirks){var c=b.editor;b=function(b){b=(b.data[0]||b.data).element.getElementsByTag("iframe").getItem(0).getFrameDocument();if(!b.getById("cke_ui_color")){var e=f(b);l.push(e);c.on("destroy",function(){l=CKEDITOR.tools.array.filter(l,function(a){return e!==a})});(b=c.getUiColor())&&a([e],CKEDITOR.skin.chameleon(c,"panel"),[[d,b]])}};c.on("panelShow",b);c.on("menuShow",b);c.config.uiColor&&c.setUiColor(c.config.uiColor)}})})();
+"16px";a&&(a=a.replace(/'/g,"\\'"));return a&&"background-image:url('"+CKEDITOR.getUrl(a)+"');background-position:0 "+b+"px;background-size:"+f+";"}};CKEDITOR.tools.extend(CKEDITOR.editor.prototype,{getUiColor:function(){return this.uiColor},setUiColor:function(b){var c=f(CKEDITOR.document);return(this.setUiColor=function(b){this.uiColor=b;var e=CKEDITOR.skin.chameleon,f="",g="";"function"==typeof e&&(f=e(this,"editor"),g=e(this,"panel"));b=[[d,b]];a([c],f,b);a(k,g,b)}).call(this,b)}});var l="cke_ui_color",
+k=[],d=/\$color/g;CKEDITOR.on("instanceLoaded",function(b){if(!CKEDITOR.env.ie||!CKEDITOR.env.quirks){var c=b.editor;b=function(b){b=(b.data[0]||b.data).element.getElementsByTag("iframe").getItem(0).getFrameDocument();if(!b.getById("cke_ui_color")){var e=f(b);k.push(e);c.on("destroy",function(){k=CKEDITOR.tools.array.filter(k,function(a){return e!==a})});(b=c.getUiColor())&&a([e],CKEDITOR.skin.chameleon(c,"panel"),[[d,b]])}};c.on("panelShow",b);c.on("menuShow",b);c.config.uiColor&&c.setUiColor(c.config.uiColor)}})})();
 (function(){if(CKEDITOR.env.webkit)CKEDITOR.env.hc=!1;else{var b=CKEDITOR.dom.element.createFromHtml('\x3cdiv style\x3d"width:0;height:0;position:absolute;left:-10000px;border:1px solid;border-color:red blue"\x3e\x3c/div\x3e',CKEDITOR.document);b.appendTo(CKEDITOR.document.getHead());try{var h=b.getComputedStyle("border-top-color"),g=b.getComputedStyle("border-right-color");CKEDITOR.env.hc=!(!h||h!=g)}catch(f){CKEDITOR.env.hc=!1}b.remove()}CKEDITOR.env.hc&&(CKEDITOR.env.cssClass+=" cke_hc");CKEDITOR.document.appendStyleText(".cke{visibility:hidden;}");
-CKEDITOR.status="loaded";CKEDITOR.fireOnce("loaded");if(b=CKEDITOR._.pending)for(delete CKEDITOR._.pending,h=0;h<b.length;h++)CKEDITOR.editor.prototype.constructor.apply(b[h][0],b[h][1]),CKEDITOR.add(b[h][0])})();CKEDITOR.skin.name="moono-lisa";CKEDITOR.skin.ua_editor="ie,iequirks,ie8,gecko";CKEDITOR.skin.ua_dialog="ie,iequirks,ie8";CKEDITOR.skin.chameleon=function(){var b=function(){return function(b,f){for(var a=b.match(/[^#]./g),h=0;3>h;h++){var k=h,l;l=parseInt(a[h],16);l=("0"+(0>f?0|l*(1+f):
-0|l+(255-l)*f).toString(16)).slice(-2);a[k]=l}return"#"+a.join("")}}(),h={editor:new CKEDITOR.template("{id}.cke_chrome [border-color:{defaultBorder};] {id} .cke_top [ background-color:{defaultBackground};border-bottom-color:{defaultBorder};] {id} .cke_bottom [background-color:{defaultBackground};border-top-color:{defaultBorder};] {id} .cke_resizer [border-right-color:{ckeResizer}] {id} .cke_dialog_title [background-color:{defaultBackground};border-bottom-color:{defaultBorder};] {id} .cke_dialog_footer [background-color:{defaultBackground};outline-color:{defaultBorder};] {id} .cke_dialog_tab [background-color:{dialogTab};border-color:{defaultBorder};] {id} .cke_dialog_tab:hover [background-color:{lightBackground};] {id} .cke_dialog_contents [border-top-color:{defaultBorder};] {id} .cke_dialog_tab_selected, {id} .cke_dialog_tab_selected:hover [background:{dialogTabSelected};border-bottom-color:{dialogTabSelectedBorder};] {id} .cke_dialog_body [background:{dialogBody};border-color:{defaultBorder};] {id} a.cke_button_off:hover,{id} a.cke_button_off:focus,{id} a.cke_button_off:active [background-color:{darkBackground};border-color:{toolbarElementsBorder};] {id} .cke_button_on [background-color:{ckeButtonOn};border-color:{toolbarElementsBorder};] {id} .cke_toolbar_separator,{id} .cke_toolgroup a.cke_button:last-child:after,{id} .cke_toolgroup a.cke_button.cke_button_disabled:hover:last-child:after [background-color: {toolbarElementsBorder};border-color: {toolbarElementsBorder};] {id} a.cke_combo_button:hover,{id} a.cke_combo_button:focus,{id} .cke_combo_on a.cke_combo_button [border-color:{toolbarElementsBorder};background-color:{darkBackground};] {id} .cke_combo:after [border-color:{toolbarElementsBorder};] {id} .cke_path_item [color:{elementsPathColor};] {id} a.cke_path_item:hover,{id} a.cke_path_item:focus,{id} a.cke_path_item:active [background-color:{darkBackground};] {id}.cke_panel [border-color:{defaultBorder};] "),
+CKEDITOR.status="loaded";CKEDITOR.fireOnce("loaded");if(b=CKEDITOR._.pending)for(delete CKEDITOR._.pending,h=0;h<b.length;h++)CKEDITOR.editor.prototype.constructor.apply(b[h][0],b[h][1]),CKEDITOR.add(b[h][0])})();CKEDITOR.skin.name="moono-lisa";CKEDITOR.skin.ua_editor="ie,iequirks,ie8,gecko";CKEDITOR.skin.ua_dialog="ie,iequirks,ie8";CKEDITOR.skin.chameleon=function(){var b=function(){return function(b,f){for(var a=b.match(/[^#]./g),h=0;3>h;h++){var l=h,k;k=parseInt(a[h],16);k=("0"+(0>f?0|k*(1+f):
+0|k+(255-k)*f).toString(16)).slice(-2);a[l]=k}return"#"+a.join("")}}(),h={editor:new CKEDITOR.template("{id}.cke_chrome [border-color:{defaultBorder};] {id} .cke_top [ background-color:{defaultBackground};border-bottom-color:{defaultBorder};] {id} .cke_bottom [background-color:{defaultBackground};border-top-color:{defaultBorder};] {id} .cke_resizer [border-right-color:{ckeResizer}] {id} .cke_dialog_title [background-color:{defaultBackground};border-bottom-color:{defaultBorder};] {id} .cke_dialog_footer [background-color:{defaultBackground};outline-color:{defaultBorder};] {id} .cke_dialog_tab [background-color:{dialogTab};border-color:{defaultBorder};] {id} .cke_dialog_tab:hover [background-color:{lightBackground};] {id} .cke_dialog_contents [border-top-color:{defaultBorder};] {id} .cke_dialog_tab_selected, {id} .cke_dialog_tab_selected:hover [background:{dialogTabSelected};border-bottom-color:{dialogTabSelectedBorder};] {id} .cke_dialog_body [background:{dialogBody};border-color:{defaultBorder};] {id} a.cke_button_off:hover,{id} a.cke_button_off:focus,{id} a.cke_button_off:active [background-color:{darkBackground};border-color:{toolbarElementsBorder};] {id} .cke_button_on [background-color:{ckeButtonOn};border-color:{toolbarElementsBorder};] {id} .cke_toolbar_separator,{id} .cke_toolgroup a.cke_button:last-child:after,{id} .cke_toolgroup a.cke_button.cke_button_disabled:hover:last-child:after [background-color: {toolbarElementsBorder};border-color: {toolbarElementsBorder};] {id} a.cke_combo_button:hover,{id} a.cke_combo_button:focus,{id} .cke_combo_on a.cke_combo_button [border-color:{toolbarElementsBorder};background-color:{darkBackground};] {id} .cke_combo:after [border-color:{toolbarElementsBorder};] {id} .cke_path_item [color:{elementsPathColor};] {id} a.cke_path_item:hover,{id} a.cke_path_item:focus,{id} a.cke_path_item:active [background-color:{darkBackground};] {id}.cke_panel [border-color:{defaultBorder};] "),
 panel:new CKEDITOR.template(".cke_panel_grouptitle [background-color:{lightBackground};border-color:{defaultBorder};] .cke_menubutton_icon [background-color:{menubuttonIcon};] .cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active [background-color:{menubuttonHover};] .cke_menubutton:hover .cke_menubutton_icon, .cke_menubutton:focus .cke_menubutton_icon, .cke_menubutton:active .cke_menubutton_icon [background-color:{menubuttonIconHover};] .cke_menubutton_disabled:hover .cke_menubutton_icon,.cke_menubutton_disabled:focus .cke_menubutton_icon,.cke_menubutton_disabled:active .cke_menubutton_icon [background-color:{menubuttonIcon};] .cke_menuseparator [background-color:{menubuttonIcon};] a:hover.cke_colorbox, a:active.cke_colorbox [border-color:{defaultBorder};] a:hover.cke_colorauto, a:hover.cke_colormore, a:active.cke_colorauto, a:active.cke_colormore [background-color:{ckeColorauto};border-color:{defaultBorder};] ")};
 return function(g,f){var a=b(g.uiColor,.4),a={id:"."+g.id,defaultBorder:b(a,-.2),toolbarElementsBorder:b(a,-.25),defaultBackground:a,lightBackground:b(a,.8),darkBackground:b(a,-.15),ckeButtonOn:b(a,.4),ckeResizer:b(a,-.4),ckeColorauto:b(a,.8),dialogBody:b(a,.7),dialogTab:b(a,.65),dialogTabSelected:"#FFF",dialogTabSelectedBorder:"#FFF",elementsPathColor:b(a,-.6),menubuttonHover:b(a,.1),menubuttonIcon:b(a,.5),menubuttonIconHover:b(a,.3)};return h[f].output(a).replace(/\[/g,"{").replace(/\]/g,"}")}}();
 CKEDITOR.plugins.add("dialogui",{onLoad:function(){var b=function(a){this._||(this._={});this._["default"]=this._.initValue=a["default"]||"";this._.required=a.required||!1;for(var b=[this._],c=1;c<arguments.length;c++)b.push(arguments[c]);b.push(!0);CKEDITOR.tools.extend.apply(CKEDITOR.tools,b);return this._},h={build:function(a,b,c){return new CKEDITOR.ui.dialog.textInput(a,b,c)}},g={build:function(a,b,c){return new CKEDITOR.ui.dialog[b.type](a,b,c)}},f={isChanged:function(){return this.getValue()!=
 this.getInitValue()},reset:function(a){this.setValue(this.getInitValue(),a)},setInitValue:function(){this._.initValue=this.getValue()},resetInitValue:function(){this._.initValue=this._["default"]},getInitValue:function(){return this._.initValue}},a=CKEDITOR.tools.extend({},CKEDITOR.ui.dialog.uiElement.prototype.eventProcessors,{onChange:function(a,b){this._.domOnChangeRegistered||(a.on("load",function(){this.getInputElement().on("change",function(){a.parts.dialog.isVisible()&&this.fire("change",{value:this.getValue()})},
-this)},this),this._.domOnChangeRegistered=!0);this.on("change",b)}},!0),m=/^on([A-Z]\w+)/,k=function(a){for(var b in a)(m.test(b)||"title"==b||"type"==b)&&delete a[b];return a},l=function(a){a=a.data.getKeystroke();a==CKEDITOR.SHIFT+CKEDITOR.ALT+36?this.setDirectionMarker("ltr"):a==CKEDITOR.SHIFT+CKEDITOR.ALT+35&&this.setDirectionMarker("rtl")};CKEDITOR.tools.extend(CKEDITOR.ui.dialog,{labeledElement:function(a,e,c,f){if(!(4>arguments.length)){var g=b.call(this,e);g.labelId=CKEDITOR.tools.getNextId()+
+this)},this),this._.domOnChangeRegistered=!0);this.on("change",b)}},!0),m=/^on([A-Z]\w+)/,l=function(a){for(var b in a)(m.test(b)||"title"==b||"type"==b)&&delete a[b];return a},k=function(a){a=a.data.getKeystroke();a==CKEDITOR.SHIFT+CKEDITOR.ALT+36?this.setDirectionMarker("ltr"):a==CKEDITOR.SHIFT+CKEDITOR.ALT+35&&this.setDirectionMarker("rtl")};CKEDITOR.tools.extend(CKEDITOR.ui.dialog,{labeledElement:function(a,e,c,f){if(!(4>arguments.length)){var g=b.call(this,e);g.labelId=CKEDITOR.tools.getNextId()+
 "_label";this._.children=[];var h={role:e.role||"presentation"};e.includeLabel&&(h["aria-labelledby"]=g.labelId);CKEDITOR.ui.dialog.uiElement.call(this,a,e,c,"div",null,h,function(){var c=[],b=e.required?" cke_required":"";"horizontal"!=e.labelLayout?c.push('\x3clabel class\x3d"cke_dialog_ui_labeled_label'+b+'" ',' id\x3d"'+g.labelId+'"',g.inputId?' for\x3d"'+g.inputId+'"':"",(e.labelStyle?' style\x3d"'+e.labelStyle+'"':"")+"\x3e",e.label,"\x3c/label\x3e",'\x3cdiv class\x3d"cke_dialog_ui_labeled_content"',
 e.controlStyle?' style\x3d"'+e.controlStyle+'"':"",' role\x3d"presentation"\x3e',f.call(this,a,e),"\x3c/div\x3e"):(b={type:"hbox",widths:e.widths,padding:0,children:[{type:"html",html:'\x3clabel class\x3d"cke_dialog_ui_labeled_label'+b+'" id\x3d"'+g.labelId+'" for\x3d"'+g.inputId+'"'+(e.labelStyle?' style\x3d"'+e.labelStyle+'"':"")+"\x3e"+CKEDITOR.tools.htmlEncode(e.label)+"\x3c/label\x3e"},{type:"html",html:'\x3cspan class\x3d"cke_dialog_ui_labeled_content"'+(e.controlStyle?' style\x3d"'+e.controlStyle+
-'"':"")+"\x3e"+f.call(this,a,e)+"\x3c/span\x3e"}]},CKEDITOR.dialog._.uiElementBuilders.hbox.build(a,b,c));return c.join("")})}},textInput:function(a,e,c){if(!(3>arguments.length)){b.call(this,e);var f=this._.inputId=CKEDITOR.tools.getNextId()+"_textInput",g={"class":"cke_dialog_ui_input_"+e.type,id:f,type:e.type};e.validate&&(this.validate=e.validate);e.maxLength&&(g.maxlength=e.maxLength);e.size&&(g.size=e.size);e.inputStyle&&(g.style=e.inputStyle);var h=this,k=!1;a.on("load",function(){h.getInputElement().on("keydown",
-function(a){13==a.data.getKeystroke()&&(k=!0)});h.getInputElement().on("keyup",function(c){13==c.data.getKeystroke()&&k&&(a.getButton("ok")&&setTimeout(function(){a.getButton("ok").click()},0),k=!1);h.bidi&&l.call(h,c)},null,null,1E3)});CKEDITOR.ui.dialog.labeledElement.call(this,a,e,c,function(){var a=['\x3cdiv class\x3d"cke_dialog_ui_input_',e.type,'" role\x3d"presentation"'];e.width&&a.push('style\x3d"width:'+e.width+'" ');a.push("\x3e\x3cinput ");g["aria-labelledby"]=this._.labelId;this._.required&&
+'"':"")+"\x3e"+f.call(this,a,e)+"\x3c/span\x3e"}]},CKEDITOR.dialog._.uiElementBuilders.hbox.build(a,b,c));return c.join("")})}},textInput:function(a,e,c){if(!(3>arguments.length)){b.call(this,e);var f=this._.inputId=CKEDITOR.tools.getNextId()+"_textInput",g={"class":"cke_dialog_ui_input_"+e.type,id:f,type:e.type};e.validate&&(this.validate=e.validate);e.maxLength&&(g.maxlength=e.maxLength);e.size&&(g.size=e.size);e.inputStyle&&(g.style=e.inputStyle);var h=this,l=!1;a.on("load",function(){h.getInputElement().on("keydown",
+function(a){13==a.data.getKeystroke()&&(l=!0)});h.getInputElement().on("keyup",function(c){13==c.data.getKeystroke()&&l&&(a.getButton("ok")&&setTimeout(function(){a.getButton("ok").click()},0),l=!1);h.bidi&&k.call(h,c)},null,null,1E3)});CKEDITOR.ui.dialog.labeledElement.call(this,a,e,c,function(){var a=['\x3cdiv class\x3d"cke_dialog_ui_input_',e.type,'" role\x3d"presentation"'];e.width&&a.push('style\x3d"width:'+e.width+'" ');a.push("\x3e\x3cinput ");g["aria-labelledby"]=this._.labelId;this._.required&&
 (g["aria-required"]=this._.required);for(var c in g)a.push(c+'\x3d"'+g[c]+'" ');a.push(" /\x3e\x3c/div\x3e");return a.join("")})}},textarea:function(a,e,c){if(!(3>arguments.length)){b.call(this,e);var f=this,g=this._.inputId=CKEDITOR.tools.getNextId()+"_textarea",h={};e.validate&&(this.validate=e.validate);h.rows=e.rows||5;h.cols=e.cols||20;h["class"]="cke_dialog_ui_input_textarea "+(e["class"]||"");"undefined"!=typeof e.inputStyle&&(h.style=e.inputStyle);e.dir&&(h.dir=e.dir);if(f.bidi)a.on("load",
-function(){f.getInputElement().on("keyup",l)},f);CKEDITOR.ui.dialog.labeledElement.call(this,a,e,c,function(){h["aria-labelledby"]=this._.labelId;this._.required&&(h["aria-required"]=this._.required);var a=['\x3cdiv class\x3d"cke_dialog_ui_input_textarea" role\x3d"presentation"\x3e\x3ctextarea id\x3d"',g,'" '],c;for(c in h)a.push(c+'\x3d"'+CKEDITOR.tools.htmlEncode(h[c])+'" ');a.push("\x3e",CKEDITOR.tools.htmlEncode(f._["default"]),"\x3c/textarea\x3e\x3c/div\x3e");return a.join("")})}},checkbox:function(a,
-e,c){if(!(3>arguments.length)){var f=b.call(this,e,{"default":!!e["default"]});e.validate&&(this.validate=e.validate);CKEDITOR.ui.dialog.uiElement.call(this,a,e,c,"span",null,null,function(){var c=CKEDITOR.tools.extend({},e,{id:e.id?e.id+"_checkbox":CKEDITOR.tools.getNextId()+"_checkbox"},!0),b=[],g=CKEDITOR.tools.getNextId()+"_label",h={"class":"cke_dialog_ui_checkbox_input",type:"checkbox","aria-labelledby":g};k(c);e["default"]&&(h.checked="checked");"undefined"!=typeof c.inputStyle&&(c.style=c.inputStyle);
+function(){f.getInputElement().on("keyup",k)},f);CKEDITOR.ui.dialog.labeledElement.call(this,a,e,c,function(){h["aria-labelledby"]=this._.labelId;this._.required&&(h["aria-required"]=this._.required);var a=['\x3cdiv class\x3d"cke_dialog_ui_input_textarea" role\x3d"presentation"\x3e\x3ctextarea id\x3d"',g,'" '],c;for(c in h)a.push(c+'\x3d"'+CKEDITOR.tools.htmlEncode(h[c])+'" ');a.push("\x3e",CKEDITOR.tools.htmlEncode(f._["default"]),"\x3c/textarea\x3e\x3c/div\x3e");return a.join("")})}},checkbox:function(a,
+e,c){if(!(3>arguments.length)){var f=b.call(this,e,{"default":!!e["default"]});e.validate&&(this.validate=e.validate);CKEDITOR.ui.dialog.uiElement.call(this,a,e,c,"span",null,null,function(){var c=CKEDITOR.tools.extend({},e,{id:e.id?e.id+"_checkbox":CKEDITOR.tools.getNextId()+"_checkbox"},!0),b=[],g=CKEDITOR.tools.getNextId()+"_label",h={"class":"cke_dialog_ui_checkbox_input",type:"checkbox","aria-labelledby":g};l(c);e["default"]&&(h.checked="checked");"undefined"!=typeof c.inputStyle&&(c.style=c.inputStyle);
 f.checkbox=new CKEDITOR.ui.dialog.uiElement(a,c,b,"input",null,h);b.push(' \x3clabel id\x3d"',g,'" for\x3d"',h.id,'"'+(e.labelStyle?' style\x3d"'+e.labelStyle+'"':"")+"\x3e",CKEDITOR.tools.htmlEncode(e.label),"\x3c/label\x3e");return b.join("")})}},radio:function(a,e,c){if(!(3>arguments.length)){b.call(this,e);this._["default"]||(this._["default"]=this._.initValue=e.items[0][1]);e.validate&&(this.validate=e.validate);var f=[],g=this;e.role="radiogroup";e.includeLabel=!0;CKEDITOR.ui.dialog.labeledElement.call(this,
-a,e,c,function(){for(var c=[],b=[],h=(e.id?e.id:CKEDITOR.tools.getNextId())+"_radio",l=0;l<e.items.length;l++){var m=e.items[l],t=void 0!==m[2]?m[2]:m[0],y=void 0!==m[1]?m[1]:m[0],v=CKEDITOR.tools.getNextId()+"_radio_input",x=v+"_label",v=CKEDITOR.tools.extend({},e,{id:v,title:null,type:null},!0),t=CKEDITOR.tools.extend({},v,{title:t},!0),B={type:"radio","class":"cke_dialog_ui_radio_input",name:h,value:y,"aria-labelledby":x},D=[];g._["default"]==y&&(B.checked="checked");k(v);k(t);"undefined"!=typeof v.inputStyle&&
-(v.style=v.inputStyle);v.keyboardFocusable=!0;f.push(new CKEDITOR.ui.dialog.uiElement(a,v,D,"input",null,B));D.push(" ");new CKEDITOR.ui.dialog.uiElement(a,t,D,"label",null,{id:x,"for":B.id},m[0]);c.push(D.join(""))}new CKEDITOR.ui.dialog.hbox(a,f,c,b);return b.join("")});this._.children=f}},button:function(a,e,c){if(arguments.length){"function"==typeof e&&(e=e(a.getParentEditor()));b.call(this,e,{disabled:e.disabled||!1});CKEDITOR.event.implementOn(this);var f=this;a.on("load",function(){var a=this.getElement();
+a,e,c,function(){for(var c=[],b=[],h=(e.id?e.id:CKEDITOR.tools.getNextId())+"_radio",k=0;k<e.items.length;k++){var m=e.items[k],t=void 0!==m[2]?m[2]:m[0],z=void 0!==m[1]?m[1]:m[0],y=CKEDITOR.tools.getNextId()+"_radio_input",u=y+"_label",y=CKEDITOR.tools.extend({},e,{id:y,title:null,type:null},!0),t=CKEDITOR.tools.extend({},y,{title:t},!0),C={type:"radio","class":"cke_dialog_ui_radio_input",name:h,value:z,"aria-labelledby":u},A=[];g._["default"]==z&&(C.checked="checked");l(y);l(t);"undefined"!=typeof y.inputStyle&&
+(y.style=y.inputStyle);y.keyboardFocusable=!0;f.push(new CKEDITOR.ui.dialog.uiElement(a,y,A,"input",null,C));A.push(" ");new CKEDITOR.ui.dialog.uiElement(a,t,A,"label",null,{id:u,"for":C.id},m[0]);c.push(A.join(""))}new CKEDITOR.ui.dialog.hbox(a,f,c,b);return b.join("")});this._.children=f}},button:function(a,e,c){if(arguments.length){"function"==typeof e&&(e=e(a.getParentEditor()));b.call(this,e,{disabled:e.disabled||!1});CKEDITOR.event.implementOn(this);var f=this;a.on("load",function(){var a=this.getElement();
 (function(){a.on("click",function(a){f.click();a.data.preventDefault()});a.on("keydown",function(a){a.data.getKeystroke()in{32:1}&&(f.click(),a.data.preventDefault())})})();a.unselectable()},this);var g=CKEDITOR.tools.extend({},e);delete g.style;var h=CKEDITOR.tools.getNextId()+"_label";CKEDITOR.ui.dialog.uiElement.call(this,a,g,c,"a",null,{style:e.style,href:"javascript:void(0)",title:e.label,hidefocus:"true","class":e["class"],role:"button","aria-labelledby":h},'\x3cspan id\x3d"'+h+'" class\x3d"cke_dialog_ui_button"\x3e'+
 CKEDITOR.tools.htmlEncode(e.label)+"\x3c/span\x3e")}},select:function(a,e,c){if(!(3>arguments.length)){var f=b.call(this,e);e.validate&&(this.validate=e.validate);f.inputId=CKEDITOR.tools.getNextId()+"_select";CKEDITOR.ui.dialog.labeledElement.call(this,a,e,c,function(){var c=CKEDITOR.tools.extend({},e,{id:e.id?e.id+"_select":CKEDITOR.tools.getNextId()+"_select"},!0),b=[],g=[],h={id:f.inputId,"class":"cke_dialog_ui_input_select","aria-labelledby":this._.labelId};b.push('\x3cdiv class\x3d"cke_dialog_ui_input_',
-e.type,'" role\x3d"presentation"');e.width&&b.push('style\x3d"width:'+e.width+'" ');b.push("\x3e");void 0!==e.size&&(h.size=e.size);void 0!==e.multiple&&(h.multiple=e.multiple);k(c);for(var l=0,m;l<e.items.length&&(m=e.items[l]);l++)g.push('\x3coption value\x3d"',CKEDITOR.tools.htmlEncode(void 0!==m[1]?m[1]:m[0]).replace(/"/g,"\x26quot;"),'" /\x3e ',CKEDITOR.tools.htmlEncode(m[0]));"undefined"!=typeof c.inputStyle&&(c.style=c.inputStyle);f.select=new CKEDITOR.ui.dialog.uiElement(a,c,b,"select",null,
+e.type,'" role\x3d"presentation"');e.width&&b.push('style\x3d"width:'+e.width+'" ');b.push("\x3e");void 0!==e.size&&(h.size=e.size);void 0!==e.multiple&&(h.multiple=e.multiple);l(c);for(var k=0,m;k<e.items.length&&(m=e.items[k]);k++)g.push('\x3coption value\x3d"',CKEDITOR.tools.htmlEncode(void 0!==m[1]?m[1]:m[0]).replace(/"/g,"\x26quot;"),'" /\x3e ',CKEDITOR.tools.htmlEncode(m[0]));"undefined"!=typeof c.inputStyle&&(c.style=c.inputStyle);f.select=new CKEDITOR.ui.dialog.uiElement(a,c,b,"select",null,
 h,g.join(""));b.push("\x3c/div\x3e");return b.join("")})}},file:function(a,e,c){if(!(3>arguments.length)){void 0===e["default"]&&(e["default"]="");var f=CKEDITOR.tools.extend(b.call(this,e),{definition:e,buttons:[]});e.validate&&(this.validate=e.validate);a.on("load",function(){CKEDITOR.document.getById(f.frameId).getParent().addClass("cke_dialog_ui_input_file")});CKEDITOR.ui.dialog.labeledElement.call(this,a,e,c,function(){f.frameId=CKEDITOR.tools.getNextId()+"_fileInput";var a=['\x3ciframe frameborder\x3d"0" allowtransparency\x3d"0" class\x3d"cke_dialog_ui_input_file" role\x3d"presentation" id\x3d"',
 f.frameId,'" title\x3d"',e.label,'" src\x3d"javascript:void('];a.push(CKEDITOR.env.ie?"(function(){"+encodeURIComponent("document.open();("+CKEDITOR.tools.fixDomain+")();document.close();")+"})()":"0");a.push(')"\x3e\x3c/iframe\x3e');return a.join("")})}},fileButton:function(a,e,c){var f=this;if(!(3>arguments.length)){b.call(this,e);e.validate&&(this.validate=e.validate);var g=CKEDITOR.tools.extend({},e),h=g.onClick;g.className=(g.className?g.className+" ":"")+"cke_dialog_ui_button";g.onClick=function(c){var b=
-e["for"];c=h?h.call(this,c):!1;!1!==c&&("xhr"!==c&&a.getContentElement(b[0],b[1]).submit(),this.disable())};a.on("load",function(){a.getContentElement(e["for"][0],e["for"][1])._.buttons.push(f)});CKEDITOR.ui.dialog.button.call(this,a,g,c)}},html:function(){var a=/^\s*<[\w:]+\s+([^>]*)?>/,b=/^(\s*<[\w:]+(?:\s+[^>]*)?)((?:.|\r|\n)+)$/,c=/\/$/;return function(f,g,h){if(!(3>arguments.length)){var k=[],l=g.html;"\x3c"!=l.charAt(0)&&(l="\x3cspan\x3e"+l+"\x3c/span\x3e");var m=g.focus;if(m){var u=this.focus;
-this.focus=function(){("function"==typeof m?m:u).call(this);this.fire("focus")};g.isFocusable&&(this.isFocusable=this.isFocusable);this.keyboardFocusable=!0}CKEDITOR.ui.dialog.uiElement.call(this,f,g,k,"span",null,null,"");k=k.join("").match(a);l=l.match(b)||["","",""];c.test(l[1])&&(l[1]=l[1].slice(0,-1),l[2]="/"+l[2]);h.push([l[1]," ",k[1]||"",l[2]].join(""))}}}(),fieldset:function(a,b,c,f,g){var h=g.label;this._={children:b};CKEDITOR.ui.dialog.uiElement.call(this,a,g,f,"fieldset",null,null,function(){var a=
+e["for"];c=h?h.call(this,c):!1;!1!==c&&("xhr"!==c&&a.getContentElement(b[0],b[1]).submit(),this.disable())};a.on("load",function(){a.getContentElement(e["for"][0],e["for"][1])._.buttons.push(f)});CKEDITOR.ui.dialog.button.call(this,a,g,c)}},html:function(){var a=/^\s*<[\w:]+\s+([^>]*)?>/,b=/^(\s*<[\w:]+(?:\s+[^>]*)?)((?:.|\r|\n)+)$/,c=/\/$/;return function(f,g,h){if(!(3>arguments.length)){var k=[],l=g.html;"\x3c"!=l.charAt(0)&&(l="\x3cspan\x3e"+l+"\x3c/span\x3e");var m=g.focus;if(m){var w=this.focus;
+this.focus=function(){("function"==typeof m?m:w).call(this);this.fire("focus")};g.isFocusable&&(this.isFocusable=this.isFocusable);this.keyboardFocusable=!0}CKEDITOR.ui.dialog.uiElement.call(this,f,g,k,"span",null,null,"");k=k.join("").match(a);l=l.match(b)||["","",""];c.test(l[1])&&(l[1]=l[1].slice(0,-1),l[2]="/"+l[2]);h.push([l[1]," ",k[1]||"",l[2]].join(""))}}}(),fieldset:function(a,b,c,f,g){var h=g.label;this._={children:b};CKEDITOR.ui.dialog.uiElement.call(this,a,g,f,"fieldset",null,null,function(){var a=
 [];h&&a.push("\x3clegend"+(g.labelStyle?' style\x3d"'+g.labelStyle+'"':"")+"\x3e"+h+"\x3c/legend\x3e");for(var d=0;d<c.length;d++)a.push(c[d]);return a.join("")})}},!0);CKEDITOR.ui.dialog.html.prototype=new CKEDITOR.ui.dialog.uiElement;CKEDITOR.ui.dialog.labeledElement.prototype=CKEDITOR.tools.extend(new CKEDITOR.ui.dialog.uiElement,{setLabel:function(a){var b=CKEDITOR.document.getById(this._.labelId);1>b.getChildCount()?(new CKEDITOR.dom.text(a,CKEDITOR.document)).appendTo(b):b.getChild(0).$.nodeValue=
 a;return this},getLabel:function(){var a=CKEDITOR.document.getById(this._.labelId);return!a||1>a.getChildCount()?"":a.getChild(0).getText()},eventProcessors:a},!0);CKEDITOR.ui.dialog.button.prototype=CKEDITOR.tools.extend(new CKEDITOR.ui.dialog.uiElement,{click:function(){return this._.disabled?!1:this.fire("click",{dialog:this._.dialog})},enable:function(){this._.disabled=!1;var a=this.getElement();a&&a.removeClass("cke_disabled")},disable:function(){this._.disabled=!0;this.getElement().addClass("cke_disabled")},
 isVisible:function(){return this.getElement().getFirst().isVisible()},isEnabled:function(){return!this._.disabled},eventProcessors:CKEDITOR.tools.extend({},CKEDITOR.ui.dialog.uiElement.prototype.eventProcessors,{onClick:function(a,b){this.on("click",function(){b.apply(this,arguments)})}},!0),accessKeyUp:function(){this.click()},accessKeyDown:function(){this.focus()},keyboardFocusable:!0},!0);CKEDITOR.ui.dialog.textInput.prototype=CKEDITOR.tools.extend(new CKEDITOR.ui.dialog.labeledElement,{getInputElement:function(){return CKEDITOR.document.getById(this._.inputId)},
@@ -557,251 +557,251 @@ var d="";f.size&&(d=f.size-(CKEDITOR.env.ie?7:0));var t=b.frameId+"_input";c.$.w
 c.$.close();for(d=0;d<g.length;d++)g[d].enable()}var b=this._,c=CKEDITOR.document.getById(b.frameId).getFrameDocument(),f=b.definition,g=b.buttons,h=this.formLoadedNumber,k=this.formUnloadNumber,l=b.dialog._.editor.lang.dir,m=b.dialog._.editor.langCode;h||(h=this.formLoadedNumber=CKEDITOR.tools.addFunction(function(){this.fire("formLoaded")},this),k=this.formUnloadNumber=CKEDITOR.tools.addFunction(function(){this.getInputElement().clearCustomData()},this),this.getDialog()._.editor.on("destroy",function(){CKEDITOR.tools.removeFunction(h);
 CKEDITOR.tools.removeFunction(k)}));CKEDITOR.env.gecko?setTimeout(a,500):a()},getValue:function(){return this.getInputElement().$.value||""},setInitValue:function(){this._.initValue=""},eventProcessors:{onChange:function(a,b){this._.domOnChangeRegistered||(this.on("formLoaded",function(){this.getInputElement().on("change",function(){this.fire("change",{value:this.getValue()})},this)},this),this._.domOnChangeRegistered=!0);this.on("change",b)}},keyboardFocusable:!0},!0);CKEDITOR.ui.dialog.fileButton.prototype=
 new CKEDITOR.ui.dialog.button;CKEDITOR.ui.dialog.fieldset.prototype=CKEDITOR.tools.clone(CKEDITOR.ui.dialog.hbox.prototype);CKEDITOR.dialog.addUIElement("text",h);CKEDITOR.dialog.addUIElement("password",h);CKEDITOR.dialog.addUIElement("tel",h);CKEDITOR.dialog.addUIElement("textarea",g);CKEDITOR.dialog.addUIElement("checkbox",g);CKEDITOR.dialog.addUIElement("radio",g);CKEDITOR.dialog.addUIElement("button",g);CKEDITOR.dialog.addUIElement("select",g);CKEDITOR.dialog.addUIElement("file",g);CKEDITOR.dialog.addUIElement("fileButton",
-g);CKEDITOR.dialog.addUIElement("html",g);CKEDITOR.dialog.addUIElement("fieldset",{build:function(a,b,c){for(var f=b.children,g,h=[],k=[],l=0;l<f.length&&(g=f[l]);l++){var m=[];h.push(m);k.push(CKEDITOR.dialog._.uiElementBuilders[g.type].build(a,g,m))}return new CKEDITOR.ui.dialog[b.type](a,k,h,c,b)}})}});CKEDITOR.DIALOG_RESIZE_NONE=0;CKEDITOR.DIALOG_RESIZE_WIDTH=1;CKEDITOR.DIALOG_RESIZE_HEIGHT=2;CKEDITOR.DIALOG_RESIZE_BOTH=3;CKEDITOR.DIALOG_STATE_IDLE=1;CKEDITOR.DIALOG_STATE_BUSY=2;(function(){function b(){for(var a=
-this._.tabIdList.length,c=CKEDITOR.tools.indexOf(this._.tabIdList,this._.currentTabId)+a,d=c-1;d>c-a;d--)if(this._.tabs[this._.tabIdList[d%a]][0].$.offsetHeight)return this._.tabIdList[d%a];return null}function h(){for(var a=this._.tabIdList.length,c=CKEDITOR.tools.indexOf(this._.tabIdList,this._.currentTabId),d=c+1;d<c+a;d++)if(this._.tabs[this._.tabIdList[d%a]][0].$.offsetHeight)return this._.tabIdList[d%a];return null}function g(a,c){for(var d=a.$.getElementsByTagName("input"),b=0,e=d.length;b<
-e;b++){var f=new CKEDITOR.dom.element(d[b]);"text"==f.getAttribute("type").toLowerCase()&&(c?(f.setAttribute("value",f.getCustomData("fake_value")||""),f.removeCustomData("fake_value")):(f.setCustomData("fake_value",f.getAttribute("value")),f.setAttribute("value","")))}}function f(a,c){var d=this.getInputElement();d&&(a?d.removeAttribute("aria-invalid"):d.setAttribute("aria-invalid",!0));a||(this.select?this.select():this.focus());c&&alert(c);this.fire("validated",{valid:a,msg:c})}function a(){var a=
-this.getInputElement();a&&a.removeAttribute("aria-invalid")}function m(a){var c=CKEDITOR.dom.element.createFromHtml(CKEDITOR.addTemplate("dialog",u).output({id:CKEDITOR.tools.getNextNumber(),editorId:a.id,langDir:a.lang.dir,langCode:a.langCode,editorDialogClass:"cke_editor_"+a.name.replace(/\./g,"\\.")+"_dialog",closeTitle:a.lang.common.close,hidpi:CKEDITOR.env.hidpi?"cke_hidpi":""})),d=c.getChild([0,0,0,0,0]),b=d.getChild(0),e=d.getChild(1);a.plugins.clipboard&&CKEDITOR.plugins.clipboard.preventDefaultDropOnElement(d);
-!CKEDITOR.env.ie||CKEDITOR.env.quirks||CKEDITOR.env.edge||(a="javascript:void(function(){"+encodeURIComponent("document.open();("+CKEDITOR.tools.fixDomain+")();document.close();")+"}())",CKEDITOR.dom.element.createFromHtml('\x3ciframe frameBorder\x3d"0" class\x3d"cke_iframe_shim" src\x3d"'+a+'" tabIndex\x3d"-1"\x3e\x3c/iframe\x3e').appendTo(d.getParent()));b.unselectable();e.unselectable();return{element:c,parts:{dialog:c.getChild(0),title:b,close:e,tabs:d.getChild(2),contents:d.getChild([3,0,0,0]),
-footer:d.getChild([3,0,1,0])}}}function k(a,c,d){this.element=c;this.focusIndex=d;this.tabIndex=0;this.isFocusable=function(){return!c.getAttribute("disabled")&&c.isVisible()};this.focus=function(){a._.currentFocusIndex=this.focusIndex;this.element.focus()};c.on("keydown",function(a){a.data.getKeystroke()in{32:1,13:1}&&this.fire("click")});c.on("focus",function(){this.fire("mouseover")});c.on("blur",function(){this.fire("mouseout")})}function l(a){function c(){a.layout()}var d=CKEDITOR.document.getWindow();
-d.on("resize",c);a.on("hide",function(){d.removeListener("resize",c)})}function d(a,c){this._={dialog:a};CKEDITOR.tools.extend(this,c)}function e(a){function c(d){var k=a.getSize(),l=a.parts.dialog.getParent().getClientSize(),n=d.data.$.screenX,m=d.data.$.screenY,q=n-b.x,t=m-b.y;b={x:n,y:m};e.x+=q;e.y+=t;n=e.x+h[3]<g?-h[3]:e.x-h[1]>l.width-k.width-g?l.width-k.width+("rtl"==f.lang.dir?0:h[1]):e.x;k=e.y+h[0]<g?-h[0]:e.y-h[2]>l.height-k.height-g?l.height-k.height+h[2]:e.y;n=Math.floor(n);k=Math.floor(k);
-a.move(n,k,1);d.data.preventDefault()}function d(){CKEDITOR.document.removeListener("mousemove",c);CKEDITOR.document.removeListener("mouseup",d);if(CKEDITOR.env.ie6Compat){var a=A.getChild(0).getFrameDocument();a.removeListener("mousemove",c);a.removeListener("mouseup",d)}}var b=null,e=null,f=a.getParentEditor(),g=f.config.dialog_magnetDistance,h=CKEDITOR.skin.margins||[0,0,0,0];"undefined"==typeof g&&(g=20);a.parts.title.on("mousedown",function(f){if(!a._.moved){var g=a._.element;g.getFirst().setStyle("position",
-"absolute");g.removeStyle("display");a._.moved=!0;a.layout()}b={x:f.data.$.screenX,y:f.data.$.screenY};CKEDITOR.document.on("mousemove",c);CKEDITOR.document.on("mouseup",d);e=a.getPosition();CKEDITOR.env.ie6Compat&&(g=A.getChild(0).getFrameDocument(),g.on("mousemove",c),g.on("mouseup",d));f.data.preventDefault()},a)}function c(a){function c(d){var q="rtl"==f.lang.dir,t=m.width,p=m.height,w=t+(d.data.$.screenX-l.x)*(q?-1:1)*(a._.moved?1:2),N=p+(d.data.$.screenY-l.y)*(a._.moved?1:2),v=a._.element.getFirst(),
-v=q&&parseInt(v.getComputedStyle("right")),Y=a.getPosition();Y.x=Y.x||0;Y.y=Y.y||0;Y.y+N>k.height&&(N=k.height-Y.y);(q?v:Y.x)+w>k.width&&(w=k.width-(q?v:Y.x));N=Math.floor(N);w=Math.floor(w);if(e==CKEDITOR.DIALOG_RESIZE_WIDTH||e==CKEDITOR.DIALOG_RESIZE_BOTH)t=Math.max(b.minWidth||0,w-g);if(e==CKEDITOR.DIALOG_RESIZE_HEIGHT||e==CKEDITOR.DIALOG_RESIZE_BOTH)p=Math.max(b.minHeight||0,N-h);a.resize(t,p);a._.moved&&n(a,a._.position.x,a._.position.y);a._.moved||a.layout();d.data.preventDefault()}function d(){CKEDITOR.document.removeListener("mouseup",
-d);CKEDITOR.document.removeListener("mousemove",c);q&&(q.remove(),q=null);if(CKEDITOR.env.ie6Compat){var a=A.getChild(0).getFrameDocument();a.removeListener("mouseup",d);a.removeListener("mousemove",c)}}var b=a.definition,e=b.resizable;if(e!=CKEDITOR.DIALOG_RESIZE_NONE){var f=a.getParentEditor(),g,h,k,l,m,q,t=CKEDITOR.tools.addFunction(function(b){function e(a){return a.isVisible()}m=a.getSize();var f=a.parts.contents,n=f.$.getElementsByTagName("iframe").length,t=!(CKEDITOR.env.gecko||CKEDITOR.env.ie&&
-CKEDITOR.env.quirks);n&&(q=CKEDITOR.dom.element.createFromHtml('\x3cdiv class\x3d"cke_dialog_resize_cover" style\x3d"height: 100%; position: absolute; width: 100%; left:0; top:0;"\x3e\x3c/div\x3e'),f.append(q));h=m.height-a.parts.contents.getFirst(e).getSize("height",t);g=m.width-a.parts.contents.getFirst(e).getSize("width",1);l={x:b.screenX,y:b.screenY};k=CKEDITOR.document.getWindow().getViewPaneSize();CKEDITOR.document.on("mousemove",c);CKEDITOR.document.on("mouseup",d);CKEDITOR.env.ie6Compat&&
-(f=A.getChild(0).getFrameDocument(),f.on("mousemove",c),f.on("mouseup",d));b.preventDefault&&b.preventDefault()});a.on("load",function(){var c="";e==CKEDITOR.DIALOG_RESIZE_WIDTH?c=" cke_resizer_horizontal":e==CKEDITOR.DIALOG_RESIZE_HEIGHT&&(c=" cke_resizer_vertical");c=CKEDITOR.dom.element.createFromHtml('\x3cdiv class\x3d"cke_resizer'+c+" cke_resizer_"+f.lang.dir+'" title\x3d"'+CKEDITOR.tools.htmlEncode(f.lang.common.resize)+'" onmousedown\x3d"CKEDITOR.tools.callFunction('+t+', event )"\x3e'+("ltr"==
-f.lang.dir?"◢":"◣")+"\x3c/div\x3e");a.parts.footer.append(c,1)});f.on("destroy",function(){CKEDITOR.tools.removeFunction(t)})}}function n(a,c,d){var b=a.parts.dialog.getParent().getClientSize(),e=a.getSize(),f=a._.viewportRatio,g=Math.max(b.width-e.width,0),b=Math.max(b.height-e.height,0);f.width=g?c/g:f.width;f.height=b?d/b:f.height;a._.viewportRatio=f}function w(a){a.data.preventDefault(1)}function z(a){var c=a.config,d=CKEDITOR.skinName||a.config.skin,b=c.dialog_backgroundCoverColor||("moono-lisa"==
-d?"black":"white"),d=c.dialog_backgroundCoverOpacity,e=c.baseFloatZIndex,c=CKEDITOR.tools.genKey(b,d,e),f=D[c];CKEDITOR.document.getBody().addClass("cke_dialog_open");f?f.show():(e=['\x3cdiv tabIndex\x3d"-1" style\x3d"position: ',CKEDITOR.env.ie6Compat?"absolute":"fixed","; z-index: ",e,"; top: 0px; left: 0px; ","; width: 100%; height: 100%;",CKEDITOR.env.ie6Compat?"":"background-color: "+b,'" class\x3d"cke_dialog_background_cover"\x3e'],CKEDITOR.env.ie6Compat&&(b="\x3chtml\x3e\x3cbody style\x3d\\'background-color:"+
-b+";\\'\x3e\x3c/body\x3e\x3c/html\x3e",e.push('\x3ciframe hidefocus\x3d"true" frameborder\x3d"0" id\x3d"cke_dialog_background_iframe" src\x3d"javascript:'),e.push("void((function(){"+encodeURIComponent("document.open();("+CKEDITOR.tools.fixDomain+")();document.write( '"+b+"' );document.close();")+"})())"),e.push('" style\x3d"position:absolute;left:0;top:0;width:100%;height: 100%;filter: progid:DXImageTransform.Microsoft.Alpha(opacity\x3d0)"\x3e\x3c/iframe\x3e')),e.push("\x3c/div\x3e"),f=CKEDITOR.dom.element.createFromHtml(e.join("")),
-f.setOpacity(void 0!==d?d:.5),f.on("keydown",w),f.on("keypress",w),f.on("keyup",w),f.appendTo(CKEDITOR.document.getBody()),D[c]=f);a.focusManager.add(f);A=f;CKEDITOR.env.mac&&CKEDITOR.env.webkit||f.focus()}function r(a){CKEDITOR.document.getBody().removeClass("cke_dialog_open");A&&(a.focusManager.remove(A),A.hide())}var p=CKEDITOR.tools.cssLength,q=!CKEDITOR.env.ie||CKEDITOR.env.edge,u='\x3cdiv class\x3d"cke_reset_all cke_dialog_container {editorId} {editorDialogClass} {hidpi}" dir\x3d"{langDir}" style\x3d"'+
-(q?"display:flex":"")+'" lang\x3d"{langCode}" role\x3d"dialog" aria-labelledby\x3d"cke_dialog_title_{id}"\x3e\x3ctable class\x3d"cke_dialog '+CKEDITOR.env.cssClass+' cke_{langDir}" style\x3d"'+(q?"margin:auto":"position:absolute")+'" role\x3d"presentation"\x3e\x3ctr\x3e\x3ctd role\x3d"presentation"\x3e\x3cdiv class\x3d"cke_dialog_body" role\x3d"presentation"\x3e\x3cdiv id\x3d"cke_dialog_title_{id}" class\x3d"cke_dialog_title" role\x3d"presentation"\x3e\x3c/div\x3e\x3ca id\x3d"cke_dialog_close_button_{id}" class\x3d"cke_dialog_close_button" href\x3d"javascript:void(0)" title\x3d"{closeTitle}" role\x3d"button"\x3e\x3cspan class\x3d"cke_label"\x3eX\x3c/span\x3e\x3c/a\x3e\x3cdiv id\x3d"cke_dialog_tabs_{id}" class\x3d"cke_dialog_tabs" role\x3d"tablist"\x3e\x3c/div\x3e\x3ctable class\x3d"cke_dialog_contents" role\x3d"presentation"\x3e\x3ctr\x3e\x3ctd id\x3d"cke_dialog_contents_{id}" class\x3d"cke_dialog_contents_body" role\x3d"presentation"\x3e\x3c/td\x3e\x3c/tr\x3e\x3ctr\x3e\x3ctd id\x3d"cke_dialog_footer_{id}" class\x3d"cke_dialog_footer" role\x3d"presentation"\x3e\x3c/td\x3e\x3c/tr\x3e\x3c/table\x3e\x3c/div\x3e\x3c/td\x3e\x3c/tr\x3e\x3c/table\x3e\x3c/div\x3e';
-CKEDITOR.dialog=function(d,g){function k(){var a=A._.focusList;a.sort(function(a,c){return a.tabIndex!=c.tabIndex?c.tabIndex-a.tabIndex:a.focusIndex-c.focusIndex});for(var c=a.length,d=0;d<c;d++)a[d].focusIndex=d}function l(a){var c=A._.focusList;a=a||0;if(!(1>c.length)){var d=A._.currentFocusIndex;A._.tabBarMode&&0>a&&(d=0);try{c[d].getInputElement().$.blur()}catch(b){}var e=d,f=1<A._.pageCount;do{e+=a;if(f&&!A._.tabBarMode&&(e==c.length||-1==e)){A._.tabBarMode=!0;A._.tabs[A._.currentTabId][0].focus();
-A._.currentFocusIndex=-1;return}e=(e+c.length)%c.length;if(e==d)break}while(a&&!c[e].isFocusable());c[e].focus();"text"==c[e].type&&c[e].select()}}function n(a){if(A==CKEDITOR.dialog._.currentTop){var c=a.data.getKeystroke(),e="rtl"==d.lang.dir,f=[37,38,39,40];r=x=0;if(9==c||c==CKEDITOR.SHIFT+9)l(c==CKEDITOR.SHIFT+9?-1:1),r=1;else if(c==CKEDITOR.ALT+121&&!A._.tabBarMode&&1<A.getPageCount())A._.tabBarMode=!0,A._.tabs[A._.currentTabId][0].focus(),A._.currentFocusIndex=-1,r=1;else if(-1!=CKEDITOR.tools.indexOf(f,
-c)&&A._.tabBarMode)c=-1!=CKEDITOR.tools.indexOf([e?39:37,38],c)?b.call(A):h.call(A),A.selectPage(c),A._.tabs[c][0].focus(),r=1;else if(13!=c&&32!=c||!A._.tabBarMode)if(13==c)c=a.data.getTarget(),c.is("a","button","select","textarea")||c.is("input")&&"button"==c.$.type||((c=this.getButton("ok"))&&CKEDITOR.tools.setTimeout(c.click,0,c),r=1),x=1;else if(27==c)(c=this.getButton("cancel"))?CKEDITOR.tools.setTimeout(c.click,0,c):!1!==this.fire("cancel",{hide:!0}).hide&&this.hide(),x=1;else return;else this.selectPage(this._.currentTabId),
-this._.tabBarMode=!1,this._.currentFocusIndex=-1,l(1),r=1;q(a)}}function q(a){r?a.data.preventDefault(1):x&&a.data.stopPropagation()}var p=CKEDITOR.dialog._.dialogDefinitions[g],w=CKEDITOR.tools.clone(t),v=d.config.dialog_buttonsOrder||"OS",u=d.lang.dir,y={},r,x;("OS"==v&&CKEDITOR.env.mac||"rtl"==v&&"ltr"==u||"ltr"==v&&"rtl"==u)&&w.buttons.reverse();p=CKEDITOR.tools.extend(p(d),w);p=CKEDITOR.tools.clone(p);p=new B(this,p);w=m(d);this._={editor:d,element:w.element,name:g,model:null,contentSize:{width:0,
-height:0},size:{width:0,height:0},contents:{},buttons:{},accessKeyMap:{},viewportRatio:{width:.5,height:.5},tabs:{},tabIdList:[],currentTabId:null,currentTabIndex:null,pageCount:0,lastTab:null,tabBarMode:!1,focusList:[],currentFocusIndex:0,hasFocus:!1};this.parts=w.parts;CKEDITOR.tools.setTimeout(function(){d.fire("ariaWidget",this.parts.contents)},0,this);w={top:0,visibility:"hidden"};CKEDITOR.env.ie6Compat&&(w.position="absolute");w["rtl"==u?"right":"left"]=0;this.parts.dialog.setStyles(w);CKEDITOR.event.call(this);
-this.definition=p=CKEDITOR.fire("dialogDefinition",{name:g,definition:p,dialog:this},d).definition;if(!("removeDialogTabs"in d._)&&d.config.removeDialogTabs){w=d.config.removeDialogTabs.split(";");for(u=0;u<w.length;u++)if(v=w[u].split(":"),2==v.length){var z=v[0];y[z]||(y[z]=[]);y[z].push(v[1])}d._.removeDialogTabs=y}if(d._.removeDialogTabs&&(y=d._.removeDialogTabs[g]))for(u=0;u<y.length;u++)p.removeContents(y[u]);if(p.onLoad)this.on("load",p.onLoad);if(p.onShow)this.on("show",p.onShow);if(p.onHide)this.on("hide",
-p.onHide);if(p.onOk)this.on("ok",function(a){d.fire("saveSnapshot");setTimeout(function(){d.fire("saveSnapshot")},0);!1===p.onOk.call(this,a)&&(a.data.hide=!1)});this.state=CKEDITOR.DIALOG_STATE_IDLE;if(p.onCancel)this.on("cancel",function(a){!1===p.onCancel.call(this,a)&&(a.data.hide=!1)});var A=this,G=function(a){var c=A._.contents,d=!1,b;for(b in c)for(var e in c[b])if(d=a.call(this,c[b][e]))return};this.on("ok",function(a){G(function(c){if(c.validate){var d=c.validate(this),b="string"==typeof d||
-!1===d;b&&(a.data.hide=!1,a.stop());f.call(c,!b,"string"==typeof d?d:void 0);return b}})},this,null,0);this.on("cancel",function(a){G(function(c){if(c.isChanged())return d.config.dialog_noConfirmCancel||confirm(d.lang.common.confirmCancel)||(a.data.hide=!1),!0})},this,null,0);this.parts.close.on("click",function(a){!1!==this.fire("cancel",{hide:!0}).hide&&this.hide();a.data.preventDefault()},this);this.changeFocus=l;var D=this._.element;d.focusManager.add(D,1);this.on("show",function(){D.on("keydown",
-n,this);if(CKEDITOR.env.gecko)D.on("keypress",q,this)});this.on("hide",function(){D.removeListener("keydown",n);CKEDITOR.env.gecko&&D.removeListener("keypress",q);G(function(c){a.apply(c)})});this.on("iframeAdded",function(a){(new CKEDITOR.dom.document(a.data.iframe.$.contentWindow.document)).on("keydown",n,this,null,0)});this.on("show",function(){k();var a=1<A._.pageCount;d.config.dialog_startupFocusTab&&a?(A._.tabBarMode=!0,A._.tabs[A._.currentTabId][0].focus(),A._.currentFocusIndex=-1):this._.hasFocus||
-(this._.currentFocusIndex=a?-1:this._.focusList.length-1,p.onFocus?(a=p.onFocus.call(this))&&a.focus():l(1))},this,null,4294967295);if(CKEDITOR.env.ie6Compat)this.on("load",function(){var a=this.getElement(),c=a.getFirst();c.remove();c.appendTo(a)},this);e(this);c(this);(new CKEDITOR.dom.text(p.title,CKEDITOR.document)).appendTo(this.parts.title);for(u=0;u<p.contents.length;u++)(y=p.contents[u])&&this.addPage(y);this.parts.tabs.on("click",function(a){var c=a.data.getTarget();c.hasClass("cke_dialog_tab")&&
-(c=c.$.id,this.selectPage(c.substring(4,c.lastIndexOf("_"))),this._.tabBarMode&&(this._.tabBarMode=!1,this._.currentFocusIndex=-1,l(1)),a.data.preventDefault())},this);u=[];y=CKEDITOR.dialog._.uiElementBuilders.hbox.build(this,{type:"hbox",className:"cke_dialog_footer_buttons",widths:[],children:p.buttons},u).getChild();this.parts.footer.setHtml(u.join(""));for(u=0;u<y.length;u++)this._.buttons[y[u].id]=y[u]};CKEDITOR.dialog.prototype={destroy:function(){this.hide();this._.element.remove()},resize:function(a,
-c){if(!this._.contentSize||this._.contentSize.width!=a||this._.contentSize.height!=c){CKEDITOR.dialog.fire("resize",{dialog:this,width:a,height:c},this._.editor);this.fire("resize",{width:a,height:c},this._.editor);this.parts.contents.setStyles({width:a+"px",height:c+"px"});if("rtl"==this._.editor.lang.dir&&this._.position){var d=this.parts.dialog.getParent().getClientSize().width;this._.position.x=d-this._.contentSize.width-parseInt(this._.element.getFirst().getStyle("right"),10)}this._.contentSize=
-{width:a,height:c}}},getSize:function(){var a=this._.element.getFirst();return{width:a.$.offsetWidth||0,height:a.$.offsetHeight||0}},move:function(a,c,d){var b=this._.element.getFirst(),e="rtl"==this._.editor.lang.dir;CKEDITOR.env.ie&&b.setStyle("zoom","100%");var f=this.parts.dialog.getParent().getClientSize(),g=this.getSize(),h=this._.viewportRatio,k=Math.max(f.width-g.width,0),f=Math.max(f.height-g.height,0);this._.position&&this._.position.x==a&&this._.position.y==c?(a=Math.floor(k*h.width),c=
-Math.floor(f*h.height)):n(this,a,c);this._.position={x:a,y:c};e&&(a=k-a);c={top:(0<c?c:0)+"px"};c[e?"right":"left"]=(0<a?a:0)+"px";b.setStyles(c);d&&(this._.moved=1)},getPosition:function(){return CKEDITOR.tools.extend({},this._.position)},show:function(){var a=this._.element,c=this.definition;a.getParent()&&a.getParent().equals(CKEDITOR.document.getBody())?a.setStyle("display",q?"flex":"block"):a.appendTo(CKEDITOR.document.getBody());this.resize(this._.contentSize&&this._.contentSize.width||c.width||
-c.minWidth,this._.contentSize&&this._.contentSize.height||c.height||c.minHeight);this.reset();null===this._.currentTabId&&this.selectPage(this.definition.contents[0].id);null===CKEDITOR.dialog._.currentZIndex&&(CKEDITOR.dialog._.currentZIndex=this._.editor.config.baseFloatZIndex);this._.element.getFirst().setStyle("z-index",CKEDITOR.dialog._.currentZIndex+=10);null===CKEDITOR.dialog._.currentTop?(CKEDITOR.dialog._.currentTop=this,this._.parentDialog=null,z(this._.editor)):(this._.parentDialog=CKEDITOR.dialog._.currentTop,
-this._.parentDialog.getElement().getFirst().$.style.zIndex-=Math.floor(this._.editor.config.baseFloatZIndex/2),CKEDITOR.dialog._.currentTop=this);a.on("keydown",C);a.on("keyup",I);this._.hasFocus=!1;for(var d in c.contents)if(c.contents[d]){var a=c.contents[d],b=this._.tabs[a.id],e=a.requiredContent,f=0;if(b){for(var g in this._.contents[a.id]){var h=this._.contents[a.id][g];"hbox"!=h.type&&"vbox"!=h.type&&h.getInputElement()&&(h.requiredContent&&!this._.editor.activeFilter.check(h.requiredContent)?
-h.disable():(h.enable(),f++))}!f||e&&!this._.editor.activeFilter.check(e)?b[0].addClass("cke_dialog_tab_disabled"):b[0].removeClass("cke_dialog_tab_disabled")}}CKEDITOR.tools.setTimeout(function(){this.layout();l(this);this.parts.dialog.setStyle("visibility","");this.fireOnce("load",{});CKEDITOR.ui.fire("ready",this);this.fire("show",{});this._.editor.fire("dialogShow",this);this._.parentDialog||this._.editor.focusManager.lock();this.foreach(function(a){a.setInitValue&&a.setInitValue()})},100,this)},
-layout:function(){var a=this.parts.dialog;if(this._.moved||!q){var c=this.getSize(),d=CKEDITOR.document.getWindow().getViewPaneSize(),b;this._.moved&&this._.position?(b=this._.position.x,c=this._.position.y):(b=(d.width-c.width)/2,c=(d.height-c.height)/2);CKEDITOR.env.ie6Compat||(a.setStyle("position","absolute"),a.removeStyle("margin"));b=Math.floor(b);c=Math.floor(c);this.move(b,c)}},foreach:function(a){for(var c in this._.contents)for(var d in this._.contents[c])a.call(this,this._.contents[c][d]);
-return this},reset:function(){var a=function(a){a.reset&&a.reset(1)};return function(){this.foreach(a);return this}}(),setupContent:function(){var a=arguments;this.foreach(function(c){c.setup&&c.setup.apply(c,a)})},commitContent:function(){var a=arguments;this.foreach(function(c){CKEDITOR.env.ie&&this._.currentFocusIndex==c.focusIndex&&c.getInputElement().$.blur();c.commit&&c.commit.apply(c,a)})},hide:function(){if(this.parts.dialog.isVisible()){this.fire("hide",{});this._.editor.fire("dialogHide",
-this);this.selectPage(this._.tabIdList[0]);var a=this._.element;a.setStyle("display","none");this.parts.dialog.setStyle("visibility","hidden");for(F(this);CKEDITOR.dialog._.currentTop!=this;)CKEDITOR.dialog._.currentTop.hide();if(this._.parentDialog){var c=this._.parentDialog.getElement().getFirst();c.setStyle("z-index",parseInt(c.$.style.zIndex,10)+Math.floor(this._.editor.config.baseFloatZIndex/2))}else r(this._.editor);if(CKEDITOR.dialog._.currentTop=this._.parentDialog)CKEDITOR.dialog._.currentZIndex-=
-10;else{CKEDITOR.dialog._.currentZIndex=null;a.removeListener("keydown",C);a.removeListener("keyup",I);var d=this._.editor;d.focus();setTimeout(function(){d.focusManager.unlock();CKEDITOR.env.iOS&&d.window.focus()},0)}delete this._.parentDialog;this.foreach(function(a){a.resetInitValue&&a.resetInitValue()});this.setState(CKEDITOR.DIALOG_STATE_IDLE)}},addPage:function(a){if(!a.requiredContent||this._.editor.filter.check(a.requiredContent)){for(var c=[],d=a.label?' title\x3d"'+CKEDITOR.tools.htmlEncode(a.label)+
+g);CKEDITOR.dialog.addUIElement("html",g);CKEDITOR.dialog.addUIElement("fieldset",{build:function(a,b,c){for(var f=b.children,g,h=[],k=[],l=0;l<f.length&&(g=f[l]);l++){var m=[];h.push(m);k.push(CKEDITOR.dialog._.uiElementBuilders[g.type].build(a,g,m))}return new CKEDITOR.ui.dialog[b.type](a,k,h,c,b)}})}});CKEDITOR.DIALOG_RESIZE_NONE=0;CKEDITOR.DIALOG_RESIZE_WIDTH=1;CKEDITOR.DIALOG_RESIZE_HEIGHT=2;CKEDITOR.DIALOG_RESIZE_BOTH=3;CKEDITOR.DIALOG_STATE_IDLE=1;CKEDITOR.DIALOG_STATE_BUSY=2;(function(){function b(a){a._.tabBarMode=
+!0;a._.tabs[a._.currentTabId][0].focus();a._.currentFocusIndex=-1}function h(){for(var a=this._.tabIdList.length,c=CKEDITOR.tools.indexOf(this._.tabIdList,this._.currentTabId)+a,d=c-1;d>c-a;d--)if(this._.tabs[this._.tabIdList[d%a]][0].$.offsetHeight)return this._.tabIdList[d%a];return null}function g(){for(var a=this._.tabIdList.length,c=CKEDITOR.tools.indexOf(this._.tabIdList,this._.currentTabId),d=c+1;d<c+a;d++)if(this._.tabs[this._.tabIdList[d%a]][0].$.offsetHeight)return this._.tabIdList[d%a];
+return null}function f(a,c){for(var d=a.$.getElementsByTagName("input"),b=0,e=d.length;b<e;b++){var f=new CKEDITOR.dom.element(d[b]);"text"==f.getAttribute("type").toLowerCase()&&(c?(f.setAttribute("value",f.getCustomData("fake_value")||""),f.removeCustomData("fake_value")):(f.setCustomData("fake_value",f.getAttribute("value")),f.setAttribute("value","")))}}function a(a,c){var d=this.getInputElement();d&&(a?d.removeAttribute("aria-invalid"):d.setAttribute("aria-invalid",!0));a||(this.select?this.select():
+this.focus());c&&alert(c);this.fire("validated",{valid:a,msg:c})}function m(){var a=this.getInputElement();a&&a.removeAttribute("aria-invalid")}function l(a){var c=CKEDITOR.dom.element.createFromHtml(CKEDITOR.addTemplate("dialog",K).output({id:CKEDITOR.tools.getNextNumber(),editorId:a.id,langDir:a.lang.dir,langCode:a.langCode,editorDialogClass:"cke_editor_"+a.name.replace(/\./g,"\\.")+"_dialog",closeTitle:a.lang.common.close,hidpi:CKEDITOR.env.hidpi?"cke_hidpi":""})),d=c.getChild([0,0,0,0,0]),b=d.getChild(0),
+e=d.getChild(1);a.plugins.clipboard&&CKEDITOR.plugins.clipboard.preventDefaultDropOnElement(d);!CKEDITOR.env.ie||CKEDITOR.env.quirks||CKEDITOR.env.edge||(a="javascript:void(function(){"+encodeURIComponent("document.open();("+CKEDITOR.tools.fixDomain+")();document.close();")+"}())",CKEDITOR.dom.element.createFromHtml('\x3ciframe frameBorder\x3d"0" class\x3d"cke_iframe_shim" src\x3d"'+a+'" tabIndex\x3d"-1"\x3e\x3c/iframe\x3e').appendTo(d.getParent()));b.unselectable();e.unselectable();return{element:c,
+parts:{dialog:c.getChild(0),title:b,close:e,tabs:d.getChild(2),contents:d.getChild([3,0,0,0]),footer:d.getChild([3,0,1,0])}}}function k(a,c,d){this.element=c;this.focusIndex=d;this.tabIndex=0;this.isFocusable=function(){return!c.getAttribute("disabled")&&c.isVisible()};this.focus=function(){a._.currentFocusIndex=this.focusIndex;this.element.focus()};c.on("keydown",function(a){a.data.getKeystroke()in{32:1,13:1}&&this.fire("click")});c.on("focus",function(){this.fire("mouseover")});c.on("blur",function(){this.fire("mouseout")})}
+function d(a){function c(){a.layout()}var d=CKEDITOR.document.getWindow();d.on("resize",c);a.on("hide",function(){d.removeListener("resize",c)})}function e(a,d){this.dialog=a;for(var b=d.contents,e=0,f;f=b[e];e++)b[e]=f&&new c(a,f);CKEDITOR.tools.extend(this,d)}function c(a,c){this._={dialog:a};CKEDITOR.tools.extend(this,c)}function n(a){function c(d){var k=a.getSize(),l=a.parts.dialog.getParent().getClientSize(),n=d.data.$.screenX,m=d.data.$.screenY,q=n-b.x,r=m-b.y;b={x:n,y:m};e.x+=q;e.y+=r;n=e.x+
+h[3]<g?-h[3]:e.x-h[1]>l.width-k.width-g?l.width-k.width+("rtl"==f.lang.dir?0:h[1]):e.x;k=e.y+h[0]<g?-h[0]:e.y-h[2]>l.height-k.height-g?l.height-k.height+h[2]:e.y;n=Math.floor(n);k=Math.floor(k);a.move(n,k,1);d.data.preventDefault()}function d(){CKEDITOR.document.removeListener("mousemove",c);CKEDITOR.document.removeListener("mouseup",d);if(CKEDITOR.env.ie6Compat){var a=G.getChild(0).getFrameDocument();a.removeListener("mousemove",c);a.removeListener("mouseup",d)}}var b=null,e=null,f=a.getParentEditor(),
+g=f.config.dialog_magnetDistance,h=CKEDITOR.skin.margins||[0,0,0,0];"undefined"==typeof g&&(g=20);a.parts.title.on("mousedown",function(f){if(!a._.moved){var g=a._.element;g.getFirst().setStyle("position","absolute");g.removeStyle("display");a._.moved=!0;a.layout()}b={x:f.data.$.screenX,y:f.data.$.screenY};CKEDITOR.document.on("mousemove",c);CKEDITOR.document.on("mouseup",d);e=a.getPosition();CKEDITOR.env.ie6Compat&&(g=G.getChild(0).getFrameDocument(),g.on("mousemove",c),g.on("mouseup",d));f.data.preventDefault()},
+a)}function v(a){function c(d){var m="rtl"==f.lang.dir,q=l.width,r=l.height,t=q+(d.data.$.screenX-n.x)*(m?-1:1)*(a._.moved?1:2),u=r+(d.data.$.screenY-n.y)*(a._.moved?1:2),v=a._.element.getFirst(),v=m&&parseInt(v.getComputedStyle("right"),10),w=a.getPosition();w.x=w.x||0;w.y=w.y||0;w.y+u>k.height&&(u=k.height-w.y);(m?v:w.x)+t>k.width&&(t=k.width-(m?v:w.x));u=Math.floor(u);t=Math.floor(t);if(e==CKEDITOR.DIALOG_RESIZE_WIDTH||e==CKEDITOR.DIALOG_RESIZE_BOTH)q=Math.max(b.minWidth||0,t-g);if(e==CKEDITOR.DIALOG_RESIZE_HEIGHT||
+e==CKEDITOR.DIALOG_RESIZE_BOTH)r=Math.max(b.minHeight||0,u-h);a.resize(q,r);a._.moved&&x(a,a._.position.x,a._.position.y);a._.moved||a.layout();d.data.preventDefault()}function d(){CKEDITOR.document.removeListener("mouseup",d);CKEDITOR.document.removeListener("mousemove",c);m&&(m.remove(),m=null);if(CKEDITOR.env.ie6Compat){var a=G.getChild(0).getFrameDocument();a.removeListener("mouseup",d);a.removeListener("mousemove",c)}}var b=a.definition,e=b.resizable;if(e!=CKEDITOR.DIALOG_RESIZE_NONE){var f=
+a.getParentEditor(),g,h,k,n,l,m,q=CKEDITOR.tools.addFunction(function(b){function e(a){return a.isVisible()}l=a.getSize();var f=a.parts.contents,q=f.$.getElementsByTagName("iframe").length,r=!(CKEDITOR.env.gecko||CKEDITOR.env.ie&&CKEDITOR.env.quirks);q&&(m=CKEDITOR.dom.element.createFromHtml('\x3cdiv class\x3d"cke_dialog_resize_cover" style\x3d"height: 100%; position: absolute; width: 100%; left:0; top:0;"\x3e\x3c/div\x3e'),f.append(m));h=l.height-a.parts.contents.getFirst(e).getSize("height",r);
+g=l.width-a.parts.contents.getFirst(e).getSize("width",1);n={x:b.screenX,y:b.screenY};k=CKEDITOR.document.getWindow().getViewPaneSize();CKEDITOR.document.on("mousemove",c);CKEDITOR.document.on("mouseup",d);CKEDITOR.env.ie6Compat&&(f=G.getChild(0).getFrameDocument(),f.on("mousemove",c),f.on("mouseup",d));b.preventDefault&&b.preventDefault()});a.on("load",function(){var c="";e==CKEDITOR.DIALOG_RESIZE_WIDTH?c=" cke_resizer_horizontal":e==CKEDITOR.DIALOG_RESIZE_HEIGHT&&(c=" cke_resizer_vertical");c=CKEDITOR.dom.element.createFromHtml('\x3cdiv class\x3d"cke_resizer'+
+c+" cke_resizer_"+f.lang.dir+'" title\x3d"'+CKEDITOR.tools.htmlEncode(f.lang.common.resize)+'" onmousedown\x3d"CKEDITOR.tools.callFunction('+q+', event )"\x3e'+("ltr"==f.lang.dir?"◢":"◣")+"\x3c/div\x3e");a.parts.footer.append(c,1)});f.on("destroy",function(){CKEDITOR.tools.removeFunction(q)})}}function x(a,c,d){var b=a.parts.dialog.getParent().getClientSize(),e=a.getSize(),f=a._.viewportRatio,g=Math.max(b.width-e.width,0),b=Math.max(b.height-e.height,0);f.width=g?c/g:f.width;f.height=b?d/b:f.height;
+a._.viewportRatio=f}function p(a){a.data.preventDefault(1)}function r(a){var c=a.config,d=CKEDITOR.skinName||a.config.skin,b=c.dialog_backgroundCoverColor||("moono-lisa"==d?"black":"white"),d=c.dialog_backgroundCoverOpacity,e=c.baseFloatZIndex,c=CKEDITOR.tools.genKey(b,d,e),f=J[c];CKEDITOR.document.getBody().addClass("cke_dialog_open");f?f.show():(e=['\x3cdiv tabIndex\x3d"-1" style\x3d"position: ',CKEDITOR.env.ie6Compat?"absolute":"fixed","; z-index: ",e,"; top: 0px; left: 0px; ","; width: 100%; height: 100%;",
+CKEDITOR.env.ie6Compat?"":"background-color: "+b,'" class\x3d"cke_dialog_background_cover"\x3e'],CKEDITOR.env.ie6Compat&&(b="\x3chtml\x3e\x3cbody style\x3d\\'background-color:"+b+";\\'\x3e\x3c/body\x3e\x3c/html\x3e",e.push('\x3ciframe hidefocus\x3d"true" frameborder\x3d"0" id\x3d"cke_dialog_background_iframe" src\x3d"javascript:'),e.push("void((function(){"+encodeURIComponent("document.open();("+CKEDITOR.tools.fixDomain+")();document.write( '"+b+"' );document.close();")+"})())"),e.push('" style\x3d"position:absolute;left:0;top:0;width:100%;height: 100%;filter: progid:DXImageTransform.Microsoft.Alpha(opacity\x3d0)"\x3e\x3c/iframe\x3e')),
+e.push("\x3c/div\x3e"),f=CKEDITOR.dom.element.createFromHtml(e.join("")),f.setOpacity(void 0!==d?d:.5),f.on("keydown",p),f.on("keypress",p),f.on("keyup",p),f.appendTo(CKEDITOR.document.getBody()),J[c]=f);a.focusManager.add(f);G=f;CKEDITOR.env.mac&&CKEDITOR.env.webkit||f.focus()}function q(a){CKEDITOR.document.getBody().removeClass("cke_dialog_open");G&&(a.focusManager.remove(G),G.hide())}function w(a){var c=a.data.$.ctrlKey||a.data.$.metaKey,d=a.data.$.altKey,b=a.data.$.shiftKey,e=String.fromCharCode(a.data.$.keyCode);
+(c=L[(c?"CTRL+":"")+(d?"ALT+":"")+(b?"SHIFT+":"")+e])&&c.length&&(c=c[c.length-1],c.keydown&&c.keydown.call(c.uiElement,c.dialog,c.key),a.data.preventDefault())}function t(a){var c=a.data.$.ctrlKey||a.data.$.metaKey,d=a.data.$.altKey,b=a.data.$.shiftKey,e=String.fromCharCode(a.data.$.keyCode);(c=L[(c?"CTRL+":"")+(d?"ALT+":"")+(b?"SHIFT+":"")+e])&&c.length&&(c=c[c.length-1],c.keyup&&(c.keyup.call(c.uiElement,c.dialog,c.key),a.data.preventDefault()))}function z(a,c,d,b,e){(L[d]||(L[d]=[])).push({uiElement:a,
+dialog:c,key:d,keyup:e||a.accessKeyUp,keydown:b||a.accessKeyDown})}function y(a){for(var c in L){for(var d=L[c],b=d.length-1;0<=b;b--)d[b].dialog!=a&&d[b].uiElement!=a||d.splice(b,1);0===d.length&&delete L[c]}}function u(a,c){a._.accessKeyMap[c]&&a.selectPage(a._.accessKeyMap[c])}function C(){}var A=CKEDITOR.tools.cssLength,B,G,F=!CKEDITOR.env.ie||CKEDITOR.env.edge,K='\x3cdiv class\x3d"cke_reset_all cke_dialog_container {editorId} {editorDialogClass} {hidpi}" dir\x3d"{langDir}" style\x3d"'+(F?"display:flex":
+"")+'" lang\x3d"{langCode}" role\x3d"dialog" aria-labelledby\x3d"cke_dialog_title_{id}"\x3e\x3ctable class\x3d"cke_dialog '+CKEDITOR.env.cssClass+' cke_{langDir}" style\x3d"'+(F?"margin:auto":"position:absolute")+'" role\x3d"presentation"\x3e\x3ctr\x3e\x3ctd role\x3d"presentation"\x3e\x3cdiv class\x3d"cke_dialog_body" role\x3d"presentation"\x3e\x3cdiv id\x3d"cke_dialog_title_{id}" class\x3d"cke_dialog_title" role\x3d"presentation"\x3e\x3c/div\x3e\x3ca id\x3d"cke_dialog_close_button_{id}" class\x3d"cke_dialog_close_button" href\x3d"javascript:void(0)" title\x3d"{closeTitle}" role\x3d"button"\x3e\x3cspan class\x3d"cke_label"\x3eX\x3c/span\x3e\x3c/a\x3e\x3cdiv id\x3d"cke_dialog_tabs_{id}" class\x3d"cke_dialog_tabs" role\x3d"tablist"\x3e\x3c/div\x3e\x3ctable class\x3d"cke_dialog_contents" role\x3d"presentation"\x3e\x3ctr\x3e\x3ctd id\x3d"cke_dialog_contents_{id}" class\x3d"cke_dialog_contents_body" role\x3d"presentation"\x3e\x3c/td\x3e\x3c/tr\x3e\x3ctr\x3e\x3ctd id\x3d"cke_dialog_footer_{id}" class\x3d"cke_dialog_footer" role\x3d"presentation"\x3e\x3c/td\x3e\x3c/tr\x3e\x3c/table\x3e\x3c/div\x3e\x3c/td\x3e\x3c/tr\x3e\x3c/table\x3e\x3c/div\x3e';
+CKEDITOR.dialog=function(c,d){function f(){var a=A._.focusList;a.sort(function(a,c){return a.tabIndex!=c.tabIndex?c.tabIndex-a.tabIndex:a.focusIndex-c.focusIndex});for(var c=a.length,d=0;d<c;d++)a[d].focusIndex=d}function k(a){var c=A._.focusList;a=a||0;if(!(1>c.length)){var d=A._.currentFocusIndex;A._.tabBarMode&&0>a&&(d=0);try{c[d].getInputElement().$.blur()}catch(b){}var e=d,f=1<A._.pageCount;do{e+=a;if(f&&!A._.tabBarMode&&(e==c.length||-1==e)){A._.tabBarMode=!0;A._.tabs[A._.currentTabId][0].focus();
+A._.currentFocusIndex=-1;return}e=(e+c.length)%c.length;if(e==d)break}while(a&&!c[e].isFocusable());c[e].focus();"text"==c[e].type&&c[e].select()}}function q(a){if(A==CKEDITOR.dialog._.currentTop){var d=a.data.getKeystroke(),e="rtl"==c.lang.dir,f=[37,38,39,40];z=x=0;if(9==d||d==CKEDITOR.SHIFT+9)k(d==CKEDITOR.SHIFT+9?-1:1),z=1;else if(d==CKEDITOR.ALT+121&&!A._.tabBarMode&&1<A.getPageCount())b(A),z=1;else if(-1!=CKEDITOR.tools.indexOf(f,d)&&A._.tabBarMode)d=-1!=CKEDITOR.tools.indexOf([e?39:37,38],d)?
+h.call(A):g.call(A),A.selectPage(d),A._.tabs[d][0].focus(),z=1;else if(13!=d&&32!=d||!A._.tabBarMode)if(13==d)d=a.data.getTarget(),d.is("a","button","select","textarea")||d.is("input")&&"button"==d.$.type||((d=this.getButton("ok"))&&CKEDITOR.tools.setTimeout(d.click,0,d),z=1),x=1;else if(27==d)(d=this.getButton("cancel"))?CKEDITOR.tools.setTimeout(d.click,0,d):!1!==this.fire("cancel",{hide:!0}).hide&&this.hide(),x=1;else return;else this.selectPage(this._.currentTabId),this._.tabBarMode=!1,this._.currentFocusIndex=
+-1,k(1),z=1;r(a)}}function r(a){z?a.data.preventDefault(1):x&&a.data.stopPropagation()}var t=CKEDITOR.dialog._.dialogDefinitions[d],u=CKEDITOR.tools.clone(B),w=c.config.dialog_buttonsOrder||"OS",y=c.lang.dir,p={},z,x;("OS"==w&&CKEDITOR.env.mac||"rtl"==w&&"ltr"==y||"ltr"==w&&"rtl"==y)&&u.buttons.reverse();t=CKEDITOR.tools.extend(t(c),u);t=CKEDITOR.tools.clone(t);t=new e(this,t);u=l(c);this._={editor:c,element:u.element,name:d,model:null,contentSize:{width:0,height:0},size:{width:0,height:0},contents:{},
+buttons:{},accessKeyMap:{},viewportRatio:{width:.5,height:.5},tabs:{},tabIdList:[],currentTabId:null,currentTabIndex:null,pageCount:0,lastTab:null,tabBarMode:!1,focusList:[],currentFocusIndex:0,hasFocus:!1};this.parts=u.parts;CKEDITOR.tools.setTimeout(function(){c.fire("ariaWidget",this.parts.contents)},0,this);u={top:0,visibility:"hidden"};CKEDITOR.env.ie6Compat&&(u.position="absolute");u["rtl"==y?"right":"left"]=0;this.parts.dialog.setStyles(u);CKEDITOR.event.call(this);this.definition=t=CKEDITOR.fire("dialogDefinition",
+{name:d,definition:t,dialog:this},c).definition;if(!("removeDialogTabs"in c._)&&c.config.removeDialogTabs){u=c.config.removeDialogTabs.split(";");for(y=0;y<u.length;y++)if(w=u[y].split(":"),2==w.length){var C=w[0];p[C]||(p[C]=[]);p[C].push(w[1])}c._.removeDialogTabs=p}if(c._.removeDialogTabs&&(p=c._.removeDialogTabs[d]))for(y=0;y<p.length;y++)t.removeContents(p[y]);if(t.onLoad)this.on("load",t.onLoad);if(t.onShow)this.on("show",t.onShow);if(t.onHide)this.on("hide",t.onHide);if(t.onOk)this.on("ok",
+function(a){c.fire("saveSnapshot");setTimeout(function(){c.fire("saveSnapshot")},0);!1===t.onOk.call(this,a)&&(a.data.hide=!1)});this.state=CKEDITOR.DIALOG_STATE_IDLE;if(t.onCancel)this.on("cancel",function(a){!1===t.onCancel.call(this,a)&&(a.data.hide=!1)});var A=this,G=function(a){var c=A._.contents,d=!1,b;for(b in c)for(var e in c[b])if(d=a.call(this,c[b][e]))return};this.on("ok",function(c){G(function(d){if(d.validate){var b=d.validate(this),e="string"==typeof b||!1===b;e&&(c.data.hide=!1,c.stop());
+a.call(d,!e,"string"==typeof b?b:void 0);return e}})},this,null,0);this.on("cancel",function(a){G(function(d){if(d.isChanged())return c.config.dialog_noConfirmCancel||confirm(c.lang.common.confirmCancel)||(a.data.hide=!1),!0})},this,null,0);this.parts.close.on("click",function(a){!1!==this.fire("cancel",{hide:!0}).hide&&this.hide();a.data.preventDefault()},this);this.changeFocus=k;var K=this._.element;c.focusManager.add(K,1);this.on("show",function(){K.on("keydown",q,this);if(CKEDITOR.env.gecko)K.on("keypress",
+r,this)});this.on("hide",function(){K.removeListener("keydown",q);CKEDITOR.env.gecko&&K.removeListener("keypress",r);G(function(a){m.apply(a)})});this.on("iframeAdded",function(a){(new CKEDITOR.dom.document(a.data.iframe.$.contentWindow.document)).on("keydown",q,this,null,0)});this.on("show",function(){f();var a=1<A._.pageCount;c.config.dialog_startupFocusTab&&a?(A._.tabBarMode=!0,A._.tabs[A._.currentTabId][0].focus(),A._.currentFocusIndex=-1):this._.hasFocus||(this._.currentFocusIndex=a?-1:this._.focusList.length-
+1,t.onFocus?(a=t.onFocus.call(this))&&a.focus():k(1))},this,null,4294967295);if(CKEDITOR.env.ie6Compat)this.on("load",function(){var a=this.getElement(),c=a.getFirst();c.remove();c.appendTo(a)},this);n(this);v(this);(new CKEDITOR.dom.text(t.title,CKEDITOR.document)).appendTo(this.parts.title);for(y=0;y<t.contents.length;y++)(p=t.contents[y])&&this.addPage(p);this.parts.tabs.on("click",function(a){var c=a.data.getTarget();c.hasClass("cke_dialog_tab")&&(c=c.$.id,this.selectPage(c.substring(4,c.lastIndexOf("_"))),
+b(this),a.data.preventDefault())},this);y=[];p=CKEDITOR.dialog._.uiElementBuilders.hbox.build(this,{type:"hbox",className:"cke_dialog_footer_buttons",widths:[],children:t.buttons},y).getChild();this.parts.footer.setHtml(y.join(""));for(y=0;y<p.length;y++)this._.buttons[p[y].id]=p[y]};CKEDITOR.dialog.prototype={destroy:function(){this.hide();this._.element.remove()},resize:function(a,c){if(!this._.contentSize||this._.contentSize.width!=a||this._.contentSize.height!=c){CKEDITOR.dialog.fire("resize",
+{dialog:this,width:a,height:c},this._.editor);this.fire("resize",{width:a,height:c},this._.editor);this.parts.contents.setStyles({width:a+"px",height:c+"px"});if("rtl"==this._.editor.lang.dir&&this._.position){var d=this.parts.dialog.getParent().getClientSize().width;this._.position.x=d-this._.contentSize.width-parseInt(this._.element.getFirst().getStyle("right"),10)}this._.contentSize={width:a,height:c}}},getSize:function(){var a=this._.element.getFirst();return{width:a.$.offsetWidth||0,height:a.$.offsetHeight||
+0}},move:function(a,c,d){var b=this._.element.getFirst(),e="rtl"==this._.editor.lang.dir;CKEDITOR.env.ie&&b.setStyle("zoom","100%");var f=this.parts.dialog.getParent().getClientSize(),g=this.getSize(),h=this._.viewportRatio,k=Math.max(f.width-g.width,0),f=Math.max(f.height-g.height,0);this._.position&&this._.position.x==a&&this._.position.y==c?(a=Math.floor(k*h.width),c=Math.floor(f*h.height)):x(this,a,c);this._.position={x:a,y:c};e&&(a=k-a);c={top:(0<c?c:0)+"px"};c[e?"right":"left"]=(0<a?a:0)+"px";
+b.setStyles(c);d&&(this._.moved=1)},getPosition:function(){return CKEDITOR.tools.extend({},this._.position)},show:function(){var a=this._.element,c=this.definition,b=CKEDITOR.document.getBody(),e=this._.editor.config.baseFloatZIndex;a.getParent()&&a.getParent().equals(b)?a.setStyle("display",F?"flex":"block"):a.appendTo(b);this.resize(this._.contentSize&&this._.contentSize.width||c.width||c.minWidth,this._.contentSize&&this._.contentSize.height||c.height||c.minHeight);this.reset();null===this._.currentTabId&&
+this.selectPage(this.definition.contents[0].id);null===CKEDITOR.dialog._.currentZIndex&&(CKEDITOR.dialog._.currentZIndex=e);this._.element.getFirst().setStyle("z-index",CKEDITOR.dialog._.currentZIndex+=10);this.getElement().setStyle("z-index",CKEDITOR.dialog._.currentZIndex);null===CKEDITOR.dialog._.currentTop?(CKEDITOR.dialog._.currentTop=this,this._.parentDialog=null,r(this._.editor)):(this._.parentDialog=CKEDITOR.dialog._.currentTop,b=this._.parentDialog.getElement().getFirst(),b.$.style.zIndex-=
+Math.floor(e/2),this._.parentDialog.getElement().setStyle("z-index",b.$.style.zIndex),CKEDITOR.dialog._.currentTop=this);a.on("keydown",w);a.on("keyup",t);this._.hasFocus=!1;for(var f in c.contents)if(c.contents[f]){var a=c.contents[f],e=this._.tabs[a.id],b=a.requiredContent,g=0;if(e){for(var h in this._.contents[a.id]){var k=this._.contents[a.id][h];"hbox"!=k.type&&"vbox"!=k.type&&k.getInputElement()&&(k.requiredContent&&!this._.editor.activeFilter.check(k.requiredContent)?k.disable():(k.enable(),
+g++))}!g||b&&!this._.editor.activeFilter.check(b)?e[0].addClass("cke_dialog_tab_disabled"):e[0].removeClass("cke_dialog_tab_disabled")}}CKEDITOR.tools.setTimeout(function(){this.layout();d(this);this.parts.dialog.setStyle("visibility","");this.fireOnce("load",{});CKEDITOR.ui.fire("ready",this);this.fire("show",{});this._.editor.fire("dialogShow",this);this._.parentDialog||this._.editor.focusManager.lock();this.foreach(function(a){a.setInitValue&&a.setInitValue()})},100,this)},layout:function(){var a=
+this.parts.dialog;if(this._.moved||!F){var c=this.getSize(),d=CKEDITOR.document.getWindow().getViewPaneSize(),b;this._.moved&&this._.position?(b=this._.position.x,c=this._.position.y):(b=(d.width-c.width)/2,c=(d.height-c.height)/2);CKEDITOR.env.ie6Compat||(a.setStyle("position","absolute"),a.removeStyle("margin"));b=Math.floor(b);c=Math.floor(c);this.move(b,c)}},foreach:function(a){for(var c in this._.contents)for(var d in this._.contents[c])a.call(this,this._.contents[c][d]);return this},reset:function(){var a=
+function(a){a.reset&&a.reset(1)};return function(){this.foreach(a);return this}}(),setupContent:function(){var a=arguments;this.foreach(function(c){c.setup&&c.setup.apply(c,a)})},commitContent:function(){var a=arguments;this.foreach(function(c){CKEDITOR.env.ie&&this._.currentFocusIndex==c.focusIndex&&c.getInputElement().$.blur();c.commit&&c.commit.apply(c,a)})},hide:function(){if(this.parts.dialog.isVisible()){this.fire("hide",{});this._.editor.fire("dialogHide",this);this.selectPage(this._.tabIdList[0]);
+var a=this._.element;a.setStyle("display","none");this.parts.dialog.setStyle("visibility","hidden");for(y(this);CKEDITOR.dialog._.currentTop!=this;)CKEDITOR.dialog._.currentTop.hide();if(this._.parentDialog){var c=this._.parentDialog.getElement().getFirst();this._.parentDialog.getElement().removeStyle("z-index");c.setStyle("z-index",parseInt(c.$.style.zIndex,10)+Math.floor(this._.editor.config.baseFloatZIndex/2))}else q(this._.editor);if(CKEDITOR.dialog._.currentTop=this._.parentDialog)CKEDITOR.dialog._.currentZIndex-=
+10;else{CKEDITOR.dialog._.currentZIndex=null;a.removeListener("keydown",w);a.removeListener("keyup",t);var d=this._.editor;d.focus();setTimeout(function(){d.focusManager.unlock();CKEDITOR.env.iOS&&d.window.focus()},0)}delete this._.parentDialog;this.foreach(function(a){a.resetInitValue&&a.resetInitValue()});this.setState(CKEDITOR.DIALOG_STATE_IDLE)}},addPage:function(a){if(!a.requiredContent||this._.editor.filter.check(a.requiredContent)){for(var c=[],d=a.label?' title\x3d"'+CKEDITOR.tools.htmlEncode(a.label)+
 '"':"",b=CKEDITOR.dialog._.uiElementBuilders.vbox.build(this,{type:"vbox",className:"cke_dialog_page_contents",children:a.elements,expand:!!a.expand,padding:a.padding,style:a.style||"width: 100%;"},c),e=this._.contents[a.id]={},f=b.getChild(),g=0;b=f.shift();)b.notAllowed||"hbox"==b.type||"vbox"==b.type||g++,e[b.id]=b,"function"==typeof b.getChild&&f.push.apply(f,b.getChild());g||(a.hidden=!0);c=CKEDITOR.dom.element.createFromHtml(c.join(""));c.setAttribute("role","tabpanel");c.setStyle("min-height",
 "100%");b=CKEDITOR.env;e="cke_"+a.id+"_"+CKEDITOR.tools.getNextNumber();d=CKEDITOR.dom.element.createFromHtml(['\x3ca class\x3d"cke_dialog_tab"',0<this._.pageCount?" cke_last":"cke_first",d,a.hidden?' style\x3d"display:none"':"",' id\x3d"',e,'"',b.gecko&&!b.hc?"":' href\x3d"javascript:void(0)"',' tabIndex\x3d"-1" hidefocus\x3d"true" role\x3d"tab"\x3e',a.label,"\x3c/a\x3e"].join(""));c.setAttribute("aria-labelledby",e);this._.tabs[a.id]=[d,c];this._.tabIdList.push(a.id);!a.hidden&&this._.pageCount++;
-this._.lastTab=d;this.updateStyle();c.setAttribute("name",a.id);c.appendTo(this.parts.contents);d.unselectable();this.parts.tabs.append(d);a.accessKey&&(J(this,this,"CTRL+"+a.accessKey,H,M),this._.accessKeyMap["CTRL+"+a.accessKey]=a.id)}},selectPage:function(a){if(this._.currentTabId!=a&&!this._.tabs[a][0].hasClass("cke_dialog_tab_disabled")&&!1!==this.fire("selectPage",{page:a,currentPage:this._.currentTabId})){for(var c in this._.tabs){var d=this._.tabs[c][0],b=this._.tabs[c][1];c!=a&&(d.removeClass("cke_dialog_tab_selected"),
-b.hide());b.setAttribute("aria-hidden",c!=a)}var e=this._.tabs[a];e[0].addClass("cke_dialog_tab_selected");CKEDITOR.env.ie6Compat||CKEDITOR.env.ie7Compat?(g(e[1]),e[1].show(),setTimeout(function(){g(e[1],1)},0)):e[1].show();this._.currentTabId=a;this._.currentTabIndex=CKEDITOR.tools.indexOf(this._.tabIdList,a)}},updateStyle:function(){this.parts.dialog[(1===this._.pageCount?"add":"remove")+"Class"]("cke_single_page")},hidePage:function(a){var c=this._.tabs[a]&&this._.tabs[a][0];c&&1!=this._.pageCount&&
-c.isVisible()&&(a==this._.currentTabId&&this.selectPage(b.call(this)),c.hide(),this._.pageCount--,this.updateStyle())},showPage:function(a){if(a=this._.tabs[a]&&this._.tabs[a][0])a.show(),this._.pageCount++,this.updateStyle()},getElement:function(){return this._.element},getName:function(){return this._.name},getContentElement:function(a,c){var d=this._.contents[a];return d&&d[c]},getValueOf:function(a,c){return this.getContentElement(a,c).getValue()},setValueOf:function(a,c,d){return this.getContentElement(a,
+this._.lastTab=d;this.updateStyle();c.setAttribute("name",a.id);c.appendTo(this.parts.contents);d.unselectable();this.parts.tabs.append(d);a.accessKey&&(z(this,this,"CTRL+"+a.accessKey,C,u),this._.accessKeyMap["CTRL+"+a.accessKey]=a.id)}},selectPage:function(a){if(this._.currentTabId!=a&&!this._.tabs[a][0].hasClass("cke_dialog_tab_disabled")&&!1!==this.fire("selectPage",{page:a,currentPage:this._.currentTabId})){for(var c in this._.tabs){var d=this._.tabs[c][0],b=this._.tabs[c][1];c!=a&&(d.removeClass("cke_dialog_tab_selected"),
+b.hide());b.setAttribute("aria-hidden",c!=a)}var e=this._.tabs[a];e[0].addClass("cke_dialog_tab_selected");CKEDITOR.env.ie6Compat||CKEDITOR.env.ie7Compat?(f(e[1]),e[1].show(),setTimeout(function(){f(e[1],1)},0)):e[1].show();this._.currentTabId=a;this._.currentTabIndex=CKEDITOR.tools.indexOf(this._.tabIdList,a)}},updateStyle:function(){this.parts.dialog[(1===this._.pageCount?"add":"remove")+"Class"]("cke_single_page")},hidePage:function(a){var c=this._.tabs[a]&&this._.tabs[a][0];c&&1!=this._.pageCount&&
+c.isVisible()&&(a==this._.currentTabId&&this.selectPage(h.call(this)),c.hide(),this._.pageCount--,this.updateStyle())},showPage:function(a){if(a=this._.tabs[a]&&this._.tabs[a][0])a.show(),this._.pageCount++,this.updateStyle()},getElement:function(){return this._.element},getName:function(){return this._.name},getContentElement:function(a,c){var d=this._.contents[a];return d&&d[c]},getValueOf:function(a,c){return this.getContentElement(a,c).getValue()},setValueOf:function(a,c,d){return this.getContentElement(a,
 c).setValue(d)},getButton:function(a){return this._.buttons[a]},click:function(a){return this._.buttons[a].click()},disableButton:function(a){return this._.buttons[a].disable()},enableButton:function(a){return this._.buttons[a].enable()},getPageCount:function(){return this._.pageCount},getParentEditor:function(){return this._.editor},getSelectedElement:function(){return this.getParentEditor().getSelection().getSelectedElement()},addFocusable:function(a,c){if("undefined"==typeof c)c=this._.focusList.length,
 this._.focusList.push(new k(this,a,c));else{this._.focusList.splice(c,0,new k(this,a,c));for(var d=c+1;d<this._.focusList.length;d++)this._.focusList[d].focusIndex++}},setState:function(a){if(this.state!=a){this.state=a;if(a==CKEDITOR.DIALOG_STATE_BUSY){if(!this.parts.spinner){var c=this.getParentEditor().lang.dir,d={attributes:{"class":"cke_dialog_spinner"},styles:{"float":"rtl"==c?"right":"left"}};d.styles["margin-"+("rtl"==c?"left":"right")]="8px";this.parts.spinner=CKEDITOR.document.createElement("div",
 d);this.parts.spinner.setHtml("\x26#8987;");this.parts.spinner.appendTo(this.parts.title,1)}this.parts.spinner.show();this.getButton("ok").disable()}else a==CKEDITOR.DIALOG_STATE_IDLE&&(this.parts.spinner&&this.parts.spinner.hide(),this.getButton("ok").enable());this.fire("state",a)}},getModel:function(a){return this._.model?this._.model:this.definition.getModel?this.definition.getModel(a):null},setModel:function(a){this._.model=a},getMode:function(a){if(this.definition.getMode)return this.definition.getMode(a);
 a=this.getModel(a);return!a||a instanceof CKEDITOR.dom.element&&!a.getParent()?CKEDITOR.dialog.CREATION_MODE:CKEDITOR.dialog.EDITING_MODE}};CKEDITOR.tools.extend(CKEDITOR.dialog,{CREATION_MODE:0,EDITING_MODE:1,add:function(a,c){this._.dialogDefinitions[a]&&"function"!=typeof c||(this._.dialogDefinitions[a]=c)},exists:function(a){return!!this._.dialogDefinitions[a]},getCurrent:function(){return CKEDITOR.dialog._.currentTop},isTabEnabled:function(a,c,d){a=a.config.removeDialogTabs;return!(a&&a.match(new RegExp("(?:^|;)"+
 c+":"+d+"(?:$|;)","i")))},okButton:function(){var a=function(a,c){c=c||{};return CKEDITOR.tools.extend({id:"ok",type:"button",label:a.lang.common.ok,"class":"cke_dialog_ui_button_ok",onClick:function(a){a=a.data.dialog;!1!==a.fire("ok",{hide:!0}).hide&&a.hide()}},c,!0)};a.type="button";a.override=function(c){return CKEDITOR.tools.extend(function(d){return a(d,c)},{type:"button"},!0)};return a}(),cancelButton:function(){var a=function(a,c){c=c||{};return CKEDITOR.tools.extend({id:"cancel",type:"button",
 label:a.lang.common.cancel,"class":"cke_dialog_ui_button_cancel",onClick:function(a){a=a.data.dialog;!1!==a.fire("cancel",{hide:!0}).hide&&a.hide()}},c,!0)};a.type="button";a.override=function(c){return CKEDITOR.tools.extend(function(d){return a(d,c)},{type:"button"},!0)};return a}(),addUIElement:function(a,c){this._.uiElementBuilders[a]=c}});CKEDITOR.dialog._={uiElementBuilders:{},dialogDefinitions:{},currentTop:null,currentZIndex:null};CKEDITOR.event.implementOn(CKEDITOR.dialog);CKEDITOR.event.implementOn(CKEDITOR.dialog.prototype);
-var t={resizable:CKEDITOR.DIALOG_RESIZE_BOTH,minWidth:600,minHeight:400,buttons:[CKEDITOR.dialog.okButton,CKEDITOR.dialog.cancelButton]},y=function(a,c,d){for(var b=0,e;e=a[b];b++)if(e.id==c||d&&e[d]&&(e=y(e[d],c,d)))return e;return null},v=function(a,c,d,b,e){if(d){for(var f=0,g;g=a[f];f++){if(g.id==d)return a.splice(f,0,c),c;if(b&&g[b]&&(g=v(g[b],c,d,b,!0)))return g}if(e)return null}a.push(c);return c},x=function(a,c,d){for(var b=0,e;e=a[b];b++){if(e.id==c)return a.splice(b,1);if(d&&e[d]&&(e=x(e[d],
-c,d)))return e}return null},B=function(a,c){this.dialog=a;for(var b=c.contents,e=0,f;f=b[e];e++)b[e]=f&&new d(a,f);CKEDITOR.tools.extend(this,c)};B.prototype={getContents:function(a){return y(this.contents,a)},getButton:function(a){return y(this.buttons,a)},addContents:function(a,c){return v(this.contents,a,c)},addButton:function(a,c){return v(this.buttons,a,c)},removeContents:function(a){x(this.contents,a)},removeButton:function(a){x(this.buttons,a)}};d.prototype={get:function(a){return y(this.elements,
-a,"children")},add:function(a,c){return v(this.elements,a,c,"children")},remove:function(a){x(this.elements,a,"children")}};var D={},A,G={},C=function(a){var c=a.data.$.ctrlKey||a.data.$.metaKey,d=a.data.$.altKey,b=a.data.$.shiftKey,e=String.fromCharCode(a.data.$.keyCode);(c=G[(c?"CTRL+":"")+(d?"ALT+":"")+(b?"SHIFT+":"")+e])&&c.length&&(c=c[c.length-1],c.keydown&&c.keydown.call(c.uiElement,c.dialog,c.key),a.data.preventDefault())},I=function(a){var c=a.data.$.ctrlKey||a.data.$.metaKey,d=a.data.$.altKey,
-b=a.data.$.shiftKey,e=String.fromCharCode(a.data.$.keyCode);(c=G[(c?"CTRL+":"")+(d?"ALT+":"")+(b?"SHIFT+":"")+e])&&c.length&&(c=c[c.length-1],c.keyup&&(c.keyup.call(c.uiElement,c.dialog,c.key),a.data.preventDefault()))},J=function(a,c,d,b,e){(G[d]||(G[d]=[])).push({uiElement:a,dialog:c,key:d,keyup:e||a.accessKeyUp,keydown:b||a.accessKeyDown})},F=function(a){for(var c in G){for(var d=G[c],b=d.length-1;0<=b;b--)d[b].dialog!=a&&d[b].uiElement!=a||d.splice(b,1);0===d.length&&delete G[c]}},M=function(a,
-c){a._.accessKeyMap[c]&&a.selectPage(a._.accessKeyMap[c])},H=function(){};(function(){CKEDITOR.ui.dialog={uiElement:function(a,c,d,b,e,f,g){if(!(4>arguments.length)){var h=(b.call?b(c):b)||"div",k=["\x3c",h," "],l=(e&&e.call?e(c):e)||{},n=(f&&f.call?f(c):f)||{},m=(g&&g.call?g.call(this,a,c):g)||"",q=this.domId=n.id||CKEDITOR.tools.getNextId()+"_uiElement";c.requiredContent&&!a.getParentEditor().filter.check(c.requiredContent)&&(l.display="none",this.notAllowed=!0);n.id=q;var t={};c.type&&(t["cke_dialog_ui_"+
-c.type]=1);c.className&&(t[c.className]=1);c.disabled&&(t.cke_disabled=1);for(var p=n["class"]&&n["class"].split?n["class"].split(" "):[],q=0;q<p.length;q++)p[q]&&(t[p[q]]=1);p=[];for(q in t)p.push(q);n["class"]=p.join(" ");c.title&&(n.title=c.title);t=(c.style||"").split(";");c.align&&(p=c.align,l["margin-left"]="left"==p?0:"auto",l["margin-right"]="right"==p?0:"auto");for(q in l)t.push(q+":"+l[q]);c.hidden&&t.push("display:none");for(q=t.length-1;0<=q;q--)""===t[q]&&t.splice(q,1);0<t.length&&(n.style=
-(n.style?n.style+"; ":"")+t.join("; "));for(q in n)k.push(q+'\x3d"'+CKEDITOR.tools.htmlEncode(n[q])+'" ');k.push("\x3e",m,"\x3c/",h,"\x3e");d.push(k.join(""));(this._||(this._={})).dialog=a;"boolean"==typeof c.isChanged&&(this.isChanged=function(){return c.isChanged});"function"==typeof c.isChanged&&(this.isChanged=c.isChanged);"function"==typeof c.setValue&&(this.setValue=CKEDITOR.tools.override(this.setValue,function(a){return function(d){a.call(this,c.setValue.call(this,d))}}));"function"==typeof c.getValue&&
-(this.getValue=CKEDITOR.tools.override(this.getValue,function(a){return function(){return c.getValue.call(this,a.call(this))}}));CKEDITOR.event.implementOn(this);this.registerEvents(c);this.accessKeyUp&&this.accessKeyDown&&c.accessKey&&J(this,a,"CTRL+"+c.accessKey);var w=this;a.on("load",function(){var c=w.getInputElement();if(c){var d=w.type in{checkbox:1,ratio:1}&&CKEDITOR.env.ie&&8>CKEDITOR.env.version?"cke_dialog_ui_focused":"";c.on("focus",function(){a._.tabBarMode=!1;a._.hasFocus=!0;w.fire("focus");
-d&&this.addClass(d)});c.on("blur",function(){w.fire("blur");d&&this.removeClass(d)})}});CKEDITOR.tools.extend(this,c);this.keyboardFocusable&&(this.tabIndex=c.tabIndex||0,this.focusIndex=a._.focusList.push(this)-1,this.on("focus",function(){a._.currentFocusIndex=w.focusIndex}))}},hbox:function(a,c,d,b,e){if(!(4>arguments.length)){this._||(this._={});var f=this._.children=c,g=e&&e.widths||null,h=e&&e.height||null,k,l={role:"presentation"};e&&e.align&&(l.align=e.align);CKEDITOR.ui.dialog.uiElement.call(this,
-a,e||{type:"hbox"},b,"table",{},l,function(){var a=['\x3ctbody\x3e\x3ctr class\x3d"cke_dialog_ui_hbox"\x3e'];for(k=0;k<d.length;k++){var c="cke_dialog_ui_hbox_child",b=[];0===k&&(c="cke_dialog_ui_hbox_first");k==d.length-1&&(c="cke_dialog_ui_hbox_last");a.push('\x3ctd class\x3d"',c,'" role\x3d"presentation" ');g?g[k]&&b.push("width:"+p(g[k])):b.push("width:"+Math.floor(100/d.length)+"%");h&&b.push("height:"+p(h));e&&void 0!==e.padding&&b.push("padding:"+p(e.padding));CKEDITOR.env.ie&&CKEDITOR.env.quirks&&
-f[k].align&&b.push("text-align:"+f[k].align);0<b.length&&a.push('style\x3d"'+b.join("; ")+'" ');a.push("\x3e",d[k],"\x3c/td\x3e")}a.push("\x3c/tr\x3e\x3c/tbody\x3e");return a.join("")})}},vbox:function(a,c,d,b,e){if(!(3>arguments.length)){this._||(this._={});var f=this._.children=c,g=e&&e.width||null,h=e&&e.heights||null;CKEDITOR.ui.dialog.uiElement.call(this,a,e||{type:"vbox"},b,"div",null,{role:"presentation"},function(){var c=['\x3ctable role\x3d"presentation" cellspacing\x3d"0" border\x3d"0" '];
-c.push('style\x3d"');e&&e.expand&&c.push("height:100%;");c.push("width:"+p(g||"100%"),";");CKEDITOR.env.webkit&&c.push("float:none;");c.push('"');c.push('align\x3d"',CKEDITOR.tools.htmlEncode(e&&e.align||("ltr"==a.getParentEditor().lang.dir?"left":"right")),'" ');c.push("\x3e\x3ctbody\x3e");for(var b=0;b<d.length;b++){var k=[];c.push('\x3ctr\x3e\x3ctd role\x3d"presentation" ');g&&k.push("width:"+p(g||"100%"));h?k.push("height:"+p(h[b])):e&&e.expand&&k.push("height:"+Math.floor(100/d.length)+"%");
-e&&void 0!==e.padding&&k.push("padding:"+p(e.padding));CKEDITOR.env.ie&&CKEDITOR.env.quirks&&f[b].align&&k.push("text-align:"+f[b].align);0<k.length&&c.push('style\x3d"',k.join("; "),'" ');c.push(' class\x3d"cke_dialog_ui_vbox_child"\x3e',d[b],"\x3c/td\x3e\x3c/tr\x3e")}c.push("\x3c/tbody\x3e\x3c/table\x3e");return c.join("")})}}}})();CKEDITOR.ui.dialog.uiElement.prototype={getElement:function(){return CKEDITOR.document.getById(this.domId)},getInputElement:function(){return this.getElement()},getDialog:function(){return this._.dialog},
-setValue:function(a,c){this.getInputElement().setValue(a);!c&&this.fire("change",{value:a});return this},getValue:function(){return this.getInputElement().getValue()},isChanged:function(){return!1},selectParentTab:function(){for(var a=this.getInputElement();(a=a.getParent())&&-1==a.$.className.search("cke_dialog_page_contents"););if(!a)return this;a=a.getAttribute("name");this._.dialog._.currentTabId!=a&&this._.dialog.selectPage(a);return this},focus:function(){this.selectParentTab().getInputElement().focus();
-return this},registerEvents:function(a){var c=/^on([A-Z]\w+)/,d,b=function(a,c,d,b){c.on("load",function(){a.getInputElement().on(d,b,a)})},e;for(e in a)if(d=e.match(c))this.eventProcessors[e]?this.eventProcessors[e].call(this,this._.dialog,a[e]):b(this,this._.dialog,d[1].toLowerCase(),a[e]);return this},eventProcessors:{onLoad:function(a,c){a.on("load",c,this)},onShow:function(a,c){a.on("show",c,this)},onHide:function(a,c){a.on("hide",c,this)}},accessKeyDown:function(){this.focus()},accessKeyUp:function(){},
-disable:function(){var a=this.getElement();this.getInputElement().setAttribute("disabled","true");a.addClass("cke_disabled")},enable:function(){var a=this.getElement();this.getInputElement().removeAttribute("disabled");a.removeClass("cke_disabled")},isEnabled:function(){return!this.getElement().hasClass("cke_disabled")},isVisible:function(){return this.getInputElement().isVisible()},isFocusable:function(){return this.isEnabled()&&this.isVisible()?!0:!1}};CKEDITOR.ui.dialog.hbox.prototype=CKEDITOR.tools.extend(new CKEDITOR.ui.dialog.uiElement,
+B={resizable:CKEDITOR.DIALOG_RESIZE_BOTH,minWidth:600,minHeight:400,buttons:[CKEDITOR.dialog.okButton,CKEDITOR.dialog.cancelButton]};var H=function(a,c,d){for(var b=0,e;e=a[b];b++)if(e.id==c||d&&e[d]&&(e=H(e[d],c,d)))return e;return null},E=function(a,c,d,b,e){if(d){for(var f=0,g;g=a[f];f++){if(g.id==d)return a.splice(f,0,c),c;if(b&&g[b]&&(g=E(g[b],c,d,b,!0)))return g}if(e)return null}a.push(c);return c},N=function(a,c,d){for(var b=0,e;e=a[b];b++){if(e.id==c)return a.splice(b,1);if(d&&e[d]&&(e=N(e[d],
+c,d)))return e}return null};e.prototype={getContents:function(a){return H(this.contents,a)},getButton:function(a){return H(this.buttons,a)},addContents:function(a,c){return E(this.contents,a,c)},addButton:function(a,c){return E(this.buttons,a,c)},removeContents:function(a){N(this.contents,a)},removeButton:function(a){N(this.buttons,a)}};c.prototype={get:function(a){return H(this.elements,a,"children")},add:function(a,c){return E(this.elements,a,c,"children")},remove:function(a){N(this.elements,a,
+"children")}};var J={},L={};(function(){CKEDITOR.ui.dialog={uiElement:function(a,c,d,b,e,f,g){if(!(4>arguments.length)){var h=(b.call?b(c):b)||"div",k=["\x3c",h," "],l=(e&&e.call?e(c):e)||{},n=(f&&f.call?f(c):f)||{},m=(g&&g.call?g.call(this,a,c):g)||"",q=this.domId=n.id||CKEDITOR.tools.getNextId()+"_uiElement";c.requiredContent&&!a.getParentEditor().filter.check(c.requiredContent)&&(l.display="none",this.notAllowed=!0);n.id=q;var t={};c.type&&(t["cke_dialog_ui_"+c.type]=1);c.className&&(t[c.className]=
+1);c.disabled&&(t.cke_disabled=1);for(var r=n["class"]&&n["class"].split?n["class"].split(" "):[],q=0;q<r.length;q++)r[q]&&(t[r[q]]=1);r=[];for(q in t)r.push(q);n["class"]=r.join(" ");c.title&&(n.title=c.title);t=(c.style||"").split(";");c.align&&(r=c.align,l["margin-left"]="left"==r?0:"auto",l["margin-right"]="right"==r?0:"auto");for(q in l)t.push(q+":"+l[q]);c.hidden&&t.push("display:none");for(q=t.length-1;0<=q;q--)""===t[q]&&t.splice(q,1);0<t.length&&(n.style=(n.style?n.style+"; ":"")+t.join("; "));
+for(q in n)k.push(q+'\x3d"'+CKEDITOR.tools.htmlEncode(n[q])+'" ');k.push("\x3e",m,"\x3c/",h,"\x3e");d.push(k.join(""));(this._||(this._={})).dialog=a;"boolean"==typeof c.isChanged&&(this.isChanged=function(){return c.isChanged});"function"==typeof c.isChanged&&(this.isChanged=c.isChanged);"function"==typeof c.setValue&&(this.setValue=CKEDITOR.tools.override(this.setValue,function(a){return function(d){a.call(this,c.setValue.call(this,d))}}));"function"==typeof c.getValue&&(this.getValue=CKEDITOR.tools.override(this.getValue,
+function(a){return function(){return c.getValue.call(this,a.call(this))}}));CKEDITOR.event.implementOn(this);this.registerEvents(c);this.accessKeyUp&&this.accessKeyDown&&c.accessKey&&z(this,a,"CTRL+"+c.accessKey);var u=this;a.on("load",function(){var c=u.getInputElement();if(c){var d=u.type in{checkbox:1,ratio:1}&&CKEDITOR.env.ie&&8>CKEDITOR.env.version?"cke_dialog_ui_focused":"";c.on("focus",function(){a._.tabBarMode=!1;a._.hasFocus=!0;u.fire("focus");d&&this.addClass(d)});c.on("blur",function(){u.fire("blur");
+d&&this.removeClass(d)})}});CKEDITOR.tools.extend(this,c);this.keyboardFocusable&&(this.tabIndex=c.tabIndex||0,this.focusIndex=a._.focusList.push(this)-1,this.on("focus",function(){a._.currentFocusIndex=u.focusIndex}))}},hbox:function(a,c,d,b,e){if(!(4>arguments.length)){this._||(this._={});var f=this._.children=c,g=e&&e.widths||null,h=e&&e.height||null,k,n={role:"presentation"};e&&e.align&&(n.align=e.align);CKEDITOR.ui.dialog.uiElement.call(this,a,e||{type:"hbox"},b,"table",{},n,function(){var a=
+['\x3ctbody\x3e\x3ctr class\x3d"cke_dialog_ui_hbox"\x3e'];for(k=0;k<d.length;k++){var c="cke_dialog_ui_hbox_child",b=[];0===k&&(c="cke_dialog_ui_hbox_first");k==d.length-1&&(c="cke_dialog_ui_hbox_last");a.push('\x3ctd class\x3d"',c,'" role\x3d"presentation" ');g?g[k]&&b.push("width:"+A(g[k])):b.push("width:"+Math.floor(100/d.length)+"%");h&&b.push("height:"+A(h));e&&void 0!==e.padding&&b.push("padding:"+A(e.padding));CKEDITOR.env.ie&&CKEDITOR.env.quirks&&f[k].align&&b.push("text-align:"+f[k].align);
+0<b.length&&a.push('style\x3d"'+b.join("; ")+'" ');a.push("\x3e",d[k],"\x3c/td\x3e")}a.push("\x3c/tr\x3e\x3c/tbody\x3e");return a.join("")})}},vbox:function(a,c,d,b,e){if(!(3>arguments.length)){this._||(this._={});var f=this._.children=c,g=e&&e.width||null,h=e&&e.heights||null;CKEDITOR.ui.dialog.uiElement.call(this,a,e||{type:"vbox"},b,"div",null,{role:"presentation"},function(){var c=['\x3ctable role\x3d"presentation" cellspacing\x3d"0" border\x3d"0" '];c.push('style\x3d"');e&&e.expand&&c.push("height:100%;");
+c.push("width:"+A(g||"100%"),";");CKEDITOR.env.webkit&&c.push("float:none;");c.push('"');c.push('align\x3d"',CKEDITOR.tools.htmlEncode(e&&e.align||("ltr"==a.getParentEditor().lang.dir?"left":"right")),'" ');c.push("\x3e\x3ctbody\x3e");for(var b=0;b<d.length;b++){var k=[];c.push('\x3ctr\x3e\x3ctd role\x3d"presentation" ');g&&k.push("width:"+A(g||"100%"));h?k.push("height:"+A(h[b])):e&&e.expand&&k.push("height:"+Math.floor(100/d.length)+"%");e&&void 0!==e.padding&&k.push("padding:"+A(e.padding));CKEDITOR.env.ie&&
+CKEDITOR.env.quirks&&f[b].align&&k.push("text-align:"+f[b].align);0<k.length&&c.push('style\x3d"',k.join("; "),'" ');c.push(' class\x3d"cke_dialog_ui_vbox_child"\x3e',d[b],"\x3c/td\x3e\x3c/tr\x3e")}c.push("\x3c/tbody\x3e\x3c/table\x3e");return c.join("")})}}}})();CKEDITOR.ui.dialog.uiElement.prototype={getElement:function(){return CKEDITOR.document.getById(this.domId)},getInputElement:function(){return this.getElement()},getDialog:function(){return this._.dialog},setValue:function(a,c){this.getInputElement().setValue(a);
+!c&&this.fire("change",{value:a});return this},getValue:function(){return this.getInputElement().getValue()},isChanged:function(){return!1},selectParentTab:function(){for(var a=this.getInputElement();(a=a.getParent())&&-1==a.$.className.search("cke_dialog_page_contents"););if(!a)return this;a=a.getAttribute("name");this._.dialog._.currentTabId!=a&&this._.dialog.selectPage(a);return this},focus:function(){this.selectParentTab().getInputElement().focus();return this},registerEvents:function(a){var c=
+/^on([A-Z]\w+)/,d,b=function(a,c,d,b){c.on("load",function(){a.getInputElement().on(d,b,a)})},e;for(e in a)if(d=e.match(c))this.eventProcessors[e]?this.eventProcessors[e].call(this,this._.dialog,a[e]):b(this,this._.dialog,d[1].toLowerCase(),a[e]);return this},eventProcessors:{onLoad:function(a,c){a.on("load",c,this)},onShow:function(a,c){a.on("show",c,this)},onHide:function(a,c){a.on("hide",c,this)}},accessKeyDown:function(){this.focus()},accessKeyUp:function(){},disable:function(){var a=this.getElement();
+this.getInputElement().setAttribute("disabled","true");a.addClass("cke_disabled")},enable:function(){var a=this.getElement();this.getInputElement().removeAttribute("disabled");a.removeClass("cke_disabled")},isEnabled:function(){return!this.getElement().hasClass("cke_disabled")},isVisible:function(){return this.getInputElement().isVisible()},isFocusable:function(){return this.isEnabled()&&this.isVisible()?!0:!1}};CKEDITOR.ui.dialog.hbox.prototype=CKEDITOR.tools.extend(new CKEDITOR.ui.dialog.uiElement,
 {getChild:function(a){if(1>arguments.length)return this._.children.concat();a.splice||(a=[a]);return 2>a.length?this._.children[a[0]]:this._.children[a[0]]&&this._.children[a[0]].getChild?this._.children[a[0]].getChild(a.slice(1,a.length)):null}},!0);CKEDITOR.ui.dialog.vbox.prototype=new CKEDITOR.ui.dialog.hbox;(function(){var a={build:function(a,c,d){for(var b=c.children,e,f=[],g=[],h=0;h<b.length&&(e=b[h]);h++){var k=[];f.push(k);g.push(CKEDITOR.dialog._.uiElementBuilders[e.type].build(a,e,k))}return new CKEDITOR.ui.dialog[c.type](a,
 g,f,d,c)}};CKEDITOR.dialog.addUIElement("hbox",a);CKEDITOR.dialog.addUIElement("vbox",a)})();CKEDITOR.dialogCommand=function(a,c){this.dialogName=a;CKEDITOR.tools.extend(this,c,!0)};CKEDITOR.dialogCommand.prototype={exec:function(a){var c=this.tabId;a.openDialog(this.dialogName,function(a){c&&a.selectPage(c)})},canUndo:!1,editorFocus:1};(function(){var a=/^([a]|[^a])+$/,c=/^\d*$/,d=/^\d*(?:\.\d+)?$/,b=/^(((\d*(\.\d+))|(\d*))(px|\%)?)?$/,e=/^(((\d*(\.\d+))|(\d*))(px|em|ex|in|cm|mm|pt|pc|\%)?)?$/i,
 f=/^(\s*[\w-]+\s*:\s*[^:;]+(?:;|$))*$/;CKEDITOR.VALIDATE_OR=1;CKEDITOR.VALIDATE_AND=2;CKEDITOR.dialog.validate={functions:function(){var a=arguments;return function(){var c=this&&this.getValue?this.getValue():a[0],d,b=CKEDITOR.VALIDATE_AND,e=[],f;for(f=0;f<a.length;f++)if("function"==typeof a[f])e.push(a[f]);else break;f<a.length&&"string"==typeof a[f]&&(d=a[f],f++);f<a.length&&"number"==typeof a[f]&&(b=a[f]);var g=b==CKEDITOR.VALIDATE_AND?!0:!1;for(f=0;f<e.length;f++)g=b==CKEDITOR.VALIDATE_AND?g&&
 e[f](c):g||e[f](c);return g?!0:d}},regex:function(a,c){return function(d){d=this&&this.getValue?this.getValue():d;return a.test(d)?!0:c}},notEmpty:function(c){return this.regex(a,c)},integer:function(a){return this.regex(c,a)},number:function(a){return this.regex(d,a)},cssLength:function(a){return this.functions(function(a){return e.test(CKEDITOR.tools.trim(a))},a)},htmlLength:function(a){return this.functions(function(a){return b.test(CKEDITOR.tools.trim(a))},a)},inlineStyle:function(a){return this.functions(function(a){return f.test(CKEDITOR.tools.trim(a))},
-a)},equals:function(a,c){return this.functions(function(c){return c==a},c)},notEqual:function(a,c){return this.functions(function(c){return c!=a},c)}};CKEDITOR.on("instanceDestroyed",function(a){if(CKEDITOR.tools.isEmpty(CKEDITOR.instances)){for(var c;c=CKEDITOR.dialog._.currentTop;)c.hide();for(var d in D)D[d].remove();D={}}a=a.editor._.storedDialogs;for(var b in a)a[b].destroy()})})();CKEDITOR.tools.extend(CKEDITOR.editor.prototype,{openDialog:function(a,c,d){var b=null,e=CKEDITOR.dialog._.dialogDefinitions[a];
-null===CKEDITOR.dialog._.currentTop&&z(this);if("function"==typeof e)e=this._.storedDialogs||(this._.storedDialogs={}),b=e[a]||(e[a]=new CKEDITOR.dialog(this,a)),b.setModel(d),c&&c.call(b,b),b.show();else{if("failed"==e)throw r(this),Error('[CKEDITOR.dialog.openDialog] Dialog "'+a+'" failed when loading definition.');"string"==typeof e&&CKEDITOR.scriptLoader.load(CKEDITOR.getUrl(e),function(){"function"!=typeof CKEDITOR.dialog._.dialogDefinitions[a]&&(CKEDITOR.dialog._.dialogDefinitions[a]="failed");
+a)},equals:function(a,c){return this.functions(function(c){return c==a},c)},notEqual:function(a,c){return this.functions(function(c){return c!=a},c)}};CKEDITOR.on("instanceDestroyed",function(a){if(CKEDITOR.tools.isEmpty(CKEDITOR.instances)){for(var c;c=CKEDITOR.dialog._.currentTop;)c.hide();for(var d in J)J[d].remove();J={}}a=a.editor._.storedDialogs;for(var b in a)a[b].destroy()})})();CKEDITOR.tools.extend(CKEDITOR.editor.prototype,{openDialog:function(a,c,d){var b=null,e=CKEDITOR.dialog._.dialogDefinitions[a];
+null===CKEDITOR.dialog._.currentTop&&r(this);if("function"==typeof e)e=this._.storedDialogs||(this._.storedDialogs={}),b=e[a]||(e[a]=new CKEDITOR.dialog(this,a)),b.setModel(d),c&&c.call(b,b),b.show();else{if("failed"==e)throw q(this),Error('[CKEDITOR.dialog.openDialog] Dialog "'+a+'" failed when loading definition.');"string"==typeof e&&CKEDITOR.scriptLoader.load(CKEDITOR.getUrl(e),function(){"function"!=typeof CKEDITOR.dialog._.dialogDefinitions[a]&&(CKEDITOR.dialog._.dialogDefinitions[a]="failed");
 this.openDialog(a,c,d)},this,0,1)}CKEDITOR.skin.loadPart("dialog");if(b)b.once("hide",function(){b.setModel(null)},null,null,999);return b}})})();var ka=!1;CKEDITOR.plugins.add("dialog",{requires:"dialogui",init:function(b){ka||(CKEDITOR.document.appendStyleSheet(this.path+"styles/dialog.css"),ka=!0);b.on("doubleclick",function(h){h.data.dialog&&b.openDialog(h.data.dialog)},null,null,999)}});(function(){CKEDITOR.plugins.add("a11yhelp",{requires:"dialog",availableLangs:{af:1,ar:1,az:1,bg:1,ca:1,cs:1,
 cy:1,da:1,de:1,"de-ch":1,el:1,en:1,"en-au":1,"en-gb":1,eo:1,es:1,"es-mx":1,et:1,eu:1,fa:1,fi:1,fo:1,fr:1,"fr-ca":1,gl:1,gu:1,he:1,hi:1,hr:1,hu:1,id:1,it:1,ja:1,km:1,ko:1,ku:1,lt:1,lv:1,mk:1,mn:1,nb:1,nl:1,no:1,oc:1,pl:1,pt:1,"pt-br":1,ro:1,ru:1,si:1,sk:1,sl:1,sq:1,sr:1,"sr-latn":1,sv:1,th:1,tr:1,tt:1,ug:1,uk:1,vi:1,zh:1,"zh-cn":1},init:function(b){var h=this;b.addCommand("a11yHelp",{exec:function(){var g=b.langCode,g=h.availableLangs[g]?g:h.availableLangs[g.replace(/-.*/,"")]?g.replace(/-.*/,""):
 "en";CKEDITOR.scriptLoader.load(CKEDITOR.getUrl(h.path+"dialogs/lang/"+g+".js"),function(){b.lang.a11yhelp=h.langEntries[g];b.openDialog("a11yHelp")})},modes:{wysiwyg:1,source:1},readOnly:1,canUndo:!1});b.setKeystroke(CKEDITOR.ALT+48,"a11yHelp");CKEDITOR.dialog.add("a11yHelp",this.path+"dialogs/a11yhelp.js");b.on("ariaEditorHelpLabel",function(g){g.data.label=b.lang.common.editorHelp})}})})();CKEDITOR.plugins.add("about",{requires:"dialog",init:function(b){var h=b.addCommand("about",new CKEDITOR.dialogCommand("about"));
-h.modes={wysiwyg:1,source:1};h.canUndo=!1;h.readOnly=1;b.ui.addButton&&b.ui.addButton("About",{label:b.lang.about.dlgTitle,command:"about",toolbar:"about"});CKEDITOR.dialog.add("about",this.path+"dialogs/about.js")}});"use strict";(function(){function b(b){function g(){m=b.document;k=m[CKEDITOR.env.ie?"getBody":"getDocumentElement"]();l=CKEDITOR.env.quirks?m.getBody():m.getDocumentElement();var a=CKEDITOR.env.quirks?l:l.findOne("body");a&&(a.setStyle("height","auto"),a.setStyle("min-height",CKEDITOR.env.safari?
-"0%":"auto"));d=CKEDITOR.dom.element.createFromHtml('\x3cspan style\x3d"margin:0;padding:0;border:0;clear:both;width:1px;height:1px;display:block;"\x3e'+(CKEDITOR.env.webkit?"\x26nbsp;":"")+"\x3c/span\x3e",m)}function f(){w&&l.setStyle("overflow-y","hidden");var f=b.window.getViewPaneSize().height,g;k.append(d);g=d.getDocumentPosition(m).y+d.$.offsetHeight;d.remove();g+=e;g=Math.max(g,c);g=Math.min(g,n);g!=f&&a!=g&&(g=b.fire("autoGrow",{currentHeight:f,newHeight:g}).newHeight,b.resize(b.container.getStyle("width"),
-g,!0),a=g);w||(g<n&&l.$.scrollHeight>l.$.clientHeight?l.setStyle("overflow-y","hidden"):l.removeStyle("overflow-y"))}var a,m,k,l,d,e=b.config.autoGrow_bottomSpace||0,c=void 0!==b.config.autoGrow_minHeight?b.config.autoGrow_minHeight:200,n=b.config.autoGrow_maxHeight||Infinity,w=!b.config.autoGrow_maxHeight;b.addCommand("autogrow",{exec:f,modes:{wysiwyg:1},readOnly:1,canUndo:!1,editorFocus:!1});var z={contentDom:1,key:1,selectionChange:1,insertElement:1,mode:1},r;for(r in z)b.on(r,function(c){"wysiwyg"==
-c.editor.mode&&setTimeout(function(){var c=b.getCommand("maximize");!b.window||c&&c.state==CKEDITOR.TRISTATE_ON?a=null:(f(),w||f())},100)});b.on("afterCommandExec",function(a){"maximize"==a.data.name&&"wysiwyg"==a.editor.mode&&(a.data.command.state==CKEDITOR.TRISTATE_ON?l.removeStyle("overflow-y"):f())});b.on("contentDom",g);g();b.config.autoGrow_onStartup&&b.editable().isVisible()&&b.execCommand("autogrow")}CKEDITOR.plugins.add("autogrow",{init:function(h){if(h.elementMode!=CKEDITOR.ELEMENT_MODE_INLINE)h.on("instanceReady",
+h.modes={wysiwyg:1,source:1};h.canUndo=!1;h.readOnly=1;b.ui.addButton&&b.ui.addButton("About",{label:b.lang.about.dlgTitle,command:"about",toolbar:"about"});CKEDITOR.dialog.add("about",this.path+"dialogs/about.js")}});"use strict";(function(){function b(b){function g(){m=b.document;l=m[CKEDITOR.env.ie?"getBody":"getDocumentElement"]();k=CKEDITOR.env.quirks?m.getBody():m.getDocumentElement();var a=CKEDITOR.env.quirks?k:k.findOne("body");a&&(a.setStyle("height","auto"),a.setStyle("min-height",CKEDITOR.env.safari?
+"0%":"auto"));d=CKEDITOR.dom.element.createFromHtml('\x3cspan style\x3d"margin:0;padding:0;border:0;clear:both;width:1px;height:1px;display:block;"\x3e'+(CKEDITOR.env.webkit?"\x26nbsp;":"")+"\x3c/span\x3e",m)}function f(){v&&k.setStyle("overflow-y","hidden");var f=b.window.getViewPaneSize().height,g;l.append(d);g=d.getDocumentPosition(m).y+d.$.offsetHeight;d.remove();g+=e;g=Math.max(g,c);g=Math.min(g,n);g!=f&&a!=g&&(g=b.fire("autoGrow",{currentHeight:f,newHeight:g}).newHeight,b.resize(b.container.getStyle("width"),
+g,!0),a=g);v||(g<n&&k.$.scrollHeight>k.$.clientHeight?k.setStyle("overflow-y","hidden"):k.removeStyle("overflow-y"))}var a,m,l,k,d,e=b.config.autoGrow_bottomSpace||0,c=void 0!==b.config.autoGrow_minHeight?b.config.autoGrow_minHeight:200,n=b.config.autoGrow_maxHeight||Infinity,v=!b.config.autoGrow_maxHeight;b.addCommand("autogrow",{exec:f,modes:{wysiwyg:1},readOnly:1,canUndo:!1,editorFocus:!1});var x={contentDom:1,key:1,selectionChange:1,insertElement:1,mode:1},p;for(p in x)b.on(p,function(c){"wysiwyg"==
+c.editor.mode&&setTimeout(function(){var c=b.getCommand("maximize");!b.window||c&&c.state==CKEDITOR.TRISTATE_ON?a=null:(f(),v||f())},100)});b.on("afterCommandExec",function(a){"maximize"==a.data.name&&"wysiwyg"==a.editor.mode&&(a.data.command.state==CKEDITOR.TRISTATE_ON?k.removeStyle("overflow-y"):f())});b.on("contentDom",g);g();b.config.autoGrow_onStartup&&b.editable().isVisible()&&b.execCommand("autogrow")}CKEDITOR.plugins.add("autogrow",{init:function(h){if(h.elementMode!=CKEDITOR.ELEMENT_MODE_INLINE)h.on("instanceReady",
 function(){h.editable().isInline()?h.ui.space("contents").setStyle("height","auto"):b(h)})}})})();CKEDITOR.plugins.add("basicstyles",{init:function(b){var h=0,g=function(a,g,d,e){if(e){e=new CKEDITOR.style(e);var c=f[d];c.unshift(e);b.attachStyleStateChange(e,function(a){!b.readOnly&&b.getCommand(d).setState(a)});b.addCommand(d,new CKEDITOR.styleCommand(e,{contentForms:c}));b.ui.addButton&&b.ui.addButton(a,{label:g,command:d,toolbar:"basicstyles,"+(h+=10)})}},f={bold:["strong","b",["span",function(a){a=
 a.styles["font-weight"];return"bold"==a||700<=+a}]],italic:["em","i",["span",function(a){return"italic"==a.styles["font-style"]}]],underline:["u",["span",function(a){return"underline"==a.styles["text-decoration"]}]],strike:["s","strike",["span",function(a){return"line-through"==a.styles["text-decoration"]}]],subscript:["sub"],superscript:["sup"]},a=b.config,m=b.lang.basicstyles;g("Bold",m.bold,"bold",a.coreStyles_bold);g("Italic",m.italic,"italic",a.coreStyles_italic);g("Underline",m.underline,"underline",
 a.coreStyles_underline);g("Strike",m.strike,"strike",a.coreStyles_strike);g("Subscript",m.subscript,"subscript",a.coreStyles_subscript);g("Superscript",m.superscript,"superscript",a.coreStyles_superscript);b.setKeystroke([[CKEDITOR.CTRL+66,"bold"],[CKEDITOR.CTRL+73,"italic"],[CKEDITOR.CTRL+85,"underline"]])}});CKEDITOR.config.coreStyles_bold={element:"strong",overrides:"b"};CKEDITOR.config.coreStyles_italic={element:"em",overrides:"i"};CKEDITOR.config.coreStyles_underline={element:"u"};CKEDITOR.config.coreStyles_strike=
-{element:"s",overrides:"strike"};CKEDITOR.config.coreStyles_subscript={element:"sub"};CKEDITOR.config.coreStyles_superscript={element:"sup"};(function(){var b={exec:function(b){var g=b.getCommand("blockquote").state,f=b.getSelection(),a=f&&f.getRanges()[0];if(a){var m=f.createBookmarks();if(CKEDITOR.env.ie){var k=m[0].startNode,l=m[0].endNode,d;if(k&&"blockquote"==k.getParent().getName())for(d=k;d=d.getNext();)if(d.type==CKEDITOR.NODE_ELEMENT&&d.isBlockBoundary()){k.move(d,!0);break}if(l&&"blockquote"==
-l.getParent().getName())for(d=l;d=d.getPrevious();)if(d.type==CKEDITOR.NODE_ELEMENT&&d.isBlockBoundary()){l.move(d);break}}var e=a.createIterator();e.enlargeBr=b.config.enterMode!=CKEDITOR.ENTER_BR;if(g==CKEDITOR.TRISTATE_OFF){for(k=[];g=e.getNextParagraph();)k.push(g);1>k.length&&(g=b.document.createElement(b.config.enterMode==CKEDITOR.ENTER_P?"p":"div"),l=m.shift(),a.insertNode(g),g.append(new CKEDITOR.dom.text("",b.document)),a.moveToBookmark(l),a.selectNodeContents(g),a.collapse(!0),l=a.createBookmark(),
-k.push(g),m.unshift(l));d=k[0].getParent();a=[];for(l=0;l<k.length;l++)g=k[l],d=d.getCommonAncestor(g.getParent());for(g={table:1,tbody:1,tr:1,ol:1,ul:1};g[d.getName()];)d=d.getParent();for(l=null;0<k.length;){for(g=k.shift();!g.getParent().equals(d);)g=g.getParent();g.equals(l)||a.push(g);l=g}for(;0<a.length;)if(g=a.shift(),"blockquote"==g.getName()){for(l=new CKEDITOR.dom.documentFragment(b.document);g.getFirst();)l.append(g.getFirst().remove()),k.push(l.getLast());l.replace(g)}else k.push(g);a=
-b.document.createElement("blockquote");for(a.insertBefore(k[0]);0<k.length;)g=k.shift(),a.append(g)}else if(g==CKEDITOR.TRISTATE_ON){l=[];for(d={};g=e.getNextParagraph();){for(k=a=null;g.getParent();){if("blockquote"==g.getParent().getName()){a=g.getParent();k=g;break}g=g.getParent()}a&&k&&!k.getCustomData("blockquote_moveout")&&(l.push(k),CKEDITOR.dom.element.setMarker(d,k,"blockquote_moveout",!0))}CKEDITOR.dom.element.clearAllMarkers(d);g=[];k=[];for(d={};0<l.length;)e=l.shift(),a=e.getParent(),
-e.getPrevious()?e.getNext()?(e.breakParent(e.getParent()),k.push(e.getNext())):e.remove().insertAfter(a):e.remove().insertBefore(a),a.getCustomData("blockquote_processed")||(k.push(a),CKEDITOR.dom.element.setMarker(d,a,"blockquote_processed",!0)),g.push(e);CKEDITOR.dom.element.clearAllMarkers(d);for(l=k.length-1;0<=l;l--){a=k[l];a:{d=a;for(var e=0,c=d.getChildCount(),n=void 0;e<c&&(n=d.getChild(e));e++)if(n.type==CKEDITOR.NODE_ELEMENT&&n.isBlockBoundary()){d=!1;break a}d=!0}d&&a.remove()}if(b.config.enterMode==
-CKEDITOR.ENTER_BR)for(a=!0;g.length;)if(e=g.shift(),"div"==e.getName()){l=new CKEDITOR.dom.documentFragment(b.document);!a||!e.getPrevious()||e.getPrevious().type==CKEDITOR.NODE_ELEMENT&&e.getPrevious().isBlockBoundary()||l.append(b.document.createElement("br"));for(a=e.getNext()&&!(e.getNext().type==CKEDITOR.NODE_ELEMENT&&e.getNext().isBlockBoundary());e.getFirst();)e.getFirst().remove().appendTo(l);a&&l.append(b.document.createElement("br"));l.replace(e);a=!1}}f.selectBookmarks(m);b.focus()}},refresh:function(b,
+{element:"s",overrides:"strike"};CKEDITOR.config.coreStyles_subscript={element:"sub"};CKEDITOR.config.coreStyles_superscript={element:"sup"};(function(){var b={exec:function(b){var g=b.getCommand("blockquote").state,f=b.getSelection(),a=f&&f.getRanges()[0];if(a){var m=f.createBookmarks();if(CKEDITOR.env.ie){var l=m[0].startNode,k=m[0].endNode,d;if(l&&"blockquote"==l.getParent().getName())for(d=l;d=d.getNext();)if(d.type==CKEDITOR.NODE_ELEMENT&&d.isBlockBoundary()){l.move(d,!0);break}if(k&&"blockquote"==
+k.getParent().getName())for(d=k;d=d.getPrevious();)if(d.type==CKEDITOR.NODE_ELEMENT&&d.isBlockBoundary()){k.move(d);break}}var e=a.createIterator();e.enlargeBr=b.config.enterMode!=CKEDITOR.ENTER_BR;if(g==CKEDITOR.TRISTATE_OFF){for(l=[];g=e.getNextParagraph();)l.push(g);1>l.length&&(g=b.document.createElement(b.config.enterMode==CKEDITOR.ENTER_P?"p":"div"),k=m.shift(),a.insertNode(g),g.append(new CKEDITOR.dom.text("",b.document)),a.moveToBookmark(k),a.selectNodeContents(g),a.collapse(!0),k=a.createBookmark(),
+l.push(g),m.unshift(k));d=l[0].getParent();a=[];for(k=0;k<l.length;k++)g=l[k],d=d.getCommonAncestor(g.getParent());for(g={table:1,tbody:1,tr:1,ol:1,ul:1};g[d.getName()];)d=d.getParent();for(k=null;0<l.length;){for(g=l.shift();!g.getParent().equals(d);)g=g.getParent();g.equals(k)||a.push(g);k=g}for(;0<a.length;)if(g=a.shift(),"blockquote"==g.getName()){for(k=new CKEDITOR.dom.documentFragment(b.document);g.getFirst();)k.append(g.getFirst().remove()),l.push(k.getLast());k.replace(g)}else l.push(g);a=
+b.document.createElement("blockquote");for(a.insertBefore(l[0]);0<l.length;)g=l.shift(),a.append(g)}else if(g==CKEDITOR.TRISTATE_ON){k=[];for(d={};g=e.getNextParagraph();){for(l=a=null;g.getParent();){if("blockquote"==g.getParent().getName()){a=g.getParent();l=g;break}g=g.getParent()}a&&l&&!l.getCustomData("blockquote_moveout")&&(k.push(l),CKEDITOR.dom.element.setMarker(d,l,"blockquote_moveout",!0))}CKEDITOR.dom.element.clearAllMarkers(d);g=[];l=[];for(d={};0<k.length;)e=k.shift(),a=e.getParent(),
+e.getPrevious()?e.getNext()?(e.breakParent(e.getParent()),l.push(e.getNext())):e.remove().insertAfter(a):e.remove().insertBefore(a),a.getCustomData("blockquote_processed")||(l.push(a),CKEDITOR.dom.element.setMarker(d,a,"blockquote_processed",!0)),g.push(e);CKEDITOR.dom.element.clearAllMarkers(d);for(k=l.length-1;0<=k;k--){a=l[k];a:{d=a;for(var e=0,c=d.getChildCount(),n=void 0;e<c&&(n=d.getChild(e));e++)if(n.type==CKEDITOR.NODE_ELEMENT&&n.isBlockBoundary()){d=!1;break a}d=!0}d&&a.remove()}if(b.config.enterMode==
+CKEDITOR.ENTER_BR)for(a=!0;g.length;)if(e=g.shift(),"div"==e.getName()){k=new CKEDITOR.dom.documentFragment(b.document);!a||!e.getPrevious()||e.getPrevious().type==CKEDITOR.NODE_ELEMENT&&e.getPrevious().isBlockBoundary()||k.append(b.document.createElement("br"));for(a=e.getNext()&&!(e.getNext().type==CKEDITOR.NODE_ELEMENT&&e.getNext().isBlockBoundary());e.getFirst();)e.getFirst().remove().appendTo(k);a&&k.append(b.document.createElement("br"));k.replace(e);a=!1}}f.selectBookmarks(m);b.focus()}},refresh:function(b,
 g){this.setState(b.elementPath(g.block||g.blockLimit).contains("blockquote",1)?CKEDITOR.TRISTATE_ON:CKEDITOR.TRISTATE_OFF)},context:"blockquote",allowedContent:"blockquote",requiredContent:"blockquote"};CKEDITOR.plugins.add("blockquote",{init:function(h){h.blockless||(h.addCommand("blockquote",b),h.ui.addButton&&h.ui.addButton("Blockquote",{label:h.lang.blockquote.toolbar,command:"blockquote",toolbar:"blocks,10"}))}})})();"use strict";(function(){function b(b,f){CKEDITOR.tools.extend(this,f,{editor:b,
 id:"cke-"+CKEDITOR.tools.getUniqueId(),area:b._.notificationArea});f.type||(this.type="info");this.element=this._createElement();b.plugins.clipboard&&CKEDITOR.plugins.clipboard.preventDefaultDropOnElement(this.element)}function h(b){var f=this;this.editor=b;this.notifications=[];this.element=this._createElement();this._uiBuffer=CKEDITOR.tools.eventsBuffer(10,this._layout,this);this._changeBuffer=CKEDITOR.tools.eventsBuffer(500,this._layout,this);b.on("destroy",function(){f._removeListeners();f.element.remove()})}
-CKEDITOR.plugins.add("notification",{init:function(b){function f(a){var b=new CKEDITOR.dom.element("div");b.setStyles({position:"fixed","margin-left":"-9999px"});b.setAttributes({"aria-live":"assertive","aria-atomic":"true"});b.setText(a);CKEDITOR.document.getBody().append(b);setTimeout(function(){b.remove()},100)}b._.notificationArea=new h(b);b.showNotification=function(a,f,h){var l,d;"progress"==f?l=h:d=h;a=new CKEDITOR.plugins.notification(b,{message:a,type:f,progress:l,duration:d});a.show();return a};
-b.on("key",function(a){if(27==a.data.keyCode){var h=b._.notificationArea.notifications;h.length&&(f(b.lang.notification.closed),h[h.length-1].hide(),a.cancel())}})}});b.prototype={show:function(){!1!==this.editor.fire("notificationShow",{notification:this})&&(this.area.add(this),this._hideAfterTimeout())},update:function(b){var f=!0;!1===this.editor.fire("notificationUpdate",{notification:this,options:b})&&(f=!1);var a=this.element,h=a.findOne(".cke_notification_message"),k=a.findOne(".cke_notification_progress"),
-l=b.type;a.removeAttribute("role");b.progress&&"progress"!=this.type&&(l="progress");l&&(a.removeClass(this._getClass()),a.removeAttribute("aria-label"),this.type=l,a.addClass(this._getClass()),a.setAttribute("aria-label",this.type),"progress"!=this.type||k?"progress"!=this.type&&k&&k.remove():(k=this._createProgressElement(),k.insertBefore(h)));void 0!==b.message&&(this.message=b.message,h.setHtml(this.message));void 0!==b.progress&&(this.progress=b.progress,k&&k.setStyle("width",this._getPercentageProgress()));
+CKEDITOR.plugins.add("notification",{init:function(b){function f(a){var b=new CKEDITOR.dom.element("div");b.setStyles({position:"fixed","margin-left":"-9999px"});b.setAttributes({"aria-live":"assertive","aria-atomic":"true"});b.setText(a);CKEDITOR.document.getBody().append(b);setTimeout(function(){b.remove()},100)}b._.notificationArea=new h(b);b.showNotification=function(a,f,h){var k,d;"progress"==f?k=h:d=h;a=new CKEDITOR.plugins.notification(b,{message:a,type:f,progress:k,duration:d});a.show();return a};
+b.on("key",function(a){if(27==a.data.keyCode){var h=b._.notificationArea.notifications;h.length&&(f(b.lang.notification.closed),h[h.length-1].hide(),a.cancel())}})}});b.prototype={show:function(){!1!==this.editor.fire("notificationShow",{notification:this})&&(this.area.add(this),this._hideAfterTimeout())},update:function(b){var f=!0;!1===this.editor.fire("notificationUpdate",{notification:this,options:b})&&(f=!1);var a=this.element,h=a.findOne(".cke_notification_message"),l=a.findOne(".cke_notification_progress"),
+k=b.type;a.removeAttribute("role");b.progress&&"progress"!=this.type&&(k="progress");k&&(a.removeClass(this._getClass()),a.removeAttribute("aria-label"),this.type=k,a.addClass(this._getClass()),a.setAttribute("aria-label",this.type),"progress"!=this.type||l?"progress"!=this.type&&l&&l.remove():(l=this._createProgressElement(),l.insertBefore(h)));void 0!==b.message&&(this.message=b.message,h.setHtml(this.message));void 0!==b.progress&&(this.progress=b.progress,l&&l.setStyle("width",this._getPercentageProgress()));
 f&&b.important&&(a.setAttribute("role","alert"),this.isVisible()||this.area.add(this));this.duration=b.duration;this._hideAfterTimeout()},hide:function(){!1!==this.editor.fire("notificationHide",{notification:this})&&this.area.remove(this)},isVisible:function(){return 0<=CKEDITOR.tools.indexOf(this.area.notifications,this)},_createElement:function(){var b=this,f,a,h=this.editor.lang.common.close;f=new CKEDITOR.dom.element("div");f.addClass("cke_notification");f.addClass(this._getClass());f.setAttributes({id:this.id,
 role:"alert","aria-label":this.type});"progress"==this.type&&f.append(this._createProgressElement());a=new CKEDITOR.dom.element("p");a.addClass("cke_notification_message");a.setHtml(this.message);f.append(a);a=CKEDITOR.dom.element.createFromHtml('\x3ca class\x3d"cke_notification_close" href\x3d"javascript:void(0)" title\x3d"'+h+'" role\x3d"button" tabindex\x3d"-1"\x3e\x3cspan class\x3d"cke_label"\x3eX\x3c/span\x3e\x3c/a\x3e');f.append(a);a.on("click",function(){b.editor.focus();b.hide()});return f},
 _getClass:function(){return"progress"==this.type?"cke_notification_info":"cke_notification_"+this.type},_createProgressElement:function(){var b=new CKEDITOR.dom.element("span");b.addClass("cke_notification_progress");b.setStyle("width",this._getPercentageProgress());return b},_getPercentageProgress:function(){return Math.round(100*(this.progress||0))+"%"},_hideAfterTimeout:function(){var b=this,f;this._hideTimeoutId&&clearTimeout(this._hideTimeoutId);if("number"==typeof this.duration)f=this.duration;
 else if("info"==this.type||"success"==this.type)f="number"==typeof this.editor.config.notification_duration?this.editor.config.notification_duration:5E3;f&&(b._hideTimeoutId=setTimeout(function(){b.hide()},f))}};h.prototype={add:function(b){this.notifications.push(b);this.element.append(b.element);1==this.element.getChildCount()&&(CKEDITOR.document.getBody().append(this.element),this._attachListeners());this._layout()},remove:function(b){var f=CKEDITOR.tools.indexOf(this.notifications,b);0>f||(this.notifications.splice(f,
 1),b.element.remove(),this.element.getChildCount()||(this._removeListeners(),this.element.remove()))},_createElement:function(){var b=this.editor,f=b.config,a=new CKEDITOR.dom.element("div");a.addClass("cke_notifications_area");a.setAttribute("id","cke_notifications_area_"+b.name);a.setStyle("z-index",f.baseFloatZIndex-2);return a},_attachListeners:function(){var b=CKEDITOR.document.getWindow(),f=this.editor;b.on("scroll",this._uiBuffer.input);b.on("resize",this._uiBuffer.input);f.on("change",this._changeBuffer.input);
-f.on("floatingSpaceLayout",this._layout,this,null,20);f.on("blur",this._layout,this,null,20)},_removeListeners:function(){var b=CKEDITOR.document.getWindow(),f=this.editor;b.removeListener("scroll",this._uiBuffer.input);b.removeListener("resize",this._uiBuffer.input);f.removeListener("change",this._changeBuffer.input);f.removeListener("floatingSpaceLayout",this._layout);f.removeListener("blur",this._layout)},_layout:function(){function b(){f.setStyle("left",u(t+h.width-n-w))}var f=this.element,a=
-this.editor,h=a.ui.contentsElement.getClientRect(),k=a.ui.contentsElement.getDocumentPosition(),l,d,e=f.getClientRect(),c,n=this._notificationWidth,w=this._notificationMargin;c=CKEDITOR.document.getWindow();var z=c.getScrollPosition(),r=c.getViewPaneSize(),p=CKEDITOR.document.getBody(),q=p.getDocumentPosition(),u=CKEDITOR.tools.cssLength;n&&w||(c=this.element.getChild(0),n=this._notificationWidth=c.getClientRect().width,w=this._notificationMargin=parseInt(c.getComputedStyle("margin-left"),10)+parseInt(c.getComputedStyle("margin-right"),
-10));a.toolbar&&(l=a.ui.space("top"),d=l.getClientRect());l&&l.isVisible()&&d.bottom>h.top&&d.bottom<h.bottom-e.height?f.setStyles({position:"fixed",top:u(d.bottom)}):0<h.top?f.setStyles({position:"absolute",top:u(k.y)}):k.y+h.height-e.height>z.y?f.setStyles({position:"fixed",top:0}):f.setStyles({position:"absolute",top:u(k.y+h.height-e.height)});var t="fixed"==f.getStyle("position")?h.left:"static"!=p.getComputedStyle("position")?k.x-q.x:k.x;h.width<n+w?k.x+n+w>z.x+r.width?b():f.setStyle("left",
-u(t)):k.x+n+w>z.x+r.width?f.setStyle("left",u(t)):k.x+h.width/2+n/2+w>z.x+r.width?f.setStyle("left",u(t-k.x+z.x+r.width-n-w)):0>h.left+h.width-n-w?b():0>h.left+h.width/2-n/2?f.setStyle("left",u(t-k.x+z.x)):f.setStyle("left",u(t+h.width/2-n/2-w/2))}};CKEDITOR.plugins.notification=b})();(function(){var b='\x3ca id\x3d"{id}" class\x3d"cke_button cke_button__{name} cke_button_{state} {cls}"'+(CKEDITOR.env.gecko&&!CKEDITOR.env.hc?"":" href\x3d\"javascript:void('{titleJs}')\"")+' title\x3d"{title}" tabindex\x3d"-1" hidefocus\x3d"true" role\x3d"button" aria-labelledby\x3d"{id}_label" aria-describedby\x3d"{id}_description" aria-haspopup\x3d"{hasArrow}" aria-disabled\x3d"{ariaDisabled}"';
+f.on("floatingSpaceLayout",this._layout,this,null,20);f.on("blur",this._layout,this,null,20)},_removeListeners:function(){var b=CKEDITOR.document.getWindow(),f=this.editor;b.removeListener("scroll",this._uiBuffer.input);b.removeListener("resize",this._uiBuffer.input);f.removeListener("change",this._changeBuffer.input);f.removeListener("floatingSpaceLayout",this._layout);f.removeListener("blur",this._layout)},_layout:function(){function b(){f.setStyle("left",w(t+h.width-n-v))}var f=this.element,a=
+this.editor,h=a.ui.contentsElement.getClientRect(),l=a.ui.contentsElement.getDocumentPosition(),k,d,e=f.getClientRect(),c,n=this._notificationWidth,v=this._notificationMargin;c=CKEDITOR.document.getWindow();var x=c.getScrollPosition(),p=c.getViewPaneSize(),r=CKEDITOR.document.getBody(),q=r.getDocumentPosition(),w=CKEDITOR.tools.cssLength;n&&v||(c=this.element.getChild(0),n=this._notificationWidth=c.getClientRect().width,v=this._notificationMargin=parseInt(c.getComputedStyle("margin-left"),10)+parseInt(c.getComputedStyle("margin-right"),
+10));a.toolbar&&(k=a.ui.space("top"),d=k.getClientRect());k&&k.isVisible()&&d.bottom>h.top&&d.bottom<h.bottom-e.height?f.setStyles({position:"fixed",top:w(d.bottom)}):0<h.top?f.setStyles({position:"absolute",top:w(l.y)}):l.y+h.height-e.height>x.y?f.setStyles({position:"fixed",top:0}):f.setStyles({position:"absolute",top:w(l.y+h.height-e.height)});var t="fixed"==f.getStyle("position")?h.left:"static"!=r.getComputedStyle("position")?l.x-q.x:l.x;h.width<n+v?l.x+n+v>x.x+p.width?b():f.setStyle("left",
+w(t)):l.x+n+v>x.x+p.width?f.setStyle("left",w(t)):l.x+h.width/2+n/2+v>x.x+p.width?f.setStyle("left",w(t-l.x+x.x+p.width-n-v)):0>h.left+h.width-n-v?b():0>h.left+h.width/2-n/2?f.setStyle("left",w(t-l.x+x.x)):f.setStyle("left",w(t+h.width/2-n/2-v/2))}};CKEDITOR.plugins.notification=b})();(function(){var b='\x3ca id\x3d"{id}" class\x3d"cke_button cke_button__{name} cke_button_{state} {cls}"'+(CKEDITOR.env.gecko&&!CKEDITOR.env.hc?"":" href\x3d\"javascript:void('{titleJs}')\"")+' title\x3d"{title}" tabindex\x3d"-1" hidefocus\x3d"true" role\x3d"button" aria-labelledby\x3d"{id}_label" aria-describedby\x3d"{id}_description" aria-haspopup\x3d"{hasArrow}" aria-disabled\x3d"{ariaDisabled}"';
 CKEDITOR.env.gecko&&CKEDITOR.env.mac&&(b+=' onkeypress\x3d"return false;"');CKEDITOR.env.gecko&&(b+=' onblur\x3d"this.style.cssText \x3d this.style.cssText;"');var h="";CKEDITOR.env.ie&&(h='return false;" onmouseup\x3d"CKEDITOR.tools.getMouseButton(event)\x3d\x3dCKEDITOR.MOUSE_BUTTON_LEFT\x26\x26');var b=b+(' onkeydown\x3d"return CKEDITOR.tools.callFunction({keydownFn},event);" onfocus\x3d"return CKEDITOR.tools.callFunction({focusFn},event);" onclick\x3d"'+h+'CKEDITOR.tools.callFunction({clickFn},this);return false;"\x3e\x3cspan class\x3d"cke_button_icon cke_button__{iconName}_icon" style\x3d"{style}"')+
 '\x3e\x26nbsp;\x3c/span\x3e\x3cspan id\x3d"{id}_label" class\x3d"cke_button_label cke_button__{name}_label" aria-hidden\x3d"false"\x3e{label}\x3c/span\x3e\x3cspan id\x3d"{id}_description" class\x3d"cke_button_label" aria-hidden\x3d"false"\x3e{ariaShortcut}\x3c/span\x3e{arrowHtml}\x3c/a\x3e',g=CKEDITOR.addTemplate("buttonArrow",'\x3cspan class\x3d"cke_button_arrow"\x3e'+(CKEDITOR.env.hc?"\x26#9660;":"")+"\x3c/span\x3e"),f=CKEDITOR.addTemplate("button",b);CKEDITOR.plugins.add("button",{beforeInit:function(a){a.ui.addHandler(CKEDITOR.UI_BUTTON,
-CKEDITOR.ui.button.handler)}});CKEDITOR.UI_BUTTON="button";CKEDITOR.ui.button=function(a){CKEDITOR.tools.extend(this,a,{title:a.label,click:a.click||function(b){b.execCommand(a.command)}});this._={}};CKEDITOR.ui.button.handler={create:function(a){return new CKEDITOR.ui.button(a)}};CKEDITOR.ui.button.prototype={render:function(a,b){function h(){var c=a.mode;c&&(c=this.modes[c]?void 0!==l[c]?l[c]:CKEDITOR.TRISTATE_OFF:CKEDITOR.TRISTATE_DISABLED,c=a.readOnly&&!this.readOnly?CKEDITOR.TRISTATE_DISABLED:
-c,this.setState(c),this.refresh&&this.refresh())}var l=null,d=CKEDITOR.env,e=this._.id=CKEDITOR.tools.getNextId(),c="",n=this.command,w,z,r;this._.editor=a;var p={id:e,button:this,editor:a,focus:function(){CKEDITOR.document.getById(e).focus()},execute:function(){this.button.click(a)},attach:function(a){this.button.attach(a)}},q=CKEDITOR.tools.addFunction(function(a){if(p.onkey)return a=new CKEDITOR.dom.event(a),!1!==p.onkey(p,a.getKeystroke())}),u=CKEDITOR.tools.addFunction(function(a){var c;p.onfocus&&
-(c=!1!==p.onfocus(p,new CKEDITOR.dom.event(a)));return c}),t=0;p.clickFn=w=CKEDITOR.tools.addFunction(function(){t&&(a.unlockSelection(1),t=0);p.execute();d.iOS&&a.focus()});this.modes?(l={},a.on("beforeModeUnload",function(){a.mode&&this._.state!=CKEDITOR.TRISTATE_DISABLED&&(l[a.mode]=this._.state)},this),a.on("activeFilterChange",h,this),a.on("mode",h,this),!this.readOnly&&a.on("readOnly",h,this)):n&&(n=a.getCommand(n))&&(n.on("state",function(){this.setState(n.state)},this),c+=n.state==CKEDITOR.TRISTATE_ON?
-"on":n.state==CKEDITOR.TRISTATE_DISABLED?"disabled":"off");var y;if(this.directional)a.on("contentDirChanged",function(c){var d=CKEDITOR.document.getById(this._.id),b=d.getFirst();c=c.data;c!=a.lang.dir?d.addClass("cke_"+c):d.removeClass("cke_ltr").removeClass("cke_rtl");b.setAttribute("style",CKEDITOR.skin.getIconStyle(y,"rtl"==c,this.icon,this.iconOffset))},this);n?(z=a.getCommandKeystroke(n))&&(r=CKEDITOR.tools.keystrokeToString(a.lang.common.keyboard,z)):c+="off";z=this.name||this.command;var v=
-null,x=this.icon;y=z;this.icon&&!/\./.test(this.icon)?(y=this.icon,x=null):(this.icon&&(v=this.icon),CKEDITOR.env.hidpi&&this.iconHiDpi&&(v=this.iconHiDpi));v?(CKEDITOR.skin.addIcon(v,v),x=null):v=y;c={id:e,name:z,iconName:y,label:this.label,cls:(this.hasArrow?"cke_button_expandable ":"")+(this.className||""),state:c,ariaDisabled:"disabled"==c?"true":"false",title:this.title+(r?" ("+r.display+")":""),ariaShortcut:r?a.lang.common.keyboardShortcut+" "+r.aria:"",titleJs:d.gecko&&!d.hc?"":(this.title||
-"").replace("'",""),hasArrow:"string"===typeof this.hasArrow&&this.hasArrow||(this.hasArrow?"true":"false"),keydownFn:q,focusFn:u,clickFn:w,style:CKEDITOR.skin.getIconStyle(v,"rtl"==a.lang.dir,x,this.iconOffset),arrowHtml:this.hasArrow?g.output():""};f.output(c,b);if(this.onRender)this.onRender();return p},setState:function(a){if(this._.state==a)return!1;this._.state=a;var b=CKEDITOR.document.getById(this._.id);return b?(b.setState(a,"cke_button"),b.setAttribute("aria-disabled",a==CKEDITOR.TRISTATE_DISABLED),
+CKEDITOR.ui.button.handler)}});CKEDITOR.UI_BUTTON="button";CKEDITOR.ui.button=function(a){CKEDITOR.tools.extend(this,a,{title:a.label,click:a.click||function(b){b.execCommand(a.command)}});this._={}};CKEDITOR.ui.button.handler={create:function(a){return new CKEDITOR.ui.button(a)}};CKEDITOR.ui.button.prototype={render:function(a,b){function h(){var c=a.mode;c&&(c=this.modes[c]?void 0!==k[c]?k[c]:CKEDITOR.TRISTATE_OFF:CKEDITOR.TRISTATE_DISABLED,c=a.readOnly&&!this.readOnly?CKEDITOR.TRISTATE_DISABLED:
+c,this.setState(c),this.refresh&&this.refresh())}var k=null,d=CKEDITOR.env,e=this._.id=CKEDITOR.tools.getNextId(),c="",n=this.command,v,x,p;this._.editor=a;var r={id:e,button:this,editor:a,focus:function(){CKEDITOR.document.getById(e).focus()},execute:function(){this.button.click(a)},attach:function(a){this.button.attach(a)}},q=CKEDITOR.tools.addFunction(function(a){if(r.onkey)return a=new CKEDITOR.dom.event(a),!1!==r.onkey(r,a.getKeystroke())}),w=CKEDITOR.tools.addFunction(function(a){var c;r.onfocus&&
+(c=!1!==r.onfocus(r,new CKEDITOR.dom.event(a)));return c}),t=0;r.clickFn=v=CKEDITOR.tools.addFunction(function(){t&&(a.unlockSelection(1),t=0);r.execute();d.iOS&&a.focus()});this.modes?(k={},a.on("beforeModeUnload",function(){a.mode&&this._.state!=CKEDITOR.TRISTATE_DISABLED&&(k[a.mode]=this._.state)},this),a.on("activeFilterChange",h,this),a.on("mode",h,this),!this.readOnly&&a.on("readOnly",h,this)):n&&(n=a.getCommand(n))&&(n.on("state",function(){this.setState(n.state)},this),c+=n.state==CKEDITOR.TRISTATE_ON?
+"on":n.state==CKEDITOR.TRISTATE_DISABLED?"disabled":"off");var z;if(this.directional)a.on("contentDirChanged",function(c){var d=CKEDITOR.document.getById(this._.id),b=d.getFirst();c=c.data;c!=a.lang.dir?d.addClass("cke_"+c):d.removeClass("cke_ltr").removeClass("cke_rtl");b.setAttribute("style",CKEDITOR.skin.getIconStyle(z,"rtl"==c,this.icon,this.iconOffset))},this);n?(x=a.getCommandKeystroke(n))&&(p=CKEDITOR.tools.keystrokeToString(a.lang.common.keyboard,x)):c+="off";x=this.name||this.command;var y=
+null,u=this.icon;z=x;this.icon&&!/\./.test(this.icon)?(z=this.icon,u=null):(this.icon&&(y=this.icon),CKEDITOR.env.hidpi&&this.iconHiDpi&&(y=this.iconHiDpi));y?(CKEDITOR.skin.addIcon(y,y),u=null):y=z;c={id:e,name:x,iconName:z,label:this.label,cls:(this.hasArrow?"cke_button_expandable ":"")+(this.className||""),state:c,ariaDisabled:"disabled"==c?"true":"false",title:this.title+(p?" ("+p.display+")":""),ariaShortcut:p?a.lang.common.keyboardShortcut+" "+p.aria:"",titleJs:d.gecko&&!d.hc?"":(this.title||
+"").replace("'",""),hasArrow:"string"===typeof this.hasArrow&&this.hasArrow||(this.hasArrow?"true":"false"),keydownFn:q,focusFn:w,clickFn:v,style:CKEDITOR.skin.getIconStyle(y,"rtl"==a.lang.dir,u,this.iconOffset),arrowHtml:this.hasArrow?g.output():""};f.output(c,b);if(this.onRender)this.onRender();return r},setState:function(a){if(this._.state==a)return!1;this._.state=a;var b=CKEDITOR.document.getById(this._.id);return b?(b.setState(a,"cke_button"),b.setAttribute("aria-disabled",a==CKEDITOR.TRISTATE_DISABLED),
 this.hasArrow?b.setAttribute("aria-expanded",a==CKEDITOR.TRISTATE_ON):a===CKEDITOR.TRISTATE_ON?b.setAttribute("aria-pressed",!0):b.removeAttribute("aria-pressed"),!0):!1},getState:function(){return this._.state},toFeature:function(a){if(this._.feature)return this._.feature;var b=this;this.allowedContent||this.requiredContent||!this.command||(b=a.getCommand(this.command)||b);return this._.feature=b}};CKEDITOR.ui.prototype.addButton=function(a,b){this.add(a,CKEDITOR.UI_BUTTON,b)}})();(function(){function b(a){function b(){for(var c=
-f(),d=CKEDITOR.tools.clone(a.config.toolbarGroups)||h(a),e=0;e<d.length;e++){var m=d[e];if("/"!=m){"string"==typeof m&&(m=d[e]={name:m});var p,q=m.groups;if(q)for(var u=0;u<q.length;u++)p=q[u],(p=c[p])&&g(m,p);(p=c[m.name])&&g(m,p)}}return d}function f(){var c={},d,b,e;for(d in a.ui.items)b=a.ui.items[d],e=b.toolbar||"others",e=e.split(","),b=e[0],e=parseInt(e[1]||-1,10),c[b]||(c[b]=[]),c[b].push({name:d,order:e});for(b in c)c[b]=c[b].sort(function(a,c){return a.order==c.order?0:0>c.order?-1:0>a.order?
+f(),d=CKEDITOR.tools.clone(a.config.toolbarGroups)||h(a),e=0;e<d.length;e++){var m=d[e];if("/"!=m){"string"==typeof m&&(m=d[e]={name:m});var r,q=m.groups;if(q)for(var w=0;w<q.length;w++)r=q[w],(r=c[r])&&g(m,r);(r=c[m.name])&&g(m,r)}}return d}function f(){var c={},d,b,e;for(d in a.ui.items)b=a.ui.items[d],e=b.toolbar||"others",e=e.split(","),b=e[0],e=parseInt(e[1]||-1,10),c[b]||(c[b]=[]),c[b].push({name:d,order:e});for(b in c)c[b]=c[b].sort(function(a,c){return a.order==c.order?0:0>c.order?-1:0>a.order?
 1:a.order<c.order?-1:1});return c}function g(c,d){if(d.length){c.items?c.items.push(a.ui.create("-")):c.items=[];for(var b;b=d.shift();)b="string"==typeof b?b:b.name,e&&-1!=CKEDITOR.tools.indexOf(e,b)||(b=a.ui.create(b))&&a.addFeature(b)&&c.items.push(b)}}function d(a){var c=[],d,b,e;for(d=0;d<a.length;++d)b=a[d],e={},"/"==b?c.push(b):CKEDITOR.tools.isArray(b)?(g(e,CKEDITOR.tools.clone(b)),c.push(e)):b.items&&(g(e,CKEDITOR.tools.clone(b.items)),e.name=b.name,c.push(e));return c}var e=a.config.removeButtons,
 e=e&&e.split(","),c=a.config.toolbar;"string"==typeof c&&(c=a.config["toolbar_"+c]);return a.toolbar=c?d(c):b()}function h(a){return a._.toolbarGroups||(a._.toolbarGroups=[{name:"document",groups:["mode","document","doctools"]},{name:"clipboard",groups:["clipboard","undo"]},{name:"editing",groups:["find","selection","spellchecker"]},{name:"forms"},"/",{name:"basicstyles",groups:["basicstyles","cleanup"]},{name:"paragraph",groups:["list","indent","blocks","align","bidi"]},{name:"links"},{name:"insert"},
 "/",{name:"styles"},{name:"colors"},{name:"tools"},{name:"others"},{name:"about"}])}var g=function(){this.toolbars=[];this.focusCommandExecuted=!1};g.prototype.focus=function(){for(var a=0,b;b=this.toolbars[a++];)for(var f=0,g;g=b.items[f++];)if(g.focus){g.focus();return}};var f={modes:{wysiwyg:1,source:1},readOnly:1,exec:function(a){a.toolbox&&(a.toolbox.focusCommandExecuted=!0,CKEDITOR.env.ie||CKEDITOR.env.air?setTimeout(function(){a.toolbox.focus()},100):a.toolbox.focus())}};CKEDITOR.plugins.add("toolbar",
-{requires:"button",init:function(a){var h,k=function(b,d){var e,c="rtl"==a.lang.dir,f=a.config.toolbarGroupCycling,g=c?37:39,c=c?39:37,f=void 0===f||f;switch(d){case 9:case CKEDITOR.SHIFT+9:for(;!e||!e.items.length;)if(e=9==d?(e?e.next:b.toolbar.next)||a.toolbox.toolbars[0]:(e?e.previous:b.toolbar.previous)||a.toolbox.toolbars[a.toolbox.toolbars.length-1],e.items.length)for(b=e.items[h?e.items.length-1:0];b&&!b.focus;)(b=h?b.previous:b.next)||(e=0);b&&b.focus();return!1;case g:e=b;do e=e.next,!e&&
-f&&(e=b.toolbar.items[0]);while(e&&!e.focus);e?e.focus():k(b,9);return!1;case 40:return b.button&&b.button.hasArrow?b.execute():k(b,40==d?g:c),!1;case c:case 38:e=b;do e=e.previous,!e&&f&&(e=b.toolbar.items[b.toolbar.items.length-1]);while(e&&!e.focus);e?e.focus():(h=1,k(b,CKEDITOR.SHIFT+9),h=0);return!1;case 27:return a.focus(),!1;case 13:case 32:return b.execute(),!1}return!0};a.on("uiSpace",function(f){if(f.data.space==a.config.toolbarLocation){f.removeListener();a.toolbox=new g;var d=CKEDITOR.tools.getNextId(),
-e=['\x3cspan id\x3d"',d,'" class\x3d"cke_voice_label"\x3e',a.lang.toolbar.toolbars,"\x3c/span\x3e",'\x3cspan id\x3d"'+a.ui.spaceId("toolbox")+'" class\x3d"cke_toolbox" role\x3d"group" aria-labelledby\x3d"',d,'" onmousedown\x3d"return false;"\x3e'],d=!1!==a.config.toolbarStartupExpanded,c,h;a.config.toolbarCanCollapse&&a.elementMode!=CKEDITOR.ELEMENT_MODE_INLINE&&e.push('\x3cspan class\x3d"cke_toolbox_main"'+(d?"\x3e":' style\x3d"display:none"\x3e'));for(var m=a.toolbox.toolbars,z=b(a),r=z.length,
-p=0;p<r;p++){var q,u=0,t,y=z[p],v="/"!==y&&("/"===z[p+1]||p==r-1),x;if(y)if(c&&(e.push("\x3c/span\x3e"),h=c=0),"/"===y)e.push('\x3cspan class\x3d"cke_toolbar_break"\x3e\x3c/span\x3e');else{x=y.items||y;for(var B=0;B<x.length;B++){var D=x[B],A;if(D){var G=function(c){c=c.render(a,e);C=u.items.push(c)-1;0<C&&(c.previous=u.items[C-1],c.previous.next=c);c.toolbar=u;c.onkey=k;c.onfocus=function(){a.toolbox.focusCommandExecuted||a.focus()}};if(D.type==CKEDITOR.UI_SEPARATOR)h=c&&D;else{A=!1!==D.canGroup;
-if(!u){q=CKEDITOR.tools.getNextId();u={id:q,items:[]};t=y.name&&(a.lang.toolbar.toolbarGroups[y.name]||y.name);e.push('\x3cspan id\x3d"',q,'" class\x3d"cke_toolbar'+(v?' cke_toolbar_last"':'"'),t?' aria-labelledby\x3d"'+q+'_label"':"",' role\x3d"toolbar"\x3e');t&&e.push('\x3cspan id\x3d"',q,'_label" class\x3d"cke_voice_label"\x3e',t,"\x3c/span\x3e");e.push('\x3cspan class\x3d"cke_toolbar_start"\x3e\x3c/span\x3e');var C=m.push(u)-1;0<C&&(u.previous=m[C-1],u.previous.next=u)}A?c||(e.push('\x3cspan class\x3d"cke_toolgroup" role\x3d"presentation"\x3e'),
-c=1):c&&(e.push("\x3c/span\x3e"),c=0);h&&(G(h),h=0);G(D)}}}c&&(e.push("\x3c/span\x3e"),h=c=0);u&&e.push('\x3cspan class\x3d"cke_toolbar_end"\x3e\x3c/span\x3e\x3c/span\x3e')}}a.config.toolbarCanCollapse&&e.push("\x3c/span\x3e");if(a.config.toolbarCanCollapse&&a.elementMode!=CKEDITOR.ELEMENT_MODE_INLINE){var I=CKEDITOR.tools.addFunction(function(){a.execCommand("toolbarCollapse")});a.on("destroy",function(){CKEDITOR.tools.removeFunction(I)});a.addCommand("toolbarCollapse",{readOnly:1,exec:function(a){var c=
+{requires:"button",init:function(a){var h,l=function(b,d){var e,c="rtl"==a.lang.dir,f=a.config.toolbarGroupCycling,g=c?37:39,c=c?39:37,f=void 0===f||f;switch(d){case 9:case CKEDITOR.SHIFT+9:for(;!e||!e.items.length;)if(e=9==d?(e?e.next:b.toolbar.next)||a.toolbox.toolbars[0]:(e?e.previous:b.toolbar.previous)||a.toolbox.toolbars[a.toolbox.toolbars.length-1],e.items.length)for(b=e.items[h?e.items.length-1:0];b&&!b.focus;)(b=h?b.previous:b.next)||(e=0);b&&b.focus();return!1;case g:e=b;do e=e.next,!e&&
+f&&(e=b.toolbar.items[0]);while(e&&!e.focus);e?e.focus():l(b,9);return!1;case 40:return b.button&&b.button.hasArrow?b.execute():l(b,40==d?g:c),!1;case c:case 38:e=b;do e=e.previous,!e&&f&&(e=b.toolbar.items[b.toolbar.items.length-1]);while(e&&!e.focus);e?e.focus():(h=1,l(b,CKEDITOR.SHIFT+9),h=0);return!1;case 27:return a.focus(),!1;case 13:case 32:return b.execute(),!1}return!0};a.on("uiSpace",function(f){if(f.data.space==a.config.toolbarLocation){f.removeListener();a.toolbox=new g;var d=CKEDITOR.tools.getNextId(),
+e=['\x3cspan id\x3d"',d,'" class\x3d"cke_voice_label"\x3e',a.lang.toolbar.toolbars,"\x3c/span\x3e",'\x3cspan id\x3d"'+a.ui.spaceId("toolbox")+'" class\x3d"cke_toolbox" role\x3d"group" aria-labelledby\x3d"',d,'" onmousedown\x3d"return false;"\x3e'],d=!1!==a.config.toolbarStartupExpanded,c,h;a.config.toolbarCanCollapse&&a.elementMode!=CKEDITOR.ELEMENT_MODE_INLINE&&e.push('\x3cspan class\x3d"cke_toolbox_main"'+(d?"\x3e":' style\x3d"display:none"\x3e'));for(var m=a.toolbox.toolbars,x=b(a),p=x.length,
+r=0;r<p;r++){var q,w=0,t,z=x[r],y="/"!==z&&("/"===x[r+1]||r==p-1),u;if(z)if(c&&(e.push("\x3c/span\x3e"),h=c=0),"/"===z)e.push('\x3cspan class\x3d"cke_toolbar_break"\x3e\x3c/span\x3e');else{u=z.items||z;for(var C=0;C<u.length;C++){var A=u[C],B;if(A){var G=function(c){c=c.render(a,e);F=w.items.push(c)-1;0<F&&(c.previous=w.items[F-1],c.previous.next=c);c.toolbar=w;c.onkey=l;c.onfocus=function(){a.toolbox.focusCommandExecuted||a.focus()}};if(A.type==CKEDITOR.UI_SEPARATOR)h=c&&A;else{B=!1!==A.canGroup;
+if(!w){q=CKEDITOR.tools.getNextId();w={id:q,items:[]};t=z.name&&(a.lang.toolbar.toolbarGroups[z.name]||z.name);e.push('\x3cspan id\x3d"',q,'" class\x3d"cke_toolbar'+(y?' cke_toolbar_last"':'"'),t?' aria-labelledby\x3d"'+q+'_label"':"",' role\x3d"toolbar"\x3e');t&&e.push('\x3cspan id\x3d"',q,'_label" class\x3d"cke_voice_label"\x3e',t,"\x3c/span\x3e");e.push('\x3cspan class\x3d"cke_toolbar_start"\x3e\x3c/span\x3e');var F=m.push(w)-1;0<F&&(w.previous=m[F-1],w.previous.next=w)}B?c||(e.push('\x3cspan class\x3d"cke_toolgroup" role\x3d"presentation"\x3e'),
+c=1):c&&(e.push("\x3c/span\x3e"),c=0);h&&(G(h),h=0);G(A)}}}c&&(e.push("\x3c/span\x3e"),h=c=0);w&&e.push('\x3cspan class\x3d"cke_toolbar_end"\x3e\x3c/span\x3e\x3c/span\x3e')}}a.config.toolbarCanCollapse&&e.push("\x3c/span\x3e");if(a.config.toolbarCanCollapse&&a.elementMode!=CKEDITOR.ELEMENT_MODE_INLINE){var K=CKEDITOR.tools.addFunction(function(){a.execCommand("toolbarCollapse")});a.on("destroy",function(){CKEDITOR.tools.removeFunction(K)});a.addCommand("toolbarCollapse",{readOnly:1,exec:function(a){var c=
 a.ui.space("toolbar_collapser"),d=c.getPrevious(),b=a.ui.space("contents"),e=d.getParent(),f=parseInt(b.$.style.height,10),g=e.$.offsetHeight,h=c.hasClass("cke_toolbox_collapser_min");h?(d.show(),c.removeClass("cke_toolbox_collapser_min"),c.setAttribute("title",a.lang.toolbar.toolbarCollapse)):(d.hide(),c.addClass("cke_toolbox_collapser_min"),c.setAttribute("title",a.lang.toolbar.toolbarExpand));c.getFirst().setText(h?"▲":"◀");b.setStyle("height",f-(e.$.offsetHeight-g)+"px");a.fire("resize",{outerHeight:a.container.$.offsetHeight,
-contentsHeight:b.$.offsetHeight,outerWidth:a.container.$.offsetWidth})},modes:{wysiwyg:1,source:1}});a.setKeystroke(CKEDITOR.ALT+(CKEDITOR.env.ie||CKEDITOR.env.webkit?189:109),"toolbarCollapse");e.push('\x3ca title\x3d"'+(d?a.lang.toolbar.toolbarCollapse:a.lang.toolbar.toolbarExpand)+'" id\x3d"'+a.ui.spaceId("toolbar_collapser")+'" tabIndex\x3d"-1" class\x3d"cke_toolbox_collapser');d||e.push(" cke_toolbox_collapser_min");e.push('" onclick\x3d"CKEDITOR.tools.callFunction('+I+')"\x3e','\x3cspan class\x3d"cke_arrow"\x3e\x26#9650;\x3c/span\x3e',
+contentsHeight:b.$.offsetHeight,outerWidth:a.container.$.offsetWidth})},modes:{wysiwyg:1,source:1}});a.setKeystroke(CKEDITOR.ALT+(CKEDITOR.env.ie||CKEDITOR.env.webkit?189:109),"toolbarCollapse");e.push('\x3ca title\x3d"'+(d?a.lang.toolbar.toolbarCollapse:a.lang.toolbar.toolbarExpand)+'" id\x3d"'+a.ui.spaceId("toolbar_collapser")+'" tabIndex\x3d"-1" class\x3d"cke_toolbox_collapser');d||e.push(" cke_toolbox_collapser_min");e.push('" onclick\x3d"CKEDITOR.tools.callFunction('+K+')"\x3e','\x3cspan class\x3d"cke_arrow"\x3e\x26#9650;\x3c/span\x3e',
 "\x3c/a\x3e")}e.push("\x3c/span\x3e");f.data.html+=e.join("")}});a.on("destroy",function(){if(this.toolbox){var a,d=0,b,c,f;for(a=this.toolbox.toolbars;d<a.length;d++)for(c=a[d].items,b=0;b<c.length;b++)f=c[b],f.clickFn&&CKEDITOR.tools.removeFunction(f.clickFn),f.keyDownFn&&CKEDITOR.tools.removeFunction(f.keyDownFn)}});a.on("uiReady",function(){var b=a.ui.space("toolbox");b&&a.focusManager.add(b,1)});a.addCommand("toolbarFocus",f);a.setKeystroke(CKEDITOR.ALT+121,"toolbarFocus");a.ui.add("-",CKEDITOR.UI_SEPARATOR,
 {});a.ui.addHandler(CKEDITOR.UI_SEPARATOR,{create:function(){return{render:function(a,d){d.push('\x3cspan class\x3d"cke_toolbar_separator" role\x3d"separator"\x3e\x3c/span\x3e');return{}}}}})}});CKEDITOR.ui.prototype.addToolbarGroup=function(a,b,f){var g=h(this.editor),d=0===b,e={name:a};if(f){if(f=CKEDITOR.tools.search(g,function(a){return a.name==f})){!f.groups&&(f.groups=[]);if(b&&(b=CKEDITOR.tools.indexOf(f.groups,b),0<=b)){f.groups.splice(b+1,0,a);return}d?f.groups.splice(0,0,a):f.groups.push(a);
 return}b=null}b&&(b=CKEDITOR.tools.indexOf(g,function(a){return a.name==b}));d?g.splice(0,0,a):"number"==typeof b?g.splice(b+1,0,e):g.push(a)}})();CKEDITOR.UI_SEPARATOR="separator";CKEDITOR.config.toolbarLocation="top";"use strict";(function(){function b(a,d,b){d.type||(d.type="auto");if(b&&!1===a.fire("beforePaste",d)||!d.dataValue&&d.dataTransfer.isEmpty())return!1;d.dataValue||(d.dataValue="");if(CKEDITOR.env.gecko&&"drop"==d.method&&a.toolbox)a.once("afterPaste",function(){a.toolbox.focus()});
-return a.fire("paste",d)}function h(a){function d(){var b=a.editable();if(CKEDITOR.plugins.clipboard.isCustomCopyCutSupported){var e=function(d){a.getSelection().isCollapsed()||(a.readOnly&&"cut"==d.name||A.initPasteDataTransfer(d,a),d.data.preventDefault())};b.on("copy",e);b.on("cut",e);b.on("cut",function(){a.readOnly||a.extractSelectedHtml()},null,null,999)}b.on(A.mainPasteEvent,function(a){"beforepaste"==A.mainPasteEvent&&G||x(a)});"beforepaste"==A.mainPasteEvent&&(b.on("paste",function(a){C||
-(g(),a.data.preventDefault(),x(a),k("paste"))}),b.on("contextmenu",h,null,null,0),b.on("beforepaste",function(a){!a.data||a.data.$.ctrlKey||a.data.$.shiftKey||h()},null,null,0));b.on("beforecut",function(){!G&&l(a)});var f;b.attachListener(CKEDITOR.env.ie?b:a.document.getDocumentElement(),"mouseup",function(){f=setTimeout(B,0)});a.on("destroy",function(){clearTimeout(f)});b.on("keyup",B)}function e(d){return{type:d,canUndo:"cut"==d,startDisabled:!0,fakeKeystroke:"cut"==d?CKEDITOR.CTRL+88:CKEDITOR.CTRL+
-67,exec:function(){"cut"==this.type&&l();var d;var b=this.type;if(CKEDITOR.env.ie)d=k(b);else try{d=a.document.$.execCommand(b,!1,null)}catch(e){d=!1}d||a.showNotification(a.lang.clipboard[this.type+"Error"]);return d}}}function f(){return{canUndo:!1,async:!0,fakeKeystroke:CKEDITOR.CTRL+86,exec:function(a,c){function d(c,g){g="undefined"!==typeof g?g:!0;c?(c.method="paste",c.dataTransfer||(c.dataTransfer=A.initPasteDataTransfer()),b(a,c,g)):f&&!a._.forcePasteDialog&&a.showNotification(k,"info",a.config.clipboard_notificationDuration);
+return a.fire("paste",d)}function h(a){function d(){var b=a.editable();if(CKEDITOR.plugins.clipboard.isCustomCopyCutSupported){var e=function(d){a.getSelection().isCollapsed()||(a.readOnly&&"cut"==d.name||B.initPasteDataTransfer(d,a),d.data.preventDefault())};b.on("copy",e);b.on("cut",e);b.on("cut",function(){a.readOnly||a.extractSelectedHtml()},null,null,999)}b.on(B.mainPasteEvent,function(a){"beforepaste"==B.mainPasteEvent&&G||u(a)});"beforepaste"==B.mainPasteEvent&&(b.on("paste",function(a){F||
+(g(),a.data.preventDefault(),u(a),k("paste"))}),b.on("contextmenu",h,null,null,0),b.on("beforepaste",function(a){!a.data||a.data.$.ctrlKey||a.data.$.shiftKey||h()},null,null,0));b.on("beforecut",function(){!G&&l(a)});var f;b.attachListener(CKEDITOR.env.ie?b:a.document.getDocumentElement(),"mouseup",function(){f=setTimeout(C,0)});a.on("destroy",function(){clearTimeout(f)});b.on("keyup",C)}function e(d){return{type:d,canUndo:"cut"==d,startDisabled:!0,fakeKeystroke:"cut"==d?CKEDITOR.CTRL+88:CKEDITOR.CTRL+
+67,exec:function(){"cut"==this.type&&l();var d;var b=this.type;if(CKEDITOR.env.ie)d=k(b);else try{d=a.document.$.execCommand(b,!1,null)}catch(e){d=!1}d||a.showNotification(a.lang.clipboard[this.type+"Error"]);return d}}}function f(){return{canUndo:!1,async:!0,fakeKeystroke:CKEDITOR.CTRL+86,exec:function(a,c){function d(c,g){g="undefined"!==typeof g?g:!0;c?(c.method="paste",c.dataTransfer||(c.dataTransfer=B.initPasteDataTransfer()),b(a,c,g)):f&&!a._.forcePasteDialog&&a.showNotification(k,"info",a.config.clipboard_notificationDuration);
 a._.forcePasteDialog=!1;a.fire("afterCommandExec",{name:"paste",command:e,returnValue:!!c})}c="undefined"!==typeof c&&null!==c?c:{};var e=this,f="undefined"!==typeof c.notification?c.notification:!0,g=c.type,h=CKEDITOR.tools.keystrokeToString(a.lang.common.keyboard,a.getCommandKeystroke(this)),k="string"===typeof f?f:a.lang.clipboard.pasteNotification.replace(/%1/,'\x3ckbd aria-label\x3d"'+h.aria+'"\x3e'+h.display+"\x3c/kbd\x3e"),h="string"===typeof c?c:c.dataValue;g&&!0!==a.config.forcePasteAsPlainText&&
-"allow-word"!==a.config.forcePasteAsPlainText?a._.nextPasteType=g:delete a._.nextPasteType;"string"===typeof h?d({dataValue:h}):a.getClipboardData(d)}}}function g(){C=1;setTimeout(function(){C=0},100)}function h(){G=1;setTimeout(function(){G=0},10)}function k(d){var b=a.document,e=b.getBody(),f=!1,g=function(){f=!0};e.on(d,g);7<CKEDITOR.env.version?b.$.execCommand(d):b.$.selection.createRange().execCommand(d);e.removeListener(d,g);return f}function l(){if(CKEDITOR.env.ie&&!CKEDITOR.env.quirks){var d=
+"allow-word"!==a.config.forcePasteAsPlainText?a._.nextPasteType=g:delete a._.nextPasteType;"string"===typeof h?d({dataValue:h}):a.getClipboardData(d)}}}function g(){F=1;setTimeout(function(){F=0},100)}function h(){G=1;setTimeout(function(){G=0},10)}function k(d){var b=a.document,e=b.getBody(),f=!1,g=function(){f=!0};e.on(d,g);7<CKEDITOR.env.version?b.$.execCommand(d):b.$.selection.createRange().execCommand(d);e.removeListener(d,g);return f}function l(){if(CKEDITOR.env.ie&&!CKEDITOR.env.quirks){var d=
 a.getSelection(),b,e,f;d.getType()==CKEDITOR.SELECTION_ELEMENT&&(b=d.getSelectedElement())&&(e=d.getRanges()[0],f=a.document.createText(""),f.insertBefore(b),e.setStartBefore(f),e.setEndAfter(b),d.selectRanges([e]),setTimeout(function(){b.getParent()&&(f.remove(),d.selectElement(b))},0))}}function m(d,b){var e=a.document,f=a.editable(),g=function(a){a.cancel()},h;if(!e.getById("cke_pastebin")){var k=a.getSelection(),l=k.createBookmarks();CKEDITOR.env.ie&&k.root.fire("selectionchange");var n=new CKEDITOR.dom.element(!CKEDITOR.env.webkit&&
 !f.is("body")||CKEDITOR.env.ie?"div":"body",e);n.setAttributes({id:"cke_pastebin","data-cke-temp":"1"});var q=0,e=e.getWindow();CKEDITOR.env.webkit?(f.append(n),n.addClass("cke_editable"),f.is("body")||(q="static"!=f.getComputedStyle("position")?f:CKEDITOR.dom.element.get(f.$.offsetParent),q=q.getDocumentPosition().y)):f.getAscendant(CKEDITOR.env.ie?"body":"html",1).append(n);n.setStyles({position:"absolute",top:e.getScrollPosition().y-q+10+"px",width:"1px",height:Math.max(1,e.getViewPaneSize().height-
 20)+"px",overflow:"hidden",margin:0,padding:0});CKEDITOR.env.safari&&n.setStyles(CKEDITOR.tools.cssVendorPrefix("user-select","text"));(q=n.getParent().isReadOnly())?(n.setOpacity(0),n.setAttribute("contenteditable",!0)):n.setStyle("ltr"==a.config.contentsLangDirection?"left":"right","-10000px");a.on("selectionChange",g,null,null,0);if(CKEDITOR.env.webkit||CKEDITOR.env.gecko)h=f.once("blur",g,null,null,-100);q&&n.focus();q=new CKEDITOR.dom.range(n);q.selectNodeContents(n);var t=q.select();CKEDITOR.env.ie&&
-(h=f.once("blur",function(){a.lockSelection(t)}));var p=CKEDITOR.document.getWindow().getScrollPosition().y;setTimeout(function(){CKEDITOR.env.webkit&&(CKEDITOR.document.getBody().$.scrollTop=p);h&&h.removeListener();CKEDITOR.env.ie&&f.focus();k.selectBookmarks(l);n.remove();var d;CKEDITOR.env.webkit&&(d=n.getFirst())&&d.is&&d.hasClass("Apple-style-span")&&(n=d);a.removeListener("selectionChange",g);b(n.getHtml())},0)}}function y(){if("paste"==A.mainPasteEvent)return a.fire("beforePaste",{type:"auto",
-method:"paste"}),!1;a.focus();g();var d=a.focusManager;d.lock();if(a.editable().fire(A.mainPasteEvent)&&!k("paste"))return d.unlock(),!1;d.unlock();return!0}function v(d){if("wysiwyg"==a.mode)switch(d.data.keyCode){case CKEDITOR.CTRL+86:case CKEDITOR.SHIFT+45:d=a.editable();g();"paste"==A.mainPasteEvent&&d.fire("beforepaste");break;case CKEDITOR.CTRL+88:case CKEDITOR.SHIFT+46:a.fire("saveSnapshot"),setTimeout(function(){a.fire("saveSnapshot")},50)}}function x(d){var e={type:"auto",method:"paste",
-dataTransfer:A.initPasteDataTransfer(d)};e.dataTransfer.cacheData();var f=!1!==a.fire("beforePaste",e);f&&A.canClipboardApiBeTrusted(e.dataTransfer,a)?(d.data.preventDefault(),setTimeout(function(){b(a,e)},0)):m(d,function(d){e.dataValue=d.replace(/<span[^>]+data-cke-bookmark[^<]*?<\/span>/ig,"");f&&b(a,e)})}function B(){if("wysiwyg"==a.mode){var d=D("paste");a.getCommand("cut").setState(D("cut"));a.getCommand("copy").setState(D("copy"));a.getCommand("paste").setState(d);a.fire("pasteState",d)}}function D(d){var b=
-a.getSelection(),b=b&&b.getRanges()[0];if((a.readOnly||b&&b.checkReadOnly())&&d in{paste:1,cut:1})return CKEDITOR.TRISTATE_DISABLED;if("paste"==d)return CKEDITOR.TRISTATE_OFF;d=a.getSelection();b=d.getRanges();return d.getType()==CKEDITOR.SELECTION_NONE||1==b.length&&b[0].collapsed?CKEDITOR.TRISTATE_DISABLED:CKEDITOR.TRISTATE_OFF}var A=CKEDITOR.plugins.clipboard,G=0,C=0;(function(){a.on("key",v);a.on("contentDom",d);a.on("selectionChange",B);if(a.contextMenu){a.contextMenu.addListener(function(){return{cut:D("cut"),
-copy:D("copy"),paste:D("paste")}});var b=null;a.on("menuShow",function(){b&&(b.removeListener(),b=null);var d=a.contextMenu.findItemByCommandName("paste");d&&d.element&&(b=d.element.on("touchend",function(){a._.forcePasteDialog=!0}))})}if(a.ui.addButton)a.once("instanceReady",function(){a._.pasteButtons&&CKEDITOR.tools.array.forEach(a._.pasteButtons,function(d){if(d=a.ui.get(d))if(d=CKEDITOR.document.getById(d._.id))d.on("touchend",function(){a._.forcePasteDialog=!0})})})})();(function(){function d(b,
+(h=f.once("blur",function(){a.lockSelection(t)}));var r=CKEDITOR.document.getWindow().getScrollPosition().y;setTimeout(function(){CKEDITOR.env.webkit&&(CKEDITOR.document.getBody().$.scrollTop=r);h&&h.removeListener();CKEDITOR.env.ie&&f.focus();k.selectBookmarks(l);n.remove();var d;CKEDITOR.env.webkit&&(d=n.getFirst())&&d.is&&d.hasClass("Apple-style-span")&&(n=d);a.removeListener("selectionChange",g);b(n.getHtml())},0)}}function z(){if("paste"==B.mainPasteEvent)return a.fire("beforePaste",{type:"auto",
+method:"paste"}),!1;a.focus();g();var d=a.focusManager;d.lock();if(a.editable().fire(B.mainPasteEvent)&&!k("paste"))return d.unlock(),!1;d.unlock();return!0}function y(d){if("wysiwyg"==a.mode)switch(d.data.keyCode){case CKEDITOR.CTRL+86:case CKEDITOR.SHIFT+45:d=a.editable();g();"paste"==B.mainPasteEvent&&d.fire("beforepaste");break;case CKEDITOR.CTRL+88:case CKEDITOR.SHIFT+46:a.fire("saveSnapshot"),setTimeout(function(){a.fire("saveSnapshot")},50)}}function u(d){var e={type:"auto",method:"paste",
+dataTransfer:B.initPasteDataTransfer(d)};e.dataTransfer.cacheData();var f=!1!==a.fire("beforePaste",e);f&&B.canClipboardApiBeTrusted(e.dataTransfer,a)?(d.data.preventDefault(),setTimeout(function(){b(a,e)},0)):m(d,function(d){e.dataValue=d.replace(/<span[^>]+data-cke-bookmark[^<]*?<\/span>/ig,"");f&&b(a,e)})}function C(){if("wysiwyg"==a.mode){var d=A("paste");a.getCommand("cut").setState(A("cut"));a.getCommand("copy").setState(A("copy"));a.getCommand("paste").setState(d);a.fire("pasteState",d)}}function A(d){var b=
+a.getSelection(),b=b&&b.getRanges()[0];if((a.readOnly||b&&b.checkReadOnly())&&d in{paste:1,cut:1})return CKEDITOR.TRISTATE_DISABLED;if("paste"==d)return CKEDITOR.TRISTATE_OFF;d=a.getSelection();b=d.getRanges();return d.getType()==CKEDITOR.SELECTION_NONE||1==b.length&&b[0].collapsed?CKEDITOR.TRISTATE_DISABLED:CKEDITOR.TRISTATE_OFF}var B=CKEDITOR.plugins.clipboard,G=0,F=0;(function(){a.on("key",y);a.on("contentDom",d);a.on("selectionChange",C);if(a.contextMenu){a.contextMenu.addListener(function(){return{cut:A("cut"),
+copy:A("copy"),paste:A("paste")}});var b=null;a.on("menuShow",function(){b&&(b.removeListener(),b=null);var d=a.contextMenu.findItemByCommandName("paste");d&&d.element&&(b=d.element.on("touchend",function(){a._.forcePasteDialog=!0}))})}if(a.ui.addButton)a.once("instanceReady",function(){a._.pasteButtons&&CKEDITOR.tools.array.forEach(a._.pasteButtons,function(d){if(d=a.ui.get(d))if(d=CKEDITOR.document.getById(d._.id))d.on("touchend",function(){a._.forcePasteDialog=!0})})})})();(function(){function d(b,
 e,f,g,h){var k=a.lang.clipboard[e];a.addCommand(e,f);a.ui.addButton&&a.ui.addButton(b,{label:k,command:e,toolbar:"clipboard,"+g});a.addMenuItems&&a.addMenuItem(e,{label:k,command:e,group:"clipboard",order:h})}d("Cut","cut",e("cut"),10,1);d("Copy","copy",e("copy"),20,4);d("Paste","paste",f(),30,8);a._.pasteButtons||(a._.pasteButtons=[]);a._.pasteButtons.push("Paste")})();a.getClipboardData=function(d,b){function e(a){a.removeListener();a.cancel();b(a.data)}function f(a){a.removeListener();a.cancel();
-b({type:h,dataValue:a.data.dataValue,dataTransfer:a.data.dataTransfer,method:"paste"})}var g=!1,h="auto";b||(b=d,d=null);a.on("beforePaste",function(a){a.removeListener();g=!0;h=a.data.type},null,null,1E3);a.on("paste",e,null,null,0);!1===y()&&(a.removeListener("paste",e),a._.forcePasteDialog&&g&&a.fire("pasteDialog")?(a.on("pasteDialogCommit",f),a.on("dialogHide",function(a){a.removeListener();a.data.removeListener("pasteDialogCommit",f);a.data._.committed||b(null)})):b(null))}}function g(a){if(CKEDITOR.env.webkit){if(!a.match(/^[^<]*$/g)&&
+b({type:h,dataValue:a.data.dataValue,dataTransfer:a.data.dataTransfer,method:"paste"})}var g=!1,h="auto";b||(b=d,d=null);a.on("beforePaste",function(a){a.removeListener();g=!0;h=a.data.type},null,null,1E3);a.on("paste",e,null,null,0);!1===z()&&(a.removeListener("paste",e),a._.forcePasteDialog&&g&&a.fire("pasteDialog")?(a.on("pasteDialogCommit",f),a.on("dialogHide",function(a){a.removeListener();a.data.removeListener("pasteDialogCommit",f);a.data._.committed||b(null)})):b(null))}}function g(a){if(CKEDITOR.env.webkit){if(!a.match(/^[^<]*$/g)&&
 !a.match(/^(<div><br( ?\/)?><\/div>|<div>[^<]*<\/div>)*$/gi))return"html"}else if(CKEDITOR.env.ie){if(!a.match(/^([^<]|<br( ?\/)?>)*$/gi)&&!a.match(/^(<p>([^<]|<br( ?\/)?>)*<\/p>|(\r\n))*$/gi))return"html"}else if(CKEDITOR.env.gecko){if(!a.match(/^([^<]|<br( ?\/)?>)*$/gi))return"html"}else return"html";return"htmlifiedtext"}function f(a,d){function b(a){return CKEDITOR.tools.repeat("\x3c/p\x3e\x3cp\x3e",~~(a/2))+(1==a%2?"\x3cbr\x3e":"")}d=d.replace(/(?!\u3000)\s+/g," ").replace(/> +</g,"\x3e\x3c").replace(/<br ?\/>/gi,
 "\x3cbr\x3e");d=d.replace(/<\/?[A-Z]+>/g,function(a){return a.toLowerCase()});if(d.match(/^[^<]$/))return d;CKEDITOR.env.webkit&&-1<d.indexOf("\x3cdiv\x3e")&&(d=d.replace(/^(<div>(<br>|)<\/div>)(?!$|(<div>(<br>|)<\/div>))/g,"\x3cbr\x3e").replace(/^(<div>(<br>|)<\/div>){2}(?!$)/g,"\x3cdiv\x3e\x3c/div\x3e"),d.match(/<div>(<br>|)<\/div>/)&&(d="\x3cp\x3e"+d.replace(/(<div>(<br>|)<\/div>)+/g,function(a){return b(a.split("\x3c/div\x3e\x3cdiv\x3e").length+1)})+"\x3c/p\x3e"),d=d.replace(/<\/div><div>/g,"\x3cbr\x3e"),
-d=d.replace(/<\/?div>/g,""));CKEDITOR.env.gecko&&a.enterMode!=CKEDITOR.ENTER_BR&&(CKEDITOR.env.gecko&&(d=d.replace(/^<br><br>$/,"\x3cbr\x3e")),-1<d.indexOf("\x3cbr\x3e\x3cbr\x3e")&&(d="\x3cp\x3e"+d.replace(/(<br>){2,}/g,function(a){return b(a.length/4)})+"\x3c/p\x3e"));return k(a,d)}function a(a){function d(){var a={},c;for(c in CKEDITOR.dtd)"$"!=c.charAt(0)&&"div"!=c&&"span"!=c&&(a[c]=1);return a}var b={};return{get:function(e){return"plain-text"==e?b.plainText||(b.plainText=new CKEDITOR.filter(a,
-"br")):"semantic-content"==e?((e=b.semanticContent)||(e=new CKEDITOR.filter(a,{}),e.allow({$1:{elements:d(),attributes:!0,styles:!1,classes:!1}}),e=b.semanticContent=e),e):e?new CKEDITOR.filter(a,e):null}}}function m(a,d,b){d=CKEDITOR.htmlParser.fragment.fromHtml(d);var e=new CKEDITOR.htmlParser.basicWriter;b.applyTo(d,!0,!1,a.activeEnterMode);d.writeHtml(e);return e.getHtml()}function k(a,d){a.enterMode==CKEDITOR.ENTER_BR?d=d.replace(/(<\/p><p>)+/g,function(a){return CKEDITOR.tools.repeat("\x3cbr\x3e",
-a.length/7*2)}).replace(/<\/?p>/g,""):a.enterMode==CKEDITOR.ENTER_DIV&&(d=d.replace(/<(\/)?p>/g,"\x3c$1div\x3e"));return d}function l(a){a.data.preventDefault();a.data.$.dataTransfer.dropEffect="none"}function d(a){var d=CKEDITOR.plugins.clipboard;a.on("contentDom",function(){function e(d,f,g){f.select();b(a,{dataTransfer:g,method:"drop"},1);g.sourceEditor.fire("saveSnapshot");g.sourceEditor.editable().extractHtmlFromRange(d);g.sourceEditor.getSelection().selectRanges([d]);g.sourceEditor.fire("saveSnapshot")}
-function f(e,g){e.select();b(a,{dataTransfer:g,method:"drop"},1);d.resetDragDataTransfer()}function g(d,b,e){var f={$:d.data.$,target:d.data.getTarget()};b&&(f.dragRange=b);e&&(f.dropRange=e);!1===a.fire(d.name,f)&&d.data.preventDefault()}function h(a){a.type!=CKEDITOR.NODE_ELEMENT&&(a=a.getParent());return a.getChildCount()}var k=a.editable(),l=CKEDITOR.plugins.clipboard.getDropTarget(a),m=a.ui.space("top"),y=a.ui.space("bottom");d.preventDefaultDropOnElement(m);d.preventDefaultDropOnElement(y);
+d=d.replace(/<\/?div>/g,""));CKEDITOR.env.gecko&&a.enterMode!=CKEDITOR.ENTER_BR&&(CKEDITOR.env.gecko&&(d=d.replace(/^<br><br>$/,"\x3cbr\x3e")),-1<d.indexOf("\x3cbr\x3e\x3cbr\x3e")&&(d="\x3cp\x3e"+d.replace(/(<br>){2,}/g,function(a){return b(a.length/4)})+"\x3c/p\x3e"));return l(a,d)}function a(a){function d(){var a={},c;for(c in CKEDITOR.dtd)"$"!=c.charAt(0)&&"div"!=c&&"span"!=c&&(a[c]=1);return a}var b={};return{get:function(e){return"plain-text"==e?b.plainText||(b.plainText=new CKEDITOR.filter(a,
+"br")):"semantic-content"==e?((e=b.semanticContent)||(e=new CKEDITOR.filter(a,{}),e.allow({$1:{elements:d(),attributes:!0,styles:!1,classes:!1}}),e=b.semanticContent=e),e):e?new CKEDITOR.filter(a,e):null}}}function m(a,d,b){d=CKEDITOR.htmlParser.fragment.fromHtml(d);var e=new CKEDITOR.htmlParser.basicWriter;b.applyTo(d,!0,!1,a.activeEnterMode);d.writeHtml(e);return e.getHtml()}function l(a,d){a.enterMode==CKEDITOR.ENTER_BR?d=d.replace(/(<\/p><p>)+/g,function(a){return CKEDITOR.tools.repeat("\x3cbr\x3e",
+a.length/7*2)}).replace(/<\/?p>/g,""):a.enterMode==CKEDITOR.ENTER_DIV&&(d=d.replace(/<(\/)?p>/g,"\x3c$1div\x3e"));return d}function k(a){a.data.preventDefault();a.data.$.dataTransfer.dropEffect="none"}function d(a){var d=CKEDITOR.plugins.clipboard;a.on("contentDom",function(){function e(d,f,g){f.select();b(a,{dataTransfer:g,method:"drop"},1);g.sourceEditor.fire("saveSnapshot");g.sourceEditor.editable().extractHtmlFromRange(d);g.sourceEditor.getSelection().selectRanges([d]);g.sourceEditor.fire("saveSnapshot")}
+function f(e,g){e.select();b(a,{dataTransfer:g,method:"drop"},1);d.resetDragDataTransfer()}function g(d,b,e){var f={$:d.data.$,target:d.data.getTarget()};b&&(f.dragRange=b);e&&(f.dropRange=e);!1===a.fire(d.name,f)&&d.data.preventDefault()}function h(a){a.type!=CKEDITOR.NODE_ELEMENT&&(a=a.getParent());return a.getChildCount()}var k=a.editable(),l=CKEDITOR.plugins.clipboard.getDropTarget(a),m=a.ui.space("top"),z=a.ui.space("bottom");d.preventDefaultDropOnElement(m);d.preventDefaultDropOnElement(z);
 k.attachListener(l,"dragstart",g);k.attachListener(a,"dragstart",d.resetDragDataTransfer,d,null,1);k.attachListener(a,"dragstart",function(b){d.initDragDataTransfer(b,a)},null,null,2);k.attachListener(a,"dragstart",function(){var b=d.dragRange=a.getSelection().getRanges()[0];CKEDITOR.env.ie&&10>CKEDITOR.env.version&&(d.dragStartContainerChildCount=b?h(b.startContainer):null,d.dragEndContainerChildCount=b?h(b.endContainer):null)},null,null,100);k.attachListener(l,"dragend",g);k.attachListener(a,"dragend",
 d.initDragDataTransfer,d,null,1);k.attachListener(a,"dragend",d.resetDragDataTransfer,d,null,100);k.attachListener(l,"dragover",function(a){if(CKEDITOR.env.edge)a.data.preventDefault();else{var c=a.data.getTarget();c&&c.is&&c.is("html")?a.data.preventDefault():CKEDITOR.env.ie&&CKEDITOR.plugins.clipboard.isFileApiSupported&&a.data.$.dataTransfer.types.contains("Files")&&a.data.preventDefault()}});k.attachListener(l,"drop",function(b){if(!b.data.$.defaultPrevented&&(b.data.preventDefault(),!a.readOnly)){var e=
 b.data.getTarget();if(!e.isReadOnly()||e.type==CKEDITOR.NODE_ELEMENT&&e.is("html")){var e=d.getRangeAtDropPosition(b,a),f=d.dragRange;e&&g(b,f,e)}}},null,null,9999);k.attachListener(a,"drop",d.initDragDataTransfer,d,null,1);k.attachListener(a,"drop",function(b){if(b=b.data){var g=b.dropRange,h=b.dragRange,k=b.dataTransfer;k.getTransferType(a)==CKEDITOR.DATA_TRANSFER_INTERNAL?setTimeout(function(){d.internalDrop(h,g,k,a)},0):k.getTransferType(a)==CKEDITOR.DATA_TRANSFER_CROSS_EDITORS?e(h,g,k):f(g,k)}},
-null,null,9999)})}var e;CKEDITOR.plugins.add("clipboard",{requires:"dialog,notification,toolbar",init:function(c){var b,e=a(c);c.config.forcePasteAsPlainText?b="plain-text":c.config.pasteFilter?b=c.config.pasteFilter:!CKEDITOR.env.webkit||"pasteFilter"in c.config||(b="semantic-content");c.pasteFilter=e.get(b);h(c);d(c);CKEDITOR.dialog.add("paste",CKEDITOR.getUrl(this.path+"dialogs/paste.js"));if(CKEDITOR.env.gecko){var k=["image/png","image/jpeg","image/gif"],l;c.on("paste",function(a){var d=a.data,
-b=d.dataTransfer;if(!d.dataValue&&"paste"==d.method&&b&&1==b.getFilesCount()&&l!=b.id&&(b=b.getFile(0),-1!=CKEDITOR.tools.indexOf(k,b.type))){var e=new FileReader;e.addEventListener("load",function(){a.data.dataValue='\x3cimg src\x3d"'+e.result+'" /\x3e';c.fire("paste",a.data)},!1);e.addEventListener("abort",function(){c.fire("paste",a.data)},!1);e.addEventListener("error",function(){c.fire("paste",a.data)},!1);e.readAsDataURL(b);l=d.dataTransfer.id;a.stop()}},null,null,1)}c.on("paste",function(a){a.data.dataTransfer||
-(a.data.dataTransfer=new CKEDITOR.plugins.clipboard.dataTransfer);if(!a.data.dataValue){var d=a.data.dataTransfer,b=d.getData("text/html");if(b)a.data.dataValue=b,a.data.type="html";else if(b=d.getData("text/plain"))a.data.dataValue=c.editable().transformPlainTextToHtml(b),a.data.type="text"}},null,null,1);c.on("paste",function(a){var c=a.data.dataValue,d=CKEDITOR.dtd.$block;-1<c.indexOf("Apple-")&&(c=c.replace(/<span class="Apple-converted-space">&nbsp;<\/span>/gi," "),"html"!=a.data.type&&(c=c.replace(/<span class="Apple-tab-span"[^>]*>([^<]*)<\/span>/gi,
-function(a,c){return c.replace(/\t/g,"\x26nbsp;\x26nbsp; \x26nbsp;")})),-1<c.indexOf('\x3cbr class\x3d"Apple-interchange-newline"\x3e')&&(a.data.startsWithEOL=1,a.data.preSniffing="html",c=c.replace(/<br class="Apple-interchange-newline">/,"")),c=c.replace(/(<[^>]+) class="Apple-[^"]*"/gi,"$1"));if(c.match(/^<[^<]+cke_(editable|contents)/i)){var b,e,f=new CKEDITOR.dom.element("div");for(f.setHtml(c);1==f.getChildCount()&&(b=f.getFirst())&&b.type==CKEDITOR.NODE_ELEMENT&&(b.hasClass("cke_editable")||
-b.hasClass("cke_contents"));)f=e=b;e&&(c=e.getHtml().replace(/<br>$/i,""))}CKEDITOR.env.ie?c=c.replace(/^&nbsp;(?: |\r\n)?<(\w+)/g,function(c,b){return b.toLowerCase()in d?(a.data.preSniffing="html","\x3c"+b):c}):CKEDITOR.env.webkit?c=c.replace(/<\/(\w+)><div><br><\/div>$/,function(c,b){return b in d?(a.data.endsWithEOL=1,"\x3c/"+b+"\x3e"):c}):CKEDITOR.env.gecko&&(c=c.replace(/(\s)<br>$/,"$1"));a.data.dataValue=c},null,null,3);c.on("paste",function(a){a=a.data;var d=c._.nextPasteType||a.type,b=a.dataValue,
-h,k=c.config.clipboard_defaultContentType||"html",l=a.dataTransfer.getTransferType(c)==CKEDITOR.DATA_TRANSFER_EXTERNAL,n=!0===c.config.forcePasteAsPlainText;h="html"==d||"html"==a.preSniffing?"html":g(b);delete c._.nextPasteType;"htmlifiedtext"==h&&(b=f(c.config,b));if("text"==d&&"html"==h)b=m(c,b,e.get("plain-text"));else if(l&&c.pasteFilter&&!a.dontFilter||n)b=m(c,b,c.pasteFilter);a.startsWithEOL&&(b='\x3cbr data-cke-eol\x3d"1"\x3e'+b);a.endsWithEOL&&(b+='\x3cbr data-cke-eol\x3d"1"\x3e');"auto"==
-d&&(d="html"==h||"html"==k?"html":"text");a.type=d;a.dataValue=b;delete a.preSniffing;delete a.startsWithEOL;delete a.endsWithEOL},null,null,6);c.on("paste",function(a){a=a.data;a.dataValue&&(c.insertHtml(a.dataValue,a.type,a.range),setTimeout(function(){c.fire("afterPaste")},0))},null,null,1E3);c.on("pasteDialog",function(a){setTimeout(function(){c.openDialog("paste",a.data)},0)})}});CKEDITOR.plugins.clipboard={isCustomCopyCutSupported:CKEDITOR.env.ie&&16>CKEDITOR.env.version||CKEDITOR.env.iOS&&
-605>CKEDITOR.env.version?!1:!0,isCustomDataTypesSupported:!CKEDITOR.env.ie||16<=CKEDITOR.env.version,isFileApiSupported:!CKEDITOR.env.ie||9<CKEDITOR.env.version,mainPasteEvent:CKEDITOR.env.ie&&!CKEDITOR.env.edge?"beforepaste":"paste",addPasteButton:function(a,d,b){a.ui.addButton&&(a.ui.addButton(d,b),a._.pasteButtons||(a._.pasteButtons=[]),a._.pasteButtons.push(d))},canClipboardApiBeTrusted:function(a,d){return a.getTransferType(d)!=CKEDITOR.DATA_TRANSFER_EXTERNAL||CKEDITOR.env.chrome&&!a.isEmpty()||
-CKEDITOR.env.gecko&&(a.getData("text/html")||a.getFilesCount())||CKEDITOR.env.safari&&603<=CKEDITOR.env.version&&!CKEDITOR.env.iOS||CKEDITOR.env.iOS&&605<=CKEDITOR.env.version||CKEDITOR.env.edge&&16<=CKEDITOR.env.version?!0:!1},getDropTarget:function(a){var d=a.editable();return CKEDITOR.env.ie&&9>CKEDITOR.env.version||d.isInline()?d:a.document},fixSplitNodesAfterDrop:function(a,d,b,e){function f(a,c,b){var e=a;e.type==CKEDITOR.NODE_TEXT&&(e=a.getParent());if(e.equals(c)&&b!=c.getChildCount())return a=
-d.startContainer.getChild(d.startOffset-1),c=d.startContainer.getChild(d.startOffset),a&&a.type==CKEDITOR.NODE_TEXT&&c&&c.type==CKEDITOR.NODE_TEXT&&(b=a.getLength(),a.setText(a.getText()+c.getText()),c.remove(),d.setStart(a,b),d.collapse(!0)),!0}var g=d.startContainer;"number"==typeof e&&"number"==typeof b&&g.type==CKEDITOR.NODE_ELEMENT&&(f(a.startContainer,g,b)||f(a.endContainer,g,e))},isDropRangeAffectedByDragRange:function(a,d){var b=d.startContainer,e=d.endOffset;return a.endContainer.equals(b)&&
-a.endOffset<=e||a.startContainer.getParent().equals(b)&&a.startContainer.getIndex()<e||a.endContainer.getParent().equals(b)&&a.endContainer.getIndex()<e?!0:!1},internalDrop:function(a,d,e,f){var g=CKEDITOR.plugins.clipboard,h=f.editable(),k,l;f.fire("saveSnapshot");f.fire("lockSnapshot",{dontUpdate:1});CKEDITOR.env.ie&&10>CKEDITOR.env.version&&this.fixSplitNodesAfterDrop(a,d,g.dragStartContainerChildCount,g.dragEndContainerChildCount);(l=this.isDropRangeAffectedByDragRange(a,d))||(k=a.createBookmark(!1));
-g=d.clone().createBookmark(!1);l&&(k=a.createBookmark(!1));a=k.startNode;d=k.endNode;l=g.startNode;d&&a.getPosition(l)&CKEDITOR.POSITION_PRECEDING&&d.getPosition(l)&CKEDITOR.POSITION_FOLLOWING&&l.insertBefore(a);a=f.createRange();a.moveToBookmark(k);h.extractHtmlFromRange(a,1);d=f.createRange();g.startNode.getCommonAncestor(h)||(g=f.getSelection().createBookmarks()[0]);d.moveToBookmark(g);b(f,{dataTransfer:e,method:"drop",range:d},1);f.fire("unlockSnapshot")},getRangeAtDropPosition:function(a,d){var b=
-a.data.$,e=b.clientX,f=b.clientY,g=d.getSelection(!0).getRanges()[0],h=d.createRange();if(a.data.testRange)return a.data.testRange;if(document.caretRangeFromPoint&&d.document.$.caretRangeFromPoint(e,f))b=d.document.$.caretRangeFromPoint(e,f),h.setStart(CKEDITOR.dom.node(b.startContainer),b.startOffset),h.collapse(!0);else if(b.rangeParent)h.setStart(CKEDITOR.dom.node(b.rangeParent),b.rangeOffset),h.collapse(!0);else{if(CKEDITOR.env.ie&&8<CKEDITOR.env.version&&g&&d.editable().hasFocus)return g;if(document.body.createTextRange){d.focus();
-b=d.document.getBody().$.createTextRange();try{for(var k=!1,l=0;20>l&&!k;l++){if(!k)try{b.moveToPoint(e,f-l),k=!0}catch(m){}if(!k)try{b.moveToPoint(e,f+l),k=!0}catch(v){}}if(k){var x="cke-temp-"+(new Date).getTime();b.pasteHTML('\x3cspan id\x3d"'+x+'"\x3e​\x3c/span\x3e');var B=d.document.getById(x);h.moveToPosition(B,CKEDITOR.POSITION_BEFORE_START);B.remove()}else{var D=d.document.$.elementFromPoint(e,f),A=new CKEDITOR.dom.element(D),G;if(A.equals(d.editable())||"html"==A.getName())return g&&g.startContainer&&
-!g.startContainer.equals(d.editable())?g:null;G=A.getClientRect();e<G.left?h.setStartAt(A,CKEDITOR.POSITION_AFTER_START):h.setStartAt(A,CKEDITOR.POSITION_BEFORE_END);h.collapse(!0)}}catch(C){return null}}else return null}return h},initDragDataTransfer:function(a,d){var b=a.data.$?a.data.$.dataTransfer:null,e=new this.dataTransfer(b,d);"dragstart"===a.name&&e.storeId();b?this.dragData&&e.id==this.dragData.id?e=this.dragData:this.dragData=e:this.dragData?e=this.dragData:this.dragData=e;a.data.dataTransfer=
-e},resetDragDataTransfer:function(){this.dragData=null},initPasteDataTransfer:function(a,d){if(this.isCustomCopyCutSupported){if(a&&a.data&&a.data.$){var b=a.data.$.clipboardData,e=new this.dataTransfer(b,d);"copy"!==a.name&&"cut"!==a.name||e.storeId();this.copyCutData&&e.id==this.copyCutData.id?(e=this.copyCutData,e.$=b):this.copyCutData=e;return e}return new this.dataTransfer(null,d)}return new this.dataTransfer(CKEDITOR.env.edge&&a&&a.data.$&&a.data.$.clipboardData||null,d)},preventDefaultDropOnElement:function(a){a&&
-a.on("dragover",l)}};e=CKEDITOR.plugins.clipboard.isCustomDataTypesSupported?"cke/id":"Text";CKEDITOR.plugins.clipboard.dataTransfer=function(a,d){a&&(this.$=a);this._={metaRegExp:/^<meta.*?>/i,bodyRegExp:/<body(?:[\s\S]*?)>([\s\S]*)<\/body>/i,fragmentRegExp:/\x3c!--(?:Start|End)Fragment--\x3e/g,data:{},files:[],nativeHtmlCache:"",normalizeType:function(a){a=a.toLowerCase();return"text"==a||"text/plain"==a?"Text":"url"==a?"URL":a}};this._.fallbackDataTransfer=new CKEDITOR.plugins.clipboard.fallbackDataTransfer(this);
-this.id=this.getData(e);this.id||(this.id="Text"==e?"":"cke-"+CKEDITOR.tools.getUniqueId());d&&(this.sourceEditor=d,this.setData("text/html",d.getSelectedHtml(1)),"Text"==e||this.getData("text/plain")||this.setData("text/plain",d.getSelection().getSelectedText()))};CKEDITOR.DATA_TRANSFER_INTERNAL=1;CKEDITOR.DATA_TRANSFER_CROSS_EDITORS=2;CKEDITOR.DATA_TRANSFER_EXTERNAL=3;CKEDITOR.plugins.clipboard.dataTransfer.prototype={getData:function(a,d){a=this._.normalizeType(a);var b="text/html"==a&&d?this._.nativeHtmlCache:
-this._.data[a];if(void 0===b||null===b||""===b){if(this._.fallbackDataTransfer.isRequired())b=this._.fallbackDataTransfer.getData(a,d);else try{b=this.$.getData(a)||""}catch(e){b=""}"text/html"!=a||d||(b=this._stripHtml(b))}"Text"==a&&CKEDITOR.env.gecko&&this.getFilesCount()&&"file://"==b.substring(0,7)&&(b="");if("string"===typeof b)var f=b.indexOf("\x3c/html\x3e"),b=-1!==f?b.substring(0,f+7):b;return b},setData:function(a,d){a=this._.normalizeType(a);"text/html"==a?(this._.data[a]=this._stripHtml(d),
-this._.nativeHtmlCache=d):this._.data[a]=d;if(CKEDITOR.plugins.clipboard.isCustomDataTypesSupported||"URL"==a||"Text"==a)if("Text"==e&&"Text"==a&&(this.id=d),this._.fallbackDataTransfer.isRequired())this._.fallbackDataTransfer.setData(a,d);else try{this.$.setData(a,d)}catch(b){}},storeId:function(){"Text"!==e&&this.setData(e,this.id)},getTransferType:function(a){return this.sourceEditor?this.sourceEditor==a?CKEDITOR.DATA_TRANSFER_INTERNAL:CKEDITOR.DATA_TRANSFER_CROSS_EDITORS:CKEDITOR.DATA_TRANSFER_EXTERNAL},
-cacheData:function(){function a(c){c=d._.normalizeType(c);var b=d.getData(c);"text/html"==c&&(d._.nativeHtmlCache=d.getData(c,!0),b=d._stripHtml(b));b&&(d._.data[c]=b)}if(this.$){var d=this,b,e;if(CKEDITOR.plugins.clipboard.isCustomDataTypesSupported){if(this.$.types)for(b=0;b<this.$.types.length;b++)a(this.$.types[b])}else a("Text"),a("URL");e=this._getImageFromClipboard();if(this.$&&this.$.files||e){this._.files=[];if(this.$.files&&this.$.files.length)for(b=0;b<this.$.files.length;b++)this._.files.push(this.$.files[b]);
-0===this._.files.length&&e&&this._.files.push(e)}}},getFilesCount:function(){return this._.files.length?this._.files.length:this.$&&this.$.files&&this.$.files.length?this.$.files.length:this._getImageFromClipboard()?1:0},getFile:function(a){return this._.files.length?this._.files[a]:this.$&&this.$.files&&this.$.files.length?this.$.files[a]:0===a?this._getImageFromClipboard():void 0},isEmpty:function(){var a={},d;if(this.getFilesCount())return!1;CKEDITOR.tools.array.forEach(CKEDITOR.tools.object.keys(this._.data),
-function(d){a[d]=1});if(this.$)if(CKEDITOR.plugins.clipboard.isCustomDataTypesSupported){if(this.$.types)for(var b=0;b<this.$.types.length;b++)a[this.$.types[b]]=1}else a.Text=1,a.URL=1;"Text"!=e&&(a[e]=0);for(d in a)if(a[d]&&""!==this.getData(d))return!1;return!0},_getImageFromClipboard:function(){var a;try{if(this.$&&this.$.items&&this.$.items[0]&&(a=this.$.items[0].getAsFile())&&a.type)return a}catch(d){}},_stripHtml:function(a){if(a&&a.length){a=a.replace(this._.metaRegExp,"");var d=this._.bodyRegExp.exec(a);
-d&&d.length&&(a=d[1],a=a.replace(this._.fragmentRegExp,""))}return a}};CKEDITOR.plugins.clipboard.fallbackDataTransfer=function(a){this._dataTransfer=a;this._customDataFallbackType="text/html"};CKEDITOR.plugins.clipboard.fallbackDataTransfer._isCustomMimeTypeSupported=null;CKEDITOR.plugins.clipboard.fallbackDataTransfer._customTypes=[];CKEDITOR.plugins.clipboard.fallbackDataTransfer.prototype={isRequired:function(){var a=CKEDITOR.plugins.clipboard.fallbackDataTransfer,d=this._dataTransfer.$;if(null===
-a._isCustomMimeTypeSupported)if(d){a._isCustomMimeTypeSupported=!1;if(CKEDITOR.env.edge&&17<=CKEDITOR.env.version)return!0;try{d.setData("cke/mimetypetest","cke test value"),a._isCustomMimeTypeSupported="cke test value"===d.getData("cke/mimetypetest"),d.clearData("cke/mimetypetest")}catch(b){}}else return!1;return!a._isCustomMimeTypeSupported},getData:function(a,d){var b=this._getData(this._customDataFallbackType,!0);if(d)return b;var b=this._extractDataComment(b),e=null,e=a===this._customDataFallbackType?
-b.content:b.data&&b.data[a]?b.data[a]:this._getData(a,!0);return null!==e?e:""},setData:function(a,d){var b=a===this._customDataFallbackType;b&&(d=this._applyDataComment(d,this._getFallbackTypeData()));var e=d,f=this._dataTransfer.$;try{f.setData(a,e),b&&(this._dataTransfer._.nativeHtmlCache=e)}catch(g){if(this._isUnsupportedMimeTypeError(g)){b=CKEDITOR.plugins.clipboard.fallbackDataTransfer;-1===CKEDITOR.tools.indexOf(b._customTypes,a)&&b._customTypes.push(a);var b=this._getFallbackTypeContent(),
-h=this._getFallbackTypeData();h[a]=e;try{e=this._applyDataComment(b,h),f.setData(this._customDataFallbackType,e),this._dataTransfer._.nativeHtmlCache=e}catch(k){e=""}}}return e},_getData:function(a,d){var b=this._dataTransfer._.data;if(!d&&b[a])return b[a];try{return this._dataTransfer.$.getData(a)}catch(e){return null}},_getFallbackTypeContent:function(){var a=this._dataTransfer._.data[this._customDataFallbackType];a||(a=this._extractDataComment(this._getData(this._customDataFallbackType,!0)).content);
-return a},_getFallbackTypeData:function(){var a=CKEDITOR.plugins.clipboard.fallbackDataTransfer._customTypes,d=this._extractDataComment(this._getData(this._customDataFallbackType,!0)).data||{},b=this._dataTransfer._.data;CKEDITOR.tools.array.forEach(a,function(a){void 0!==b[a]?d[a]=b[a]:void 0!==d[a]&&(d[a]=d[a])},this);return d},_isUnsupportedMimeTypeError:function(a){return a.message&&-1!==a.message.search(/element not found/gi)},_extractDataComment:function(a){var d={data:null,content:a||""};if(a&&
-16<a.length){var b;(b=/\x3c!--cke-data:(.*?)--\x3e/g.exec(a))&&b[1]&&(d.data=JSON.parse(decodeURIComponent(b[1])),d.content=a.replace(b[0],""))}return d},_applyDataComment:function(a,d){var b="";d&&CKEDITOR.tools.object.keys(d).length&&(b="\x3c!--cke-data:"+encodeURIComponent(JSON.stringify(d))+"--\x3e");return b+(a&&a.length?a:"")}}})();CKEDITOR.config.clipboard_notificationDuration=1E4;(function(){CKEDITOR.plugins.add("panel",{beforeInit:function(b){b.ui.addHandler(CKEDITOR.UI_PANEL,CKEDITOR.ui.panel.handler)}});
-CKEDITOR.UI_PANEL="panel";CKEDITOR.ui.panel=function(b,a){a&&CKEDITOR.tools.extend(this,a);CKEDITOR.tools.extend(this,{className:"",css:[]});this.id=CKEDITOR.tools.getNextId();this.document=b;this.isFramed=this.forceIFrame||this.css.length;this._={blocks:{}}};CKEDITOR.ui.panel.handler={create:function(b){return new CKEDITOR.ui.panel(b)}};var b=CKEDITOR.addTemplate("panel",'\x3cdiv lang\x3d"{langCode}" id\x3d"{id}" dir\x3d{dir} class\x3d"cke cke_reset_all {editorId} cke_panel cke_panel {cls} cke_{dir}" style\x3d"z-index:{z-index}" role\x3d"presentation"\x3e{frame}\x3c/div\x3e'),
-h=CKEDITOR.addTemplate("panel-frame",'\x3ciframe id\x3d"{id}" class\x3d"cke_panel_frame" role\x3d"presentation" frameborder\x3d"0" src\x3d"{src}"\x3e\x3c/iframe\x3e'),g=CKEDITOR.addTemplate("panel-frame-inner",'\x3c!DOCTYPE html\x3e\x3chtml class\x3d"cke_panel_container {env}" dir\x3d"{dir}" lang\x3d"{langCode}"\x3e\x3chead\x3e{css}\x3c/head\x3e\x3cbody class\x3d"cke_{dir}" style\x3d"margin:0;padding:0" onload\x3d"{onload}"\x3e\x3c/body\x3e\x3c/html\x3e');CKEDITOR.ui.panel.prototype={render:function(f,
-a){var m={editorId:f.id,id:this.id,langCode:f.langCode,dir:f.lang.dir,cls:this.className,frame:"",env:CKEDITOR.env.cssClass,"z-index":f.config.baseFloatZIndex+1};this.getHolderElement=function(){var a=this._.holder;if(!a){if(this.isFramed){var a=this.document.getById(this.id+"_frame"),d=a.getParent(),a=a.getFrameDocument();CKEDITOR.env.iOS&&d.setStyles({overflow:"scroll","-webkit-overflow-scrolling":"touch"});d=CKEDITOR.tools.addFunction(CKEDITOR.tools.bind(function(){this.isLoaded=!0;if(this.onLoad)this.onLoad()},
-this));a.write(g.output(CKEDITOR.tools.extend({css:CKEDITOR.tools.buildStyleHtml(this.css),onload:"window.parent.CKEDITOR.tools.callFunction("+d+");"},m)));a.getWindow().$.CKEDITOR=CKEDITOR;a.on("keydown",function(a){var d=a.data.getKeystroke(),b=this.document.getById(this.id).getAttribute("dir");if("input"!==a.data.getTarget().getName()||37!==d&&39!==d)this._.onKeyDown&&!1===this._.onKeyDown(d)?"input"===a.data.getTarget().getName()&&32===d||a.data.preventDefault():(27==d||d==("rtl"==b?39:37))&&
-this.onEscape&&!1===this.onEscape(d)&&a.data.preventDefault()},this);a=a.getBody();a.unselectable();CKEDITOR.env.air&&CKEDITOR.tools.callFunction(d)}else a=this.document.getById(this.id);this._.holder=a}return a};if(this.isFramed){var k=CKEDITOR.env.air?"javascript:void(0)":CKEDITOR.env.ie&&!CKEDITOR.env.edge?"javascript:void(function(){"+encodeURIComponent("document.open();("+CKEDITOR.tools.fixDomain+")();document.close();")+"}())":"";m.frame=h.output({id:this.id+"_frame",src:k})}k=b.output(m);a&&
-a.push(k);return k},addBlock:function(b,a){a=this._.blocks[b]=a instanceof CKEDITOR.ui.panel.block?a:new CKEDITOR.ui.panel.block(this.getHolderElement(),a);this._.currentBlock||this.showBlock(b);return a},getBlock:function(b){return this._.blocks[b]},showBlock:function(b){b=this._.blocks[b];var a=this._.currentBlock,g=!this.forceIFrame||CKEDITOR.env.ie?this._.holder:this.document.getById(this.id+"_frame");a&&a.hide();this._.currentBlock=b;CKEDITOR.fire("ariaWidget",g);b._.focusIndex=-1;this._.onKeyDown=
-b.onKeyDown&&CKEDITOR.tools.bind(b.onKeyDown,b);b.show();return b},destroy:function(){this.element&&this.element.remove()}};CKEDITOR.ui.panel.block=CKEDITOR.tools.createClass({$:function(b,a){this.element=b.append(b.getDocument().createElement("div",{attributes:{tabindex:-1,"class":"cke_panel_block"},styles:{display:"none"}}));a&&CKEDITOR.tools.extend(this,a);this.element.setAttributes({role:this.attributes.role||"presentation","aria-label":this.attributes["aria-label"],title:this.attributes.title||
-this.attributes["aria-label"]});this.keys={};this._.focusIndex=-1;this.element.disableContextMenu()},_:{markItem:function(b){-1!=b&&(b=this._.getItems().getItem(this._.focusIndex=b),CKEDITOR.env.webkit&&b.getDocument().getWindow().focus(),b.focus(),this.onMark&&this.onMark(b))},markFirstDisplayed:function(b){for(var a=function(a){return a.type==CKEDITOR.NODE_ELEMENT&&"none"==a.getStyle("display")},g=this._.getItems(),h,l,d=g.count()-1;0<=d;d--)if(h=g.getItem(d),h.getAscendant(a)||(l=h,this._.focusIndex=
-d),"true"==h.getAttribute("aria-selected")){l=h;this._.focusIndex=d;break}l&&(b&&b(),CKEDITOR.env.webkit&&l.getDocument().getWindow().focus(),l.focus(),this.onMark&&this.onMark(l))},getItems:function(){return this.element.find("a,input")}},proto:{show:function(){this.element.setStyle("display","")},hide:function(){this.onHide&&!0===this.onHide.call(this)||this.element.setStyle("display","none")},onKeyDown:function(b,a){var g=this.keys[b];switch(g){case "next":for(var h=this._.focusIndex,g=this._.getItems(),
-l;l=g.getItem(++h);)if(l.getAttribute("_cke_focus")&&l.$.offsetWidth){this._.focusIndex=h;l.focus(!0);break}return l||a?!1:(this._.focusIndex=-1,this.onKeyDown(b,1));case "prev":h=this._.focusIndex;for(g=this._.getItems();0<h&&(l=g.getItem(--h));){if(l.getAttribute("_cke_focus")&&l.$.offsetWidth){this._.focusIndex=h;l.focus(!0);break}l=null}return l||a?!1:(this._.focusIndex=g.count(),this.onKeyDown(b,1));case "click":case "mouseup":return h=this._.focusIndex,(l=0<=h&&this._.getItems().getItem(h))&&
-l.fireEventHandler(g,{button:CKEDITOR.tools.normalizeMouseButton(CKEDITOR.MOUSE_BUTTON_LEFT,!0)}),!1}return!0}}})})();CKEDITOR.plugins.add("floatpanel",{requires:"panel"});(function(){function b(b,f,a,m,k){k=CKEDITOR.tools.genKey(f.getUniqueId(),a.getUniqueId(),b.lang.dir,b.uiColor||"",m.css||"",k||"");var l=h[k];l||(l=h[k]=new CKEDITOR.ui.panel(f,m),l.element=a.append(CKEDITOR.dom.element.createFromHtml(l.render(b),f)),l.element.setStyles({display:"none",position:"absolute"}));return l}var h={};
-CKEDITOR.ui.floatPanel=CKEDITOR.tools.createClass({$:function(g,f,a,h){function k(){c.hide()}a.forceIFrame=1;a.toolbarRelated&&g.elementMode==CKEDITOR.ELEMENT_MODE_INLINE&&(f=CKEDITOR.document.getById("cke_"+g.name));var l=f.getDocument();h=b(g,l,f,a,h||0);var d=h.element,e=d.getFirst(),c=this;d.disableContextMenu();this.element=d;this._={editor:g,panel:h,parentElement:f,definition:a,document:l,iframe:e,children:[],dir:g.lang.dir,showBlockParams:null,markFirst:void 0!==a.markFirst?a.markFirst:!0};
-g.on("mode",k);g.on("resize",k);l.getWindow().on("resize",function(){this.reposition()},this)},proto:{addBlock:function(b,f){return this._.panel.addBlock(b,f)},addListBlock:function(b,f){return this._.panel.addListBlock(b,f)},getBlock:function(b){return this._.panel.getBlock(b)},showBlock:function(b,f,a,h,k,l){var d=this._.panel,e=d.showBlock(b);this._.showBlockParams=[].slice.call(arguments);this.allowBlur(!1);var c=this._.editor.editable();this._.returnFocus=c.hasFocus?c:new CKEDITOR.dom.element(CKEDITOR.document.$.activeElement);
-this._.hideTimeout=0;var n=this.element,c=this._.iframe,c=CKEDITOR.env.ie&&!CKEDITOR.env.edge?c:new CKEDITOR.dom.window(c.$.contentWindow),w=n.getDocument(),z=this._.parentElement.getPositionedAncestor(),r=f.getDocumentPosition(w),w=z?z.getDocumentPosition(w):{x:0,y:0},p="rtl"==this._.dir,q=r.x+(h||0)-w.x,u=r.y+(k||0)-w.y;!p||1!=a&&4!=a?p||2!=a&&3!=a||(q+=f.$.offsetWidth-1):q+=f.$.offsetWidth;if(3==a||4==a)u+=f.$.offsetHeight-1;this._.panel._.offsetParentId=f.getId();n.setStyles({top:u+"px",left:0,
+null,null,9999)})}var e;CKEDITOR.plugins.add("clipboard",{requires:"dialog,notification,toolbar",init:function(c){function b(a){if(!a||r===a.id)return!1;var c=a.getTypes(),c=1===c.length&&"Files"===c[0];a=1===a.getFilesCount();return c&&a}var e,k=a(c);c.config.forcePasteAsPlainText?e="plain-text":c.config.pasteFilter?e=c.config.pasteFilter:!CKEDITOR.env.webkit||"pasteFilter"in c.config||(e="semantic-content");c.pasteFilter=k.get(e);h(c);d(c);CKEDITOR.dialog.add("paste",CKEDITOR.getUrl(this.path+"dialogs/paste.js"));
+if(CKEDITOR.env.gecko){var l=["image/png","image/jpeg","image/gif"],r;c.on("paste",function(a){var d=a.data,e=d.dataTransfer;if(!d.dataValue&&"paste"==d.method&&b(e)&&(e=e.getFile(0),-1!=CKEDITOR.tools.indexOf(l,e.type))){var f=new FileReader;f.addEventListener("load",function(){a.data.dataValue='\x3cimg src\x3d"'+f.result+'" /\x3e';c.fire("paste",a.data)},!1);f.addEventListener("abort",function(){c.fire("paste",a.data)},!1);f.addEventListener("error",function(){c.fire("paste",a.data)},!1);f.readAsDataURL(e);
+r=d.dataTransfer.id;a.stop()}},null,null,1)}c.on("paste",function(a){a.data.dataTransfer||(a.data.dataTransfer=new CKEDITOR.plugins.clipboard.dataTransfer);if(!a.data.dataValue){var d=a.data.dataTransfer,b=d.getData("text/html");if(b)a.data.dataValue=b,a.data.type="html";else if(b=d.getData("text/plain"))a.data.dataValue=c.editable().transformPlainTextToHtml(b),a.data.type="text"}},null,null,1);c.on("paste",function(a){var c=a.data.dataValue,d=CKEDITOR.dtd.$block;-1<c.indexOf("Apple-")&&(c=c.replace(/<span class="Apple-converted-space">&nbsp;<\/span>/gi,
+" "),"html"!=a.data.type&&(c=c.replace(/<span class="Apple-tab-span"[^>]*>([^<]*)<\/span>/gi,function(a,c){return c.replace(/\t/g,"\x26nbsp;\x26nbsp; \x26nbsp;")})),-1<c.indexOf('\x3cbr class\x3d"Apple-interchange-newline"\x3e')&&(a.data.startsWithEOL=1,a.data.preSniffing="html",c=c.replace(/<br class="Apple-interchange-newline">/,"")),c=c.replace(/(<[^>]+) class="Apple-[^"]*"/gi,"$1"));if(c.match(/^<[^<]+cke_(editable|contents)/i)){var b,e,f=new CKEDITOR.dom.element("div");for(f.setHtml(c);1==f.getChildCount()&&
+(b=f.getFirst())&&b.type==CKEDITOR.NODE_ELEMENT&&(b.hasClass("cke_editable")||b.hasClass("cke_contents"));)f=e=b;e&&(c=e.getHtml().replace(/<br>$/i,""))}CKEDITOR.env.ie?c=c.replace(/^&nbsp;(?: |\r\n)?<(\w+)/g,function(c,b){return b.toLowerCase()in d?(a.data.preSniffing="html","\x3c"+b):c}):CKEDITOR.env.webkit?c=c.replace(/<\/(\w+)><div><br><\/div>$/,function(c,b){return b in d?(a.data.endsWithEOL=1,"\x3c/"+b+"\x3e"):c}):CKEDITOR.env.gecko&&(c=c.replace(/(\s)<br>$/,"$1"));a.data.dataValue=c},null,
+null,3);c.on("paste",function(a){a=a.data;var d=c._.nextPasteType||a.type,b=a.dataValue,e,h=c.config.clipboard_defaultContentType||"html",l=a.dataTransfer.getTransferType(c)==CKEDITOR.DATA_TRANSFER_EXTERNAL,n=!0===c.config.forcePasteAsPlainText;e="html"==d||"html"==a.preSniffing?"html":g(b);delete c._.nextPasteType;"htmlifiedtext"==e&&(b=f(c.config,b));if("text"==d&&"html"==e)b=m(c,b,k.get("plain-text"));else if(l&&c.pasteFilter&&!a.dontFilter||n)b=m(c,b,c.pasteFilter);a.startsWithEOL&&(b='\x3cbr data-cke-eol\x3d"1"\x3e'+
+b);a.endsWithEOL&&(b+='\x3cbr data-cke-eol\x3d"1"\x3e');"auto"==d&&(d="html"==e||"html"==h?"html":"text");a.type=d;a.dataValue=b;delete a.preSniffing;delete a.startsWithEOL;delete a.endsWithEOL},null,null,6);c.on("paste",function(a){a=a.data;a.dataValue&&(c.insertHtml(a.dataValue,a.type,a.range),setTimeout(function(){c.fire("afterPaste")},0))},null,null,1E3);c.on("pasteDialog",function(a){setTimeout(function(){c.openDialog("paste",a.data)},0)})}});CKEDITOR.plugins.clipboard={isCustomCopyCutSupported:CKEDITOR.env.ie&&
+16>CKEDITOR.env.version||CKEDITOR.env.iOS&&605>CKEDITOR.env.version?!1:!0,isCustomDataTypesSupported:!CKEDITOR.env.ie||16<=CKEDITOR.env.version,isFileApiSupported:!CKEDITOR.env.ie||9<CKEDITOR.env.version,mainPasteEvent:CKEDITOR.env.ie&&!CKEDITOR.env.edge?"beforepaste":"paste",addPasteButton:function(a,d,b){a.ui.addButton&&(a.ui.addButton(d,b),a._.pasteButtons||(a._.pasteButtons=[]),a._.pasteButtons.push(d))},canClipboardApiBeTrusted:function(a,d){return a.getTransferType(d)!=CKEDITOR.DATA_TRANSFER_EXTERNAL||
+CKEDITOR.env.chrome&&!a.isEmpty()||CKEDITOR.env.gecko&&(a.getData("text/html")||a.getFilesCount())||CKEDITOR.env.safari&&603<=CKEDITOR.env.version&&!CKEDITOR.env.iOS||CKEDITOR.env.iOS&&605<=CKEDITOR.env.version||CKEDITOR.env.edge&&16<=CKEDITOR.env.version?!0:!1},getDropTarget:function(a){var d=a.editable();return CKEDITOR.env.ie&&9>CKEDITOR.env.version||d.isInline()?d:a.document},fixSplitNodesAfterDrop:function(a,d,b,e){function f(a,c,b){var e=a;e.type==CKEDITOR.NODE_TEXT&&(e=a.getParent());if(e.equals(c)&&
+b!=c.getChildCount())return a=d.startContainer.getChild(d.startOffset-1),c=d.startContainer.getChild(d.startOffset),a&&a.type==CKEDITOR.NODE_TEXT&&c&&c.type==CKEDITOR.NODE_TEXT&&(b=a.getLength(),a.setText(a.getText()+c.getText()),c.remove(),d.setStart(a,b),d.collapse(!0)),!0}var g=d.startContainer;"number"==typeof e&&"number"==typeof b&&g.type==CKEDITOR.NODE_ELEMENT&&(f(a.startContainer,g,b)||f(a.endContainer,g,e))},isDropRangeAffectedByDragRange:function(a,d){var b=d.startContainer,e=d.endOffset;
+return a.endContainer.equals(b)&&a.endOffset<=e||a.startContainer.getParent().equals(b)&&a.startContainer.getIndex()<e||a.endContainer.getParent().equals(b)&&a.endContainer.getIndex()<e?!0:!1},internalDrop:function(a,d,e,f){var g=CKEDITOR.plugins.clipboard,h=f.editable(),k,l;f.fire("saveSnapshot");f.fire("lockSnapshot",{dontUpdate:1});CKEDITOR.env.ie&&10>CKEDITOR.env.version&&this.fixSplitNodesAfterDrop(a,d,g.dragStartContainerChildCount,g.dragEndContainerChildCount);(l=this.isDropRangeAffectedByDragRange(a,
+d))||(k=a.createBookmark(!1));g=d.clone().createBookmark(!1);l&&(k=a.createBookmark(!1));a=k.startNode;d=k.endNode;l=g.startNode;d&&a.getPosition(l)&CKEDITOR.POSITION_PRECEDING&&d.getPosition(l)&CKEDITOR.POSITION_FOLLOWING&&l.insertBefore(a);a=f.createRange();a.moveToBookmark(k);h.extractHtmlFromRange(a,1);d=f.createRange();g.startNode.getCommonAncestor(h)||(g=f.getSelection().createBookmarks()[0]);d.moveToBookmark(g);b(f,{dataTransfer:e,method:"drop",range:d},1);f.fire("unlockSnapshot")},getRangeAtDropPosition:function(a,
+d){var b=a.data.$,e=b.clientX,f=b.clientY,g=d.getSelection(!0).getRanges()[0],h=d.createRange();if(a.data.testRange)return a.data.testRange;if(document.caretRangeFromPoint&&d.document.$.caretRangeFromPoint(e,f))b=d.document.$.caretRangeFromPoint(e,f),h.setStart(CKEDITOR.dom.node(b.startContainer),b.startOffset),h.collapse(!0);else if(b.rangeParent)h.setStart(CKEDITOR.dom.node(b.rangeParent),b.rangeOffset),h.collapse(!0);else{if(CKEDITOR.env.ie&&8<CKEDITOR.env.version&&g&&d.editable().hasFocus)return g;
+if(document.body.createTextRange){d.focus();b=d.document.getBody().$.createTextRange();try{for(var k=!1,l=0;20>l&&!k;l++){if(!k)try{b.moveToPoint(e,f-l),k=!0}catch(m){}if(!k)try{b.moveToPoint(e,f+l),k=!0}catch(y){}}if(k){var u="cke-temp-"+(new Date).getTime();b.pasteHTML('\x3cspan id\x3d"'+u+'"\x3e​\x3c/span\x3e');var C=d.document.getById(u);h.moveToPosition(C,CKEDITOR.POSITION_BEFORE_START);C.remove()}else{var A=d.document.$.elementFromPoint(e,f),B=new CKEDITOR.dom.element(A),G;if(B.equals(d.editable())||
+"html"==B.getName())return g&&g.startContainer&&!g.startContainer.equals(d.editable())?g:null;G=B.getClientRect();e<G.left?h.setStartAt(B,CKEDITOR.POSITION_AFTER_START):h.setStartAt(B,CKEDITOR.POSITION_BEFORE_END);h.collapse(!0)}}catch(F){return null}}else return null}return h},initDragDataTransfer:function(a,d){var b=a.data.$?a.data.$.dataTransfer:null,e=new this.dataTransfer(b,d);"dragstart"===a.name&&e.storeId();b?this.dragData&&e.id==this.dragData.id?e=this.dragData:this.dragData=e:this.dragData?
+e=this.dragData:this.dragData=e;a.data.dataTransfer=e},resetDragDataTransfer:function(){this.dragData=null},initPasteDataTransfer:function(a,d){if(this.isCustomCopyCutSupported){if(a&&a.data&&a.data.$){var b=a.data.$.clipboardData,e=new this.dataTransfer(b,d);"copy"!==a.name&&"cut"!==a.name||e.storeId();this.copyCutData&&e.id==this.copyCutData.id?(e=this.copyCutData,e.$=b):this.copyCutData=e;return e}return new this.dataTransfer(null,d)}return new this.dataTransfer(CKEDITOR.env.edge&&a&&a.data.$&&
+a.data.$.clipboardData||null,d)},preventDefaultDropOnElement:function(a){a&&a.on("dragover",k)}};e=CKEDITOR.plugins.clipboard.isCustomDataTypesSupported?"cke/id":"Text";CKEDITOR.plugins.clipboard.dataTransfer=function(a,d){a&&(this.$=a);this._={metaRegExp:/^<meta.*?>/i,bodyRegExp:/<body(?:[\s\S]*?)>([\s\S]*)<\/body>/i,fragmentRegExp:/\s*\x3c!--StartFragment--\x3e|\x3c!--EndFragment--\x3e\s*/g,data:{},files:[],nativeHtmlCache:"",normalizeType:function(a){a=a.toLowerCase();return"text"==a||"text/plain"==
+a?"Text":"url"==a?"URL":a}};this._.fallbackDataTransfer=new CKEDITOR.plugins.clipboard.fallbackDataTransfer(this);this.id=this.getData(e);this.id||(this.id="Text"==e?"":"cke-"+CKEDITOR.tools.getUniqueId());d&&(this.sourceEditor=d,this.setData("text/html",d.getSelectedHtml(1)),"Text"==e||this.getData("text/plain")||this.setData("text/plain",d.getSelection().getSelectedText()))};CKEDITOR.DATA_TRANSFER_INTERNAL=1;CKEDITOR.DATA_TRANSFER_CROSS_EDITORS=2;CKEDITOR.DATA_TRANSFER_EXTERNAL=3;CKEDITOR.plugins.clipboard.dataTransfer.prototype=
+{getData:function(a,d){a=this._.normalizeType(a);var b="text/html"==a&&d?this._.nativeHtmlCache:this._.data[a];if(void 0===b||null===b||""===b){if(this._.fallbackDataTransfer.isRequired())b=this._.fallbackDataTransfer.getData(a,d);else try{b=this.$.getData(a)||""}catch(e){b=""}"text/html"!=a||d||(b=this._stripHtml(b))}"Text"==a&&CKEDITOR.env.gecko&&this.getFilesCount()&&"file://"==b.substring(0,7)&&(b="");if("string"===typeof b)var f=b.indexOf("\x3c/html\x3e"),b=-1!==f?b.substring(0,f+7):b;return b},
+setData:function(a,d){a=this._.normalizeType(a);"text/html"==a?(this._.data[a]=this._stripHtml(d),this._.nativeHtmlCache=d):this._.data[a]=d;if(CKEDITOR.plugins.clipboard.isCustomDataTypesSupported||"URL"==a||"Text"==a)if("Text"==e&&"Text"==a&&(this.id=d),this._.fallbackDataTransfer.isRequired())this._.fallbackDataTransfer.setData(a,d);else try{this.$.setData(a,d)}catch(b){}},storeId:function(){"Text"!==e&&this.setData(e,this.id)},getTransferType:function(a){return this.sourceEditor?this.sourceEditor==
+a?CKEDITOR.DATA_TRANSFER_INTERNAL:CKEDITOR.DATA_TRANSFER_CROSS_EDITORS:CKEDITOR.DATA_TRANSFER_EXTERNAL},cacheData:function(){function a(c){c=d._.normalizeType(c);var b=d.getData(c);"text/html"==c&&(d._.nativeHtmlCache=d.getData(c,!0),b=d._stripHtml(b));b&&(d._.data[c]=b)}if(this.$){var d=this,b,e;if(CKEDITOR.plugins.clipboard.isCustomDataTypesSupported){if(this.$.types)for(b=0;b<this.$.types.length;b++)a(this.$.types[b])}else a("Text"),a("URL");e=this._getImageFromClipboard();if(this.$&&this.$.files||
+e){this._.files=[];if(this.$.files&&this.$.files.length)for(b=0;b<this.$.files.length;b++)this._.files.push(this.$.files[b]);0===this._.files.length&&e&&this._.files.push(e)}}},getFilesCount:function(){return this._.files.length?this._.files.length:this.$&&this.$.files&&this.$.files.length?this.$.files.length:this._getImageFromClipboard()?1:0},getFile:function(a){return this._.files.length?this._.files[a]:this.$&&this.$.files&&this.$.files.length?this.$.files[a]:0===a?this._getImageFromClipboard():
+void 0},isEmpty:function(){var a={},d;if(this.getFilesCount())return!1;CKEDITOR.tools.array.forEach(CKEDITOR.tools.object.keys(this._.data),function(d){a[d]=1});if(this.$)if(CKEDITOR.plugins.clipboard.isCustomDataTypesSupported){if(this.$.types)for(var b=0;b<this.$.types.length;b++)a[this.$.types[b]]=1}else a.Text=1,a.URL=1;"Text"!=e&&(a[e]=0);for(d in a)if(a[d]&&""!==this.getData(d))return!1;return!0},getTypes:function(){return this.$&&this.$.types?[].slice.call(this.$.types):[]},_getImageFromClipboard:function(){var a;
+try{if(this.$&&this.$.items&&this.$.items[0]&&(a=this.$.items[0].getAsFile())&&a.type)return a}catch(d){}},_stripHtml:function(a){if(a&&a.length){a=a.replace(this._.metaRegExp,"");var d=this._.bodyRegExp.exec(a);d&&d.length&&(a=d[1],a=a.replace(this._.fragmentRegExp,""))}return a}};CKEDITOR.plugins.clipboard.fallbackDataTransfer=function(a){this._dataTransfer=a;this._customDataFallbackType="text/html"};CKEDITOR.plugins.clipboard.fallbackDataTransfer._isCustomMimeTypeSupported=null;CKEDITOR.plugins.clipboard.fallbackDataTransfer._customTypes=
+[];CKEDITOR.plugins.clipboard.fallbackDataTransfer.prototype={isRequired:function(){var a=CKEDITOR.plugins.clipboard.fallbackDataTransfer,d=this._dataTransfer.$;if(null===a._isCustomMimeTypeSupported)if(d){a._isCustomMimeTypeSupported=!1;if(CKEDITOR.env.edge&&17<=CKEDITOR.env.version)return!0;try{d.setData("cke/mimetypetest","cke test value"),a._isCustomMimeTypeSupported="cke test value"===d.getData("cke/mimetypetest"),d.clearData("cke/mimetypetest")}catch(b){}}else return!1;return!a._isCustomMimeTypeSupported},
+getData:function(a,d){var b=this._getData(this._customDataFallbackType,!0);if(d)return b;var b=this._extractDataComment(b),e=null,e=a===this._customDataFallbackType?b.content:b.data&&b.data[a]?b.data[a]:this._getData(a,!0);return null!==e?e:""},setData:function(a,d){var b=a===this._customDataFallbackType;b&&(d=this._applyDataComment(d,this._getFallbackTypeData()));var e=d,f=this._dataTransfer.$;try{f.setData(a,e),b&&(this._dataTransfer._.nativeHtmlCache=e)}catch(g){if(this._isUnsupportedMimeTypeError(g)){b=
+CKEDITOR.plugins.clipboard.fallbackDataTransfer;-1===CKEDITOR.tools.indexOf(b._customTypes,a)&&b._customTypes.push(a);var b=this._getFallbackTypeContent(),h=this._getFallbackTypeData();h[a]=e;try{e=this._applyDataComment(b,h),f.setData(this._customDataFallbackType,e),this._dataTransfer._.nativeHtmlCache=e}catch(k){e=""}}}return e},_getData:function(a,d){var b=this._dataTransfer._.data;if(!d&&b[a])return b[a];try{return this._dataTransfer.$.getData(a)}catch(e){return null}},_getFallbackTypeContent:function(){var a=
+this._dataTransfer._.data[this._customDataFallbackType];a||(a=this._extractDataComment(this._getData(this._customDataFallbackType,!0)).content);return a},_getFallbackTypeData:function(){var a=CKEDITOR.plugins.clipboard.fallbackDataTransfer._customTypes,d=this._extractDataComment(this._getData(this._customDataFallbackType,!0)).data||{},b=this._dataTransfer._.data;CKEDITOR.tools.array.forEach(a,function(a){void 0!==b[a]?d[a]=b[a]:void 0!==d[a]&&(d[a]=d[a])},this);return d},_isUnsupportedMimeTypeError:function(a){return a.message&&
+-1!==a.message.search(/element not found/gi)},_extractDataComment:function(a){var d={data:null,content:a||""};if(a&&16<a.length){var b;(b=/\x3c!--cke-data:(.*?)--\x3e/g.exec(a))&&b[1]&&(d.data=JSON.parse(decodeURIComponent(b[1])),d.content=a.replace(b[0],""))}return d},_applyDataComment:function(a,d){var b="";d&&CKEDITOR.tools.object.keys(d).length&&(b="\x3c!--cke-data:"+encodeURIComponent(JSON.stringify(d))+"--\x3e");return b+(a&&a.length?a:"")}}})();CKEDITOR.config.clipboard_notificationDuration=
+1E4;(function(){CKEDITOR.plugins.add("panel",{beforeInit:function(b){b.ui.addHandler(CKEDITOR.UI_PANEL,CKEDITOR.ui.panel.handler)}});CKEDITOR.UI_PANEL="panel";CKEDITOR.ui.panel=function(b,a){a&&CKEDITOR.tools.extend(this,a);CKEDITOR.tools.extend(this,{className:"",css:[]});this.id=CKEDITOR.tools.getNextId();this.document=b;this.isFramed=this.forceIFrame||this.css.length;this._={blocks:{}}};CKEDITOR.ui.panel.handler={create:function(b){return new CKEDITOR.ui.panel(b)}};var b=CKEDITOR.addTemplate("panel",
+'\x3cdiv lang\x3d"{langCode}" id\x3d"{id}" dir\x3d{dir} class\x3d"cke cke_reset_all {editorId} cke_panel cke_panel {cls} cke_{dir}" style\x3d"z-index:{z-index}" role\x3d"presentation"\x3e{frame}\x3c/div\x3e'),h=CKEDITOR.addTemplate("panel-frame",'\x3ciframe id\x3d"{id}" class\x3d"cke_panel_frame" role\x3d"presentation" frameborder\x3d"0" src\x3d"{src}"\x3e\x3c/iframe\x3e'),g=CKEDITOR.addTemplate("panel-frame-inner",'\x3c!DOCTYPE html\x3e\x3chtml class\x3d"cke_panel_container {env}" dir\x3d"{dir}" lang\x3d"{langCode}"\x3e\x3chead\x3e{css}\x3c/head\x3e\x3cbody class\x3d"cke_{dir}" style\x3d"margin:0;padding:0" onload\x3d"{onload}"\x3e\x3c/body\x3e\x3c/html\x3e');
+CKEDITOR.ui.panel.prototype={render:function(f,a){var m={editorId:f.id,id:this.id,langCode:f.langCode,dir:f.lang.dir,cls:this.className,frame:"",env:CKEDITOR.env.cssClass,"z-index":f.config.baseFloatZIndex+1};this.getHolderElement=function(){var a=this._.holder;if(!a){if(this.isFramed){var a=this.document.getById(this.id+"_frame"),d=a.getParent(),a=a.getFrameDocument();CKEDITOR.env.iOS&&d.setStyles({overflow:"scroll","-webkit-overflow-scrolling":"touch"});d=CKEDITOR.tools.addFunction(CKEDITOR.tools.bind(function(){this.isLoaded=
+!0;if(this.onLoad)this.onLoad()},this));a.write(g.output(CKEDITOR.tools.extend({css:CKEDITOR.tools.buildStyleHtml(this.css),onload:"window.parent.CKEDITOR.tools.callFunction("+d+");"},m)));a.getWindow().$.CKEDITOR=CKEDITOR;a.on("keydown",function(a){var d=a.data.getKeystroke(),b=this.document.getById(this.id).getAttribute("dir");if("input"!==a.data.getTarget().getName()||37!==d&&39!==d)this._.onKeyDown&&!1===this._.onKeyDown(d)?"input"===a.data.getTarget().getName()&&32===d||a.data.preventDefault():
+(27==d||d==("rtl"==b?39:37))&&this.onEscape&&!1===this.onEscape(d)&&a.data.preventDefault()},this);a=a.getBody();a.unselectable();CKEDITOR.env.air&&CKEDITOR.tools.callFunction(d)}else a=this.document.getById(this.id);this._.holder=a}return a};if(this.isFramed){var l=CKEDITOR.env.air?"javascript:void(0)":CKEDITOR.env.ie&&!CKEDITOR.env.edge?"javascript:void(function(){"+encodeURIComponent("document.open();("+CKEDITOR.tools.fixDomain+")();document.close();")+"}())":"";m.frame=h.output({id:this.id+"_frame",
+src:l})}l=b.output(m);a&&a.push(l);return l},addBlock:function(b,a){a=this._.blocks[b]=a instanceof CKEDITOR.ui.panel.block?a:new CKEDITOR.ui.panel.block(this.getHolderElement(),a);this._.currentBlock||this.showBlock(b);return a},getBlock:function(b){return this._.blocks[b]},showBlock:function(b){b=this._.blocks[b];var a=this._.currentBlock,g=!this.forceIFrame||CKEDITOR.env.ie?this._.holder:this.document.getById(this.id+"_frame");a&&a.hide();this._.currentBlock=b;CKEDITOR.fire("ariaWidget",g);b._.focusIndex=
+-1;this._.onKeyDown=b.onKeyDown&&CKEDITOR.tools.bind(b.onKeyDown,b);b.show();return b},destroy:function(){this.element&&this.element.remove()}};CKEDITOR.ui.panel.block=CKEDITOR.tools.createClass({$:function(b,a){this.element=b.append(b.getDocument().createElement("div",{attributes:{tabindex:-1,"class":"cke_panel_block"},styles:{display:"none"}}));a&&CKEDITOR.tools.extend(this,a);this.element.setAttributes({role:this.attributes.role||"presentation","aria-label":this.attributes["aria-label"],title:this.attributes.title||
+this.attributes["aria-label"]});this.keys={};this._.focusIndex=-1;this.element.disableContextMenu()},_:{markItem:function(b){-1!=b&&(b=this._.getItems().getItem(this._.focusIndex=b),CKEDITOR.env.webkit&&b.getDocument().getWindow().focus(),b.focus(),this.onMark&&this.onMark(b))},markFirstDisplayed:function(b){for(var a=function(a){return a.type==CKEDITOR.NODE_ELEMENT&&"none"==a.getStyle("display")},g=this._.getItems(),h,k,d=g.count()-1;0<=d;d--)if(h=g.getItem(d),h.getAscendant(a)||(k=h,this._.focusIndex=
+d),"true"==h.getAttribute("aria-selected")){k=h;this._.focusIndex=d;break}k&&(b&&b(),CKEDITOR.env.webkit&&k.getDocument().getWindow().focus(),k.focus(),this.onMark&&this.onMark(k))},getItems:function(){return this.element.find("a,input")}},proto:{show:function(){this.element.setStyle("display","")},hide:function(){this.onHide&&!0===this.onHide.call(this)||this.element.setStyle("display","none")},onKeyDown:function(b,a){var g=this.keys[b];switch(g){case "next":for(var h=this._.focusIndex,g=this._.getItems(),
+k;k=g.getItem(++h);)if(k.getAttribute("_cke_focus")&&k.$.offsetWidth){this._.focusIndex=h;k.focus(!0);break}return k||a?!1:(this._.focusIndex=-1,this.onKeyDown(b,1));case "prev":h=this._.focusIndex;for(g=this._.getItems();0<h&&(k=g.getItem(--h));){if(k.getAttribute("_cke_focus")&&k.$.offsetWidth){this._.focusIndex=h;k.focus(!0);break}k=null}return k||a?!1:(this._.focusIndex=g.count(),this.onKeyDown(b,1));case "click":case "mouseup":return h=this._.focusIndex,(k=0<=h&&this._.getItems().getItem(h))&&
+k.fireEventHandler(g,{button:CKEDITOR.tools.normalizeMouseButton(CKEDITOR.MOUSE_BUTTON_LEFT,!0)}),!1}return!0}}})})();CKEDITOR.plugins.add("floatpanel",{requires:"panel"});(function(){function b(b,f,a,m,l){l=CKEDITOR.tools.genKey(f.getUniqueId(),a.getUniqueId(),b.lang.dir,b.uiColor||"",m.css||"",l||"");var k=h[l];k||(k=h[l]=new CKEDITOR.ui.panel(f,m),k.element=a.append(CKEDITOR.dom.element.createFromHtml(k.render(b),f)),k.element.setStyles({display:"none",position:"absolute"}));return k}var h={};
+CKEDITOR.ui.floatPanel=CKEDITOR.tools.createClass({$:function(g,f,a,h){function l(){c.hide()}a.forceIFrame=1;a.toolbarRelated&&g.elementMode==CKEDITOR.ELEMENT_MODE_INLINE&&(f=CKEDITOR.document.getById("cke_"+g.name));var k=f.getDocument();h=b(g,k,f,a,h||0);var d=h.element,e=d.getFirst(),c=this;d.disableContextMenu();this.element=d;this._={editor:g,panel:h,parentElement:f,definition:a,document:k,iframe:e,children:[],dir:g.lang.dir,showBlockParams:null,markFirst:void 0!==a.markFirst?a.markFirst:!0};
+g.on("mode",l);g.on("resize",l);k.getWindow().on("resize",function(){this.reposition()},this)},proto:{addBlock:function(b,f){return this._.panel.addBlock(b,f)},addListBlock:function(b,f){return this._.panel.addListBlock(b,f)},getBlock:function(b){return this._.panel.getBlock(b)},showBlock:function(b,f,a,h,l,k){var d=this._.panel,e=d.showBlock(b);this._.showBlockParams=[].slice.call(arguments);this.allowBlur(!1);var c=this._.editor.editable();this._.returnFocus=c.hasFocus?c:new CKEDITOR.dom.element(CKEDITOR.document.$.activeElement);
+this._.hideTimeout=0;var n=this.element,c=this._.iframe,c=CKEDITOR.env.ie&&!CKEDITOR.env.edge?c:new CKEDITOR.dom.window(c.$.contentWindow),v=n.getDocument(),x=this._.parentElement.getPositionedAncestor(),p=f.getDocumentPosition(v),v=x?x.getDocumentPosition(v):{x:0,y:0},r="rtl"==this._.dir,q=p.x+(h||0)-v.x,w=p.y+(l||0)-v.y;!r||1!=a&&4!=a?r||2!=a&&3!=a||(q+=f.$.offsetWidth-1):q+=f.$.offsetWidth;if(3==a||4==a)w+=f.$.offsetHeight-1;this._.panel._.offsetParentId=f.getId();n.setStyles({top:w+"px",left:0,
 display:""});n.setOpacity(0);n.getFirst().removeStyle("width");this._.editor.focusManager.add(c);this._.blurSet||(CKEDITOR.event.useCapture=!0,c.on("blur",function(a){function d(){delete this._.returnFocus;this.hide()}this.allowBlur()&&a.data.getPhase()==CKEDITOR.EVENT_PHASE_AT_TARGET&&this.visible&&!this._.activeChild&&(CKEDITOR.env.iOS?this._.hideTimeout||(this._.hideTimeout=CKEDITOR.tools.setTimeout(d,0,this)):d.call(this))},this),c.on("focus",function(){this._.focused=!0;this.hideChild();this.allowBlur(!0)},
 this),CKEDITOR.env.iOS&&(c.on("touchstart",function(){clearTimeout(this._.hideTimeout)},this),c.on("touchend",function(){this._.hideTimeout=0;this.focus()},this)),CKEDITOR.event.useCapture=!1,this._.blurSet=1);d.onEscape=CKEDITOR.tools.bind(function(a){if(this.onEscape&&!1===this.onEscape(a))return!1},this);CKEDITOR.tools.setTimeout(function(){var a=CKEDITOR.tools.bind(function(){var a=n;a.removeStyle("width");if(e.autoSize){var c=e.element.getDocument(),c=(CKEDITOR.env.webkit||CKEDITOR.env.edge?
-e.element:c.getBody()).$.scrollWidth;CKEDITOR.env.ie&&CKEDITOR.env.quirks&&0<c&&(c+=(a.$.offsetWidth||0)-(a.$.clientWidth||0)+3);a.setStyle("width",c+10+"px");c=e.element.$.scrollHeight;CKEDITOR.env.ie&&CKEDITOR.env.quirks&&0<c&&(c+=(a.$.offsetHeight||0)-(a.$.clientHeight||0)+3);a.setStyle("height",c+"px");d._.currentBlock.element.setStyle("display","none").removeStyle("display")}else a.removeStyle("height");p&&(q-=n.$.offsetWidth);n.setStyle("left",q+"px");var c=d.element.getWindow(),a=n.$.getBoundingClientRect(),
-c=c.getViewPaneSize(),b=a.width||a.right-a.left,f=a.height||a.bottom-a.top,g=p?a.right:c.width-a.left,h=p?c.width-a.right:a.left;p?g<b&&(q=h>b?q+b:c.width>b?q-a.left:q-a.right+c.width):g<b&&(q=h>b?q-b:c.width>b?q-a.right+c.width:q-a.left);b=a.top;c.height-a.top<f&&(u=b>f?u-f:c.height>f?u-a.bottom+c.height:u-a.top);CKEDITOR.env.ie&&!CKEDITOR.env.edge&&((c=a=n.$.offsetParent&&new CKEDITOR.dom.element(n.$.offsetParent))&&"html"==c.getName()&&(c=c.getDocument().getBody()),c&&"rtl"==c.getComputedStyle("direction")&&
-(q=CKEDITOR.env.ie8Compat?q-2*n.getDocument().getDocumentElement().$.scrollLeft:q-(a.$.scrollWidth-a.$.clientWidth)));var a=n.getFirst(),k;(k=a.getCustomData("activePanel"))&&k.onHide&&k.onHide.call(this,1);a.setCustomData("activePanel",this);n.setStyles({top:u+"px",left:q+"px"});n.setOpacity(1);l&&l()},this);d.isLoaded?a():d.onLoad=a;CKEDITOR.tools.setTimeout(function(){var a=CKEDITOR.env.webkit&&CKEDITOR.document.getWindow().getScrollPosition().y;this.focus();e.element.focus();CKEDITOR.env.webkit&&
+e.element:c.getBody()).$.scrollWidth;CKEDITOR.env.ie&&CKEDITOR.env.quirks&&0<c&&(c+=(a.$.offsetWidth||0)-(a.$.clientWidth||0)+3);a.setStyle("width",c+10+"px");c=e.element.$.scrollHeight;CKEDITOR.env.ie&&CKEDITOR.env.quirks&&0<c&&(c+=(a.$.offsetHeight||0)-(a.$.clientHeight||0)+3);a.setStyle("height",c+"px");d._.currentBlock.element.setStyle("display","none").removeStyle("display")}else a.removeStyle("height");r&&(q-=n.$.offsetWidth);n.setStyle("left",q+"px");var c=d.element.getWindow(),a=n.$.getBoundingClientRect(),
+c=c.getViewPaneSize(),b=a.width||a.right-a.left,f=a.height||a.bottom-a.top,g=r?a.right:c.width-a.left,h=r?c.width-a.right:a.left;r?g<b&&(q=h>b?q+b:c.width>b?q-a.left:q-a.right+c.width):g<b&&(q=h>b?q-b:c.width>b?q-a.right+c.width:q-a.left);b=a.top;c.height-a.top<f&&(w=b>f?w-f:c.height>f?w-a.bottom+c.height:w-a.top);CKEDITOR.env.ie&&!CKEDITOR.env.edge&&((c=a=n.$.offsetParent&&new CKEDITOR.dom.element(n.$.offsetParent))&&"html"==c.getName()&&(c=c.getDocument().getBody()),c&&"rtl"==c.getComputedStyle("direction")&&
+(q=CKEDITOR.env.ie8Compat?q-2*n.getDocument().getDocumentElement().$.scrollLeft:q-(a.$.scrollWidth-a.$.clientWidth)));var a=n.getFirst(),l;(l=a.getCustomData("activePanel"))&&l.onHide&&l.onHide.call(this,1);a.setCustomData("activePanel",this);n.setStyles({top:w+"px",left:q+"px"});n.setOpacity(1);k&&k()},this);d.isLoaded?a():d.onLoad=a;CKEDITOR.tools.setTimeout(function(){var a=CKEDITOR.env.webkit&&CKEDITOR.document.getWindow().getScrollPosition().y;this.focus();e.element.focus();CKEDITOR.env.webkit&&
 (CKEDITOR.document.getBody().$.scrollTop=a);this.allowBlur(!0);this._.markFirst&&(CKEDITOR.env.ie?CKEDITOR.tools.setTimeout(function(){e.markFirstDisplayed?e.markFirstDisplayed():e._.markFirstDisplayed()},0):e.markFirstDisplayed?e.markFirstDisplayed():e._.markFirstDisplayed());this._.editor.fire("panelShow",this)},0,this)},CKEDITOR.env.air?200:0,this);this.visible=1;this.onShow&&this.onShow.call(this)},reposition:function(){var b=this._.showBlockParams;this.visible&&this._.showBlockParams&&(this.hide(),
 this.showBlock.apply(this,b))},focus:function(){if(CKEDITOR.env.webkit){var b=CKEDITOR.document.getActive();b&&!b.equals(this._.iframe)&&b.$.blur()}(this._.lastFocused||this._.iframe.getFrameDocument().getWindow()).focus()},blur:function(){var b=this._.iframe.getFrameDocument().getActive();b&&b.is("a")&&(this._.lastFocused=b)},hide:function(b){if(this.visible&&(!this.onHide||!0!==this.onHide.call(this))){this.hideChild();CKEDITOR.env.gecko&&this._.iframe.getFrameDocument().$.activeElement.blur();
-this.element.setStyle("display","none");this.visible=0;this.element.getFirst().removeCustomData("activePanel");if(b=b&&this._.returnFocus)CKEDITOR.env.webkit&&b.type&&b.getWindow().$.focus(),b.focus();delete this._.lastFocused;this._.showBlockParams=null;this._.editor.fire("panelHide",this)}},allowBlur:function(b){var f=this._.panel;void 0!==b&&(f.allowBlur=b);return f.allowBlur},showAsChild:function(b,f,a,h,k,l){if(this._.activeChild!=b||b._.panel._.offsetParentId!=a.getId())this.hideChild(),b.onHide=
-CKEDITOR.tools.bind(function(){CKEDITOR.tools.setTimeout(function(){this._.focused||this.hide()},0,this)},this),this._.activeChild=b,this._.focused=!1,b.showBlock(f,a,h,k,l),this.blur(),(CKEDITOR.env.ie7Compat||CKEDITOR.env.ie6Compat)&&setTimeout(function(){b.element.getChild(0).$.style.cssText+=""},100)},hideChild:function(b){var f=this._.activeChild;f&&(delete f.onHide,delete this._.activeChild,f.hide(),b&&this.focus())}}});CKEDITOR.on("instanceDestroyed",function(){var b=CKEDITOR.tools.isEmpty(CKEDITOR.instances),
+this.element.setStyle("display","none");this.visible=0;this.element.getFirst().removeCustomData("activePanel");if(b=b&&this._.returnFocus)CKEDITOR.env.webkit&&b.type&&b.getWindow().$.focus(),b.focus();delete this._.lastFocused;this._.showBlockParams=null;this._.editor.fire("panelHide",this)}},allowBlur:function(b){var f=this._.panel;void 0!==b&&(f.allowBlur=b);return f.allowBlur},showAsChild:function(b,f,a,h,l,k){if(this._.activeChild!=b||b._.panel._.offsetParentId!=a.getId())this.hideChild(),b.onHide=
+CKEDITOR.tools.bind(function(){CKEDITOR.tools.setTimeout(function(){this._.focused||this.hide()},0,this)},this),this._.activeChild=b,this._.focused=!1,b.showBlock(f,a,h,l,k),this.blur(),(CKEDITOR.env.ie7Compat||CKEDITOR.env.ie6Compat)&&setTimeout(function(){b.element.getChild(0).$.style.cssText+=""},100)},hideChild:function(b){var f=this._.activeChild;f&&(delete f.onHide,delete this._.activeChild,f.hide(),b&&this.focus())}}});CKEDITOR.on("instanceDestroyed",function(){var b=CKEDITOR.tools.isEmpty(CKEDITOR.instances),
 f;for(f in h){var a=h[f];b?a.destroy():a.element.hide()}b&&(h={})})})();CKEDITOR.plugins.add("menu",{requires:"floatpanel",beforeInit:function(b){for(var h=b.config.menu_groups.split(","),g=b._.menuGroups={},f=b._.menuItems={},a=0;a<h.length;a++)g[h[a]]=a+1;b.addMenuGroup=function(a,b){g[a]=b||100};b.addMenuItem=function(a,b){g[b.group]&&(f[a]=new CKEDITOR.menuItem(this,a,b))};b.addMenuItems=function(a){for(var b in a)this.addMenuItem(b,a[b])};b.getMenuItem=function(a){return f[a]};b.removeMenuItem=
-function(a){delete f[a]}}});(function(){function b(a){a.sort(function(a,d){return a.group<d.group?-1:a.group>d.group?1:a.order<d.order?-1:a.order>d.order?1:0})}var h='\x3cspan class\x3d"cke_menuitem"\x3e\x3ca id\x3d"{id}" class\x3d"cke_menubutton cke_menubutton__{name} cke_menubutton_{state} {cls}" href\x3d"{href}" title\x3d"{title}" tabindex\x3d"-1" _cke_focus\x3d1 hidefocus\x3d"true" role\x3d"{role}" aria-label\x3d"{label}" aria-describedby\x3d"{id}_description" aria-haspopup\x3d"{hasPopup}" aria-disabled\x3d"{disabled}" {ariaChecked} draggable\x3d"false"',
+function(a){delete f[a]}}});(function(){function b(a){a.sort(function(a,d){return a.group<d.group?-1:a.group>d.group?1:a.order<d.order?-1:a.order>d.order?1:0})}var h='\x3cspan class\x3d"cke_menuitem"\x3e\x3ca id\x3d"{id}" class\x3d"cke_menubutton cke_menubutton__{name} cke_menubutton_{state} {cls}" href\x3d"{href}" title\x3d"{title}" tabindex\x3d"-1" _cke_focus\x3d1 hidefocus\x3d"true" role\x3d"{role}" aria-label\x3d"{attrLabel}" aria-describedby\x3d"{id}_description" aria-haspopup\x3d"{hasPopup}" aria-disabled\x3d"{disabled}" {ariaChecked} draggable\x3d"false"',
 g="";CKEDITOR.env.gecko&&CKEDITOR.env.mac&&(h+=' onkeypress\x3d"return false;"');CKEDITOR.env.gecko&&(h+=' onblur\x3d"this.style.cssText \x3d this.style.cssText;" ondragstart\x3d"return false;"');CKEDITOR.env.ie&&(g='return false;" onmouseup\x3d"CKEDITOR.tools.getMouseButton(event)\x3d\x3d\x3dCKEDITOR.MOUSE_BUTTON_LEFT\x26\x26');var h=h+(' onmouseover\x3d"CKEDITOR.tools.callFunction({hoverFn},{index});" onmouseout\x3d"CKEDITOR.tools.callFunction({moveOutFn},{index});" onclick\x3d"'+g+'CKEDITOR.tools.callFunction({clickFn},{index}); return false;"\x3e')+
 '\x3cspan class\x3d"cke_menubutton_inner"\x3e\x3cspan class\x3d"cke_menubutton_icon"\x3e\x3cspan class\x3d"cke_button_icon cke_button__{iconName}_icon" style\x3d"{iconStyle}"\x3e\x3c/span\x3e\x3c/span\x3e\x3cspan class\x3d"cke_menubutton_label"\x3e{label}\x3c/span\x3e{shortcutHtml}{arrowHtml}\x3c/span\x3e\x3c/a\x3e\x3cspan id\x3d"{id}_description" class\x3d"cke_voice_label" aria-hidden\x3d"false"\x3e{ariaShortcut}\x3c/span\x3e\x3c/span\x3e',f=CKEDITOR.addTemplate("menuItem",h),a=CKEDITOR.addTemplate("menuArrow",
 '\x3cspan class\x3d"cke_menuarrow"\x3e\x3cspan\x3e{label}\x3c/span\x3e\x3c/span\x3e'),m=CKEDITOR.addTemplate("menuShortcut",'\x3cspan class\x3d"cke_menubutton_label cke_menubutton_shortcut"\x3e{shortcut}\x3c/span\x3e');CKEDITOR.menu=CKEDITOR.tools.createClass({$:function(a,b){b=this._.definition=b||{};this.id=CKEDITOR.tools.getNextId();this.editor=a;this.items=[];this._.listeners=[];this._.level=b.level||1;var d=CKEDITOR.tools.extend({},b.panel,{css:[CKEDITOR.skin.getPath("editor")],level:this._.level-
 1,block:{}}),e=d.block.attributes=d.attributes||{};!e.role&&(e.role="menu");this._.panelDefinition=d},_:{onShow:function(){var a=this.editor.getSelection(),b=a&&a.getStartElement(),d=this.editor.elementPath(),e=this._.listeners;this.removeAll();for(var c=0;c<e.length;c++){var f=e[c](b,a,d);if(f)for(var g in f){var h=this.editor.getMenuItem(g);!h||h.command&&!this.editor.getCommand(h.command).state||(h.state=f[g],this.add(h))}}},onClick:function(a){this.hide();if(a.onClick)a.onClick();else a.command&&
 this.editor.execCommand(a.command)},onEscape:function(a){var b=this.parent;b?b._.panel.hideChild(1):27==a&&this.hide(1);return!1},onHide:function(){this.onHide&&this.onHide()},showSubMenu:function(a){var b=this._.subMenu,d=this.items[a];if(d=d.getItems&&d.getItems()){b?b.removeAll():(b=this._.subMenu=new CKEDITOR.menu(this.editor,CKEDITOR.tools.extend({},this._.definition,{level:this._.level+1},!0)),b.parent=this,b._.onClick=CKEDITOR.tools.bind(this._.onClick,this));for(var e in d){var c=this.editor.getMenuItem(e);
 c&&(c.state=d[e],b.add(c))}var f=this._.panel.getBlock(this.id).element.getDocument().getById(this.id+String(a));setTimeout(function(){b.show(f,2)},0)}else this._.panel.hideChild(1)}},proto:{add:function(a){a.order||(a.order=this.items.length);this.items.push(a)},removeAll:function(){this.items=[]},show:function(a,f,d,e){if(!this.parent&&(this._.onShow(),!this.items.length))return;f=f||("rtl"==this.editor.lang.dir?2:1);var c=this.items,g=this.editor,h=this._.panel,m=this._.element;if(!h){h=this._.panel=
-new CKEDITOR.ui.floatPanel(this.editor,CKEDITOR.document.getBody(),this._.panelDefinition,this._.level);h.onEscape=CKEDITOR.tools.bind(function(a){if(!1===this._.onEscape(a))return!1},this);h.onShow=function(){h._.panel.getHolderElement().getParent().addClass("cke").addClass("cke_reset_all")};h.onHide=CKEDITOR.tools.bind(function(){this._.onHide&&this._.onHide()},this);m=h.addBlock(this.id,this._.panelDefinition.block);m.autoSize=!0;var r=m.keys;r[40]="next";r[9]="next";r[38]="prev";r[CKEDITOR.SHIFT+
-9]="prev";r["rtl"==g.lang.dir?37:39]=CKEDITOR.env.ie?"mouseup":"click";r[32]=CKEDITOR.env.ie?"mouseup":"click";CKEDITOR.env.ie&&(r[13]="mouseup");m=this._.element=m.element;r=m.getDocument();r.getBody().setStyle("overflow","hidden");r.getElementsByTag("html").getItem(0).setStyle("overflow","hidden");this._.itemOverFn=CKEDITOR.tools.addFunction(function(a){clearTimeout(this._.showSubTimeout);this._.showSubTimeout=CKEDITOR.tools.setTimeout(this._.showSubMenu,g.config.menu_subMenuDelay||400,this,[a])},
-this);this._.itemOutFn=CKEDITOR.tools.addFunction(function(){clearTimeout(this._.showSubTimeout)},this);this._.itemClickFn=CKEDITOR.tools.addFunction(function(a){var c=this.items[a];if(c.state==CKEDITOR.TRISTATE_DISABLED)this.hide(1);else if(c.getItems)this._.showSubMenu(a);else this._.onClick(c)},this)}b(c);for(var r=g.elementPath(),r=['\x3cdiv class\x3d"cke_menu'+(r&&r.direction()!=g.lang.dir?" cke_mixed_dir_content":"")+'" role\x3d"presentation"\x3e'],p=c.length,q=p&&c[0].group,u=0;u<p;u++){var t=
-c[u];q!=t.group&&(r.push('\x3cdiv class\x3d"cke_menuseparator" role\x3d"separator"\x3e\x3c/div\x3e'),q=t.group);t.render(this,u,r)}r.push("\x3c/div\x3e");m.setHtml(r.join(""));CKEDITOR.ui.fire("ready",this);this.parent?this.parent._.panel.showAsChild(h,this.id,a,f,d,e):h.showBlock(this.id,a,f,d,e);g.fire("menuShow",[h])},addListener:function(a){this._.listeners.push(a)},hide:function(a){this._.onHide&&this._.onHide();this._.panel&&this._.panel.hide(a)},findItemByCommandName:function(a){var b=CKEDITOR.tools.array.filter(this.items,
-function(d){return a===d.command});return b.length?(b=b[0],{item:b,element:this._.element.findOne("."+b.className)}):null}}});CKEDITOR.menuItem=CKEDITOR.tools.createClass({$:function(a,b,d){CKEDITOR.tools.extend(this,d,{order:0,className:"cke_menubutton__"+b});this.group=a._.menuGroups[this.group];this.editor=a;this.name=b},proto:{render:function(b,g,d){var e=b.id+String(g),c="undefined"==typeof this.state?CKEDITOR.TRISTATE_OFF:this.state,h="",w=this.editor,z,r,p=c==CKEDITOR.TRISTATE_ON?"on":c==CKEDITOR.TRISTATE_DISABLED?
-"disabled":"off";this.role in{menuitemcheckbox:1,menuitemradio:1}&&(h=' aria-checked\x3d"'+(c==CKEDITOR.TRISTATE_ON?"true":"false")+'"');var q=this.getItems,u="\x26#"+("rtl"==this.editor.lang.dir?"9668":"9658")+";",t=this.name;this.icon&&!/\./.test(this.icon)&&(t=this.icon);this.command&&(z=w.getCommand(this.command),(z=w.getCommandKeystroke(z))&&(r=CKEDITOR.tools.keystrokeToString(w.lang.common.keyboard,z)));b={id:e,name:this.name,iconName:t,label:this.label,cls:this.className||"",state:p,hasPopup:q?
-"true":"false",disabled:c==CKEDITOR.TRISTATE_DISABLED,title:this.label+(r?" ("+r.display+")":""),ariaShortcut:r?w.lang.common.keyboardShortcut+" "+r.aria:"",href:"javascript:void('"+(this.label||"").replace("'")+"')",hoverFn:b._.itemOverFn,moveOutFn:b._.itemOutFn,clickFn:b._.itemClickFn,index:g,iconStyle:CKEDITOR.skin.getIconStyle(t,"rtl"==this.editor.lang.dir,t==this.icon?null:this.icon,this.iconOffset),shortcutHtml:r?m.output({shortcut:r.display}):"",arrowHtml:q?a.output({label:u}):"",role:this.role?
-this.role:"menuitem",ariaChecked:h};f.output(b,d)}}})})();CKEDITOR.config.menu_groups="clipboard,form,tablecell,tablecellproperties,tablerow,tablecolumn,table,anchor,link,image,flash,checkbox,radio,textfield,hiddenfield,imagebutton,button,select,textarea,div";CKEDITOR.plugins.add("contextmenu",{requires:"menu",onLoad:function(){CKEDITOR.plugins.contextMenu=CKEDITOR.tools.createClass({base:CKEDITOR.menu,$:function(b){this.base.call(this,b,{panel:{css:b.config.contextmenu_contentsCss,className:"cke_menu_panel",
-attributes:{"aria-label":b.lang.contextmenu.options}}})},proto:{addTarget:function(b,h){function g(){a=!1}var f,a;b.on("contextmenu",function(b){b=b.data;var g=CKEDITOR.env.webkit?f:CKEDITOR.env.mac?b.$.metaKey:b.$.ctrlKey;if(!h||!g)if(b.preventDefault(),!a){if(CKEDITOR.env.mac&&CKEDITOR.env.webkit){var g=this.editor,d=(new CKEDITOR.dom.elementPath(b.getTarget(),g.editable())).contains(function(a){return a.hasAttribute("contenteditable")},!0);d&&"false"==d.getAttribute("contenteditable")&&g.getSelection().fake(d)}var d=
-b.getTarget().getDocument(),e=b.getTarget().getDocument().getDocumentElement(),g=!d.equals(CKEDITOR.document),d=d.getWindow().getScrollPosition(),c=g?b.$.clientX:b.$.pageX||d.x+b.$.clientX,n=g?b.$.clientY:b.$.pageY||d.y+b.$.clientY;CKEDITOR.tools.setTimeout(function(){this.open(e,null,c,n)},CKEDITOR.env.ie?200:0,this)}},this);if(CKEDITOR.env.webkit){var m=function(){f=0};b.on("keydown",function(a){f=CKEDITOR.env.mac?a.data.$.metaKey:a.data.$.ctrlKey});b.on("keyup",m);b.on("contextmenu",m)}CKEDITOR.env.gecko&&
-!CKEDITOR.env.mac&&(b.on("keydown",function(b){b.data.$.shiftKey&&121===b.data.$.keyCode&&(a=!0)},null,null,0),b.on("keyup",g),b.on("contextmenu",g))},open:function(b,h,g,f){!1!==this.editor.config.enableContextMenu&&this.editor.getSelection().getType()!==CKEDITOR.SELECTION_NONE&&(this.editor.focus(),b=b||CKEDITOR.document.getDocumentElement(),this.editor.selectionChange(1),this.show(b,h,g,f))}}})},beforeInit:function(b){var h=b.contextMenu=new CKEDITOR.plugins.contextMenu(b);b.on("contentDom",function(){h.addTarget(b.editable(),
-!1!==b.config.browserContextMenuOnCtrl)});b.addCommand("contextMenu",{exec:function(b){var f=0,a=0,h=b.getSelection().getRanges(),h=h[h.length-1].getClientRects(b.editable().isInline());if(h=h[h.length-1])f=h["rtl"===b.lang.dir?"left":"right"],a=h.bottom;b.contextMenu.open(b.document.getBody().getParent(),null,f,a)}});b.setKeystroke(CKEDITOR.SHIFT+121,"contextMenu");b.setKeystroke(CKEDITOR.CTRL+CKEDITOR.SHIFT+121,"contextMenu")}});(function(){function b(a,b){function g(b){b=c.list[b];var d;b.equals(a.editable())||
-"true"==b.getAttribute("contenteditable")?(d=a.createRange(),d.selectNodeContents(b),d=d.select()):(d=a.getSelection(),d.selectElement(b));CKEDITOR.env.ie&&a.fire("selectionChange",{selection:d,path:new CKEDITOR.dom.elementPath(b)});a.focus()}function l(){e&&e.setHtml('\x3cspan class\x3d"cke_path_empty"\x3e\x26nbsp;\x3c/span\x3e');delete c.list}var d=a.ui.spaceId("path"),e,c=a._.elementsPath,n=c.idBase;b.html+='\x3cspan id\x3d"'+d+'_label" class\x3d"cke_voice_label"\x3e'+a.lang.elementspath.eleLabel+
-'\x3c/span\x3e\x3cspan id\x3d"'+d+'" class\x3d"cke_path" role\x3d"group" aria-labelledby\x3d"'+d+'_label"\x3e\x3cspan class\x3d"cke_path_empty"\x3e\x26nbsp;\x3c/span\x3e\x3c/span\x3e';a.on("uiReady",function(){var b=a.ui.space("path");b&&a.focusManager.add(b,1)});c.onClick=g;var w=CKEDITOR.tools.addFunction(g),z=CKEDITOR.tools.addFunction(function(b,d){var e=c.idBase,f;d=new CKEDITOR.dom.event(d);f="rtl"==a.lang.dir;switch(d.getKeystroke()){case f?39:37:case 9:return(f=CKEDITOR.document.getById(e+
-(b+1)))||(f=CKEDITOR.document.getById(e+"0")),f.focus(),!1;case f?37:39:case CKEDITOR.SHIFT+9:return(f=CKEDITOR.document.getById(e+(b-1)))||(f=CKEDITOR.document.getById(e+(c.list.length-1))),f.focus(),!1;case 27:return a.focus(),!1;case 13:case 32:return g(b),!1}return!0});a.on("selectionChange",function(b){for(var g=[],h=c.list=[],k=[],l=c.filters,m=!0,v=b.data.path.elements,x=v.length;x--;){var B=v[x],D=0;b=B.data("cke-display-name")?B.data("cke-display-name"):B.data("cke-real-element-type")?B.data("cke-real-element-type"):
-B.getName();(m=B.hasAttribute("contenteditable")?"true"==B.getAttribute("contenteditable"):m)||B.hasAttribute("contenteditable")||(D=1);for(var A=0;A<l.length;A++){var G=l[A](B,b);if(!1===G){D=1;break}b=G||b}D||(h.unshift(B),k.unshift(b))}h=h.length;for(l=0;l<h;l++)b=k[l],m=a.lang.elementspath.eleTitle.replace(/%1/,b),b=f.output({id:n+l,label:m,text:b,jsTitle:"javascript:void('"+b+"')",index:l,keyDownFn:z,clickFn:w}),g.unshift(b);e||(e=CKEDITOR.document.getById(d));k=e;k.setHtml(g.join("")+'\x3cspan class\x3d"cke_path_empty"\x3e\x26nbsp;\x3c/span\x3e');
-a.fire("elementsPathUpdate",{space:k})});a.on("readOnly",l);a.on("contentDomUnload",l);a.addCommand("elementsPathFocus",h.toolbarFocus);a.setKeystroke(CKEDITOR.ALT+122,"elementsPathFocus")}var h={toolbarFocus:{editorFocus:!1,readOnly:1,exec:function(a){(a=CKEDITOR.document.getById(a._.elementsPath.idBase+"0"))&&a.focus(CKEDITOR.env.ie||CKEDITOR.env.air)}}},g="";CKEDITOR.env.gecko&&CKEDITOR.env.mac&&(g+=' onkeypress\x3d"return false;"');CKEDITOR.env.gecko&&(g+=' onblur\x3d"this.style.cssText \x3d this.style.cssText;"');
-var f=CKEDITOR.addTemplate("pathItem",'\x3ca id\x3d"{id}" href\x3d"{jsTitle}" tabindex\x3d"-1" class\x3d"cke_path_item" title\x3d"{label}"'+g+' hidefocus\x3d"true"  draggable\x3d"false"  ondragstart\x3d"return false;" onkeydown\x3d"return CKEDITOR.tools.callFunction({keyDownFn},{index}, event );" onclick\x3d"CKEDITOR.tools.callFunction({clickFn},{index}); return false;" role\x3d"button" aria-label\x3d"{label}"\x3e{text}\x3c/a\x3e');CKEDITOR.plugins.add("elementspath",{init:function(a){a._.elementsPath=
-{idBase:"cke_elementspath_"+CKEDITOR.tools.getNextNumber()+"_",filters:[]};a.on("uiSpace",function(f){"bottom"==f.data.space&&b(a,f.data)})}})})();(function(){function b(a,b,d){d=a.config.forceEnterMode||d;if("wysiwyg"==a.mode){b||(b=a.activeEnterMode);var f=a.elementPath();f&&!f.isContextFor("p")&&(b=CKEDITOR.ENTER_BR,d=1);a.fire("saveSnapshot");b==CKEDITOR.ENTER_BR?k(a,b,null,d):l(a,b,null,d);a.fire("saveSnapshot")}}function h(a){a=a.getSelection().getRanges(!0);for(var b=a.length-1;0<b;b--)a[b].deleteContents();
-return a[0]}function g(a){var b=a.startContainer.getAscendant(function(a){return a.type==CKEDITOR.NODE_ELEMENT&&"true"==a.getAttribute("contenteditable")},!0);if(a.root.equals(b))return a;b=new CKEDITOR.dom.range(b);b.moveToRange(a);return b}CKEDITOR.plugins.add("enterkey",{init:function(a){a.addCommand("enter",{modes:{wysiwyg:1},editorFocus:!1,exec:function(a){b(a)}});a.addCommand("shiftEnter",{modes:{wysiwyg:1},editorFocus:!1,exec:function(a){b(a,a.activeShiftEnterMode,1)}});a.setKeystroke([[13,
-"enter"],[CKEDITOR.SHIFT+13,"shiftEnter"]])}});var f=CKEDITOR.dom.walker.whitespaces(),a=CKEDITOR.dom.walker.bookmark(),m,k,l,d;CKEDITOR.plugins.enterkey={enterBlock:function(b,c,l,m){function z(a){var b;if(a===CKEDITOR.ENTER_BR||-1===CKEDITOR.tools.indexOf(["td","th"],u.lastElement.getName())||1!==u.lastElement.getChildCount())return!1;a=u.lastElement.getChild(0).clone(!0);(b=a.getBogus())&&b.remove();return a.getText().length?!1:!0}if(l=l||h(b)){l=g(l);var r=l.document,p=l.checkStartOfBlock(),q=
-l.checkEndOfBlock(),u=b.elementPath(l.startContainer),t=u.block,y=c==CKEDITOR.ENTER_DIV?"div":"p",v;if(t&&p&&q){p=t.getParent();if(p.is("li")&&1<p.getChildCount()){r=new CKEDITOR.dom.element("li");v=b.createRange();r.insertAfter(p);t.remove();v.setStart(r,0);b.getSelection().selectRanges([v]);return}if(t.is("li")||t.getParent().is("li")){t.is("li")||(t=t.getParent(),p=t.getParent());v=p.getParent();l=!t.hasPrevious();var x=!t.hasNext();m=b.getSelection();var y=m.createBookmarks(),B=t.getDirection(1),
-q=t.getAttribute("class"),D=t.getAttribute("style"),A=v.getDirection(1)!=B;b=b.enterMode!=CKEDITOR.ENTER_BR||A||D||q;if(v.is("li"))l||x?(l&&x&&p.remove(),t[x?"insertAfter":"insertBefore"](v)):t.breakParent(v);else{if(b)if(u.block.is("li")?(v=r.createElement(c==CKEDITOR.ENTER_P?"p":"div"),A&&v.setAttribute("dir",B),D&&v.setAttribute("style",D),q&&v.setAttribute("class",q),t.moveChildren(v)):v=u.block,l||x)v[l?"insertBefore":"insertAfter"](p);else t.breakParent(p),v.insertAfter(p);else if(t.appendBogus(!0),
-l||x)for(;r=t[l?"getFirst":"getLast"]();)r[l?"insertBefore":"insertAfter"](p);else for(t.breakParent(p);r=t.getLast();)r.insertAfter(p);t.remove()}m.selectBookmarks(y);return}if(t&&t.getParent().is("blockquote")){t.breakParent(t.getParent());t.getPrevious().getFirst(CKEDITOR.dom.walker.invisible(1))||t.getPrevious().remove();t.getNext().getFirst(CKEDITOR.dom.walker.invisible(1))||t.getNext().remove();l.moveToElementEditStart(t);l.select();return}}else if(t&&t.is("pre")&&!q){k(b,c,l,m);return}if(D=
-l.splitBlock(y)){b=D.previousBlock;t=D.nextBlock;p=D.wasStartOfBlock;q=D.wasEndOfBlock;t?(x=t.getParent(),x.is("li")&&(t.breakParent(x),t.move(t.getNext(),1))):b&&(x=b.getParent())&&x.is("li")&&(b.breakParent(x),x=b.getNext(),l.moveToElementEditStart(x),b.move(b.getPrevious()));if(p||q)if(z(c))l.moveToElementEditStart(l.getTouchedStartNode());else{if(b){if(b.is("li")||!d.test(b.getName())&&!b.is("pre"))v=b.clone()}else t&&(v=t.clone());v?m&&!v.is("li")&&v.renameNode(y):x&&x.is("li")?v=x:(v=r.createElement(y),
-b&&(B=b.getDirection())&&v.setAttribute("dir",B));if(r=D.elementPath)for(c=0,m=r.elements.length;c<m;c++){y=r.elements[c];if(y.equals(r.block)||y.equals(r.blockLimit))break;CKEDITOR.dtd.$removeEmpty[y.getName()]&&(y=y.clone(),v.moveChildren(y),v.append(y))}v.appendBogus();v.getParent()||l.insertNode(v);v.is("li")&&v.removeAttribute("value");!CKEDITOR.env.ie||!p||q&&b.getChildCount()||(l.moveToElementEditStart(q?b:v),l.select());l.moveToElementEditStart(p&&!q?t:v)}else t.is("li")&&(v=l.clone(),v.selectNodeContents(t),
-v=new CKEDITOR.dom.walker(v),v.evaluator=function(b){return!(a(b)||f(b)||b.type==CKEDITOR.NODE_ELEMENT&&b.getName()in CKEDITOR.dtd.$inline&&!(b.getName()in CKEDITOR.dtd.$empty))},(x=v.next())&&x.type==CKEDITOR.NODE_ELEMENT&&x.is("ul","ol")&&(CKEDITOR.env.needsBrFiller?r.createElement("br"):r.createText(" ")).insertBefore(x)),t&&l.moveToElementEditStart(t);l.select();l.scrollIntoView()}}},enterBr:function(a,b,f,g){if(f=f||h(a)){var k=f.document,m=f.checkEndOfBlock(),p=new CKEDITOR.dom.elementPath(a.getSelection().getStartElement()),
-q=p.block,u=q&&p.block.getName();g||"li"!=u?(!g&&m&&d.test(u)?(m=q.getDirection())?(k=k.createElement("div"),k.setAttribute("dir",m),k.insertAfter(q),f.setStart(k,0)):(k.createElement("br").insertAfter(q),CKEDITOR.env.gecko&&k.createText("").insertAfter(q),f.setStartAt(q.getNext(),CKEDITOR.env.ie?CKEDITOR.POSITION_BEFORE_START:CKEDITOR.POSITION_AFTER_START)):(a="pre"==u&&CKEDITOR.env.ie&&8>CKEDITOR.env.version?k.createText("\r"):k.createElement("br"),f.deleteContents(),f.insertNode(a),CKEDITOR.env.needsBrFiller?
-(k.createText("").insertAfter(a),m&&(q||p.blockLimit).appendBogus(),a.getNext().$.nodeValue="",f.setStartAt(a.getNext(),CKEDITOR.POSITION_AFTER_START)):f.setStartAt(a,CKEDITOR.POSITION_AFTER_END)),f.collapse(!0),f.select(),f.scrollIntoView()):l(a,b,f,g)}}};m=CKEDITOR.plugins.enterkey;k=m.enterBr;l=m.enterBlock;d=/^h[1-6]$/})();(function(){function b(b,g){var f={},a=[],m={nbsp:" ",shy:"­",gt:"\x3e",lt:"\x3c",amp:"\x26",apos:"'",quot:'"'};b=b.replace(/\b(nbsp|shy|gt|lt|amp|apos|quot)(?:,|$)/g,function(b,
-d){var h=g?"\x26"+d+";":m[d];f[h]=g?m[d]:"\x26"+d+";";a.push(h);return""});b=b.replace(/,$/,"");if(!g&&b){b=b.split(",");var k=document.createElement("div"),l;k.innerHTML="\x26"+b.join(";\x26")+";";l=k.innerHTML;k=null;for(k=0;k<l.length;k++){var d=l.charAt(k);f[d]="\x26"+b[k]+";";a.push(d)}}f.regex=a.join(g?"|":"");return f}CKEDITOR.plugins.add("entities",{afterInit:function(h){function g(a){return d[a]}function f(b){return"force"!=a.entities_processNumerical&&k[b]?k[b]:"\x26#"+b.charCodeAt(0)+";"}
-var a=h.config;if(h=(h=h.dataProcessor)&&h.htmlFilter){var m=[];!1!==a.basicEntities&&m.push("nbsp,gt,lt,amp");a.entities&&(m.length&&m.push("quot,iexcl,cent,pound,curren,yen,brvbar,sect,uml,copy,ordf,laquo,not,shy,reg,macr,deg,plusmn,sup2,sup3,acute,micro,para,middot,cedil,sup1,ordm,raquo,frac14,frac12,frac34,iquest,times,divide,fnof,bull,hellip,prime,Prime,oline,frasl,weierp,image,real,trade,alefsym,larr,uarr,rarr,darr,harr,crarr,lArr,uArr,rArr,dArr,hArr,forall,part,exist,empty,nabla,isin,notin,ni,prod,sum,minus,lowast,radic,prop,infin,ang,and,or,cap,cup,int,there4,sim,cong,asymp,ne,equiv,le,ge,sub,sup,nsub,sube,supe,oplus,otimes,perp,sdot,lceil,rceil,lfloor,rfloor,lang,rang,loz,spades,clubs,hearts,diams,circ,tilde,ensp,emsp,thinsp,zwnj,zwj,lrm,rlm,ndash,mdash,lsquo,rsquo,sbquo,ldquo,rdquo,bdquo,dagger,Dagger,permil,lsaquo,rsaquo,euro"),
+new CKEDITOR.ui.floatPanel(this.editor,CKEDITOR.document.getBody(),this._.panelDefinition,this._.level);h.onEscape=CKEDITOR.tools.bind(function(a){if(!1===this._.onEscape(a))return!1},this);h.onShow=function(){h._.panel.getHolderElement().getParent().addClass("cke").addClass("cke_reset_all")};h.onHide=CKEDITOR.tools.bind(function(){this._.onHide&&this._.onHide()},this);m=h.addBlock(this.id,this._.panelDefinition.block);m.autoSize=!0;var p=m.keys;p[40]="next";p[9]="next";p[38]="prev";p[CKEDITOR.SHIFT+
+9]="prev";p["rtl"==g.lang.dir?37:39]=CKEDITOR.env.ie?"mouseup":"click";p[32]=CKEDITOR.env.ie?"mouseup":"click";CKEDITOR.env.ie&&(p[13]="mouseup");m=this._.element=m.element;p=m.getDocument();p.getBody().setStyle("overflow","hidden");p.getElementsByTag("html").getItem(0).setStyle("overflow","hidden");this._.itemOverFn=CKEDITOR.tools.addFunction(function(a){clearTimeout(this._.showSubTimeout);this._.showSubTimeout=CKEDITOR.tools.setTimeout(this._.showSubMenu,g.config.menu_subMenuDelay||400,this,[a])},
+this);this._.itemOutFn=CKEDITOR.tools.addFunction(function(){clearTimeout(this._.showSubTimeout)},this);this._.itemClickFn=CKEDITOR.tools.addFunction(function(a){var d=this.items[a];if(d.state==CKEDITOR.TRISTATE_DISABLED)this.hide(1);else if(d.getItems)this._.showSubMenu(a);else this._.onClick(d)},this)}b(c);for(var p=g.elementPath(),p=['\x3cdiv class\x3d"cke_menu'+(p&&p.direction()!=g.lang.dir?" cke_mixed_dir_content":"")+'" role\x3d"presentation"\x3e'],r=c.length,q=r&&c[0].group,w=0;w<r;w++){var t=
+c[w];q!=t.group&&(p.push('\x3cdiv class\x3d"cke_menuseparator" role\x3d"separator"\x3e\x3c/div\x3e'),q=t.group);t.render(this,w,p)}p.push("\x3c/div\x3e");m.setHtml(p.join(""));CKEDITOR.ui.fire("ready",this);this.parent?this.parent._.panel.showAsChild(h,this.id,a,f,d,e):h.showBlock(this.id,a,f,d,e);g.fire("menuShow",[h])},addListener:function(a){this._.listeners.push(a)},hide:function(a){this._.onHide&&this._.onHide();this._.panel&&this._.panel.hide(a)},findItemByCommandName:function(a){var b=CKEDITOR.tools.array.filter(this.items,
+function(d){return a===d.command});return b.length?(b=b[0],{item:b,element:this._.element.findOne("."+b.className)}):null}}});CKEDITOR.menuItem=CKEDITOR.tools.createClass({$:function(a,b,d){CKEDITOR.tools.extend(this,d,{order:0,className:"cke_menubutton__"+b});this.group=a._.menuGroups[this.group];this.editor=a;this.name=b},proto:{render:function(b,g,d){var e=b.id+String(g),c="undefined"==typeof this.state?CKEDITOR.TRISTATE_OFF:this.state,h="",v=this.editor,x,p,r=c==CKEDITOR.TRISTATE_ON?"on":c==CKEDITOR.TRISTATE_DISABLED?
+"disabled":"off";this.role in{menuitemcheckbox:1,menuitemradio:1}&&(h=' aria-checked\x3d"'+(c==CKEDITOR.TRISTATE_ON?"true":"false")+'"');var q=this.getItems,w="\x26#"+("rtl"==this.editor.lang.dir?"9668":"9658")+";",t=this.name;this.icon&&!/\./.test(this.icon)&&(t=this.icon);this.command&&(x=v.getCommand(this.command),(x=v.getCommandKeystroke(x))&&(p=CKEDITOR.tools.keystrokeToString(v.lang.common.keyboard,x)));x=CKEDITOR.tools.htmlEncodeAttr(this.label);b={id:e,name:this.name,iconName:t,label:this.label,
+attrLabel:x,cls:this.className||"",state:r,hasPopup:q?"true":"false",disabled:c==CKEDITOR.TRISTATE_DISABLED,title:x+(p?" ("+p.display+")":""),ariaShortcut:p?v.lang.common.keyboardShortcut+" "+p.aria:"",href:"javascript:void('"+(x||"").replace("'")+"')",hoverFn:b._.itemOverFn,moveOutFn:b._.itemOutFn,clickFn:b._.itemClickFn,index:g,iconStyle:CKEDITOR.skin.getIconStyle(t,"rtl"==this.editor.lang.dir,t==this.icon?null:this.icon,this.iconOffset),shortcutHtml:p?m.output({shortcut:p.display}):"",arrowHtml:q?
+a.output({label:w}):"",role:this.role?this.role:"menuitem",ariaChecked:h};f.output(b,d)}}})})();CKEDITOR.config.menu_groups="clipboard,form,tablecell,tablecellproperties,tablerow,tablecolumn,table,anchor,link,image,flash,checkbox,radio,textfield,hiddenfield,imagebutton,button,select,textarea,div";CKEDITOR.plugins.add("contextmenu",{requires:"menu",onLoad:function(){CKEDITOR.plugins.contextMenu=CKEDITOR.tools.createClass({base:CKEDITOR.menu,$:function(b){this.base.call(this,b,{panel:{css:b.config.contextmenu_contentsCss,
+className:"cke_menu_panel",attributes:{"aria-label":b.lang.contextmenu.options}}})},proto:{addTarget:function(b,h){function g(){a=!1}var f,a;b.on("contextmenu",function(b){b=b.data;var g=CKEDITOR.env.webkit?f:CKEDITOR.env.mac?b.$.metaKey:b.$.ctrlKey;if(!h||!g)if(b.preventDefault(),!a){if(CKEDITOR.env.mac&&CKEDITOR.env.webkit){var g=this.editor,d=(new CKEDITOR.dom.elementPath(b.getTarget(),g.editable())).contains(function(a){return a.hasAttribute("contenteditable")},!0);d&&"false"==d.getAttribute("contenteditable")&&
+g.getSelection().fake(d)}var d=b.getTarget().getDocument(),e=b.getTarget().getDocument().getDocumentElement(),g=!d.equals(CKEDITOR.document),d=d.getWindow().getScrollPosition(),c=g?b.$.clientX:b.$.pageX||d.x+b.$.clientX,n=g?b.$.clientY:b.$.pageY||d.y+b.$.clientY;CKEDITOR.tools.setTimeout(function(){this.open(e,null,c,n)},CKEDITOR.env.ie?200:0,this)}},this);if(CKEDITOR.env.webkit){var m=function(){f=0};b.on("keydown",function(a){f=CKEDITOR.env.mac?a.data.$.metaKey:a.data.$.ctrlKey});b.on("keyup",m);
+b.on("contextmenu",m)}CKEDITOR.env.gecko&&!CKEDITOR.env.mac&&(b.on("keydown",function(b){b.data.$.shiftKey&&121===b.data.$.keyCode&&(a=!0)},null,null,0),b.on("keyup",g),b.on("contextmenu",g))},open:function(b,h,g,f){!1!==this.editor.config.enableContextMenu&&this.editor.getSelection().getType()!==CKEDITOR.SELECTION_NONE&&(this.editor.focus(),b=b||CKEDITOR.document.getDocumentElement(),this.editor.selectionChange(1),this.show(b,h,g,f))}}})},beforeInit:function(b){var h=b.contextMenu=new CKEDITOR.plugins.contextMenu(b);
+b.on("contentDom",function(){h.addTarget(b.editable(),!1!==b.config.browserContextMenuOnCtrl)});b.addCommand("contextMenu",{exec:function(b){var f=0,a=0,h=b.getSelection().getRanges(),h=h[h.length-1].getClientRects(b.editable().isInline());if(h=h[h.length-1])f=h["rtl"===b.lang.dir?"left":"right"],a=h.bottom;b.contextMenu.open(b.document.getBody().getParent(),null,f,a)}});b.setKeystroke(CKEDITOR.SHIFT+121,"contextMenu");b.setKeystroke(CKEDITOR.CTRL+CKEDITOR.SHIFT+121,"contextMenu")}});(function(){function b(a,
+b){function g(d){d=c.list[d];var b;d.equals(a.editable())||"true"==d.getAttribute("contenteditable")?(b=a.createRange(),b.selectNodeContents(d),b=b.select()):(b=a.getSelection(),b.selectElement(d));CKEDITOR.env.ie&&a.fire("selectionChange",{selection:b,path:new CKEDITOR.dom.elementPath(d)});a.focus()}function k(){e&&e.setHtml('\x3cspan class\x3d"cke_path_empty"\x3e\x26nbsp;\x3c/span\x3e');delete c.list}var d=a.ui.spaceId("path"),e,c=a._.elementsPath,n=c.idBase;b.html+='\x3cspan id\x3d"'+d+'_label" class\x3d"cke_voice_label"\x3e'+
+a.lang.elementspath.eleLabel+'\x3c/span\x3e\x3cspan id\x3d"'+d+'" class\x3d"cke_path" role\x3d"group" aria-labelledby\x3d"'+d+'_label"\x3e\x3cspan class\x3d"cke_path_empty"\x3e\x26nbsp;\x3c/span\x3e\x3c/span\x3e';a.on("uiReady",function(){var d=a.ui.space("path");d&&a.focusManager.add(d,1)});c.onClick=g;var v=CKEDITOR.tools.addFunction(g),x=CKEDITOR.tools.addFunction(function(d,b){var e=c.idBase,f;b=new CKEDITOR.dom.event(b);f="rtl"==a.lang.dir;switch(b.getKeystroke()){case f?39:37:case 9:return(f=
+CKEDITOR.document.getById(e+(d+1)))||(f=CKEDITOR.document.getById(e+"0")),f.focus(),!1;case f?37:39:case CKEDITOR.SHIFT+9:return(f=CKEDITOR.document.getById(e+(d-1)))||(f=CKEDITOR.document.getById(e+(c.list.length-1))),f.focus(),!1;case 27:return a.focus(),!1;case 13:case 32:return g(d),!1}return!0});a.on("selectionChange",function(b){for(var g=[],h=c.list=[],k=[],l=c.filters,m=!0,y=b.data.path.elements,u=y.length;u--;){var C=y[u],A=0;b=C.data("cke-display-name")?C.data("cke-display-name"):C.data("cke-real-element-type")?
+C.data("cke-real-element-type"):C.getName();(m=C.hasAttribute("contenteditable")?"true"==C.getAttribute("contenteditable"):m)||C.hasAttribute("contenteditable")||(A=1);for(var B=0;B<l.length;B++){var G=l[B](C,b);if(!1===G){A=1;break}b=G||b}A||(h.unshift(C),k.unshift(b))}h=h.length;for(l=0;l<h;l++)b=k[l],m=a.lang.elementspath.eleTitle.replace(/%1/,b),b=f.output({id:n+l,label:m,text:b,jsTitle:"javascript:void('"+b+"')",index:l,keyDownFn:x,clickFn:v}),g.unshift(b);e||(e=CKEDITOR.document.getById(d));
+k=e;k.setHtml(g.join("")+'\x3cspan class\x3d"cke_path_empty"\x3e\x26nbsp;\x3c/span\x3e');a.fire("elementsPathUpdate",{space:k})});a.on("readOnly",k);a.on("contentDomUnload",k);a.addCommand("elementsPathFocus",h.toolbarFocus);a.setKeystroke(CKEDITOR.ALT+122,"elementsPathFocus")}var h={toolbarFocus:{editorFocus:!1,readOnly:1,exec:function(a){(a=CKEDITOR.document.getById(a._.elementsPath.idBase+"0"))&&a.focus(CKEDITOR.env.ie||CKEDITOR.env.air)}}},g="";CKEDITOR.env.gecko&&CKEDITOR.env.mac&&(g+=' onkeypress\x3d"return false;"');
+CKEDITOR.env.gecko&&(g+=' onblur\x3d"this.style.cssText \x3d this.style.cssText;"');var f=CKEDITOR.addTemplate("pathItem",'\x3ca id\x3d"{id}" href\x3d"{jsTitle}" tabindex\x3d"-1" class\x3d"cke_path_item" title\x3d"{label}"'+g+' hidefocus\x3d"true"  draggable\x3d"false"  ondragstart\x3d"return false;" onkeydown\x3d"return CKEDITOR.tools.callFunction({keyDownFn},{index}, event );" onclick\x3d"CKEDITOR.tools.callFunction({clickFn},{index}); return false;" role\x3d"button" aria-label\x3d"{label}"\x3e{text}\x3c/a\x3e');
+CKEDITOR.plugins.add("elementspath",{init:function(a){a._.elementsPath={idBase:"cke_elementspath_"+CKEDITOR.tools.getNextNumber()+"_",filters:[]};a.on("uiSpace",function(f){"bottom"==f.data.space&&b(a,f.data)})}})})();(function(){function b(a,b,d){d=a.config.forceEnterMode||d;if("wysiwyg"==a.mode){b||(b=a.activeEnterMode);var f=a.elementPath();f&&!f.isContextFor("p")&&(b=CKEDITOR.ENTER_BR,d=1);a.fire("saveSnapshot");b==CKEDITOR.ENTER_BR?l(a,b,null,d):k(a,b,null,d);a.fire("saveSnapshot")}}function h(a){a=
+a.getSelection().getRanges(!0);for(var b=a.length-1;0<b;b--)a[b].deleteContents();return a[0]}function g(a){var b=a.startContainer.getAscendant(function(a){return a.type==CKEDITOR.NODE_ELEMENT&&"true"==a.getAttribute("contenteditable")},!0);if(a.root.equals(b))return a;b=new CKEDITOR.dom.range(b);b.moveToRange(a);return b}CKEDITOR.plugins.add("enterkey",{init:function(a){a.addCommand("enter",{modes:{wysiwyg:1},editorFocus:!1,exec:function(a){b(a)}});a.addCommand("shiftEnter",{modes:{wysiwyg:1},editorFocus:!1,
+exec:function(a){b(a,a.activeShiftEnterMode,1)}});a.setKeystroke([[13,"enter"],[CKEDITOR.SHIFT+13,"shiftEnter"]])}});var f=CKEDITOR.dom.walker.whitespaces(),a=CKEDITOR.dom.walker.bookmark(),m,l,k,d;CKEDITOR.plugins.enterkey={enterBlock:function(b,c,k,m){function x(a){var b;if(a===CKEDITOR.ENTER_BR||-1===CKEDITOR.tools.indexOf(["td","th"],w.lastElement.getName())||1!==w.lastElement.getChildCount())return!1;a=w.lastElement.getChild(0).clone(!0);(b=a.getBogus())&&b.remove();return a.getText().length?
+!1:!0}if(k=k||h(b)){k=g(k);var p=k.document,r=k.checkStartOfBlock(),q=k.checkEndOfBlock(),w=b.elementPath(k.startContainer),t=w.block,z=c==CKEDITOR.ENTER_DIV?"div":"p",y;if(t&&r&&q){r=t.getParent();if(r.is("li")&&1<r.getChildCount()){p=new CKEDITOR.dom.element("li");y=b.createRange();p.insertAfter(r);t.remove();y.setStart(p,0);b.getSelection().selectRanges([y]);return}if(t.is("li")||t.getParent().is("li")){t.is("li")||(t=t.getParent(),r=t.getParent());y=r.getParent();k=!t.hasPrevious();var u=!t.hasNext();
+m=b.getSelection();var z=m.createBookmarks(),C=t.getDirection(1),q=t.getAttribute("class"),A=t.getAttribute("style"),B=y.getDirection(1)!=C;b=b.enterMode!=CKEDITOR.ENTER_BR||B||A||q;if(y.is("li"))k||u?(k&&u&&r.remove(),t[u?"insertAfter":"insertBefore"](y)):t.breakParent(y);else{if(b)if(w.block.is("li")?(y=p.createElement(c==CKEDITOR.ENTER_P?"p":"div"),B&&y.setAttribute("dir",C),A&&y.setAttribute("style",A),q&&y.setAttribute("class",q),t.moveChildren(y)):y=w.block,k||u)y[k?"insertBefore":"insertAfter"](r);
+else t.breakParent(r),y.insertAfter(r);else if(t.appendBogus(!0),k||u)for(;p=t[k?"getFirst":"getLast"]();)p[k?"insertBefore":"insertAfter"](r);else for(t.breakParent(r);p=t.getLast();)p.insertAfter(r);t.remove()}m.selectBookmarks(z);return}if(t&&t.getParent().is("blockquote")){t.breakParent(t.getParent());t.getPrevious().getFirst(CKEDITOR.dom.walker.invisible(1))||t.getPrevious().remove();t.getNext().getFirst(CKEDITOR.dom.walker.invisible(1))||t.getNext().remove();k.moveToElementEditStart(t);k.select();
+return}}else if(t&&t.is("pre")&&!q){l(b,c,k,m);return}if(A=k.splitBlock(z)){b=A.previousBlock;t=A.nextBlock;r=A.wasStartOfBlock;q=A.wasEndOfBlock;t?(u=t.getParent(),u.is("li")&&(t.breakParent(u),t.move(t.getNext(),1))):b&&(u=b.getParent())&&u.is("li")&&(b.breakParent(u),u=b.getNext(),k.moveToElementEditStart(u),b.move(b.getPrevious()));if(r||q)if(x(c))k.moveToElementEditStart(k.getTouchedStartNode());else{if(b){if(b.is("li")||!d.test(b.getName())&&!b.is("pre"))y=b.clone()}else t&&(y=t.clone());y?
+m&&!y.is("li")&&y.renameNode(z):u&&u.is("li")?y=u:(y=p.createElement(z),b&&(C=b.getDirection())&&y.setAttribute("dir",C));if(p=A.elementPath)for(c=0,m=p.elements.length;c<m;c++){z=p.elements[c];if(z.equals(p.block)||z.equals(p.blockLimit))break;CKEDITOR.dtd.$removeEmpty[z.getName()]&&(z=z.clone(),y.moveChildren(z),y.append(z))}y.appendBogus();y.getParent()||k.insertNode(y);y.is("li")&&y.removeAttribute("value");!CKEDITOR.env.ie||!r||q&&b.getChildCount()||(k.moveToElementEditStart(q?b:y),k.select());
+k.moveToElementEditStart(r&&!q?t:y)}else t.is("li")&&(y=k.clone(),y.selectNodeContents(t),y=new CKEDITOR.dom.walker(y),y.evaluator=function(b){return!(a(b)||f(b)||b.type==CKEDITOR.NODE_ELEMENT&&b.getName()in CKEDITOR.dtd.$inline&&!(b.getName()in CKEDITOR.dtd.$empty))},(u=y.next())&&u.type==CKEDITOR.NODE_ELEMENT&&u.is("ul","ol")&&(CKEDITOR.env.needsBrFiller?p.createElement("br"):p.createText(" ")).insertBefore(u)),t&&k.moveToElementEditStart(t);k.select();k.scrollIntoView()}}},enterBr:function(a,b,
+f,g){if(f=f||h(a)){var l=f.document,m=f.checkEndOfBlock(),r=new CKEDITOR.dom.elementPath(a.getSelection().getStartElement()),q=r.block,w=q&&r.block.getName();g||"li"!=w?(!g&&m&&d.test(w)?(m=q.getDirection())?(l=l.createElement("div"),l.setAttribute("dir",m),l.insertAfter(q),f.setStart(l,0)):(l.createElement("br").insertAfter(q),CKEDITOR.env.gecko&&l.createText("").insertAfter(q),f.setStartAt(q.getNext(),CKEDITOR.env.ie?CKEDITOR.POSITION_BEFORE_START:CKEDITOR.POSITION_AFTER_START)):(a="pre"==w&&CKEDITOR.env.ie&&
+8>CKEDITOR.env.version?l.createText("\r"):l.createElement("br"),f.deleteContents(),f.insertNode(a),CKEDITOR.env.needsBrFiller?(l.createText("").insertAfter(a),m&&(q||r.blockLimit).appendBogus(),a.getNext().$.nodeValue="",f.setStartAt(a.getNext(),CKEDITOR.POSITION_AFTER_START)):f.setStartAt(a,CKEDITOR.POSITION_AFTER_END)),f.collapse(!0),f.select(),f.scrollIntoView()):k(a,b,f,g)}}};m=CKEDITOR.plugins.enterkey;l=m.enterBr;k=m.enterBlock;d=/^h[1-6]$/})();(function(){function b(b,g){var f={},a=[],m={nbsp:" ",
+shy:"­",gt:"\x3e",lt:"\x3c",amp:"\x26",apos:"'",quot:'"'};b=b.replace(/\b(nbsp|shy|gt|lt|amp|apos|quot)(?:,|$)/g,function(b,d){var h=g?"\x26"+d+";":m[d];f[h]=g?m[d]:"\x26"+d+";";a.push(h);return""});b=b.replace(/,$/,"");if(!g&&b){b=b.split(",");var l=document.createElement("div"),k;l.innerHTML="\x26"+b.join(";\x26")+";";k=l.innerHTML;l=null;for(l=0;l<k.length;l++){var d=k.charAt(l);f[d]="\x26"+b[l]+";";a.push(d)}}f.regex=a.join(g?"|":"");return f}CKEDITOR.plugins.add("entities",{afterInit:function(h){function g(a){return d[a]}
+function f(b){return"force"!=a.entities_processNumerical&&l[b]?l[b]:"\x26#"+b.charCodeAt(0)+";"}var a=h.config;if(h=(h=h.dataProcessor)&&h.htmlFilter){var m=[];!1!==a.basicEntities&&m.push("nbsp,gt,lt,amp");a.entities&&(m.length&&m.push("quot,iexcl,cent,pound,curren,yen,brvbar,sect,uml,copy,ordf,laquo,not,shy,reg,macr,deg,plusmn,sup2,sup3,acute,micro,para,middot,cedil,sup1,ordm,raquo,frac14,frac12,frac34,iquest,times,divide,fnof,bull,hellip,prime,Prime,oline,frasl,weierp,image,real,trade,alefsym,larr,uarr,rarr,darr,harr,crarr,lArr,uArr,rArr,dArr,hArr,forall,part,exist,empty,nabla,isin,notin,ni,prod,sum,minus,lowast,radic,prop,infin,ang,and,or,cap,cup,int,there4,sim,cong,asymp,ne,equiv,le,ge,sub,sup,nsub,sube,supe,oplus,otimes,perp,sdot,lceil,rceil,lfloor,rfloor,lang,rang,loz,spades,clubs,hearts,diams,circ,tilde,ensp,emsp,thinsp,zwnj,zwj,lrm,rlm,ndash,mdash,lsquo,rsquo,sbquo,ldquo,rdquo,bdquo,dagger,Dagger,permil,lsaquo,rsaquo,euro"),
 a.entities_latin&&m.push("Agrave,Aacute,Acirc,Atilde,Auml,Aring,AElig,Ccedil,Egrave,Eacute,Ecirc,Euml,Igrave,Iacute,Icirc,Iuml,ETH,Ntilde,Ograve,Oacute,Ocirc,Otilde,Ouml,Oslash,Ugrave,Uacute,Ucirc,Uuml,Yacute,THORN,szlig,agrave,aacute,acirc,atilde,auml,aring,aelig,ccedil,egrave,eacute,ecirc,euml,igrave,iacute,icirc,iuml,eth,ntilde,ograve,oacute,ocirc,otilde,ouml,oslash,ugrave,uacute,ucirc,uuml,yacute,thorn,yuml,OElig,oelig,Scaron,scaron,Yuml"),a.entities_greek&&m.push("Alpha,Beta,Gamma,Delta,Epsilon,Zeta,Eta,Theta,Iota,Kappa,Lambda,Mu,Nu,Xi,Omicron,Pi,Rho,Sigma,Tau,Upsilon,Phi,Chi,Psi,Omega,alpha,beta,gamma,delta,epsilon,zeta,eta,theta,iota,kappa,lambda,mu,nu,xi,omicron,pi,rho,sigmaf,sigma,tau,upsilon,phi,chi,psi,omega,thetasym,upsih,piv"),
-a.entities_additional&&m.push(a.entities_additional));var k=b(m.join(",")),l=k.regex?"["+k.regex+"]":"a^";delete k.regex;a.entities&&a.entities_processNumerical&&(l="[^ -~]|"+l);var l=new RegExp(l,"g"),d=b("nbsp,gt,lt,amp,shy",!0),e=new RegExp(d.regex,"g");h.addRules({text:function(a){return a.replace(e,g).replace(l,f)}},{applyToAll:!0,excludeNestedEditable:!0})}}})})();CKEDITOR.config.basicEntities=!0;CKEDITOR.config.entities=!0;CKEDITOR.config.entities_latin=!0;CKEDITOR.config.entities_greek=!0;
+a.entities_additional&&m.push(a.entities_additional));var l=b(m.join(",")),k=l.regex?"["+l.regex+"]":"a^";delete l.regex;a.entities&&a.entities_processNumerical&&(k="[^ -~]|"+k);var k=new RegExp(k,"g"),d=b("nbsp,gt,lt,amp,shy",!0),e=new RegExp(d.regex,"g");h.addRules({text:function(a){return a.replace(e,g).replace(k,f)}},{applyToAll:!0,excludeNestedEditable:!0})}}})})();CKEDITOR.config.basicEntities=!0;CKEDITOR.config.entities=!0;CKEDITOR.config.entities_latin=!0;CKEDITOR.config.entities_greek=!0;
 CKEDITOR.config.entities_additional="#39";CKEDITOR.plugins.add("popup");CKEDITOR.tools.extend(CKEDITOR.editor.prototype,{popup:function(b,h,g,f){h=h||"80%";g=g||"70%";"string"==typeof h&&1<h.length&&"%"==h.substr(h.length-1,1)&&(h=parseInt(window.screen.width*parseInt(h,10)/100,10));"string"==typeof g&&1<g.length&&"%"==g.substr(g.length-1,1)&&(g=parseInt(window.screen.height*parseInt(g,10)/100,10));640>h&&(h=640);420>g&&(g=420);var a=parseInt((window.screen.height-g)/2,10),m=parseInt((window.screen.width-
-h)/2,10);f=(f||"location\x3dno,menubar\x3dno,toolbar\x3dno,dependent\x3dyes,minimizable\x3dno,modal\x3dyes,alwaysRaised\x3dyes,resizable\x3dyes,scrollbars\x3dyes")+",width\x3d"+h+",height\x3d"+g+",top\x3d"+a+",left\x3d"+m;var k=window.open("",null,f,!0);if(!k)return!1;try{-1==navigator.userAgent.toLowerCase().indexOf(" chrome/")&&(k.moveTo(m,a),k.resizeTo(h,g)),k.focus(),k.location.href=b}catch(l){window.open(b,null,f,!0)}return!0}});"use strict";(function(){function b(a){this.editor=a;this.loaders=
+h)/2,10);f=(f||"location\x3dno,menubar\x3dno,toolbar\x3dno,dependent\x3dyes,minimizable\x3dno,modal\x3dyes,alwaysRaised\x3dyes,resizable\x3dyes,scrollbars\x3dyes")+",width\x3d"+h+",height\x3d"+g+",top\x3d"+a+",left\x3d"+m;var l=window.open("",null,f,!0);if(!l)return!1;try{-1==navigator.userAgent.toLowerCase().indexOf(" chrome/")&&(l.moveTo(m,a),l.resizeTo(h,g)),l.focus(),l.location.href=b}catch(k){window.open(b,null,f,!0)}return!0}});"use strict";(function(){function b(a){this.editor=a;this.loaders=
 []}function h(a,b,f){var h=a.config.fileTools_defaultFileName;this.editor=a;this.lang=a.lang;"string"===typeof b?(this.data=b,this.file=g(this.data),this.loaded=this.total=this.file.size):(this.data=null,this.file=b,this.total=this.file.size,this.loaded=0);f?this.fileName=f:this.file.name?this.fileName=this.file.name:(a=this.file.type.split("/"),h&&(a[0]=h),this.fileName=a.join("."));this.uploaded=0;this.responseData=this.uploadTotal=null;this.status="created";this.abort=function(){this.changeStatus("abort")}}
 function g(a){var b=a.match(f)[1];a=a.replace(f,"");a=atob(a);var g=[],h,d,e,c;for(h=0;h<a.length;h+=512){d=a.slice(h,h+512);e=Array(d.length);for(c=0;c<d.length;c++)e[c]=d.charCodeAt(c);d=new Uint8Array(e);g.push(d)}return new Blob(g,{type:b})}CKEDITOR.plugins.add("filetools",{beforeInit:function(a){a.uploadRepository=new b(a);a.on("fileUploadRequest",function(a){var b=a.data.fileLoader;b.xhr.open("POST",b.uploadUrl,!0);a.data.requestData.upload={file:b.file,name:b.fileName}},null,null,5);a.on("fileUploadRequest",
 function(b){var f=b.data.fileLoader,g=new FormData;b=b.data.requestData;var d=a.config.fileTools_requestHeaders,e,c;for(c in b){var h=b[c];"object"===typeof h&&h.file?g.append(c,h.file,h.name):g.append(c,h)}g.append("ckCsrfToken",CKEDITOR.tools.getCsrfToken());if(d)for(e in d)f.xhr.setRequestHeader(e,d[e]);f.xhr.send(g)},null,null,999);a.on("fileUploadResponse",function(a){var b=a.data.fileLoader,f=b.xhr,d=a.data;try{var e=JSON.parse(f.responseText);e.error&&e.error.message&&(d.message=e.error.message);
@@ -814,21 +814,21 @@ CKEDITOR.event.implementOn(b.prototype);CKEDITOR.event.implementOn(h.prototype);
 "\x26responseType\x3djson":null},isTypeSupported:function(a,b){return!!a.type.match(b)},isFileUploadSupported:"function"===typeof FileReader&&"function"===typeof(new FileReader).readAsDataURL&&"function"===typeof FormData&&"function"===typeof(new FormData).append&&"function"===typeof XMLHttpRequest&&"function"===typeof Blob})})();(function(){function b(a,b){var d=[];if(b)for(var c in b)d.push(c+"\x3d"+encodeURIComponent(b[c]));else return a;return a+(-1!=a.indexOf("?")?"\x26":"?")+d.join("\x26")}
 function h(a){return!a.match(/command=QuickUpload/)||a.match(/(\?|&)responseType=json/)?a:b(a,{responseType:"json"})}function g(a){a+="";return a.charAt(0).toUpperCase()+a.substr(1)}function f(){var a=this.getDialog(),d=a.getParentEditor();d._.filebrowserSe=this;var c=d.config["filebrowser"+g(a.getName())+"WindowWidth"]||d.config.filebrowserWindowWidth||"80%",a=d.config["filebrowser"+g(a.getName())+"WindowHeight"]||d.config.filebrowserWindowHeight||"70%",e=this.filebrowser.params||{};e.CKEditor=d.name;
 e.CKEditorFuncNum=d._.filebrowserFn;e.langCode||(e.langCode=d.langCode);e=b(this.filebrowser.url,e);d.popup(e,c,a,d.config.filebrowserWindowFeatures||d.config.fileBrowserWindowFeatures)}function a(a){var b=new CKEDITOR.dom.element(a.$.form);b&&((a=b.$.elements.ckCsrfToken)?a=new CKEDITOR.dom.element(a):(a=new CKEDITOR.dom.element("input"),a.setAttributes({name:"ckCsrfToken",type:"hidden"}),b.append(a)),a.setAttribute("value",CKEDITOR.tools.getCsrfToken()))}function m(){var a=this.getDialog();a.getParentEditor()._.filebrowserSe=
-this;return a.getContentElement(this["for"][0],this["for"][1]).getInputElement().$.value&&a.getContentElement(this["for"][0],this["for"][1]).getAction()?!0:!1}function k(a,d,c){var e=c.params||{};e.CKEditor=a.name;e.CKEditorFuncNum=a._.filebrowserFn;e.langCode||(e.langCode=a.langCode);d.action=b(c.url,e);d.filebrowser=c}function l(b,e,z,r){if(r&&r.length)for(var p,q=r.length;q--;)if(p=r[q],"hbox"!=p.type&&"vbox"!=p.type&&"fieldset"!=p.type||l(b,e,z,p.children),p.filebrowser)if("string"==typeof p.filebrowser&&
-(p.filebrowser={action:"fileButton"==p.type?"QuickUpload":"Browse",target:p.filebrowser}),"Browse"==p.filebrowser.action){var u=p.filebrowser.url;void 0===u&&(u=b.config["filebrowser"+g(e)+"BrowseUrl"],void 0===u&&(u=b.config.filebrowserBrowseUrl));u&&(p.onClick=f,p.filebrowser.url=u,p.hidden=!1)}else if("QuickUpload"==p.filebrowser.action&&p["for"]&&(u=p.filebrowser.url,void 0===u&&(u=b.config["filebrowser"+g(e)+"UploadUrl"],void 0===u&&(u=b.config.filebrowserUploadUrl)),u)){var t=p.onClick;p.onClick=
-function(e){var f=e.sender,g=f.getDialog().getContentElement(this["for"][0],this["for"][1]).getInputElement(),k=CKEDITOR.fileTools&&CKEDITOR.fileTools.isFileUploadSupported;if(t&&!1===t.call(f,e))return!1;if(m.call(f,e)){if("form"!==b.config.filebrowserUploadMethod&&k)return e=b.uploadRepository.create(g.$.files[0]),e.on("uploaded",function(a){var b=a.sender.responseData;c.call(a.sender.editor,b.url,b.message)}),e.on("error",d.bind(this)),e.on("abort",d.bind(this)),e.loadAndUpload(h(u)),"xhr";a(g);
-return!0}return!1};p.filebrowser.url=u;p.hidden=!1;k(b,z.getContents(p["for"][0]).get(p["for"][1]),p.filebrowser)}}function d(a){var b={};try{b=JSON.parse(a.sender.xhr.response)||{}}catch(d){}this.enable();alert(b.error?b.error.message:a.sender.message)}function e(a,b,d){if(-1!==d.indexOf(";")){d=d.split(";");for(var c=0;c<d.length;c++)if(e(a,b,d[c]))return!0;return!1}return(a=a.getContents(b).get(d).filebrowser)&&a.url}function c(a,b){var d=this._.filebrowserSe.getDialog(),c=this._.filebrowserSe["for"],
+this;return a.getContentElement(this["for"][0],this["for"][1]).getInputElement().$.value&&a.getContentElement(this["for"][0],this["for"][1]).getAction()?!0:!1}function l(a,d,c){var e=c.params||{};e.CKEditor=a.name;e.CKEditorFuncNum=a._.filebrowserFn;e.langCode||(e.langCode=a.langCode);d.action=b(c.url,e);d.filebrowser=c}function k(b,e,x,p){if(p&&p.length)for(var r,q=p.length;q--;)if(r=p[q],"hbox"!=r.type&&"vbox"!=r.type&&"fieldset"!=r.type||k(b,e,x,r.children),r.filebrowser)if("string"==typeof r.filebrowser&&
+(r.filebrowser={action:"fileButton"==r.type?"QuickUpload":"Browse",target:r.filebrowser}),"Browse"==r.filebrowser.action){var w=r.filebrowser.url;void 0===w&&(w=b.config["filebrowser"+g(e)+"BrowseUrl"],void 0===w&&(w=b.config.filebrowserBrowseUrl));w&&(r.onClick=f,r.filebrowser.url=w,r.hidden=!1)}else if("QuickUpload"==r.filebrowser.action&&r["for"]&&(w=r.filebrowser.url,void 0===w&&(w=b.config["filebrowser"+g(e)+"UploadUrl"],void 0===w&&(w=b.config.filebrowserUploadUrl)),w)){var t=r.onClick;r.onClick=
+function(e){var f=e.sender,g=f.getDialog().getContentElement(this["for"][0],this["for"][1]).getInputElement(),k=CKEDITOR.fileTools&&CKEDITOR.fileTools.isFileUploadSupported;if(t&&!1===t.call(f,e))return!1;if(m.call(f,e)){if("form"!==b.config.filebrowserUploadMethod&&k)return e=b.uploadRepository.create(g.$.files[0]),e.on("uploaded",function(a){var b=a.sender.responseData;c.call(a.sender.editor,b.url,b.message)}),e.on("error",d.bind(this)),e.on("abort",d.bind(this)),e.loadAndUpload(h(w)),"xhr";a(g);
+return!0}return!1};r.filebrowser.url=w;r.hidden=!1;l(b,x.getContents(r["for"][0]).get(r["for"][1]),r.filebrowser)}}function d(a){var b={};try{b=JSON.parse(a.sender.xhr.response)||{}}catch(d){}this.enable();alert(b.error?b.error.message:a.sender.message)}function e(a,b,d){if(-1!==d.indexOf(";")){d=d.split(";");for(var c=0;c<d.length;c++)if(e(a,b,d[c]))return!0;return!1}return(a=a.getContents(b).get(d).filebrowser)&&a.url}function c(a,b){var d=this._.filebrowserSe.getDialog(),c=this._.filebrowserSe["for"],
 e=this._.filebrowserSe.filebrowser.onSelect;c&&d.getContentElement(c[0],c[1]).reset();if("function"!=typeof b||!1!==b.call(this._.filebrowserSe))if(!e||!1!==e.call(this._.filebrowserSe,a,b))if("string"==typeof b&&b&&alert(b),a&&(c=this._.filebrowserSe,d=c.getDialog(),c=c.filebrowser.target||null))if(c=c.split(":"),e=d.getContentElement(c[0],c[1]))e.setValue(a),d.selectPage(c[0])}CKEDITOR.plugins.add("filebrowser",{requires:"popup,filetools",init:function(a){a._.filebrowserFn=CKEDITOR.tools.addFunction(c,
-a);a.on("destroy",function(){CKEDITOR.tools.removeFunction(this._.filebrowserFn)})}});CKEDITOR.on("dialogDefinition",function(a){if(a.editor.plugins.filebrowser)for(var b=a.data.definition,d,c=0;c<b.contents.length;++c)if(d=b.contents[c])l(a.editor,a.data.name,b,d.elements),d.hidden&&d.filebrowser&&(d.hidden=!e(b,d.id,d.filebrowser))})})();(function(){function b(b){var a=b.config,m=b.fire("uiSpace",{space:"top",html:""}).html,k=function(){function c(a,b,e){d.setStyle(b,g(e));d.setStyle("position",
-a)}function e(a){var b=m.getDocumentPosition();switch(a){case "top":c("absolute","top",b.y-t-x);break;case "pin":c("fixed","top",D);break;case "bottom":c("absolute","top",b.y+(q.height||q.bottom-q.top)+x)}l=a}var l,m,p,q,u,t,y,v=a.floatSpaceDockedOffsetX||0,x=a.floatSpaceDockedOffsetY||0,B=a.floatSpacePinnedOffsetX||0,D=a.floatSpacePinnedOffsetY||0;return function(c){if(m=b.editable()){var n=c&&"focus"==c.name;n&&d.show();b.fire("floatingSpaceLayout",{show:n});d.removeStyle("left");d.removeStyle("right");
-p=d.getClientRect();q=m.getClientRect();u=h.getViewPaneSize();t=p.height;y="pageXOffset"in h.$?h.$.pageXOffset:CKEDITOR.document.$.documentElement.scrollLeft;l?(t+x<=q.top?e("top"):t+x>u.height-q.bottom?e("pin"):e("bottom"),c=u.width/2,c=a.floatSpacePreferRight?"right":0<q.left&&q.right<u.width&&q.width>p.width?"rtl"==a.contentsLangDirection?"right":"left":c-q.left>q.right-c?"left":"right",p.width>u.width?(c="left",n=0):(n="left"==c?0<q.left?q.left:0:q.right<u.width?u.width-q.right:0,n+p.width>u.width&&
-(c="left"==c?"right":"left",n=0)),d.setStyle(c,g(("pin"==l?B:v)+n+("pin"==l?0:"left"==c?y:-y)))):(l="pin",e("pin"),k(c))}}}();if(m){var l=new CKEDITOR.template('\x3cdiv id\x3d"cke_{name}" class\x3d"cke {id} cke_reset_all cke_chrome cke_editor_{name} cke_float cke_{langDir} '+CKEDITOR.env.cssClass+'" dir\x3d"{langDir}" title\x3d"'+(CKEDITOR.env.gecko?" ":"")+'" lang\x3d"{langCode}" role\x3d"application" style\x3d"{style}"'+(b.title?' aria-labelledby\x3d"cke_{name}_arialbl"':" ")+"\x3e"+(b.title?'\x3cspan id\x3d"cke_{name}_arialbl" class\x3d"cke_voice_label"\x3e{voiceLabel}\x3c/span\x3e':
-" ")+'\x3cdiv class\x3d"cke_inner"\x3e\x3cdiv id\x3d"{topId}" class\x3d"cke_top" role\x3d"presentation"\x3e{content}\x3c/div\x3e\x3c/div\x3e\x3c/div\x3e'),d=CKEDITOR.document.getBody().append(CKEDITOR.dom.element.createFromHtml(l.output({content:m,id:b.id,langDir:b.lang.dir,langCode:b.langCode,name:b.name,style:"display:none;z-index:"+(a.baseFloatZIndex-1),topId:b.ui.spaceId("top"),voiceLabel:b.title}))),e=CKEDITOR.tools.eventsBuffer(500,k),c=CKEDITOR.tools.eventsBuffer(100,k);d.unselectable();d.on("mousedown",
-function(a){a=a.data;a.getTarget().hasAscendant("a",1)||a.preventDefault()});b.on("focus",function(a){k(a);b.on("change",e.input);h.on("scroll",c.input);h.on("resize",c.input)});b.on("blur",function(){d.hide();b.removeListener("change",e.input);h.removeListener("scroll",c.input);h.removeListener("resize",c.input)});b.on("destroy",function(){h.removeListener("scroll",c.input);h.removeListener("resize",c.input);d.clearCustomData();d.remove()});b.focusManager.hasFocus&&d.show();b.focusManager.add(d,
+a);a.on("destroy",function(){CKEDITOR.tools.removeFunction(this._.filebrowserFn)})}});CKEDITOR.on("dialogDefinition",function(a){if(a.editor.plugins.filebrowser)for(var b=a.data.definition,d,c=0;c<b.contents.length;++c)if(d=b.contents[c])k(a.editor,a.data.name,b,d.elements),d.hidden&&d.filebrowser&&(d.hidden=!e(b,d.id,d.filebrowser))})})();(function(){function b(b){var a=b.config,m=b.fire("uiSpace",{space:"top",html:""}).html,l=function(){function c(a,b,e){d.setStyle(b,g(e));d.setStyle("position",
+a)}function e(a){var b=m.getDocumentPosition();switch(a){case "top":c("absolute","top",b.y-t-u);break;case "pin":c("fixed","top",A);break;case "bottom":c("absolute","top",b.y+(q.height||q.bottom-q.top)+u)}k=a}var k,m,r,q,w,t,z,y=a.floatSpaceDockedOffsetX||0,u=a.floatSpaceDockedOffsetY||0,C=a.floatSpacePinnedOffsetX||0,A=a.floatSpacePinnedOffsetY||0;return function(c){if(m=b.editable()){var n=c&&"focus"==c.name;n&&d.show();b.fire("floatingSpaceLayout",{show:n});d.removeStyle("left");d.removeStyle("right");
+r=d.getClientRect();q=m.getClientRect();w=h.getViewPaneSize();t=r.height;z="pageXOffset"in h.$?h.$.pageXOffset:CKEDITOR.document.$.documentElement.scrollLeft;k?(t+u<=q.top?e("top"):t+u>w.height-q.bottom?e("pin"):e("bottom"),c=w.width/2,c=a.floatSpacePreferRight?"right":0<q.left&&q.right<w.width&&q.width>r.width?"rtl"==a.contentsLangDirection?"right":"left":c-q.left>q.right-c?"left":"right",r.width>w.width?(c="left",n=0):(n="left"==c?0<q.left?q.left:0:q.right<w.width?w.width-q.right:0,n+r.width>w.width&&
+(c="left"==c?"right":"left",n=0)),d.setStyle(c,g(("pin"==k?C:y)+n+("pin"==k?0:"left"==c?z:-z)))):(k="pin",e("pin"),l(c))}}}();if(m){var k=new CKEDITOR.template('\x3cdiv id\x3d"cke_{name}" class\x3d"cke {id} cke_reset_all cke_chrome cke_editor_{name} cke_float cke_{langDir} '+CKEDITOR.env.cssClass+'" dir\x3d"{langDir}" title\x3d"'+(CKEDITOR.env.gecko?" ":"")+'" lang\x3d"{langCode}" role\x3d"application" style\x3d"{style}"'+(b.title?' aria-labelledby\x3d"cke_{name}_arialbl"':" ")+"\x3e"+(b.title?'\x3cspan id\x3d"cke_{name}_arialbl" class\x3d"cke_voice_label"\x3e{voiceLabel}\x3c/span\x3e':
+" ")+'\x3cdiv class\x3d"cke_inner"\x3e\x3cdiv id\x3d"{topId}" class\x3d"cke_top" role\x3d"presentation"\x3e{content}\x3c/div\x3e\x3c/div\x3e\x3c/div\x3e'),d=CKEDITOR.document.getBody().append(CKEDITOR.dom.element.createFromHtml(k.output({content:m,id:b.id,langDir:b.lang.dir,langCode:b.langCode,name:b.name,style:"display:none;z-index:"+(a.baseFloatZIndex-1),topId:b.ui.spaceId("top"),voiceLabel:b.title}))),e=CKEDITOR.tools.eventsBuffer(500,l),c=CKEDITOR.tools.eventsBuffer(100,l);d.unselectable();d.on("mousedown",
+function(a){a=a.data;a.getTarget().hasAscendant("a",1)||a.preventDefault()});b.on("focus",function(a){l(a);b.on("change",e.input);h.on("scroll",c.input);h.on("resize",c.input)});b.on("blur",function(){d.hide();b.removeListener("change",e.input);h.removeListener("scroll",c.input);h.removeListener("resize",c.input)});b.on("destroy",function(){h.removeListener("scroll",c.input);h.removeListener("resize",c.input);d.clearCustomData();d.remove()});b.focusManager.hasFocus&&d.show();b.focusManager.add(d,
 1)}}var h=CKEDITOR.document.getWindow(),g=CKEDITOR.tools.cssLength;CKEDITOR.plugins.add("floatingspace",{init:function(f){f.on("loaded",function(){b(this)},null,null,20)}})})();CKEDITOR.plugins.add("listblock",{requires:"panel",onLoad:function(){var b=CKEDITOR.addTemplate("panel-list",'\x3cul role\x3d"presentation" class\x3d"cke_panel_list"\x3e{items}\x3c/ul\x3e'),h=CKEDITOR.addTemplate("panel-list-item",'\x3cli id\x3d"{id}" class\x3d"cke_panel_listItem" role\x3dpresentation\x3e\x3ca id\x3d"{id}_option" _cke_focus\x3d1 hidefocus\x3dtrue title\x3d"{title}" draggable\x3d"false" ondragstart\x3d"return false;" href\x3d"javascript:void(\'{val}\')"  onclick\x3d"{onclick}CKEDITOR.tools.callFunction({clickFn},\'{val}\'); return false;" role\x3d"option"\x3e{text}\x3c/a\x3e\x3c/li\x3e'),
 g=CKEDITOR.addTemplate("panel-list-group",'\x3ch1 id\x3d"{id}" draggable\x3d"false" ondragstart\x3d"return false;" class\x3d"cke_panel_grouptitle" role\x3d"presentation" \x3e{label}\x3c/h1\x3e'),f=/\'/g;CKEDITOR.ui.panel.prototype.addListBlock=function(a,b){return this.addBlock(a,new CKEDITOR.ui.listBlock(this.getHolderElement(),b))};CKEDITOR.ui.listBlock=CKEDITOR.tools.createClass({base:CKEDITOR.ui.panel.block,$:function(a,b){b=b||{};var f=b.attributes||(b.attributes={});(this.multiSelect=!!b.multiSelect)&&
 (f["aria-multiselectable"]=!0);!f.role&&(f.role="listbox");this.base.apply(this,arguments);this.element.setAttribute("role",f.role);f=this.keys;f[40]="next";f[9]="next";f[38]="prev";f[CKEDITOR.SHIFT+9]="prev";f[32]=CKEDITOR.env.ie?"mouseup":"click";CKEDITOR.env.ie&&(f[13]="mouseup");this._.pendingHtml=[];this._.pendingList=[];this._.items={};this._.groups={}},_:{close:function(){if(this._.started){var a=b.output({items:this._.pendingList.join("")});this._.pendingList=[];this._.pendingHtml.push(a);
-delete this._.started}},getClick:function(){this._.click||(this._.click=CKEDITOR.tools.addFunction(function(a){var b=this.toggle(a);if(this.onClick)this.onClick(a,b)},this));return this._.click}},proto:{add:function(a,b,g){var l=CKEDITOR.tools.getNextId();this._.started||(this._.started=1,this._.size=this._.size||0);this._.items[a]=l;var d;d=CKEDITOR.tools.htmlEncodeAttr(a).replace(f,"\\'");a={id:l,val:d,onclick:CKEDITOR.env.ie?'return false;" onmouseup\x3d"CKEDITOR.tools.getMouseButton(event)\x3d\x3d\x3dCKEDITOR.MOUSE_BUTTON_LEFT\x26\x26':
+delete this._.started}},getClick:function(){this._.click||(this._.click=CKEDITOR.tools.addFunction(function(a){var b=this.toggle(a);if(this.onClick)this.onClick(a,b)},this));return this._.click}},proto:{add:function(a,b,g){var k=CKEDITOR.tools.getNextId();this._.started||(this._.started=1,this._.size=this._.size||0);this._.items[a]=k;var d;d=CKEDITOR.tools.htmlEncodeAttr(a).replace(f,"\\'");a={id:k,val:d,onclick:CKEDITOR.env.ie?'return false;" onmouseup\x3d"CKEDITOR.tools.getMouseButton(event)\x3d\x3d\x3dCKEDITOR.MOUSE_BUTTON_LEFT\x26\x26':
 "",clickFn:this._.getClick(),title:CKEDITOR.tools.htmlEncodeAttr(g||a),text:b||a};this._.pendingList.push(h.output(a))},startGroup:function(a){this._.close();var b=CKEDITOR.tools.getNextId();this._.groups[a]=b;this._.pendingHtml.push(g.output({id:b,label:a}))},commit:function(){this._.close();this.element.appendHtml(this._.pendingHtml.join(""));delete this._.size;this._.pendingHtml=[]},toggle:function(a){var b=this.isMarked(a);b?this.unmark(a):this.mark(a);return!b},hideGroup:function(a){var b=(a=
 this.element.getDocument().getById(this._.groups[a]))&&a.getNext();a&&(a.setStyle("display","none"),b&&"ul"==b.getName()&&b.setStyle("display","none"))},hideItem:function(a){this.element.getDocument().getById(this._.items[a]).setStyle("display","none")},showAll:function(){var a=this._.items,b=this._.groups,f=this.element.getDocument(),g;for(g in a)f.getById(a[g]).setStyle("display","");for(var d in b)a=f.getById(b[d]),g=a.getNext(),a.setStyle("display",""),g&&"ul"==g.getName()&&g.setStyle("display",
 "")},mark:function(a){this.multiSelect||this.unmarkAll();a=this._.items[a];var b=this.element.getDocument().getById(a);b.addClass("cke_selected");this.element.getDocument().getById(a+"_option").setAttribute("aria-selected",!0);this.onMark&&this.onMark(b)},markFirstDisplayed:function(){var a=this;this._.markFirstDisplayed(function(){a.multiSelect||a.unmarkAll()})},unmark:function(a){var b=this.element.getDocument();a=this._.items[a];var f=b.getById(a);f.removeClass("cke_selected");b.getById(a+"_option").removeAttribute("aria-selected");
@@ -837,15 +837,15 @@ b.getItem(++g);){if(a.equals(f)){this._.focusIndex=g;break}}else this.element.fo
 (CKEDITOR.env.gecko&&!CKEDITOR.env.hc?"":" href\x3d\"javascript:void('{titleJs}')\"")+' hidefocus\x3d"true" role\x3d"button" aria-labelledby\x3d"{id}_label" aria-haspopup\x3d"listbox"',h="";CKEDITOR.env.gecko&&CKEDITOR.env.mac&&(b+=' onkeypress\x3d"return false;"');CKEDITOR.env.gecko&&(b+=' onblur\x3d"this.style.cssText \x3d this.style.cssText;"');CKEDITOR.env.ie&&(h='return false;" onmouseup\x3d"CKEDITOR.tools.getMouseButton(event)\x3d\x3dCKEDITOR.MOUSE_BUTTON_LEFT\x26\x26');var b=b+(' onkeydown\x3d"return CKEDITOR.tools.callFunction({keydownFn},event,this);" onfocus\x3d"return CKEDITOR.tools.callFunction({focusFn},event);" onclick\x3d"'+
 h+'CKEDITOR.tools.callFunction({clickFn},this);return false;"\x3e\x3cspan id\x3d"{id}_text" class\x3d"cke_combo_text cke_combo_inlinelabel"\x3e{label}\x3c/span\x3e\x3cspan class\x3d"cke_combo_open"\x3e\x3cspan class\x3d"cke_combo_arrow"\x3e'+(CKEDITOR.env.hc?"\x26#9660;":CKEDITOR.env.air?"\x26nbsp;":"")+"\x3c/span\x3e\x3c/span\x3e\x3c/a\x3e\x3c/span\x3e"),g=CKEDITOR.addTemplate("combo",b);CKEDITOR.UI_RICHCOMBO="richcombo";CKEDITOR.ui.richCombo=CKEDITOR.tools.createClass({$:function(b){CKEDITOR.tools.extend(this,
 b,{canGroup:!1,title:b.label,modes:{wysiwyg:1},editorFocus:1});b=this.panel||{};delete this.panel;this.id=CKEDITOR.tools.getNextNumber();this.document=b.parent&&b.parent.getDocument()||CKEDITOR.document;b.className="cke_combopanel";b.block={multiSelect:b.multiSelect,attributes:b.attributes};b.toolbarRelated=!0;this._={panelDefinition:b,items:{},listeners:[]}},proto:{renderHtml:function(b){var a=[];this.render(b,a);return a.join("")},render:function(b,a){function h(){if(this.getState()!=CKEDITOR.TRISTATE_ON){var a=
-this.modes[b.mode]?CKEDITOR.TRISTATE_OFF:CKEDITOR.TRISTATE_DISABLED;b.readOnly&&!this.readOnly&&(a=CKEDITOR.TRISTATE_DISABLED);this.setState(a);this.setValue("");a!=CKEDITOR.TRISTATE_DISABLED&&this.refresh&&this.refresh()}}var k=CKEDITOR.env,l="cke_"+this.id,d=CKEDITOR.tools.addFunction(function(a){z&&(b.unlockSelection(1),z=0);c.execute(a)},this),e=this,c={id:l,combo:this,focus:function(){CKEDITOR.document.getById(l).getChild(1).focus()},execute:function(a){var d=e._;if(d.state!=CKEDITOR.TRISTATE_DISABLED)if(e.createPanel(b),
+this.modes[b.mode]?CKEDITOR.TRISTATE_OFF:CKEDITOR.TRISTATE_DISABLED;b.readOnly&&!this.readOnly&&(a=CKEDITOR.TRISTATE_DISABLED);this.setState(a);this.setValue("");a!=CKEDITOR.TRISTATE_DISABLED&&this.refresh&&this.refresh()}}var l=CKEDITOR.env,k="cke_"+this.id,d=CKEDITOR.tools.addFunction(function(a){x&&(b.unlockSelection(1),x=0);c.execute(a)},this),e=this,c={id:k,combo:this,focus:function(){CKEDITOR.document.getById(k).getChild(1).focus()},execute:function(a){var d=e._;if(d.state!=CKEDITOR.TRISTATE_DISABLED)if(e.createPanel(b),
 d.on)d.panel.hide();else{e.commit();var c=e.getValue();c?d.list.mark(c):d.list.unmarkAll();d.panel.showBlock(e.id,new CKEDITOR.dom.element(a),4)}},clickFn:d};this._.listeners.push(b.on("activeFilterChange",h,this));this._.listeners.push(b.on("mode",h,this));this._.listeners.push(b.on("selectionChange",h,this));!this.readOnly&&this._.listeners.push(b.on("readOnly",h,this));var n=CKEDITOR.tools.addFunction(function(a,b){a=new CKEDITOR.dom.event(a);var e=a.getKeystroke();switch(e){case 13:case 32:case 40:CKEDITOR.tools.callFunction(d,
-b);break;default:c.onkey(c,e)}a.preventDefault()}),w=CKEDITOR.tools.addFunction(function(){c.onfocus&&c.onfocus()}),z=0;c.keyDownFn=n;k={id:l,name:this.name||this.command,label:this.label,title:this.title,cls:this.className||"",titleJs:k.gecko&&!k.hc?"":(this.title||"").replace("'",""),keydownFn:n,focusFn:w,clickFn:d};g.output(k,a);if(this.onRender)this.onRender();return c},createPanel:function(b){if(!this._.panel){var a=this._.panelDefinition,g=this._.panelDefinition.block,h=a.parent||CKEDITOR.document.getBody(),
-l="cke_combopanel__"+this.name,d=new CKEDITOR.ui.floatPanel(b,h,a),a=d.addListBlock(this.id,g),e=this;d.onShow=function(){this.element.addClass(l);e.setState(CKEDITOR.TRISTATE_ON);e._.on=1;e.editorFocus&&!b.focusManager.hasFocus&&b.focus();if(e.onOpen)e.onOpen()};d.onHide=function(a){this.element.removeClass(l);e.setState(e.modes&&e.modes[b.mode]?CKEDITOR.TRISTATE_OFF:CKEDITOR.TRISTATE_DISABLED);e._.on=0;if(!a&&e.onClose)e.onClose()};d.onEscape=function(){d.hide(1)};a.onClick=function(a,b){e.onClick&&
+b);break;default:c.onkey(c,e)}a.preventDefault()}),v=CKEDITOR.tools.addFunction(function(){c.onfocus&&c.onfocus()}),x=0;c.keyDownFn=n;l={id:k,name:this.name||this.command,label:this.label,title:this.title,cls:this.className||"",titleJs:l.gecko&&!l.hc?"":(this.title||"").replace("'",""),keydownFn:n,focusFn:v,clickFn:d};g.output(l,a);if(this.onRender)this.onRender();return c},createPanel:function(b){if(!this._.panel){var a=this._.panelDefinition,g=this._.panelDefinition.block,h=a.parent||CKEDITOR.document.getBody(),
+k="cke_combopanel__"+this.name,d=new CKEDITOR.ui.floatPanel(b,h,a),a=d.addListBlock(this.id,g),e=this;d.onShow=function(){this.element.addClass(k);e.setState(CKEDITOR.TRISTATE_ON);e._.on=1;e.editorFocus&&!b.focusManager.hasFocus&&b.focus();if(e.onOpen)e.onOpen()};d.onHide=function(a){this.element.removeClass(k);e.setState(e.modes&&e.modes[b.mode]?CKEDITOR.TRISTATE_OFF:CKEDITOR.TRISTATE_DISABLED);e._.on=0;if(!a&&e.onClose)e.onClose()};d.onEscape=function(){d.hide(1)};a.onClick=function(a,b){e.onClick&&
 e.onClick.call(e,a,b);d.hide()};this._.panel=d;this._.list=a;d.getBlock(this.id).onHide=function(){e._.on=0;e.setState(CKEDITOR.TRISTATE_OFF)};this.init&&this.init()}},setValue:function(b,a){this._.value=b;var g=this.document.getById("cke_"+this.id+"_text");g&&(b||a?g.removeClass("cke_combo_inlinelabel"):(a=this.label,g.addClass("cke_combo_inlinelabel")),g.setText("undefined"!=typeof a?a:b))},getValue:function(){return this._.value||""},unmarkAll:function(){this._.list.unmarkAll()},mark:function(b){this._.list.mark(b)},
 hideItem:function(b){this._.list.hideItem(b)},hideGroup:function(b){this._.list.hideGroup(b)},showAll:function(){this._.list.showAll()},add:function(b,a,g){this._.items[b]=g||b;this._.list.add(b,a,g)},startGroup:function(b){this._.list.startGroup(b)},commit:function(){this._.committed||(this._.list.commit(),this._.committed=1,CKEDITOR.ui.fire("ready",this));this._.committed=1},setState:function(b){if(this._.state!=b){var a=this.document.getById("cke_"+this.id);a.setState(b,"cke_combo");b==CKEDITOR.TRISTATE_DISABLED?
 a.setAttribute("aria-disabled",!0):a.removeAttribute("aria-disabled");this._.state=b}},getState:function(){return this._.state},enable:function(){this._.state==CKEDITOR.TRISTATE_DISABLED&&this.setState(this._.lastState)},disable:function(){this._.state!=CKEDITOR.TRISTATE_DISABLED&&(this._.lastState=this._.state,this.setState(CKEDITOR.TRISTATE_DISABLED))},destroy:function(){CKEDITOR.tools.array.forEach(this._.listeners,function(b){b.removeListener()});this._.listeners=[]}},statics:{handler:{create:function(b){return new CKEDITOR.ui.richCombo(b)}}}});
-CKEDITOR.ui.prototype.addRichCombo=function(b,a){this.add(b,CKEDITOR.UI_RICHCOMBO,a)}})();CKEDITOR.plugins.add("format",{requires:"richcombo",init:function(b){if(!b.blockless){for(var h=b.config,g=b.lang.format,f=h.format_tags.split(";"),a={},m=0,k=[],l=0;l<f.length;l++){var d=f[l],e=new CKEDITOR.style(h["format_"+d]);if(!b.filter.customConfig||b.filter.check(e))m++,a[d]=e,a[d]._.enterMode=b.config.enterMode,k.push(e)}0!==m&&b.ui.addRichCombo("Format",{label:g.label,title:g.panelTitle,toolbar:"styles,20",
-allowedContent:k,panel:{css:[CKEDITOR.skin.getPath("editor")].concat(h.contentsCss),multiSelect:!1,attributes:{"aria-label":g.panelTitle}},init:function(){this.startGroup(g.panelTitle);for(var b in a){var d=g["tag_"+b];this.add(b,a[b].buildPreview(d),d)}},onClick:function(d){b.focus();b.fire("saveSnapshot");d=a[d];var e=b.elementPath();d.checkActive(e,b)||b.applyStyle(d);setTimeout(function(){b.fire("saveSnapshot")},0)},onRender:function(){b.on("selectionChange",function(d){var e=this.getValue();
+CKEDITOR.ui.prototype.addRichCombo=function(b,a){this.add(b,CKEDITOR.UI_RICHCOMBO,a)}})();CKEDITOR.plugins.add("format",{requires:"richcombo",init:function(b){if(!b.blockless){for(var h=b.config,g=b.lang.format,f=h.format_tags.split(";"),a={},m=0,l=[],k=0;k<f.length;k++){var d=f[k],e=new CKEDITOR.style(h["format_"+d]);if(!b.filter.customConfig||b.filter.check(e))m++,a[d]=e,a[d]._.enterMode=b.config.enterMode,l.push(e)}0!==m&&b.ui.addRichCombo("Format",{label:g.label,title:g.panelTitle,toolbar:"styles,20",
+allowedContent:l,panel:{css:[CKEDITOR.skin.getPath("editor")].concat(h.contentsCss),multiSelect:!1,attributes:{"aria-label":g.panelTitle}},init:function(){this.startGroup(g.panelTitle);for(var b in a){var d=g["tag_"+b];this.add(b,a[b].buildPreview(d),d)}},onClick:function(d){b.focus();b.fire("saveSnapshot");d=a[d];var e=b.elementPath();d.checkActive(e,b)||b.applyStyle(d);setTimeout(function(){b.fire("saveSnapshot")},0)},onRender:function(){b.on("selectionChange",function(d){var e=this.getValue();
 d=d.data.path;this.refresh();for(var f in a)if(a[f].checkActive(d,b)){f!=e&&this.setValue(f,b.lang.format["tag_"+f]);return}this.setValue("")},this)},onOpen:function(){this.showAll();for(var d in a)b.activeFilter.check(a[d])||this.hideItem(d)},refresh:function(){var d=b.elementPath();if(d){if(d.isContextFor("p"))for(var e in a)if(b.activeFilter.check(a[e]))return;this.setState(CKEDITOR.TRISTATE_DISABLED)}}})}}});CKEDITOR.config.format_tags="p;h1;h2;h3;h4;h5;h6;pre;address;div";CKEDITOR.config.format_p=
 {element:"p"};CKEDITOR.config.format_div={element:"div"};CKEDITOR.config.format_pre={element:"pre"};CKEDITOR.config.format_address={element:"address"};CKEDITOR.config.format_h1={element:"h1"};CKEDITOR.config.format_h2={element:"h2"};CKEDITOR.config.format_h3={element:"h3"};CKEDITOR.config.format_h4={element:"h4"};CKEDITOR.config.format_h5={element:"h5"};CKEDITOR.config.format_h6={element:"h6"};(function(){var b={canUndo:!1,exec:function(b){var g=b.document.createElement("hr");b.insertElement(g)},
 allowedContent:"hr",requiredContent:"hr"};CKEDITOR.plugins.add("horizontalrule",{init:function(h){h.blockless||(h.addCommand("horizontalrule",b),h.ui.addButton&&h.ui.addButton("HorizontalRule",{label:h.lang.horizontalrule.toolbar,command:"horizontalrule",toolbar:"insert,40"}))}})})();CKEDITOR.plugins.add("htmlwriter",{init:function(b){var h=new CKEDITOR.htmlWriter;h.forceSimpleAmpersand=b.config.forceSimpleAmpersand;h.indentationChars=b.config.dataIndentationChars||"\t";b.dataProcessor.writer=h}});
@@ -857,9 +857,9 @@ this.indentation();this._.output.push("\x3c!--",b,"--\x3e")},lineBreak:function(
 h}}});"use strict";(function(){function b(a,b){CKEDITOR.tools.extend(this,{editor:a,editable:a.editable(),doc:a.document,win:a.window},b,!0);this.inline=this.editable.isInline();this.inline||(this.frame=this.win.getFrame());this.target=this[this.inline?"editable":"doc"]}function h(a,b){CKEDITOR.tools.extend(this,b,{editor:a},!0)}function g(b,e){var c=b.editable();CKEDITOR.tools.extend(this,{editor:b,editable:c,inline:c.isInline(),doc:b.document,win:b.window,container:CKEDITOR.document.getBody(),winTop:CKEDITOR.document.getWindow()},
 e,!0);this.hidden={};this.visible={};this.inline||(this.frame=this.win.getFrame());this.queryViewport();var f=CKEDITOR.tools.bind(this.queryViewport,this),g=CKEDITOR.tools.bind(this.hideVisible,this),h=CKEDITOR.tools.bind(this.removeAll,this);c.attachListener(this.winTop,"resize",f);c.attachListener(this.winTop,"scroll",f);c.attachListener(this.winTop,"resize",g);c.attachListener(this.win,"scroll",g);c.attachListener(this.inline?c:this.frame,"mouseout",function(a){var b=a.data.$.clientX;a=a.data.$.clientY;
 this.queryViewport();(b<=this.rect.left||b>=this.rect.right||a<=this.rect.top||a>=this.rect.bottom)&&this.hideVisible();(0>=b||b>=this.winTopPane.width||0>=a||a>=this.winTopPane.height)&&this.hideVisible()},this);c.attachListener(b,"resize",f);c.attachListener(b,"mode",h);b.on("destroy",h);this.lineTpl=(new CKEDITOR.template('\x3cdiv data-cke-lineutils-line\x3d"1" class\x3d"cke_reset_all" style\x3d"{lineStyle}"\x3e\x3cspan style\x3d"{tipLeftStyle}"\x3e\x26nbsp;\x3c/span\x3e\x3cspan style\x3d"{tipRightStyle}"\x3e\x26nbsp;\x3c/span\x3e\x3c/div\x3e')).output({lineStyle:CKEDITOR.tools.writeCssText(CKEDITOR.tools.extend({},
-m,this.lineStyle,!0)),tipLeftStyle:CKEDITOR.tools.writeCssText(CKEDITOR.tools.extend({},a,{left:"0px","border-left-color":"red","border-width":"6px 0 6px 6px"},this.tipCss,this.tipLeftStyle,!0)),tipRightStyle:CKEDITOR.tools.writeCssText(CKEDITOR.tools.extend({},a,{right:"0px","border-right-color":"red","border-width":"6px 6px 6px 0"},this.tipCss,this.tipRightStyle,!0))})}function f(a){var b;if(b=a&&a.type==CKEDITOR.NODE_ELEMENT)b=!(k[a.getComputedStyle("float")]||k[a.getAttribute("align")]);return b&&
-!l[a.getComputedStyle("position")]}CKEDITOR.plugins.add("lineutils");CKEDITOR.LINEUTILS_BEFORE=1;CKEDITOR.LINEUTILS_AFTER=2;CKEDITOR.LINEUTILS_INSIDE=4;b.prototype={start:function(a){var b=this,c=this.editor,f=this.doc,g,h,k,l,q=CKEDITOR.tools.eventsBuffer(50,function(){c.readOnly||"wysiwyg"!=c.mode||(b.relations={},(h=f.$.elementFromPoint(k,l))&&h.nodeType&&(g=new CKEDITOR.dom.element(h),b.traverseSearch(g),isNaN(k+l)||b.pixelSearch(g,k,l),a&&a(b.relations,k,l)))});this.listener=this.editable.attachListener(this.target,
-"mousemove",function(a){k=a.data.$.clientX;l=a.data.$.clientY;q.input()});this.editable.attachListener(this.inline?this.editable:this.frame,"mouseout",function(){q.reset()})},stop:function(){this.listener&&this.listener.removeListener()},getRange:function(){var a={};a[CKEDITOR.LINEUTILS_BEFORE]=CKEDITOR.POSITION_BEFORE_START;a[CKEDITOR.LINEUTILS_AFTER]=CKEDITOR.POSITION_AFTER_END;a[CKEDITOR.LINEUTILS_INSIDE]=CKEDITOR.POSITION_AFTER_START;return function(b){var c=this.editor.createRange();c.moveToPosition(this.relations[b.uid].element,
+m,this.lineStyle,!0)),tipLeftStyle:CKEDITOR.tools.writeCssText(CKEDITOR.tools.extend({},a,{left:"0px","border-left-color":"red","border-width":"6px 0 6px 6px"},this.tipCss,this.tipLeftStyle,!0)),tipRightStyle:CKEDITOR.tools.writeCssText(CKEDITOR.tools.extend({},a,{right:"0px","border-right-color":"red","border-width":"6px 6px 6px 0"},this.tipCss,this.tipRightStyle,!0))})}function f(a){var b;if(b=a&&a.type==CKEDITOR.NODE_ELEMENT)b=!(l[a.getComputedStyle("float")]||l[a.getAttribute("align")]);return b&&
+!k[a.getComputedStyle("position")]}CKEDITOR.plugins.add("lineutils");CKEDITOR.LINEUTILS_BEFORE=1;CKEDITOR.LINEUTILS_AFTER=2;CKEDITOR.LINEUTILS_INSIDE=4;b.prototype={start:function(a){var b=this,c=this.editor,f=this.doc,g,h,k,l,m=CKEDITOR.tools.eventsBuffer(50,function(){c.readOnly||"wysiwyg"!=c.mode||(b.relations={},(h=f.$.elementFromPoint(k,l))&&h.nodeType&&(g=new CKEDITOR.dom.element(h),b.traverseSearch(g),isNaN(k+l)||b.pixelSearch(g,k,l),a&&a(b.relations,k,l)))});this.listener=this.editable.attachListener(this.target,
+"mousemove",function(a){k=a.data.$.clientX;l=a.data.$.clientY;m.input()});this.editable.attachListener(this.inline?this.editable:this.frame,"mouseout",function(){m.reset()})},stop:function(){this.listener&&this.listener.removeListener()},getRange:function(){var a={};a[CKEDITOR.LINEUTILS_BEFORE]=CKEDITOR.POSITION_BEFORE_START;a[CKEDITOR.LINEUTILS_AFTER]=CKEDITOR.POSITION_AFTER_END;a[CKEDITOR.LINEUTILS_INSIDE]=CKEDITOR.POSITION_AFTER_START;return function(b){var c=this.editor.createRange();c.moveToPosition(this.relations[b.uid].element,
 a[b.type]);return c}}(),store:function(){function a(b,d,f){var g=b.getUniqueId();g in f?f[g].type|=d:f[g]={element:b,type:d}}return function(b,c){var g;c&CKEDITOR.LINEUTILS_AFTER&&f(g=b.getNext())&&g.isVisible()&&(a(g,CKEDITOR.LINEUTILS_BEFORE,this.relations),c^=CKEDITOR.LINEUTILS_AFTER);c&CKEDITOR.LINEUTILS_INSIDE&&f(g=b.getFirst())&&g.isVisible()&&(a(g,CKEDITOR.LINEUTILS_BEFORE,this.relations),c^=CKEDITOR.LINEUTILS_INSIDE);a(b,c,this.relations)}}(),traverseSearch:function(a){var b,c,g;do if(g=a.$["data-cke-expando"],
 !(g&&g in this.relations)){if(a.equals(this.editable))break;if(f(a))for(b in this.lookups)(c=this.lookups[b](a))&&this.store(a,c)}while((!a||a.type!=CKEDITOR.NODE_ELEMENT||"true"!=a.getAttribute("contenteditable"))&&(a=a.getParent()))},pixelSearch:function(){function a(d,g,h,k,l){for(var m=0,q;l(h);){h+=k;if(25==++m)break;if(q=this.doc.$.elementFromPoint(g,h))if(q==d)m=0;else if(b(d,q)&&(m=0,f(q=new CKEDITOR.dom.element(q))))return q}}var b=CKEDITOR.env.ie||CKEDITOR.env.webkit?function(a,b){return a.contains(b)}:
 function(a,b){return!!(a.compareDocumentPosition(b)&16)};return function(b,e,g){var h=this.win.getViewPaneSize().height,k=a.call(this,b.$,e,g,-1,function(a){return 0<a});e=a.call(this,b.$,e,g,1,function(a){return a<h});if(k)for(this.traverseSearch(k);!k.getParent().equals(b);)k=k.getParent();if(e)for(this.traverseSearch(e);!e.getParent().equals(b);)e=e.getParent();for(;k||e;){k&&(k=k.getNext(f));if(!k||k.equals(e))break;this.traverseSearch(k);e&&(e=e.getPrevious(f));if(!e||e.equals(k))break;this.traverseSearch(e)}}}(),
@@ -871,218 +871,219 @@ a.hide();this.hidden[b]=a;delete this.visible[b]},showLine:function(a){var b=a.g
 break}f||this.showLine(f=this.addLine());f.setCustomData("hash",this.hash);this.visible[f.getUniqueId()]=f;f.setStyles(c);b&&b(f)}},getStyle:function(a,b){var c=this.relations[a],f=this.locations[a][b],g={};g.width=c.siblingRect?Math.max(c.siblingRect.width,c.elementRect.width):c.elementRect.width;g.top=this.inline?f+this.winTopScroll.y-this.rect.relativeY:this.rect.top+this.winTopScroll.y+f;if(g.top-this.winTopScroll.y<this.rect.top||g.top-this.winTopScroll.y>this.rect.bottom)return!1;this.inline?
 g.left=c.elementRect.left-this.rect.relativeX:(0<c.elementRect.left?g.left=this.rect.left+c.elementRect.left:(g.width+=c.elementRect.left,g.left=this.rect.left),0<(c=g.left+g.width-(this.rect.left+this.winPane.width))&&(g.width-=c));g.left+=this.winTopScroll.x;for(var h in g)g[h]=CKEDITOR.tools.cssLength(g[h]);return g},addLine:function(){var a=CKEDITOR.dom.element.createFromHtml(this.lineTpl);a.appendTo(this.container);return a},prepare:function(a,b){this.relations=a;this.locations=b;this.hash=Math.random()},
 cleanup:function(){var a,b;for(b in this.visible)a=this.visible[b],a.getCustomData("hash")!==this.hash&&this.hideLine(a)},queryViewport:function(){this.winPane=this.win.getViewPaneSize();this.winTopScroll=this.winTop.getScrollPosition();this.winTopPane=this.winTop.getViewPaneSize();this.rect=this.getClientRect(this.inline?this.editable:this.frame)},getClientRect:function(a){a=a.getClientRect();var b=this.container.getDocumentPosition(),c=this.container.getComputedStyle("position");a.relativeX=a.relativeY=
-0;"static"!=c&&(a.relativeY=b.y,a.relativeX=b.x,a.top-=a.relativeY,a.bottom-=a.relativeY,a.left-=a.relativeX,a.right-=a.relativeX);return a}};var k={left:1,right:1,center:1},l={absolute:1,fixed:1};CKEDITOR.plugins.lineutils={finder:b,locator:h,liner:g}})();(function(){function b(b){return b.getName&&!b.hasAttribute("data-cke-temp")}CKEDITOR.plugins.add("widgetselection",{init:function(b){if(CKEDITOR.env.webkit){var g=CKEDITOR.plugins.widgetselection;b.on("contentDom",function(b){b=b.editor;var a=
+0;"static"!=c&&(a.relativeY=b.y,a.relativeX=b.x,a.top-=a.relativeY,a.bottom-=a.relativeY,a.left-=a.relativeX,a.right-=a.relativeX);return a}};var l={left:1,right:1,center:1},k={absolute:1,fixed:1};CKEDITOR.plugins.lineutils={finder:b,locator:h,liner:g}})();(function(){function b(b){return b.getName&&!b.hasAttribute("data-cke-temp")}CKEDITOR.plugins.add("widgetselection",{init:function(b){if(CKEDITOR.env.webkit){var g=CKEDITOR.plugins.widgetselection;b.on("contentDom",function(b){b=b.editor;var a=
 b.editable();a.attachListener(a,"keydown",function(b){b.data.getKeystroke()==CKEDITOR.CTRL+65&&CKEDITOR.tools.setTimeout(function(){g.addFillers(a)||g.removeFillers(a)},0)},null,null,-1);b.on("selectionCheck",function(a){g.removeFillers(a.editor.editable())});b.on("paste",function(a){a.data.dataValue=g.cleanPasteData(a.data.dataValue)});"selectall"in b.plugins&&g.addSelectAllIntegration(b)})}}});CKEDITOR.plugins.widgetselection={startFiller:null,endFiller:null,fillerAttribute:"data-cke-filler-webkit",
 fillerContent:"\x26nbsp;",fillerTagName:"div",addFillers:function(h){var g=h.editor;if(!this.isWholeContentSelected(h)&&0<h.getChildCount()){var f=h.getFirst(b),a=h.getLast(b);f&&f.type==CKEDITOR.NODE_ELEMENT&&!f.isEditable()&&(this.startFiller=this.createFiller(),h.append(this.startFiller,1));a&&a.type==CKEDITOR.NODE_ELEMENT&&!a.isEditable()&&(this.endFiller=this.createFiller(!0),h.append(this.endFiller,0));if(this.hasFiller(h))return g=g.createRange(),g.selectNodeContents(h),g.select(),!0}return!1},
 removeFillers:function(b){if(this.hasFiller(b)&&!this.isWholeContentSelected(b)){var g=b.findOne(this.fillerTagName+"["+this.fillerAttribute+"\x3dstart]"),f=b.findOne(this.fillerTagName+"["+this.fillerAttribute+"\x3dend]");this.startFiller&&g&&this.startFiller.equals(g)?this.removeFiller(this.startFiller,b):this.startFiller=g;this.endFiller&&f&&this.endFiller.equals(f)?this.removeFiller(this.endFiller,b):this.endFiller=f}},cleanPasteData:function(b){b&&b.length&&(b=b.replace(this.createFillerRegex(),
 "").replace(this.createFillerRegex(!0),""));return b},isWholeContentSelected:function(b){var g=b.editor.getSelection().getRanges()[0];return!g||g&&g.collapsed?!1:(g=g.clone(),g.enlarge(CKEDITOR.ENLARGE_ELEMENT),!!(g&&b&&g.startContainer&&g.endContainer&&0===g.startOffset&&g.endOffset===b.getChildCount()&&g.startContainer.equals(b)&&g.endContainer.equals(b)))},hasFiller:function(b){return 0<b.find(this.fillerTagName+"["+this.fillerAttribute+"]").count()},createFiller:function(b){var g=new CKEDITOR.dom.element(this.fillerTagName);
-g.setHtml(this.fillerContent);g.setAttribute(this.fillerAttribute,b?"end":"start");g.setAttribute("data-cke-temp",1);g.setStyles({display:"block",width:0,height:0,padding:0,border:0,margin:0,position:"absolute",top:0,left:"-9999px",opacity:0,overflow:"hidden"});return g},removeFiller:function(b,g){if(b){var f=g.editor,a=g.editor.getSelection().getRanges()[0].startPath(),m=f.createRange(),k,l;a.contains(b)&&(k=b.getHtml(),l=!0);a="start"==b.getAttribute(this.fillerAttribute);b.remove();k&&0<k.length&&
-k!=this.fillerContent?(g.insertHtmlIntoRange(k,f.getSelection().getRanges()[0]),m.setStartAt(g.getChild(g.getChildCount()-1),CKEDITOR.POSITION_BEFORE_END),f.getSelection().selectRanges([m])):l&&(a?m.setStartAt(g.getFirst().getNext(),CKEDITOR.POSITION_AFTER_START):m.setEndAt(g.getLast().getPrevious(),CKEDITOR.POSITION_BEFORE_END),g.editor.getSelection().selectRanges([m]))}},createFillerRegex:function(b){var g=this.createFiller(b).getOuterHtml().replace(/style="[^"]*"/gi,'style\x3d"[^"]*"').replace(/>[^<]*</gi,
-"\x3e[^\x3c]*\x3c");return new RegExp((b?"":"^")+g+(b?"$":""))},addSelectAllIntegration:function(b){var g=this;b.editable().attachListener(b,"beforeCommandExec",function(f){var a=b.editable();"selectAll"==f.data.name&&a&&g.addFillers(a)},null,null,9999)}}})();"use strict";(function(){function b(a){this.editor=a;this.registered={};this.instances={};this.selected=[];this.widgetHoldingFocusedEditable=this.focused=null;this._={nextId:0,upcasts:[],upcastCallbacks:[],filters:{}};G(this);A(this);this.on("checkWidgets",
-k);this.editor.on("contentDomInvalidated",this.checkWidgets,this);D(this);v(this);x(this);y(this);B(this)}function h(a,b,c,d,e){var f=a.editor;CKEDITOR.tools.extend(this,d,{editor:f,id:b,inline:"span"==c.getParent().getName(),element:c,data:CKEDITOR.tools.extend({},"function"==typeof d.defaults?d.defaults():d.defaults),dataReady:!1,inited:!1,ready:!1,edit:h.prototype.edit,focusedEditable:null,definition:d,repository:a,draggable:!1!==d.draggable,_:{downcastFn:d.downcast&&"string"==typeof d.downcast?
-d.downcasts[d.downcast]:d.downcast}},!0);a.fire("instanceCreated",this);O(this,d);this.init&&this.init();this.inited=!0;(a=this.element.data("cke-widget-data"))&&this.setData(JSON.parse(decodeURIComponent(a)));e&&this.setData(e);this.data.classes||this.setData("classes",this.getClasses());this.dataReady=!0;aa(this);this.fire("data",this.data);this.isInited()&&f.editable().contains(this.wrapper)&&(this.ready=!0,this.fire("ready"))}function g(a,b,d){CKEDITOR.dom.element.call(this,b.$);this.editor=a;
+g.setHtml(this.fillerContent);g.setAttribute(this.fillerAttribute,b?"end":"start");g.setAttribute("data-cke-temp",1);g.setStyles({display:"block",width:0,height:0,padding:0,border:0,margin:0,position:"absolute",top:0,left:"-9999px",opacity:0,overflow:"hidden"});return g},removeFiller:function(b,g){if(b){var f=g.editor,a=g.editor.getSelection().getRanges()[0].startPath(),m=f.createRange(),l,k;a.contains(b)&&(l=b.getHtml(),k=!0);a="start"==b.getAttribute(this.fillerAttribute);b.remove();l&&0<l.length&&
+l!=this.fillerContent?(g.insertHtmlIntoRange(l,f.getSelection().getRanges()[0]),m.setStartAt(g.getChild(g.getChildCount()-1),CKEDITOR.POSITION_BEFORE_END),f.getSelection().selectRanges([m])):k&&(a?m.setStartAt(g.getFirst().getNext(),CKEDITOR.POSITION_AFTER_START):m.setEndAt(g.getLast().getPrevious(),CKEDITOR.POSITION_BEFORE_END),g.editor.getSelection().selectRanges([m]))}},createFillerRegex:function(b){var g=this.createFiller(b).getOuterHtml().replace(/style="[^"]*"/gi,'style\x3d"[^"]*"').replace(/>[^<]*</gi,
+"\x3e[^\x3c]*\x3c");return new RegExp((b?"":"^")+g+(b?"$":""))},addSelectAllIntegration:function(b){var g=this;b.editable().attachListener(b,"beforeCommandExec",function(f){var a=b.editable();"selectAll"==f.data.name&&a&&g.addFillers(a)},null,null,9999)}}})();"use strict";(function(){function b(a){this.editor=a;this.registered={};this.instances={};this.selected=[];this.widgetHoldingFocusedEditable=this.focused=null;this._={nextId:0,upcasts:[],upcastCallbacks:[],filters:{}};G(this);B(this);this.on("checkWidgets",
+l);this.editor.on("contentDomInvalidated",this.checkWidgets,this);A(this);y(this);u(this);z(this);C(this)}function h(a,b,d,c,e){var f=a.editor;CKEDITOR.tools.extend(this,c,{editor:f,id:b,inline:"span"==d.getParent().getName(),element:d,data:CKEDITOR.tools.extend({},"function"==typeof c.defaults?c.defaults():c.defaults),dataReady:!1,inited:!1,ready:!1,edit:h.prototype.edit,focusedEditable:null,definition:c,repository:a,draggable:!1!==c.draggable,_:{downcastFn:c.downcast&&"string"==typeof c.downcast?
+c.downcasts[c.downcast]:c.downcast}},!0);a.fire("instanceCreated",this);I(this,c);this.init&&this.init();this.inited=!0;(a=this.element.data("cke-widget-data"))&&this.setData(JSON.parse(decodeURIComponent(a)));e&&this.setData(e);this.data.classes||this.setData("classes",this.getClasses());this.dataReady=!0;Z(this);this.fire("data",this.data);this.isInited()&&f.editable().contains(this.wrapper)&&(this.ready=!0,this.fire("ready"))}function g(a,b,d){CKEDITOR.dom.element.call(this,b.$);this.editor=a;
 this._={};b=this.filter=d.filter;CKEDITOR.dtd[this.getName()].p?(this.enterMode=b?b.getAllowedEnterMode(a.enterMode):a.enterMode,this.shiftEnterMode=b?b.getAllowedEnterMode(a.shiftEnterMode,!0):a.shiftEnterMode):this.enterMode=this.shiftEnterMode=CKEDITOR.ENTER_BR}function f(a,b){a.addCommand(b.name,{exec:function(a,d){function c(){a.widgets.finalizeCreation(h)}var e=a.widgets.focused;if(e&&e.name==b.name)e.edit();else if(b.insert)b.insert({editor:a,commandData:d});else if(b.template){var e="function"==
 typeof b.defaults?b.defaults():b.defaults,e=CKEDITOR.dom.element.createFromHtml(b.template.output(e),a.document),f,g=a.widgets.wrapElement(e,b.name),h=new CKEDITOR.dom.documentFragment(g.getDocument());h.append(g);(f=a.widgets.initOn(e,b,d&&d.startupData))?(e=f.once("edit",function(b){if(b.data.dialog)f.once("dialog",function(b){b=b.data;var d,e;d=b.once("ok",c,null,null,20);e=b.once("cancel",function(b){b.data&&!1===b.data.hide||a.widgets.destroy(f,!0)});b.once("hide",function(){d.removeListener();
 e.removeListener()})});else c()},null,null,999),f.edit(),e.removeListener()):c()}},allowedContent:b.allowedContent,requiredContent:b.requiredContent,contentForms:b.contentForms,contentTransformations:b.contentTransformations})}function a(a,b){function d(a,c){var e=b.upcast.split(","),f,g;for(g=0;g<e.length;g++)if(f=e[g],f===a.name)return b.upcasts[f].call(this,a,c);return!1}function c(b,d,e){var f=CKEDITOR.tools.getIndex(a._.upcasts,function(a){return a[2]>e});0>f&&(f=a._.upcasts.length);a._.upcasts.splice(f,
-0,[CKEDITOR.tools.bind(b,d),d.name,e])}var e=b.upcast,f=b.upcastPriority||10;e&&("string"==typeof e?c(d,b,f):c(e,b,f))}function m(a,b){a.focused=null;if(b.isInited()){var d=b.editor.checkDirty();a.fire("widgetBlurred",{widget:b});b.setFocused(!1);!d&&b.editor.resetDirty()}}function k(a){a=a.data;if("wysiwyg"==this.editor.mode){var b=this.editor.editable(),d=this.instances,c,e,f,g;if(b){for(c in d)d[c].isReady()&&!b.contains(d[c].wrapper)&&this.destroy(d[c],!0);if(a&&a.initOnlyNew)d=this.initOnAll();
-else{var k=b.find(".cke_widget_wrapper"),d=[];c=0;for(e=k.count();c<e;c++){f=k.getItem(c);if(g=!this.getByElement(f,!0)){a:{g=p;for(var l=f;l=l.getParent();)if(g(l)){g=!0;break a}g=!1}g=!g}g&&b.contains(f)&&(f.addClass("cke_widget_new"),d.push(this.initOn(f.getFirst(h.isDomWidgetElement))))}}a&&a.focusInited&&1==d.length&&d[0].focus()}}}function l(a){if("undefined"!=typeof a.attributes&&a.attributes["data-widget"]){var b=d(a),c=e(a),f=!1;b&&b.value&&b.value.match(/^\s/g)&&(b.parent.attributes["data-cke-white-space-first"]=
+0,[CKEDITOR.tools.bind(b,d),d.name,e])}var e=b.upcast,f=b.upcastPriority||10;e&&("string"==typeof e?c(d,b,f):c(e,b,f))}function m(a,b){a.focused=null;if(b.isInited()){var d=b.editor.checkDirty();a.fire("widgetBlurred",{widget:b});b.setFocused(!1);!d&&b.editor.resetDirty()}}function l(a){a=a.data;if("wysiwyg"==this.editor.mode){var b=this.editor.editable(),d=this.instances,c,e,f,g;if(b){for(c in d)d[c].isReady()&&!b.contains(d[c].wrapper)&&this.destroy(d[c],!0);if(a&&a.initOnlyNew)d=this.initOnAll();
+else{var k=b.find(".cke_widget_wrapper"),d=[];c=0;for(e=k.count();c<e;c++){f=k.getItem(c);if(g=!this.getByElement(f,!0)){a:{g=r;for(var l=f;l=l.getParent();)if(g(l)){g=!0;break a}g=!1}g=!g}g&&b.contains(f)&&(f.addClass("cke_widget_new"),d.push(this.initOn(f.getFirst(h.isDomWidgetElement))))}}a&&a.focusInited&&1==d.length&&d[0].focus()}}}function k(a){if("undefined"!=typeof a.attributes&&a.attributes["data-widget"]){var b=d(a),c=e(a),f=!1;b&&b.value&&b.value.match(/^\s/g)&&(b.parent.attributes["data-cke-white-space-first"]=
 1,b.value=b.value.replace(/^\s/g,"\x26nbsp;"),f=!0);c&&c.value&&c.value.match(/\s$/g)&&(c.parent.attributes["data-cke-white-space-last"]=1,c.value=c.value.replace(/\s$/g,"\x26nbsp;"),f=!0);f&&(a.attributes["data-cke-widget-white-space"]=1)}}function d(a){return a.find(function(a){return 3===a.type},!0).shift()}function e(a){return a.find(function(a){return 3===a.type},!0).pop()}function c(a,b,d){if(!d.allowedContent&&!d.disallowedContent)return null;var c=this._.filters[a];c||(this._.filters[a]=c=
 {});a=c[b];a||(a=d.allowedContent?new CKEDITOR.filter(d.allowedContent):this.editor.filter.clone(),c[b]=a,d.disallowedContent&&a.disallow(d.disallowedContent));return a}function n(a){var b=[],d=a._.upcasts,c=a._.upcastCallbacks;return{toBeWrapped:b,iterator:function(a){var e,f,g,k,l;if("data-cke-widget-wrapper"in a.attributes)return(a=a.getFirst(h.isParserWidgetElement))&&b.push([a]),!1;if("data-widget"in a.attributes)return b.push([a]),!1;if(l=d.length){if(a.attributes["data-cke-widget-upcasted"])return!1;
-k=0;for(e=c.length;k<e;++k)if(!1===c[k](a))return;for(k=0;k<l;++k)if(e=d[k],g={},f=e[0](a,g))return f instanceof CKEDITOR.htmlParser.element&&(a=f),a.attributes["data-cke-widget-data"]=encodeURIComponent(JSON.stringify(g)),a.attributes["data-cke-widget-upcasted"]=1,b.push([a,e[1]]),!1}}}}function w(a,b){return{tabindex:-1,contenteditable:"false","data-cke-widget-wrapper":1,"data-cke-filter":"off","class":"cke_widget_wrapper cke_widget_new cke_widget_"+(a?"inline":"block")+(b?" cke_widget_"+b:"")}}
-function z(a,b,d){if(a.type==CKEDITOR.NODE_ELEMENT){var c=CKEDITOR.dtd[a.name];if(c&&!c[d.name]){var c=a.split(b),e=a.parent;b=c.getIndex();a.children.length||(--b,a.remove());c.children.length||c.remove();return z(e,b,d)}}a.add(d,b)}function r(a,b){return"boolean"==typeof a.inline?a.inline:!!CKEDITOR.dtd.$inline[b]}function p(a){return a.hasAttribute("data-cke-temp")}function q(a,b,d,c){var e=a.editor;e.fire("lockSnapshot");d?(c=d.data("cke-widget-editable"),c=b.editables[c],a.widgetHoldingFocusedEditable=
-b,b.focusedEditable=c,d.addClass("cke_widget_editable_focused"),c.filter&&e.setActiveFilter(c.filter),e.setActiveEnterMode(c.enterMode,c.shiftEnterMode)):(c||b.focusedEditable.removeClass("cke_widget_editable_focused"),b.focusedEditable=null,a.widgetHoldingFocusedEditable=null,e.setActiveFilter(null),e.setActiveEnterMode(null,null));e.fire("unlockSnapshot")}function u(a){a.contextMenu&&a.contextMenu.addListener(function(b){if(b=a.widgets.getByElement(b,!0))return b.fire("contextMenu",{})})}function t(a,
-b){return CKEDITOR.tools.trim(b)}function y(a){var b=a.editor,d=CKEDITOR.plugins.lineutils;b.on("dragstart",function(d){var c=d.data.target;h.isDomDragHandler(c)&&(c=a.getByElement(c),d.data.dataTransfer.setData("cke/widget-id",c.id),b.focus(),c.focus())});b.on("drop",function(d){var c=d.data.dataTransfer,e=c.getData("cke/widget-id"),f=c.getTransferType(b),c=b.createRange();""!==e&&f===CKEDITOR.DATA_TRANSFER_CROSS_EDITORS?d.cancel():""!==e&&f==CKEDITOR.DATA_TRANSFER_INTERNAL&&(e=a.instances[e])&&
+k=0;for(e=c.length;k<e;++k)if(!1===c[k](a))return;for(k=0;k<l;++k)if(e=d[k],g={},f=e[0](a,g))return f instanceof CKEDITOR.htmlParser.element&&(a=f),a.attributes["data-cke-widget-data"]=encodeURIComponent(JSON.stringify(g)),a.attributes["data-cke-widget-upcasted"]=1,b.push([a,e[1]]),!1}}}}function v(a,b){return{tabindex:-1,contenteditable:"false","data-cke-widget-wrapper":1,"data-cke-filter":"off","class":"cke_widget_wrapper cke_widget_new cke_widget_"+(a?"inline":"block")+(b?" cke_widget_"+b:"")}}
+function x(a,b,d){if(a.type==CKEDITOR.NODE_ELEMENT){var c=CKEDITOR.dtd[a.name];if(c&&!c[d.name]){var c=a.split(b),e=a.parent;b=c.getIndex();a.children.length||(--b,a.remove());c.children.length||c.remove();return x(e,b,d)}}a.add(d,b)}function p(a,b){return"boolean"==typeof a.inline?a.inline:!!CKEDITOR.dtd.$inline[b]}function r(a){return a.hasAttribute("data-cke-temp")}function q(a,b,d,c){var e=a.editor;e.fire("lockSnapshot");d?(c=d.data("cke-widget-editable"),c=b.editables[c],a.widgetHoldingFocusedEditable=
+b,b.focusedEditable=c,d.addClass("cke_widget_editable_focused"),c.filter&&e.setActiveFilter(c.filter),e.setActiveEnterMode(c.enterMode,c.shiftEnterMode)):(c||b.focusedEditable.removeClass("cke_widget_editable_focused"),b.focusedEditable=null,a.widgetHoldingFocusedEditable=null,e.setActiveFilter(null),e.setActiveEnterMode(null,null));e.fire("unlockSnapshot")}function w(a){a.contextMenu&&a.contextMenu.addListener(function(b){if(b=a.widgets.getByElement(b,!0))return b.fire("contextMenu",{})})}function t(a,
+b){return CKEDITOR.tools.trim(b)}function z(a){var b=a.editor,d=CKEDITOR.plugins.lineutils;b.on("dragstart",function(d){var c=d.data.target;h.isDomDragHandler(c)&&(c=a.getByElement(c),d.data.dataTransfer.setData("cke/widget-id",c.id),b.focus(),c.focus())});b.on("drop",function(d){var c=d.data.dataTransfer,e=c.getData("cke/widget-id"),f=c.getTransferType(b),c=b.createRange();""!==e&&f===CKEDITOR.DATA_TRANSFER_CROSS_EDITORS?d.cancel():""!==e&&f==CKEDITOR.DATA_TRANSFER_INTERNAL&&(e=a.instances[e])&&
 (c.setStartBefore(e.wrapper),c.setEndAfter(e.wrapper),d.data.dragRange=c,delete CKEDITOR.plugins.clipboard.dragStartContainerChildCount,delete CKEDITOR.plugins.clipboard.dragEndContainerChildCount,d.data.dataTransfer.setData("text/html",e.getClipboardHtml()),b.widgets.destroy(e,!0))});b.on("contentDom",function(){var c=b.editable();CKEDITOR.tools.extend(a,{finder:new d.finder(b,{lookups:{"default":function(b){if(!b.is(CKEDITOR.dtd.$listItem)&&b.is(CKEDITOR.dtd.$block)&&!h.isDomNestedEditable(b)&&
-!a._.draggedWidget.wrapper.contains(b)){var d=h.getNestedEditable(c,b);if(d){b=a._.draggedWidget;if(a.getByElement(d)==b)return;d=CKEDITOR.filter.instances[d.data("cke-filter")];b=b.requiredContent;if(d&&b&&!d.check(b))return}return CKEDITOR.LINEUTILS_BEFORE|CKEDITOR.LINEUTILS_AFTER}}}}),locator:new d.locator(b),liner:new d.liner(b,{lineStyle:{cursor:"move !important","border-top-color":"#666"},tipLeftStyle:{"border-left-color":"#666"},tipRightStyle:{"border-right-color":"#666"}})},!0)})}function v(a){var b=
+!a._.draggedWidget.wrapper.contains(b)){var d=h.getNestedEditable(c,b);if(d){b=a._.draggedWidget;if(a.getByElement(d)==b)return;d=CKEDITOR.filter.instances[d.data("cke-filter")];b=b.requiredContent;if(d&&b&&!d.check(b))return}return CKEDITOR.LINEUTILS_BEFORE|CKEDITOR.LINEUTILS_AFTER}}}}),locator:new d.locator(b),liner:new d.liner(b,{lineStyle:{cursor:"move !important","border-top-color":"#666"},tipLeftStyle:{"border-left-color":"#666"},tipRightStyle:{"border-right-color":"#666"}})},!0)})}function y(a){var b=
 a.editor;b.on("contentDom",function(){var d=b.editable(),c=d.isInline()?d:b.document,e,f;d.attachListener(c,"mousedown",function(d){var c=d.data.getTarget();e=c instanceof CKEDITOR.dom.element?a.getByElement(c):null;f=0;e&&(e.inline&&c.type==CKEDITOR.NODE_ELEMENT&&c.hasAttribute("data-cke-widget-drag-handler")?(f=1,a.focused!=e&&b.getSelection().removeAllRanges()):h.getNestedEditable(e.wrapper,c)?e=null:(d.data.preventDefault(),CKEDITOR.env.ie||e.focus()))});d.attachListener(c,"mouseup",function(){f&&
-e&&e.wrapper&&(f=0,e.focus())});CKEDITOR.env.ie&&d.attachListener(c,"mouseup",function(){setTimeout(function(){e&&e.wrapper&&d.contains(e.wrapper)&&(e.focus(),e=null)})})});b.on("doubleclick",function(b){var d=a.getByElement(b.data.element);if(d&&!h.getNestedEditable(d.wrapper,b.data.element))return d.fire("doubleclick",{element:b.data.element})},null,null,1)}function x(a){a.editor.on("key",function(b){var d=a.focused,c=a.widgetHoldingFocusedEditable,e;d?e=d.fire("key",{keyCode:b.data.keyCode}):c&&
-(d=b.data.keyCode,b=c.focusedEditable,d==CKEDITOR.CTRL+65?(d=b.getBogus(),c=c.editor.createRange(),c.selectNodeContents(b),d&&c.setEndAt(d,CKEDITOR.POSITION_BEFORE_START),c.select(),e=!1):8==d||46==d?(e=c.editor.getSelection().getRanges(),c=e[0],e=!(1==e.length&&c.collapsed&&c.checkBoundaryOfElement(b,CKEDITOR[8==d?"START":"END"]))):e=void 0);return e},null,null,1)}function B(a){function b(c){1>a.selected.length||M(d,"cut"===c.name)}var d=a.editor;d.on("contentDom",function(){var a=d.editable();a.attachListener(a,
-"copy",b);a.attachListener(a,"cut",b)})}function D(a){var b=a.editor;b.on("selectionCheck",function(){a.fire("checkSelection")});a.on("checkSelection",a.checkSelection,a);b.on("selectionChange",function(d){var c=(d=h.getNestedEditable(b.editable(),d.data.selection.getStartElement()))&&a.getByElement(d),e=a.widgetHoldingFocusedEditable;e?e===c&&e.focusedEditable.equals(d)||(q(a,e,null),c&&d&&q(a,c,d)):c&&d&&q(a,c,d)});b.on("dataReady",function(){C(a).commit()});b.on("blur",function(){var b;(b=a.focused)&&
-m(a,b);(b=a.widgetHoldingFocusedEditable)&&q(a,b,null)})}function A(a){var b=a.editor,c={};b.on("toDataFormat",function(b){var f=CKEDITOR.tools.getNextNumber(),g=[];b.data.downcastingSessionId=f;c[f]=g;b.data.dataValue.forEach(function(b){var c=b.attributes,f;if("data-cke-widget-white-space"in c){f=d(b);var k=e(b);f.parent.attributes["data-cke-white-space-first"]&&(f.value=f.value.replace(/^&nbsp;/g," "));k.parent.attributes["data-cke-white-space-last"]&&(k.value=k.value.replace(/&nbsp;$/g," "))}if("data-cke-widget-id"in
-c){if(c=a.instances[c["data-cke-widget-id"]])f=b.getFirst(h.isParserWidgetElement),g.push({wrapper:b,element:f,widget:c,editables:{}}),"1"!=f.attributes["data-cke-widget-keep-attr"]&&delete f.attributes["data-widget"]}else if("data-cke-widget-editable"in c)return 0<g.length&&(g[g.length-1].editables[c["data-cke-widget-editable"]]=b),!1},CKEDITOR.NODE_ELEMENT,!0)},null,null,8);b.on("toDataFormat",function(a){if(a.data.downcastingSessionId)for(var b=c[a.data.downcastingSessionId],d,e,f,g,h,k;d=b.shift();){e=
-d.widget;f=d.element;g=e._.downcastFn&&e._.downcastFn.call(e,f);a.data.widgetsCopy&&e.getClipboardHtml&&(g=CKEDITOR.htmlParser.fragment.fromHtml(e.getClipboardHtml()),g=g.children[0]);for(k in d.editables)h=d.editables[k],delete h.attributes.contenteditable,h.setHtml(e.editables[k].getData());g||(g=f);d.wrapper.replaceWith(g)}},null,null,13);b.on("contentDomUnload",function(){a.destroyAll(!0)})}function G(a){var b=a.editor,d,c;b.on("toHtml",function(b){var c=n(a),e;for(b.data.dataValue.forEach(c.iterator,
-CKEDITOR.NODE_ELEMENT,!0);e=c.toBeWrapped.pop();){var f=e[0],g=f.parent;g.type==CKEDITOR.NODE_ELEMENT&&g.attributes["data-cke-widget-wrapper"]&&g.replaceWith(f);a.wrapElement(e[0],e[1])}d=b.data.protectedWhitespaces?3==b.data.dataValue.children.length&&h.isParserWidgetWrapper(b.data.dataValue.children[1]):1==b.data.dataValue.children.length&&h.isParserWidgetWrapper(b.data.dataValue.children[0])},null,null,8);b.on("dataReady",function(){if(c)for(var d=b.editable().find(".cke_widget_wrapper"),e,f,g=
-0,k=d.count();g<k;++g)e=d.getItem(g),f=e.getFirst(h.isDomWidgetElement),f.type==CKEDITOR.NODE_ELEMENT&&f.data("widget")?(f.replace(e),a.wrapElement(f)):e.remove();c=0;a.destroyAll(!0);a.initOnAll()});b.on("loadSnapshot",function(b){/data-cke-widget/.test(b.data)&&(c=1);a.destroyAll(!0)},null,null,9);b.on("paste",function(a){a=a.data;a.dataValue=a.dataValue.replace(ba,t);a.range&&(a=h.getNestedEditable(b.editable(),a.range.startContainer))&&(a=CKEDITOR.filter.instances[a.data("cke-filter")])&&b.setActiveFilter(a)});
-b.on("afterInsertHtml",function(c){c.data.intoRange?a.checkWidgets({initOnlyNew:!0}):(b.fire("lockSnapshot"),a.checkWidgets({initOnlyNew:!0,focusInited:d}),b.fire("unlockSnapshot"))})}function C(a){var b=a.selected,d=[],c=b.slice(0),e=null;return{select:function(a){0>CKEDITOR.tools.indexOf(b,a)&&d.push(a);a=CKEDITOR.tools.indexOf(c,a);0<=a&&c.splice(a,1);return this},focus:function(a){e=a;return this},commit:function(){var f=a.focused!==e,g,h;a.editor.fire("lockSnapshot");for(f&&(g=a.focused)&&m(a,
-g);g=c.pop();)b.splice(CKEDITOR.tools.indexOf(b,g),1),g.isInited()&&(h=g.editor.checkDirty(),g.setSelected(!1),!h&&g.editor.resetDirty());f&&e&&(h=a.editor.checkDirty(),a.focused=e,a.fire("widgetFocused",{widget:e}),e.setFocused(!0),!h&&a.editor.resetDirty());for(;g=d.pop();)b.push(g),g.setSelected(!0);a.editor.fire("unlockSnapshot")}}}function I(a){a&&a.addFilterRule(function(a){return a.replace(/\s*cke_widget_selected/g,"").replace(/\s*cke_widget_focused/g,"").replace(/<span[^>]*cke_widget_drag_handler_container[^>]*.*?<\/span>/gmi,
-"")})}function J(a,b,d){var c=0;b=H(b);var e=a.data.classes||{},f;if(b){for(e=CKEDITOR.tools.clone(e);f=b.pop();)d?e[f]||(c=e[f]=1):e[f]&&(delete e[f],c=1);c&&a.setData("classes",e)}}function F(a){a.cancel()}function M(a,b){function d(){var b=a.getSelectedHtml(!0);if(a.widgets.focused)return a.widgets.focused.getClipboardHtml();a.once("toDataFormat",function(a){a.data.widgetsCopy=!0},null,null,-1);return a.dataProcessor.toDataFormat(b)}var c=a.widgets.focused,e,f,g;U.hasCopyBin(a)||(f=new U(a,{beforeDestroy:function(){!b&&
-c&&c.focus();g&&a.getSelection().selectBookmarks(g);e&&CKEDITOR.plugins.widgetselection.addFillers(a.editable())},afterDestroy:function(){b&&!a.readOnly&&(c?a.widgets.del(c):a.extractSelectedHtml(),a.fire("saveSnapshot"))}}),c||(e=CKEDITOR.env.webkit&&CKEDITOR.plugins.widgetselection.isWholeContentSelected(a.editable()),g=a.getSelection().createBookmarks(!0)),f.handle(d()))}function H(a){return(a=(a=a.getDefinition().attributes)&&a["class"])?a.split(/\s+/):null}function E(){var a=CKEDITOR.document.getActive(),
-b=this.editor,c=b.editable();(c.isInline()?c:b.document.getWindow().getFrame()).equals(a)&&b.focusManager.focus(c)}function Q(){CKEDITOR.env.gecko&&this.editor.unlockSelection();CKEDITOR.env.webkit||(this.editor.forceNextSelectionCheck(),this.editor.selectionChange(1))}function O(a,b){P(a);K(a);X(a);S(a);L(a);Z(a);ca(a);if(CKEDITOR.env.ie&&9>CKEDITOR.env.version)a.wrapper.on("dragstart",function(b){var c=b.data.getTarget();h.getNestedEditable(a,c)||a.inline&&h.isDomDragHandler(c)||b.data.preventDefault()});
-a.wrapper.removeClass("cke_widget_new");a.element.addClass("cke_widget_element");a.on("key",function(b){b=b.data.keyCode;if(13==b)a.edit();else{if(b==CKEDITOR.CTRL+67||b==CKEDITOR.CTRL+88){M(a.editor,b==CKEDITOR.CTRL+88);return}if(b in R||CKEDITOR.CTRL&b||CKEDITOR.ALT&b)return}return!1},null,null,999);a.on("doubleclick",function(b){a.edit()&&b.cancel()});if(b.data)a.on("data",b.data);if(b.edit)a.on("edit",b.edit)}function P(a){(a.wrapper=a.element.getParent()).setAttribute("data-cke-widget-id",a.id)}
-function K(a){if(a.parts){var b={},c,d;for(d in a.parts)c=a.wrapper.findOne(a.parts[d]),b[d]=c;a.parts=b}}function X(a){var b=a.editables,c,d;a.editables={};if(a.editables)for(c in b)d=b[c],a.initEditable(c,"string"==typeof d?{selector:d}:d)}function S(a){if(!0===a.mask)W(a);else if(a.mask){var b=new CKEDITOR.tools.buffers.throttle(250,ea,a),c=CKEDITOR.env.gecko?300:0,d,e;a.on("focus",function(){b.input();d=a.editor.on("change",b.input);e=a.on("blur",function(){d.removeListener();e.removeListener()})});
-a.editor.on("instanceReady",function(){setTimeout(function(){b.input()},c)});a.editor.on("mode",function(){setTimeout(function(){b.input()},c)});if(CKEDITOR.env.gecko){var f=a.element.find("img");CKEDITOR.tools.array.forEach(f.toArray(),function(a){a.on("load",function(){b.input()})})}for(var g in a.editables)a.editables[g].on("focus",function(){a.editor.on("change",b.input);e&&e.removeListener()}),a.editables[g].on("blur",function(){a.editor.removeListener("change",b.input)});b.input()}}function W(a){var b=
-a.wrapper.findOne(".cke_widget_mask");b||(b=new CKEDITOR.dom.element("img",a.editor.document),b.setAttributes({src:CKEDITOR.tools.transparentImageData,"class":"cke_reset cke_widget_mask"}),a.wrapper.append(b));a.mask=b}function ea(){if(this.wrapper){this.maskPart=this.maskPart||this.mask;var a=this.parts[this.maskPart],b;if(a){b=this.wrapper.findOne(".cke_widget_partial_mask");b||(b=new CKEDITOR.dom.element("img",this.editor.document),b.setAttributes({src:CKEDITOR.tools.transparentImageData,"class":"cke_reset cke_widget_partial_mask"}),
-this.wrapper.append(b));this.mask=b;var c=b.$,d=a.$,e=!(c.offsetTop==d.offsetTop&&c.offsetLeft==d.offsetLeft);if(c.offsetWidth!=d.offsetWidth||c.offsetHeight!=d.offsetHeight||e)c=a.getParent(),d=CKEDITOR.plugins.widget.isDomWidget(c),b.setStyles({top:a.$.offsetTop+(d?0:c.$.offsetTop)+"px",left:a.$.offsetLeft+(d?0:c.$.offsetLeft)+"px",width:a.$.offsetWidth+"px",height:a.$.offsetHeight+"px"})}}}function L(a){if(a.draggable){var b=a.editor,c=a.wrapper.getLast(h.isDomDragHandlerContainer),d;c?d=c.findOne("img"):
-(c=new CKEDITOR.dom.element("span",b.document),c.setAttributes({"class":"cke_reset cke_widget_drag_handler_container",style:"background:rgba(220,220,220,0.5);background-image:url("+b.plugins.widget.path+"images/handle.png);display:none;"}),d=new CKEDITOR.dom.element("img",b.document),d.setAttributes({"class":"cke_reset cke_widget_drag_handler","data-cke-widget-drag-handler":"1",src:CKEDITOR.tools.transparentImageData,width:15,title:b.lang.widget.move,height:15,role:"presentation"}),a.inline&&d.setAttribute("draggable",
-"true"),c.append(d),a.wrapper.append(c));a.wrapper.on("dragover",function(a){a.data.preventDefault()});a.wrapper.on("mouseenter",a.updateDragHandlerPosition,a);setTimeout(function(){a.on("data",a.updateDragHandlerPosition,a)},50);if(!a.inline&&(d.on("mousedown",T,a),CKEDITOR.env.ie&&9>CKEDITOR.env.version))d.on("dragstart",function(a){a.data.preventDefault(!0)});a.dragHandlerContainer=c}}function T(a){function b(){var c;for(t.reset();c=h.pop();)c.removeListener();var d=k;c=a.sender;var e=this.repository.finder,
-f=this.repository.liner,g=this.editor,l=this.editor.editable();CKEDITOR.tools.isEmpty(f.visible)||(d=e.getRange(d[0]),this.focus(),g.fire("drop",{dropRange:d,target:d.startContainer}));l.removeClass("cke_widget_dragging");f.hideVisible();g.fire("dragend",{target:c})}if(CKEDITOR.tools.getMouseButton(a)===CKEDITOR.MOUSE_BUTTON_LEFT){var c=this.repository.finder,d=this.repository.locator,e=this.repository.liner,f=this.editor,g=f.editable(),h=[],k=[],l,q;this.repository._.draggedWidget=this;var m=c.greedySearch(),
-t=CKEDITOR.tools.eventsBuffer(50,function(){l=d.locate(m);k=d.sort(q,1);k.length&&(e.prepare(m,l),e.placeLine(k[0]),e.cleanup())});g.addClass("cke_widget_dragging");h.push(g.on("mousemove",function(a){q=a.data.$.clientY;t.input()}));f.fire("dragstart",{target:a.sender});h.push(f.document.once("mouseup",b,this));g.isInline()||h.push(CKEDITOR.document.once("mouseup",b,this))}}function Z(a){var b=null;a.on("data",function(){var a=this.data.classes,c;if(b!=a){for(c in b)a&&a[c]||this.removeClass(c);for(c in a)this.addClass(c);
-b=a}})}function ca(a){a.on("data",function(){if(a.wrapper){var b=this.getLabel?this.getLabel():this.editor.lang.widget.label.replace(/%1/,this.pathName||this.element.getName());a.wrapper.setAttribute("role","region");a.wrapper.setAttribute("aria-label",b)}},null,null,9999)}function aa(a){a.element.data("cke-widget-data",encodeURIComponent(JSON.stringify(a.data)))}function da(){function a(){}function b(a,c,d){return d&&this.checkElement(a)?(a=d.widgets.getByElement(a,!0))&&a.checkStyleActive(this):
-!1}function c(a){function b(a,c,d){for(var e=a.length,f=0;f<e;){if(c.call(d,a[f],f,a))return a[f];f++}}function e(a){function b(a,c){var d=CKEDITOR.tools.object.keys(a),e=CKEDITOR.tools.object.keys(c);if(d.length!==e.length)return!1;for(var f in a)if(("object"!==typeof a[f]||"object"!==typeof c[f]||!b(a[f],c[f]))&&a[f]!==c[f])return!1;return!0}return function(c){return b(a.getDefinition(),c.getDefinition())}}var f=a.widget,g;d[f]||(d[f]={});for(var h=0,k=a.group.length;h<k;h++)g=a.group[h],d[f][g]||
-(d[f][g]=[]),g=d[f][g],b(g,e(a))||g.push(a)}var d={};CKEDITOR.style.addCustomHandler({type:"widget",setup:function(a){this.widget=a.widget;(this.group="string"==typeof a.group?[a.group]:a.group)&&c(this)},apply:function(a){var b;a instanceof CKEDITOR.editor&&this.checkApplicable(a.elementPath(),a)&&(b=a.widgets.focused,this.group&&this.removeStylesFromSameGroup(a),b.applyStyle(this))},remove:function(a){a instanceof CKEDITOR.editor&&this.checkApplicable(a.elementPath(),a)&&a.widgets.focused.removeStyle(this)},
-removeStylesFromSameGroup:function(a){var b=!1,c,e;if(!(a instanceof CKEDITOR.editor))return!1;e=a.elementPath();if(this.checkApplicable(e,a))for(var f=0,g=this.group.length;f<g;f++){c=d[this.widget][this.group[f]];for(var h=0;h<c.length;h++)c[h]!==this&&c[h].checkActive(e,a)&&(a.widgets.focused.removeStyle(c[h]),b=!0)}return b},checkActive:function(a,b){return this.checkElementMatch(a.lastElement,0,b)},checkApplicable:function(a,b){return b instanceof CKEDITOR.editor?this.checkElement(a.lastElement):
-!1},checkElementMatch:b,checkElementRemovable:b,checkElement:function(a){return h.isDomWidgetWrapper(a)?(a=a.getFirst(h.isDomWidgetElement))&&a.data("widget")==this.widget:!1},buildPreview:function(a){return a||this._.definition.name},toAllowedContentRules:function(a){if(!a)return null;a=a.widgets.registered[this.widget];var b,c={};if(!a)return null;if(a.styleableElements){b=this.getClassesArray();if(!b)return null;c[a.styleableElements]={classes:b,propertiesOnly:!0};return c}return a.styleToAllowedContentRules?
-a.styleToAllowedContentRules(this):null},getClassesArray:function(){var a=this._.definition.attributes&&this._.definition.attributes["class"];return a?CKEDITOR.tools.trim(a).split(/\s+/):null},applyToRange:a,removeFromRange:a,applyToObject:a})}CKEDITOR.plugins.add("widget",{requires:"lineutils,clipboard,widgetselection",onLoad:function(){void 0!==CKEDITOR.document.$.querySelectorAll&&(CKEDITOR.addCss('.cke_widget_wrapper{position:relative;outline:none}.cke_widget_inline{display:inline-block}.cke_widget_wrapper:hover\x3e.cke_widget_element{outline:2px solid #ffd25c;cursor:default}.cke_widget_wrapper:hover .cke_widget_editable{outline:2px solid #ffd25c}.cke_widget_wrapper.cke_widget_focused\x3e.cke_widget_element,.cke_widget_wrapper .cke_widget_editable.cke_widget_editable_focused{outline:2px solid #47a4f5}.cke_widget_editable{cursor:text}.cke_widget_drag_handler_container{position:absolute;width:15px;height:0;display:block;opacity:0.75;transition:height 0s 0.2s;line-height:0}.cke_widget_wrapper:hover\x3e.cke_widget_drag_handler_container{height:15px;transition:none}.cke_widget_drag_handler_container:hover{opacity:1}.cke_editable[contenteditable\x3d"false"] .cke_widget_drag_handler_container{display:none;}img.cke_widget_drag_handler{cursor:move;width:15px;height:15px;display:inline-block}.cke_widget_mask{position:absolute;top:0;left:0;width:100%;height:100%;display:block}.cke_widget_partial_mask{position:absolute;display:block}.cke_editable.cke_widget_dragging, .cke_editable.cke_widget_dragging *{cursor:move !important}'),
-da())},beforeInit:function(a){void 0!==CKEDITOR.document.$.querySelectorAll&&(a.widgets=new b(a))},afterInit:function(a){if(void 0!==CKEDITOR.document.$.querySelectorAll){var b=a.widgets.registered,c,d,e;for(d in b)c=b[d],(e=c.button)&&a.ui.addButton&&a.ui.addButton(CKEDITOR.tools.capitalize(c.name,!0),{label:e,command:c.name,toolbar:"insert,10"});u(a);I(a.undoManager)}}});b.prototype={MIN_SELECTION_CHECK_INTERVAL:500,add:function(b,c){var d=this.editor;c=CKEDITOR.tools.prototypedCopy(c);c.name=b;
-c._=c._||{};d.fire("widgetDefinition",c);c.template&&(c.template=new CKEDITOR.template(c.template));f(d,c);a(this,c);this.registered[b]=c;if(c.dialog&&d.plugins.dialog)var e=CKEDITOR.on("dialogDefinition",function(a){a=a.data.definition;var b=a.dialog;a.getMode||b.getName()!==c.dialog||(a.getMode=function(){var a=b.getModel(d);return a&&a instanceof CKEDITOR.plugins.widget&&a.ready?CKEDITOR.dialog.EDITING_MODE:CKEDITOR.dialog.CREATION_MODE});e.removeListener()});return c},addUpcastCallback:function(a){this._.upcastCallbacks.push(a)},
-checkSelection:function(){var a=this.editor.getSelection(),b=a.getSelectedElement(),c=C(this),d;if(b&&(d=this.getByElement(b,!0)))return c.focus(d).select(d).commit();a=a.getRanges()[0];if(!a||a.collapsed)return c.commit();a=new CKEDITOR.dom.walker(a);for(a.evaluator=h.isDomWidgetWrapper;b=a.next();)c.select(this.getByElement(b));c.commit()},checkWidgets:function(a){this.fire("checkWidgets",CKEDITOR.tools.copy(a||{}))},del:function(a){if(this.focused===a){var b=a.editor,c=b.createRange(),d;(d=c.moveToClosestEditablePosition(a.wrapper,
-!0))||(d=c.moveToClosestEditablePosition(a.wrapper,!1));d&&b.getSelection().selectRanges([c])}a.wrapper.remove();this.destroy(a,!0)},destroy:function(a,b){this.widgetHoldingFocusedEditable===a&&q(this,a,null,b);a.destroy(b);delete this.instances[a.id];this.fire("instanceDestroyed",a)},destroyAll:function(a,b){var c,d,e=this.instances;if(b&&!a){d=b.find(".cke_widget_wrapper");for(var e=d.count(),f=0;f<e;++f)(c=this.getByElement(d.getItem(f),!0))&&this.destroy(c)}else for(d in e)c=e[d],this.destroy(c,
-a)},finalizeCreation:function(a){(a=a.getFirst())&&h.isDomWidgetWrapper(a)&&(this.editor.insertElement(a),a=this.getByElement(a),a.ready=!0,a.fire("ready"),a.focus())},getByElement:function(){function a(c){return c.is(b)&&c.data("cke-widget-id")}var b={div:1,span:1};return function(b,c){if(!b)return null;var d=a(b);if(!c&&!d){var e=this.editor.editable();do b=b.getParent();while(b&&!b.equals(e)&&!(d=a(b)))}return this.instances[d]||null}}(),initOn:function(a,b,c){b?"string"==typeof b&&(b=this.registered[b]):
-b=this.registered[a.data("widget")];if(!b)return null;var d=this.wrapElement(a,b.name);return d?d.hasClass("cke_widget_new")?(a=new h(this,this._.nextId++,a,b,c),a.isInited()?this.instances[a.id]=a:null):this.getByElement(a):null},initOnAll:function(a){a=(a||this.editor.editable()).find(".cke_widget_new");for(var b=[],c,d=a.count();d--;)(c=this.initOn(a.getItem(d).getFirst(h.isDomWidgetElement)))&&b.push(c);return b},onWidget:function(a){var b=Array.prototype.slice.call(arguments);b.shift();for(var c in this.instances){var d=
-this.instances[c];d.name==a&&d.on.apply(d,b)}this.on("instanceCreated",function(c){c=c.data;c.name==a&&c.on.apply(c,b)})},parseElementClasses:function(a){if(!a)return null;a=CKEDITOR.tools.trim(a).split(/\s+/);for(var b,c={},d=0;b=a.pop();)-1==b.indexOf("cke_")&&(c[b]=d=1);return d?c:null},wrapElement:function(a,b){var c=null,d,e;if(a instanceof CKEDITOR.dom.element){b=b||a.data("widget");d=this.registered[b];if(!d)return null;if((c=a.getParent())&&c.type==CKEDITOR.NODE_ELEMENT&&c.data("cke-widget-wrapper"))return c;
-a.hasAttribute("data-cke-widget-keep-attr")||a.data("cke-widget-keep-attr",a.data("widget")?1:0);a.data("widget",b);(e=r(d,a.getName()))&&l(a);c=new CKEDITOR.dom.element(e?"span":"div",a.getDocument());c.setAttributes(w(e,b));c.data("cke-display-name",d.pathName?d.pathName:a.getName());a.getParent(!0)&&c.replace(a);a.appendTo(c)}else if(a instanceof CKEDITOR.htmlParser.element){b=b||a.attributes["data-widget"];d=this.registered[b];if(!d)return null;if((c=a.parent)&&c.type==CKEDITOR.NODE_ELEMENT&&
-c.attributes["data-cke-widget-wrapper"])return c;"data-cke-widget-keep-attr"in a.attributes||(a.attributes["data-cke-widget-keep-attr"]=a.attributes["data-widget"]?1:0);b&&(a.attributes["data-widget"]=b);(e=r(d,a.name))&&l(a);c=new CKEDITOR.htmlParser.element(e?"span":"div",w(e,b));c.attributes["data-cke-display-name"]=d.pathName?d.pathName:a.name;d=a.parent;var f;d&&(f=a.getIndex(),a.remove());c.add(a);d&&z(d,f,c)}return c},_tests_createEditableFilter:c};CKEDITOR.event.implementOn(b.prototype);h.prototype=
-{addClass:function(a){this.element.addClass(a);this.wrapper.addClass(h.WRAPPER_CLASS_PREFIX+a)},applyStyle:function(a){J(this,a,1)},checkStyleActive:function(a){a=H(a);var b;if(!a)return!1;for(;b=a.pop();)if(!this.hasClass(b))return!1;return!0},destroy:function(a){this.fire("destroy");if(this.editables)for(var b in this.editables)this.destroyEditable(b,a);a||("0"==this.element.data("cke-widget-keep-attr")&&this.element.removeAttribute("data-widget"),this.element.removeAttributes(["data-cke-widget-data",
-"data-cke-widget-keep-attr"]),this.element.removeClass("cke_widget_element"),this.element.replace(this.wrapper));this.wrapper=null},destroyEditable:function(a,b){var c=this.editables[a],d=!0;c.removeListener("focus",Q);c.removeListener("blur",E);this.editor.focusManager.remove(c);if(c.filter){for(var e in this.repository.instances){var f=this.repository.instances[e];f.editables&&(f=f.editables[a])&&f!==c&&c.filter===f.filter&&(d=!1)}d&&(c.filter.destroy(),(d=this.repository._.filters[this.name])&&
-delete d[a])}b||(this.repository.destroyAll(!1,c),c.removeClass("cke_widget_editable"),c.removeClass("cke_widget_editable_focused"),c.removeAttributes(["contenteditable","data-cke-widget-editable","data-cke-enter-mode"]));delete this.editables[a]},edit:function(){var a={dialog:this.dialog},b=this;if(!1===this.fire("edit",a)||!a.dialog)return!1;this.editor.openDialog(a.dialog,function(a){var c,d;!1!==b.fire("dialog",a)&&(c=a.on("show",function(){a.setupContent(b)}),d=a.on("ok",function(){var c,d=b.on("data",
-function(a){c=1;a.cancel()},null,null,0);b.editor.fire("saveSnapshot");a.commitContent(b);d.removeListener();c&&(b.fire("data",b.data),b.editor.fire("saveSnapshot"))}),a.once("hide",function(){c.removeListener();d.removeListener()}))},b);return!0},getClasses:function(){return this.repository.parseElementClasses(this.element.getAttribute("class"))},getClipboardHtml:function(){var a=this.editor.createRange();a.setStartBefore(this.wrapper);a.setEndAfter(this.wrapper);return this.editor.editable().getHtmlFromRange(a).getHtml()},
+e&&e.wrapper&&(f=0,e.focus())});CKEDITOR.env.ie&&d.attachListener(c,"mouseup",function(){setTimeout(function(){e&&e.wrapper&&d.contains(e.wrapper)&&(e.focus(),e=null)})})});b.on("doubleclick",function(b){var d=a.getByElement(b.data.element);if(d&&!h.getNestedEditable(d.wrapper,b.data.element))return d.fire("doubleclick",{element:b.data.element})},null,null,1)}function u(a){a.editor.on("key",function(b){var d=a.focused,c=a.widgetHoldingFocusedEditable,e;d?e=d.fire("key",{keyCode:b.data.keyCode}):c&&
+(d=b.data.keyCode,b=c.focusedEditable,d==CKEDITOR.CTRL+65?(d=b.getBogus(),c=c.editor.createRange(),c.selectNodeContents(b),d&&c.setEndAt(d,CKEDITOR.POSITION_BEFORE_START),c.select(),e=!1):8==d||46==d?(e=c.editor.getSelection().getRanges(),c=e[0],e=!(1==e.length&&c.collapsed&&c.checkBoundaryOfElement(b,CKEDITOR[8==d?"START":"END"]))):e=void 0);return e},null,null,1)}function C(a){function b(c){1>a.selected.length||N(d,"cut"===c.name)}var d=a.editor;d.on("contentDom",function(){var a=d.editable();a.attachListener(a,
+"copy",b);a.attachListener(a,"cut",b)})}function A(a){function b(){a.fire("checkSelection")}var d=a.editor;d.on("selectionCheck",b);d.on("contentDom",function(){d.editable().attachListener(d,"key",function(){setTimeout(b,10)})});a.on("checkSelection",a.checkSelection,a);d.on("selectionChange",function(b){var c=(b=h.getNestedEditable(d.editable(),b.data.selection.getStartElement()))&&a.getByElement(b),e=a.widgetHoldingFocusedEditable;e?e===c&&e.focusedEditable.equals(b)||(q(a,e,null),c&&b&&q(a,c,b)):
+c&&b&&q(a,c,b)});d.on("dataReady",function(){F(a).commit()});d.on("blur",function(){var b;(b=a.focused)&&m(a,b);(b=a.widgetHoldingFocusedEditable)&&q(a,b,null)})}function B(a){var b=a.editor,c={};b.on("toDataFormat",function(b){var f=CKEDITOR.tools.getNextNumber(),g=[];b.data.downcastingSessionId=f;c[f]=g;b.data.dataValue.forEach(function(b){var c=b.attributes,f;if("data-cke-widget-white-space"in c){f=d(b);var k=e(b);f.parent.attributes["data-cke-white-space-first"]&&(f.value=f.value.replace(/^&nbsp;/g,
+" "));k.parent.attributes["data-cke-white-space-last"]&&(k.value=k.value.replace(/&nbsp;$/g," "))}if("data-cke-widget-id"in c){if(c=a.instances[c["data-cke-widget-id"]])f=b.getFirst(h.isParserWidgetElement),g.push({wrapper:b,element:f,widget:c,editables:{}}),"1"!=f.attributes["data-cke-widget-keep-attr"]&&delete f.attributes["data-widget"]}else if("data-cke-widget-editable"in c)return 0<g.length&&(g[g.length-1].editables[c["data-cke-widget-editable"]]=b),!1},CKEDITOR.NODE_ELEMENT,!0)},null,null,8);
+b.on("toDataFormat",function(a){if(a.data.downcastingSessionId)for(var b=c[a.data.downcastingSessionId],d,e,f,g,h,k;d=b.shift();){e=d.widget;f=d.element;g=e._.downcastFn&&e._.downcastFn.call(e,f);a.data.widgetsCopy&&e.getClipboardHtml&&(g=CKEDITOR.htmlParser.fragment.fromHtml(e.getClipboardHtml()),g=g.children[0]);for(k in d.editables)h=d.editables[k],delete h.attributes.contenteditable,h.setHtml(e.editables[k].getData());g||(g=f);d.wrapper.replaceWith(g)}},null,null,13);b.on("contentDomUnload",function(){a.destroyAll(!0)})}
+function G(a){var b=a.editor,d,c;b.on("toHtml",function(b){var c=n(a),e;for(b.data.dataValue.forEach(c.iterator,CKEDITOR.NODE_ELEMENT,!0);e=c.toBeWrapped.pop();){var f=e[0],g=f.parent;g.type==CKEDITOR.NODE_ELEMENT&&g.attributes["data-cke-widget-wrapper"]&&g.replaceWith(f);a.wrapElement(e[0],e[1])}d=b.data.protectedWhitespaces?3==b.data.dataValue.children.length&&h.isParserWidgetWrapper(b.data.dataValue.children[1]):1==b.data.dataValue.children.length&&h.isParserWidgetWrapper(b.data.dataValue.children[0])},
+null,null,8);b.on("dataReady",function(){if(c)for(var d=b.editable().find(".cke_widget_wrapper"),e,f,g=0,k=d.count();g<k;++g)e=d.getItem(g),f=e.getFirst(h.isDomWidgetElement),f.type==CKEDITOR.NODE_ELEMENT&&f.data("widget")?(f.replace(e),a.wrapElement(f)):e.remove();c=0;a.destroyAll(!0);a.initOnAll()});b.on("loadSnapshot",function(b){/data-cke-widget/.test(b.data)&&(c=1);a.destroyAll(!0)},null,null,9);b.on("paste",function(a){a=a.data;a.dataValue=a.dataValue.replace(aa,t);a.range&&(a=h.getNestedEditable(b.editable(),
+a.range.startContainer))&&(a=CKEDITOR.filter.instances[a.data("cke-filter")])&&b.setActiveFilter(a)});b.on("afterInsertHtml",function(c){c.data.intoRange?a.checkWidgets({initOnlyNew:!0}):(b.fire("lockSnapshot"),a.checkWidgets({initOnlyNew:!0,focusInited:d}),b.fire("unlockSnapshot"))})}function F(a){var b=a.selected,d=[],c=b.slice(0),e=null;return{select:function(a){0>CKEDITOR.tools.indexOf(b,a)&&d.push(a);a=CKEDITOR.tools.indexOf(c,a);0<=a&&c.splice(a,1);return this},focus:function(a){e=a;return this},
+commit:function(){var f=a.focused!==e,g,h;a.editor.fire("lockSnapshot");for(f&&(g=a.focused)&&m(a,g);g=c.pop();)b.splice(CKEDITOR.tools.indexOf(b,g),1),g.isInited()&&(h=g.editor.checkDirty(),g.setSelected(!1),!h&&g.editor.resetDirty());f&&e&&(h=a.editor.checkDirty(),a.focused=e,a.fire("widgetFocused",{widget:e}),e.setFocused(!0),!h&&a.editor.resetDirty());for(;g=d.pop();)b.push(g),g.setSelected(!0);a.editor.fire("unlockSnapshot")}}}function K(a){a&&a.addFilterRule(function(a){return a.replace(/\s*cke_widget_selected/g,
+"").replace(/\s*cke_widget_focused/g,"").replace(/<span[^>]*cke_widget_drag_handler_container[^>]*.*?<\/span>/gmi,"")})}function H(a,b,d){var c=0;b=J(b);var e=a.data.classes||{},f;if(b){for(e=CKEDITOR.tools.clone(e);f=b.pop();)d?e[f]||(c=e[f]=1):e[f]&&(delete e[f],c=1);c&&a.setData("classes",e)}}function E(a){a.cancel()}function N(a,b){function d(){var b=a.getSelectedHtml(!0);if(a.widgets.focused)return a.widgets.focused.getClipboardHtml();a.once("toDataFormat",function(a){a.data.widgetsCopy=!0},
+null,null,-1);return a.dataProcessor.toDataFormat(b)}var c=a.widgets.focused,e,f,g;T.hasCopyBin(a)||(f=new T(a,{beforeDestroy:function(){!b&&c&&c.focus();g&&a.getSelection().selectBookmarks(g);e&&CKEDITOR.plugins.widgetselection.addFillers(a.editable())},afterDestroy:function(){b&&!a.readOnly&&(c?a.widgets.del(c):a.extractSelectedHtml(),a.fire("saveSnapshot"))}}),c||(e=CKEDITOR.env.webkit&&CKEDITOR.plugins.widgetselection.isWholeContentSelected(a.editable()),g=a.getSelection().createBookmarks(!0)),
+f.handle(d()))}function J(a){return(a=(a=a.getDefinition().attributes)&&a["class"])?a.split(/\s+/):null}function L(){var a=CKEDITOR.document.getActive(),b=this.editor,d=b.editable();(d.isInline()?d:b.document.getWindow().getFrame()).equals(a)&&b.focusManager.focus(d)}function D(){CKEDITOR.env.gecko&&this.editor.unlockSelection();CKEDITOR.env.webkit||(this.editor.forceNextSelectionCheck(),this.editor.selectionChange(1))}function I(a,b){P(a);M(a);Y(a);R(a);V(a);X(a);ba(a);if(CKEDITOR.env.ie&&9>CKEDITOR.env.version)a.wrapper.on("dragstart",
+function(b){var d=b.data.getTarget();h.getNestedEditable(a,d)||a.inline&&h.isDomDragHandler(d)||b.data.preventDefault()});a.wrapper.removeClass("cke_widget_new");a.element.addClass("cke_widget_element");a.on("key",function(b){b=b.data.keyCode;if(13==b)a.edit();else{if(b==CKEDITOR.CTRL+67||b==CKEDITOR.CTRL+88){N(a.editor,b==CKEDITOR.CTRL+88);return}if(b in Q||CKEDITOR.CTRL&b||CKEDITOR.ALT&b)return}return!1},null,null,999);a.on("doubleclick",function(b){a.edit()&&b.cancel()});if(b.data)a.on("data",
+b.data);if(b.edit)a.on("edit",b.edit)}function P(a){(a.wrapper=a.element.getParent()).setAttribute("data-cke-widget-id",a.id)}function M(a){if(a.parts){var b={},d,c;for(c in a.parts)d=a.wrapper.findOne(a.parts[c]),b[c]=d;a.parts=b}}function Y(a){var b=a.editables,d,c;a.editables={};if(a.editables)for(d in b)c=b[d],a.initEditable(d,"string"==typeof c?{selector:c}:c)}function R(a){if(!0===a.mask)W(a);else if(a.mask){var b=new CKEDITOR.tools.buffers.throttle(250,ea,a),d=CKEDITOR.env.gecko?300:0,c,e;
+a.on("focus",function(){b.input();c=a.editor.on("change",b.input);e=a.on("blur",function(){c.removeListener();e.removeListener()})});a.editor.on("instanceReady",function(){setTimeout(function(){b.input()},d)});a.editor.on("mode",function(){setTimeout(function(){b.input()},d)});if(CKEDITOR.env.gecko){var f=a.element.find("img");CKEDITOR.tools.array.forEach(f.toArray(),function(a){a.on("load",function(){b.input()})})}for(var g in a.editables)a.editables[g].on("focus",function(){a.editor.on("change",
+b.input);e&&e.removeListener()}),a.editables[g].on("blur",function(){a.editor.removeListener("change",b.input)});b.input()}}function W(a){var b=a.wrapper.findOne(".cke_widget_mask");b||(b=new CKEDITOR.dom.element("img",a.editor.document),b.setAttributes({src:CKEDITOR.tools.transparentImageData,"class":"cke_reset cke_widget_mask"}),a.wrapper.append(b));a.mask=b}function ea(){if(this.wrapper){this.maskPart=this.maskPart||this.mask;var a=this.parts[this.maskPart],b;if(a){b=this.wrapper.findOne(".cke_widget_partial_mask");
+b||(b=new CKEDITOR.dom.element("img",this.editor.document),b.setAttributes({src:CKEDITOR.tools.transparentImageData,"class":"cke_reset cke_widget_partial_mask"}),this.wrapper.append(b));this.mask=b;var d=b.$,c=a.$,e=!(d.offsetTop==c.offsetTop&&d.offsetLeft==c.offsetLeft);if(d.offsetWidth!=c.offsetWidth||d.offsetHeight!=c.offsetHeight||e)d=a.getParent(),c=CKEDITOR.plugins.widget.isDomWidget(d),b.setStyles({top:a.$.offsetTop+(c?0:d.$.offsetTop)+"px",left:a.$.offsetLeft+(c?0:d.$.offsetLeft)+"px",width:a.$.offsetWidth+
+"px",height:a.$.offsetHeight+"px"})}}}function V(a){if(a.draggable){var b=a.editor,d=a.wrapper.getLast(h.isDomDragHandlerContainer),c;d?c=d.findOne("img"):(d=new CKEDITOR.dom.element("span",b.document),d.setAttributes({"class":"cke_reset cke_widget_drag_handler_container",style:"background:rgba(220,220,220,0.5);background-image:url("+b.plugins.widget.path+"images/handle.png);display:none;"}),c=new CKEDITOR.dom.element("img",b.document),c.setAttributes({"class":"cke_reset cke_widget_drag_handler",
+"data-cke-widget-drag-handler":"1",src:CKEDITOR.tools.transparentImageData,width:15,title:b.lang.widget.move,height:15,role:"presentation"}),a.inline&&c.setAttribute("draggable","true"),d.append(c),a.wrapper.append(d));a.wrapper.on("dragover",function(a){a.data.preventDefault()});a.wrapper.on("mouseenter",a.updateDragHandlerPosition,a);setTimeout(function(){a.on("data",a.updateDragHandlerPosition,a)},50);if(!a.inline&&(c.on("mousedown",S,a),CKEDITOR.env.ie&&9>CKEDITOR.env.version))c.on("dragstart",
+function(a){a.data.preventDefault(!0)});a.dragHandlerContainer=d}}function S(a){function b(){var d;for(t.reset();d=h.pop();)d.removeListener();var c=k;d=a.sender;var e=this.repository.finder,f=this.repository.liner,g=this.editor,l=this.editor.editable();CKEDITOR.tools.isEmpty(f.visible)||(c=e.getRange(c[0]),this.focus(),g.fire("drop",{dropRange:c,target:c.startContainer}));l.removeClass("cke_widget_dragging");f.hideVisible();g.fire("dragend",{target:d})}if(CKEDITOR.tools.getMouseButton(a)===CKEDITOR.MOUSE_BUTTON_LEFT){var d=
+this.repository.finder,c=this.repository.locator,e=this.repository.liner,f=this.editor,g=f.editable(),h=[],k=[],l,m;this.repository._.draggedWidget=this;var q=d.greedySearch(),t=CKEDITOR.tools.eventsBuffer(50,function(){l=c.locate(q);k=c.sort(m,1);k.length&&(e.prepare(q,l),e.placeLine(k[0]),e.cleanup())});g.addClass("cke_widget_dragging");h.push(g.on("mousemove",function(a){m=a.data.$.clientY;t.input()}));f.fire("dragstart",{target:a.sender});h.push(f.document.once("mouseup",b,this));g.isInline()||
+h.push(CKEDITOR.document.once("mouseup",b,this))}}function X(a){var b=null;a.on("data",function(){var a=this.data.classes,d;if(b!=a){for(d in b)a&&a[d]||this.removeClass(d);for(d in a)this.addClass(d);b=a}})}function ba(a){a.on("data",function(){if(a.wrapper){var b=this.getLabel?this.getLabel():this.editor.lang.widget.label.replace(/%1/,this.pathName||this.element.getName());a.wrapper.setAttribute("role","region");a.wrapper.setAttribute("aria-label",b)}},null,null,9999)}function Z(a){a.element.data("cke-widget-data",
+encodeURIComponent(JSON.stringify(a.data)))}function da(){function a(){}function b(a,d,c){return c&&this.checkElement(a)?(a=c.widgets.getByElement(a,!0))&&a.checkStyleActive(this):!1}function d(a){function b(a,d,c){for(var e=a.length,f=0;f<e;){if(d.call(c,a[f],f,a))return a[f];f++}}function e(a){function b(a,d){var c=CKEDITOR.tools.object.keys(a),e=CKEDITOR.tools.object.keys(d);if(c.length!==e.length)return!1;for(var f in a)if(("object"!==typeof a[f]||"object"!==typeof d[f]||!b(a[f],d[f]))&&a[f]!==
+d[f])return!1;return!0}return function(d){return b(a.getDefinition(),d.getDefinition())}}var f=a.widget,g;c[f]||(c[f]={});for(var h=0,k=a.group.length;h<k;h++)g=a.group[h],c[f][g]||(c[f][g]=[]),g=c[f][g],b(g,e(a))||g.push(a)}var c={};CKEDITOR.style.addCustomHandler({type:"widget",setup:function(a){this.widget=a.widget;(this.group="string"==typeof a.group?[a.group]:a.group)&&d(this)},apply:function(a){var b;a instanceof CKEDITOR.editor&&this.checkApplicable(a.elementPath(),a)&&(b=a.widgets.focused,
+this.group&&this.removeStylesFromSameGroup(a),b.applyStyle(this))},remove:function(a){a instanceof CKEDITOR.editor&&this.checkApplicable(a.elementPath(),a)&&a.widgets.focused.removeStyle(this)},removeStylesFromSameGroup:function(a){var b=!1,d,e;if(!(a instanceof CKEDITOR.editor))return!1;e=a.elementPath();if(this.checkApplicable(e,a))for(var f=0,g=this.group.length;f<g;f++){d=c[this.widget][this.group[f]];for(var h=0;h<d.length;h++)d[h]!==this&&d[h].checkActive(e,a)&&(a.widgets.focused.removeStyle(d[h]),
+b=!0)}return b},checkActive:function(a,b){return this.checkElementMatch(a.lastElement,0,b)},checkApplicable:function(a,b){return b instanceof CKEDITOR.editor?this.checkElement(a.lastElement):!1},checkElementMatch:b,checkElementRemovable:b,checkElement:function(a){return h.isDomWidgetWrapper(a)?(a=a.getFirst(h.isDomWidgetElement))&&a.data("widget")==this.widget:!1},buildPreview:function(a){return a||this._.definition.name},toAllowedContentRules:function(a){if(!a)return null;a=a.widgets.registered[this.widget];
+var b,d={};if(!a)return null;if(a.styleableElements){b=this.getClassesArray();if(!b)return null;d[a.styleableElements]={classes:b,propertiesOnly:!0};return d}return a.styleToAllowedContentRules?a.styleToAllowedContentRules(this):null},getClassesArray:function(){var a=this._.definition.attributes&&this._.definition.attributes["class"];return a?CKEDITOR.tools.trim(a).split(/\s+/):null},applyToRange:a,removeFromRange:a,applyToObject:a})}CKEDITOR.plugins.add("widget",{requires:"lineutils,clipboard,widgetselection",
+onLoad:function(){void 0!==CKEDITOR.document.$.querySelectorAll&&(CKEDITOR.addCss('.cke_widget_wrapper{position:relative;outline:none}.cke_widget_inline{display:inline-block}.cke_widget_wrapper:hover\x3e.cke_widget_element{outline:2px solid #ffd25c;cursor:default}.cke_widget_wrapper:hover .cke_widget_editable{outline:2px solid #ffd25c}.cke_widget_wrapper.cke_widget_focused\x3e.cke_widget_element,.cke_widget_wrapper .cke_widget_editable.cke_widget_editable_focused{outline:2px solid #47a4f5}.cke_widget_editable{cursor:text}.cke_widget_drag_handler_container{position:absolute;width:15px;height:0;display:block;opacity:0.75;transition:height 0s 0.2s;line-height:0}.cke_widget_wrapper:hover\x3e.cke_widget_drag_handler_container{height:15px;transition:none}.cke_widget_drag_handler_container:hover{opacity:1}.cke_editable[contenteditable\x3d"false"] .cke_widget_drag_handler_container{display:none;}img.cke_widget_drag_handler{cursor:move;width:15px;height:15px;display:inline-block}.cke_widget_mask{position:absolute;top:0;left:0;width:100%;height:100%;display:block}.cke_widget_partial_mask{position:absolute;display:block}.cke_editable.cke_widget_dragging, .cke_editable.cke_widget_dragging *{cursor:move !important}'),
+da())},beforeInit:function(a){void 0!==CKEDITOR.document.$.querySelectorAll&&(a.widgets=new b(a))},afterInit:function(a){if(void 0!==CKEDITOR.document.$.querySelectorAll){var b=a.widgets.registered,d,c,e;for(c in b)d=b[c],(e=d.button)&&a.ui.addButton&&a.ui.addButton(CKEDITOR.tools.capitalize(d.name,!0),{label:e,command:d.name,toolbar:"insert,10"});w(a);K(a.undoManager)}}});b.prototype={MIN_SELECTION_CHECK_INTERVAL:500,add:function(b,d){var c=this.editor;d=CKEDITOR.tools.prototypedCopy(d);d.name=b;
+d._=d._||{};c.fire("widgetDefinition",d);d.template&&(d.template=new CKEDITOR.template(d.template));f(c,d);a(this,d);this.registered[b]=d;if(d.dialog&&c.plugins.dialog)var e=CKEDITOR.on("dialogDefinition",function(a){a=a.data.definition;var b=a.dialog;a.getMode||b.getName()!==d.dialog||(a.getMode=function(){var a=b.getModel(c);return a&&a instanceof CKEDITOR.plugins.widget&&a.ready?CKEDITOR.dialog.EDITING_MODE:CKEDITOR.dialog.CREATION_MODE});e.removeListener()});return d},addUpcastCallback:function(a){this._.upcastCallbacks.push(a)},
+checkSelection:function(){var a=this.editor.getSelection(),b=a.getSelectedElement(),d=F(this),c;if(b&&(c=this.getByElement(b,!0)))return d.focus(c).select(c).commit();a=a.getRanges()[0];if(!a||a.collapsed)return d.commit();a=new CKEDITOR.dom.walker(a);for(a.evaluator=h.isDomWidgetWrapper;b=a.next();)d.select(this.getByElement(b));d.commit()},checkWidgets:function(a){this.fire("checkWidgets",CKEDITOR.tools.copy(a||{}))},del:function(a){if(this.focused===a){var b=a.editor,d=b.createRange(),c;(c=d.moveToClosestEditablePosition(a.wrapper,
+!0))||(c=d.moveToClosestEditablePosition(a.wrapper,!1));c&&b.getSelection().selectRanges([d])}a.wrapper.remove();this.destroy(a,!0)},destroy:function(a,b){this.widgetHoldingFocusedEditable===a&&q(this,a,null,b);a.destroy(b);delete this.instances[a.id];this.fire("instanceDestroyed",a)},destroyAll:function(a,b){var d,c,e=this.instances;if(b&&!a){c=b.find(".cke_widget_wrapper");for(var e=c.count(),f=0;f<e;++f)(d=this.getByElement(c.getItem(f),!0))&&this.destroy(d)}else for(c in e)d=e[c],this.destroy(d,
+a)},finalizeCreation:function(a){(a=a.getFirst())&&h.isDomWidgetWrapper(a)&&(this.editor.insertElement(a),a=this.getByElement(a),a.ready=!0,a.fire("ready"),a.focus())},getByElement:function(){function a(d){return d.is(b)&&d.data("cke-widget-id")}var b={div:1,span:1};return function(b,d){if(!b)return null;var c=a(b);if(!d&&!c){var e=this.editor.editable();do b=b.getParent();while(b&&!b.equals(e)&&!(c=a(b)))}return this.instances[c]||null}}(),initOn:function(a,b,d){b?"string"==typeof b&&(b=this.registered[b]):
+b=this.registered[a.data("widget")];if(!b)return null;var c=this.wrapElement(a,b.name);return c?c.hasClass("cke_widget_new")?(a=new h(this,this._.nextId++,a,b,d),a.isInited()?this.instances[a.id]=a:null):this.getByElement(a):null},initOnAll:function(a){a=(a||this.editor.editable()).find(".cke_widget_new");for(var b=[],d,c=a.count();c--;)(d=this.initOn(a.getItem(c).getFirst(h.isDomWidgetElement)))&&b.push(d);return b},onWidget:function(a){var b=Array.prototype.slice.call(arguments);b.shift();for(var d in this.instances){var c=
+this.instances[d];c.name==a&&c.on.apply(c,b)}this.on("instanceCreated",function(d){d=d.data;d.name==a&&d.on.apply(d,b)})},parseElementClasses:function(a){if(!a)return null;a=CKEDITOR.tools.trim(a).split(/\s+/);for(var b,d={},c=0;b=a.pop();)-1==b.indexOf("cke_")&&(d[b]=c=1);return c?d:null},wrapElement:function(a,b){var d=null,c,e;if(a instanceof CKEDITOR.dom.element){b=b||a.data("widget");c=this.registered[b];if(!c)return null;if((d=a.getParent())&&d.type==CKEDITOR.NODE_ELEMENT&&d.data("cke-widget-wrapper"))return d;
+a.hasAttribute("data-cke-widget-keep-attr")||a.data("cke-widget-keep-attr",a.data("widget")?1:0);a.data("widget",b);(e=p(c,a.getName()))&&k(a);d=new CKEDITOR.dom.element(e?"span":"div",a.getDocument());d.setAttributes(v(e,b));d.data("cke-display-name",c.pathName?c.pathName:a.getName());a.getParent(!0)&&d.replace(a);a.appendTo(d)}else if(a instanceof CKEDITOR.htmlParser.element){b=b||a.attributes["data-widget"];c=this.registered[b];if(!c)return null;if((d=a.parent)&&d.type==CKEDITOR.NODE_ELEMENT&&
+d.attributes["data-cke-widget-wrapper"])return d;"data-cke-widget-keep-attr"in a.attributes||(a.attributes["data-cke-widget-keep-attr"]=a.attributes["data-widget"]?1:0);b&&(a.attributes["data-widget"]=b);(e=p(c,a.name))&&k(a);d=new CKEDITOR.htmlParser.element(e?"span":"div",v(e,b));d.attributes["data-cke-display-name"]=c.pathName?c.pathName:a.name;c=a.parent;var f;c&&(f=a.getIndex(),a.remove());d.add(a);c&&x(c,f,d)}return d},_tests_createEditableFilter:c};CKEDITOR.event.implementOn(b.prototype);h.prototype=
+{addClass:function(a){this.element.addClass(a);this.wrapper.addClass(h.WRAPPER_CLASS_PREFIX+a)},applyStyle:function(a){H(this,a,1)},checkStyleActive:function(a){a=J(a);var b;if(!a)return!1;for(;b=a.pop();)if(!this.hasClass(b))return!1;return!0},destroy:function(a){this.fire("destroy");if(this.editables)for(var b in this.editables)this.destroyEditable(b,a);a||("0"==this.element.data("cke-widget-keep-attr")&&this.element.removeAttribute("data-widget"),this.element.removeAttributes(["data-cke-widget-data",
+"data-cke-widget-keep-attr"]),this.element.removeClass("cke_widget_element"),this.element.replace(this.wrapper));this.wrapper=null},destroyEditable:function(a,b){var d=this.editables[a],c=!0;d.removeListener("focus",D);d.removeListener("blur",L);this.editor.focusManager.remove(d);if(d.filter){for(var e in this.repository.instances){var f=this.repository.instances[e];f.editables&&(f=f.editables[a])&&f!==d&&d.filter===f.filter&&(c=!1)}c&&(d.filter.destroy(),(c=this.repository._.filters[this.name])&&
+delete c[a])}b||(this.repository.destroyAll(!1,d),d.removeClass("cke_widget_editable"),d.removeClass("cke_widget_editable_focused"),d.removeAttributes(["contenteditable","data-cke-widget-editable","data-cke-enter-mode"]));delete this.editables[a]},edit:function(){var a={dialog:this.dialog},b=this;if(!1===this.fire("edit",a)||!a.dialog)return!1;this.editor.openDialog(a.dialog,function(a){var d,c;!1!==b.fire("dialog",a)&&(d=a.on("show",function(){a.setupContent(b)}),c=a.on("ok",function(){var d,c=b.on("data",
+function(a){d=1;a.cancel()},null,null,0);b.editor.fire("saveSnapshot");a.commitContent(b);c.removeListener();d&&(b.fire("data",b.data),b.editor.fire("saveSnapshot"))}),a.once("hide",function(){d.removeListener();c.removeListener()}))},b);return!0},getClasses:function(){return this.repository.parseElementClasses(this.element.getAttribute("class"))},getClipboardHtml:function(){var a=this.editor.createRange();a.setStartBefore(this.wrapper);a.setEndAfter(this.wrapper);return this.editor.editable().getHtmlFromRange(a).getHtml()},
 hasClass:function(a){return this.element.hasClass(a)},initEditable:function(a,b){var d=this._findOneNotNested(b.selector);return d&&d.is(CKEDITOR.dtd.$editable)?(d=new g(this.editor,d,{filter:c.call(this.repository,this.name,a,b)}),this.editables[a]=d,d.setAttributes({contenteditable:"true","data-cke-widget-editable":a,"data-cke-enter-mode":d.enterMode}),d.filter&&d.data("cke-filter",d.filter.id),d.addClass("cke_widget_editable"),d.removeClass("cke_widget_editable_focused"),b.pathName&&d.data("cke-display-name",
-b.pathName),this.editor.focusManager.add(d),d.on("focus",Q,this),CKEDITOR.env.ie&&d.on("blur",E,this),d._.initialSetData=!0,d.setData(d.getHtml()),!0):!1},_findOneNotNested:function(a){a=this.wrapper.find(a);for(var b,c,d=0;d<a.count();d++)if(b=a.getItem(d),c=b.getAscendant(h.isDomWidgetWrapper),this.wrapper.equals(c))return b;return null},isInited:function(){return!(!this.wrapper||!this.inited)},isReady:function(){return this.isInited()&&this.ready},focus:function(){var a=this.editor.getSelection();
-if(a){var b=this.editor.checkDirty();a.fake(this.wrapper);!b&&this.editor.resetDirty()}this.editor.focus()},removeClass:function(a){this.element.removeClass(a);this.wrapper.removeClass(h.WRAPPER_CLASS_PREFIX+a)},removeStyle:function(a){J(this,a,0)},setData:function(a,b){var c=this.data,d=0;if("string"==typeof a)c[a]!==b&&(c[a]=b,d=1);else{var e=a;for(a in e)c[a]!==e[a]&&(d=1,c[a]=e[a])}d&&this.dataReady&&(aa(this),this.fire("data",c));return this},setFocused:function(a){this.wrapper[a?"addClass":
-"removeClass"]("cke_widget_focused");this.fire(a?"focus":"blur");return this},setSelected:function(a){this.wrapper[a?"addClass":"removeClass"]("cke_widget_selected");this.fire(a?"select":"deselect");return this},updateDragHandlerPosition:function(){var a=this.editor,b=this.element.$,c=this._.dragHandlerOffset,b={x:b.offsetLeft,y:b.offsetTop-15};c&&b.x==c.x&&b.y==c.y||(c=a.checkDirty(),a.fire("lockSnapshot"),this.dragHandlerContainer.setStyles({top:b.y+"px",left:b.x+"px"}),this.dragHandlerContainer.removeStyle("display"),
-a.fire("unlockSnapshot"),!c&&a.resetDirty(),this._.dragHandlerOffset=b)}};CKEDITOR.event.implementOn(h.prototype);h.getNestedEditable=function(a,b){return!b||b.equals(a)?null:h.isDomNestedEditable(b)?b:h.getNestedEditable(a,b.getParent())};h.isDomDragHandler=function(a){return a.type==CKEDITOR.NODE_ELEMENT&&a.hasAttribute("data-cke-widget-drag-handler")};h.isDomDragHandlerContainer=function(a){return a.type==CKEDITOR.NODE_ELEMENT&&a.hasClass("cke_widget_drag_handler_container")};h.isDomNestedEditable=
-function(a){return a.type==CKEDITOR.NODE_ELEMENT&&a.hasAttribute("data-cke-widget-editable")};h.isDomWidgetElement=function(a){return a.type==CKEDITOR.NODE_ELEMENT&&a.hasAttribute("data-widget")};h.isDomWidgetWrapper=function(a){return a.type==CKEDITOR.NODE_ELEMENT&&a.hasAttribute("data-cke-widget-wrapper")};h.isDomWidget=function(a){return a?this.isDomWidgetWrapper(a)||this.isDomWidgetElement(a):!1};h.isParserWidgetElement=function(a){return a.type==CKEDITOR.NODE_ELEMENT&&!!a.attributes["data-widget"]};
-h.isParserWidgetWrapper=function(a){return a.type==CKEDITOR.NODE_ELEMENT&&!!a.attributes["data-cke-widget-wrapper"]};h.WRAPPER_CLASS_PREFIX="cke_widget_wrapper_";g.prototype=CKEDITOR.tools.extend(CKEDITOR.tools.prototypedCopy(CKEDITOR.dom.element.prototype),{setData:function(a){this._.initialSetData||this.editor.widgets.destroyAll(!1,this);this._.initialSetData=!1;a=this.editor.dataProcessor.toHtml(a,{context:this.getName(),filter:this.filter,enterMode:this.enterMode});this.setHtml(a);this.editor.widgets.initOnAll(this)},
-getData:function(){return this.editor.dataProcessor.toDataFormat(this.getHtml(),{context:this.getName(),filter:this.filter,enterMode:this.enterMode})}});var ba=/^(?:<(?:div|span)(?: data-cke-temp="1")?(?: id="cke_copybin")?(?: data-cke-temp="1")?>)?(?:<(?:div|span)(?: style="[^"]+")?>)?<span [^>]*data-cke-copybin-start="1"[^>]*>.?<\/span>([\s\S]+)<span [^>]*data-cke-copybin-end="1"[^>]*>.?<\/span>(?:<\/(?:div|span)>)?(?:<\/(?:div|span)>)?$/i,R={37:1,38:1,39:1,40:1,8:1,46:1};R[CKEDITOR.SHIFT+121]=
-1;var U=CKEDITOR.tools.createClass({$:function(a,b){this._.createCopyBin(a,b);this._.createListeners(b)},_:{createCopyBin:function(a){var b=a.document,c=CKEDITOR.env.edge&&16<=CKEDITOR.env.version,d=!a.blockless&&!CKEDITOR.env.ie||c?"div":"span",c=b.createElement(d),b=b.createElement(d);b.setAttributes({id:"cke_copybin","data-cke-temp":"1"});c.setStyles({position:"absolute",width:"1px",height:"1px",overflow:"hidden"});c.setStyle("ltr"==a.config.contentsLangDirection?"left":"right","-5000px");this.editor=
-a;this.copyBin=c;this.container=b},createListeners:function(a){a&&(a.beforeDestroy&&(this.beforeDestroy=a.beforeDestroy),a.afterDestroy&&(this.afterDestroy=a.afterDestroy))}},proto:{handle:function(a){var b=this.copyBin,c=this.editor,d=this.container,e=CKEDITOR.env.ie&&9>CKEDITOR.env.version,f=c.document.getDocumentElement().$,g=c.createRange(),h=this,k=CKEDITOR.env.mac&&CKEDITOR.env.webkit,l=k?100:0,q=window.requestAnimationFrame&&!k?requestAnimationFrame:setTimeout,m,t,n;b.setHtml('\x3cspan data-cke-copybin-start\x3d"1"\x3e​\x3c/span\x3e'+
-a+'\x3cspan data-cke-copybin-end\x3d"1"\x3e​\x3c/span\x3e');c.fire("lockSnapshot");d.append(b);c.editable().append(d);m=c.on("selectionChange",F,null,null,0);t=c.widgets.on("checkSelection",F,null,null,0);e&&(n=f.scrollTop);g.selectNodeContents(b);g.select();e&&(f.scrollTop=n);return new CKEDITOR.tools.promise(function(a){q(function(){h.beforeDestroy&&h.beforeDestroy();d.remove();m.removeListener();t.removeListener();c.fire("unlockSnapshot");h.afterDestroy&&h.afterDestroy();a()},l)})}},statics:{hasCopyBin:function(a){return!!U.getCopyBin(a)},
+b.pathName),this.editor.focusManager.add(d),d.on("focus",D,this),CKEDITOR.env.ie&&d.on("blur",L,this),d._.initialSetData=!0,d.setData(d.getHtml()),!0):!1},_findOneNotNested:function(a){a=this.wrapper.find(a);for(var b,d,c=0;c<a.count();c++)if(b=a.getItem(c),d=b.getAscendant(h.isDomWidgetWrapper),this.wrapper.equals(d))return b;return null},isInited:function(){return!(!this.wrapper||!this.inited)},isReady:function(){return this.isInited()&&this.ready},focus:function(){var a=this.editor.getSelection();
+if(a){var b=this.editor.checkDirty();a.fake(this.wrapper);!b&&this.editor.resetDirty()}this.editor.focus()},removeClass:function(a){this.element.removeClass(a);this.wrapper.removeClass(h.WRAPPER_CLASS_PREFIX+a)},removeStyle:function(a){H(this,a,0)},setData:function(a,b){var d=this.data,c=0;if("string"==typeof a)d[a]!==b&&(d[a]=b,c=1);else{var e=a;for(a in e)d[a]!==e[a]&&(c=1,d[a]=e[a])}c&&this.dataReady&&(Z(this),this.fire("data",d));return this},setFocused:function(a){this.wrapper[a?"addClass":"removeClass"]("cke_widget_focused");
+this.fire(a?"focus":"blur");return this},setSelected:function(a){this.wrapper[a?"addClass":"removeClass"]("cke_widget_selected");this.fire(a?"select":"deselect");return this},updateDragHandlerPosition:function(){var a=this.editor,b=this.element.$,d=this._.dragHandlerOffset,b={x:b.offsetLeft,y:b.offsetTop-15};d&&b.x==d.x&&b.y==d.y||(d=a.checkDirty(),a.fire("lockSnapshot"),this.dragHandlerContainer.setStyles({top:b.y+"px",left:b.x+"px"}),this.dragHandlerContainer.removeStyle("display"),a.fire("unlockSnapshot"),
+!d&&a.resetDirty(),this._.dragHandlerOffset=b)}};CKEDITOR.event.implementOn(h.prototype);h.getNestedEditable=function(a,b){return!b||b.equals(a)?null:h.isDomNestedEditable(b)?b:h.getNestedEditable(a,b.getParent())};h.isDomDragHandler=function(a){return a.type==CKEDITOR.NODE_ELEMENT&&a.hasAttribute("data-cke-widget-drag-handler")};h.isDomDragHandlerContainer=function(a){return a.type==CKEDITOR.NODE_ELEMENT&&a.hasClass("cke_widget_drag_handler_container")};h.isDomNestedEditable=function(a){return a.type==
+CKEDITOR.NODE_ELEMENT&&a.hasAttribute("data-cke-widget-editable")};h.isDomWidgetElement=function(a){return a.type==CKEDITOR.NODE_ELEMENT&&a.hasAttribute("data-widget")};h.isDomWidgetWrapper=function(a){return a.type==CKEDITOR.NODE_ELEMENT&&a.hasAttribute("data-cke-widget-wrapper")};h.isDomWidget=function(a){return a?this.isDomWidgetWrapper(a)||this.isDomWidgetElement(a):!1};h.isParserWidgetElement=function(a){return a.type==CKEDITOR.NODE_ELEMENT&&!!a.attributes["data-widget"]};h.isParserWidgetWrapper=
+function(a){return a.type==CKEDITOR.NODE_ELEMENT&&!!a.attributes["data-cke-widget-wrapper"]};h.WRAPPER_CLASS_PREFIX="cke_widget_wrapper_";g.prototype=CKEDITOR.tools.extend(CKEDITOR.tools.prototypedCopy(CKEDITOR.dom.element.prototype),{setData:function(a){this._.initialSetData||this.editor.widgets.destroyAll(!1,this);this._.initialSetData=!1;a=this.editor.dataProcessor.toHtml(a,{context:this.getName(),filter:this.filter,enterMode:this.enterMode});this.setHtml(a);this.editor.widgets.initOnAll(this)},
+getData:function(){return this.editor.dataProcessor.toDataFormat(this.getHtml(),{context:this.getName(),filter:this.filter,enterMode:this.enterMode})}});var aa=/^(?:<(?:div|span)(?: data-cke-temp="1")?(?: id="cke_copybin")?(?: data-cke-temp="1")?>)?(?:<(?:div|span)(?: style="[^"]+")?>)?<span [^>]*data-cke-copybin-start="1"[^>]*>.?<\/span>([\s\S]+)<span [^>]*data-cke-copybin-end="1"[^>]*>.?<\/span>(?:<\/(?:div|span)>)?(?:<\/(?:div|span)>)?$/i,Q={37:1,38:1,39:1,40:1,8:1,46:1};Q[CKEDITOR.SHIFT+121]=
+1;var T=CKEDITOR.tools.createClass({$:function(a,b){this._.createCopyBin(a,b);this._.createListeners(b)},_:{createCopyBin:function(a){var b=a.document,d=CKEDITOR.env.edge&&16<=CKEDITOR.env.version,c=!a.blockless&&!CKEDITOR.env.ie||d?"div":"span",d=b.createElement(c),b=b.createElement(c);b.setAttributes({id:"cke_copybin","data-cke-temp":"1"});d.setStyles({position:"absolute",width:"1px",height:"1px",overflow:"hidden"});d.setStyle("ltr"==a.config.contentsLangDirection?"left":"right","-5000px");this.editor=
+a;this.copyBin=d;this.container=b},createListeners:function(a){a&&(a.beforeDestroy&&(this.beforeDestroy=a.beforeDestroy),a.afterDestroy&&(this.afterDestroy=a.afterDestroy))}},proto:{handle:function(a){var b=this.copyBin,d=this.editor,c=this.container,e=CKEDITOR.env.ie&&9>CKEDITOR.env.version,f=d.document.getDocumentElement().$,g=d.createRange(),h=this,k=CKEDITOR.env.mac&&CKEDITOR.env.webkit,l=k?100:0,m=window.requestAnimationFrame&&!k?requestAnimationFrame:setTimeout,q,t,n;b.setHtml('\x3cspan data-cke-copybin-start\x3d"1"\x3e​\x3c/span\x3e'+
+a+'\x3cspan data-cke-copybin-end\x3d"1"\x3e​\x3c/span\x3e');d.fire("lockSnapshot");c.append(b);d.editable().append(c);q=d.on("selectionChange",E,null,null,0);t=d.widgets.on("checkSelection",E,null,null,0);e&&(n=f.scrollTop);g.selectNodeContents(b);g.select();e&&(f.scrollTop=n);return new CKEDITOR.tools.promise(function(a){m(function(){h.beforeDestroy&&h.beforeDestroy();c.remove();q.removeListener();t.removeListener();d.fire("unlockSnapshot");h.afterDestroy&&h.afterDestroy();a()},l)})}},statics:{hasCopyBin:function(a){return!!T.getCopyBin(a)},
 getCopyBin:function(a){return a.document.getById("cke_copybin")}}});CKEDITOR.plugins.widget=h;h.repository=b;h.nestedEditable=g})();"use strict";(function(){function b(a){function b(){this.deflated||(a.widgets.focused==this.widget&&(this.focused=!0),a.widgets.destroy(this.widget),this.deflated=!0)}function d(){var b=a.editable(),c=a.document;if(this.deflated)this.widget=a.widgets.initOn(this.element,"image",this.widget.data),this.widget.inline&&!(new CKEDITOR.dom.elementPath(this.widget.wrapper,b)).block&&
-(b=c.createElement(a.activeEnterMode==CKEDITOR.ENTER_P?"p":"div"),b.replace(this.widget.wrapper),this.widget.wrapper.move(b)),this.focused&&(this.widget.focus(),delete this.focused),delete this.deflated;else{var e=this.widget,b=f,c=e.wrapper,g=e.data.align,e=e.data.hasCaption;if(b){for(var h=3;h--;)c.removeClass(b[h]);"center"==g?e&&c.addClass(b[1]):"none"!=g&&c.addClass(b[z[g]])}else"center"==g?(e?c.setStyle("text-align","center"):c.removeStyle("text-align"),c.removeStyle("float")):("none"==g?c.removeStyle("float"):
+(b=c.createElement(a.activeEnterMode==CKEDITOR.ENTER_P?"p":"div"),b.replace(this.widget.wrapper),this.widget.wrapper.move(b)),this.focused&&(this.widget.focus(),delete this.focused),delete this.deflated;else{var e=this.widget,b=f,c=e.wrapper,g=e.data.align,e=e.data.hasCaption;if(b){for(var h=3;h--;)c.removeClass(b[h]);"center"==g?e&&c.addClass(b[1]):"none"!=g&&c.addClass(b[x[g]])}else"center"==g?(e?c.setStyle("text-align","center"):c.removeStyle("text-align"),c.removeStyle("float")):("none"==g?c.removeStyle("float"):
 c.setStyle("float",g),c.removeStyle("text-align"))}}var f=a.config.image2_alignClasses,k=a.config.image2_captionedClass;return{allowedContent:e(a),requiredContent:"img[src,alt]",features:c(a),styleableElements:"img figure",contentTransformations:[["img[width]: sizeToAttribute"]],editables:{caption:{selector:"figcaption",allowedContent:"br em strong sub sup u s; a[!href,target]"}},parts:{image:"img",caption:"figcaption"},dialog:"image2",template:'\x3cimg alt\x3d"" src\x3d"" /\x3e',data:function(){var c=
 this.features;this.data.hasCaption&&!a.filter.checkFeature(c.caption)&&(this.data.hasCaption=!1);"none"==this.data.align||a.filter.checkFeature(c.align)||(this.data.align="none");this.shiftState({widget:this,element:this.element,oldData:this.oldData,newData:this.data,deflate:b,inflate:d});this.data.link?this.parts.link||(this.parts.link=this.parts.image.getParent()):this.parts.link&&delete this.parts.link;this.parts.image.setAttributes({src:this.data.src,"data-cke-saved-src":this.data.src,alt:this.data.alt});
-if(this.oldData&&!this.oldData.hasCaption&&this.data.hasCaption)for(var e in this.data.classes)this.parts.image.removeClass(e);if(a.filter.checkFeature(c.dimension)){c=this.data;c={width:c.width,height:c.height};e=this.parts.image;for(var f in c)c[f]?e.setAttribute(f,c[f]):e.removeAttribute(f)}this.oldData=CKEDITOR.tools.extend({},this.data)},init:function(){var b=CKEDITOR.plugins.image2,c=this.parts.image,d={hasCaption:!!this.parts.caption,src:c.getAttribute("src"),alt:c.getAttribute("alt")||"",
-width:c.getAttribute("width")||"",height:c.getAttribute("height")||"",lock:this.ready?b.checkHasNaturalRatio(c):!0},e=c.getAscendant("a");e&&this.wrapper.contains(e)&&(this.parts.link=e);d.align||(c=d.hasCaption?this.element:c,f?(c.hasClass(f[0])?d.align="left":c.hasClass(f[2])&&(d.align="right"),d.align?c.removeClass(f[z[d.align]]):d.align="none"):(d.align=c.getStyle("float")||"none",c.removeStyle("float")));a.plugins.link&&this.parts.link&&(d.link=b.getLinkAttributesParser()(a,this.parts.link),
-(c=d.link.advanced)&&c.advCSSClasses&&(c.advCSSClasses=CKEDITOR.tools.trim(c.advCSSClasses.replace(/cke_\S+/,""))));this.wrapper[(d.hasCaption?"remove":"add")+"Class"]("cke_image_nocaption");this.setData(d);a.filter.checkFeature(this.features.dimension)&&!0!==a.config.image2_disableResizer&&m(this);this.shiftState=b.stateShifter(this.editor);this.on("contextMenu",function(a){a.data.image=CKEDITOR.TRISTATE_OFF;if(this.parts.link||this.wrapper.getAscendant("a"))a.data.link=a.data.unlink=CKEDITOR.TRISTATE_OFF})},
-addClass:function(a){n(this).addClass(a)},hasClass:function(a){return n(this).hasClass(a)},removeClass:function(a){n(this).removeClass(a)},getClasses:function(){var a=new RegExp("^("+[].concat(k,f).join("|")+")$");return function(){var b=this.repository.parseElementClasses(n(this).getAttribute("class")),c;for(c in b)a.test(c)&&delete b[c];return b}}(),upcast:h(a),downcast:g(a),getLabel:function(){return this.editor.lang.widget.label.replace(/%1/,(this.data.alt||"")+" "+this.pathName)}}}function h(b){var c=
-f(b),d=b.config.image2_captionedClass;return function(b,e){var f={width:1,height:1},g=b.name,h;if(!b.attributes["data-cke-realelement"]&&(c(b)?("div"==g&&(h=b.getFirst("figure"))&&(b.replaceWith(h),b=h),e.align="center",h=b.getFirst("img")||b.getFirst("a").getFirst("img")):"figure"==g&&b.hasClass(d)?h=b.find(function(a){return"img"===a.name&&-1!==CKEDITOR.tools.array.indexOf(["figure","a"],a.parent.name)},!0)[0]:a(b)&&(h="a"==b.name?b.children[0]:b),h)){for(var k in f)(f=h.attributes[k])&&f.match(r)&&
-delete h.attributes[k];return b}}}function g(a){var b=a.config.image2_alignClasses;return function(a){var c="a"==a.name?a.getFirst():a,d=c.attributes,e=this.data.align;if(!this.inline){var f=a.getFirst("span");f&&f.replaceWith(f.getFirst({img:1,a:1}))}e&&"none"!=e&&(f=CKEDITOR.tools.parseCssText(d.style||""),"center"==e&&"figure"==a.name?a=a.wrapWith(new CKEDITOR.htmlParser.element("div",b?{"class":b[1]}:{style:"text-align:center"})):e in{left:1,right:1}&&(b?c.addClass(b[z[e]]):f["float"]=e),b||CKEDITOR.tools.isEmpty(f)||
-(d.style=CKEDITOR.tools.writeCssText(f)));return a}}function f(b){var c=b.config.image2_captionedClass,d=b.config.image2_alignClasses,e={figure:1,a:1,img:1};return function(f){if(!(f.name in{div:1,p:1}))return!1;var g=f.children;if(1!==g.length)return!1;g=g[0];if(!(g.name in e))return!1;if("p"==f.name){if(!a(g))return!1}else if("figure"==g.name){if(!g.hasClass(c))return!1}else if(b.enterMode==CKEDITOR.ENTER_P||!a(g))return!1;return(d?f.hasClass(d[1]):"center"==CKEDITOR.tools.parseCssText(f.attributes.style||
-"",!0)["text-align"])?!0:!1}}function a(a){return"img"==a.name?!0:"a"==a.name?1==a.children.length&&a.getFirst("img"):!1}function m(a){var b=a.editor,c=b.editable(),d=b.document,e=a.resizer=d.createElement("span");e.addClass("cke_image_resizer");e.setAttribute("title",b.lang.image2.resizer);e.append(new CKEDITOR.dom.text("​",d));if(a.inline)a.wrapper.append(e);else{var f=a.parts.link||a.parts.image,g=f.getParent(),h=d.createElement("span");h.addClass("cke_image_resizer_wrapper");h.append(f);h.append(e);
-a.element.append(h,!0);g.is("span")&&g.remove()}e.on("mousedown",function(f){function g(a,b,c){var e=CKEDITOR.document,f=[];d.equals(e)||f.push(e.on(a,b));f.push(d.on(a,b));if(c)for(a=f.length;a--;)c.push(f.pop())}function h(){S=x+n*L;W=Math.round(S/r)}function k(){W=w-T;S=Math.round(W*r)}var l=a.parts.image,m=function(){var a=b.config.image2_maxSize,c;if(!a)return null;a=CKEDITOR.tools.copy(a);c=CKEDITOR.plugins.image2.getNatural(l);a.width=Math.max("natural"===a.width?c.width:a.width,15);a.height=
-Math.max("natural"===a.height?c.height:a.height,15);return a}(),n="right"==a.data.align?-1:1,B=f.data.$.screenX,v=f.data.$.screenY,x=l.$.clientWidth,w=l.$.clientHeight,r=x/w,z=[],K="cke_image_s"+(~n?"e":"w"),X,S,W,ea,L,T,Z;b.fire("saveSnapshot");g("mousemove",function(a){X=a.data.$;L=X.screenX-B;T=v-X.screenY;Z=Math.abs(L/T);1==n?0>=L?0>=T?h():Z>=r?h():k():0>=T?Z>=r?k():h():k():0>=L?0>=T?Z>=r?k():h():k():0>=T?h():Z>=r?h():k();a=m&&(S>m.width||W>m.height);15>S||15>W||a||(ea={width:S,height:W},l.setAttributes(ea))},
-z);g("mouseup",function(){for(var d;d=z.pop();)d.removeListener();c.removeClass(K);e.removeClass("cke_image_resizing");ea&&(a.setData(ea),b.fire("saveSnapshot"));ea=!1},z);c.addClass(K);e.addClass("cke_image_resizing")});a.on("data",function(){e["right"==a.data.align?"addClass":"removeClass"]("cke_image_resizer_left")})}function k(a){var b=[],c;return function(e){var f=a.getCommand("justify"+e);if(f){b.push(function(){f.refresh(a,a.elementPath())});if(e in{right:1,left:1,center:1})f.on("exec",function(c){var f=
-d(a);if(f){f.setData("align",e);for(f=b.length;f--;)b[f]();c.cancel()}});f.on("refresh",function(b){var f=d(a),g={right:1,left:1,center:1};f&&(void 0===c&&(c=a.filter.checkFeature(a.widgets.registered.image.features.align)),c?this.setState(f.data.align==e?CKEDITOR.TRISTATE_ON:e in g?CKEDITOR.TRISTATE_OFF:CKEDITOR.TRISTATE_DISABLED):this.setState(CKEDITOR.TRISTATE_DISABLED),b.cancel())})}}}function l(a){if(a.plugins.link){var b=CKEDITOR.on("dialogDefinition",function(b){b=b.data;if("link"==b.name){b=
+if(this.oldData&&!this.oldData.hasCaption&&this.data.hasCaption)for(var e in this.data.classes)this.parts.image.removeClass(e);if(a.filter.checkFeature(c.dimension)){c=this.data;c={width:c.width,height:c.height};e=this.parts.image;for(var f in c)c[f]?e.setAttribute(f,c[f]):e.removeAttribute(f)}this.oldData=CKEDITOR.tools.extend({},this.data)},init:function(){var b=CKEDITOR.plugins.image2,d=this.parts.image,c={hasCaption:!!this.parts.caption,src:d.getAttribute("src"),alt:d.getAttribute("alt")||"",
+width:d.getAttribute("width")||"",height:d.getAttribute("height")||"",lock:this.ready?b.checkHasNaturalRatio(d):!0},e=d.getAscendant("a");e&&this.wrapper.contains(e)&&(this.parts.link=e);c.align||(d=c.hasCaption?this.element:d,f?(d.hasClass(f[0])?c.align="left":d.hasClass(f[2])&&(c.align="right"),c.align?d.removeClass(f[x[c.align]]):c.align="none"):(c.align=d.getStyle("float")||"none",d.removeStyle("float")));a.plugins.link&&this.parts.link&&(c.link=b.getLinkAttributesParser()(a,this.parts.link),
+(d=c.link.advanced)&&d.advCSSClasses&&(d.advCSSClasses=CKEDITOR.tools.trim(d.advCSSClasses.replace(/cke_\S+/,""))));this.wrapper[(c.hasCaption?"remove":"add")+"Class"]("cke_image_nocaption");this.setData(c);a.filter.checkFeature(this.features.dimension)&&!0!==a.config.image2_disableResizer&&m(this);this.shiftState=b.stateShifter(this.editor);this.on("contextMenu",function(a){a.data.image=CKEDITOR.TRISTATE_OFF;if(this.parts.link||this.wrapper.getAscendant("a"))a.data.link=a.data.unlink=CKEDITOR.TRISTATE_OFF})},
+addClass:function(a){n(this).addClass(a)},hasClass:function(a){return n(this).hasClass(a)},removeClass:function(a){n(this).removeClass(a)},getClasses:function(){var a=new RegExp("^("+[].concat(k,f).join("|")+")$");return function(){var b=this.repository.parseElementClasses(n(this).getAttribute("class")),d;for(d in b)a.test(d)&&delete b[d];return b}}(),upcast:h(a),downcast:g(a),getLabel:function(){return this.editor.lang.widget.label.replace(/%1/,(this.data.alt||"")+" "+this.pathName)}}}function h(b){var d=
+f(b),c=b.config.image2_captionedClass;return function(b,e){var f={width:1,height:1},g=b.name,h;if(!b.attributes["data-cke-realelement"]&&(d(b)?("div"==g&&(h=b.getFirst("figure"))&&(b.replaceWith(h),b=h),e.align="center",h=b.getFirst("img")||b.getFirst("a").getFirst("img")):"figure"==g&&b.hasClass(c)?h=b.find(function(a){return"img"===a.name&&-1!==CKEDITOR.tools.array.indexOf(["figure","a"],a.parent.name)},!0)[0]:a(b)&&(h="a"==b.name?b.children[0]:b),h)){for(var k in f)(f=h.attributes[k])&&f.match(p)&&
+delete h.attributes[k];return b}}}function g(a){var b=a.config.image2_alignClasses;return function(a){var d="a"==a.name?a.getFirst():a,c=d.attributes,e=this.data.align;if(!this.inline){var f=a.getFirst("span");f&&f.replaceWith(f.getFirst({img:1,a:1}))}e&&"none"!=e&&(f=CKEDITOR.tools.parseCssText(c.style||""),"center"==e&&"figure"==a.name?a=a.wrapWith(new CKEDITOR.htmlParser.element("div",b?{"class":b[1]}:{style:"text-align:center"})):e in{left:1,right:1}&&(b?d.addClass(b[x[e]]):f["float"]=e),b||CKEDITOR.tools.isEmpty(f)||
+(c.style=CKEDITOR.tools.writeCssText(f)));return a}}function f(b){var d=b.config.image2_captionedClass,c=b.config.image2_alignClasses,e={figure:1,a:1,img:1};return function(f){if(!(f.name in{div:1,p:1}))return!1;var g=f.children;if(1!==g.length)return!1;g=g[0];if(!(g.name in e))return!1;if("p"==f.name){if(!a(g))return!1}else if("figure"==g.name){if(!g.hasClass(d))return!1}else if(b.enterMode==CKEDITOR.ENTER_P||!a(g))return!1;return(c?f.hasClass(c[1]):"center"==CKEDITOR.tools.parseCssText(f.attributes.style||
+"",!0)["text-align"])?!0:!1}}function a(a){return"img"==a.name?!0:"a"==a.name?1==a.children.length&&a.getFirst("img"):!1}function m(a){var b=a.editor,d=b.editable(),c=b.document,e=a.resizer=c.createElement("span");e.addClass("cke_image_resizer");e.setAttribute("title",b.lang.image2.resizer);e.append(new CKEDITOR.dom.text("​",c));if(a.inline)a.wrapper.append(e);else{var f=a.parts.link||a.parts.image,g=f.getParent(),h=c.createElement("span");h.addClass("cke_image_resizer_wrapper");h.append(f);h.append(e);
+a.element.append(h,!0);g.is("span")&&g.remove()}e.on("mousedown",function(f){function g(a,b,d){var e=CKEDITOR.document,f=[];c.equals(e)||f.push(e.on(a,b));f.push(c.on(a,b));if(d)for(a=f.length;a--;)d.push(f.pop())}function h(){R=v+n*V;W=Math.round(R/C)}function k(){W=p-S;R=Math.round(W*C)}var l=a.parts.image,m=function(){var a=b.config.image2_maxSize,d;if(!a)return null;a=CKEDITOR.tools.copy(a);d=CKEDITOR.plugins.image2.getNatural(l);a.width=Math.max("natural"===a.width?d.width:a.width,15);a.height=
+Math.max("natural"===a.height?d.height:a.height,15);return a}(),n="right"==a.data.align?-1:1,u=f.data.$.screenX,y=f.data.$.screenY,v=l.$.clientWidth,p=l.$.clientHeight,C=v/p,x=[],M="cke_image_s"+(~n?"e":"w"),Y,R,W,ea,V,S,X;b.fire("saveSnapshot");g("mousemove",function(a){Y=a.data.$;V=Y.screenX-u;S=y-Y.screenY;X=Math.abs(V/S);1==n?0>=V?0>=S?h():X>=C?h():k():0>=S?X>=C?k():h():k():0>=V?0>=S?X>=C?k():h():k():0>=S?h():X>=C?h():k();a=m&&(R>m.width||W>m.height);15>R||15>W||a||(ea={width:R,height:W},l.setAttributes(ea))},
+x);g("mouseup",function(){for(var c;c=x.pop();)c.removeListener();d.removeClass(M);e.removeClass("cke_image_resizing");ea&&(a.setData(ea),b.fire("saveSnapshot"));ea=!1},x);d.addClass(M);e.addClass("cke_image_resizing")});a.on("data",function(){e["right"==a.data.align?"addClass":"removeClass"]("cke_image_resizer_left")})}function l(a){var b=[],c;return function(e){var f=a.getCommand("justify"+e);if(f){b.push(function(){f.refresh(a,a.elementPath())});if(e in{right:1,left:1,center:1})f.on("exec",function(c){var f=
+d(a);if(f){f.setData("align",e);for(f=b.length;f--;)b[f]();c.cancel()}});f.on("refresh",function(b){var f=d(a),g={right:1,left:1,center:1};f&&(void 0===c&&(c=a.filter.checkFeature(a.widgets.registered.image.features.align)),c?this.setState(f.data.align==e?CKEDITOR.TRISTATE_ON:e in g?CKEDITOR.TRISTATE_OFF:CKEDITOR.TRISTATE_DISABLED):this.setState(CKEDITOR.TRISTATE_DISABLED),b.cancel())})}}}function k(a){if(a.plugins.link){var b=CKEDITOR.on("dialogDefinition",function(b){b=b.data;if("link"==b.name){b=
 b.definition;var c=b.onShow,e=b.onOk;b.onShow=function(){var b=d(a),e=this.getContentElement("info","linkDisplayText").getElement().getParent().getParent();b&&(b.inline?!b.wrapper.getAscendant("a"):1)?(this.setupContent(b.data.link||{}),e.hide()):(e.show(),c.apply(this,arguments))};b.onOk=function(){var b=d(a);if(b&&(b.inline?!b.wrapper.getAscendant("a"):1)){var c={};this.commitContent(c);b.setData("link",c)}else e.apply(this,arguments)}}});a.on("destroy",function(){b.removeListener()});a.getCommand("unlink").on("exec",
 function(b){var c=d(a);c&&c.parts.link&&(c.setData("link",null),this.refresh(a,a.elementPath()),b.cancel())});a.getCommand("unlink").on("refresh",function(b){var c=d(a);c&&(this.setState(c.data.link||c.wrapper.getAscendant("a")?CKEDITOR.TRISTATE_OFF:CKEDITOR.TRISTATE_DISABLED),b.cancel())})}}function d(a){return(a=a.widgets.focused)&&"image"==a.name?a:null}function e(a){var b=a.config.image2_alignClasses;a={div:{match:f(a)},p:{match:f(a)},img:{attributes:"!src,alt,width,height"},figure:{classes:"!"+
 a.config.image2_captionedClass},figcaption:!0};b?(a.div.classes=b[1],a.p.classes=a.div.classes,a.img.classes=b[0]+","+b[2],a.figure.classes+=","+a.img.classes):(a.div.styles="text-align",a.p.styles="text-align",a.img.styles="float",a.figure.styles="float,display");return a}function c(a){a=a.config.image2_alignClasses;return{dimension:{requiredContent:"img[width,height]"},align:{requiredContent:"img"+(a?"("+a[0]+")":"{float}")},caption:{requiredContent:"figcaption"}}}function n(a){return a.data.hasCaption?
-a.element:a.parts.image}var w=new CKEDITOR.template('\x3cfigure class\x3d"{captionedClass}"\x3e\x3cimg alt\x3d"" src\x3d"" /\x3e\x3cfigcaption\x3e{captionPlaceholder}\x3c/figcaption\x3e\x3c/figure\x3e'),z={left:0,center:1,right:2},r=/^\s*(\d+\%)\s*$/i;CKEDITOR.plugins.add("image2",{requires:"widget,dialog",icons:"image",hidpi:!0,onLoad:function(){CKEDITOR.addCss('.cke_image_nocaption{line-height:0}.cke_editable.cke_image_sw, .cke_editable.cke_image_sw *{cursor:sw-resize !important}.cke_editable.cke_image_se, .cke_editable.cke_image_se *{cursor:se-resize !important}.cke_image_resizer{display:none;position:absolute;width:10px;height:10px;bottom:-5px;right:-5px;background:#000;outline:1px solid #fff;line-height:0;cursor:se-resize;}.cke_image_resizer_wrapper{position:relative;display:inline-block;line-height:0;}.cke_image_resizer.cke_image_resizer_left{right:auto;left:-5px;cursor:sw-resize;}.cke_widget_wrapper:hover .cke_image_resizer,.cke_image_resizer.cke_image_resizing{display:block}.cke_editable[contenteditable\x3d"false"] .cke_image_resizer{display:none;}.cke_widget_wrapper\x3ea{display:inline-block}')},
-init:function(a){if(!a.plugins.detectConflict("image2",["easyimage"])){var c=a.config,d=a.lang.image2,e=b(a);c.filebrowserImage2BrowseUrl=c.filebrowserImageBrowseUrl;c.filebrowserImage2UploadUrl=c.filebrowserImageUploadUrl;e.pathName=d.pathName;e.editables.caption.pathName=d.pathNameCaption;a.widgets.add("image",e);a.ui.addButton&&a.ui.addButton("Image",{label:a.lang.common.image,command:"image",toolbar:"insert,10"});a.contextMenu&&(a.addMenuGroup("image",10),a.addMenuItem("image",{label:d.menu,command:"image",
-group:"image"}));CKEDITOR.dialog.add("image2",this.path+"dialogs/image2.js")}},afterInit:function(a){var b={left:1,right:1,center:1,block:1},c=k(a),d;for(d in b)c(d);l(a)}});CKEDITOR.plugins.image2={stateShifter:function(a){function b(a,f){var g={};e?g.attributes={"class":e[1]}:g.styles={"text-align":"center"};g=d.createElement(a.activeEnterMode==CKEDITOR.ENTER_P?"p":"div",g);c(g,f);f.move(g);return g}function c(b,d){if(d.getParent()){var e=a.createRange();e.moveToPosition(d,CKEDITOR.POSITION_BEFORE_START);
-d.remove();g.insertElementIntoRange(b,e)}else b.replace(d)}var d=a.document,e=a.config.image2_alignClasses,f=a.config.image2_captionedClass,g=a.editable(),h=["hasCaption","align","link"],k={align:function(c,d,f){var g=c.element;c.changed.align?c.newData.hasCaption||("center"==f&&(c.deflate(),c.element=b(a,g)),c.changed.hasCaption||"center"!=d||"center"==f||(c.deflate(),d=g.findOne("a,img"),d.replace(g),c.element=d)):"center"==f&&c.changed.hasCaption&&!c.newData.hasCaption&&(c.deflate(),c.element=
-b(a,g));!e&&g.is("figure")&&("center"==f?g.setStyle("display","inline-block"):g.removeStyle("display"))},hasCaption:function(b,e,g){b.changed.hasCaption&&(e=b.element.is({img:1,a:1})?b.element:b.element.findOne("a,img"),b.deflate(),g?(g=CKEDITOR.dom.element.createFromHtml(w.output({captionedClass:f,captionPlaceholder:a.lang.image2.captionPlaceholder}),d),c(g,b.element),e.replace(g.findOne("img")),b.element=g):(e.replace(b.element),b.element=e))},link:function(b,c,e){if(b.changed.link){var f=b.element.is("img")?
-b.element:b.element.findOne("img"),g=b.element.is("a")?b.element:b.element.findOne("a"),h=b.element.is("a")&&!e||b.element.is("img")&&e,k;h&&b.deflate();e?(c||(k=d.createElement("a",{attributes:{href:b.newData.link.url}}),k.replace(f),f.move(k)),e=CKEDITOR.plugins.image2.getLinkAttributesGetter()(a,e),CKEDITOR.tools.isEmpty(e.set)||(k||g).setAttributes(e.set),e.removed.length&&(k||g).removeAttributes(e.removed)):(e=g.findOne("img"),e.replace(g),k=e);h&&(b.element=k)}}};return function(a){var b,c;
-a.changed={};for(c=0;c<h.length;c++)b=h[c],a.changed[b]=a.oldData?a.oldData[b]!==a.newData[b]:!1;for(c=0;c<h.length;c++)b=h[c],k[b](a,a.oldData?a.oldData[b]:null,a.newData[b]);a.inflate()}},checkHasNaturalRatio:function(a){var b=a.$;a=this.getNatural(a);return Math.round(b.clientWidth/a.width*a.height)==b.clientHeight||Math.round(b.clientHeight/a.height*a.width)==b.clientWidth},getNatural:function(a){if(a.$.naturalWidth)a={width:a.$.naturalWidth,height:a.$.naturalHeight};else{var b=new Image;b.src=
-a.getAttribute("src");a={width:b.width,height:b.height}}return a},getLinkAttributesGetter:function(){return CKEDITOR.plugins.link.getLinkAttributes},getLinkAttributesParser:function(){return CKEDITOR.plugins.link.parseLinkAttributes}}})();CKEDITOR.config.image2_captionedClass="image";(function(){function b(b,a){var m,k;a.on("refresh",function(a){var b=[h],e;for(e in a.data.states)b.push(a.data.states[e]);this.setState(CKEDITOR.tools.search(b,g)?g:h)},a,null,100);a.on("exec",function(a){m=b.getSelection();
-k=m.createBookmarks(1);a.data||(a.data={});a.data.done=!1},a,null,0);a.on("exec",function(){b.forceNextSelectionCheck();m.selectBookmarks(k)},a,null,100)}var h=CKEDITOR.TRISTATE_DISABLED,g=CKEDITOR.TRISTATE_OFF;CKEDITOR.plugins.add("indent",{init:function(f){var a=CKEDITOR.plugins.indent.genericDefinition;b(f,f.addCommand("indent",new a(!0)));b(f,f.addCommand("outdent",new a));f.ui.addButton&&(f.ui.addButton("Indent",{label:f.lang.indent.indent,command:"indent",directional:!0,toolbar:"indent,20"}),
-f.ui.addButton("Outdent",{label:f.lang.indent.outdent,command:"outdent",directional:!0,toolbar:"indent,10"}));f.on("dirChanged",function(a){var b=f.createRange(),g=a.data.node;b.setStartBefore(g);b.setEndAfter(g);for(var d=new CKEDITOR.dom.walker(b),e;e=d.next();)if(e.type==CKEDITOR.NODE_ELEMENT)if(!e.equals(g)&&e.getDirection())b.setStartAfter(e),d=new CKEDITOR.dom.walker(b);else{var c=f.config.indentClasses;if(c)for(var h="ltr"==a.data.dir?["_rtl",""]:["","_rtl"],w=0;w<c.length;w++)e.hasClass(c[w]+
-h[0])&&(e.removeClass(c[w]+h[0]),e.addClass(c[w]+h[1]));c=e.getStyle("margin-right");h=e.getStyle("margin-left");c?e.setStyle("margin-left",c):e.removeStyle("margin-left");h?e.setStyle("margin-right",h):e.removeStyle("margin-right")}})}});CKEDITOR.plugins.indent={genericDefinition:function(b){this.isIndent=!!b;this.startDisabled=!this.isIndent},specificDefinition:function(b,a,g){this.name=a;this.editor=b;this.jobs={};this.enterBr=b.config.enterMode==CKEDITOR.ENTER_BR;this.isIndent=!!g;this.relatedGlobal=
-g?"indent":"outdent";this.indentKey=g?9:CKEDITOR.SHIFT+9;this.database={}},registerCommands:function(b,a){b.on("pluginsLoaded",function(){for(var b in a)(function(a,b){var d=a.getCommand(b.relatedGlobal),e;for(e in b.jobs)d.on("exec",function(c){c.data.done||(a.fire("lockSnapshot"),b.execJob(a,e)&&(c.data.done=!0),a.fire("unlockSnapshot"),CKEDITOR.dom.element.clearAllMarkers(b.database))},this,null,e),d.on("refresh",function(c){c.data.states||(c.data.states={});c.data.states[b.name+"@"+e]=b.refreshJob(a,
-e,c.data.path)},this,null,e);a.addFeature(b)})(this,a[b])})}};CKEDITOR.plugins.indent.genericDefinition.prototype={context:"p",exec:function(){}};CKEDITOR.plugins.indent.specificDefinition.prototype={execJob:function(b,a){var g=this.jobs[a];if(g.state!=h)return g.exec.call(this,b)},refreshJob:function(b,a,g){a=this.jobs[a];b.activeFilter.checkFeature(this)?a.state=a.refresh.call(this,b,g):a.state=h;return a.state},getContext:function(b){return b.contains(this.context)}}})();(function(){function b(a){function b(d){for(var h=
-k.startContainer,m=k.endContainer;h&&!h.getParent().equals(d);)h=h.getParent();for(;m&&!m.getParent().equals(d);)m=m.getParent();if(!h||!m)return!1;for(var y=[],v=!1;!v;)h.equals(m)&&(v=!0),y.push(h),h=h.getNext();if(1>y.length)return!1;h=d.getParents(!0);for(m=0;m<h.length;m++)if(h[m].getName&&f[h[m].getName()]){d=h[m];break}for(var h=e.isIndent?1:-1,m=y[0],y=y[y.length-1],v=CKEDITOR.plugins.list.listToArray(d,c),x=v[y.getCustomData("listarray_index")].indent,m=m.getCustomData("listarray_index");m<=
-y.getCustomData("listarray_index");m++)if(v[m].indent+=h,0<h){for(var B=v[m].parent,p=m-1;0<=p;p--)if(v[p].indent===h){B=v[p].parent;break}v[m].parent=new CKEDITOR.dom.element(B.getName(),B.getDocument())}for(m=y.getCustomData("listarray_index")+1;m<v.length&&v[m].indent>x;m++)v[m].indent+=h;h=CKEDITOR.plugins.list.arrayToList(v,c,null,a.config.enterMode,d.getDirection());if(!e.isIndent){var A;if((A=d.getParent())&&A.is("li"))for(var y=h.listNode.getChildren(),r=[],C,m=y.count()-1;0<=m;m--)(C=y.getItem(m))&&
-C.is&&C.is("li")&&r.push(C)}h&&h.listNode.replace(d);if(r&&r.length)for(m=0;m<r.length;m++){for(C=d=r[m];(C=C.getNext())&&C.is&&C.getName()in f;)CKEDITOR.env.needsNbspFiller&&!d.getFirst(g)&&d.append(k.document.createText(" ")),d.append(C);d.insertAfter(A)}h&&a.fire("contentDomInvalidated");return!0}for(var e=this,c=this.database,f=this.context,k,m=a.getSelection(),m=(m&&m.getRanges()).createIterator();k=m.getNextRange();){for(var r=k.getCommonAncestor();r&&(r.type!=CKEDITOR.NODE_ELEMENT||!f[r.getName()]);){if(a.editable().equals(r)){r=
-!1;break}r=r.getParent()}r||(r=k.startPath().contains(f))&&k.setEndAt(r,CKEDITOR.POSITION_BEFORE_END);if(!r){var p=k.getEnclosedNode();p&&p.type==CKEDITOR.NODE_ELEMENT&&p.getName()in f&&(k.setStartAt(p,CKEDITOR.POSITION_AFTER_START),k.setEndAt(p,CKEDITOR.POSITION_BEFORE_END),r=p)}r&&k.startContainer.type==CKEDITOR.NODE_ELEMENT&&k.startContainer.getName()in f&&(p=new CKEDITOR.dom.walker(k),p.evaluator=h,k.startContainer=p.next());r&&k.endContainer.type==CKEDITOR.NODE_ELEMENT&&k.endContainer.getName()in
-f&&(p=new CKEDITOR.dom.walker(k),p.evaluator=h,k.endContainer=p.previous());if(r)return b(r)}return 0}function h(a){return a.type==CKEDITOR.NODE_ELEMENT&&a.is("li")}function g(b){return f(b)&&a(b)}var f=CKEDITOR.dom.walker.whitespaces(!0),a=CKEDITOR.dom.walker.bookmark(!1,!0),m=CKEDITOR.TRISTATE_DISABLED,k=CKEDITOR.TRISTATE_OFF;CKEDITOR.plugins.add("indentlist",{requires:"indent",init:function(a){function d(a){e.specificDefinition.apply(this,arguments);this.requiredContent=["ul","ol"];a.on("key",
-function(b){var d=a.elementPath();if("wysiwyg"==a.mode&&b.data.keyCode==this.indentKey&&d){var e=this.getContext(d);!e||this.isIndent&&CKEDITOR.plugins.indentList.firstItemInPath(this.context,d,e)||(a.execCommand(this.relatedGlobal),b.cancel())}},this);this.jobs[this.isIndent?10:30]={refresh:this.isIndent?function(a,b){var c=this.getContext(b),d=CKEDITOR.plugins.indentList.firstItemInPath(this.context,b,c);return c&&this.isIndent&&!d?k:m}:function(a,b){return!this.getContext(b)||this.isIndent?m:k},
+a.element:a.parts.image}var v=new CKEDITOR.template('\x3cfigure class\x3d"{captionedClass}"\x3e\x3cimg alt\x3d"" src\x3d"" /\x3e\x3cfigcaption\x3e{captionPlaceholder}\x3c/figcaption\x3e\x3c/figure\x3e'),x={left:0,center:1,right:2},p=/^\s*(\d+\%)\s*$/i;CKEDITOR.plugins.add("image2",{requires:"widget,dialog",icons:"image",hidpi:!0,onLoad:function(){CKEDITOR.addCss('.cke_image_nocaption{line-height:0}.cke_editable.cke_image_sw, .cke_editable.cke_image_sw *{cursor:sw-resize !important}.cke_editable.cke_image_se, .cke_editable.cke_image_se *{cursor:se-resize !important}.cke_image_resizer{display:none;position:absolute;width:10px;height:10px;bottom:-5px;right:-5px;background:#000;outline:1px solid #fff;line-height:0;cursor:se-resize;}.cke_image_resizer_wrapper{position:relative;display:inline-block;line-height:0;}.cke_image_resizer.cke_image_resizer_left{right:auto;left:-5px;cursor:sw-resize;}.cke_widget_wrapper:hover .cke_image_resizer,.cke_image_resizer.cke_image_resizing{display:block}.cke_editable[contenteditable\x3d"false"] .cke_image_resizer{display:none;}.cke_widget_wrapper\x3ea{display:inline-block}')},
+init:function(a){if(!a.plugins.detectConflict("image2",["easyimage"])){var d=a.config,c=a.lang.image2,e=b(a);d.filebrowserImage2BrowseUrl=d.filebrowserImageBrowseUrl;d.filebrowserImage2UploadUrl=d.filebrowserImageUploadUrl;e.pathName=c.pathName;e.editables.caption.pathName=c.pathNameCaption;a.widgets.add("image",e);a.ui.addButton&&a.ui.addButton("Image",{label:a.lang.common.image,command:"image",toolbar:"insert,10"});a.contextMenu&&(a.addMenuGroup("image",10),a.addMenuItem("image",{label:c.menu,command:"image",
+group:"image"}));CKEDITOR.dialog.add("image2",this.path+"dialogs/image2.js")}},afterInit:function(a){var b={left:1,right:1,center:1,block:1},d=l(a),c;for(c in b)d(c);k(a)}});CKEDITOR.plugins.image2={stateShifter:function(a){function b(a,f){var g={};e?g.attributes={"class":e[1]}:g.styles={"text-align":"center"};g=c.createElement(a.activeEnterMode==CKEDITOR.ENTER_P?"p":"div",g);d(g,f);f.move(g);return g}function d(b,c){if(c.getParent()){var e=a.createRange();e.moveToPosition(c,CKEDITOR.POSITION_BEFORE_START);
+c.remove();g.insertElementIntoRange(b,e)}else b.replace(c)}var c=a.document,e=a.config.image2_alignClasses,f=a.config.image2_captionedClass,g=a.editable(),h=["hasCaption","align","link"],k={align:function(d,c,f){var g=d.element;d.changed.align?d.newData.hasCaption||("center"==f&&(d.deflate(),d.element=b(a,g)),d.changed.hasCaption||"center"!=c||"center"==f||(d.deflate(),c=g.findOne("a,img"),c.replace(g),d.element=c)):"center"==f&&d.changed.hasCaption&&!d.newData.hasCaption&&(d.deflate(),d.element=
+b(a,g));!e&&g.is("figure")&&("center"==f?g.setStyle("display","inline-block"):g.removeStyle("display"))},hasCaption:function(b,e,g){b.changed.hasCaption&&(e=b.element.is({img:1,a:1})?b.element:b.element.findOne("a,img"),b.deflate(),g?(g=CKEDITOR.dom.element.createFromHtml(v.output({captionedClass:f,captionPlaceholder:a.lang.image2.captionPlaceholder}),c),d(g,b.element),e.replace(g.findOne("img")),b.element=g):(e.replace(b.element),b.element=e))},link:function(b,d,e){if(b.changed.link){var f=b.element.is("img")?
+b.element:b.element.findOne("img"),g=b.element.is("a")?b.element:b.element.findOne("a"),h=b.element.is("a")&&!e||b.element.is("img")&&e,k;h&&b.deflate();e?(d||(k=c.createElement("a",{attributes:{href:b.newData.link.url}}),k.replace(f),f.move(k)),e=CKEDITOR.plugins.image2.getLinkAttributesGetter()(a,e),CKEDITOR.tools.isEmpty(e.set)||(k||g).setAttributes(e.set),e.removed.length&&(k||g).removeAttributes(e.removed)):(e=g.findOne("img"),e.replace(g),k=e);h&&(b.element=k)}}};return function(a){var b,d;
+a.changed={};for(d=0;d<h.length;d++)b=h[d],a.changed[b]=a.oldData?a.oldData[b]!==a.newData[b]:!1;for(d=0;d<h.length;d++)b=h[d],k[b](a,a.oldData?a.oldData[b]:null,a.newData[b]);a.inflate()}},checkHasNaturalRatio:function(a){var b=a.$;a=this.getNatural(a);return Math.round(b.clientWidth/a.width*a.height)==b.clientHeight||Math.round(b.clientHeight/a.height*a.width)==b.clientWidth},getNatural:function(a){if(a.$.naturalWidth)a={width:a.$.naturalWidth,height:a.$.naturalHeight};else{var b=new Image;b.src=
+a.getAttribute("src");a={width:b.width,height:b.height}}return a},getLinkAttributesGetter:function(){return CKEDITOR.plugins.link.getLinkAttributes},getLinkAttributesParser:function(){return CKEDITOR.plugins.link.parseLinkAttributes}}})();CKEDITOR.config.image2_captionedClass="image";(function(){function b(b,a){var m,l;a.on("refresh",function(a){var b=[h],e;for(e in a.data.states)b.push(a.data.states[e]);this.setState(CKEDITOR.tools.search(b,g)?g:h)},a,null,100);a.on("exec",function(a){m=b.getSelection();
+l=m.createBookmarks(1);a.data||(a.data={});a.data.done=!1},a,null,0);a.on("exec",function(){b.forceNextSelectionCheck();m.selectBookmarks(l)},a,null,100)}var h=CKEDITOR.TRISTATE_DISABLED,g=CKEDITOR.TRISTATE_OFF;CKEDITOR.plugins.add("indent",{init:function(f){var a=CKEDITOR.plugins.indent.genericDefinition;b(f,f.addCommand("indent",new a(!0)));b(f,f.addCommand("outdent",new a));f.ui.addButton&&(f.ui.addButton("Indent",{label:f.lang.indent.indent,command:"indent",directional:!0,toolbar:"indent,20"}),
+f.ui.addButton("Outdent",{label:f.lang.indent.outdent,command:"outdent",directional:!0,toolbar:"indent,10"}));f.on("dirChanged",function(a){var b=f.createRange(),g=a.data.node;b.setStartBefore(g);b.setEndAfter(g);for(var d=new CKEDITOR.dom.walker(b),e;e=d.next();)if(e.type==CKEDITOR.NODE_ELEMENT)if(!e.equals(g)&&e.getDirection())b.setStartAfter(e),d=new CKEDITOR.dom.walker(b);else{var c=f.config.indentClasses;if(c)for(var h="ltr"==a.data.dir?["_rtl",""]:["","_rtl"],v=0;v<c.length;v++)e.hasClass(c[v]+
+h[0])&&(e.removeClass(c[v]+h[0]),e.addClass(c[v]+h[1]));c=e.getStyle("margin-right");h=e.getStyle("margin-left");c?e.setStyle("margin-left",c):e.removeStyle("margin-left");h?e.setStyle("margin-right",h):e.removeStyle("margin-right")}})}});CKEDITOR.plugins.indent={genericDefinition:function(b){this.isIndent=!!b;this.startDisabled=!this.isIndent},specificDefinition:function(b,a,g){this.name=a;this.editor=b;this.jobs={};this.enterBr=b.config.enterMode==CKEDITOR.ENTER_BR;this.isIndent=!!g;this.relatedGlobal=
+g?"indent":"outdent";this.indentKey=g?9:CKEDITOR.SHIFT+9;this.database={}},registerCommands:function(b,a){b.on("pluginsLoaded",function(){for(var b in a)(function(a,b){var d=a.getCommand(b.relatedGlobal),e;for(e in b.jobs)d.on("exec",function(d){d.data.done||(a.fire("lockSnapshot"),b.execJob(a,e)&&(d.data.done=!0),a.fire("unlockSnapshot"),CKEDITOR.dom.element.clearAllMarkers(b.database))},this,null,e),d.on("refresh",function(d){d.data.states||(d.data.states={});d.data.states[b.name+"@"+e]=b.refreshJob(a,
+e,d.data.path)},this,null,e);a.addFeature(b)})(this,a[b])})}};CKEDITOR.plugins.indent.genericDefinition.prototype={context:"p",exec:function(){}};CKEDITOR.plugins.indent.specificDefinition.prototype={execJob:function(b,a){var g=this.jobs[a];if(g.state!=h)return g.exec.call(this,b)},refreshJob:function(b,a,g){a=this.jobs[a];b.activeFilter.checkFeature(this)?a.state=a.refresh.call(this,b,g):a.state=h;return a.state},getContext:function(b){return b.contains(this.context)}}})();(function(){function b(a){function b(d){for(var h=
+l.startContainer,m=l.endContainer;h&&!h.getParent().equals(d);)h=h.getParent();for(;m&&!m.getParent().equals(d);)m=m.getParent();if(!h||!m)return!1;for(var r=[],y=!1;!y;)h.equals(m)&&(y=!0),r.push(h),h=h.getNext();if(1>r.length)return!1;h=d.getParents(!0);for(m=0;m<h.length;m++)if(h[m].getName&&f[h[m].getName()]){d=h[m];break}for(var h=e.isIndent?1:-1,m=r[0],r=r[r.length-1],y=CKEDITOR.plugins.list.listToArray(d,c),u=y[r.getCustomData("listarray_index")].indent,m=m.getCustomData("listarray_index");m<=
+r.getCustomData("listarray_index");m++)if(y[m].indent+=h,0<h){for(var p=y[m].parent,A=m-1;0<=A;A--)if(y[A].indent===h){p=y[A].parent;break}y[m].parent=new CKEDITOR.dom.element(p.getName(),p.getDocument())}for(m=r.getCustomData("listarray_index")+1;m<y.length&&y[m].indent>u;m++)y[m].indent+=h;h=CKEDITOR.plugins.list.arrayToList(y,c,null,a.config.enterMode,d.getDirection());if(!e.isIndent){var B;if((B=d.getParent())&&B.is("li"))for(var r=h.listNode.getChildren(),G=[],x,m=r.count()-1;0<=m;m--)(x=r.getItem(m))&&
+x.is&&x.is("li")&&G.push(x)}h&&h.listNode.replace(d);if(G&&G.length)for(m=0;m<G.length;m++){for(x=d=G[m];(x=x.getNext())&&x.is&&x.getName()in f;)CKEDITOR.env.needsNbspFiller&&!d.getFirst(g)&&d.append(l.document.createText(" ")),d.append(x);d.insertAfter(B)}h&&a.fire("contentDomInvalidated");return!0}for(var e=this,c=this.database,f=this.context,l,m=a.getSelection(),m=(m&&m.getRanges()).createIterator();l=m.getNextRange();){for(var p=l.getCommonAncestor();p&&(p.type!=CKEDITOR.NODE_ELEMENT||!f[p.getName()]);){if(a.editable().equals(p)){p=
+!1;break}p=p.getParent()}p||(p=l.startPath().contains(f))&&l.setEndAt(p,CKEDITOR.POSITION_BEFORE_END);if(!p){var r=l.getEnclosedNode();r&&r.type==CKEDITOR.NODE_ELEMENT&&r.getName()in f&&(l.setStartAt(r,CKEDITOR.POSITION_AFTER_START),l.setEndAt(r,CKEDITOR.POSITION_BEFORE_END),p=r)}p&&l.startContainer.type==CKEDITOR.NODE_ELEMENT&&l.startContainer.getName()in f&&(r=new CKEDITOR.dom.walker(l),r.evaluator=h,l.startContainer=r.next());p&&l.endContainer.type==CKEDITOR.NODE_ELEMENT&&l.endContainer.getName()in
+f&&(r=new CKEDITOR.dom.walker(l),r.evaluator=h,l.endContainer=r.previous());if(p)return b(p)}return 0}function h(a){return a.type==CKEDITOR.NODE_ELEMENT&&a.is("li")}function g(b){return f(b)&&a(b)}var f=CKEDITOR.dom.walker.whitespaces(!0),a=CKEDITOR.dom.walker.bookmark(!1,!0),m=CKEDITOR.TRISTATE_DISABLED,l=CKEDITOR.TRISTATE_OFF;CKEDITOR.plugins.add("indentlist",{requires:"indent",init:function(a){function d(a){e.specificDefinition.apply(this,arguments);this.requiredContent=["ul","ol"];a.on("key",
+function(b){var d=a.elementPath();if("wysiwyg"==a.mode&&b.data.keyCode==this.indentKey&&d){var e=this.getContext(d);!e||this.isIndent&&CKEDITOR.plugins.indentList.firstItemInPath(this.context,d,e)||(a.execCommand(this.relatedGlobal),b.cancel())}},this);this.jobs[this.isIndent?10:30]={refresh:this.isIndent?function(a,b){var d=this.getContext(b),c=CKEDITOR.plugins.indentList.firstItemInPath(this.context,b,d);return d&&this.isIndent&&!c?l:m}:function(a,b){return!this.getContext(b)||this.isIndent?m:l},
 exec:CKEDITOR.tools.bind(b,this)}}var e=CKEDITOR.plugins.indent;e.registerCommands(a,{indentlist:new d(a,"indentlist",!0),outdentlist:new d(a,"outdentlist")});CKEDITOR.tools.extend(d.prototype,e.specificDefinition.prototype,{context:{ol:1,ul:1}})}});CKEDITOR.plugins.indentList={};CKEDITOR.plugins.indentList.firstItemInPath=function(a,b,e){var c=b.contains(h);e||(e=b.contains(a));return e&&c&&c.equals(e.getFirst(h))}})();(function(){function b(b,a){a=void 0===a||a;var g;if(a)g=b.getComputedStyle("text-align");
 else{for(;!b.hasAttribute||!b.hasAttribute("align")&&!b.getStyle("text-align");){g=b.getParent();if(!g)break;b=g}g=b.getStyle("text-align")||b.getAttribute("align")||""}g&&(g=g.replace(/(?:-(?:moz|webkit)-)?(?:start|auto)/i,""));!g&&a&&(g="rtl"==b.getComputedStyle("direction")?"right":"left");return g}function h(b,a,g){this.editor=b;this.name=a;this.value=g;this.context="p";a=b.config.justifyClasses;var h=b.config.enterMode==CKEDITOR.ENTER_P?"p":"div";if(a){switch(g){case "left":this.cssClassName=
 a[0];break;case "center":this.cssClassName=a[1];break;case "right":this.cssClassName=a[2];break;case "justify":this.cssClassName=a[3]}this.cssClassRegex=new RegExp("(?:^|\\s+)(?:"+a.join("|")+")(?\x3d$|\\s)");this.requiredContent=h+"("+this.cssClassName+")"}else this.requiredContent=h+"{text-align}";this.allowedContent={"caption div h1 h2 h3 h4 h5 h6 p pre td th li":{propertiesOnly:!0,styles:this.cssClassName?null:"text-align",classes:this.cssClassName||null}};b.config.enterMode==CKEDITOR.ENTER_BR&&
-(this.allowedContent.div=!0)}function g(b){var a=b.editor,g=a.createRange();g.setStartBefore(b.data.node);g.setEndAfter(b.data.node);for(var h=new CKEDITOR.dom.walker(g),l;l=h.next();)if(l.type==CKEDITOR.NODE_ELEMENT)if(!l.equals(b.data.node)&&l.getDirection())g.setStartAfter(l),h=new CKEDITOR.dom.walker(g);else{var d=a.config.justifyClasses;d&&(l.hasClass(d[0])?(l.removeClass(d[0]),l.addClass(d[2])):l.hasClass(d[2])&&(l.removeClass(d[2]),l.addClass(d[0])));d=l.getStyle("text-align");"left"==d?l.setStyle("text-align",
-"right"):"right"==d&&l.setStyle("text-align","left")}}h.prototype={exec:function(f){var a=f.getSelection(),g=f.config.enterMode;if(a){for(var h=a.createBookmarks(),l=a.getRanges(),d=this.cssClassName,e,c,n=f.config.useComputedState,n=void 0===n||n,w=l.length-1;0<=w;w--)for(e=l[w].createIterator(),e.enlargeBr=g!=CKEDITOR.ENTER_BR;c=e.getNextParagraph(g==CKEDITOR.ENTER_P?"p":"div");)if(!c.isReadOnly()){var z=c.getName(),r;r=f.activeFilter.check(z+"{text-align}");if((z=f.activeFilter.check(z+"("+d+")"))||
-r){c.removeAttribute("align");c.removeStyle("text-align");var p=d&&(c.$.className=CKEDITOR.tools.ltrim(c.$.className.replace(this.cssClassRegex,""))),q=this.state==CKEDITOR.TRISTATE_OFF&&(!n||b(c,!0)!=this.value);d&&z?q?c.addClass(d):p||c.removeAttribute("class"):q&&r&&c.setStyle("text-align",this.value)}}f.focus();f.forceNextSelectionCheck();a.selectBookmarks(h)}},refresh:function(f,a){var g=a.block||a.blockLimit,h=g.getName(),l=g.equals(f.editable()),h=this.cssClassName?f.activeFilter.check(h+"("+
-this.cssClassName+")"):f.activeFilter.check(h+"{text-align}");l&&!CKEDITOR.dtd.$list[a.lastElement.getName()]?this.setState(CKEDITOR.TRISTATE_OFF):!l&&h?this.setState(b(g,this.editor.config.useComputedState)==this.value?CKEDITOR.TRISTATE_ON:CKEDITOR.TRISTATE_OFF):this.setState(CKEDITOR.TRISTATE_DISABLED)}};CKEDITOR.plugins.add("justify",{init:function(b){if(!b.blockless){var a=new h(b,"justifyleft","left"),m=new h(b,"justifycenter","center"),k=new h(b,"justifyright","right"),l=new h(b,"justifyblock",
-"justify");b.addCommand("justifyleft",a);b.addCommand("justifycenter",m);b.addCommand("justifyright",k);b.addCommand("justifyblock",l);b.ui.addButton&&(b.ui.addButton("JustifyLeft",{label:b.lang.common.alignLeft,command:"justifyleft",toolbar:"align,10"}),b.ui.addButton("JustifyCenter",{label:b.lang.common.center,command:"justifycenter",toolbar:"align,20"}),b.ui.addButton("JustifyRight",{label:b.lang.common.alignRight,command:"justifyright",toolbar:"align,30"}),b.ui.addButton("JustifyBlock",{label:b.lang.common.justify,
+(this.allowedContent.div=!0)}function g(b){var a=b.editor,g=a.createRange();g.setStartBefore(b.data.node);g.setEndAfter(b.data.node);for(var h=new CKEDITOR.dom.walker(g),k;k=h.next();)if(k.type==CKEDITOR.NODE_ELEMENT)if(!k.equals(b.data.node)&&k.getDirection())g.setStartAfter(k),h=new CKEDITOR.dom.walker(g);else{var d=a.config.justifyClasses;d&&(k.hasClass(d[0])?(k.removeClass(d[0]),k.addClass(d[2])):k.hasClass(d[2])&&(k.removeClass(d[2]),k.addClass(d[0])));d=k.getStyle("text-align");"left"==d?k.setStyle("text-align",
+"right"):"right"==d&&k.setStyle("text-align","left")}}h.prototype={exec:function(f){var a=f.getSelection(),g=f.config.enterMode;if(a){for(var h=a.createBookmarks(),k=a.getRanges(),d=this.cssClassName,e,c,n=f.config.useComputedState,n=void 0===n||n,v=k.length-1;0<=v;v--)for(e=k[v].createIterator(),e.enlargeBr=g!=CKEDITOR.ENTER_BR;c=e.getNextParagraph(g==CKEDITOR.ENTER_P?"p":"div");)if(!c.isReadOnly()){var x=c.getName(),p;p=f.activeFilter.check(x+"{text-align}");if((x=f.activeFilter.check(x+"("+d+")"))||
+p){c.removeAttribute("align");c.removeStyle("text-align");var r=d&&(c.$.className=CKEDITOR.tools.ltrim(c.$.className.replace(this.cssClassRegex,""))),q=this.state==CKEDITOR.TRISTATE_OFF&&(!n||b(c,!0)!=this.value);d&&x?q?c.addClass(d):r||c.removeAttribute("class"):q&&p&&c.setStyle("text-align",this.value)}}f.focus();f.forceNextSelectionCheck();a.selectBookmarks(h)}},refresh:function(f,a){var g=a.block||a.blockLimit,h=g.getName(),k=g.equals(f.editable()),h=this.cssClassName?f.activeFilter.check(h+"("+
+this.cssClassName+")"):f.activeFilter.check(h+"{text-align}");k&&!CKEDITOR.dtd.$list[a.lastElement.getName()]?this.setState(CKEDITOR.TRISTATE_OFF):!k&&h?this.setState(b(g,this.editor.config.useComputedState)==this.value?CKEDITOR.TRISTATE_ON:CKEDITOR.TRISTATE_OFF):this.setState(CKEDITOR.TRISTATE_DISABLED)}};CKEDITOR.plugins.add("justify",{init:function(b){if(!b.blockless){var a=new h(b,"justifyleft","left"),m=new h(b,"justifycenter","center"),l=new h(b,"justifyright","right"),k=new h(b,"justifyblock",
+"justify");b.addCommand("justifyleft",a);b.addCommand("justifycenter",m);b.addCommand("justifyright",l);b.addCommand("justifyblock",k);b.ui.addButton&&(b.ui.addButton("JustifyLeft",{label:b.lang.common.alignLeft,command:"justifyleft",toolbar:"align,10"}),b.ui.addButton("JustifyCenter",{label:b.lang.common.center,command:"justifycenter",toolbar:"align,20"}),b.ui.addButton("JustifyRight",{label:b.lang.common.alignRight,command:"justifyright",toolbar:"align,30"}),b.ui.addButton("JustifyBlock",{label:b.lang.common.justify,
 command:"justifyblock",toolbar:"align,40"}));b.on("dirChanged",g)}}})})();CKEDITOR.plugins.add("menubutton",{requires:"button,menu",onLoad:function(){var b=function(b){var g=this._,f=g.menu;g.state!==CKEDITOR.TRISTATE_DISABLED&&(g.on&&f?f.hide():(g.previousState=g.state,f||(f=g.menu=new CKEDITOR.menu(b,{panel:{className:"cke_menu_panel",attributes:{"aria-label":b.lang.common.options}}}),f.onHide=CKEDITOR.tools.bind(function(){var a=this.command?b.getCommand(this.command).modes:this.modes;this.setState(!a||
 a[b.mode]?g.previousState:CKEDITOR.TRISTATE_DISABLED);g.on=0},this),this.onMenu&&f.addListener(this.onMenu)),this.setState(CKEDITOR.TRISTATE_ON),g.on=1,setTimeout(function(){f.show(CKEDITOR.document.getById(g.id),4)},0)))};CKEDITOR.ui.menuButton=CKEDITOR.tools.createClass({base:CKEDITOR.ui.button,$:function(h){delete h.panel;this.base(h);this.hasArrow="menu";this.click=b},statics:{handler:{create:function(b){return new CKEDITOR.ui.menuButton(b)}}}})},beforeInit:function(b){b.ui.addHandler(CKEDITOR.UI_MENUBUTTON,
-CKEDITOR.ui.menuButton.handler)}});CKEDITOR.UI_MENUBUTTON="menubutton";"use strict";(function(){CKEDITOR.plugins.add("language",{requires:"menubutton",init:function(b){var h=b.config.language_list||["ar:Arabic:rtl","fr:French","es:Spanish"],g=this,f=b.lang.language,a={},m,k,l,d;b.addCommand("language",{allowedContent:"span[!lang,!dir]",requiredContent:"span[lang,dir]",contextSensitive:!0,exec:function(b,c){var d=a["language_"+c];if(d)b[d.style.checkActive(b.elementPath(),b)?"removeStyle":"applyStyle"](d.style)},
-refresh:function(a){this.setState(g.getCurrentLangElement(a)?CKEDITOR.TRISTATE_ON:CKEDITOR.TRISTATE_OFF)}});for(d=0;d<h.length;d++)m=h[d].split(":"),k=m[0],l="language_"+k,a[l]={label:m[1],langId:k,group:"language",order:d,ltr:"rtl"!=(""+m[2]).toLowerCase(),onClick:function(){b.execCommand("language",this.langId)},role:"menuitemcheckbox"},a[l].style=new CKEDITOR.style({element:"span",attributes:{lang:k,dir:a[l].ltr?"ltr":"rtl"}});a.language_remove={label:f.remove,group:"language_remove",state:CKEDITOR.TRISTATE_DISABLED,
+CKEDITOR.ui.menuButton.handler)}});CKEDITOR.UI_MENUBUTTON="menubutton";"use strict";(function(){CKEDITOR.plugins.add("language",{requires:"menubutton",init:function(b){var h=b.config.language_list||["ar:Arabic:rtl","fr:French","es:Spanish"],g=this,f=b.lang.language,a={},m,l,k,d;b.addCommand("language",{allowedContent:"span[!lang,!dir]",requiredContent:"span[lang,dir]",contextSensitive:!0,exec:function(b,d){var f=a["language_"+d];if(f)b[f.style.checkActive(b.elementPath(),b)?"removeStyle":"applyStyle"](f.style)},
+refresh:function(a){this.setState(g.getCurrentLangElement(a)?CKEDITOR.TRISTATE_ON:CKEDITOR.TRISTATE_OFF)}});for(d=0;d<h.length;d++)m=h[d].split(":"),l=m[0],k="language_"+l,a[k]={label:m[1],langId:l,group:"language",order:d,ltr:"rtl"!=(""+m[2]).toLowerCase(),onClick:function(){b.execCommand("language",this.langId)},role:"menuitemcheckbox"},a[k].style=new CKEDITOR.style({element:"span",attributes:{lang:l,dir:a[k].ltr?"ltr":"rtl"}});a.language_remove={label:f.remove,group:"language_remove",state:CKEDITOR.TRISTATE_DISABLED,
 order:a.length,onClick:function(){var a=g.getCurrentLangElement(b);a&&b.execCommand("language",a.getAttribute("lang"))}};b.addMenuGroup("language",1);b.addMenuGroup("language_remove");b.addMenuItems(a);b.ui.add("Language",CKEDITOR.UI_MENUBUTTON,{label:f.button,allowedContent:"span[!lang,!dir]",requiredContent:"span[lang,dir]",toolbar:"bidi,30",command:"language",onMenu:function(){var d={},c=g.getCurrentLangElement(b),f;for(f in a)d[f]=CKEDITOR.TRISTATE_OFF;d.language_remove=c?CKEDITOR.TRISTATE_OFF:
-CKEDITOR.TRISTATE_DISABLED;c&&(d["language_"+c.getAttribute("lang")]=CKEDITOR.TRISTATE_ON);return d}});b.addRemoveFormatFilter&&b.addRemoveFormatFilter(function(a){return!(a.is("span")&&a.getAttribute("dir")&&a.getAttribute("lang"))})},getCurrentLangElement:function(b){var h=b.elementPath();b=h&&h.elements;var g;if(h)for(var f=0;f<b.length;f++)h=b[f],!g&&"span"==h.getName()&&h.hasAttribute("dir")&&h.hasAttribute("lang")&&(g=h);return g}})})();(function(){function b(a,b,c,d){for(var e=CKEDITOR.plugins.list.listToArray(b.root,
-c),f=[],g=0;g<b.contents.length;g++){var h=b.contents[g];(h=h.getAscendant("li",!0))&&!h.getCustomData("list_item_processed")&&(f.push(h),CKEDITOR.dom.element.setMarker(c,h,"list_item_processed",!0))}for(var h=b.root.getDocument(),k,l,g=0;g<f.length;g++){var m=f[g].getCustomData("listarray_index");k=e[m].parent;k.is(this.type)||(l=h.createElement(this.type),k.copyAttributes(l,{start:1,type:1}),l.removeStyle("list-style-type"),e[m].parent=l)}c=CKEDITOR.plugins.list.arrayToList(e,c,null,a.config.enterMode);
-for(var n,e=c.listNode.getChildCount(),g=0;g<e&&(n=c.listNode.getChild(g));g++)n.getName()==this.type&&d.push(n);c.listNode.replace(b.root);a.fire("contentDomInvalidated")}function h(a,b,c){var d=b.contents,e=b.root.getDocument(),f=[];if(1==d.length&&d[0].equals(b.root)){var g=e.createElement("div");d[0].moveChildren&&d[0].moveChildren(g);d[0].append(g);d[0]=g}b=b.contents[0].getParent();for(g=0;g<d.length;g++)b=b.getCommonAncestor(d[g].getParent());a=a.config.useComputedState;var h,k;a=void 0===
-a||a;for(g=0;g<d.length;g++)for(var l=d[g],m;m=l.getParent();){if(m.equals(b)){f.push(l);!k&&l.getDirection()&&(k=1);l=l.getDirection(a);null!==h&&(h=h&&h!=l?null:l);break}l=m}if(!(1>f.length)){d=f[f.length-1].getNext();g=e.createElement(this.type);for(c.push(g);f.length;)c=f.shift(),a=e.createElement("li"),l=c,l.is("pre")||r.test(l.getName())||"false"==l.getAttribute("contenteditable")?c.appendTo(a):(c.copyAttributes(a),h&&c.getDirection()&&(a.removeStyle("direction"),a.removeAttribute("dir")),c.moveChildren(a),
-c.remove()),a.appendTo(g);h&&k&&g.setAttribute("dir",h);d?g.insertBefore(d):g.appendTo(b)}}function g(a,b,c){function d(c){if(!(!(l=k[c?"getFirst":"getLast"]())||l.is&&l.isBlockBoundary()||!(m=b.root[c?"getPrevious":"getNext"](CKEDITOR.dom.walker.invisible(!0)))||m.is&&m.isBlockBoundary({br:1})))a.document.createElement("br")[c?"insertBefore":"insertAfter"](l)}for(var e=CKEDITOR.plugins.list.listToArray(b.root,c),f=[],g=0;g<b.contents.length;g++){var h=b.contents[g];(h=h.getAscendant("li",!0))&&!h.getCustomData("list_item_processed")&&
-(f.push(h),CKEDITOR.dom.element.setMarker(c,h,"list_item_processed",!0))}h=null;for(g=0;g<f.length;g++)h=f[g].getCustomData("listarray_index"),e[h].indent=-1;for(g=h+1;g<e.length;g++)if(e[g].indent>e[g-1].indent+1){f=e[g-1].indent+1-e[g].indent;for(h=e[g].indent;e[g]&&e[g].indent>=h;)e[g].indent+=f,g++;g--}var k=CKEDITOR.plugins.list.arrayToList(e,c,null,a.config.enterMode,b.root.getAttribute("dir")).listNode,l,m;d(!0);d();k.replace(b.root);a.fire("contentDomInvalidated")}function f(a,b){this.name=
-a;this.context=this.type=b;this.allowedContent=b+" li";this.requiredContent=b}function a(a,b,c,d){for(var e,f;e=a[d?"getLast":"getFirst"](p);)(f=e.getDirection(1))!==b.getDirection(1)&&e.setAttribute("dir",f),e.remove(),c?e[d?"insertBefore":"insertAfter"](c):b.append(e,d),c=e}function m(b){function c(d){var e=b[d?"getPrevious":"getNext"](w);e&&e.type==CKEDITOR.NODE_ELEMENT&&e.is(b.getName())&&(a(b,e,null,!d),b.remove(),b=e)}c();c(1)}function k(a){return a.type==CKEDITOR.NODE_ELEMENT&&(a.getName()in
-CKEDITOR.dtd.$block||a.getName()in CKEDITOR.dtd.$listItem)&&CKEDITOR.dtd[a.getName()]["#"]}function l(b,c,e){b.fire("saveSnapshot");e.enlarge(CKEDITOR.ENLARGE_LIST_ITEM_CONTENTS);var f=e.extractContents();c.trim(!1,!0);var g=c.createBookmark(),h=new CKEDITOR.dom.elementPath(c.startContainer),k=h.block,h=h.lastElement.getAscendant("li",1)||k,l=new CKEDITOR.dom.elementPath(e.startContainer),n=l.contains(CKEDITOR.dtd.$listItem),l=l.contains(CKEDITOR.dtd.$list);k?(k=k.getBogus())&&k.remove():l&&(k=l.getPrevious(w))&&
-z(k)&&k.remove();(k=f.getLast())&&k.type==CKEDITOR.NODE_ELEMENT&&k.is("br")&&k.remove();(k=c.startContainer.getChild(c.startOffset))?f.insertBefore(k):c.startContainer.append(f);n&&(f=d(n))&&(h.contains(n)?(a(f,n.getParent(),n),f.remove()):h.append(f));for(;e.checkStartOfBlock()&&e.checkEndOfBlock();){l=e.startPath();f=l.block;if(!f)break;f.is("li")&&(h=f.getParent(),f.equals(h.getLast(w))&&f.equals(h.getFirst(w))&&(f=h));e.moveToPosition(f,CKEDITOR.POSITION_BEFORE_START);f.remove()}e=e.clone();f=
-b.editable();e.setEndAt(f,CKEDITOR.POSITION_BEFORE_END);e=new CKEDITOR.dom.walker(e);e.evaluator=function(a){return w(a)&&!z(a)};(e=e.next())&&e.type==CKEDITOR.NODE_ELEMENT&&e.getName()in CKEDITOR.dtd.$list&&m(e);c.moveToBookmark(g);c.select();b.fire("saveSnapshot")}function d(a){return(a=a.getLast(w))&&a.type==CKEDITOR.NODE_ELEMENT&&a.getName()in e?a:null}var e={ol:1,ul:1},c=CKEDITOR.dom.walker.whitespaces(),n=CKEDITOR.dom.walker.bookmark(),w=function(a){return!(c(a)||n(a))},z=CKEDITOR.dom.walker.bogus();
-CKEDITOR.plugins.list={listToArray:function(a,b,c,d,f){if(!e[a.getName()])return[];d||(d=0);c||(c=[]);for(var g=0,h=a.getChildCount();g<h;g++){var k=a.getChild(g);k.type==CKEDITOR.NODE_ELEMENT&&k.getName()in CKEDITOR.dtd.$list&&CKEDITOR.plugins.list.listToArray(k,b,c,d+1);if("li"==k.$.nodeName.toLowerCase()){var l={parent:a,indent:d,element:k,contents:[]};f?l.grandparent=f:(l.grandparent=a.getParent(),l.grandparent&&"li"==l.grandparent.$.nodeName.toLowerCase()&&(l.grandparent=l.grandparent.getParent()));
-b&&CKEDITOR.dom.element.setMarker(b,k,"listarray_index",c.length);c.push(l);for(var m=0,n=k.getChildCount(),p;m<n;m++)p=k.getChild(m),p.type==CKEDITOR.NODE_ELEMENT&&e[p.getName()]?CKEDITOR.plugins.list.listToArray(p,b,c,d+1,l.grandparent):l.contents.push(p)}}return c},arrayToList:function(a,b,c,d,f){c||(c=0);if(!a||a.length<c+1)return null;for(var g,h=a[c].parent.getDocument(),k=new CKEDITOR.dom.documentFragment(h),l=null,m=c,p=Math.max(a[c].indent,0),r=null,z,F,M=d==CKEDITOR.ENTER_P?"p":"div";;){var H=
-a[m];g=H.grandparent;z=H.element.getDirection(1);if(H.indent==p){l&&a[m].parent.getName()==l.getName()||(l=a[m].parent.clone(!1,1),f&&l.setAttribute("dir",f),k.append(l));r=l.append(H.element.clone(0,1));z!=l.getDirection(1)&&r.setAttribute("dir",z);for(g=0;g<H.contents.length;g++)r.append(H.contents[g].clone(1,1));m++}else if(H.indent==Math.max(p,0)+1)H=a[m-1].element.getDirection(1),m=CKEDITOR.plugins.list.arrayToList(a,null,m,d,H!=z?z:null),!r.getChildCount()&&CKEDITOR.env.needsNbspFiller&&7>=
-h.$.documentMode&&r.append(h.createText(" ")),r.append(m.listNode),m=m.nextIndex;else if(-1==H.indent&&!c&&g){e[g.getName()]?(r=H.element.clone(!1,!0),z!=g.getDirection(1)&&r.setAttribute("dir",z)):r=new CKEDITOR.dom.documentFragment(h);var l=g.getDirection(1)!=z,E=H.element,Q=E.getAttribute("class"),O=E.getAttribute("style"),P=r.type==CKEDITOR.NODE_DOCUMENT_FRAGMENT&&(d!=CKEDITOR.ENTER_BR||l||O||Q),K,X=H.contents.length,S;for(g=0;g<X;g++)if(K=H.contents[g],n(K)&&1<X)P?S=K.clone(1,1):r.append(K.clone(1,
-1));else if(K.type==CKEDITOR.NODE_ELEMENT&&K.isBlockBoundary()){l&&!K.getDirection()&&K.setAttribute("dir",z);F=K;var W=E.getAttribute("style");W&&F.setAttribute("style",W.replace(/([^;])$/,"$1;")+(F.getAttribute("style")||""));Q&&K.addClass(Q);F=null;S&&(r.append(S),S=null);r.append(K.clone(1,1))}else P?(F||(F=h.createElement(M),r.append(F),l&&F.setAttribute("dir",z)),O&&F.setAttribute("style",O),Q&&F.setAttribute("class",Q),S&&(F.append(S),S=null),F.append(K.clone(1,1))):r.append(K.clone(1,1));
-S&&((F||r).append(S),S=null);r.type==CKEDITOR.NODE_DOCUMENT_FRAGMENT&&m!=a.length-1&&(CKEDITOR.env.needsBrFiller&&(z=r.getLast())&&z.type==CKEDITOR.NODE_ELEMENT&&z.is("br")&&z.remove(),(z=r.getLast(w))&&z.type==CKEDITOR.NODE_ELEMENT&&z.is(CKEDITOR.dtd.$block)||r.append(h.createElement("br")));z=r.$.nodeName.toLowerCase();"div"!=z&&"p"!=z||r.appendBogus();k.append(r);l=null;m++}else return null;F=null;if(a.length<=m||Math.max(a[m].indent,0)<p)break}if(b)for(a=k.getFirst();a;){if(a.type==CKEDITOR.NODE_ELEMENT&&
-(CKEDITOR.dom.element.clearMarkers(b,a),a.getName()in CKEDITOR.dtd.$listItem&&(c=a,h=f=d=void 0,d=c.getDirection()))){for(f=c.getParent();f&&!(h=f.getDirection());)f=f.getParent();d==h&&c.removeAttribute("dir")}a=a.getNextSourceNode()}return{listNode:k,nextIndex:m}}};var r=/^h[1-6]$/,p=CKEDITOR.dom.walker.nodeType(CKEDITOR.NODE_ELEMENT);f.prototype={exec:function(a){function c(a){return e[a.root.getName()]&&!d(a.root,[CKEDITOR.NODE_COMMENT])}function d(a,b){return CKEDITOR.tools.array.filter(a.getChildren().toArray(),
-function(a){return-1===CKEDITOR.tools.array.indexOf(b,a.type)}).length}function f(a){var b=!0;if(0===a.getChildCount())return!1;a.forEach(function(a){if(a.type!==CKEDITOR.NODE_COMMENT)return b=!1},null,!0);return b}this.refresh(a,a.elementPath());var k=a.config,l=a.getSelection(),n=l&&l.getRanges();if(this.state==CKEDITOR.TRISTATE_OFF){var p=a.editable();if(p.getFirst(w)){var r=1==n.length&&n[0];(k=r&&r.getEnclosedNode())&&k.is&&this.type==k.getName()&&this.setState(CKEDITOR.TRISTATE_ON)}else k.enterMode==
-CKEDITOR.ENTER_BR?p.appendBogus():n[0].fixBlock(1,k.enterMode==CKEDITOR.ENTER_P?"p":"div"),l.selectRanges(n)}for(var k=l.createBookmarks(!0),p=[],z={},n=n.createIterator(),C=0;(r=n.getNextRange())&&++C;){var I=r.getBoundaryNodes(),J=I.startNode,F=I.endNode;J.type==CKEDITOR.NODE_ELEMENT&&"td"==J.getName()&&r.setStartAt(I.startNode,CKEDITOR.POSITION_AFTER_START);F.type==CKEDITOR.NODE_ELEMENT&&"td"==F.getName()&&r.setEndAt(I.endNode,CKEDITOR.POSITION_BEFORE_END);r=r.createIterator();for(r.forceBrBreak=
-this.state==CKEDITOR.TRISTATE_OFF;I=r.getNextParagraph();)if(!I.getCustomData("list_block")&&!f(I)){CKEDITOR.dom.element.setMarker(z,I,"list_block",1);for(var M=a.elementPath(I),J=M.elements,F=0,M=M.blockLimit,H,E=J.length-1;0<=E&&(H=J[E]);E--)if(e[H.getName()]&&M.contains(H)){M.removeCustomData("list_group_object_"+C);(J=H.getCustomData("list_group_object"))?J.contents.push(I):(J={root:H,contents:[I]},p.push(J),CKEDITOR.dom.element.setMarker(z,H,"list_group_object",J));F=1;break}F||(F=M,F.getCustomData("list_group_object_"+
-C)?F.getCustomData("list_group_object_"+C).contents.push(I):(J={root:F,contents:[I]},CKEDITOR.dom.element.setMarker(z,F,"list_group_object_"+C,J),p.push(J)))}}for(H=[];0<p.length;)J=p.shift(),this.state==CKEDITOR.TRISTATE_OFF?c(J)||(e[J.root.getName()]?b.call(this,a,J,z,H):h.call(this,a,J,H)):this.state==CKEDITOR.TRISTATE_ON&&e[J.root.getName()]&&!c(J)&&g.call(this,a,J,z);for(E=0;E<H.length;E++)m(H[E]);CKEDITOR.dom.element.clearAllMarkers(z);l.selectBookmarks(k);a.focus()},refresh:function(a,b){var c=
-b.contains(e,1),d=b.blockLimit||b.root;c&&d.contains(c)?this.setState(c.is(this.type)?CKEDITOR.TRISTATE_ON:CKEDITOR.TRISTATE_OFF):this.setState(CKEDITOR.TRISTATE_OFF)}};CKEDITOR.plugins.add("list",{requires:"indentlist",init:function(a){a.blockless||(a.addCommand("numberedlist",new f("numberedlist","ol")),a.addCommand("bulletedlist",new f("bulletedlist","ul")),a.ui.addButton&&(a.ui.addButton("NumberedList",{label:a.lang.list.numberedlist,command:"numberedlist",directional:!0,toolbar:"list,10"}),a.ui.addButton("BulletedList",
-{label:a.lang.list.bulletedlist,command:"bulletedlist",directional:!0,toolbar:"list,20"})),a.on("key",function(b){var c=b.data.domEvent.getKey(),f;if("wysiwyg"==a.mode&&c in{8:1,46:1}){var g=a.getSelection().getRanges()[0],h=g&&g.startPath();if(g&&g.collapsed){var m=8==c,n=a.editable(),p=new CKEDITOR.dom.walker(g.clone());p.evaluator=function(a){return w(a)&&!z(a)};p.guard=function(a,b){return!(b&&a.type==CKEDITOR.NODE_ELEMENT&&a.is("table"))};c=g.clone();if(m){var r;(r=h.contains(e))&&g.checkBoundaryOfElement(r,
-CKEDITOR.START)&&(r=r.getParent())&&r.is("li")&&(r=d(r))?(f=r,r=r.getPrevious(w),c.moveToPosition(r&&z(r)?r:f,CKEDITOR.POSITION_BEFORE_START)):(p.range.setStartAt(n,CKEDITOR.POSITION_AFTER_START),p.range.setEnd(g.startContainer,g.startOffset),(r=p.previous())&&r.type==CKEDITOR.NODE_ELEMENT&&(r.getName()in e||r.is("li"))&&(r.is("li")||(p.range.selectNodeContents(r),p.reset(),p.evaluator=k,r=p.previous()),f=r,c.moveToElementEditEnd(f),c.moveToPosition(c.endPath().block,CKEDITOR.POSITION_BEFORE_END)));
-if(f)l(a,c,g),b.cancel();else{var C=h.contains(e);C&&g.checkBoundaryOfElement(C,CKEDITOR.START)&&(f=C.getFirst(w),g.checkBoundaryOfElement(f,CKEDITOR.START)&&(r=C.getPrevious(w),d(f)?r&&(g.moveToElementEditEnd(r),g.select()):a.execCommand("outdent"),b.cancel()))}}else if(f=h.contains("li")){if(p.range.setEndAt(n,CKEDITOR.POSITION_BEFORE_END),m=(n=f.getLast(w))&&k(n)?n:f,h=0,(r=p.next())&&r.type==CKEDITOR.NODE_ELEMENT&&r.getName()in e&&r.equals(n)?(h=1,r=p.next()):g.checkBoundaryOfElement(m,CKEDITOR.END)&&
-(h=2),h&&r){g=g.clone();g.moveToElementEditStart(r);if(1==h&&(c.optimize(),!c.startContainer.equals(f))){for(f=c.startContainer;f.is(CKEDITOR.dtd.$inline);)C=f,f=f.getParent();C&&c.moveToPosition(C,CKEDITOR.POSITION_AFTER_END)}2==h&&(c.moveToPosition(c.endPath().block,CKEDITOR.POSITION_BEFORE_END),g.endPath().block&&g.moveToPosition(g.endPath().block,CKEDITOR.POSITION_AFTER_START));l(a,c,g);b.cancel()}}else p.range.setEndAt(n,CKEDITOR.POSITION_BEFORE_END),(r=p.next())&&r.type==CKEDITOR.NODE_ELEMENT&&
-r.is(e)&&(r=r.getFirst(w),h.block&&g.checkStartOfBlock()&&g.checkEndOfBlock()?(h.block.remove(),g.moveToElementEditStart(r),g.select()):d(r)?(g.moveToElementEditStart(r),g.select()):(g=g.clone(),g.moveToElementEditStart(r),l(a,c,g)),b.cancel());setTimeout(function(){a.selectionChange(1)})}}}))}})})();"use strict";(function(){function b(a,b,c){return n(b)&&n(c)&&c.equals(b.getNext(function(a){return!(R(a)||U(a)||w(a))}))}function h(a){this.upper=a[0];this.lower=a[1];this.set.apply(this,a.slice(2))}
-function g(a){var b=a.element;if(b&&n(b)&&(b=b.getAscendant(a.triggers,!0))&&a.editable.contains(b)){var c=k(b);if("true"==c.getAttribute("contenteditable"))return b;if(c.is(a.triggers))return c}return null}function f(a,b,c){v(a,b);v(a,c);a=b.size.bottom;c=c.size.top;return a&&c?0|(a+c)/2:a||c}function a(a,b,d){return b=b[d?"getPrevious":"getNext"](function(b){return b&&b.type==CKEDITOR.NODE_TEXT&&!R(b)||n(b)&&!w(b)&&!c(a,b)})}function m(a,b,c){return a>b&&a<c}function k(a,b){if(a.data("cke-editable"))return null;
-for(b||(a=a.getParent());a&&!a.data("cke-editable");){if(a.hasAttribute("contenteditable"))return a;a=a.getParent()}return null}function l(a){var b=a.doc,c=C('\x3cspan contenteditable\x3d"false" data-cke-magic-line\x3d"1" style\x3d"'+ca+"position:absolute;border-top:1px dashed "+a.boxColor+'"\x3e\x3c/span\x3e',b),e=CKEDITOR.getUrl(this.path+"images/"+(I.hidpi?"hidpi/":"")+"icon"+(a.rtl?"-rtl":"")+".png");A(c,{attach:function(){this.wrap.getParent()||this.wrap.appendTo(a.editable,!0);return this},
-lineChildren:[A(C('\x3cspan title\x3d"'+a.editor.lang.magicline.title+'" contenteditable\x3d"false"\x3e\x26#8629;\x3c/span\x3e',b),{base:ca+"height:17px;width:17px;"+(a.rtl?"left":"right")+":17px;background:url("+e+") center no-repeat "+a.boxColor+";cursor:pointer;"+(I.hc?"font-size: 15px;line-height:14px;border:1px solid #fff;text-align:center;":"")+(I.hidpi?"background-size: 9px 10px;":""),looks:["top:-8px; border-radius: 2px;","top:-17px; border-radius: 2px 2px 0px 0px;","top:-1px; border-radius: 0px 0px 2px 2px;"]}),
-A(C(da,b),{base:aa+"left:0px;border-left-color:"+a.boxColor+";",looks:["border-width:8px 0 8px 8px;top:-8px","border-width:8px 0 0 8px;top:-8px","border-width:0 0 8px 8px;top:0px"]}),A(C(da,b),{base:aa+"right:0px;border-right-color:"+a.boxColor+";",looks:["border-width:8px 8px 8px 0;top:-8px","border-width:8px 8px 0 0;top:-8px","border-width:0 8px 8px 0;top:0px"]})],detach:function(){this.wrap.getParent()&&this.wrap.remove();return this},mouseNear:function(){v(a,this);var b=a.holdDistance,c=this.size;
-return c&&m(a.mouse.y,c.top-b,c.bottom+b)&&m(a.mouse.x,c.left-b,c.right+b)?!0:!1},place:function(){var b=a.view,c=a.editable,d=a.trigger,e=d.upper,f=d.lower,g=e||f,h=g.getParent(),k={};this.trigger=d;e&&v(a,e,!0);f&&v(a,f,!0);v(a,h,!0);a.inInlineMode&&x(a,!0);h.equals(c)?(k.left=b.scroll.x,k.right=-b.scroll.x,k.width=""):(k.left=g.size.left-g.size.margin.left+b.scroll.x-(a.inInlineMode?b.editable.left+b.editable.border.left:0),k.width=g.size.outerWidth+g.size.margin.left+g.size.margin.right+b.scroll.x,
-k.right="");e&&f?k.top=e.size.margin.bottom===f.size.margin.top?0|e.size.bottom+e.size.margin.bottom/2:e.size.margin.bottom<f.size.margin.top?e.size.bottom+e.size.margin.bottom:e.size.bottom+e.size.margin.bottom-f.size.margin.top:e?f||(k.top=e.size.bottom+e.size.margin.bottom):k.top=f.size.top-f.size.margin.top;d.is(P)||m(k.top,b.scroll.y-15,b.scroll.y+5)?(k.top=a.inInlineMode?0:b.scroll.y,this.look(P)):d.is(K)||m(k.top,b.pane.bottom-5,b.pane.bottom+15)?(k.top=a.inInlineMode?b.editable.height+b.editable.padding.top+
-b.editable.padding.bottom:b.pane.bottom-1,this.look(K)):(a.inInlineMode&&(k.top-=b.editable.top+b.editable.border.top),this.look(X));a.inInlineMode&&(k.top--,k.top+=b.editable.scroll.top,k.left+=b.editable.scroll.left);for(var l in k)k[l]=CKEDITOR.tools.cssLength(k[l]);this.setStyles(k)},look:function(a){if(this.oldLook!=a){for(var b=this.lineChildren.length,c;b--;)(c=this.lineChildren[b]).setAttribute("style",c.base+c.looks[0|a/2]);this.oldLook=a}},wrap:new G("span",a.doc)});for(b=c.lineChildren.length;b--;)c.lineChildren[b].appendTo(c);
-c.look(X);c.appendTo(c.wrap);c.unselectable();c.lineChildren[0].on("mouseup",function(b){c.detach();d(a,function(b){var c=a.line.trigger;b[c.is(H)?"insertBefore":"insertAfter"](c.is(H)?c.lower:c.upper)},!0);a.editor.focus();I.ie||a.enterMode==CKEDITOR.ENTER_BR||a.hotNode.scrollIntoView();b.data.preventDefault(!0)});c.on("mousedown",function(a){a.data.preventDefault(!0)});a.line=c}function d(a,b,c){var d=new CKEDITOR.dom.range(a.doc),e=a.editor,f;I.ie&&a.enterMode==CKEDITOR.ENTER_BR?f=a.doc.createText(S):
-(f=(f=k(a.element,!0))&&f.data("cke-enter-mode")||a.enterMode,f=new G(M[f],a.doc),f.is("br")||a.doc.createText(S).appendTo(f));c&&e.fire("saveSnapshot");b(f);d.moveToPosition(f,CKEDITOR.POSITION_AFTER_START);e.getSelection().selectRanges([d]);a.hotNode=f;c&&e.fire("saveSnapshot")}function e(b,c){return{canUndo:!0,modes:{wysiwyg:1},exec:function(){function e(a){var f=I.ie&&9>I.version?" ":S,g=b.hotNode&&b.hotNode.getText()==f&&b.element.equals(b.hotNode)&&b.lastCmdDirection===!!c;d(b,function(d){g&&
-b.hotNode&&b.hotNode.remove();d[c?"insertAfter":"insertBefore"](a);d.setAttributes({"data-cke-magicline-hot":1,"data-cke-magicline-dir":!!c});b.lastCmdDirection=!!c});I.ie||b.enterMode==CKEDITOR.ENTER_BR||b.hotNode.scrollIntoView();b.line.detach()}return function(d){d=d.getSelection().getStartElement();var f;d=d.getAscendant(T,1);if(!p(b,d)&&d&&!d.equals(b.editable)&&!d.contains(b.editable)){(f=k(d))&&"false"==f.getAttribute("contenteditable")&&(d=f);b.element=d;f=a(b,d,!c);var h;n(f)&&f.is(b.triggers)&&
-f.is(L)&&(!a(b,f,!c)||(h=a(b,f,!c))&&n(h)&&h.is(b.triggers))?e(f):(h=g(b,d),n(h)&&(a(b,h,!c)?(d=a(b,h,!c))&&n(d)&&d.is(b.triggers)&&e(h):e(h)))}}}()}}function c(a,b){if(!b||b.type!=CKEDITOR.NODE_ELEMENT||!b.$)return!1;var c=a.line;return c.wrap.equals(b)||c.wrap.contains(b)}function n(a){return a&&a.type==CKEDITOR.NODE_ELEMENT&&a.$}function w(a){if(!n(a))return!1;var b;(b=z(a))||(n(a)?(b={left:1,right:1,center:1},b=!(!b[a.getComputedStyle("float")]&&!b[a.getAttribute("align")])):b=!1);return b}function z(a){return!!{absolute:1,
-fixed:1}[a.getComputedStyle("position")]}function r(a,b){return n(b)?b.is(a.triggers):null}function p(a,b){if(!b)return!1;for(var c=b.getParents(1),d=c.length;d--;)for(var e=a.tabuList.length;e--;)if(c[d].hasAttribute(a.tabuList[e]))return!0;return!1}function q(a,b,c){b=b[c?"getLast":"getFirst"](function(b){return a.isRelevant(b)&&!b.is(ea)});if(!b)return!1;v(a,b);return c?b.size.top>a.mouse.y:b.size.bottom<a.mouse.y}function u(a){var b=a.editable,d=a.mouse,e=a.view,f=a.triggerOffset;x(a);var g=d.y>
-(a.inInlineMode?e.editable.top+e.editable.height/2:Math.min(e.editable.height,e.pane.height)/2),b=b[g?"getLast":"getFirst"](function(a){return!(R(a)||U(a))});if(!b)return null;c(a,b)&&(b=a.line.wrap[g?"getPrevious":"getNext"](function(a){return!(R(a)||U(a))}));if(!n(b)||w(b)||!r(a,b))return null;v(a,b);return!g&&0<=b.size.top&&m(d.y,0,b.size.top+f)?(a=a.inInlineMode||0===e.scroll.y?P:X,new h([null,b,H,O,a])):g&&b.size.bottom<=e.pane.height&&m(d.y,b.size.bottom-f,e.pane.height)?(a=a.inInlineMode||
-m(b.size.bottom,e.pane.height-f,e.pane.height)?K:X,new h([b,null,E,O,a])):null}function t(b){var c=b.mouse,d=b.view,e=b.triggerOffset,f=g(b);if(!f)return null;v(b,f);var e=Math.min(e,0|f.size.outerHeight/2),k=[],l,t;if(m(c.y,f.size.top-1,f.size.top+e))t=!1;else if(m(c.y,f.size.bottom-e,f.size.bottom+1))t=!0;else return null;if(w(f)||q(b,f,t)||f.getParent().is(W))return null;var p=a(b,f,!t);if(p){if(p&&p.type==CKEDITOR.NODE_TEXT)return null;if(n(p)){if(w(p)||!r(b,p)||p.getParent().is(W))return null;
-k=[p,f][t?"reverse":"concat"]().concat([Q,O])}}else f.equals(b.editable[t?"getLast":"getFirst"](b.isRelevant))?(x(b),t&&m(c.y,f.size.bottom-e,d.pane.height)&&m(f.size.bottom,d.pane.height-e,d.pane.height)?l=K:m(c.y,0,f.size.top+e)&&(l=P)):l=X,k=[null,f][t?"reverse":"concat"]().concat([t?E:H,O,l,f.equals(b.editable[t?"getLast":"getFirst"](b.isRelevant))?t?K:P:X]);return 0 in k?new h(k):null}function y(a,b,c,d){for(var e=b.getDocumentPosition(),f={},g={},h={},k={},l=V.length;l--;)f[V[l]]=parseInt(b.getComputedStyle.call(b,
-"border-"+V[l]+"-width"),10)||0,h[V[l]]=parseInt(b.getComputedStyle.call(b,"padding-"+V[l]),10)||0,g[V[l]]=parseInt(b.getComputedStyle.call(b,"margin-"+V[l]),10)||0;c&&!d||B(a,d);k.top=e.y-(c?0:a.view.scroll.y);k.left=e.x-(c?0:a.view.scroll.x);k.outerWidth=b.$.offsetWidth;k.outerHeight=b.$.offsetHeight;k.height=k.outerHeight-(h.top+h.bottom+f.top+f.bottom);k.width=k.outerWidth-(h.left+h.right+f.left+f.right);k.bottom=k.top+k.outerHeight;k.right=k.left+k.outerWidth;a.inInlineMode&&(k.scroll={top:b.$.scrollTop,
-left:b.$.scrollLeft});return A({border:f,padding:h,margin:g,ignoreScroll:c},k,!0)}function v(a,b,c){if(!n(b))return b.size=null;if(!b.size)b.size={};else if(b.size.ignoreScroll==c&&b.size.date>new Date-Z)return null;return A(b.size,y(a,b,c),{date:+new Date},!0)}function x(a,b){a.view.editable=y(a,a.editable,b,!0)}function B(a,b){a.view||(a.view={});var c=a.view;if(!(!b&&c&&c.date>new Date-Z)){var d=a.win,c=d.getScrollPosition(),d=d.getViewPaneSize();A(a.view,{scroll:{x:c.x,y:c.y,width:a.doc.$.documentElement.scrollWidth-
-d.width,height:a.doc.$.documentElement.scrollHeight-d.height},pane:{width:d.width,height:d.height,bottom:d.height+c.y},date:+new Date},!0)}}function D(a,b,c,d){for(var e=d,f=d,g=0,k=!1,l=!1,m=a.view.pane.height,n=a.mouse;n.y+g<m&&0<n.y-g;){k||(k=b(e,d));l||(l=b(f,d));!k&&0<n.y-g&&(e=c(a,{x:n.x,y:n.y-g}));!l&&n.y+g<m&&(f=c(a,{x:n.x,y:n.y+g}));if(k&&l)break;g+=2}return new h([e,f,null,null])}CKEDITOR.plugins.add("magicline",{init:function(b){var f=b.config,k=f.magicline_triggerOffset||30,m={editor:b,
-enterMode:f.enterMode,triggerOffset:k,holdDistance:0|k*(f.magicline_holdDistance||.5),boxColor:f.magicline_color||"#ff0000",rtl:"rtl"==f.contentsLangDirection,tabuList:["data-cke-hidden-sel"].concat(f.magicline_tabuList||[]),triggers:f.magicline_everywhere?T:{table:1,hr:1,div:1,ul:1,ol:1,dl:1,form:1,blockquote:1}},q,r,v;m.isRelevant=function(a){return n(a)&&!c(m,a)&&!w(a)};b.on("contentDom",function(){var k=b.editable(),n=b.document,w=b.window;A(m,{editable:k,inInlineMode:k.isInline(),doc:n,win:w,
-hotNode:null},!0);m.boundary=m.inInlineMode?m.editable:m.doc.getDocumentElement();k.is(F.$inline)||(m.inInlineMode&&!z(k)&&k.setStyles({position:"relative",top:null,left:null}),l.call(this,m),B(m),k.attachListener(b,"beforeUndoImage",function(){m.line.detach()}),k.attachListener(b,"beforeGetData",function(){m.line.wrap.getParent()&&(m.line.detach(),b.once("getData",function(){m.line.attach()},null,null,1E3))},null,null,0),k.attachListener(m.inInlineMode?n:n.getWindow().getFrame(),"mouseout",function(a){if("wysiwyg"==
-b.mode)if(m.inInlineMode){var c=a.data.$.clientX;a=a.data.$.clientY;B(m);x(m,!0);var d=m.view.editable,e=m.view.scroll;c>d.left-e.x&&c<d.right-e.x&&a>d.top-e.y&&a<d.bottom-e.y||(clearTimeout(v),v=null,m.line.detach())}else clearTimeout(v),v=null,m.line.detach()}),k.attachListener(k,"keyup",function(){m.hiddenMode=0}),k.attachListener(k,"keydown",function(a){if("wysiwyg"==b.mode)switch(a.data.getKeystroke()){case 2228240:case 16:m.hiddenMode=1,m.line.detach()}}),k.attachListener(m.inInlineMode?k:n,
-"mousemove",function(a){r=!0;if("wysiwyg"==b.mode&&!b.readOnly&&!v){var c={x:a.data.$.clientX,y:a.data.$.clientY};v=setTimeout(function(){m.mouse=c;v=m.trigger=null;B(m);r&&!m.hiddenMode&&b.focusManager.hasFocus&&!m.line.mouseNear()&&(m.element=ba(m,!0))&&((m.trigger=u(m)||t(m)||N(m))&&!p(m,m.trigger.upper||m.trigger.lower)?m.line.attach().place():(m.trigger=null,m.line.detach()),r=!1)},30)}}),k.attachListener(w,"scroll",function(){"wysiwyg"==b.mode&&(m.line.detach(),I.webkit&&(m.hiddenMode=1,clearTimeout(q),
-q=setTimeout(function(){m.mouseDown||(m.hiddenMode=0)},50)))}),k.attachListener(J?n:w,"mousedown",function(){"wysiwyg"==b.mode&&(m.line.detach(),m.hiddenMode=1,m.mouseDown=1)}),k.attachListener(J?n:w,"mouseup",function(){m.hiddenMode=0;m.mouseDown=0}),b.addCommand("accessPreviousSpace",e(m)),b.addCommand("accessNextSpace",e(m,!0)),b.setKeystroke([[f.magicline_keystrokePrevious,"accessPreviousSpace"],[f.magicline_keystrokeNext,"accessNextSpace"]]),b.on("loadSnapshot",function(){var a,c,d,e;for(e in{p:1,
-br:1,div:1})for(a=b.document.getElementsByTag(e),d=a.count();d--;)if((c=a.getItem(d)).data("cke-magicline-hot")){m.hotNode=c;m.lastCmdDirection="true"===c.data("cke-magicline-dir")?!0:!1;return}}),b._.magiclineBackdoor={accessFocusSpace:d,boxTrigger:h,isLine:c,getAscendantTrigger:g,getNonEmptyNeighbour:a,getSize:y,that:m,triggerEdge:t,triggerEditable:u,triggerExpand:N})},this)}});var A=CKEDITOR.tools.extend,G=CKEDITOR.dom.element,C=G.createFromHtml,I=CKEDITOR.env,J=CKEDITOR.env.ie&&9>CKEDITOR.env.version,
-F=CKEDITOR.dtd,M={},H=128,E=64,Q=32,O=16,P=4,K=2,X=1,S=" ",W=F.$listItem,ea=F.$tableContent,L=A({},F.$nonEditable,F.$empty),T=F.$block,Z=100,ca="width:0px;height:0px;padding:0px;margin:0px;display:block;z-index:9999;color:#fff;position:absolute;font-size: 0px;line-height:0px;",aa=ca+"border-color:transparent;display:block;border-style:solid;",da="\x3cspan\x3e"+S+"\x3c/span\x3e";M[CKEDITOR.ENTER_BR]="br";M[CKEDITOR.ENTER_P]="p";M[CKEDITOR.ENTER_DIV]="div";h.prototype={set:function(a,b,c){this.properties=
-a+b+(c||X);return this},is:function(a){return(this.properties&a)==a}};var ba=function(){function a(b,c){var d=b.$.elementFromPoint(c.x,c.y);return d&&d.nodeType?new CKEDITOR.dom.element(d):null}return function(b,d,e){if(!b.mouse)return null;var f=b.doc,g=b.line.wrap;e=e||b.mouse;var h=a(f,e);d&&c(b,h)&&(g.hide(),h=a(f,e),g.show());return!h||h.type!=CKEDITOR.NODE_ELEMENT||!h.$||I.ie&&9>I.version&&!b.boundary.equals(h)&&!b.boundary.contains(h)?null:h}}(),R=CKEDITOR.dom.walker.whitespaces(),U=CKEDITOR.dom.walker.nodeType(CKEDITOR.NODE_COMMENT),
-N=function(){function a(c){var e=c.element,g,h,k;if(!n(e)||e.contains(c.editable)||e.isReadOnly())return null;k=D(c,function(a,b){return!b.equals(a)},function(a,b){return ba(a,!0,b)},e);g=k.upper;h=k.lower;if(b(c,g,h))return k.set(Q,8);if(g&&e.contains(g))for(;!g.getParent().equals(e);)g=g.getParent();else g=e.getFirst(function(a){return d(c,a)});if(h&&e.contains(h))for(;!h.getParent().equals(e);)h=h.getParent();else h=e.getLast(function(a){return d(c,a)});if(!g||!h)return null;v(c,g);v(c,h);if(!m(c.mouse.y,
-g.size.top,h.size.bottom))return null;for(var e=Number.MAX_VALUE,l,q,t,p;h&&!h.equals(g)&&(q=g.getNext(c.isRelevant));)l=Math.abs(f(c,g,q)-c.mouse.y),l<e&&(e=l,t=g,p=q),g=q,v(c,g);if(!t||!p||!m(c.mouse.y,t.size.top,p.size.bottom))return null;k.upper=t;k.lower=p;return k.set(Q,8)}function d(a,b){return!(b&&b.type==CKEDITOR.NODE_TEXT||U(b)||w(b)||c(a,b)||b.type==CKEDITOR.NODE_ELEMENT&&b.$&&b.is("br"))}return function(c){var d=a(c),e;if(e=d){e=d.upper;var f=d.lower;e=!e||!f||w(f)||w(e)||f.equals(e)||
-e.equals(f)||f.contains(e)||e.contains(f)?!1:r(c,e)&&r(c,f)&&b(c,e,f)?!0:!1}return e?d:null}}(),V=["top","left","right","bottom"]})();CKEDITOR.config.magicline_keystrokePrevious=CKEDITOR.CTRL+CKEDITOR.SHIFT+51;CKEDITOR.config.magicline_keystrokeNext=CKEDITOR.CTRL+CKEDITOR.SHIFT+52;(function(){function b(a){if(!a||a.type!=CKEDITOR.NODE_ELEMENT||"form"!=a.getName())return[];for(var b=[],f=["style","className"],d=0;d<f.length;d++){var e=a.$.elements.namedItem(f[d]);e&&(e=new CKEDITOR.dom.element(e),
+CKEDITOR.TRISTATE_DISABLED;c&&(d["language_"+c.getAttribute("lang")]=CKEDITOR.TRISTATE_ON);return d}});b.addRemoveFormatFilter&&b.addRemoveFormatFilter(function(a){return!(a.is("span")&&a.getAttribute("dir")&&a.getAttribute("lang"))})},getCurrentLangElement:function(b){var h=b.elementPath();b=h&&h.elements;var g;if(h)for(var f=0;f<b.length;f++)h=b[f],!g&&"span"==h.getName()&&h.hasAttribute("dir")&&h.hasAttribute("lang")&&(g=h);return g}})})();(function(){function b(a,b,d,c){for(var e=CKEDITOR.plugins.list.listToArray(b.root,
+d),f=[],g=0;g<b.contents.length;g++){var h=b.contents[g];(h=h.getAscendant("li",!0))&&!h.getCustomData("list_item_processed")&&(f.push(h),CKEDITOR.dom.element.setMarker(d,h,"list_item_processed",!0))}for(var h=b.root.getDocument(),k,l,g=0;g<f.length;g++){var m=f[g].getCustomData("listarray_index");k=e[m].parent;k.is(this.type)||(l=h.createElement(this.type),k.copyAttributes(l,{start:1,type:1}),l.removeStyle("list-style-type"),e[m].parent=l)}d=CKEDITOR.plugins.list.arrayToList(e,d,null,a.config.enterMode);
+for(var n,e=d.listNode.getChildCount(),g=0;g<e&&(n=d.listNode.getChild(g));g++)n.getName()==this.type&&c.push(n);d.listNode.replace(b.root);a.fire("contentDomInvalidated")}function h(a,b,d){var c=b.contents,e=b.root.getDocument(),f=[];if(1==c.length&&c[0].equals(b.root)){var g=e.createElement("div");c[0].moveChildren&&c[0].moveChildren(g);c[0].append(g);c[0]=g}b=b.contents[0].getParent();for(g=0;g<c.length;g++)b=b.getCommonAncestor(c[g].getParent());a=a.config.useComputedState;var h,k;a=void 0===
+a||a;for(g=0;g<c.length;g++)for(var l=c[g],m;m=l.getParent();){if(m.equals(b)){f.push(l);!k&&l.getDirection()&&(k=1);l=l.getDirection(a);null!==h&&(h=h&&h!=l?null:l);break}l=m}if(!(1>f.length)){c=f[f.length-1].getNext();g=e.createElement(this.type);for(d.push(g);f.length;)d=f.shift(),a=e.createElement("li"),l=d,l.is("pre")||p.test(l.getName())||"false"==l.getAttribute("contenteditable")?d.appendTo(a):(d.copyAttributes(a),h&&d.getDirection()&&(a.removeStyle("direction"),a.removeAttribute("dir")),d.moveChildren(a),
+d.remove()),a.appendTo(g);h&&k&&g.setAttribute("dir",h);c?g.insertBefore(c):g.appendTo(b)}}function g(a,b,d){function c(d){if(!(!(l=k[d?"getFirst":"getLast"]())||l.is&&l.isBlockBoundary()||!(m=b.root[d?"getPrevious":"getNext"](CKEDITOR.dom.walker.invisible(!0)))||m.is&&m.isBlockBoundary({br:1})))a.document.createElement("br")[d?"insertBefore":"insertAfter"](l)}for(var e=CKEDITOR.plugins.list.listToArray(b.root,d),f=[],g=0;g<b.contents.length;g++){var h=b.contents[g];(h=h.getAscendant("li",!0))&&!h.getCustomData("list_item_processed")&&
+(f.push(h),CKEDITOR.dom.element.setMarker(d,h,"list_item_processed",!0))}h=null;for(g=0;g<f.length;g++)h=f[g].getCustomData("listarray_index"),e[h].indent=-1;for(g=h+1;g<e.length;g++)if(e[g].indent>e[g-1].indent+1){f=e[g-1].indent+1-e[g].indent;for(h=e[g].indent;e[g]&&e[g].indent>=h;)e[g].indent+=f,g++;g--}var k=CKEDITOR.plugins.list.arrayToList(e,d,null,a.config.enterMode,b.root.getAttribute("dir")).listNode,l,m;c(!0);c();k.replace(b.root);a.fire("contentDomInvalidated")}function f(a,b){this.name=
+a;this.context=this.type=b;this.allowedContent=b+" li";this.requiredContent=b}function a(a,b,d,c){for(var e,f;e=a[c?"getLast":"getFirst"](r);)(f=e.getDirection(1))!==b.getDirection(1)&&e.setAttribute("dir",f),e.remove(),d?e[c?"insertBefore":"insertAfter"](d):b.append(e,c),d=e}function m(b){function d(c){var e=b[c?"getPrevious":"getNext"](v);e&&e.type==CKEDITOR.NODE_ELEMENT&&e.is(b.getName())&&(a(b,e,null,!c),b.remove(),b=e)}d();d(1)}function l(a){return a.type==CKEDITOR.NODE_ELEMENT&&(a.getName()in
+CKEDITOR.dtd.$block||a.getName()in CKEDITOR.dtd.$listItem)&&CKEDITOR.dtd[a.getName()]["#"]}function k(b,c,e){b.fire("saveSnapshot");e.enlarge(CKEDITOR.ENLARGE_LIST_ITEM_CONTENTS);var f=e.extractContents();c.trim(!1,!0);var g=c.createBookmark(),h=new CKEDITOR.dom.elementPath(c.startContainer),k=h.block,h=h.lastElement.getAscendant("li",1)||k,l=new CKEDITOR.dom.elementPath(e.startContainer),n=l.contains(CKEDITOR.dtd.$listItem),l=l.contains(CKEDITOR.dtd.$list);k?(k=k.getBogus())&&k.remove():l&&(k=l.getPrevious(v))&&
+x(k)&&k.remove();(k=f.getLast())&&k.type==CKEDITOR.NODE_ELEMENT&&k.is("br")&&k.remove();(k=c.startContainer.getChild(c.startOffset))?f.insertBefore(k):c.startContainer.append(f);n&&(f=d(n))&&(h.contains(n)?(a(f,n.getParent(),n),f.remove()):h.append(f));for(;e.checkStartOfBlock()&&e.checkEndOfBlock();){l=e.startPath();f=l.block;if(!f)break;f.is("li")&&(h=f.getParent(),f.equals(h.getLast(v))&&f.equals(h.getFirst(v))&&(f=h));e.moveToPosition(f,CKEDITOR.POSITION_BEFORE_START);f.remove()}e=e.clone();f=
+b.editable();e.setEndAt(f,CKEDITOR.POSITION_BEFORE_END);e=new CKEDITOR.dom.walker(e);e.evaluator=function(a){return v(a)&&!x(a)};(e=e.next())&&e.type==CKEDITOR.NODE_ELEMENT&&e.getName()in CKEDITOR.dtd.$list&&m(e);c.moveToBookmark(g);c.select();b.fire("saveSnapshot")}function d(a){return(a=a.getLast(v))&&a.type==CKEDITOR.NODE_ELEMENT&&a.getName()in e?a:null}var e={ol:1,ul:1},c=CKEDITOR.dom.walker.whitespaces(),n=CKEDITOR.dom.walker.bookmark(),v=function(a){return!(c(a)||n(a))},x=CKEDITOR.dom.walker.bogus();
+CKEDITOR.plugins.list={listToArray:function(a,b,d,c,f){if(!e[a.getName()])return[];c||(c=0);d||(d=[]);for(var g=0,h=a.getChildCount();g<h;g++){var k=a.getChild(g);k.type==CKEDITOR.NODE_ELEMENT&&k.getName()in CKEDITOR.dtd.$list&&CKEDITOR.plugins.list.listToArray(k,b,d,c+1);if("li"==k.$.nodeName.toLowerCase()){var l={parent:a,indent:c,element:k,contents:[]};f?l.grandparent=f:(l.grandparent=a.getParent(),l.grandparent&&"li"==l.grandparent.$.nodeName.toLowerCase()&&(l.grandparent=l.grandparent.getParent()));
+b&&CKEDITOR.dom.element.setMarker(b,k,"listarray_index",d.length);d.push(l);for(var m=0,n=k.getChildCount(),r;m<n;m++)r=k.getChild(m),r.type==CKEDITOR.NODE_ELEMENT&&e[r.getName()]?CKEDITOR.plugins.list.listToArray(r,b,d,c+1,l.grandparent):l.contents.push(r)}}return d},arrayToList:function(a,b,d,c,f){d||(d=0);if(!a||a.length<d+1)return null;for(var g,h=a[d].parent.getDocument(),k=new CKEDITOR.dom.documentFragment(h),l=null,m=d,r=Math.max(a[d].indent,0),p=null,x,E,N=c==CKEDITOR.ENTER_P?"p":"div";;){var J=
+a[m];g=J.grandparent;x=J.element.getDirection(1);if(J.indent==r){l&&a[m].parent.getName()==l.getName()||(l=a[m].parent.clone(!1,1),f&&l.setAttribute("dir",f),k.append(l));p=l.append(J.element.clone(0,1));x!=l.getDirection(1)&&p.setAttribute("dir",x);for(g=0;g<J.contents.length;g++)p.append(J.contents[g].clone(1,1));m++}else if(J.indent==Math.max(r,0)+1)J=a[m-1].element.getDirection(1),m=CKEDITOR.plugins.list.arrayToList(a,null,m,c,J!=x?x:null),!p.getChildCount()&&CKEDITOR.env.needsNbspFiller&&7>=
+h.$.documentMode&&p.append(h.createText(" ")),p.append(m.listNode),m=m.nextIndex;else if(-1==J.indent&&!d&&g){e[g.getName()]?(p=J.element.clone(!1,!0),x!=g.getDirection(1)&&p.setAttribute("dir",x)):p=new CKEDITOR.dom.documentFragment(h);var l=g.getDirection(1)!=x,L=J.element,D=L.getAttribute("class"),I=L.getAttribute("style"),P=p.type==CKEDITOR.NODE_DOCUMENT_FRAGMENT&&(c!=CKEDITOR.ENTER_BR||l||I||D),M,Y=J.contents.length,R;for(g=0;g<Y;g++)if(M=J.contents[g],n(M)&&1<Y)P?R=M.clone(1,1):p.append(M.clone(1,
+1));else if(M.type==CKEDITOR.NODE_ELEMENT&&M.isBlockBoundary()){l&&!M.getDirection()&&M.setAttribute("dir",x);E=M;var W=L.getAttribute("style");W&&E.setAttribute("style",W.replace(/([^;])$/,"$1;")+(E.getAttribute("style")||""));D&&M.addClass(D);E=null;R&&(p.append(R),R=null);p.append(M.clone(1,1))}else P?(E||(E=h.createElement(N),p.append(E),l&&E.setAttribute("dir",x)),I&&E.setAttribute("style",I),D&&E.setAttribute("class",D),R&&(E.append(R),R=null),E.append(M.clone(1,1))):p.append(M.clone(1,1));
+R&&((E||p).append(R),R=null);p.type==CKEDITOR.NODE_DOCUMENT_FRAGMENT&&m!=a.length-1&&(CKEDITOR.env.needsBrFiller&&(x=p.getLast())&&x.type==CKEDITOR.NODE_ELEMENT&&x.is("br")&&x.remove(),(x=p.getLast(v))&&x.type==CKEDITOR.NODE_ELEMENT&&x.is(CKEDITOR.dtd.$block)||p.append(h.createElement("br")));x=p.$.nodeName.toLowerCase();"div"!=x&&"p"!=x||p.appendBogus();k.append(p);l=null;m++}else return null;E=null;if(a.length<=m||Math.max(a[m].indent,0)<r)break}if(b)for(a=k.getFirst();a;){if(a.type==CKEDITOR.NODE_ELEMENT&&
+(CKEDITOR.dom.element.clearMarkers(b,a),a.getName()in CKEDITOR.dtd.$listItem&&(d=a,h=f=c=void 0,c=d.getDirection()))){for(f=d.getParent();f&&!(h=f.getDirection());)f=f.getParent();c==h&&d.removeAttribute("dir")}a=a.getNextSourceNode()}return{listNode:k,nextIndex:m}}};var p=/^h[1-6]$/,r=CKEDITOR.dom.walker.nodeType(CKEDITOR.NODE_ELEMENT);f.prototype={exec:function(a){function d(a){return e[a.root.getName()]&&!c(a.root,[CKEDITOR.NODE_COMMENT])}function c(a,b){return CKEDITOR.tools.array.filter(a.getChildren().toArray(),
+function(a){return-1===CKEDITOR.tools.array.indexOf(b,a.type)}).length}function f(a){var b=!0;if(0===a.getChildCount())return!1;a.forEach(function(a){if(a.type!==CKEDITOR.NODE_COMMENT)return b=!1},null,!0);return b}this.refresh(a,a.elementPath());var k=a.config,l=a.getSelection(),n=l&&l.getRanges();if(this.state==CKEDITOR.TRISTATE_OFF){var r=a.editable();if(r.getFirst(v)){var p=1==n.length&&n[0];(k=p&&p.getEnclosedNode())&&k.is&&this.type==k.getName()&&this.setState(CKEDITOR.TRISTATE_ON)}else k.enterMode==
+CKEDITOR.ENTER_BR?r.appendBogus():n[0].fixBlock(1,k.enterMode==CKEDITOR.ENTER_P?"p":"div"),l.selectRanges(n)}for(var k=l.createBookmarks(!0),r=[],x={},n=n.createIterator(),F=0;(p=n.getNextRange())&&++F;){var K=p.getBoundaryNodes(),H=K.startNode,E=K.endNode;H.type==CKEDITOR.NODE_ELEMENT&&"td"==H.getName()&&p.setStartAt(K.startNode,CKEDITOR.POSITION_AFTER_START);E.type==CKEDITOR.NODE_ELEMENT&&"td"==E.getName()&&p.setEndAt(K.endNode,CKEDITOR.POSITION_BEFORE_END);p=p.createIterator();for(p.forceBrBreak=
+this.state==CKEDITOR.TRISTATE_OFF;K=p.getNextParagraph();)if(!K.getCustomData("list_block")&&!f(K)){CKEDITOR.dom.element.setMarker(x,K,"list_block",1);for(var N=a.elementPath(K),H=N.elements,E=0,N=N.blockLimit,J,L=H.length-1;0<=L&&(J=H[L]);L--)if(e[J.getName()]&&N.contains(J)){N.removeCustomData("list_group_object_"+F);(H=J.getCustomData("list_group_object"))?H.contents.push(K):(H={root:J,contents:[K]},r.push(H),CKEDITOR.dom.element.setMarker(x,J,"list_group_object",H));E=1;break}E||(E=N,E.getCustomData("list_group_object_"+
+F)?E.getCustomData("list_group_object_"+F).contents.push(K):(H={root:E,contents:[K]},CKEDITOR.dom.element.setMarker(x,E,"list_group_object_"+F,H),r.push(H)))}}for(J=[];0<r.length;)H=r.shift(),this.state==CKEDITOR.TRISTATE_OFF?d(H)||(e[H.root.getName()]?b.call(this,a,H,x,J):h.call(this,a,H,J)):this.state==CKEDITOR.TRISTATE_ON&&e[H.root.getName()]&&!d(H)&&g.call(this,a,H,x);for(L=0;L<J.length;L++)m(J[L]);CKEDITOR.dom.element.clearAllMarkers(x);l.selectBookmarks(k);a.focus()},refresh:function(a,b){var d=
+b.contains(e,1),c=b.blockLimit||b.root;d&&c.contains(d)?this.setState(d.is(this.type)?CKEDITOR.TRISTATE_ON:CKEDITOR.TRISTATE_OFF):this.setState(CKEDITOR.TRISTATE_OFF)}};CKEDITOR.plugins.add("list",{requires:"indentlist",init:function(a){a.blockless||(a.addCommand("numberedlist",new f("numberedlist","ol")),a.addCommand("bulletedlist",new f("bulletedlist","ul")),a.ui.addButton&&(a.ui.addButton("NumberedList",{label:a.lang.list.numberedlist,command:"numberedlist",directional:!0,toolbar:"list,10"}),a.ui.addButton("BulletedList",
+{label:a.lang.list.bulletedlist,command:"bulletedlist",directional:!0,toolbar:"list,20"})),a.on("key",function(b){var c=b.data.domEvent.getKey(),f;if("wysiwyg"==a.mode&&c in{8:1,46:1}){var g=a.getSelection().getRanges()[0],h=g&&g.startPath();if(g&&g.collapsed){var m=8==c,n=a.editable(),r=new CKEDITOR.dom.walker(g.clone());r.evaluator=function(a){return v(a)&&!x(a)};r.guard=function(a,b){return!(b&&a.type==CKEDITOR.NODE_ELEMENT&&a.is("table"))};c=g.clone();if(m){var p;(p=h.contains(e))&&g.checkBoundaryOfElement(p,
+CKEDITOR.START)&&(p=p.getParent())&&p.is("li")&&(p=d(p))?(f=p,p=p.getPrevious(v),c.moveToPosition(p&&x(p)?p:f,CKEDITOR.POSITION_BEFORE_START)):(r.range.setStartAt(n,CKEDITOR.POSITION_AFTER_START),r.range.setEnd(g.startContainer,g.startOffset),(p=r.previous())&&p.type==CKEDITOR.NODE_ELEMENT&&(p.getName()in e||p.is("li"))&&(p.is("li")||(r.range.selectNodeContents(p),r.reset(),r.evaluator=l,p=r.previous()),f=p,c.moveToElementEditEnd(f),c.moveToPosition(c.endPath().block,CKEDITOR.POSITION_BEFORE_END)));
+if(f)k(a,c,g),b.cancel();else{var F=h.contains(e);F&&g.checkBoundaryOfElement(F,CKEDITOR.START)&&(f=F.getFirst(v),g.checkBoundaryOfElement(f,CKEDITOR.START)&&(p=F.getPrevious(v),d(f)?p&&(g.moveToElementEditEnd(p),g.select()):a.execCommand("outdent"),b.cancel()))}}else if(f=h.contains("li")){if(r.range.setEndAt(n,CKEDITOR.POSITION_BEFORE_END),m=(n=f.getLast(v))&&l(n)?n:f,h=0,(p=r.next())&&p.type==CKEDITOR.NODE_ELEMENT&&p.getName()in e&&p.equals(n)?(h=1,p=r.next()):g.checkBoundaryOfElement(m,CKEDITOR.END)&&
+(h=2),h&&p){g=g.clone();g.moveToElementEditStart(p);if(1==h&&(c.optimize(),!c.startContainer.equals(f))){for(f=c.startContainer;f.is(CKEDITOR.dtd.$inline);)F=f,f=f.getParent();F&&c.moveToPosition(F,CKEDITOR.POSITION_AFTER_END)}2==h&&(c.moveToPosition(c.endPath().block,CKEDITOR.POSITION_BEFORE_END),g.endPath().block&&g.moveToPosition(g.endPath().block,CKEDITOR.POSITION_AFTER_START));k(a,c,g);b.cancel()}}else r.range.setEndAt(n,CKEDITOR.POSITION_BEFORE_END),(p=r.next())&&p.type==CKEDITOR.NODE_ELEMENT&&
+p.is(e)&&(p=p.getFirst(v),h.block&&g.checkStartOfBlock()&&g.checkEndOfBlock()?(h.block.remove(),g.moveToElementEditStart(p),g.select()):d(p)?(g.moveToElementEditStart(p),g.select()):(g=g.clone(),g.moveToElementEditStart(p),k(a,c,g)),b.cancel());setTimeout(function(){a.selectionChange(1)})}}}))}})})();"use strict";(function(){function b(a,b,d){return n(b)&&n(d)&&d.equals(b.getNext(function(a){return!(Q(a)||T(a)||v(a))}))}function h(a){this.upper=a[0];this.lower=a[1];this.set.apply(this,a.slice(2))}
+function g(a){var b=a.element;if(b&&n(b)&&(b=b.getAscendant(a.triggers,!0))&&a.editable.contains(b)){var d=l(b);if("true"==d.getAttribute("contenteditable"))return b;if(d.is(a.triggers))return d}return null}function f(a,b,d){y(a,b);y(a,d);a=b.size.bottom;d=d.size.top;return a&&d?0|(a+d)/2:a||d}function a(a,b,d){return b=b[d?"getPrevious":"getNext"](function(b){return b&&b.type==CKEDITOR.NODE_TEXT&&!Q(b)||n(b)&&!v(b)&&!c(a,b)})}function m(a,b,d){return a>b&&a<d}function l(a,b){if(a.data("cke-editable"))return null;
+for(b||(a=a.getParent());a&&!a.data("cke-editable");){if(a.hasAttribute("contenteditable"))return a;a=a.getParent()}return null}function k(a){var b=a.doc,c=F('\x3cspan contenteditable\x3d"false" data-cke-magic-line\x3d"1" style\x3d"'+ba+"position:absolute;border-top:1px dashed "+a.boxColor+'"\x3e\x3c/span\x3e',b),e=CKEDITOR.getUrl(this.path+"images/"+(K.hidpi?"hidpi/":"")+"icon"+(a.rtl?"-rtl":"")+".png");B(c,{attach:function(){this.wrap.getParent()||this.wrap.appendTo(a.editable,!0);return this},
+lineChildren:[B(F('\x3cspan title\x3d"'+a.editor.lang.magicline.title+'" contenteditable\x3d"false"\x3e\x26#8629;\x3c/span\x3e',b),{base:ba+"height:17px;width:17px;"+(a.rtl?"left":"right")+":17px;background:url("+e+") center no-repeat "+a.boxColor+";cursor:pointer;"+(K.hc?"font-size: 15px;line-height:14px;border:1px solid #fff;text-align:center;":"")+(K.hidpi?"background-size: 9px 10px;":""),looks:["top:-8px; border-radius: 2px;","top:-17px; border-radius: 2px 2px 0px 0px;","top:-1px; border-radius: 0px 0px 2px 2px;"]}),
+B(F(da,b),{base:Z+"left:0px;border-left-color:"+a.boxColor+";",looks:["border-width:8px 0 8px 8px;top:-8px","border-width:8px 0 0 8px;top:-8px","border-width:0 0 8px 8px;top:0px"]}),B(F(da,b),{base:Z+"right:0px;border-right-color:"+a.boxColor+";",looks:["border-width:8px 8px 8px 0;top:-8px","border-width:8px 8px 0 0;top:-8px","border-width:0 8px 8px 0;top:0px"]})],detach:function(){this.wrap.getParent()&&this.wrap.remove();return this},mouseNear:function(){y(a,this);var b=a.holdDistance,d=this.size;
+return d&&m(a.mouse.y,d.top-b,d.bottom+b)&&m(a.mouse.x,d.left-b,d.right+b)?!0:!1},place:function(){var b=a.view,d=a.editable,c=a.trigger,e=c.upper,f=c.lower,g=e||f,h=g.getParent(),k={};this.trigger=c;e&&y(a,e,!0);f&&y(a,f,!0);y(a,h,!0);a.inInlineMode&&u(a,!0);h.equals(d)?(k.left=b.scroll.x,k.right=-b.scroll.x,k.width=""):(k.left=g.size.left-g.size.margin.left+b.scroll.x-(a.inInlineMode?b.editable.left+b.editable.border.left:0),k.width=g.size.outerWidth+g.size.margin.left+g.size.margin.right+b.scroll.x,
+k.right="");e&&f?k.top=e.size.margin.bottom===f.size.margin.top?0|e.size.bottom+e.size.margin.bottom/2:e.size.margin.bottom<f.size.margin.top?e.size.bottom+e.size.margin.bottom:e.size.bottom+e.size.margin.bottom-f.size.margin.top:e?f||(k.top=e.size.bottom+e.size.margin.bottom):k.top=f.size.top-f.size.margin.top;c.is(P)||m(k.top,b.scroll.y-15,b.scroll.y+5)?(k.top=a.inInlineMode?0:b.scroll.y,this.look(P)):c.is(M)||m(k.top,b.pane.bottom-5,b.pane.bottom+15)?(k.top=a.inInlineMode?b.editable.height+b.editable.padding.top+
+b.editable.padding.bottom:b.pane.bottom-1,this.look(M)):(a.inInlineMode&&(k.top-=b.editable.top+b.editable.border.top),this.look(Y));a.inInlineMode&&(k.top--,k.top+=b.editable.scroll.top,k.left+=b.editable.scroll.left);for(var l in k)k[l]=CKEDITOR.tools.cssLength(k[l]);this.setStyles(k)},look:function(a){if(this.oldLook!=a){for(var b=this.lineChildren.length,d;b--;)(d=this.lineChildren[b]).setAttribute("style",d.base+d.looks[0|a/2]);this.oldLook=a}},wrap:new G("span",a.doc)});for(b=c.lineChildren.length;b--;)c.lineChildren[b].appendTo(c);
+c.look(Y);c.appendTo(c.wrap);c.unselectable();c.lineChildren[0].on("mouseup",function(b){c.detach();d(a,function(b){var d=a.line.trigger;b[d.is(J)?"insertBefore":"insertAfter"](d.is(J)?d.lower:d.upper)},!0);a.editor.focus();K.ie||a.enterMode==CKEDITOR.ENTER_BR||a.hotNode.scrollIntoView();b.data.preventDefault(!0)});c.on("mousedown",function(a){a.data.preventDefault(!0)});a.line=c}function d(a,b,d){var c=new CKEDITOR.dom.range(a.doc),e=a.editor,f;K.ie&&a.enterMode==CKEDITOR.ENTER_BR?f=a.doc.createText(R):
+(f=(f=l(a.element,!0))&&f.data("cke-enter-mode")||a.enterMode,f=new G(N[f],a.doc),f.is("br")||a.doc.createText(R).appendTo(f));d&&e.fire("saveSnapshot");b(f);c.moveToPosition(f,CKEDITOR.POSITION_AFTER_START);e.getSelection().selectRanges([c]);a.hotNode=f;d&&e.fire("saveSnapshot")}function e(b,c){return{canUndo:!0,modes:{wysiwyg:1},exec:function(){function e(a){var f=K.ie&&9>K.version?" ":R,g=b.hotNode&&b.hotNode.getText()==f&&b.element.equals(b.hotNode)&&b.lastCmdDirection===!!c;d(b,function(d){g&&
+b.hotNode&&b.hotNode.remove();d[c?"insertAfter":"insertBefore"](a);d.setAttributes({"data-cke-magicline-hot":1,"data-cke-magicline-dir":!!c});b.lastCmdDirection=!!c});K.ie||b.enterMode==CKEDITOR.ENTER_BR||b.hotNode.scrollIntoView();b.line.detach()}return function(d){d=d.getSelection().getStartElement();var f;d=d.getAscendant(S,1);if(!r(b,d)&&d&&!d.equals(b.editable)&&!d.contains(b.editable)){(f=l(d))&&"false"==f.getAttribute("contenteditable")&&(d=f);b.element=d;f=a(b,d,!c);var h;n(f)&&f.is(b.triggers)&&
+f.is(V)&&(!a(b,f,!c)||(h=a(b,f,!c))&&n(h)&&h.is(b.triggers))?e(f):(h=g(b,d),n(h)&&(a(b,h,!c)?(d=a(b,h,!c))&&n(d)&&d.is(b.triggers)&&e(h):e(h)))}}}()}}function c(a,b){if(!b||b.type!=CKEDITOR.NODE_ELEMENT||!b.$)return!1;var d=a.line;return d.wrap.equals(b)||d.wrap.contains(b)}function n(a){return a&&a.type==CKEDITOR.NODE_ELEMENT&&a.$}function v(a){if(!n(a))return!1;var b;(b=x(a))||(n(a)?(b={left:1,right:1,center:1},b=!(!b[a.getComputedStyle("float")]&&!b[a.getAttribute("align")])):b=!1);return b}function x(a){return!!{absolute:1,
+fixed:1}[a.getComputedStyle("position")]}function p(a,b){return n(b)?b.is(a.triggers):null}function r(a,b){if(!b)return!1;for(var d=b.getParents(1),c=d.length;c--;)for(var e=a.tabuList.length;e--;)if(d[c].hasAttribute(a.tabuList[e]))return!0;return!1}function q(a,b,d){b=b[d?"getLast":"getFirst"](function(b){return a.isRelevant(b)&&!b.is(ea)});if(!b)return!1;y(a,b);return d?b.size.top>a.mouse.y:b.size.bottom<a.mouse.y}function w(a){var b=a.editable,d=a.mouse,e=a.view,f=a.triggerOffset;u(a);var g=d.y>
+(a.inInlineMode?e.editable.top+e.editable.height/2:Math.min(e.editable.height,e.pane.height)/2),b=b[g?"getLast":"getFirst"](function(a){return!(Q(a)||T(a))});if(!b)return null;c(a,b)&&(b=a.line.wrap[g?"getPrevious":"getNext"](function(a){return!(Q(a)||T(a))}));if(!n(b)||v(b)||!p(a,b))return null;y(a,b);return!g&&0<=b.size.top&&m(d.y,0,b.size.top+f)?(a=a.inInlineMode||0===e.scroll.y?P:Y,new h([null,b,J,I,a])):g&&b.size.bottom<=e.pane.height&&m(d.y,b.size.bottom-f,e.pane.height)?(a=a.inInlineMode||
+m(b.size.bottom,e.pane.height-f,e.pane.height)?M:Y,new h([b,null,L,I,a])):null}function t(b){var d=b.mouse,c=b.view,e=b.triggerOffset,f=g(b);if(!f)return null;y(b,f);var e=Math.min(e,0|f.size.outerHeight/2),k=[],l,r;if(m(d.y,f.size.top-1,f.size.top+e))r=!1;else if(m(d.y,f.size.bottom-e,f.size.bottom+1))r=!0;else return null;if(v(f)||q(b,f,r)||f.getParent().is(W))return null;var t=a(b,f,!r);if(t){if(t&&t.type==CKEDITOR.NODE_TEXT)return null;if(n(t)){if(v(t)||!p(b,t)||t.getParent().is(W))return null;
+k=[t,f][r?"reverse":"concat"]().concat([D,I])}}else f.equals(b.editable[r?"getLast":"getFirst"](b.isRelevant))?(u(b),r&&m(d.y,f.size.bottom-e,c.pane.height)&&m(f.size.bottom,c.pane.height-e,c.pane.height)?l=M:m(d.y,0,f.size.top+e)&&(l=P)):l=Y,k=[null,f][r?"reverse":"concat"]().concat([r?L:J,I,l,f.equals(b.editable[r?"getLast":"getFirst"](b.isRelevant))?r?M:P:Y]);return 0 in k?new h(k):null}function z(a,b,d,c){for(var e=b.getDocumentPosition(),f={},g={},h={},k={},l=U.length;l--;)f[U[l]]=parseInt(b.getComputedStyle.call(b,
+"border-"+U[l]+"-width"),10)||0,h[U[l]]=parseInt(b.getComputedStyle.call(b,"padding-"+U[l]),10)||0,g[U[l]]=parseInt(b.getComputedStyle.call(b,"margin-"+U[l]),10)||0;d&&!c||C(a,c);k.top=e.y-(d?0:a.view.scroll.y);k.left=e.x-(d?0:a.view.scroll.x);k.outerWidth=b.$.offsetWidth;k.outerHeight=b.$.offsetHeight;k.height=k.outerHeight-(h.top+h.bottom+f.top+f.bottom);k.width=k.outerWidth-(h.left+h.right+f.left+f.right);k.bottom=k.top+k.outerHeight;k.right=k.left+k.outerWidth;a.inInlineMode&&(k.scroll={top:b.$.scrollTop,
+left:b.$.scrollLeft});return B({border:f,padding:h,margin:g,ignoreScroll:d},k,!0)}function y(a,b,d){if(!n(b))return b.size=null;if(!b.size)b.size={};else if(b.size.ignoreScroll==d&&b.size.date>new Date-X)return null;return B(b.size,z(a,b,d),{date:+new Date},!0)}function u(a,b){a.view.editable=z(a,a.editable,b,!0)}function C(a,b){a.view||(a.view={});var d=a.view;if(!(!b&&d&&d.date>new Date-X)){var c=a.win,d=c.getScrollPosition(),c=c.getViewPaneSize();B(a.view,{scroll:{x:d.x,y:d.y,width:a.doc.$.documentElement.scrollWidth-
+c.width,height:a.doc.$.documentElement.scrollHeight-c.height},pane:{width:c.width,height:c.height,bottom:c.height+d.y},date:+new Date},!0)}}function A(a,b,d,c){for(var e=c,f=c,g=0,k=!1,l=!1,m=a.view.pane.height,n=a.mouse;n.y+g<m&&0<n.y-g;){k||(k=b(e,c));l||(l=b(f,c));!k&&0<n.y-g&&(e=d(a,{x:n.x,y:n.y-g}));!l&&n.y+g<m&&(f=d(a,{x:n.x,y:n.y+g}));if(k&&l)break;g+=2}return new h([e,f,null,null])}CKEDITOR.plugins.add("magicline",{init:function(b){var f=b.config,l=f.magicline_triggerOffset||30,m={editor:b,
+enterMode:f.enterMode,triggerOffset:l,holdDistance:0|l*(f.magicline_holdDistance||.5),boxColor:f.magicline_color||"#ff0000",rtl:"rtl"==f.contentsLangDirection,tabuList:["data-cke-hidden-sel"].concat(f.magicline_tabuList||[]),triggers:f.magicline_everywhere?S:{table:1,hr:1,div:1,ul:1,ol:1,dl:1,form:1,blockquote:1}},q,p,y;m.isRelevant=function(a){return n(a)&&!c(m,a)&&!v(a)};b.on("contentDom",function(){var l=b.editable(),n=b.document,v=b.window;B(m,{editable:l,inInlineMode:l.isInline(),doc:n,win:v,
+hotNode:null},!0);m.boundary=m.inInlineMode?m.editable:m.doc.getDocumentElement();l.is(E.$inline)||(m.inInlineMode&&!x(l)&&l.setStyles({position:"relative",top:null,left:null}),k.call(this,m),C(m),l.attachListener(b,"beforeUndoImage",function(){m.line.detach()}),l.attachListener(b,"beforeGetData",function(){m.line.wrap.getParent()&&(m.line.detach(),b.once("getData",function(){m.line.attach()},null,null,1E3))},null,null,0),l.attachListener(m.inInlineMode?n:n.getWindow().getFrame(),"mouseout",function(a){if("wysiwyg"==
+b.mode)if(m.inInlineMode){var d=a.data.$.clientX;a=a.data.$.clientY;C(m);u(m,!0);var c=m.view.editable,e=m.view.scroll;d>c.left-e.x&&d<c.right-e.x&&a>c.top-e.y&&a<c.bottom-e.y||(clearTimeout(y),y=null,m.line.detach())}else clearTimeout(y),y=null,m.line.detach()}),l.attachListener(l,"keyup",function(){m.hiddenMode=0}),l.attachListener(l,"keydown",function(a){if("wysiwyg"==b.mode)switch(a.data.getKeystroke()){case 2228240:case 16:m.hiddenMode=1,m.line.detach()}}),l.attachListener(m.inInlineMode?l:n,
+"mousemove",function(a){p=!0;if("wysiwyg"==b.mode&&!b.readOnly&&!y){var d={x:a.data.$.clientX,y:a.data.$.clientY};y=setTimeout(function(){m.mouse=d;y=m.trigger=null;C(m);p&&!m.hiddenMode&&b.focusManager.hasFocus&&!m.line.mouseNear()&&(m.element=aa(m,!0))&&((m.trigger=w(m)||t(m)||O(m))&&!r(m,m.trigger.upper||m.trigger.lower)?m.line.attach().place():(m.trigger=null,m.line.detach()),p=!1)},30)}}),l.attachListener(v,"scroll",function(){"wysiwyg"==b.mode&&(m.line.detach(),K.webkit&&(m.hiddenMode=1,clearTimeout(q),
+q=setTimeout(function(){m.mouseDown||(m.hiddenMode=0)},50)))}),l.attachListener(H?n:v,"mousedown",function(){"wysiwyg"==b.mode&&(m.line.detach(),m.hiddenMode=1,m.mouseDown=1)}),l.attachListener(H?n:v,"mouseup",function(){m.hiddenMode=0;m.mouseDown=0}),b.addCommand("accessPreviousSpace",e(m)),b.addCommand("accessNextSpace",e(m,!0)),b.setKeystroke([[f.magicline_keystrokePrevious,"accessPreviousSpace"],[f.magicline_keystrokeNext,"accessNextSpace"]]),b.on("loadSnapshot",function(){var a,d,c,e;for(e in{p:1,
+br:1,div:1})for(a=b.document.getElementsByTag(e),c=a.count();c--;)if((d=a.getItem(c)).data("cke-magicline-hot")){m.hotNode=d;m.lastCmdDirection="true"===d.data("cke-magicline-dir")?!0:!1;return}}),b._.magiclineBackdoor={accessFocusSpace:d,boxTrigger:h,isLine:c,getAscendantTrigger:g,getNonEmptyNeighbour:a,getSize:z,that:m,triggerEdge:t,triggerEditable:w,triggerExpand:O})},this)}});var B=CKEDITOR.tools.extend,G=CKEDITOR.dom.element,F=G.createFromHtml,K=CKEDITOR.env,H=CKEDITOR.env.ie&&9>CKEDITOR.env.version,
+E=CKEDITOR.dtd,N={},J=128,L=64,D=32,I=16,P=4,M=2,Y=1,R=" ",W=E.$listItem,ea=E.$tableContent,V=B({},E.$nonEditable,E.$empty),S=E.$block,X=100,ba="width:0px;height:0px;padding:0px;margin:0px;display:block;z-index:9999;color:#fff;position:absolute;font-size: 0px;line-height:0px;",Z=ba+"border-color:transparent;display:block;border-style:solid;",da="\x3cspan\x3e"+R+"\x3c/span\x3e";N[CKEDITOR.ENTER_BR]="br";N[CKEDITOR.ENTER_P]="p";N[CKEDITOR.ENTER_DIV]="div";h.prototype={set:function(a,b,d){this.properties=
+a+b+(d||Y);return this},is:function(a){return(this.properties&a)==a}};var aa=function(){function a(b,d){var c=b.$.elementFromPoint(d.x,d.y);return c&&c.nodeType?new CKEDITOR.dom.element(c):null}return function(b,d,e){if(!b.mouse)return null;var f=b.doc,g=b.line.wrap;e=e||b.mouse;var h=a(f,e);d&&c(b,h)&&(g.hide(),h=a(f,e),g.show());return!h||h.type!=CKEDITOR.NODE_ELEMENT||!h.$||K.ie&&9>K.version&&!b.boundary.equals(h)&&!b.boundary.contains(h)?null:h}}(),Q=CKEDITOR.dom.walker.whitespaces(),T=CKEDITOR.dom.walker.nodeType(CKEDITOR.NODE_COMMENT),
+O=function(){function a(c){var e=c.element,g,h,k;if(!n(e)||e.contains(c.editable)||e.isReadOnly())return null;k=A(c,function(a,b){return!b.equals(a)},function(a,b){return aa(a,!0,b)},e);g=k.upper;h=k.lower;if(b(c,g,h))return k.set(D,8);if(g&&e.contains(g))for(;!g.getParent().equals(e);)g=g.getParent();else g=e.getFirst(function(a){return d(c,a)});if(h&&e.contains(h))for(;!h.getParent().equals(e);)h=h.getParent();else h=e.getLast(function(a){return d(c,a)});if(!g||!h)return null;y(c,g);y(c,h);if(!m(c.mouse.y,
+g.size.top,h.size.bottom))return null;for(var e=Number.MAX_VALUE,l,r,q,t;h&&!h.equals(g)&&(r=g.getNext(c.isRelevant));)l=Math.abs(f(c,g,r)-c.mouse.y),l<e&&(e=l,q=g,t=r),g=r,y(c,g);if(!q||!t||!m(c.mouse.y,q.size.top,t.size.bottom))return null;k.upper=q;k.lower=t;return k.set(D,8)}function d(a,b){return!(b&&b.type==CKEDITOR.NODE_TEXT||T(b)||v(b)||c(a,b)||b.type==CKEDITOR.NODE_ELEMENT&&b.$&&b.is("br"))}return function(d){var c=a(d),e;if(e=c){e=c.upper;var f=c.lower;e=!e||!f||v(f)||v(e)||f.equals(e)||
+e.equals(f)||f.contains(e)||e.contains(f)?!1:p(d,e)&&p(d,f)&&b(d,e,f)?!0:!1}return e?c:null}}(),U=["top","left","right","bottom"]})();CKEDITOR.config.magicline_keystrokePrevious=CKEDITOR.CTRL+CKEDITOR.SHIFT+51;CKEDITOR.config.magicline_keystrokeNext=CKEDITOR.CTRL+CKEDITOR.SHIFT+52;(function(){function b(a){if(!a||a.type!=CKEDITOR.NODE_ELEMENT||"form"!=a.getName())return[];for(var b=[],f=["style","className"],d=0;d<f.length;d++){var e=a.$.elements.namedItem(f[d]);e&&(e=new CKEDITOR.dom.element(e),
 b.push([e,e.nextSibling]),e.remove())}return b}function h(a,b){if(a&&a.type==CKEDITOR.NODE_ELEMENT&&"form"==a.getName()&&0<b.length)for(var f=b.length-1;0<=f;f--){var d=b[f][0],e=b[f][1];e?d.insertBefore(e):d.appendTo(a)}}function g(a,f){var g=b(a),d={},e=a.$;f||(d["class"]=e.className||"",e.className="");d.inline=e.style.cssText||"";f||(e.style.cssText="position: static; overflow: visible");h(g);return d}function f(a,f){var g=b(a),d=a.$;"class"in f&&(d.className=f["class"]);"inline"in f&&(d.style.cssText=
-f.inline);h(g)}function a(a){if(!a.editable().isInline()){var b=CKEDITOR.instances,f;for(f in b){var d=b[f];"wysiwyg"!=d.mode||d.readOnly||(d=d.document.getBody(),d.setAttribute("contentEditable",!1),d.setAttribute("contentEditable",!0))}a.editable().hasFocus&&(a.toolbox.focus(),a.focus())}}CKEDITOR.plugins.add("maximize",{init:function(b){function h(){var a=e.getViewPaneSize();b.resize(a.width,a.height,null,!0)}if(b.elementMode!=CKEDITOR.ELEMENT_MODE_INLINE){var l=b.lang,d=CKEDITOR.document,e=d.getWindow(),
-c,n,w,z=CKEDITOR.TRISTATE_OFF;b.addCommand("maximize",{modes:{wysiwyg:!CKEDITOR.env.iOS,source:!CKEDITOR.env.iOS},readOnly:1,editorFocus:!1,exec:function(){var r=b.container.getFirst(function(a){return a.type==CKEDITOR.NODE_ELEMENT&&a.hasClass("cke_inner")}),p=b.ui.space("contents");if("wysiwyg"==b.mode){var q=b.getSelection();c=q&&q.getRanges();n=e.getScrollPosition()}else{var u=b.editable().$;c=!CKEDITOR.env.ie&&[u.selectionStart,u.selectionEnd];n=[u.scrollLeft,u.scrollTop]}if(this.state==CKEDITOR.TRISTATE_OFF){e.on("resize",
-h);w=e.getScrollPosition();for(q=b.container;q=q.getParent();)q.setCustomData("maximize_saved_styles",g(q)),q.setStyle("z-index",b.config.baseFloatZIndex-5);p.setCustomData("maximize_saved_styles",g(p,!0));r.setCustomData("maximize_saved_styles",g(r,!0));p={overflow:CKEDITOR.env.webkit?"":"hidden",width:0,height:0};d.getDocumentElement().setStyles(p);!CKEDITOR.env.gecko&&d.getDocumentElement().setStyle("position","fixed");CKEDITOR.env.gecko&&CKEDITOR.env.quirks||d.getBody().setStyles(p);CKEDITOR.env.ie?
-setTimeout(function(){e.$.scrollTo(0,0)},0):e.$.scrollTo(0,0);r.setStyle("position",CKEDITOR.env.gecko&&CKEDITOR.env.quirks?"fixed":"absolute");r.$.offsetLeft;r.setStyles({"z-index":b.config.baseFloatZIndex-5,left:"0px",top:"0px"});r.addClass("cke_maximized");h();p=r.getDocumentPosition();r.setStyles({left:-1*p.x+"px",top:-1*p.y+"px"});CKEDITOR.env.gecko&&a(b)}else if(this.state==CKEDITOR.TRISTATE_ON){e.removeListener("resize",h);for(var q=[p,r],t=0;t<q.length;t++)f(q[t],q[t].getCustomData("maximize_saved_styles")),
-q[t].removeCustomData("maximize_saved_styles");for(q=b.container;q=q.getParent();)f(q,q.getCustomData("maximize_saved_styles")),q.removeCustomData("maximize_saved_styles");CKEDITOR.env.ie?setTimeout(function(){e.$.scrollTo(w.x,w.y)},0):e.$.scrollTo(w.x,w.y);r.removeClass("cke_maximized");CKEDITOR.env.webkit&&(r.setStyle("display","inline"),setTimeout(function(){r.setStyle("display","block")},0));b.fire("resize",{outerHeight:b.container.$.offsetHeight,contentsHeight:p.$.offsetHeight,outerWidth:b.container.$.offsetWidth})}this.toggleState();
-if(q=this.uiItems[0])p=this.state==CKEDITOR.TRISTATE_OFF?l.maximize.maximize:l.maximize.minimize,q=CKEDITOR.document.getById(q._.id),q.getChild(1).setHtml(p),q.setAttribute("title",p),q.setAttribute("href",'javascript:void("'+p+'");');"wysiwyg"==b.mode?c?(CKEDITOR.env.gecko&&a(b),b.getSelection().selectRanges(c),(u=b.getSelection().getStartElement())&&u.scrollIntoView(!0)):e.$.scrollTo(n.x,n.y):(c&&(u.selectionStart=c[0],u.selectionEnd=c[1]),u.scrollLeft=n[0],u.scrollTop=n[1]);c=n=null;z=this.state;
-b.fire("maximize",this.state)},canUndo:!1});b.ui.addButton&&b.ui.addButton("Maximize",{label:l.maximize.maximize,command:"maximize",toolbar:"tools,10"});b.on("mode",function(){var a=b.getCommand("maximize");a.setState(a.state==CKEDITOR.TRISTATE_DISABLED?CKEDITOR.TRISTATE_DISABLED:z)},null,null,100)}}})})();(function(){function b(a,b){return CKEDITOR.tools.array.filter(a,function(a){return a.canHandle(b)}).sort(function(a,b){return a.priority===b.priority?0:a.priority-b.priority})}function h(a,b){var d=
+f.inline);h(g)}function a(a){if(!a.editable().isInline()){var b=CKEDITOR.instances,f;for(f in b){var d=b[f];"wysiwyg"!=d.mode||d.readOnly||(d=d.document.getBody(),d.setAttribute("contentEditable",!1),d.setAttribute("contentEditable",!0))}a.editable().hasFocus&&(a.toolbox.focus(),a.focus())}}CKEDITOR.plugins.add("maximize",{init:function(b){function h(){var a=e.getViewPaneSize();b.resize(a.width,a.height,null,!0)}if(b.elementMode!=CKEDITOR.ELEMENT_MODE_INLINE){var k=b.lang,d=CKEDITOR.document,e=d.getWindow(),
+c,n,v,x=CKEDITOR.TRISTATE_OFF;b.addCommand("maximize",{modes:{wysiwyg:!CKEDITOR.env.iOS,source:!CKEDITOR.env.iOS},readOnly:1,editorFocus:!1,exec:function(){var p=b.container.getFirst(function(a){return a.type==CKEDITOR.NODE_ELEMENT&&a.hasClass("cke_inner")}),r=b.ui.space("contents");if("wysiwyg"==b.mode){var q=b.getSelection();c=q&&q.getRanges();n=e.getScrollPosition()}else{var w=b.editable().$;c=!CKEDITOR.env.ie&&[w.selectionStart,w.selectionEnd];n=[w.scrollLeft,w.scrollTop]}if(this.state==CKEDITOR.TRISTATE_OFF){e.on("resize",
+h);v=e.getScrollPosition();for(q=b.container;q=q.getParent();)q.setCustomData("maximize_saved_styles",g(q)),q.setStyle("z-index",b.config.baseFloatZIndex-5);r.setCustomData("maximize_saved_styles",g(r,!0));p.setCustomData("maximize_saved_styles",g(p,!0));r={overflow:CKEDITOR.env.webkit?"":"hidden",width:0,height:0};d.getDocumentElement().setStyles(r);!CKEDITOR.env.gecko&&d.getDocumentElement().setStyle("position","fixed");CKEDITOR.env.gecko&&CKEDITOR.env.quirks||d.getBody().setStyles(r);CKEDITOR.env.ie?
+setTimeout(function(){e.$.scrollTo(0,0)},0):e.$.scrollTo(0,0);p.setStyle("position",CKEDITOR.env.gecko&&CKEDITOR.env.quirks?"fixed":"absolute");p.$.offsetLeft;p.setStyles({"z-index":b.config.baseFloatZIndex-5,left:"0px",top:"0px"});p.addClass("cke_maximized");h();r=p.getDocumentPosition();p.setStyles({left:-1*r.x+"px",top:-1*r.y+"px"});CKEDITOR.env.gecko&&a(b)}else if(this.state==CKEDITOR.TRISTATE_ON){e.removeListener("resize",h);for(var q=[r,p],t=0;t<q.length;t++)f(q[t],q[t].getCustomData("maximize_saved_styles")),
+q[t].removeCustomData("maximize_saved_styles");for(q=b.container;q=q.getParent();)f(q,q.getCustomData("maximize_saved_styles")),q.removeCustomData("maximize_saved_styles");CKEDITOR.env.ie?setTimeout(function(){e.$.scrollTo(v.x,v.y)},0):e.$.scrollTo(v.x,v.y);p.removeClass("cke_maximized");CKEDITOR.env.webkit&&(p.setStyle("display","inline"),setTimeout(function(){p.setStyle("display","block")},0));b.fire("resize",{outerHeight:b.container.$.offsetHeight,contentsHeight:r.$.offsetHeight,outerWidth:b.container.$.offsetWidth})}this.toggleState();
+if(q=this.uiItems[0])r=this.state==CKEDITOR.TRISTATE_OFF?k.maximize.maximize:k.maximize.minimize,q=CKEDITOR.document.getById(q._.id),q.getChild(1).setHtml(r),q.setAttribute("title",r),q.setAttribute("href",'javascript:void("'+r+'");');"wysiwyg"==b.mode?c?(CKEDITOR.env.gecko&&a(b),b.getSelection().selectRanges(c),(w=b.getSelection().getStartElement())&&w.scrollIntoView(!0)):e.$.scrollTo(n.x,n.y):(c&&(w.selectionStart=c[0],w.selectionEnd=c[1]),w.scrollLeft=n[0],w.scrollTop=n[1]);c=n=null;x=this.state;
+b.fire("maximize",this.state)},canUndo:!1});b.ui.addButton&&b.ui.addButton("Maximize",{label:k.maximize.maximize,command:"maximize",toolbar:"tools,10"});b.on("mode",function(){var a=b.getCommand("maximize");a.setState(a.state==CKEDITOR.TRISTATE_DISABLED?CKEDITOR.TRISTATE_DISABLED:x)},null,null,100)}}})})();(function(){function b(a,b){return CKEDITOR.tools.array.filter(a,function(a){return a.canHandle(b)}).sort(function(a,b){return a.priority===b.priority?0:a.priority-b.priority})}function h(a,b){var d=
 a.shift();d&&d.handle(b,function(){h(a,b)})}function g(a){var b=CKEDITOR.tools.array.reduce(a,function(a,b){return CKEDITOR.tools.array.isArray(b.filters)?a.concat(b.filters):a},[]);return CKEDITOR.tools.array.filter(b,function(a,e){return CKEDITOR.tools.array.indexOf(b,a)===e})}function f(b,f){var d=0,e,c;if(!CKEDITOR.tools.array.isArray(b)||0===b.length)return!0;e=CKEDITOR.tools.array.filter(b,function(b){return-1===CKEDITOR.tools.array.indexOf(a,b)});if(0<e.length)for(c=0;c<e.length;c++)(function(b){CKEDITOR.scriptLoader.queue(b,
-function(c){c&&a.push(b);++d===e.length&&f()})})(e[c]);return 0===e.length}var a=[],m=CKEDITOR.tools.createClass({$:function(){this.handlers=[]},proto:{register:function(a){"number"!==typeof a.priority&&(a.priority=10);this.handlers.push(a)},addPasteListener:function(a){a.on("paste",function(l){var d=b(this.handlers,l),e;if(0!==d.length){e=g(d);e=f(e,function(){return a.fire("paste",l.data)});if(!e)return l.cancel();h(d,l)}},this,null,3)}}});CKEDITOR.plugins.add("pastetools",{requires:"clipboard",
+function(c){c&&a.push(b);++d===e.length&&f()})})(e[c]);return 0===e.length}var a=[],m=CKEDITOR.tools.createClass({$:function(){this.handlers=[]},proto:{register:function(a){"number"!==typeof a.priority&&(a.priority=10);this.handlers.push(a)},addPasteListener:function(a){a.on("paste",function(k){var d=b(this.handlers,k),e;if(0!==d.length){e=g(d);e=f(e,function(){return a.fire("paste",k.data)});if(!e)return k.cancel();h(d,k)}},this,null,3)}}});CKEDITOR.plugins.add("pastetools",{requires:"clipboard",
 beforeInit:function(a){a.pasteTools=new m;a.pasteTools.addPasteListener(a)}});CKEDITOR.plugins.pastetools={filters:{},loadFilters:f,createFilter:function(a){var b=CKEDITOR.tools.array.isArray(a.rules)?a.rules:[a.rules],d=a.additionalTransforms;return function(a,c){var f=new CKEDITOR.htmlParser.basicWriter,g=new CKEDITOR.htmlParser.filter,h;d&&(a=d(a,c));CKEDITOR.tools.array.forEach(b,function(b){g.addRules(b(a,c,g))});h=CKEDITOR.htmlParser.fragment.fromHtml(a);g.applyTo(h);h.writeHtml(f);return f.getHtml()}},
 getClipboardData:function(a,b){var d;return CKEDITOR.plugins.clipboard.isCustomDataTypesSupported||"text/html"===b?(d=a.dataTransfer.getData(b,!0))||"text/html"!==b?d:a.dataValue:null},getConfigValue:function(a,b){if(a&&a.config){var d=CKEDITOR.tools,e=a.config,c=d.object.keys(e),f=["pasteTools_"+b,"pasteFromWord_"+b,"pasteFromWord"+d.capitalize(b,!0)],f=d.array.find(f,function(a){return-1!==d.array.indexOf(c,a)});return e[f]}}};CKEDITOR.pasteFilters={}})();(function(){CKEDITOR.plugins.add("pastefromgdocs",
 {requires:"pastetools",init:function(b){var h=CKEDITOR.plugins.getPath("pastetools"),g=this.path;b.pasteTools.register({filters:[CKEDITOR.getUrl(h+"filter/common.js"),CKEDITOR.getUrl(g+"filter/default.js")],canHandle:function(b){return/id=(\"|\')?docs\-internal\-guid\-/.test(b.data.dataValue)},handle:function(f,a){var g=f.data,h=CKEDITOR.plugins.pastetools.getClipboardData(g,"text/html");g.dontFilter=!0;g.dataValue=CKEDITOR.pasteFilters.gdocs(h,b);!0===b.config.forcePasteAsPlainText&&(g.type="text");
 a()}})}})})();(function(){CKEDITOR.plugins.add("pastefromword",{requires:"pastetools",init:function(b){function h(a){var b=CKEDITOR.plugins.pastefromword&&CKEDITOR.plugins.pastefromword.images,d,e=[];if(b&&a.editor.filter.check("img[src]")&&(d=b.extractTagsFromHtml(a.data.dataValue),0!==d.length&&(b=b.extractFromRtf(a.data.dataTransfer["text/rtf"]),0!==b.length&&(CKEDITOR.tools.array.forEach(b,function(a){e.push(a.type?"data:"+a.type+";base64,"+CKEDITOR.tools.convertBytesToBase64(CKEDITOR.tools.convertHexStringToBytes(a.hex)):
 null)},this),d.length===e.length))))for(b=0;b<d.length;b++)0===d[b].indexOf("file://")&&e[b]&&(a.data.dataValue=a.data.dataValue.replace(d[b],e[b]))}var g=0,f=CKEDITOR.plugins.getPath("pastetools"),a=this.path,m=void 0===b.config.pasteFromWord_inlineImages?!0:b.config.pasteFromWord_inlineImages,f=[CKEDITOR.getUrl(f+"filter/common.js"),CKEDITOR.getUrl(a+"filter/default.js")];b.addCommand("pastefromword",{canUndo:!1,async:!0,exec:function(a,b){g=1;a.execCommand("paste",{type:"html",notification:b&&
-"undefined"!==typeof b.notification?b.notification:!0})}});CKEDITOR.plugins.clipboard.addPasteButton(b,"PasteFromWord",{label:b.lang.pastefromword.toolbar,command:"pastefromword",toolbar:"clipboard,50"});b.pasteTools.register({filters:b.config.pasteFromWordCleanupFile?[b.config.pasteFromWordCleanupFile]:f,canHandle:function(a){a=a.data.dataValue;var b=/(class=\"?Mso|style=(?:\"|\')[^\"]*?\bmso\-|w:WordDocument|<o:\w+>|<\/font>)/,b=/<meta\s*name=(?:\"|\')?generator(?:\"|\')?\s*content=(?:\"|\')?microsoft/gi.test(a)||
+"undefined"!==typeof b.notification?b.notification:!0})}});CKEDITOR.plugins.clipboard.addPasteButton(b,"PasteFromWord",{label:b.lang.pastefromword.toolbar,command:"pastefromword",toolbar:"clipboard,50"});b.pasteTools.register({filters:b.config.pasteFromWordCleanupFile?[b.config.pasteFromWordCleanupFile]:f,canHandle:function(a){a=CKEDITOR.plugins.pastetools.getClipboardData(a.data,"text/html");var b=/(class=\"?Mso|style=(?:\"|\')[^\"]*?\bmso\-|w:WordDocument|<o:\w+>|<\/font>)/,b=/<meta\s*name=(?:\"|\')?generator(?:\"|\')?\s*content=(?:\"|\')?microsoft/gi.test(a)||
 b.test(a);return a&&(g||b)},handle:function(a,f){var d=a.data,e=CKEDITOR.plugins.pastetools.getClipboardData(d,"text/html"),c=CKEDITOR.plugins.pastetools.getClipboardData(d,"text/rtf"),e={dataValue:e,dataTransfer:{"text/rtf":c}};if(!1!==b.fire("pasteFromWord",e)||g){d.dontFilter=!0;if(g||!b.config.pasteFromWordPromptCleanup||confirm(b.lang.pastefromword.confirmCleanup))e.dataValue=CKEDITOR.cleanWord(e.dataValue,b),b.fire("afterPasteFromWord",e),d.dataValue=e.dataValue,!0===b.config.forcePasteAsPlainText?
 d.type="text":CKEDITOR.plugins.clipboard.isCustomCopyCutSupported||"allow-word"!==b.config.forcePasteAsPlainText||(d.type="html");g=0;f()}}});if(CKEDITOR.plugins.clipboard.isCustomDataTypesSupported&&m)b.on("afterPasteFromWord",h)}})})();(function(){var b={canUndo:!1,async:!0,exec:function(b,g){var f=b.lang,a=CKEDITOR.tools.keystrokeToString(f.common.keyboard,b.getCommandKeystroke(CKEDITOR.env.ie?b.commands.paste:this)),m=g&&"undefined"!==typeof g.notification?g.notification:!g||!g.from||"keystrokeHandler"===
 g.from&&CKEDITOR.env.ie,f=m&&"string"===typeof m?m:f.pastetext.pasteNotification.replace(/%1/,'\x3ckbd aria-label\x3d"'+a.aria+'"\x3e'+a.display+"\x3c/kbd\x3e");b.execCommand("paste",{type:"text",notification:m?f:!1})}};CKEDITOR.plugins.add("pastetext",{requires:"clipboard",init:function(h){var g=CKEDITOR.env.safari?CKEDITOR.CTRL+CKEDITOR.ALT+CKEDITOR.SHIFT+86:CKEDITOR.CTRL+CKEDITOR.SHIFT+86;h.addCommand("pastetext",b);h.setKeystroke(g,"pastetext");CKEDITOR.plugins.clipboard.addPasteButton(h,"PasteText",
 {label:h.lang.pastetext.button,command:"pastetext",toolbar:"clipboard,40"});if(h.config.forcePasteAsPlainText)h.on("beforePaste",function(b){"html"!=b.data.type&&(b.data.type="text")});h.on("pasteState",function(b){h.getCommand("pastetext").setState(b.data)})}})})();CKEDITOR.plugins.add("removeformat",{init:function(b){b.addCommand("removeFormat",CKEDITOR.plugins.removeformat.commands.removeformat);b.ui.addButton&&b.ui.addButton("RemoveFormat",{label:b.lang.removeformat.toolbar,command:"removeFormat",
-toolbar:"cleanup,10"})}});CKEDITOR.plugins.removeformat={commands:{removeformat:{exec:function(b){for(var h=b._.removeFormatRegex||(b._.removeFormatRegex=new RegExp("^(?:"+b.config.removeFormatTags.replace(/,/g,"|")+")$","i")),g=b._.removeAttributes||(b._.removeAttributes=b.config.removeFormatAttributes.split(",")),f=CKEDITOR.plugins.removeformat.filter,a=b.getSelection().getRanges().createIterator(),m=function(a){return a.type==CKEDITOR.NODE_ELEMENT},k=[],l;l=a.getNextRange();){var d=l.createBookmark();
-l=b.createRange();l.setStartBefore(d.startNode);d.endNode&&l.setEndAfter(d.endNode);l.collapsed||l.enlarge(CKEDITOR.ENLARGE_ELEMENT);var e=l.createBookmark(),c=e.startNode,n=e.endNode,w=function(a){for(var c=b.elementPath(a),d=c.elements,e=1,g;(g=d[e])&&!g.equals(c.block)&&!g.equals(c.blockLimit);e++)h.test(g.getName())&&f(b,g)&&a.breakParent(g)};w(c);if(n)for(w(n),c=c.getNextSourceNode(!0,CKEDITOR.NODE_ELEMENT);c&&!c.equals(n);)if(c.isReadOnly()){if(c.getPosition(n)&CKEDITOR.POSITION_CONTAINS)break;
-c=c.getNext(m)}else w=c.getNextSourceNode(!1,CKEDITOR.NODE_ELEMENT),"img"==c.getName()&&c.data("cke-realelement")||c.hasAttribute("data-cke-bookmark")||!f(b,c)||(h.test(c.getName())?c.remove(1):(c.removeAttributes(g),b.fire("removeFormatCleanup",c))),c=w;e.startNode.remove();e.endNode&&e.endNode.remove();l.moveToBookmark(d);k.push(l)}b.forceNextSelectionCheck();b.getSelection().selectRanges(k)}}},filter:function(b,h){for(var g=b._.removeFormatFilters||[],f=0;f<g.length;f++)if(!1===g[f](h))return!1;
-return!0}};CKEDITOR.editor.prototype.addRemoveFormatFilter=function(b){this._.removeFormatFilters||(this._.removeFormatFilters=[]);this._.removeFormatFilters.push(b)};CKEDITOR.config.removeFormatTags="b,big,cite,code,del,dfn,em,font,i,ins,kbd,q,s,samp,small,span,strike,strong,sub,sup,tt,u,var";CKEDITOR.config.removeFormatAttributes="class,style,lang,width,height,align,hspace,valign";(function(){function b(b,f,a){var m,k;if(a="string"==typeof a?CKEDITOR.document.getById(a):new CKEDITOR.dom.element(a))if(m=
-b.fire("uiSpace",{space:f,html:""}).html)b.on("uiSpace",function(a){a.data.space==f&&a.cancel()},null,null,1),k=a.append(CKEDITOR.dom.element.createFromHtml(h.output({id:b.id,name:b.name,langDir:b.lang.dir,langCode:b.langCode,space:f,spaceId:b.ui.spaceId(f),content:m}))),a.getCustomData("cke_hasshared")?k.hide():a.setCustomData("cke_hasshared",1),k.unselectable(),k.on("mousedown",function(a){a=a.data;a.getTarget().hasAscendant("a",1)||a.preventDefault()}),b.focusManager.add(k,1),b.on("focus",function(){for(var b=
-0,d,e=a.getChildren();d=e.getItem(b);b++)d.type==CKEDITOR.NODE_ELEMENT&&!d.equals(k)&&d.hasClass("cke_shared")&&d.hide();k.show()}),b.on("destroy",function(){k.remove()})}var h=CKEDITOR.addTemplate("sharedcontainer",'\x3cdiv id\x3d"cke_{name}" class\x3d"cke {id} cke_reset_all cke_chrome cke_editor_{name} cke_shared cke_detached cke_{langDir} '+CKEDITOR.env.cssClass+'" dir\x3d"{langDir}" title\x3d"'+(CKEDITOR.env.gecko?" ":"")+'" lang\x3d"{langCode}" role\x3d"presentation"\x3e\x3cdiv class\x3d"cke_inner"\x3e\x3cdiv id\x3d"{spaceId}" class\x3d"cke_{space}" role\x3d"presentation"\x3e{content}\x3c/div\x3e\x3c/div\x3e\x3c/div\x3e');
+toolbar:"cleanup,10"})}});CKEDITOR.plugins.removeformat={commands:{removeformat:{exec:function(b){for(var h=b._.removeFormatRegex||(b._.removeFormatRegex=new RegExp("^(?:"+b.config.removeFormatTags.replace(/,/g,"|")+")$","i")),g=b._.removeAttributes||(b._.removeAttributes=b.config.removeFormatAttributes.split(",")),f=CKEDITOR.plugins.removeformat.filter,a=b.getSelection().getRanges().createIterator(),m=function(a){return a.type==CKEDITOR.NODE_ELEMENT},l=[],k;k=a.getNextRange();){var d=k.createBookmark();
+k=b.createRange();k.setStartBefore(d.startNode);d.endNode&&k.setEndAfter(d.endNode);k.collapsed||k.enlarge(CKEDITOR.ENLARGE_ELEMENT);var e=k.createBookmark(),c=e.startNode,n=e.endNode,v=function(a){for(var d=b.elementPath(a),c=d.elements,e=1,g;(g=c[e])&&!g.equals(d.block)&&!g.equals(d.blockLimit);e++)h.test(g.getName())&&f(b,g)&&a.breakParent(g)};v(c);if(n)for(v(n),c=c.getNextSourceNode(!0,CKEDITOR.NODE_ELEMENT);c&&!c.equals(n);)if(c.isReadOnly()){if(c.getPosition(n)&CKEDITOR.POSITION_CONTAINS)break;
+c=c.getNext(m)}else v=c.getNextSourceNode(!1,CKEDITOR.NODE_ELEMENT),"img"==c.getName()&&c.data("cke-realelement")||c.hasAttribute("data-cke-bookmark")||!f(b,c)||(h.test(c.getName())?c.remove(1):(c.removeAttributes(g),b.fire("removeFormatCleanup",c))),c=v;e.startNode.remove();e.endNode&&e.endNode.remove();k.moveToBookmark(d);l.push(k)}b.forceNextSelectionCheck();b.getSelection().selectRanges(l)}}},filter:function(b,h){for(var g=b._.removeFormatFilters||[],f=0;f<g.length;f++)if(!1===g[f](h))return!1;
+return!0}};CKEDITOR.editor.prototype.addRemoveFormatFilter=function(b){this._.removeFormatFilters||(this._.removeFormatFilters=[]);this._.removeFormatFilters.push(b)};CKEDITOR.config.removeFormatTags="b,big,cite,code,del,dfn,em,font,i,ins,kbd,q,s,samp,small,span,strike,strong,sub,sup,tt,u,var";CKEDITOR.config.removeFormatAttributes="class,style,lang,width,height,align,hspace,valign";(function(){function b(b,f,a){var m,l;if(a="string"==typeof a?CKEDITOR.document.getById(a):new CKEDITOR.dom.element(a))if(m=
+b.fire("uiSpace",{space:f,html:""}).html)b.on("uiSpace",function(a){a.data.space==f&&a.cancel()},null,null,1),l=a.append(CKEDITOR.dom.element.createFromHtml(h.output({id:b.id,name:b.name,langDir:b.lang.dir,langCode:b.langCode,space:f,spaceId:b.ui.spaceId(f),content:m}))),a.getCustomData("cke_hasshared")?l.hide():a.setCustomData("cke_hasshared",1),l.unselectable(),l.on("mousedown",function(a){a=a.data;a.getTarget().hasAscendant("a",1)||a.preventDefault()}),b.focusManager.add(l,1),b.on("focus",function(){for(var b=
+0,d,e=a.getChildren();d=e.getItem(b);b++)d.type==CKEDITOR.NODE_ELEMENT&&!d.equals(l)&&d.hasClass("cke_shared")&&d.hide();l.show()}),b.on("destroy",function(){l.remove()})}var h=CKEDITOR.addTemplate("sharedcontainer",'\x3cdiv id\x3d"cke_{name}" class\x3d"cke {id} cke_reset_all cke_chrome cke_editor_{name} cke_shared cke_detached cke_{langDir} '+CKEDITOR.env.cssClass+'" dir\x3d"{langDir}" title\x3d"'+(CKEDITOR.env.gecko?" ":"")+'" lang\x3d"{langCode}" role\x3d"presentation"\x3e\x3cdiv class\x3d"cke_inner"\x3e\x3cdiv id\x3d"{spaceId}" class\x3d"cke_{space}" role\x3d"presentation"\x3e{content}\x3c/div\x3e\x3c/div\x3e\x3c/div\x3e');
 CKEDITOR.plugins.add("sharedspace",{init:function(g){g.on("loaded",function(){var f=g.config.sharedSpaces;if(f)for(var a in f)b(g,a,f[a])},null,null,9)}})})();(function(){var b={readOnly:1,preserveState:!0,editorFocus:!1,exec:function(b){this.toggleState();this.refresh(b)},refresh:function(b){if(b.document){var g=this.state!=CKEDITOR.TRISTATE_ON||b.elementMode==CKEDITOR.ELEMENT_MODE_INLINE&&!b.focusManager.hasFocus?"removeClass":"attachClass";b.editable()[g]("cke_show_blocks")}}};CKEDITOR.plugins.add("showblocks",
-{onLoad:function(){var b="p div pre address blockquote h1 h2 h3 h4 h5 h6".split(" "),g,f,a,m,k=CKEDITOR.getUrl(this.path),l=!(CKEDITOR.env.ie&&9>CKEDITOR.env.version),d=l?":not([contenteditable\x3dfalse]):not(.cke_show_blocks_off)":"",e,c;for(g=f=a=m="";e=b.pop();)c=b.length?",":"",g+=".cke_show_blocks "+e+d+c,a+=".cke_show_blocks.cke_contents_ltr "+e+d+c,m+=".cke_show_blocks.cke_contents_rtl "+e+d+c,f+=".cke_show_blocks "+e+d+"{background-image:url("+CKEDITOR.getUrl(k+"images/block_"+e+".png")+")}";
-CKEDITOR.addCss((g+"{background-repeat:no-repeat;border:1px dotted gray;padding-top:8px}").concat(f,a+"{background-position:top left;padding-left:8px}",m+"{background-position:top right;padding-right:8px}"));l||CKEDITOR.addCss(".cke_show_blocks [contenteditable\x3dfalse],.cke_show_blocks .cke_show_blocks_off{border:none;padding-top:0;background-image:none}.cke_show_blocks.cke_contents_rtl [contenteditable\x3dfalse],.cke_show_blocks.cke_contents_rtl .cke_show_blocks_off{padding-right:0}.cke_show_blocks.cke_contents_ltr [contenteditable\x3dfalse],.cke_show_blocks.cke_contents_ltr .cke_show_blocks_off{padding-left:0}")},
+{onLoad:function(){var b="p div pre address blockquote h1 h2 h3 h4 h5 h6".split(" "),g,f,a,m,l=CKEDITOR.getUrl(this.path),k=!(CKEDITOR.env.ie&&9>CKEDITOR.env.version),d=k?":not([contenteditable\x3dfalse]):not(.cke_show_blocks_off)":"",e,c;for(g=f=a=m="";e=b.pop();)c=b.length?",":"",g+=".cke_show_blocks "+e+d+c,a+=".cke_show_blocks.cke_contents_ltr "+e+d+c,m+=".cke_show_blocks.cke_contents_rtl "+e+d+c,f+=".cke_show_blocks "+e+d+"{background-image:url("+CKEDITOR.getUrl(l+"images/block_"+e+".png")+")}";
+CKEDITOR.addCss((g+"{background-repeat:no-repeat;border:1px dotted gray;padding-top:8px}").concat(f,a+"{background-position:top left;padding-left:8px}",m+"{background-position:top right;padding-right:8px}"));k||CKEDITOR.addCss(".cke_show_blocks [contenteditable\x3dfalse],.cke_show_blocks .cke_show_blocks_off{border:none;padding-top:0;background-image:none}.cke_show_blocks.cke_contents_rtl [contenteditable\x3dfalse],.cke_show_blocks.cke_contents_rtl .cke_show_blocks_off{padding-right:0}.cke_show_blocks.cke_contents_ltr [contenteditable\x3dfalse],.cke_show_blocks.cke_contents_ltr .cke_show_blocks_off{padding-left:0}")},
 init:function(h){function g(){f.refresh(h)}if(!h.blockless){var f=h.addCommand("showblocks",b);f.canUndo=!1;h.config.startupOutlineBlocks&&f.setState(CKEDITOR.TRISTATE_ON);h.ui.addButton&&h.ui.addButton("ShowBlocks",{label:h.lang.showblocks.toolbar,command:"showblocks",toolbar:"tools,20"});h.on("mode",function(){f.state!=CKEDITOR.TRISTATE_DISABLED&&f.refresh(h)});h.elementMode==CKEDITOR.ELEMENT_MODE_INLINE&&(h.on("focus",g),h.on("blur",g));h.on("contentDom",function(){f.state!=CKEDITOR.TRISTATE_DISABLED&&
 f.refresh(h)})}}})})();(function(){var b={preserveState:!0,editorFocus:!1,readOnly:1,exec:function(b){this.toggleState();this.refresh(b)},refresh:function(b){if(b.document){var g=this.state==CKEDITOR.TRISTATE_ON?"attachClass":"removeClass";b.editable()[g]("cke_show_borders")}}};CKEDITOR.plugins.add("showborders",{modes:{wysiwyg:1},onLoad:function(){var b;b=(CKEDITOR.env.ie6Compat?[".%1 table.%2,",".%1 table.%2 td, .%1 table.%2 th","{","border : #d3d3d3 1px dotted","}"]:".%1 table.%2,;.%1 table.%2 \x3e tr \x3e td, .%1 table.%2 \x3e tr \x3e th,;.%1 table.%2 \x3e tbody \x3e tr \x3e td, .%1 table.%2 \x3e tbody \x3e tr \x3e th,;.%1 table.%2 \x3e thead \x3e tr \x3e td, .%1 table.%2 \x3e thead \x3e tr \x3e th,;.%1 table.%2 \x3e tfoot \x3e tr \x3e td, .%1 table.%2 \x3e tfoot \x3e tr \x3e th;{;border : #d3d3d3 1px dotted;}".split(";")).join("").replace(/%2/g,
 "cke_show_border").replace(/%1/g,"cke_show_borders ");CKEDITOR.addCss(b)},init:function(h){var g=h.addCommand("showborders",b);g.canUndo=!1;!1!==h.config.startupShowBorders&&g.setState(CKEDITOR.TRISTATE_ON);h.on("mode",function(){g.state!=CKEDITOR.TRISTATE_DISABLED&&g.refresh(h)},null,null,100);h.on("contentDom",function(){g.state!=CKEDITOR.TRISTATE_DISABLED&&g.refresh(h)});h.on("removeFormatCleanup",function(b){b=b.data;h.getCommand("showborders").state==CKEDITOR.TRISTATE_ON&&b.is("table")&&(!b.hasAttribute("border")||
@@ -1096,93 +1097,92 @@ this.remove()}}})})();CKEDITOR.plugins.sourcearea={commands:{source:{modes:{wysi
 b.ui.addButton&&b.ui.addButton("Sourcedialog",{label:b.lang.sourcedialog.toolbar,command:"sourcedialog",toolbar:"mode,10"})}});CKEDITOR.plugins.add("specialchar",{availableLangs:{af:1,ar:1,az:1,bg:1,ca:1,cs:1,cy:1,da:1,de:1,"de-ch":1,el:1,en:1,"en-au":1,"en-ca":1,"en-gb":1,eo:1,es:1,"es-mx":1,et:1,eu:1,fa:1,fi:1,fr:1,"fr-ca":1,gl:1,he:1,hr:1,hu:1,id:1,it:1,ja:1,km:1,ko:1,ku:1,lt:1,lv:1,nb:1,nl:1,no:1,oc:1,pl:1,pt:1,"pt-br":1,ro:1,ru:1,si:1,sk:1,sl:1,sq:1,sr:1,"sr-latn":1,sv:1,th:1,tr:1,tt:1,ug:1,
 uk:1,vi:1,zh:1,"zh-cn":1},requires:"dialog",init:function(b){var h=this;CKEDITOR.dialog.add("specialchar",this.path+"dialogs/specialchar.js");b.addCommand("specialchar",{exec:function(){var g=b.langCode,g=h.availableLangs[g]?g:h.availableLangs[g.replace(/-.*/,"")]?g.replace(/-.*/,""):"en";CKEDITOR.scriptLoader.load(CKEDITOR.getUrl(h.path+"dialogs/lang/"+g+".js"),function(){CKEDITOR.tools.extend(b.lang.specialchar,h.langEntries[g]);b.openDialog("specialchar")})},modes:{wysiwyg:1},canUndo:!1});b.ui.addButton&&
 b.ui.addButton("SpecialChar",{label:b.lang.specialchar.toolbar,command:"specialchar",toolbar:"insert,50"})}});CKEDITOR.config.specialChars="! \x26quot; # $ % \x26amp; ' ( ) * + - . / 0 1 2 3 4 5 6 7 8 9 : ; \x26lt; \x3d \x26gt; ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~ \x26euro; \x26lsquo; \x26rsquo; \x26ldquo; \x26rdquo; \x26ndash; \x26mdash; \x26iexcl; \x26cent; \x26pound; \x26curren; \x26yen; \x26brvbar; \x26sect; \x26uml; \x26copy; \x26ordf; \x26laquo; \x26not; \x26reg; \x26macr; \x26deg; \x26sup2; \x26sup3; \x26acute; \x26micro; \x26para; \x26middot; \x26cedil; \x26sup1; \x26ordm; \x26raquo; \x26frac14; \x26frac12; \x26frac34; \x26iquest; \x26Agrave; \x26Aacute; \x26Acirc; \x26Atilde; \x26Auml; \x26Aring; \x26AElig; \x26Ccedil; \x26Egrave; \x26Eacute; \x26Ecirc; \x26Euml; \x26Igrave; \x26Iacute; \x26Icirc; \x26Iuml; \x26ETH; \x26Ntilde; \x26Ograve; \x26Oacute; \x26Ocirc; \x26Otilde; \x26Ouml; \x26times; \x26Oslash; \x26Ugrave; \x26Uacute; \x26Ucirc; \x26Uuml; \x26Yacute; \x26THORN; \x26szlig; \x26agrave; \x26aacute; \x26acirc; \x26atilde; \x26auml; \x26aring; \x26aelig; \x26ccedil; \x26egrave; \x26eacute; \x26ecirc; \x26euml; \x26igrave; \x26iacute; \x26icirc; \x26iuml; \x26eth; \x26ntilde; \x26ograve; \x26oacute; \x26ocirc; \x26otilde; \x26ouml; \x26divide; \x26oslash; \x26ugrave; \x26uacute; \x26ucirc; \x26uuml; \x26yacute; \x26thorn; \x26yuml; \x26OElig; \x26oelig; \x26#372; \x26#374 \x26#373 \x26#375; \x26sbquo; \x26#8219; \x26bdquo; \x26hellip; \x26trade; \x26#9658; \x26bull; \x26rarr; \x26rArr; \x26hArr; \x26diams; \x26asymp;".split(" ");
-(function(){CKEDITOR.plugins.add("stylescombo",{requires:"richcombo",init:function(b){var h=b.config,g=b.lang.stylescombo,f={},a=[],m=[];b.on("stylesSet",function(g){if(g=g.data.styles){for(var l,d,e,c=0,n=g.length;c<n;c++)(l=g[c],b.blockless&&l.element in CKEDITOR.dtd.$block||"string"==typeof l.type&&!CKEDITOR.style.customHandlers[l.type]||(d=l.name,l=new CKEDITOR.style(l),b.filter.customConfig&&!b.filter.check(l)))||(l._name=d,l._.enterMode=h.enterMode,l._.type=e=l.assignedTo||l.type,l._.weight=
-c+1E3*(e==CKEDITOR.STYLE_OBJECT?1:e==CKEDITOR.STYLE_BLOCK?2:3),f[d]=l,a.push(l),m.push(l));a.sort(function(a,b){return a._.weight-b._.weight})}});b.ui.addRichCombo("Styles",{label:g.label,title:g.panelTitle,toolbar:"styles,10",allowedContent:m,panel:{css:[CKEDITOR.skin.getPath("editor")].concat(h.contentsCss),multiSelect:!0,attributes:{"aria-label":g.panelTitle}},init:function(){var b,f,d,e,c,h;c=0;for(h=a.length;c<h;c++)b=a[c],f=b._name,e=b._.type,e!=d&&(this.startGroup(g["panelTitle"+String(e)]),
+(function(){CKEDITOR.plugins.add("stylescombo",{requires:"richcombo",init:function(b){var h=b.config,g=b.lang.stylescombo,f={},a=[],m=[];b.on("stylesSet",function(g){if(g=g.data.styles){for(var k,d,e,c=0,n=g.length;c<n;c++)(k=g[c],b.blockless&&k.element in CKEDITOR.dtd.$block||"string"==typeof k.type&&!CKEDITOR.style.customHandlers[k.type]||(d=k.name,k=new CKEDITOR.style(k),b.filter.customConfig&&!b.filter.check(k)))||(k._name=d,k._.enterMode=h.enterMode,k._.type=e=k.assignedTo||k.type,k._.weight=
+c+1E3*(e==CKEDITOR.STYLE_OBJECT?1:e==CKEDITOR.STYLE_BLOCK?2:3),f[d]=k,a.push(k),m.push(k));a.sort(function(a,b){return a._.weight-b._.weight})}});b.ui.addRichCombo("Styles",{label:g.label,title:g.panelTitle,toolbar:"styles,10",allowedContent:m,panel:{css:[CKEDITOR.skin.getPath("editor")].concat(h.contentsCss),multiSelect:!0,attributes:{"aria-label":g.panelTitle}},init:function(){var b,f,d,e,c,h;c=0;for(h=a.length;c<h;c++)b=a[c],f=b._name,e=b._.type,e!=d&&(this.startGroup(g["panelTitle"+String(e)]),
 d=e),this.add(f,b.type==CKEDITOR.STYLE_OBJECT?f:b.buildPreview(),f);this.commit()},onClick:function(a){b.focus();b.fire("saveSnapshot");a=f[a];var g=b.elementPath();if(a.group&&a.removeStylesFromSameGroup(b))b.applyStyle(a);else b[a.checkActive(g,b)?"removeStyle":"applyStyle"](a);b.fire("saveSnapshot")},onRender:function(){b.on("selectionChange",function(a){var g=this.getValue();a=a.data.path.elements;for(var d=0,e=a.length,c;d<e;d++){c=a[d];for(var h in f)if(f[h].checkElementRemovable(c,!0,b)){h!=
 g&&this.setValue(h);return}}this.setValue("")},this)},onOpen:function(){var a=b.getSelection(),a=a.getSelectedElement()||a.getStartElement()||b.editable(),a=b.elementPath(a),h=[0,0,0,0];this.showAll();this.unmarkAll();for(var d in f){var e=f[d],c=e._.type;e.checkApplicable(a,b,b.activeFilter)?h[c]++:this.hideItem(d);e.checkActive(a,b)&&this.mark(d)}h[CKEDITOR.STYLE_BLOCK]||this.hideGroup(g["panelTitle"+String(CKEDITOR.STYLE_BLOCK)]);h[CKEDITOR.STYLE_INLINE]||this.hideGroup(g["panelTitle"+String(CKEDITOR.STYLE_INLINE)]);
 h[CKEDITOR.STYLE_OBJECT]||this.hideGroup(g["panelTitle"+String(CKEDITOR.STYLE_OBJECT)])},refresh:function(){var a=b.elementPath();if(a){for(var g in f)if(f[g].checkApplicable(a,b,b.activeFilter))return;this.setState(CKEDITOR.TRISTATE_DISABLED)}},reset:function(){f={};a=[]}})}})})();(function(){function b(a){return{editorFocus:!1,canUndo:!1,modes:{wysiwyg:1},exec:function(b){if(b.editable().hasFocus){var f=b.getSelection(),g;if(g=(new CKEDITOR.dom.elementPath(f.getCommonAncestor(),f.root)).contains({td:1,
 th:1},1)){var f=b.createRange(),d=CKEDITOR.tools.tryThese(function(){var b=g.getParent().$.cells[g.$.cellIndex+(a?-1:1)];b.parentNode.parentNode;return b},function(){var b=g.getParent(),b=b.getAscendant("table").$.rows[b.$.rowIndex+(a?-1:1)];return b.cells[a?b.cells.length-1:0]});if(d||a)if(d)d=new CKEDITOR.dom.element(d),f.moveToElementEditStart(d),f.checkStartOfBlock()&&f.checkEndOfBlock()||f.selectNodeContents(d);else return!0;else{for(var e=g.getAscendant("table").$,d=g.getParent().$.cells,e=
-new CKEDITOR.dom.element(e.insertRow(-1),b.document),c=0,h=d.length;c<h;c++)e.append((new CKEDITOR.dom.element(d[c],b.document)).clone(!1,!1)).appendBogus();f.moveToElementEditStart(e)}f.select(!0);return!0}}return!1}}}var h={editorFocus:!1,modes:{wysiwyg:1,source:1}},g={exec:function(a){a.container.focusNext(!0,a.tabIndex)}},f={exec:function(a){a.container.focusPrevious(!0,a.tabIndex)}};CKEDITOR.plugins.add("tab",{init:function(a){for(var m=!1!==a.config.enableTabKeyTools,k=a.config.tabSpaces||0,
-l="";k--;)l+=" ";if(l)a.on("key",function(b){9==b.data.keyCode&&(a.insertText(l),b.cancel())});if(m)a.on("key",function(b){(9==b.data.keyCode&&a.execCommand("selectNextCell")||b.data.keyCode==CKEDITOR.SHIFT+9&&a.execCommand("selectPreviousCell"))&&b.cancel()});a.addCommand("blur",CKEDITOR.tools.extend(g,h));a.addCommand("blurBack",CKEDITOR.tools.extend(f,h));a.addCommand("selectNextCell",b());a.addCommand("selectPreviousCell",b(!0))}})})();CKEDITOR.dom.element.prototype.focusNext=function(b,h){var g=
-void 0===h?this.getTabIndex():h,f,a,m,k,l,d;if(0>=g)for(l=this.getNextSourceNode(b,CKEDITOR.NODE_ELEMENT);l;){if(l.isVisible()&&0===l.getTabIndex()){m=l;break}l=l.getNextSourceNode(!1,CKEDITOR.NODE_ELEMENT)}else for(l=this.getDocument().getBody().getFirst();l=l.getNextSourceNode(!1,CKEDITOR.NODE_ELEMENT);){if(!f)if(!a&&l.equals(this)){if(a=!0,b){if(!(l=l.getNextSourceNode(!0,CKEDITOR.NODE_ELEMENT)))break;f=1}}else a&&!this.contains(l)&&(f=1);if(l.isVisible()&&!(0>(d=l.getTabIndex()))){if(f&&d==g){m=
-l;break}d>g&&(!m||!k||d<k)?(m=l,k=d):m||0!==d||(m=l,k=d)}}m&&m.focus()};CKEDITOR.dom.element.prototype.focusPrevious=function(b,h){for(var g=void 0===h?this.getTabIndex():h,f,a,m,k=0,l,d=this.getDocument().getBody().getLast();d=d.getPreviousSourceNode(!1,CKEDITOR.NODE_ELEMENT);){if(!f)if(!a&&d.equals(this)){if(a=!0,b){if(!(d=d.getPreviousSourceNode(!0,CKEDITOR.NODE_ELEMENT)))break;f=1}}else a&&!this.contains(d)&&(f=1);if(d.isVisible()&&!(0>(l=d.getTabIndex())))if(0>=g){if(f&&0===l){m=d;break}l>k&&
-(m=d,k=l)}else{if(f&&l==g){m=d;break}l<g&&(!m||l>k)&&(m=d,k=l)}}m&&m.focus()};CKEDITOR.plugins.add("table",{requires:"dialog",init:function(b){function h(b){return CKEDITOR.tools.extend(b||{},{contextSensitive:1,refresh:function(a,b){this.setState(b.contains("table",1)?CKEDITOR.TRISTATE_OFF:CKEDITOR.TRISTATE_DISABLED)}})}if(!b.blockless){var g=b.lang.table;b.addCommand("table",new CKEDITOR.dialogCommand("table",{context:"table",allowedContent:"table{width,height,border-collapse}[align,border,cellpadding,cellspacing,summary];caption tbody thead tfoot;th td tr[scope];td{border*,background-color,vertical-align,width,height}[colspan,rowspan];"+
+new CKEDITOR.dom.element(e.insertRow(-1),b.document),c=0,h=d.length;c<h;c++)e.append((new CKEDITOR.dom.element(d[c],b.document)).clone(!1,!1)).appendBogus();f.moveToElementEditStart(e)}f.select(!0);return!0}}return!1}}}var h={editorFocus:!1,modes:{wysiwyg:1,source:1}},g={exec:function(a){a.container.focusNext(!0,a.tabIndex)}},f={exec:function(a){a.container.focusPrevious(!0,a.tabIndex)}};CKEDITOR.plugins.add("tab",{init:function(a){for(var m=!1!==a.config.enableTabKeyTools,l=a.config.tabSpaces||0,
+k="";l--;)k+=" ";if(k)a.on("key",function(b){9==b.data.keyCode&&(a.insertText(k),b.cancel())});if(m)a.on("key",function(b){(9==b.data.keyCode&&a.execCommand("selectNextCell")||b.data.keyCode==CKEDITOR.SHIFT+9&&a.execCommand("selectPreviousCell"))&&b.cancel()});a.addCommand("blur",CKEDITOR.tools.extend(g,h));a.addCommand("blurBack",CKEDITOR.tools.extend(f,h));a.addCommand("selectNextCell",b());a.addCommand("selectPreviousCell",b(!0))}})})();CKEDITOR.dom.element.prototype.focusNext=function(b,h){var g=
+void 0===h?this.getTabIndex():h,f,a,m,l,k,d;if(0>=g)for(k=this.getNextSourceNode(b,CKEDITOR.NODE_ELEMENT);k;){if(k.isVisible()&&0===k.getTabIndex()){m=k;break}k=k.getNextSourceNode(!1,CKEDITOR.NODE_ELEMENT)}else for(k=this.getDocument().getBody().getFirst();k=k.getNextSourceNode(!1,CKEDITOR.NODE_ELEMENT);){if(!f)if(!a&&k.equals(this)){if(a=!0,b){if(!(k=k.getNextSourceNode(!0,CKEDITOR.NODE_ELEMENT)))break;f=1}}else a&&!this.contains(k)&&(f=1);if(k.isVisible()&&!(0>(d=k.getTabIndex()))){if(f&&d==g){m=
+k;break}d>g&&(!m||!l||d<l)?(m=k,l=d):m||0!==d||(m=k,l=d)}}m&&m.focus()};CKEDITOR.dom.element.prototype.focusPrevious=function(b,h){for(var g=void 0===h?this.getTabIndex():h,f,a,m,l=0,k,d=this.getDocument().getBody().getLast();d=d.getPreviousSourceNode(!1,CKEDITOR.NODE_ELEMENT);){if(!f)if(!a&&d.equals(this)){if(a=!0,b){if(!(d=d.getPreviousSourceNode(!0,CKEDITOR.NODE_ELEMENT)))break;f=1}}else a&&!this.contains(d)&&(f=1);if(d.isVisible()&&!(0>(k=d.getTabIndex())))if(0>=g){if(f&&0===k){m=d;break}k>l&&
+(m=d,l=k)}else{if(f&&k==g){m=d;break}k<g&&(!m||k>l)&&(m=d,l=k)}}m&&m.focus()};CKEDITOR.plugins.add("table",{requires:"dialog",init:function(b){function h(b){return CKEDITOR.tools.extend(b||{},{contextSensitive:1,refresh:function(a,b){this.setState(b.contains("table",1)?CKEDITOR.TRISTATE_OFF:CKEDITOR.TRISTATE_DISABLED)}})}if(!b.blockless){var g=b.lang.table;b.addCommand("table",new CKEDITOR.dialogCommand("table",{context:"table",allowedContent:"table{width,height,border-collapse}[align,border,cellpadding,cellspacing,summary];caption tbody thead tfoot;th td tr[scope];td{border*,background-color,vertical-align,width,height}[colspan,rowspan];"+
 (b.plugins.dialogadvtab?"table"+b.plugins.dialogadvtab.allowedContent():""),requiredContent:"table",contentTransformations:[["table{width}: sizeToStyle","table[width]: sizeToAttribute"],["td: splitBorderShorthand"],[{element:"table",right:function(b){if(b.styles){var a;if(b.styles.border)a=CKEDITOR.tools.style.parse.border(b.styles.border);else if(CKEDITOR.env.ie&&8===CKEDITOR.env.version){var g=b.styles;g["border-left"]&&g["border-left"]===g["border-right"]&&g["border-right"]===g["border-top"]&&
 g["border-top"]===g["border-bottom"]&&(a=CKEDITOR.tools.style.parse.border(g["border-top"]))}a&&a.style&&"solid"===a.style&&a.width&&0!==parseFloat(a.width)&&(b.attributes.border=1);"collapse"==b.styles["border-collapse"]&&(b.attributes.cellspacing=0)}}}]]}));b.addCommand("tableProperties",new CKEDITOR.dialogCommand("tableProperties",h()));b.addCommand("tableDelete",h({exec:function(b){var a=b.elementPath().contains("table",1);if(a){var g=a.getParent(),h=b.editable();1!=g.getChildCount()||g.is("td",
 "th")||g.equals(h)||(a=g);b=b.createRange();b.moveToPosition(a,CKEDITOR.POSITION_BEFORE_START);a.remove();b.select()}}}));b.ui.addButton&&b.ui.addButton("Table",{label:g.toolbar,command:"table",toolbar:"insert,30"});CKEDITOR.dialog.add("table",this.path+"dialogs/table.js");CKEDITOR.dialog.add("tableProperties",this.path+"dialogs/table.js");b.addMenuItems&&b.addMenuItems({table:{label:g.menu,command:"tableProperties",group:"table",order:5},tabledelete:{label:g.deleteTable,command:"tableDelete",group:"table",
-order:1}});b.on("doubleclick",function(b){b.data.element.is("table")&&(b.data.dialog="tableProperties")});b.contextMenu&&b.contextMenu.addListener(function(){return{tabledelete:CKEDITOR.TRISTATE_OFF,table:CKEDITOR.TRISTATE_OFF}})}}});(function(){function b(a,b){function c(a){return b?b.contains(a)&&a.getAscendant("table",!0).equals(b):!0}function d(a){0<e.length||a.type!=CKEDITOR.NODE_ELEMENT||!r.test(a.getName())||a.getCustomData("selected_cell")||(CKEDITOR.dom.element.setMarker(f,a,"selected_cell",
-!0),e.push(a))}var e=[],f={};if(!a)return e;for(var g=a.getRanges(),h=0;h<g.length;h++){var k=g[h];if(k.collapsed)(k=k.getCommonAncestor().getAscendant({td:1,th:1},!0))&&c(k)&&e.push(k);else{var k=new CKEDITOR.dom.walker(k),l;for(k.guard=d;l=k.next();)l.type==CKEDITOR.NODE_ELEMENT&&l.is(CKEDITOR.dtd.table)||(l=l.getAscendant({td:1,th:1},!0))&&!l.getCustomData("selected_cell")&&c(l)&&(CKEDITOR.dom.element.setMarker(f,l,"selected_cell",!0),e.push(l))}}CKEDITOR.dom.element.clearAllMarkers(f);return e}
-function h(a,c){for(var d=p(a)?a:b(a),e=d[0],f=e.getAscendant("table"),e=e.getDocument(),g=d[0].getParent(),h=g.$.rowIndex,d=d[d.length-1],k=d.getParent().$.rowIndex+d.$.rowSpan-1,d=new CKEDITOR.dom.element(f.$.rows[k]),h=c?h:k,g=c?g:d,d=CKEDITOR.tools.buildTableMap(f),f=d[h],h=c?d[h-1]:d[h+1],d=d[0].length,e=e.createElement("tr"),k=0;f[k]&&k<d;k++){var l;1<f[k].rowSpan&&h&&f[k]==h[k]?(l=f[k],l.rowSpan+=1):(l=(new CKEDITOR.dom.element(f[k])).clone(),l.removeAttribute("rowSpan"),l.appendBogus(),e.append(l),
-l=l.$);k+=l.colSpan-1}c?e.insertBefore(g):e.insertAfter(g);return e}function g(a){if(a instanceof CKEDITOR.dom.selection){var c=a.getRanges(),d=b(a),e=d[0].getAscendant("table"),f=CKEDITOR.tools.buildTableMap(e),h=d[0].getParent().$.rowIndex,d=d[d.length-1],k=d.getParent().$.rowIndex+d.$.rowSpan-1,d=[];a.reset();for(a=h;a<=k;a++){for(var l=f[a],m=new CKEDITOR.dom.element(e.$.rows[a]),n=0;n<l.length;n++){var p=new CKEDITOR.dom.element(l[n]),r=p.getParent().$.rowIndex;1==p.$.rowSpan?p.remove():(--p.$.rowSpan,
-r==a&&(r=f[a+1],r[n-1]?p.insertAfter(new CKEDITOR.dom.element(r[n-1])):(new CKEDITOR.dom.element(e.$.rows[a+1])).append(p,1)));n+=p.$.colSpan-1}d.push(m)}f=e.$.rows;c[0].moveToPosition(e,CKEDITOR.POSITION_BEFORE_START);h=new CKEDITOR.dom.element(f[k+1]||(0<h?f[h-1]:null)||e.$.parentNode);for(a=d.length;0<=a;a--)g(d[a]);return e.$.parentNode?h:(c[0].select(),null)}a instanceof CKEDITOR.dom.element&&(e=a.getAscendant("table"),1==e.$.rows.length?e.remove():a.remove());return null}function f(a){for(var b=
-a.getParent().$.cells,c=0,d=0;d<b.length;d++){var e=b[d],c=c+e.colSpan;if(e==a.$)break}return c-1}function a(a,b){for(var c=b?Infinity:0,d=0;d<a.length;d++){var e=f(a[d]);if(b?e<c:e>c)c=e}return c}function m(c,d){for(var e=p(c)?c:b(c),f=e[0].getAscendant("table"),g=a(e,1),e=a(e),h=d?g:e,k=CKEDITOR.tools.buildTableMap(f),f=[],g=[],e=[],l=k.length,m=0;m<l;m++)f.push(k[m][h]),g.push(d?k[m][h-1]:k[m][h+1]);for(m=0;m<l;m++)f[m]&&(1<f[m].colSpan&&g[m]==f[m]?(k=f[m],k.colSpan+=1):(h=new CKEDITOR.dom.element(f[m]),
-k=h.clone(),k.removeAttribute("colSpan"),k.appendBogus(),k[d?"insertBefore":"insertAfter"].call(k,h),e.push(k),k=k.$),m+=k.rowSpan-1);return e}function k(a){function c(a){var b,d,e;b=a.getRanges();if(1!==b.length)return a;b=b[0];if(b.collapsed||0!==b.endOffset)return a;d=b.endContainer;e=d.getName().toLowerCase();if("td"!==e&&"th"!==e)return a;for((e=d.getPrevious())||(e=d.getParent().getPrevious().getLast());e.type!==CKEDITOR.NODE_TEXT&&"br"!==e.getName().toLowerCase();)if(e=e.getLast(),!e)return a;
-b.setEndAt(e,CKEDITOR.POSITION_BEFORE_END);return b.select()}CKEDITOR.env.webkit&&!a.isFake&&(a=c(a));var d=a.getRanges(),e=b(a),f=e[0],g=e[e.length-1],e=f.getAscendant("table"),h=CKEDITOR.tools.buildTableMap(e),k,l,m=[];a.reset();var n=0;for(a=h.length;n<a;n++)for(var p=0,r=h[n].length;p<r;p++)void 0===k&&h[n][p]==f.$&&(k=p),h[n][p]==g.$&&(l=p);for(n=k;n<=l;n++)for(p=0;p<h.length;p++)g=h[p],f=new CKEDITOR.dom.element(e.$.rows[p]),g=new CKEDITOR.dom.element(g[n]),g.$&&(1==g.$.colSpan?g.remove():--g.$.colSpan,
-p+=g.$.rowSpan-1,f.$.cells.length||m.push(f));k=h[0].length-1>l?new CKEDITOR.dom.element(h[0][l+1]):k&&-1!==h[0][k-1].cellIndex?new CKEDITOR.dom.element(h[0][k-1]):new CKEDITOR.dom.element(e.$.parentNode);m.length==a&&(d[0].moveToPosition(e,CKEDITOR.POSITION_AFTER_END),d[0].select(),e.remove());return k}function l(a,b){var c=a.getStartElement().getAscendant({td:1,th:1},!0);if(c){var d=c.clone();d.appendBogus();b?d.insertBefore(c):d.insertAfter(c)}}function d(a){if(a instanceof CKEDITOR.dom.selection){var c=
+order:1}});b.on("doubleclick",function(b){b.data.element.is("table")&&(b.data.dialog="tableProperties")});b.contextMenu&&b.contextMenu.addListener(function(){return{tabledelete:CKEDITOR.TRISTATE_OFF,table:CKEDITOR.TRISTATE_OFF}})}}});(function(){function b(a,b){function d(a){return b?b.contains(a)&&a.getAscendant("table",!0).equals(b):!0}function c(a){var b=/^(?:td|th)$/;0<e.length||a.type!=CKEDITOR.NODE_ELEMENT||!b.test(a.getName())||a.getCustomData("selected_cell")||(CKEDITOR.dom.element.setMarker(f,
+a,"selected_cell",!0),e.push(a))}var e=[],f={};if(!a)return e;for(var g=a.getRanges(),h=0;h<g.length;h++){var k=g[h];if(k.collapsed)(k=k.getCommonAncestor().getAscendant({td:1,th:1},!0))&&d(k)&&e.push(k);else{var k=new CKEDITOR.dom.walker(k),l;for(k.guard=c;l=k.next();)l.type==CKEDITOR.NODE_ELEMENT&&l.is(CKEDITOR.dtd.table)||(l=l.getAscendant({td:1,th:1},!0))&&!l.getCustomData("selected_cell")&&d(l)&&(CKEDITOR.dom.element.setMarker(f,l,"selected_cell",!0),e.push(l))}}CKEDITOR.dom.element.clearAllMarkers(f);
+return e}function h(a,d){for(var c=p(a)?a:b(a),e=c[0],f=e.getAscendant("table"),e=e.getDocument(),g=c[0].getParent(),h=g.$.rowIndex,c=c[c.length-1],k=c.getParent().$.rowIndex+c.$.rowSpan-1,c=new CKEDITOR.dom.element(f.$.rows[k]),h=d?h:k,g=d?g:c,c=CKEDITOR.tools.buildTableMap(f),f=c[h],h=d?c[h-1]:c[h+1],c=c[0].length,e=e.createElement("tr"),k=0;f[k]&&k<c;k++){var l;1<f[k].rowSpan&&h&&f[k]==h[k]?(l=f[k],l.rowSpan+=1):(l=(new CKEDITOR.dom.element(f[k])).clone(),l.removeAttribute("rowSpan"),l.appendBogus(),
+e.append(l),l=l.$);k+=l.colSpan-1}d?e.insertBefore(g):e.insertAfter(g);return e}function g(a){if(a instanceof CKEDITOR.dom.selection){var d=a.getRanges(),c=b(a),e=c[0].getAscendant("table"),f=CKEDITOR.tools.buildTableMap(e),h=c[0].getParent().$.rowIndex,c=c[c.length-1],k=c.getParent().$.rowIndex+c.$.rowSpan-1,c=[];a.reset();for(a=h;a<=k;a++){for(var l=f[a],m=new CKEDITOR.dom.element(e.$.rows[a]),n=0;n<l.length;n++){var p=new CKEDITOR.dom.element(l[n]),v=p.getParent().$.rowIndex;1==p.$.rowSpan?p.remove():
+(--p.$.rowSpan,v==a&&(v=f[a+1],v[n-1]?p.insertAfter(new CKEDITOR.dom.element(v[n-1])):(new CKEDITOR.dom.element(e.$.rows[a+1])).append(p,1)));n+=p.$.colSpan-1}c.push(m)}f=e.$.rows;d[0].moveToPosition(e,CKEDITOR.POSITION_BEFORE_START);h=new CKEDITOR.dom.element(f[k+1]||(0<h?f[h-1]:null)||e.$.parentNode);for(a=c.length;0<=a;a--)g(c[a]);return e.$.parentNode?h:(d[0].select(),null)}a instanceof CKEDITOR.dom.element&&(e=a.getAscendant("table"),1==e.$.rows.length?e.remove():a.remove());return null}function f(a){for(var b=
+a.getParent().$.cells,d=0,c=0;c<b.length;c++){var e=b[c],d=d+e.colSpan;if(e==a.$)break}return d-1}function a(a,b){for(var d=b?Infinity:0,c=0;c<a.length;c++){var e=f(a[c]);if(b?e<d:e>d)d=e}return d}function m(d,c){for(var e=p(d)?d:b(d),f=e[0].getAscendant("table"),g=a(e,1),e=a(e),h=c?g:e,k=CKEDITOR.tools.buildTableMap(f),f=[],g=[],e=[],l=k.length,m=0;m<l;m++){var n=c?k[m][h-1]:k[m][h+1];f.push(k[m][h]);g.push(n)}for(m=0;m<l;m++)f[m]&&(1<f[m].colSpan&&g[m]==f[m]?(k=f[m],k.colSpan+=1):(h=new CKEDITOR.dom.element(f[m]),
+k=h.clone(),k.removeAttribute("colSpan"),k.appendBogus(),k[c?"insertBefore":"insertAfter"].call(k,h),e.push(k),k=k.$),m+=k.rowSpan-1);return e}function l(a){function d(a){var b=a.getRanges(),c,e;if(1!==b.length)return a;b=b[0];if(b.collapsed||0!==b.endOffset)return a;c=b.endContainer;e=c.getName().toLowerCase();if("td"!==e&&"th"!==e)return a;for((e=c.getPrevious())||(e=c.getParent().getPrevious().getLast());e.type!==CKEDITOR.NODE_TEXT&&"br"!==e.getName().toLowerCase();)if(e=e.getLast(),!e)return a;
+b.setEndAt(e,CKEDITOR.POSITION_BEFORE_END);return b.select()}CKEDITOR.env.webkit&&!a.isFake&&(a=d(a));var c=a.getRanges(),e=b(a),f=e[0],g=e[e.length-1],e=f.getAscendant("table"),h=CKEDITOR.tools.buildTableMap(e),k,l,m=[];a.reset();var n=0;for(a=h.length;n<a;n++)for(var p=0,v=h[n].length;p<v;p++)void 0===k&&h[n][p]==f.$&&(k=p),h[n][p]==g.$&&(l=p);for(n=k;n<=l;n++)for(p=0;p<h.length;p++)g=h[p],f=new CKEDITOR.dom.element(e.$.rows[p]),g=new CKEDITOR.dom.element(g[n]),g.$&&(1==g.$.colSpan?g.remove():--g.$.colSpan,
+p+=g.$.rowSpan-1,f.$.cells.length||m.push(f));k=h[0].length-1>l?new CKEDITOR.dom.element(h[0][l+1]):k&&-1!==h[0][k-1].cellIndex?new CKEDITOR.dom.element(h[0][k-1]):new CKEDITOR.dom.element(e.$.parentNode);m.length==a&&(c[0].moveToPosition(e,CKEDITOR.POSITION_AFTER_END),c[0].select(),e.remove());return k}function k(a,b){var d=a.getStartElement().getAscendant({td:1,th:1},!0);if(d){var c=d.clone();c.appendBogus();b?c.insertBefore(d):c.insertAfter(d)}}function d(a){if(a instanceof CKEDITOR.dom.selection){var c=
 a.getRanges(),f=b(a),g=f[0]&&f[0].getAscendant("table"),h;a:{var k=0;h=f.length-1;for(var l={},m,n;m=f[k++];)CKEDITOR.dom.element.setMarker(l,m,"delete_cell",!0);for(k=0;m=f[k++];)if((n=m.getPrevious())&&!n.getCustomData("delete_cell")||(n=m.getNext())&&!n.getCustomData("delete_cell")){CKEDITOR.dom.element.clearAllMarkers(l);h=n;break a}CKEDITOR.dom.element.clearAllMarkers(l);k=f[0].getParent();(k=k.getPrevious())?h=k.getLast():(k=f[h].getParent(),h=(k=k.getNext())?k.getChild(0):null)}a.reset();for(a=
-f.length-1;0<=a;a--)d(f[a]);h?e(h,!0):g&&(c[0].moveToPosition(g,CKEDITOR.POSITION_BEFORE_START),c[0].select(),g.remove())}else a instanceof CKEDITOR.dom.element&&(c=a.getParent(),1==c.getChildCount()?c.remove():a.remove())}function e(a,b){var c=a.getDocument(),d=CKEDITOR.document;CKEDITOR.env.ie&&10==CKEDITOR.env.version&&(d.focus(),c.focus());c=new CKEDITOR.dom.range(c);c["moveToElementEdit"+(b?"End":"Start")](a)||(c.selectNodeContents(a),c.collapse(b?!1:!0));c.select(!0)}function c(a,b,c){a=a[b];
-if("undefined"==typeof c)return a;for(b=0;a&&b<a.length;b++){if(c.is&&a[b]==c.$)return b;if(b==c)return new CKEDITOR.dom.element(a[b])}return c.is?-1:null}function n(a,d,e){var f=b(a),g;if((d?1!=f.length:2>f.length)||(g=a.getCommonAncestor())&&g.type==CKEDITOR.NODE_ELEMENT&&g.is("table"))return!1;var h;a=f[0];g=a.getAscendant("table");var k=CKEDITOR.tools.buildTableMap(g),l=k.length,m=k[0].length,n=a.getParent().$.rowIndex,p=c(k,n,a);if(d){var r;try{var w=parseInt(a.getAttribute("rowspan"),10)||1;
-h=parseInt(a.getAttribute("colspan"),10)||1;r=k["up"==d?n-w:"down"==d?n+w:n]["left"==d?p-h:"right"==d?p+h:p]}catch(z){return!1}if(!r||a.$==r)return!1;f["up"==d||"left"==d?"unshift":"push"](new CKEDITOR.dom.element(r))}d=a.getDocument();var M=n,w=r=0,H=!e&&new CKEDITOR.dom.documentFragment(d),E=0;for(d=0;d<f.length;d++){h=f[d];var Q=h.getParent(),O=h.getFirst(),P=h.$.colSpan,K=h.$.rowSpan,Q=Q.$.rowIndex,X=c(k,Q,h),E=E+P*K,w=Math.max(w,X-p+P);r=Math.max(r,Q-n+K);e||(P=h,(K=P.getBogus())&&K.remove(),
-P.trim(),h.getChildren().count()&&(Q==M||!O||O.isBlockBoundary&&O.isBlockBoundary({br:1})||(M=H.getLast(CKEDITOR.dom.walker.whitespaces(!0)),!M||M.is&&M.is("br")||H.append("br")),h.moveChildren(H)),d?h.remove():h.setHtml(""));M=Q}if(e)return r*w==E;H.moveChildren(a);a.appendBogus();w>=m?a.removeAttribute("rowSpan"):a.$.rowSpan=r;r>=l?a.removeAttribute("colSpan"):a.$.colSpan=w;e=new CKEDITOR.dom.nodeList(g.$.rows);f=e.count();for(d=f-1;0<=d;d--)g=e.getItem(d),g.$.cells.length||(g.remove(),f++);return a}
-function w(a,d){var e=b(a);if(1<e.length)return!1;if(d)return!0;var e=e[0],f=e.getParent(),g=f.getAscendant("table"),h=CKEDITOR.tools.buildTableMap(g),k=f.$.rowIndex,l=c(h,k,e),m=e.$.rowSpan,n;if(1<m){n=Math.ceil(m/2);for(var m=Math.floor(m/2),f=k+n,g=new CKEDITOR.dom.element(g.$.rows[f]),h=c(h,f),p,f=e.clone(),k=0;k<h.length;k++)if(p=h[k],p.parentNode==g.$&&k>l){f.insertBefore(new CKEDITOR.dom.element(p));break}else p=null;p||g.append(f)}else for(m=n=1,g=f.clone(),g.insertAfter(f),g.append(f=e.clone()),
-p=c(h,k),l=0;l<p.length;l++)p[l].rowSpan++;f.appendBogus();e.$.rowSpan=n;f.$.rowSpan=m;1==n&&e.removeAttribute("rowSpan");1==m&&f.removeAttribute("rowSpan");return f}function z(a,d){var e=b(a);if(1<e.length)return!1;if(d)return!0;var e=e[0],f=e.getParent(),g=f.getAscendant("table"),g=CKEDITOR.tools.buildTableMap(g),h=c(g,f.$.rowIndex,e),k=e.$.colSpan;if(1<k)f=Math.ceil(k/2),k=Math.floor(k/2);else{for(var k=f=1,l=[],m=0;m<g.length;m++){var n=g[m];l.push(n[h]);1<n[h].rowSpan&&(m+=n[h].rowSpan-1)}for(g=
-0;g<l.length;g++)l[g].colSpan++}g=e.clone();g.insertAfter(e);g.appendBogus();e.$.colSpan=f;g.$.colSpan=k;1==f&&e.removeAttribute("colSpan");1==k&&g.removeAttribute("colSpan");return g}var r=/^(?:td|th)$/,p=CKEDITOR.tools.isArray;CKEDITOR.plugins.tabletools={requires:"table,dialog,contextmenu",init:function(a){function c(a){return CKEDITOR.tools.extend(a||{},{contextSensitive:1,refresh:function(a,b){this.setState(b.contains({td:1,th:1},1)?CKEDITOR.TRISTATE_OFF:CKEDITOR.TRISTATE_DISABLED)}})}function f(b,
-c){var d=a.addCommand(b,c);a.addFeature(d)}var p=a.lang.table,r=CKEDITOR.tools.style.parse,x="td{width} td{height} td{border-color} td{background-color} td{white-space} td{vertical-align} td{text-align} td[colspan] td[rowspan] th".split(" ");f("cellProperties",new CKEDITOR.dialogCommand("cellProperties",c({allowedContent:"td th{width,height,border-color,background-color,white-space,vertical-align,text-align}[colspan,rowspan]",requiredContent:x,contentTransformations:[[{element:"td",left:function(a){return a.styles.background&&
-r.background(a.styles.background).color},right:function(a){a.styles["background-color"]=r.background(a.styles.background).color}},{element:"td",check:"td{vertical-align}",left:function(a){return a.attributes&&a.attributes.valign},right:function(a){a.styles["vertical-align"]=a.attributes.valign;delete a.attributes.valign}}],[{element:"tr",check:"td{height}",left:function(a){return a.styles&&a.styles.height},right:function(a){CKEDITOR.tools.array.forEach(a.children,function(b){b.name in{td:1,th:1}&&
-(b.attributes["cke-row-height"]=a.styles.height)});delete a.styles.height}}],[{element:"td",check:"td{height}",left:function(a){return(a=a.attributes)&&a["cke-row-height"]},right:function(a){a.styles.height=a.attributes["cke-row-height"];delete a.attributes["cke-row-height"]}}]]})));CKEDITOR.dialog.add("cellProperties",this.path+"dialogs/tableCell.js");f("rowDelete",c({requiredContent:"table",exec:function(a){a=a.getSelection();(a=g(a))&&e(a)}}));f("rowInsertBefore",c({requiredContent:"table",exec:function(a){a=
-a.getSelection();a=b(a);h(a,!0)}}));f("rowInsertAfter",c({requiredContent:"table",exec:function(a){a=a.getSelection();a=b(a);h(a)}}));f("columnDelete",c({requiredContent:"table",exec:function(a){a=a.getSelection();(a=k(a))&&e(a,!0)}}));f("columnInsertBefore",c({requiredContent:"table",exec:function(a){a=a.getSelection();a=b(a);m(a,!0)}}));f("columnInsertAfter",c({requiredContent:"table",exec:function(a){a=a.getSelection();a=b(a);m(a)}}));f("cellDelete",c({requiredContent:"table",exec:function(a){a=
-a.getSelection();d(a)}}));f("cellMerge",c({allowedContent:"td[colspan,rowspan]",requiredContent:"td[colspan,rowspan]",exec:function(a,b){b.cell=n(a.getSelection());e(b.cell,!0)}}));f("cellMergeRight",c({allowedContent:"td[colspan]",requiredContent:"td[colspan]",exec:function(a,b){b.cell=n(a.getSelection(),"right");e(b.cell,!0)}}));f("cellMergeDown",c({allowedContent:"td[rowspan]",requiredContent:"td[rowspan]",exec:function(a,b){b.cell=n(a.getSelection(),"down");e(b.cell,!0)}}));f("cellVerticalSplit",
-c({allowedContent:"td[rowspan]",requiredContent:"td[rowspan]",exec:function(a){e(z(a.getSelection()))}}));f("cellHorizontalSplit",c({allowedContent:"td[colspan]",requiredContent:"td[colspan]",exec:function(a){e(w(a.getSelection()))}}));f("cellInsertBefore",c({requiredContent:"table",exec:function(a){a=a.getSelection();l(a,!0)}}));f("cellInsertAfter",c({requiredContent:"table",exec:function(a){a=a.getSelection();l(a)}}));a.addMenuItems&&a.addMenuItems({tablecell:{label:p.cell.menu,group:"tablecell",
-order:1,getItems:function(){var c=a.getSelection(),d=b(c),c={tablecell_insertBefore:CKEDITOR.TRISTATE_OFF,tablecell_insertAfter:CKEDITOR.TRISTATE_OFF,tablecell_delete:CKEDITOR.TRISTATE_OFF,tablecell_merge:n(c,null,!0)?CKEDITOR.TRISTATE_OFF:CKEDITOR.TRISTATE_DISABLED,tablecell_merge_right:n(c,"right",!0)?CKEDITOR.TRISTATE_OFF:CKEDITOR.TRISTATE_DISABLED,tablecell_merge_down:n(c,"down",!0)?CKEDITOR.TRISTATE_OFF:CKEDITOR.TRISTATE_DISABLED,tablecell_split_vertical:z(c,!0)?CKEDITOR.TRISTATE_OFF:CKEDITOR.TRISTATE_DISABLED,
-tablecell_split_horizontal:w(c,!0)?CKEDITOR.TRISTATE_OFF:CKEDITOR.TRISTATE_DISABLED};a.filter.check(x)&&(c.tablecell_properties=0<d.length?CKEDITOR.TRISTATE_OFF:CKEDITOR.TRISTATE_DISABLED);return c}},tablecell_insertBefore:{label:p.cell.insertBefore,group:"tablecell",command:"cellInsertBefore",order:5},tablecell_insertAfter:{label:p.cell.insertAfter,group:"tablecell",command:"cellInsertAfter",order:10},tablecell_delete:{label:p.cell.deleteCell,group:"tablecell",command:"cellDelete",order:15},tablecell_merge:{label:p.cell.merge,
-group:"tablecell",command:"cellMerge",order:16},tablecell_merge_right:{label:p.cell.mergeRight,group:"tablecell",command:"cellMergeRight",order:17},tablecell_merge_down:{label:p.cell.mergeDown,group:"tablecell",command:"cellMergeDown",order:18},tablecell_split_horizontal:{label:p.cell.splitHorizontal,group:"tablecell",command:"cellHorizontalSplit",order:19},tablecell_split_vertical:{label:p.cell.splitVertical,group:"tablecell",command:"cellVerticalSplit",order:20},tablecell_properties:{label:p.cell.title,
-group:"tablecellproperties",command:"cellProperties",order:21},tablerow:{label:p.row.menu,group:"tablerow",order:1,getItems:function(){return{tablerow_insertBefore:CKEDITOR.TRISTATE_OFF,tablerow_insertAfter:CKEDITOR.TRISTATE_OFF,tablerow_delete:CKEDITOR.TRISTATE_OFF}}},tablerow_insertBefore:{label:p.row.insertBefore,group:"tablerow",command:"rowInsertBefore",order:5},tablerow_insertAfter:{label:p.row.insertAfter,group:"tablerow",command:"rowInsertAfter",order:10},tablerow_delete:{label:p.row.deleteRow,
-group:"tablerow",command:"rowDelete",order:15},tablecolumn:{label:p.column.menu,group:"tablecolumn",order:1,getItems:function(){return{tablecolumn_insertBefore:CKEDITOR.TRISTATE_OFF,tablecolumn_insertAfter:CKEDITOR.TRISTATE_OFF,tablecolumn_delete:CKEDITOR.TRISTATE_OFF}}},tablecolumn_insertBefore:{label:p.column.insertBefore,group:"tablecolumn",command:"columnInsertBefore",order:5},tablecolumn_insertAfter:{label:p.column.insertAfter,group:"tablecolumn",command:"columnInsertAfter",order:10},tablecolumn_delete:{label:p.column.deleteColumn,
-group:"tablecolumn",command:"columnDelete",order:15}});a.contextMenu&&a.contextMenu.addListener(function(a,b,c){return(a=c.contains({td:1,th:1},1))&&!a.isReadOnly()?{tablecell:CKEDITOR.TRISTATE_OFF,tablerow:CKEDITOR.TRISTATE_OFF,tablecolumn:CKEDITOR.TRISTATE_OFF}:null})},getCellColIndex:f,insertRow:h,insertColumn:m,getSelectedCells:b};CKEDITOR.plugins.add("tabletools",CKEDITOR.plugins.tabletools)})();CKEDITOR.tools.buildTableMap=function(b,h,g,f,a){b=b.$.rows;g=g||0;f="number"===typeof f?f:b.length-
-1;a="number"===typeof a?a:-1;var m=-1,k=[];for(h=h||0;h<=f;h++){m++;!k[m]&&(k[m]=[]);for(var l=-1,d=g;d<=(-1===a?b[h].cells.length-1:a);d++){var e=b[h].cells[d];if(!e)break;for(l++;k[m][l];)l++;for(var c=isNaN(e.colSpan)?1:e.colSpan,e=isNaN(e.rowSpan)?1:e.rowSpan,n=0;n<e&&!(h+n>f);n++){k[m+n]||(k[m+n]=[]);for(var w=0;w<c;w++)k[m+n][l+w]=b[h].cells[d]}l+=c-1;if(-1!==a&&l>=a)break}}return k};(function(){function b(a){return CKEDITOR.env.ie?a.$.clientWidth:parseInt(a.getComputedStyle("width"),10)}function h(a,
-b){var c=a.getComputedStyle("border-"+b+"-width"),f={thin:"0px",medium:"1px",thick:"2px"};0>c.indexOf("px")&&(c=c in f&&"none"!=a.getComputedStyle("border-style")?f[c]:0);return parseInt(c,10)}function g(a){var b=[],c={},f="rtl"==a.getComputedStyle("direction");CKEDITOR.tools.array.forEach(a.$.rows,function(g,k){var l=-1,m=0,q=null;g?(m=new CKEDITOR.dom.element(g),q={height:m.$.offsetHeight,position:m.getDocumentPosition()}):q=void 0;for(var m=q.height,q=q.position,u=0,t=g.cells.length;u<t;u++){var y=
-new CKEDITOR.dom.element(g.cells[u]),v=g.cells[u+1]&&new CKEDITOR.dom.element(g.cells[u+1]),l=l+(y.$.colSpan||1),x,B,D=y.getDocumentPosition().x;f?B=D+h(y,"left"):x=D+y.$.offsetWidth-h(y,"right");v?(D=v.getDocumentPosition().x,f?x=D+v.$.offsetWidth-h(v,"right"):B=D+h(v,"left")):(D=a.getDocumentPosition().x,f?x=D:B=D+a.$.offsetWidth);y=Math.max(B-x,3);y={table:a,index:l,x:x,y:q.y,width:y,height:m,rtl:f};c[l]=c[l]||[];c[l].push(y);y.alignedPillars=c[l];b.push(y)}});return b}function f(a){(a.data||a).preventDefault()}
-function a(a){function e(){u=0;q.setOpacity(0);y&&c();var a=r.table;setTimeout(function(){a.removeCustomData("_cke_table_pillars")},0);p.removeListener("dragstart",f)}function c(){for(var c=r.rtl,e=c?B.length:x.length,f=0,g=0;g<e;g++){var l=x[g],m=B[g],n=r.table;CKEDITOR.tools.setTimeout(function(b,g,h,l,m,p){b&&b.setStyle("width",k(Math.max(g+p,1)));h&&h.setStyle("width",k(Math.max(l-p,1)));m&&n.setStyle("width",k(m+p*(c?-1:1)));++f==e&&a.fire("saveSnapshot")},0,this,[l,l&&b(l),m,m&&b(m),(!l||!m)&&
-b(n)+h(n,"left")+h(n,"right"),y])}}function g(c){f(c);a.fire("saveSnapshot");c=r.index;for(var e=CKEDITOR.tools.buildTableMap(r.table),h=[],k=[],l=Number.MAX_VALUE,n=l,v=r.rtl,E=0,Q=e.length;E<Q;E++){var O=e[E],P=O[c+(v?1:0)],O=O[c+(v?0:1)],P=P&&new CKEDITOR.dom.element(P),O=O&&new CKEDITOR.dom.element(O);P&&O&&P.equals(O)||(P&&(l=Math.min(l,b(P))),O&&(n=Math.min(n,b(O))),h.push(P),k.push(O))}x=h;B=k;D=r.x-l;A=r.x+n;q.setOpacity(.5);t=parseInt(q.getStyle("left"),10);y=0;u=1;q.on("mousemove",z);p.on("dragstart",
-f);p.on("mouseup",m,this)}function m(a){a.removeListener();e()}function z(a){v(a.data.getPageOffset().x)}var r,p,q,u,t,y,v,x,B,D,A;p=a.document;q=CKEDITOR.dom.element.createFromHtml('\x3cdiv data-cke-temp\x3d1 contenteditable\x3dfalse unselectable\x3don style\x3d"position:absolute;cursor:col-resize;filter:alpha(opacity\x3d0);opacity:0;padding:0;background-color:#004;background-image:none;border:0px none;z-index:10"\x3e\x3c/div\x3e',p);a.on("destroy",function(){q.remove()});l||p.getDocumentElement().append(q);
-this.attachTo=function(a){var b,c,d;u||(l&&(p.getBody().append(q),y=0),r=a,b=r.alignedPillars[0],c=r.alignedPillars[r.alignedPillars.length-1],d=b.y,b=c.height+c.y-b.y,q.setStyles({width:k(a.width),height:k(b),left:k(a.x),top:k(d)}),l&&q.setOpacity(.25),q.on("mousedown",g,this),p.getBody().setStyle("cursor","col-resize"),q.show())};v=this.move=function(a,b){if(!r)return 0;if(!(u||a>=r.x&&a<=r.x+r.width&&b>=r.y&&b<=r.y+r.height))return r=null,u=y=0,p.removeListener("mouseup",m),q.removeListener("mousedown",
-g),q.removeListener("mousemove",z),p.getBody().setStyle("cursor","auto"),l?q.remove():q.hide(),0;var c=a-Math.round(q.$.offsetWidth/2);if(u){if(c==D||c==A)return 1;c=Math.max(c,D);c=Math.min(c,A);y=c-t}q.setStyle("left",k(c));return 1}}function m(a){var b=a.data.getTarget();if("mouseout"==a.name){if(!b.is("table"))return;for(var c=new CKEDITOR.dom.element(a.data.$.relatedTarget||a.data.$.toElement);c&&c.$&&!c.equals(b)&&!c.is("body");)c=c.getParent();if(!c||c.equals(b))return}b.getAscendant("table",
-1).removeCustomData("_cke_table_pillars");a.removeListener()}var k=CKEDITOR.tools.cssLength,l=CKEDITOR.env.ie&&(CKEDITOR.env.ie7Compat||CKEDITOR.env.quirks);CKEDITOR.plugins.add("tableresize",{requires:"tabletools",init:function(b){b.on("contentDom",function(){var e,c=b.editable();c.attachListener(c.isInline()?c:b.document,"mousemove",function(c){c=c.data;var h=c.getTarget();if(h.type==CKEDITOR.NODE_ELEMENT){var k=c.getPageOffset().x,l=c.getPageOffset().y;if(e&&e.move(k,l))f(c);else if(h.is("table")||
-h.getAscendant({thead:1,tbody:1,tfoot:1},1))if(c=h.getAscendant("table",1),b.editable().contains(c)){(h=c.getCustomData("_cke_table_pillars"))||(c.setCustomData("_cke_table_pillars",h=g(c)),c.on("mouseout",m),c.on("mousedown",m));a:{c=h;for(var h=0,p=c.length;h<p;h++){var q=c[h];if(k>=q.x&&k<=q.x+q.width&&l>=q.y&&l<=q.y+q.height){k=q;break a}}k=null}k&&(!e&&(e=new a(b)),e.attachTo(k))}}})})}})})();"use strict";(function(){function b(a,b){return CKEDITOR.tools.array.reduce(b,function(a,b){return b(a)},
-a)}var h=[CKEDITOR.CTRL+90,CKEDITOR.CTRL+89,CKEDITOR.CTRL+CKEDITOR.SHIFT+90],g={8:1,46:1};CKEDITOR.plugins.add("undo",{init:function(a){function b(a){g.enabled&&!1!==a.data.command.canUndo&&g.save()}function c(){g.enabled=a.readOnly?!1:"wysiwyg"==a.mode;g.onChange()}var g=a.undoManager=new f(a),l=g.editingHandler=new k(g),m=a.addCommand("undo",{exec:function(){g.undo()&&(a.selectionChange(),this.fire("afterUndo"))},startDisabled:!0,canUndo:!1}),r=a.addCommand("redo",{exec:function(){g.redo()&&(a.selectionChange(),
-this.fire("afterRedo"))},startDisabled:!0,canUndo:!1});a.setKeystroke([[h[0],"undo"],[h[1],"redo"],[h[2],"redo"]]);g.onChange=function(){m.setState(g.undoable()?CKEDITOR.TRISTATE_OFF:CKEDITOR.TRISTATE_DISABLED);r.setState(g.redoable()?CKEDITOR.TRISTATE_OFF:CKEDITOR.TRISTATE_DISABLED)};a.on("beforeCommandExec",b);a.on("afterCommandExec",b);a.on("saveSnapshot",function(a){g.save(a.data&&a.data.contentOnly)});a.on("contentDom",l.attachListeners,l);a.on("instanceReady",function(){a.fire("saveSnapshot")});
-a.on("beforeModeUnload",function(){"wysiwyg"==a.mode&&g.save(!0)});a.on("mode",c);a.on("readOnly",c);a.ui.addButton&&(a.ui.addButton("Undo",{label:a.lang.undo.undo,command:"undo",toolbar:"undo,10"}),a.ui.addButton("Redo",{label:a.lang.undo.redo,command:"redo",toolbar:"undo,20"}));a.resetUndo=function(){g.reset();a.fire("saveSnapshot")};a.on("updateSnapshot",function(){g.currentImage&&g.update()});a.on("lockSnapshot",function(a){a=a.data;g.lock(a&&a.dontUpdate,a&&a.forceUpdate)});a.on("unlockSnapshot",
-g.unlock,g)}});CKEDITOR.plugins.undo={};var f=CKEDITOR.plugins.undo.UndoManager=function(a){this.strokesRecorded=[0,0];this.locked=null;this.previousKeyGroup=-1;this.limit=a.config.undoStackSize||20;this.strokesLimit=25;this._filterRules=[];this.editor=a;this.reset();CKEDITOR.env.ie&&this.addFilterRule(function(a){return a.replace(/\s+data-cke-expando=".*?"/g,"")})};f.prototype={type:function(a,b){var c=f.getKeyGroup(a),g=this.strokesRecorded[c]+1;b=b||g>=this.strokesLimit;this.typing||(this.hasUndo=
-this.typing=!0,this.hasRedo=!1,this.onChange());b?(g=0,this.editor.fire("saveSnapshot")):this.editor.fire("change");this.strokesRecorded[c]=g;this.previousKeyGroup=c},keyGroupChanged:function(a){return f.getKeyGroup(a)!=this.previousKeyGroup},reset:function(){this.snapshots=[];this.index=-1;this.currentImage=null;this.hasRedo=this.hasUndo=!1;this.locked=null;this.resetType()},resetType:function(){this.strokesRecorded=[0,0];this.typing=!1;this.previousKeyGroup=-1},refreshState:function(){this.hasUndo=
-!!this.getNextImage(!0);this.hasRedo=!!this.getNextImage(!1);this.resetType();this.onChange()},save:function(b,e,c){var f=this.editor;if(this.locked||"ready"!=f.status||"wysiwyg"!=f.mode)return!1;var g=f.editable();if(!g||"ready"!=g.status)return!1;g=this.snapshots;e||(e=new a(f));if(!1===e.contents)return!1;if(this.currentImage)if(e.equalsContent(this.currentImage)){if(b||e.equalsSelection(this.currentImage))return!1}else!1!==c&&f.fire("change");g.splice(this.index+1,g.length-this.index-1);g.length==
-this.limit&&g.shift();this.index=g.push(e)-1;this.currentImage=e;!1!==c&&this.refreshState();return!0},restoreImage:function(a){var b=this.editor,c;a.bookmarks&&(b.focus(),c=b.getSelection());this.locked={level:999};this.editor.loadSnapshot(a.contents);a.bookmarks?c.selectBookmarks(a.bookmarks):CKEDITOR.env.ie&&(c=this.editor.document.getBody().$.createTextRange(),c.collapse(!0),c.select());this.locked=null;this.index=a.index;this.currentImage=this.snapshots[this.index];this.update();this.refreshState();
-b.fire("change")},getNextImage:function(a){var b=this.snapshots,c=this.currentImage,f;if(c)if(a)for(f=this.index-1;0<=f;f--){if(a=b[f],!c.equalsContent(a))return a.index=f,a}else for(f=this.index+1;f<b.length;f++)if(a=b[f],!c.equalsContent(a))return a.index=f,a;return null},redoable:function(){return this.enabled&&this.hasRedo},undoable:function(){return this.enabled&&this.hasUndo},undo:function(){if(this.undoable()){this.save(!0);var a=this.getNextImage(!0);if(a)return this.restoreImage(a),!0}return!1},
-redo:function(){if(this.redoable()&&(this.save(!0),this.redoable())){var a=this.getNextImage(!1);if(a)return this.restoreImage(a),!0}return!1},update:function(b){if(!this.locked){b||(b=new a(this.editor));for(var e=this.index,c=this.snapshots;0<e&&this.currentImage.equalsContent(c[e-1]);)--e;c.splice(e,this.index-e+1,b);this.index=e;this.currentImage=b}},updateSelection:function(a){if(!this.snapshots.length)return!1;var b=this.snapshots,c=b[b.length-1];return c.equalsContent(a)&&!c.equalsSelection(a)?
-(this.currentImage=b[b.length-1]=a,!0):!1},lock:function(b,e){if(this.locked)this.locked.level++;else if(b)this.locked={level:1};else{var c=null;if(e)c=!0;else{var f=new a(this.editor,!0);this.currentImage&&this.currentImage.equalsContent(f)&&(c=f)}this.locked={update:c,level:1}}},unlock:function(){if(this.locked&&!--this.locked.level){var b=this.locked.update;this.locked=null;if(!0===b)this.update();else if(b){var e=new a(this.editor,!0);b.equalsContent(e)||this.update()}}},addFilterRule:function(a){this._filterRules.push(a)}};
-f.navigationKeyCodes={37:1,38:1,39:1,40:1,36:1,35:1,33:1,34:1};f.keyGroups={PRINTABLE:0,FUNCTIONAL:1};f.isNavigationKey=function(a){return!!f.navigationKeyCodes[a]};f.getKeyGroup=function(a){var b=f.keyGroups;return g[a]?b.FUNCTIONAL:b.PRINTABLE};f.getOppositeKeyGroup=function(a){var b=f.keyGroups;return a==b.FUNCTIONAL?b.PRINTABLE:b.FUNCTIONAL};f.ieFunctionalKeysBug=function(a){return CKEDITOR.env.ie&&f.getKeyGroup(a)==f.keyGroups.FUNCTIONAL};var a=CKEDITOR.plugins.undo.Image=function(a,e){this.editor=
-a;a.fire("beforeUndoImage");var c=a.getSnapshot();c&&(this.contents=b(c,a.undoManager._filterRules));e||(this.bookmarks=(c=c&&a.getSelection())&&c.createBookmarks2(!0));a.fire("afterUndoImage")},m=/\b(?:href|src|name)="[^"]*?"/gi;a.prototype={equalsContent:function(a){var b=this.contents;a=a.contents;CKEDITOR.env.ie&&(CKEDITOR.env.ie7Compat||CKEDITOR.env.quirks)&&(b=b.replace(m,""),a=a.replace(m,""));return b!=a?!1:!0},equalsSelection:function(a){var b=this.bookmarks;a=a.bookmarks;if(b||a){if(!b||
-!a||b.length!=a.length)return!1;for(var c=0;c<b.length;c++){var f=b[c],g=a[c];if(f.startOffset!=g.startOffset||f.endOffset!=g.endOffset||!CKEDITOR.tools.arrayCompare(f.start,g.start)||!CKEDITOR.tools.arrayCompare(f.end,g.end))return!1}}return!0}};var k=CKEDITOR.plugins.undo.NativeEditingHandler=function(a){this.undoManager=a;this.ignoreInputEvent=!1;this.keyEventsStack=new l;this.lastKeydownImage=null};k.prototype={onKeydown:function(b){var e=b.data.getKey();if(229!==e)if(-1<CKEDITOR.tools.indexOf(h,
-b.data.getKeystroke()))b.data.preventDefault();else if(this.keyEventsStack.cleanUp(b),b=this.undoManager,this.keyEventsStack.getLast(e)||this.keyEventsStack.push(e),this.lastKeydownImage=new a(b.editor),f.isNavigationKey(e)||this.undoManager.keyGroupChanged(e))if(b.strokesRecorded[0]||b.strokesRecorded[1])b.save(!1,this.lastKeydownImage,!1),b.resetType()},onInput:function(){if(this.ignoreInputEvent)this.ignoreInputEvent=!1;else{var a=this.keyEventsStack.getLast();a||(a=this.keyEventsStack.push(0));
-this.keyEventsStack.increment(a.keyCode);this.keyEventsStack.getTotalInputs()>=this.undoManager.strokesLimit&&(this.undoManager.type(a.keyCode,!0),this.keyEventsStack.resetInputs())}},onKeyup:function(b){var e=this.undoManager;b=b.data.getKey();var c=this.keyEventsStack.getTotalInputs();this.keyEventsStack.remove(b);if(!(f.ieFunctionalKeysBug(b)&&this.lastKeydownImage&&this.lastKeydownImage.equalsContent(new a(e.editor,!0))))if(0<c)e.type(b);else if(f.isNavigationKey(b))this.onNavigationKey(!0)},
-onNavigationKey:function(b){var e=this.undoManager;!b&&e.save(!0,null,!1)||e.updateSelection(new a(e.editor));e.resetType()},ignoreInputEventListener:function(){this.ignoreInputEvent=!0},activateInputEventListener:function(){this.ignoreInputEvent=!1},attachListeners:function(){var a=this.undoManager.editor,b=a.editable(),c=this;b.attachListener(b,"keydown",function(a){c.onKeydown(a);if(f.ieFunctionalKeysBug(a.data.getKey()))c.onInput()},null,null,999);b.attachListener(b,CKEDITOR.env.ie?"keypress":
-"input",c.onInput,c,null,999);b.attachListener(b,"keyup",c.onKeyup,c,null,999);b.attachListener(b,"paste",c.ignoreInputEventListener,c,null,999);b.attachListener(b,"drop",c.ignoreInputEventListener,c,null,999);a.on("afterPaste",c.activateInputEventListener,c,null,999);b.attachListener(b.isInline()?b:a.document.getDocumentElement(),"click",function(){c.onNavigationKey()},null,null,999);b.attachListener(this.undoManager.editor,"blur",function(){c.keyEventsStack.remove(9)},null,null,999)}};var l=CKEDITOR.plugins.undo.KeyEventsStack=
-function(){this.stack=[]};l.prototype={push:function(a){a=this.stack.push({keyCode:a,inputs:0});return this.stack[a-1]},getLastIndex:function(a){if("number"!=typeof a)return this.stack.length-1;for(var b=this.stack.length;b--;)if(this.stack[b].keyCode==a)return b;return-1},getLast:function(a){a=this.getLastIndex(a);return-1!=a?this.stack[a]:null},increment:function(a){this.getLast(a).inputs++},remove:function(a){a=this.getLastIndex(a);-1!=a&&this.stack.splice(a,1)},resetInputs:function(a){if("number"==
-typeof a)this.getLast(a).inputs=0;else for(a=this.stack.length;a--;)this.stack[a].inputs=0},getTotalInputs:function(){for(var a=this.stack.length,b=0;a--;)b+=this.stack[a].inputs;return b},cleanUp:function(a){a=a.data.$;a.ctrlKey||a.metaKey||this.remove(17);a.shiftKey||this.remove(16);a.altKey||this.remove(18)}}})();(function(){function b(a){function b(a){var d=!1;c.attachListener(c,"keydown",function(){var b=g.getBody().getElementsByTag(a);if(!d){for(var c=0;c<b.count();c++)b.getItem(c).setCustomData("retain",
-!0);d=!0}},null,null,1);c.attachListener(c,"keyup",function(){var b=g.getElementsByTag(a);d&&(1==b.count()&&!b.getItem(0).getCustomData("retain")&&CKEDITOR.tools.isEmpty(b.getItem(0).getAttributes())&&b.getItem(0).remove(1),d=!1)})}var f=this.editor;if(f&&!f.isDetached()){var g=a.document,d=g.body,e=g.getElementById("cke_actscrpt");e&&e.parentNode.removeChild(e);(e=g.getElementById("cke_shimscrpt"))&&e.parentNode.removeChild(e);(e=g.getElementById("cke_basetagscrpt"))&&e.parentNode.removeChild(e);
-d.contentEditable=!0;CKEDITOR.env.ie&&(d.hideFocus=!0,d.disabled=!0,d.removeAttribute("disabled"));delete this._.isLoadingData;this.$=d;g=new CKEDITOR.dom.document(g);this.setup();this.fixInitialSelection();var c=this;CKEDITOR.env.ie&&!CKEDITOR.env.edge&&g.getDocumentElement().addClass(g.$.compatMode);CKEDITOR.env.ie&&!CKEDITOR.env.edge&&f.enterMode!=CKEDITOR.ENTER_P?b("p"):CKEDITOR.env.edge&&15>CKEDITOR.env.version&&f.enterMode!=CKEDITOR.ENTER_DIV&&b("div");if(CKEDITOR.env.webkit||CKEDITOR.env.ie&&
-10<CKEDITOR.env.version)g.getDocumentElement().on("mousedown",function(a){a.data.getTarget().is("html")&&setTimeout(function(){f.editable().focus()})});h(f);try{f.document.$.execCommand("2D-position",!1,!0)}catch(n){}(CKEDITOR.env.gecko||CKEDITOR.env.ie&&"CSS1Compat"==f.document.$.compatMode)&&this.attachListener(this,"keydown",function(a){var b=a.data.getKeystroke();if(33==b||34==b)if(CKEDITOR.env.ie)setTimeout(function(){f.getSelection().scrollIntoView()},0);else if(f.window.$.innerHeight>this.$.offsetHeight){var c=
-f.createRange();c[33==b?"moveToElementEditStart":"moveToElementEditEnd"](this);c.select();a.data.preventDefault()}});CKEDITOR.env.ie&&this.attachListener(g,"blur",function(){try{g.$.selection.empty()}catch(a){}});CKEDITOR.env.iOS&&this.attachListener(g,"touchend",function(){a.focus()});d=f.document.getElementsByTag("title").getItem(0);d.data("cke-title",d.getText());CKEDITOR.env.ie&&(f.document.$.title=this._.docTitle);CKEDITOR.tools.setTimeout(function(){"unloaded"==this.status&&(this.status="ready");
-f.fire("contentDom");this._.isPendingFocus&&(f.focus(),this._.isPendingFocus=!1);setTimeout(function(){f.fire("dataReady")},0)},0,this)}}function h(a){function b(){var d;a.editable().attachListener(a,"selectionChange",function(){var b=a.getSelection().getSelectedElement();b&&(d&&(d.detachEvent("onresizestart",f),d=null),b.$.attachEvent("onresizestart",f),d=b.$)})}function f(a){a.returnValue=!1}if(CKEDITOR.env.gecko)try{var g=a.document.$;g.execCommand("enableObjectResizing",!1,!a.config.disableObjectResizing);
-g.execCommand("enableInlineTableEditing",!1,!a.config.disableNativeTableHandles)}catch(d){}else CKEDITOR.env.ie&&11>CKEDITOR.env.version&&a.config.disableObjectResizing&&b(a)}function g(){var a=[];if(8<=CKEDITOR.document.$.documentMode){a.push("html.CSS1Compat [contenteditable\x3dfalse]{min-height:0 !important}");var b=[],f;for(f in CKEDITOR.dtd.$removeEmpty)b.push("html.CSS1Compat "+f+"[contenteditable\x3dfalse]");a.push(b.join(",")+"{display:inline-block}")}else CKEDITOR.env.gecko&&(a.push("html{height:100% !important}"),
-a.push("img:-moz-broken{-moz-force-broken-image-icon:1;min-width:24px;min-height:24px}"));a.push("html{cursor:text;*cursor:auto}");a.push("img,input,textarea{cursor:default}");return a.join("\n")}var f;CKEDITOR.plugins.add("wysiwygarea",{init:function(a){a.config.fullPage&&a.addFeature({allowedContent:"html head title; style [media,type]; body (*)[id]; meta link [*]",requiredContent:"body"});a.addMode("wysiwyg",function(b){function g(c){c&&c.removeListener();a.isDestroyed()||a.isDetached()||(a.editable(new f(a,
-d.$.contentWindow.document.body)),a.setData(a.getData(1),b))}var h="document.open();"+(CKEDITOR.env.ie?"("+CKEDITOR.tools.fixDomain+")();":"")+"document.close();",h=CKEDITOR.env.air?"javascript:void(0)":CKEDITOR.env.ie&&!CKEDITOR.env.edge?"javascript:void(function(){"+encodeURIComponent(h)+"}())":"",d=CKEDITOR.dom.element.createFromHtml('\x3ciframe src\x3d"'+h+'" frameBorder\x3d"0"\x3e\x3c/iframe\x3e');d.setStyles({width:"100%",height:"100%"});d.addClass("cke_wysiwyg_frame").addClass("cke_reset");
-h=a.ui.space("contents");h.append(d);var e=CKEDITOR.env.ie&&!CKEDITOR.env.edge||CKEDITOR.env.gecko;if(e)d.on("load",g);var c=a.title,n=a.fire("ariaEditorHelpLabel",{}).label;c&&(CKEDITOR.env.ie&&n&&(c+=", "+n),d.setAttribute("title",c));if(n){var c=CKEDITOR.tools.getNextId(),w=CKEDITOR.dom.element.createFromHtml('\x3cspan id\x3d"'+c+'" class\x3d"cke_voice_label"\x3e'+n+"\x3c/span\x3e");h.append(w,1);d.setAttribute("aria-describedby",c)}a.on("beforeModeUnload",function(a){a.removeListener();w&&w.remove()});
-d.setAttributes({tabIndex:a.tabIndex,allowTransparency:"true"});!e&&g();a.fire("ariaWidget",d)})}});CKEDITOR.editor.prototype.addContentsCss=function(a){var b=this.config,f=b.contentsCss;CKEDITOR.tools.isArray(f)||(b.contentsCss=f?[f]:[]);b.contentsCss.push(a)};f=CKEDITOR.tools.createClass({$:function(){this.base.apply(this,arguments);this._.frameLoadedHandler=CKEDITOR.tools.addFunction(function(a){CKEDITOR.tools.setTimeout(b,0,this,a)},this);this._.docTitle=this.getWindow().getFrame().getAttribute("title")},
-base:CKEDITOR.editable,proto:{setData:function(a,b){var f=this.editor;if(b)this.setHtml(a),this.fixInitialSelection(),f.fire("dataReady");else{this._.isLoadingData=!0;f._.dataStore={id:1};var h=f.config,d=h.fullPage,e=h.docType,c=CKEDITOR.tools.buildStyleHtml(g()).replace(/<style>/,'\x3cstyle data-cke-temp\x3d"1"\x3e');d||(c+=CKEDITOR.tools.buildStyleHtml(f.config.contentsCss));var n=h.baseHref?'\x3cbase href\x3d"'+h.baseHref+'" data-cke-temp\x3d"1" /\x3e':"";d&&(a=a.replace(/<!DOCTYPE[^>]*>/i,function(a){f.docType=
-e=a;return""}).replace(/<\?xml\s[^\?]*\?>/i,function(a){f.xmlDeclaration=a;return""}));a=f.dataProcessor.toHtml(a);d?(/<body[\s|>]/.test(a)||(a="\x3cbody\x3e"+a),/<html[\s|>]/.test(a)||(a="\x3chtml\x3e"+a+"\x3c/html\x3e"),/<head[\s|>]/.test(a)?/<title[\s|>]/.test(a)||(a=a.replace(/<head[^>]*>/,"$\x26\x3ctitle\x3e\x3c/title\x3e")):a=a.replace(/<html[^>]*>/,"$\x26\x3chead\x3e\x3ctitle\x3e\x3c/title\x3e\x3c/head\x3e"),n&&(a=a.replace(/<head[^>]*?>/,"$\x26"+n)),a=a.replace(/<\/head\s*>/,c+"$\x26"),a=
-e+a):a=h.docType+'\x3chtml dir\x3d"'+h.contentsLangDirection+'" lang\x3d"'+(h.contentsLanguage||f.langCode)+'"\x3e\x3chead\x3e\x3ctitle\x3e'+this._.docTitle+"\x3c/title\x3e"+n+c+"\x3c/head\x3e\x3cbody"+(h.bodyId?' id\x3d"'+h.bodyId+'"':"")+(h.bodyClass?' class\x3d"'+h.bodyClass+'"':"")+"\x3e"+a+"\x3c/body\x3e\x3c/html\x3e";CKEDITOR.env.gecko&&(a=a.replace(/<body/,'\x3cbody contenteditable\x3d"true" '),2E4>CKEDITOR.env.version&&(a=a.replace(/<body[^>]*>/,"$\x26\x3c!-- cke-content-start --\x3e")));
-h='\x3cscript id\x3d"cke_actscrpt" type\x3d"text/javascript"'+(CKEDITOR.env.ie?' defer\x3d"defer" ':"")+"\x3evar wasLoaded\x3d0;function onload(){if(!wasLoaded)window.parent.CKEDITOR.tools.callFunction("+this._.frameLoadedHandler+",window);wasLoaded\x3d1;}"+(CKEDITOR.env.ie?"onload();":'document.addEventListener("DOMContentLoaded", onload, false );')+"\x3c/script\x3e";CKEDITOR.env.ie&&9>CKEDITOR.env.version&&(h+='\x3cscript id\x3d"cke_shimscrpt"\x3ewindow.parent.CKEDITOR.tools.enableHtml5Elements(document)\x3c/script\x3e');
-n&&CKEDITOR.env.ie&&10>CKEDITOR.env.version&&(h+='\x3cscript id\x3d"cke_basetagscrpt"\x3evar baseTag \x3d document.querySelector( "base" );baseTag.href \x3d baseTag.href;\x3c/script\x3e');a=a.replace(/(?=\s*<\/(:?head)>)/,h);this.clearCustomData();this.clearListeners();f.fire("contentDomUnload");var w=this.getDocument();try{w.write(a)}catch(z){setTimeout(function(){w.write(a)},0)}}},getData:function(a){if(a)return this.getHtml();a=this.editor;var b=a.config,f=b.fullPage,g=f&&a.docType,d=f&&a.xmlDeclaration,
+f.length-1;0<=a;a--)d(f[a]);h?e(h,!0):g&&(c[0].moveToPosition(g,CKEDITOR.POSITION_BEFORE_START),c[0].select(),g.remove())}else a instanceof CKEDITOR.dom.element&&(c=a.getParent(),1==c.getChildCount()?c.remove():a.remove())}function e(a,b){var d=a.getDocument(),c=CKEDITOR.document;CKEDITOR.env.ie&&10==CKEDITOR.env.version&&(c.focus(),d.focus());d=new CKEDITOR.dom.range(d);d["moveToElementEdit"+(b?"End":"Start")](a)||(d.selectNodeContents(a),d.collapse(b?!1:!0));d.select(!0)}function c(a,b,d){a=a[b];
+if("undefined"==typeof d)return a;for(b=0;a&&b<a.length;b++){if(d.is&&a[b]==d.$)return b;if(b==d)return new CKEDITOR.dom.element(a[b])}return d.is?-1:null}function n(a,d,e){var f=b(a),g;if((d?1!=f.length:2>f.length)||(g=a.getCommonAncestor())&&g.type==CKEDITOR.NODE_ELEMENT&&g.is("table"))return!1;a=f[0];g=a.getAscendant("table");var h=CKEDITOR.tools.buildTableMap(g),k=h.length,l=h[0].length,m=a.getParent().$.rowIndex,n=c(h,m,a),p;if(d){var v;try{var x=parseInt(a.getAttribute("rowspan"),10)||1;p=parseInt(a.getAttribute("colspan"),
+10)||1;v=h["up"==d?m-x:"down"==d?m+x:m]["left"==d?n-p:"right"==d?n+p:n]}catch(H){return!1}if(!v||a.$==v)return!1;f["up"==d||"left"==d?"unshift":"push"](new CKEDITOR.dom.element(v))}d=a.getDocument();var E=m,x=v=0,N=!e&&new CKEDITOR.dom.documentFragment(d),J=0;for(d=0;d<f.length;d++){p=f[d];var L=p.getParent(),D=p.getFirst(),I=p.$.colSpan,P=p.$.rowSpan,L=L.$.rowIndex,M=c(h,L,p),J=J+I*P,x=Math.max(x,M-n+I);v=Math.max(v,L-m+P);e||(I=p,(P=I.getBogus())&&P.remove(),I.trim(),p.getChildren().count()&&(L==
+E||!D||D.isBlockBoundary&&D.isBlockBoundary({br:1})||(E=N.getLast(CKEDITOR.dom.walker.whitespaces(!0)),!E||E.is&&E.is("br")||N.append("br")),p.moveChildren(N)),d?p.remove():p.setHtml(""));E=L}if(e)return v*x==J;N.moveChildren(a);a.appendBogus();x>=l?a.removeAttribute("rowSpan"):a.$.rowSpan=v;v>=k?a.removeAttribute("colSpan"):a.$.colSpan=x;e=new CKEDITOR.dom.nodeList(g.$.rows);f=e.count();for(d=f-1;0<=d;d--)g=e.getItem(d),g.$.cells.length||(g.remove(),f++);return a}function v(a,d){var e=b(a);if(1<
+e.length)return!1;if(d)return!0;var e=e[0],f=e.getParent(),g=f.getAscendant("table"),h=CKEDITOR.tools.buildTableMap(g),k=f.$.rowIndex,l=c(h,k,e),m=e.$.rowSpan,n;if(1<m){n=Math.ceil(m/2);for(var m=Math.floor(m/2),f=k+n,g=new CKEDITOR.dom.element(g.$.rows[f]),h=c(h,f),p,f=e.clone(),k=0;k<h.length;k++)if(p=h[k],p.parentNode==g.$&&k>l){f.insertBefore(new CKEDITOR.dom.element(p));break}else p=null;p||g.append(f)}else for(m=n=1,g=f.clone(),g.insertAfter(f),g.append(f=e.clone()),p=c(h,k),l=0;l<p.length;l++)p[l].rowSpan++;
+f.appendBogus();e.$.rowSpan=n;f.$.rowSpan=m;1==n&&e.removeAttribute("rowSpan");1==m&&f.removeAttribute("rowSpan");return f}function x(a,d){var e=b(a);if(1<e.length)return!1;if(d)return!0;var e=e[0],f=e.getParent(),g=f.getAscendant("table"),g=CKEDITOR.tools.buildTableMap(g),h=c(g,f.$.rowIndex,e),k=e.$.colSpan;if(1<k)f=Math.ceil(k/2),k=Math.floor(k/2);else{for(var k=f=1,l=[],m=0;m<g.length;m++){var n=g[m];l.push(n[h]);1<n[h].rowSpan&&(m+=n[h].rowSpan-1)}for(g=0;g<l.length;g++)l[g].colSpan++}g=e.clone();
+g.insertAfter(e);g.appendBogus();e.$.colSpan=f;g.$.colSpan=k;1==f&&e.removeAttribute("colSpan");1==k&&g.removeAttribute("colSpan");return g}var p=CKEDITOR.tools.isArray;CKEDITOR.plugins.tabletools={requires:"table,dialog,contextmenu",init:function(a){function c(a){return CKEDITOR.tools.extend(a||{},{contextSensitive:1,refresh:function(a,b){this.setState(b.contains({td:1,th:1},1)?CKEDITOR.TRISTATE_OFF:CKEDITOR.TRISTATE_DISABLED)}})}function f(b,d){var c=a.addCommand(b,d);a.addFeature(c)}var p=a.lang.table,
+z=CKEDITOR.tools.style.parse,y="td{width} td{height} td{border-color} td{background-color} td{white-space} td{vertical-align} td{text-align} td[colspan] td[rowspan] th".split(" ");f("cellProperties",new CKEDITOR.dialogCommand("cellProperties",c({allowedContent:"td th{width,height,border-color,background-color,white-space,vertical-align,text-align}[colspan,rowspan]",requiredContent:y,contentTransformations:[[{element:"td",left:function(a){return a.styles.background&&z.background(a.styles.background).color},
+right:function(a){a.styles["background-color"]=z.background(a.styles.background).color}},{element:"td",check:"td{vertical-align}",left:function(a){return a.attributes&&a.attributes.valign},right:function(a){a.styles["vertical-align"]=a.attributes.valign;delete a.attributes.valign}}],[{element:"tr",check:"td{height}",left:function(a){return a.styles&&a.styles.height},right:function(a){CKEDITOR.tools.array.forEach(a.children,function(b){b.name in{td:1,th:1}&&(b.attributes["cke-row-height"]=a.styles.height)});
+delete a.styles.height}}],[{element:"td",check:"td{height}",left:function(a){return(a=a.attributes)&&a["cke-row-height"]},right:function(a){a.styles.height=a.attributes["cke-row-height"];delete a.attributes["cke-row-height"]}}]]})));CKEDITOR.dialog.add("cellProperties",this.path+"dialogs/tableCell.js");f("rowDelete",c({requiredContent:"table",exec:function(a){a=a.getSelection();(a=g(a))&&e(a)}}));f("rowInsertBefore",c({requiredContent:"table",exec:function(a){a=a.getSelection();a=b(a);h(a,!0)}}));
+f("rowInsertAfter",c({requiredContent:"table",exec:function(a){a=a.getSelection();a=b(a);h(a)}}));f("columnDelete",c({requiredContent:"table",exec:function(a){a=a.getSelection();(a=l(a))&&e(a,!0)}}));f("columnInsertBefore",c({requiredContent:"table",exec:function(a){a=a.getSelection();a=b(a);m(a,!0)}}));f("columnInsertAfter",c({requiredContent:"table",exec:function(a){a=a.getSelection();a=b(a);m(a)}}));f("cellDelete",c({requiredContent:"table",exec:function(a){a=a.getSelection();d(a)}}));f("cellMerge",
+c({allowedContent:"td[colspan,rowspan]",requiredContent:"td[colspan,rowspan]",exec:function(a,b){b.cell=n(a.getSelection());e(b.cell,!0)}}));f("cellMergeRight",c({allowedContent:"td[colspan]",requiredContent:"td[colspan]",exec:function(a,b){b.cell=n(a.getSelection(),"right");e(b.cell,!0)}}));f("cellMergeDown",c({allowedContent:"td[rowspan]",requiredContent:"td[rowspan]",exec:function(a,b){b.cell=n(a.getSelection(),"down");e(b.cell,!0)}}));f("cellVerticalSplit",c({allowedContent:"td[rowspan]",requiredContent:"td[rowspan]",
+exec:function(a){e(x(a.getSelection()))}}));f("cellHorizontalSplit",c({allowedContent:"td[colspan]",requiredContent:"td[colspan]",exec:function(a){e(v(a.getSelection()))}}));f("cellInsertBefore",c({requiredContent:"table",exec:function(a){a=a.getSelection();k(a,!0)}}));f("cellInsertAfter",c({requiredContent:"table",exec:function(a){a=a.getSelection();k(a)}}));a.addMenuItems&&a.addMenuItems({tablecell:{label:p.cell.menu,group:"tablecell",order:1,getItems:function(){var d=a.getSelection(),c=b(d),d=
+{tablecell_insertBefore:CKEDITOR.TRISTATE_OFF,tablecell_insertAfter:CKEDITOR.TRISTATE_OFF,tablecell_delete:CKEDITOR.TRISTATE_OFF,tablecell_merge:n(d,null,!0)?CKEDITOR.TRISTATE_OFF:CKEDITOR.TRISTATE_DISABLED,tablecell_merge_right:n(d,"right",!0)?CKEDITOR.TRISTATE_OFF:CKEDITOR.TRISTATE_DISABLED,tablecell_merge_down:n(d,"down",!0)?CKEDITOR.TRISTATE_OFF:CKEDITOR.TRISTATE_DISABLED,tablecell_split_vertical:x(d,!0)?CKEDITOR.TRISTATE_OFF:CKEDITOR.TRISTATE_DISABLED,tablecell_split_horizontal:v(d,!0)?CKEDITOR.TRISTATE_OFF:
+CKEDITOR.TRISTATE_DISABLED};a.filter.check(y)&&(d.tablecell_properties=0<c.length?CKEDITOR.TRISTATE_OFF:CKEDITOR.TRISTATE_DISABLED);return d}},tablecell_insertBefore:{label:p.cell.insertBefore,group:"tablecell",command:"cellInsertBefore",order:5},tablecell_insertAfter:{label:p.cell.insertAfter,group:"tablecell",command:"cellInsertAfter",order:10},tablecell_delete:{label:p.cell.deleteCell,group:"tablecell",command:"cellDelete",order:15},tablecell_merge:{label:p.cell.merge,group:"tablecell",command:"cellMerge",
+order:16},tablecell_merge_right:{label:p.cell.mergeRight,group:"tablecell",command:"cellMergeRight",order:17},tablecell_merge_down:{label:p.cell.mergeDown,group:"tablecell",command:"cellMergeDown",order:18},tablecell_split_horizontal:{label:p.cell.splitHorizontal,group:"tablecell",command:"cellHorizontalSplit",order:19},tablecell_split_vertical:{label:p.cell.splitVertical,group:"tablecell",command:"cellVerticalSplit",order:20},tablecell_properties:{label:p.cell.title,group:"tablecellproperties",command:"cellProperties",
+order:21},tablerow:{label:p.row.menu,group:"tablerow",order:1,getItems:function(){return{tablerow_insertBefore:CKEDITOR.TRISTATE_OFF,tablerow_insertAfter:CKEDITOR.TRISTATE_OFF,tablerow_delete:CKEDITOR.TRISTATE_OFF}}},tablerow_insertBefore:{label:p.row.insertBefore,group:"tablerow",command:"rowInsertBefore",order:5},tablerow_insertAfter:{label:p.row.insertAfter,group:"tablerow",command:"rowInsertAfter",order:10},tablerow_delete:{label:p.row.deleteRow,group:"tablerow",command:"rowDelete",order:15},
+tablecolumn:{label:p.column.menu,group:"tablecolumn",order:1,getItems:function(){return{tablecolumn_insertBefore:CKEDITOR.TRISTATE_OFF,tablecolumn_insertAfter:CKEDITOR.TRISTATE_OFF,tablecolumn_delete:CKEDITOR.TRISTATE_OFF}}},tablecolumn_insertBefore:{label:p.column.insertBefore,group:"tablecolumn",command:"columnInsertBefore",order:5},tablecolumn_insertAfter:{label:p.column.insertAfter,group:"tablecolumn",command:"columnInsertAfter",order:10},tablecolumn_delete:{label:p.column.deleteColumn,group:"tablecolumn",
+command:"columnDelete",order:15}});a.contextMenu&&a.contextMenu.addListener(function(a,b,d){return(a=d.contains({td:1,th:1},1))&&!a.isReadOnly()?{tablecell:CKEDITOR.TRISTATE_OFF,tablerow:CKEDITOR.TRISTATE_OFF,tablecolumn:CKEDITOR.TRISTATE_OFF}:null})},getCellColIndex:f,insertRow:h,insertColumn:m,getSelectedCells:b};CKEDITOR.plugins.add("tabletools",CKEDITOR.plugins.tabletools)})();CKEDITOR.tools.buildTableMap=function(b,h,g,f,a){b=b.$.rows;g=g||0;f="number"===typeof f?f:b.length-1;a="number"===typeof a?
+a:-1;var m=-1,l=[];for(h=h||0;h<=f;h++){m++;!l[m]&&(l[m]=[]);for(var k=-1,d=g;d<=(-1===a?b[h].cells.length-1:a);d++){var e=b[h].cells[d];if(!e)break;for(k++;l[m][k];)k++;for(var c=isNaN(e.colSpan)?1:e.colSpan,e=isNaN(e.rowSpan)?1:e.rowSpan,n=0;n<e&&!(h+n>f);n++){l[m+n]||(l[m+n]=[]);for(var v=0;v<c;v++)l[m+n][k+v]=b[h].cells[d]}k+=c-1;if(-1!==a&&k>=a)break}}return l};(function(){function b(a){return CKEDITOR.env.ie?a.$.clientWidth:parseInt(a.getComputedStyle("width"),10)}function h(a,b){var c=a.getComputedStyle("border-"+
+b+"-width"),f={thin:"0px",medium:"1px",thick:"2px"};0>c.indexOf("px")&&(c=c in f&&"none"!=a.getComputedStyle("border-style")?f[c]:0);return parseInt(c,10)}function g(a){var b=[],c={},f="rtl"==a.getComputedStyle("direction");CKEDITOR.tools.array.forEach(a.$.rows,function(g,k){var l=-1,m=0,q=null;g?(m=new CKEDITOR.dom.element(g),q={height:m.$.offsetHeight,position:m.getDocumentPosition()}):q=void 0;for(var m=q.height,q=q.position,w=0,t=g.cells.length;w<t;w++){var z=new CKEDITOR.dom.element(g.cells[w]),
+y=g.cells[w+1]&&new CKEDITOR.dom.element(g.cells[w+1]),l=l+(z.$.colSpan||1),u,C,A=z.getDocumentPosition().x;f?C=A+h(z,"left"):u=A+z.$.offsetWidth-h(z,"right");y?(A=y.getDocumentPosition().x,f?u=A+y.$.offsetWidth-h(y,"right"):C=A+h(y,"left")):(A=a.getDocumentPosition().x,f?u=A:C=A+a.$.offsetWidth);z=Math.max(C-u,3);z={table:a,index:l,x:u,y:q.y,width:z,height:m,rtl:f};c[l]=c[l]||[];c[l].push(z);z.alignedPillars=c[l];b.push(z)}});return b}function f(a){(a.data||a).preventDefault()}function a(a){function e(){w=
+0;q.setOpacity(0);z&&c();var a=p.table;setTimeout(function(){a.removeCustomData("_cke_table_pillars")},0);r.removeListener("dragstart",f)}function c(){for(var c=p.rtl,e=c?C.length:u.length,f=0,g=0;g<e;g++){var k=u[g],m=C[g],n=p.table;CKEDITOR.tools.setTimeout(function(b,g,h,k,m,p){b&&b.setStyle("width",l(Math.max(g+p,1)));h&&h.setStyle("width",l(Math.max(k-p,1)));m&&n.setStyle("width",l(m+p*(c?-1:1)));++f==e&&a.fire("saveSnapshot")},0,this,[k,k&&b(k),m,m&&b(m),(!k||!m)&&b(n)+h(n,"left")+h(n,"right"),
+z])}}function g(c){f(c);a.fire("saveSnapshot");c=p.index;for(var e=CKEDITOR.tools.buildTableMap(p.table),h=[],k=[],l=Number.MAX_VALUE,n=l,y=p.rtl,L=0,D=e.length;L<D;L++){var I=e[L],P=I[c+(y?1:0)],I=I[c+(y?0:1)],P=P&&new CKEDITOR.dom.element(P),I=I&&new CKEDITOR.dom.element(I);P&&I&&P.equals(I)||(P&&(l=Math.min(l,b(P))),I&&(n=Math.min(n,b(I))),h.push(P),k.push(I))}u=h;C=k;A=p.x-l;B=p.x+n;q.setOpacity(.5);t=parseInt(q.getStyle("left"),10);z=0;w=1;q.on("mousemove",x);r.on("dragstart",f);r.on("mouseup",
+m,this)}function m(a){a.removeListener();e()}function x(a){y(a.data.getPageOffset().x)}var p,r,q,w,t,z,y,u,C,A,B;r=a.document;q=CKEDITOR.dom.element.createFromHtml('\x3cdiv data-cke-temp\x3d1 contenteditable\x3dfalse unselectable\x3don style\x3d"position:absolute;cursor:col-resize;filter:alpha(opacity\x3d0);opacity:0;padding:0;background-color:#004;background-image:none;border:0px none;z-index:10"\x3e\x3c/div\x3e',r);a.on("destroy",function(){q.remove()});k||r.getDocumentElement().append(q);this.attachTo=
+function(a){var b,d,c;w||(k&&(r.getBody().append(q),z=0),p=a,b=p.alignedPillars[0],d=p.alignedPillars[p.alignedPillars.length-1],c=b.y,b=d.height+d.y-b.y,q.setStyles({width:l(a.width),height:l(b),left:l(a.x),top:l(c)}),k&&q.setOpacity(.25),q.on("mousedown",g,this),r.getBody().setStyle("cursor","col-resize"),q.show())};y=this.move=function(a,b){if(!p)return 0;if(!(w||a>=p.x&&a<=p.x+p.width&&b>=p.y&&b<=p.y+p.height))return p=null,w=z=0,r.removeListener("mouseup",m),q.removeListener("mousedown",g),q.removeListener("mousemove",
+x),r.getBody().setStyle("cursor","auto"),k?q.remove():q.hide(),0;var d=a-Math.round(q.$.offsetWidth/2);if(w){if(d==A||d==B)return 1;d=Math.max(d,A);d=Math.min(d,B);z=d-t}q.setStyle("left",l(d));return 1}}function m(a){var b=a.data.getTarget();if("mouseout"==a.name){if(!b.is("table"))return;for(var c=new CKEDITOR.dom.element(a.data.$.relatedTarget||a.data.$.toElement);c&&c.$&&!c.equals(b)&&!c.is("body");)c=c.getParent();if(!c||c.equals(b))return}b.getAscendant("table",1).removeCustomData("_cke_table_pillars");
+a.removeListener()}var l=CKEDITOR.tools.cssLength,k=CKEDITOR.env.ie&&(CKEDITOR.env.ie7Compat||CKEDITOR.env.quirks);CKEDITOR.plugins.add("tableresize",{requires:"tabletools",init:function(b){b.on("contentDom",function(){var e,c=b.editable();c.attachListener(c.isInline()?c:b.document,"mousemove",function(c){c=c.data;var h=c.getTarget();if(h.type==CKEDITOR.NODE_ELEMENT){var k=c.getPageOffset().x,l=c.getPageOffset().y;if(e&&e.move(k,l))f(c);else if(h.is("table")||h.getAscendant({thead:1,tbody:1,tfoot:1},
+1))if(c=h.getAscendant("table",1),b.editable().contains(c)){(h=c.getCustomData("_cke_table_pillars"))||(c.setCustomData("_cke_table_pillars",h=g(c)),c.on("mouseout",m),c.on("mousedown",m));a:{c=h;for(var h=0,r=c.length;h<r;h++){var q=c[h];if(k>=q.x&&k<=q.x+q.width&&l>=q.y&&l<=q.y+q.height){k=q;break a}}k=null}k&&(!e&&(e=new a(b)),e.attachTo(k))}}})})}})})();"use strict";(function(){function b(a,b){return CKEDITOR.tools.array.reduce(b,function(a,b){return b(a)},a)}var h=[CKEDITOR.CTRL+90,CKEDITOR.CTRL+
+89,CKEDITOR.CTRL+CKEDITOR.SHIFT+90],g={8:1,46:1};CKEDITOR.plugins.add("undo",{init:function(a){function b(a){g.enabled&&!1!==a.data.command.canUndo&&g.save()}function c(){g.enabled=a.readOnly?!1:"wysiwyg"==a.mode;g.onChange()}var g=a.undoManager=new f(a),k=g.editingHandler=new l(g),m=a.addCommand("undo",{exec:function(){g.undo()&&(a.selectionChange(),this.fire("afterUndo"))},startDisabled:!0,canUndo:!1}),p=a.addCommand("redo",{exec:function(){g.redo()&&(a.selectionChange(),this.fire("afterRedo"))},
+startDisabled:!0,canUndo:!1});a.setKeystroke([[h[0],"undo"],[h[1],"redo"],[h[2],"redo"]]);g.onChange=function(){m.setState(g.undoable()?CKEDITOR.TRISTATE_OFF:CKEDITOR.TRISTATE_DISABLED);p.setState(g.redoable()?CKEDITOR.TRISTATE_OFF:CKEDITOR.TRISTATE_DISABLED)};a.on("beforeCommandExec",b);a.on("afterCommandExec",b);a.on("saveSnapshot",function(a){g.save(a.data&&a.data.contentOnly)});a.on("contentDom",k.attachListeners,k);a.on("instanceReady",function(){a.fire("saveSnapshot")});a.on("beforeModeUnload",
+function(){"wysiwyg"==a.mode&&g.save(!0)});a.on("mode",c);a.on("readOnly",c);a.ui.addButton&&(a.ui.addButton("Undo",{label:a.lang.undo.undo,command:"undo",toolbar:"undo,10"}),a.ui.addButton("Redo",{label:a.lang.undo.redo,command:"redo",toolbar:"undo,20"}));a.resetUndo=function(){g.reset();a.fire("saveSnapshot")};a.on("updateSnapshot",function(){g.currentImage&&g.update()});a.on("lockSnapshot",function(a){a=a.data;g.lock(a&&a.dontUpdate,a&&a.forceUpdate)});a.on("unlockSnapshot",g.unlock,g)}});CKEDITOR.plugins.undo=
+{};var f=CKEDITOR.plugins.undo.UndoManager=function(a){this.strokesRecorded=[0,0];this.locked=null;this.previousKeyGroup=-1;this.limit=a.config.undoStackSize||20;this.strokesLimit=25;this._filterRules=[];this.editor=a;this.reset();CKEDITOR.env.ie&&this.addFilterRule(function(a){return a.replace(/\s+data-cke-expando=".*?"/g,"")})};f.prototype={type:function(a,b){var c=f.getKeyGroup(a),g=this.strokesRecorded[c]+1;b=b||g>=this.strokesLimit;this.typing||(this.hasUndo=this.typing=!0,this.hasRedo=!1,this.onChange());
+b?(g=0,this.editor.fire("saveSnapshot")):this.editor.fire("change");this.strokesRecorded[c]=g;this.previousKeyGroup=c},keyGroupChanged:function(a){return f.getKeyGroup(a)!=this.previousKeyGroup},reset:function(){this.snapshots=[];this.index=-1;this.currentImage=null;this.hasRedo=this.hasUndo=!1;this.locked=null;this.resetType()},resetType:function(){this.strokesRecorded=[0,0];this.typing=!1;this.previousKeyGroup=-1},refreshState:function(){this.hasUndo=!!this.getNextImage(!0);this.hasRedo=!!this.getNextImage(!1);
+this.resetType();this.onChange()},save:function(b,e,c){var f=this.editor;if(this.locked||"ready"!=f.status||"wysiwyg"!=f.mode)return!1;var g=f.editable();if(!g||"ready"!=g.status)return!1;g=this.snapshots;e||(e=new a(f));if(!1===e.contents)return!1;if(this.currentImage)if(e.equalsContent(this.currentImage)){if(b||e.equalsSelection(this.currentImage))return!1}else!1!==c&&f.fire("change");g.splice(this.index+1,g.length-this.index-1);g.length==this.limit&&g.shift();this.index=g.push(e)-1;this.currentImage=
+e;!1!==c&&this.refreshState();return!0},restoreImage:function(a){var b=this.editor,c;a.bookmarks&&(b.focus(),c=b.getSelection());this.locked={level:999};this.editor.loadSnapshot(a.contents);a.bookmarks?c.selectBookmarks(a.bookmarks):CKEDITOR.env.ie&&(c=this.editor.document.getBody().$.createTextRange(),c.collapse(!0),c.select());this.locked=null;this.index=a.index;this.currentImage=this.snapshots[this.index];this.update();this.refreshState();b.fire("change")},getNextImage:function(a){var b=this.snapshots,
+c=this.currentImage,f;if(c)if(a)for(f=this.index-1;0<=f;f--){if(a=b[f],!c.equalsContent(a))return a.index=f,a}else for(f=this.index+1;f<b.length;f++)if(a=b[f],!c.equalsContent(a))return a.index=f,a;return null},redoable:function(){return this.enabled&&this.hasRedo},undoable:function(){return this.enabled&&this.hasUndo},undo:function(){if(this.undoable()){this.save(!0);var a=this.getNextImage(!0);if(a)return this.restoreImage(a),!0}return!1},redo:function(){if(this.redoable()&&(this.save(!0),this.redoable())){var a=
+this.getNextImage(!1);if(a)return this.restoreImage(a),!0}return!1},update:function(b){if(!this.locked){b||(b=new a(this.editor));for(var e=this.index,c=this.snapshots;0<e&&this.currentImage.equalsContent(c[e-1]);)--e;c.splice(e,this.index-e+1,b);this.index=e;this.currentImage=b}},updateSelection:function(a){if(!this.snapshots.length)return!1;var b=this.snapshots,c=b[b.length-1];return c.equalsContent(a)&&!c.equalsSelection(a)?(this.currentImage=b[b.length-1]=a,!0):!1},lock:function(b,e){if(this.locked)this.locked.level++;
+else if(b)this.locked={level:1};else{var c=null;if(e)c=!0;else{var f=new a(this.editor,!0);this.currentImage&&this.currentImage.equalsContent(f)&&(c=f)}this.locked={update:c,level:1}}},unlock:function(){if(this.locked&&!--this.locked.level){var b=this.locked.update;this.locked=null;if(!0===b)this.update();else if(b){var e=new a(this.editor,!0);b.equalsContent(e)||this.update()}}},addFilterRule:function(a){this._filterRules.push(a)}};f.navigationKeyCodes={37:1,38:1,39:1,40:1,36:1,35:1,33:1,34:1};f.keyGroups=
+{PRINTABLE:0,FUNCTIONAL:1};f.isNavigationKey=function(a){return!!f.navigationKeyCodes[a]};f.getKeyGroup=function(a){var b=f.keyGroups;return g[a]?b.FUNCTIONAL:b.PRINTABLE};f.getOppositeKeyGroup=function(a){var b=f.keyGroups;return a==b.FUNCTIONAL?b.PRINTABLE:b.FUNCTIONAL};f.ieFunctionalKeysBug=function(a){return CKEDITOR.env.ie&&f.getKeyGroup(a)==f.keyGroups.FUNCTIONAL};var a=CKEDITOR.plugins.undo.Image=function(a,e){this.editor=a;a.fire("beforeUndoImage");var c=a.getSnapshot();c&&(this.contents=
+b(c,a.undoManager._filterRules));e||(this.bookmarks=(c=c&&a.getSelection())&&c.createBookmarks2(!0));a.fire("afterUndoImage")},m=/\b(?:href|src|name)="[^"]*?"/gi;a.prototype={equalsContent:function(a){var b=this.contents;a=a.contents;CKEDITOR.env.ie&&(CKEDITOR.env.ie7Compat||CKEDITOR.env.quirks)&&(b=b.replace(m,""),a=a.replace(m,""));return b!=a?!1:!0},equalsSelection:function(a){var b=this.bookmarks;a=a.bookmarks;if(b||a){if(!b||!a||b.length!=a.length)return!1;for(var c=0;c<b.length;c++){var f=b[c],
+g=a[c];if(f.startOffset!=g.startOffset||f.endOffset!=g.endOffset||!CKEDITOR.tools.arrayCompare(f.start,g.start)||!CKEDITOR.tools.arrayCompare(f.end,g.end))return!1}}return!0}};var l=CKEDITOR.plugins.undo.NativeEditingHandler=function(a){this.undoManager=a;this.ignoreInputEvent=!1;this.keyEventsStack=new k;this.lastKeydownImage=null};l.prototype={onKeydown:function(b){var e=b.data.getKey();if(229!==e)if(-1<CKEDITOR.tools.indexOf(h,b.data.getKeystroke()))b.data.preventDefault();else if(this.keyEventsStack.cleanUp(b),
+b=this.undoManager,this.keyEventsStack.getLast(e)||this.keyEventsStack.push(e),this.lastKeydownImage=new a(b.editor),f.isNavigationKey(e)||this.undoManager.keyGroupChanged(e))if(b.strokesRecorded[0]||b.strokesRecorded[1])b.save(!1,this.lastKeydownImage,!1),b.resetType()},onInput:function(){if(this.ignoreInputEvent)this.ignoreInputEvent=!1;else{var a=this.keyEventsStack.getLast();a||(a=this.keyEventsStack.push(0));this.keyEventsStack.increment(a.keyCode);this.keyEventsStack.getTotalInputs()>=this.undoManager.strokesLimit&&
+(this.undoManager.type(a.keyCode,!0),this.keyEventsStack.resetInputs())}},onKeyup:function(b){var e=this.undoManager;b=b.data.getKey();var c=this.keyEventsStack.getTotalInputs();this.keyEventsStack.remove(b);if(!(f.ieFunctionalKeysBug(b)&&this.lastKeydownImage&&this.lastKeydownImage.equalsContent(new a(e.editor,!0))))if(0<c)e.type(b);else if(f.isNavigationKey(b))this.onNavigationKey(!0)},onNavigationKey:function(b){var e=this.undoManager;!b&&e.save(!0,null,!1)||e.updateSelection(new a(e.editor));
+e.resetType()},ignoreInputEventListener:function(){this.ignoreInputEvent=!0},activateInputEventListener:function(){this.ignoreInputEvent=!1},attachListeners:function(){var a=this.undoManager.editor,b=a.editable(),c=this;b.attachListener(b,"keydown",function(a){c.onKeydown(a);if(f.ieFunctionalKeysBug(a.data.getKey()))c.onInput()},null,null,999);b.attachListener(b,CKEDITOR.env.ie?"keypress":"input",c.onInput,c,null,999);b.attachListener(b,"keyup",c.onKeyup,c,null,999);b.attachListener(b,"paste",c.ignoreInputEventListener,
+c,null,999);b.attachListener(b,"drop",c.ignoreInputEventListener,c,null,999);a.on("afterPaste",c.activateInputEventListener,c,null,999);b.attachListener(b.isInline()?b:a.document.getDocumentElement(),"click",function(){c.onNavigationKey()},null,null,999);b.attachListener(this.undoManager.editor,"blur",function(){c.keyEventsStack.remove(9)},null,null,999)}};var k=CKEDITOR.plugins.undo.KeyEventsStack=function(){this.stack=[]};k.prototype={push:function(a){a=this.stack.push({keyCode:a,inputs:0});return this.stack[a-
+1]},getLastIndex:function(a){if("number"!=typeof a)return this.stack.length-1;for(var b=this.stack.length;b--;)if(this.stack[b].keyCode==a)return b;return-1},getLast:function(a){a=this.getLastIndex(a);return-1!=a?this.stack[a]:null},increment:function(a){this.getLast(a).inputs++},remove:function(a){a=this.getLastIndex(a);-1!=a&&this.stack.splice(a,1)},resetInputs:function(a){if("number"==typeof a)this.getLast(a).inputs=0;else for(a=this.stack.length;a--;)this.stack[a].inputs=0},getTotalInputs:function(){for(var a=
+this.stack.length,b=0;a--;)b+=this.stack[a].inputs;return b},cleanUp:function(a){a=a.data.$;a.ctrlKey||a.metaKey||this.remove(17);a.shiftKey||this.remove(16);a.altKey||this.remove(18)}}})();(function(){function b(a){function b(a){var d=!1;c.attachListener(c,"keydown",function(){var b=g.getBody().getElementsByTag(a);if(!d){for(var c=0;c<b.count();c++)b.getItem(c).setCustomData("retain",!0);d=!0}},null,null,1);c.attachListener(c,"keyup",function(){var b=g.getElementsByTag(a);d&&(1==b.count()&&!b.getItem(0).getCustomData("retain")&&
+CKEDITOR.tools.isEmpty(b.getItem(0).getAttributes())&&b.getItem(0).remove(1),d=!1)})}var f=this.editor;if(f&&!f.isDetached()){var g=a.document,d=g.body,e=g.getElementById("cke_actscrpt");e&&e.parentNode.removeChild(e);(e=g.getElementById("cke_shimscrpt"))&&e.parentNode.removeChild(e);(e=g.getElementById("cke_basetagscrpt"))&&e.parentNode.removeChild(e);d.contentEditable=!0;CKEDITOR.env.ie&&(d.hideFocus=!0,d.disabled=!0,d.removeAttribute("disabled"));delete this._.isLoadingData;this.$=d;g=new CKEDITOR.dom.document(g);
+this.setup();this.fixInitialSelection();var c=this;CKEDITOR.env.ie&&!CKEDITOR.env.edge&&g.getDocumentElement().addClass(g.$.compatMode);CKEDITOR.env.ie&&!CKEDITOR.env.edge&&f.enterMode!=CKEDITOR.ENTER_P?b("p"):CKEDITOR.env.edge&&15>CKEDITOR.env.version&&f.enterMode!=CKEDITOR.ENTER_DIV&&b("div");if(CKEDITOR.env.webkit||CKEDITOR.env.ie&&10<CKEDITOR.env.version)g.getDocumentElement().on("mousedown",function(a){a.data.getTarget().is("html")&&setTimeout(function(){f.editable().focus()})});h(f);try{f.document.$.execCommand("2D-position",
+!1,!0)}catch(n){}(CKEDITOR.env.gecko||CKEDITOR.env.ie&&"CSS1Compat"==f.document.$.compatMode)&&this.attachListener(this,"keydown",function(a){var b=a.data.getKeystroke();if(33==b||34==b)if(CKEDITOR.env.ie)setTimeout(function(){f.getSelection().scrollIntoView()},0);else if(f.window.$.innerHeight>this.$.offsetHeight){var c=f.createRange();c[33==b?"moveToElementEditStart":"moveToElementEditEnd"](this);c.select();a.data.preventDefault()}});CKEDITOR.env.ie&&this.attachListener(g,"blur",function(){try{g.$.selection.empty()}catch(a){}});
+CKEDITOR.env.iOS&&this.attachListener(g,"touchend",function(){a.focus()});d=f.document.getElementsByTag("title").getItem(0);d.data("cke-title",d.getText());CKEDITOR.env.ie&&(f.document.$.title=this._.docTitle);CKEDITOR.tools.setTimeout(function(){"unloaded"==this.status&&(this.status="ready");f.fire("contentDom");this._.isPendingFocus&&(f.focus(),this._.isPendingFocus=!1);setTimeout(function(){f.fire("dataReady")},0)},0,this)}}function h(a){function b(){var d;a.editable().attachListener(a,"selectionChange",
+function(){var b=a.getSelection().getSelectedElement();b&&(d&&(d.detachEvent("onresizestart",f),d=null),b.$.attachEvent("onresizestart",f),d=b.$)})}function f(a){a.returnValue=!1}if(CKEDITOR.env.gecko)try{var g=a.document.$;g.execCommand("enableObjectResizing",!1,!a.config.disableObjectResizing);g.execCommand("enableInlineTableEditing",!1,!a.config.disableNativeTableHandles)}catch(d){}else CKEDITOR.env.ie&&11>CKEDITOR.env.version&&a.config.disableObjectResizing&&b(a)}function g(){var a=[];if(8<=CKEDITOR.document.$.documentMode){a.push("html.CSS1Compat [contenteditable\x3dfalse]{min-height:0 !important}");
+var b=[],f;for(f in CKEDITOR.dtd.$removeEmpty)b.push("html.CSS1Compat "+f+"[contenteditable\x3dfalse]");a.push(b.join(",")+"{display:inline-block}")}else CKEDITOR.env.gecko&&(a.push("html{height:100% !important}"),a.push("img:-moz-broken{-moz-force-broken-image-icon:1;min-width:24px;min-height:24px}"));a.push("html{cursor:text;*cursor:auto}");a.push("img,input,textarea{cursor:default}");return a.join("\n")}var f;CKEDITOR.plugins.add("wysiwygarea",{init:function(a){a.config.fullPage&&a.addFeature({allowedContent:"html head title; style [media,type]; body (*)[id]; meta link [*]",
+requiredContent:"body"});a.addMode("wysiwyg",function(b){function g(c){c&&c.removeListener();a.isDestroyed()||a.isDetached()||(a.editable(new f(a,d.$.contentWindow.document.body)),a.setData(a.getData(1),b))}var h="document.open();"+(CKEDITOR.env.ie?"("+CKEDITOR.tools.fixDomain+")();":"")+"document.close();",h=CKEDITOR.env.air?"javascript:void(0)":CKEDITOR.env.ie&&!CKEDITOR.env.edge?"javascript:void(function(){"+encodeURIComponent(h)+"}())":"",d=CKEDITOR.dom.element.createFromHtml('\x3ciframe src\x3d"'+
+h+'" frameBorder\x3d"0"\x3e\x3c/iframe\x3e');d.setStyles({width:"100%",height:"100%"});d.addClass("cke_wysiwyg_frame").addClass("cke_reset");h=a.ui.space("contents");h.append(d);var e=CKEDITOR.env.ie&&!CKEDITOR.env.edge||CKEDITOR.env.gecko;if(e)d.on("load",g);var c=a.title,n=a.fire("ariaEditorHelpLabel",{}).label;c&&(CKEDITOR.env.ie&&n&&(c+=", "+n),d.setAttribute("title",c));if(n){var c=CKEDITOR.tools.getNextId(),v=CKEDITOR.dom.element.createFromHtml('\x3cspan id\x3d"'+c+'" class\x3d"cke_voice_label"\x3e'+
+n+"\x3c/span\x3e");h.append(v,1);d.setAttribute("aria-describedby",c)}a.on("beforeModeUnload",function(a){a.removeListener();v&&v.remove()});d.setAttributes({tabIndex:a.tabIndex,allowTransparency:"true"});!e&&g();a.fire("ariaWidget",d)})}});CKEDITOR.editor.prototype.addContentsCss=function(a){var b=this.config,f=b.contentsCss;CKEDITOR.tools.isArray(f)||(b.contentsCss=f?[f]:[]);b.contentsCss.push(a)};f=CKEDITOR.tools.createClass({$:function(){this.base.apply(this,arguments);this._.frameLoadedHandler=
+CKEDITOR.tools.addFunction(function(a){CKEDITOR.tools.setTimeout(b,0,this,a)},this);this._.docTitle=this.getWindow().getFrame().getAttribute("title")},base:CKEDITOR.editable,proto:{setData:function(a,b){var f=this.editor;if(b)this.setHtml(a),this.fixInitialSelection(),f.fire("dataReady");else{this._.isLoadingData=!0;f._.dataStore={id:1};var h=f.config,d=h.fullPage,e=h.docType,c=CKEDITOR.tools.buildStyleHtml(g()).replace(/<style>/,'\x3cstyle data-cke-temp\x3d"1"\x3e');d||(c+=CKEDITOR.tools.buildStyleHtml(f.config.contentsCss));
+var n=h.baseHref?'\x3cbase href\x3d"'+h.baseHref+'" data-cke-temp\x3d"1" /\x3e':"";d&&(a=a.replace(/<!DOCTYPE[^>]*>/i,function(a){f.docType=e=a;return""}).replace(/<\?xml\s[^\?]*\?>/i,function(a){f.xmlDeclaration=a;return""}));a=f.dataProcessor.toHtml(a);d?(/<body[\s|>]/.test(a)||(a="\x3cbody\x3e"+a),/<html[\s|>]/.test(a)||(a="\x3chtml\x3e"+a+"\x3c/html\x3e"),/<head[\s|>]/.test(a)?/<title[\s|>]/.test(a)||(a=a.replace(/<head[^>]*>/,"$\x26\x3ctitle\x3e\x3c/title\x3e")):a=a.replace(/<html[^>]*>/,"$\x26\x3chead\x3e\x3ctitle\x3e\x3c/title\x3e\x3c/head\x3e"),
+n&&(a=a.replace(/<head[^>]*?>/,"$\x26"+n)),a=a.replace(/<\/head\s*>/,c+"$\x26"),a=e+a):a=h.docType+'\x3chtml dir\x3d"'+h.contentsLangDirection+'" lang\x3d"'+(h.contentsLanguage||f.langCode)+'"\x3e\x3chead\x3e\x3ctitle\x3e'+this._.docTitle+"\x3c/title\x3e"+n+c+"\x3c/head\x3e\x3cbody"+(h.bodyId?' id\x3d"'+h.bodyId+'"':"")+(h.bodyClass?' class\x3d"'+h.bodyClass+'"':"")+"\x3e"+a+"\x3c/body\x3e\x3c/html\x3e";CKEDITOR.env.gecko&&(a=a.replace(/<body/,'\x3cbody contenteditable\x3d"true" '),2E4>CKEDITOR.env.version&&
+(a=a.replace(/<body[^>]*>/,"$\x26\x3c!-- cke-content-start --\x3e")));h='\x3cscript id\x3d"cke_actscrpt" type\x3d"text/javascript"'+(CKEDITOR.env.ie?' defer\x3d"defer" ':"")+"\x3evar wasLoaded\x3d0;function onload(){if(!wasLoaded)window.parent.CKEDITOR.tools.callFunction("+this._.frameLoadedHandler+",window);wasLoaded\x3d1;}"+(CKEDITOR.env.ie?"onload();":'document.addEventListener("DOMContentLoaded", onload, false );')+"\x3c/script\x3e";CKEDITOR.env.ie&&9>CKEDITOR.env.version&&(h+='\x3cscript id\x3d"cke_shimscrpt"\x3ewindow.parent.CKEDITOR.tools.enableHtml5Elements(document)\x3c/script\x3e');
+n&&CKEDITOR.env.ie&&10>CKEDITOR.env.version&&(h+='\x3cscript id\x3d"cke_basetagscrpt"\x3evar baseTag \x3d document.querySelector( "base" );baseTag.href \x3d baseTag.href;\x3c/script\x3e');a=a.replace(/(?=\s*<\/(:?head)>)/,h);this.clearCustomData();this.clearListeners();f.fire("contentDomUnload");var v=this.getDocument();try{v.write(a)}catch(x){setTimeout(function(){v.write(a)},0)}}},getData:function(a){if(a)return this.getHtml();a=this.editor;var b=a.config,f=b.fullPage,g=f&&a.docType,d=f&&a.xmlDeclaration,
 e=this.getDocument(),f=f?e.getDocumentElement().getOuterHtml():e.getBody().getHtml();CKEDITOR.env.gecko&&b.enterMode!=CKEDITOR.ENTER_BR&&(f=f.replace(/<br>(?=\s*(:?$|<\/body>))/,""));f=a.dataProcessor.toDataFormat(f);d&&(f=d+"\n"+f);g&&(f=g+"\n"+f);return f},focus:function(){this._.isLoadingData?this._.isPendingFocus=!0:f.baseProto.focus.call(this)},detach:function(){var a=this.editor,b=a.document,a=a.container.findOne("iframe.cke_wysiwyg_frame");f.baseProto.detach.call(this);this.clearCustomData(this._.expandoNumber);
 b.getDocumentElement().clearCustomData();CKEDITOR.tools.removeFunction(this._.frameLoadedHandler);a&&(a.clearCustomData(),(b=a.removeCustomData("onResize"))&&b.removeListener(),a.isDetached()||a.remove())}}})})();CKEDITOR.config.disableObjectResizing=!1;CKEDITOR.config.disableNativeTableHandles=!0;CKEDITOR.config.disableNativeSpellChecker=!0;CKEDITOR.config.plugins="dialogui,dialog,a11yhelp,about,autogrow,basicstyles,blockquote,notification,button,toolbar,clipboard,panel,floatpanel,menu,contextmenu,elementspath,enterkey,entities,popup,filetools,filebrowser,floatingspace,listblock,richcombo,format,horizontalrule,htmlwriter,lineutils,widgetselection,widget,image2,indent,indentlist,justify,menubutton,language,list,magicline,maximize,pastetools,pastefromgdocs,pastefromword,pastetext,removeformat,sharedspace,showblocks,showborders,sourcearea,sourcedialog,specialchar,stylescombo,tab,table,tabletools,tableresize,undo,wysiwygarea";
 CKEDITOR.config.skin="moono-lisa";(function(){var b=function(b,g){var f=CKEDITOR.getUrl("plugins/"+g);b=b.split(",");for(var a=0;a<b.length;a++)CKEDITOR.skin.icons[b[a]]={path:f,offset:-b[++a],bgsize:b[++a]}};CKEDITOR.env.hidpi?b("about,0,,bold,24,,italic,48,,strike,72,,subscript,96,,superscript,120,,underline,144,,blockquote,168,,copy-rtl,192,,copy,216,,cut-rtl,240,,cut,264,,paste-rtl,288,,paste,312,,horizontalrule,336,,image,360,,indent-rtl,384,,indent,408,,outdent-rtl,432,,outdent,456,,justifyblock,480,,justifycenter,504,,justifyleft,528,,justifyright,552,,language,576,,bulletedlist-rtl,600,,bulletedlist,624,,numberedlist-rtl,648,,numberedlist,672,,maximize,696,,pastefromword-rtl,720,,pastefromword,744,,pastetext-rtl,768,,pastetext,792,,removeformat,816,,showblocks-rtl,840,,showblocks,864,,source-rtl,888,,source,912,,sourcedialog-rtl,936,,sourcedialog,960,,specialchar,984,,table,1008,,redo-rtl,1032,,redo,1056,,undo-rtl,1080,,undo,1104,,simplebox,2256,auto",
diff --git a/web/core/assets/vendor/ckeditor/lang/af.js b/web/core/assets/vendor/ckeditor/lang/af.js
index ee9cae67ed..f54e2b2f1b 100644
--- a/web/core/assets/vendor/ckeditor/lang/af.js
+++ b/web/core/assets/vendor/ckeditor/lang/af.js
@@ -1,5 +1,5 @@
 /*
-Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2020, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */
 CKEDITOR.lang['af']={"widget":{"move":"Klik en trek on te beweeg","label":"%1 widget"},"undo":{"redo":"Oordoen","undo":"Ontdoen"},"toolbar":{"toolbarCollapse":"Verklein werkbalk","toolbarExpand":"Vergroot werkbalk","toolbarGroups":{"document":"Dokument","clipboard":"Knipbord/Undo","editing":"Verander","forms":"Vorms","basicstyles":"Eenvoudige Styl","paragraph":"Paragraaf","links":"Skakels","insert":"Toevoeg","styles":"Style","colors":"Kleure","tools":"Gereedskap"},"toolbars":"Werkbalke"},"table":{"border":"Randbreedte","caption":"Naam","cell":{"menu":"Sel","insertBefore":"Voeg sel in voor","insertAfter":"Voeg sel in na","deleteCell":"Verwyder sel","merge":"Voeg selle saam","mergeRight":"Voeg saam na regs","mergeDown":"Voeg saam ondertoe","splitHorizontal":"Splits sel horisontaal","splitVertical":"Splits sel vertikaal","title":"Sel eienskappe","cellType":"Sel tipe","rowSpan":"Omspan rye","colSpan":"Omspan kolomme","wordWrap":"Woord terugloop","hAlign":"Horisontale oplyning","vAlign":"Vertikale oplyning","alignBaseline":"Basislyn","bgColor":"Agtergrondkleur","borderColor":"Randkleur","data":"Inhoud","header":"Opskrif","yes":"Ja","no":"Nee","invalidWidth":"Selbreedte moet 'n getal wees.","invalidHeight":"Selhoogte moet 'n getal wees.","invalidRowSpan":"Omspan rye moet 'n heelgetal wees.","invalidColSpan":"Omspan kolomme moet 'n heelgetal wees.","chooseColor":"Kies"},"cellPad":"Sel-spasie","cellSpace":"Sel-afstand","column":{"menu":"Kolom","insertBefore":"Voeg kolom in voor","insertAfter":"Voeg kolom in na","deleteColumn":"Verwyder kolom"},"columns":"Kolomme","deleteTable":"Verwyder tabel","headers":"Opskrifte","headersBoth":"Beide    ","headersColumn":"Eerste kolom","headersNone":"Geen","headersRow":"Eerste ry","heightUnit":"height unit","invalidBorder":"Randbreedte moet 'n getal wees.","invalidCellPadding":"Sel-spasie moet 'n getal wees.","invalidCellSpacing":"Sel-afstand moet 'n getal wees.","invalidCols":"Aantal kolomme moet 'n getal groter as 0 wees.","invalidHeight":"Tabelhoogte moet 'n getal wees.","invalidRows":"Aantal rye moet 'n getal groter as 0 wees.","invalidWidth":"Tabelbreedte moet 'n getal wees.","menu":"Tabel eienskappe","row":{"menu":"Ry","insertBefore":"Voeg ry in voor","insertAfter":"Voeg ry in na","deleteRow":"Verwyder ry"},"rows":"Rye","summary":"Opsomming","title":"Tabel eienskappe","toolbar":"Tabel","widthPc":"persent","widthPx":"piksels","widthUnit":"breedte-eenheid"},"stylescombo":{"label":"Styl","panelTitle":"Vormaat style","panelTitle1":"Blok style","panelTitle2":"Inlyn style","panelTitle3":"Objek style"},"specialchar":{"options":"Spesiale karakter-opsies","title":"Kies spesiale karakter","toolbar":"Voeg spesiaale karakter in"},"sourcedialog":{"toolbar":"Bron","title":"Bron"},"sourcearea":{"toolbar":"Bron"},"showblocks":{"toolbar":"Toon blokke"},"removeformat":{"toolbar":"Verwyder opmaak"},"pastetext":{"button":"Voeg by as eenvoudige teks","pasteNotification":"Druk %1 om by te voeg. Jou leser ondersteun nie byvoeg deur die toolbar knoppie of die konteks kieslys nie","title":"Voeg by as eenvoudige teks"},"pastefromword":{"confirmCleanup":"Die teks wat u wil byvoeg lyk asof dit uit Word gekopiëer is. Wil u dit eers skoonmaak voordat dit bygevoeg word?","error":"Die bygevoegte teks kon nie skoongemaak word nie, weens 'n interne fout","title":"Uit Word byvoeg","toolbar":"Uit Word byvoeg"},"notification":{"closed":"Notification closed."},"maximize":{"maximize":"Maksimaliseer","minimize":"Minimaliseer"},"magicline":{"title":"Voeg paragraaf hier in"},"list":{"bulletedlist":"Ongenommerde lys","numberedlist":"Genommerde lys"},"language":{"button":"Set language","remove":"Remove language"},"indent":{"indent":"Vergroot inspring","outdent":"Verklein inspring"},"image2":{"alt":"Alternatiewe teks","btnUpload":"Stuur na bediener","captioned":"Captioned image","captionPlaceholder":"Caption","infoTab":"Afbeelding informasie","lockRatio":"Vaste proporsie","menu":"Afbeelding eienskappe","pathName":"image","pathNameCaption":"caption","resetSize":"Herstel grootte","resizer":"Click and drag to resize","title":"Afbeelding eienskappe","uploadTab":"Oplaai","urlMissing":"Die URL na die afbeelding ontbreek.","altMissing":"Alternative text is missing."},"horizontalrule":{"toolbar":"Horisontale lyn invoeg"},"format":{"label":"Opmaak","panelTitle":"Opmaak","tag_address":"Adres","tag_div":"Normaal (DIV)","tag_h1":"Opskrif 1","tag_h2":"Opskrif 2","tag_h3":"Opskrif 3","tag_h4":"Opskrif 4","tag_h5":"Opskrif 5","tag_h6":"Opskrif 6","tag_p":"Normaal","tag_pre":"Opgemaak"},"filetools":{"loadError":"Error occurred during file read.","networkError":"Network error occurred during file upload.","httpError404":"HTTP error occurred during file upload (404: File not found).","httpError403":"HTTP error occurred during file upload (403: Forbidden).","httpError":"HTTP error occurred during file upload (error status: %1).","noUrlError":"Upload URL is not defined.","responseError":"Incorrect server response."},"elementspath":{"eleLabel":"Elemente-pad","eleTitle":"%1 element"},"contextmenu":{"options":"Konteks Spyskaart-opsies"},"clipboard":{"copy":"Kopiëer","copyError":"U leser se sekuriteitsinstelling belet die kopiëringsaksie. Gebruik die sleutelbordkombinasie (Ctrl/Cmd+C).","cut":"Uitsnei","cutError":"U leser se sekuriteitsinstelling belet die outomatiese uitsnei-aksie. Gebruik die sleutelbordkombinasie (Ctrl/Cmd+X).","paste":"Byvoeg","pasteNotification":"Druk %1 om by te voeg. You leser ondersteun nie die toolbar knoppie of inoud kieslysie opsie nie. ","pasteArea":"Area byvoeg","pasteMsg":"Voeg jou inhoud in die gebied onder by en druk OK"},"blockquote":{"toolbar":"Sitaatblok"},"basicstyles":{"bold":"Vet","italic":"Skuins","strike":"Deurgestreep","subscript":"Onderskrif","superscript":"Bo-skrif","underline":"Onderstreep"},"about":{"copy":"Kopiereg &copy; $1. Alle regte voorbehou.","dlgTitle":"Meer oor CKEditor 4","moreInfo":"Vir lisensie-informasie, besoek asb. ons webwerf:"},"editor":"Woordverwerker","editorPanel":"Woordverwerkerpaneel","common":{"editorHelp":"Druk op ALT 0 vir hulp","browseServer":"Blaai op bediener","url":"URL","protocol":"Protokol","upload":"Oplaai","uploadSubmit":"Stuur aan die bediener","image":"Beeld","flash":"Flash","form":"Vorm","checkbox":"Merkhokkie","radio":"Radioknoppie","textField":"Teksveld","textarea":"Teksarea","hiddenField":"Versteekteveld","button":"Knop","select":"Keuseveld","imageButton":"Beeldknop","notSet":"<geen instelling>","id":"Id","name":"Naam","langDir":"Skryfrigting","langDirLtr":"Links na regs (LTR)","langDirRtl":"Regs na links (RTL)","langCode":"Taalkode","longDescr":"Lang beskrywing URL","cssClass":"CSS klasse","advisoryTitle":"Aanbevole titel","cssStyle":"Styl","ok":"OK","cancel":"Kanselleer","close":"Sluit","preview":"Voorbeeld","resize":"Skalierung","generalTab":"Algemeen","advancedTab":"Gevorderd","validateNumberFailed":"Hierdie waarde is nie 'n nommer nie.","confirmNewPage":"Alle wysiginge sal verlore gaan. Is jy seker dat jy 'n nuwe bladsy wil laai?","confirmCancel":"Sommige opsies is gewysig. Is jy seker dat jy hierdie dialoogvenster wil sluit?","options":"Opsies","target":"Teiken","targetNew":"Nuwe venster (_blank)","targetTop":"Boonste venster (_top)","targetSelf":"Selfde venster (_self)","targetParent":"Oorspronklike venster (_parent)","langDirLTR":"Links na Regs (LTR)","langDirRTL":"Regs na Links (RTL)","styles":"Styl","cssClasses":"CSS klasse","width":"Breedte","height":"Hoogte","align":"Orienteerung","left":"Links","right":"Regs","center":"Middel","justify":"Eweredig","alignLeft":"Links oplyn","alignRight":"Regs oplyn","alignCenter":"Middel oplyn","alignTop":"Bo","alignMiddle":"Middel","alignBottom":"Onder","alignNone":"Geen","invalidValue":"Ongeldige waarde","invalidHeight":"Hoogte moet 'n getal wees","invalidWidth":"Breedte moet 'n getal wees.","invalidLength":"Die waarde vir die veld \"%1\" moet 'n  posetiewe nommer wees met of sonder die meeteenheid (%2).","invalidCssLength":"Die waarde vir die \"%1\" veld moet 'n posetiewe getal wees met of sonder 'n geldige CSS eenheid (px, %, in, cm, mm, em, ex, pt, of pc).","invalidHtmlLength":"Die waarde vir die  \"%1\" veld moet 'n posetiewe getal wees met of sonder 'n geldige HTML eenheid (px of %).","invalidInlineStyle":"Ongeldige CSS. Formaat is een of meer sleutel-wert paare, \"naam : wert\" met kommapunte gesky.","cssLengthTooltip":"Voeg 'n getal wert in pixel in, of 'n waarde met geldige CSS eenheid (px, %, in, cm, mm, em, ex, pt, of pc).","unavailable":"%1<span class=\"cke_accessibility\">, nie beskikbaar nie</span>","keyboard":{"8":"Backspace","13":"Enter","16":"Skuif","17":"Ctrl","18":"Alt","32":"Spasie","35":"Einde","36":"Tuis","46":"Verwyder","112":"F1","113":"F2","114":"F3","115":"F4","116":"F5","117":"F6","118":"F7","119":"F8","120":"F9","121":"F10","122":"F11","123":"F12","124":"F13","125":"F14","126":"F15","127":"F16","128":"F17","129":"F18","130":"F19","131":"F20","132":"F21","133":"F22","134":"F23","135":"F24","224":"Bevel"},"keyboardShortcut":"Sleutel kombenasie","optionDefault":"Verstek"}};
\ No newline at end of file
diff --git a/web/core/assets/vendor/ckeditor/lang/ar.js b/web/core/assets/vendor/ckeditor/lang/ar.js
index 8208f77523..fd96864878 100644
--- a/web/core/assets/vendor/ckeditor/lang/ar.js
+++ b/web/core/assets/vendor/ckeditor/lang/ar.js
@@ -1,5 +1,5 @@
 /*
-Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2020, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */
 CKEDITOR.lang['ar']={"widget":{"move":"إضغط و إسحب للتحريك","label":"%1 widget"},"undo":{"redo":"إعادة","undo":"تراجع"},"toolbar":{"toolbarCollapse":"تقليص شريط الأدوت","toolbarExpand":"تمديد شريط الأدوات","toolbarGroups":{"document":"مستند","clipboard":"الحافظة/الرجوع","editing":"تحرير","forms":"نماذج","basicstyles":"نمط بسيط","paragraph":"فقرة","links":"روابط","insert":"إدراج","styles":"أنماط","colors":"ألوان","tools":"أدوات"},"toolbars":"أشرطة أدوات المحرر"},"table":{"border":"الحدود","caption":"الوصف","cell":{"menu":"خلية","insertBefore":"إدراج خلية قبل","insertAfter":"إدراج خلية بعد","deleteCell":"حذف خلية","merge":"دمج خلايا","mergeRight":"دمج لليمين","mergeDown":"دمج للأسفل","splitHorizontal":"تقسيم الخلية أفقياً","splitVertical":"تقسيم الخلية عمودياً","title":"خصائص الخلية","cellType":"نوع الخلية","rowSpan":"امتداد الصفوف","colSpan":"امتداد الأعمدة","wordWrap":"التفاف النص","hAlign":"محاذاة أفقية","vAlign":"محاذاة رأسية","alignBaseline":"خط القاعدة","bgColor":"لون الخلفية","borderColor":"لون الحدود","data":"بيانات","header":"عنوان","yes":"نعم","no":"لا","invalidWidth":"عرض الخلية يجب أن يكون عدداً.","invalidHeight":"ارتفاع الخلية يجب أن يكون عدداً.","invalidRowSpan":"امتداد الصفوف يجب أن يكون عدداً صحيحاً.","invalidColSpan":"امتداد الأعمدة يجب أن يكون عدداً صحيحاً.","chooseColor":"اختر"},"cellPad":"المسافة البادئة","cellSpace":"تباعد الخلايا","column":{"menu":"عمود","insertBefore":"إدراج عمود قبل","insertAfter":"إدراج عمود بعد","deleteColumn":"حذف أعمدة"},"columns":"أعمدة","deleteTable":"حذف الجدول","headers":"العناوين","headersBoth":"كلاهما","headersColumn":"العمود الأول","headersNone":"بدون","headersRow":"الصف الأول","heightUnit":"height unit","invalidBorder":"حجم الحد يجب أن يكون عدداً.","invalidCellPadding":"المسافة البادئة يجب أن تكون عدداً","invalidCellSpacing":"المسافة بين الخلايا يجب أن تكون عدداً.","invalidCols":"عدد الأعمدة يجب أن يكون عدداً أكبر من صفر.","invalidHeight":"ارتفاع الجدول يجب أن يكون عدداً.","invalidRows":"عدد الصفوف يجب أن يكون عدداً أكبر من صفر.","invalidWidth":"عرض الجدول يجب أن يكون عدداً.","menu":"خصائص الجدول","row":{"menu":"صف","insertBefore":"إدراج صف قبل","insertAfter":"إدراج صف بعد","deleteRow":"حذف صفوف"},"rows":"صفوف","summary":"الخلاصة","title":"خصائص الجدول","toolbar":"جدول","widthPc":"بالمئة","widthPx":"بكسل","widthUnit":"وحدة العرض"},"stylescombo":{"label":"أنماط","panelTitle":"أنماط التنسيق","panelTitle1":"أنماط الفقرة","panelTitle2":"أنماط مضمنة","panelTitle3":"أنماط الكائن"},"specialchar":{"options":"خيارات الأحرف الخاصة","title":"اختر حرف خاص","toolbar":"إدراج  حرف خاص"},"sourcedialog":{"toolbar":"المصدر","title":"المصدر"},"sourcearea":{"toolbar":"المصدر"},"showblocks":{"toolbar":"مخطط تفصيلي"},"removeformat":{"toolbar":"إزالة التنسيقات"},"pastetext":{"button":"لصق كنص بسيط","pasteNotification":"Press %1 to paste. Your browser doesn‘t support pasting with the toolbar button or context menu option.","title":"لصق كنص بسيط"},"pastefromword":{"confirmCleanup":"يبدو أن النص المراد لصقه منسوخ من برنامج وورد. هل تود تنظيفه قبل الشروع في عملية اللصق؟","error":"لم يتم مسح المعلومات الملصقة لخلل داخلي","title":"لصق من وورد","toolbar":"لصق من وورد"},"notification":{"closed":"Notification closed."},"maximize":{"maximize":"تكبير","minimize":"تصغير"},"magicline":{"title":"إدراج فقرة هنا"},"list":{"bulletedlist":"ادخال/حذف تعداد نقطي","numberedlist":"ادخال/حذف تعداد رقمي"},"language":{"button":"حدد اللغة","remove":"حذف اللغة"},"indent":{"indent":"زيادة المسافة البادئة","outdent":"إنقاص المسافة البادئة"},"image2":{"alt":"عنوان الصورة","btnUpload":"أرسلها للخادم","captioned":"صورة ذات اسم","captionPlaceholder":"تسمية","infoTab":"معلومات الصورة","lockRatio":"تناسق الحجم","menu":"خصائص الصورة","pathName":"صورة","pathNameCaption":"تسمية","resetSize":"إستعادة الحجم الأصلي","resizer":"انقر ثم اسحب للتحجيم","title":"خصائص الصورة","uploadTab":"رفع","urlMissing":"عنوان مصدر الصورة مفقود","altMissing":"Alternative text is missing."},"horizontalrule":{"toolbar":"خط فاصل"},"format":{"label":"تنسيق","panelTitle":"تنسيق الفقرة","tag_address":"عنوان","tag_div":"عادي (DIV)","tag_h1":"العنوان 1","tag_h2":"العنوان  2","tag_h3":"العنوان  3","tag_h4":"العنوان  4","tag_h5":"العنوان  5","tag_h6":"العنوان  6","tag_p":"عادي","tag_pre":"منسّق"},"filetools":{"loadError":"Error occurred during file read.","networkError":"Network error occurred during file upload.","httpError404":"HTTP error occurred during file upload (404: File not found).","httpError403":"HTTP error occurred during file upload (403: Forbidden).","httpError":"HTTP error occurred during file upload (error status: %1).","noUrlError":"Upload URL is not defined.","responseError":"Incorrect server response."},"elementspath":{"eleLabel":"مسار العنصر","eleTitle":"عنصر 1%"},"contextmenu":{"options":"خصائص قائمة السياق"},"clipboard":{"copy":"نسخ","copyError":"الإعدادات الأمنية للمتصفح الذي تستخدمه تمنع عمليات النسخ التلقائي. فضلاً إستخدم لوحة المفاتيح لفعل ذلك (Ctrl/Cmd+C).","cut":"قص","cutError":"الإعدادات الأمنية للمتصفح الذي تستخدمه تمنع القص التلقائي. فضلاً إستخدم لوحة المفاتيح لفعل ذلك (Ctrl/Cmd+X).","paste":"لصق","pasteNotification":"اضغط %1 للصق. اللصق عن طريق شريط الادوات او القائمة غير مدعوم من المتصفح المستخدم من قبلك.","pasteArea":"منطقة اللصق","pasteMsg":"الصق المحتوى بداخل المساحة المخصصة ادناه ثم اضغط على OK"},"blockquote":{"toolbar":"اقتباس"},"basicstyles":{"bold":"عريض","italic":"مائل","strike":"يتوسطه خط","subscript":"منخفض","superscript":"مرتفع","underline":"تسطير"},"about":{"copy":"حقوق النشر &copy; $1. جميع الحقوق محفوظة.","dlgTitle":"عن CKEditor","moreInfo":"للحصول على معلومات الترخيص ، يرجى زيارة موقعنا:"},"editor":"محرر النص الغني","editorPanel":"لائحة محرر النص المنسق","common":{"editorHelp":"إضغط على ALT + 0 للحصول على المساعدة.","browseServer":"تصفح","url":"الرابط","protocol":"البروتوكول","upload":"رفع","uploadSubmit":"أرسل","image":"صورة","flash":"فلاش","form":"نموذج","checkbox":"خانة إختيار","radio":"زر اختيار","textField":"مربع نص","textarea":"مساحة نصية","hiddenField":"إدراج حقل خفي","button":"زر ضغط","select":"اختار","imageButton":"زر صورة","notSet":"<بدون تحديد>","id":"الرقم","name":"إسم","langDir":"إتجاه النص","langDirLtr":"اليسار لليمين (LTR)","langDirRtl":"اليمين لليسار (RTL)","langCode":"رمز اللغة","longDescr":"الوصف التفصيلى","cssClass":"فئات التنسيق","advisoryTitle":"عنوان التقرير","cssStyle":"نمط","ok":"موافق","cancel":"إلغاء الأمر","close":"أغلق","preview":"استعراض","resize":"تغيير الحجم","generalTab":"عام","advancedTab":"متقدم","validateNumberFailed":"لايوجد نتيجة","confirmNewPage":"ستفقد أي متغييرات اذا لم تقم بحفظها اولا. هل أنت متأكد أنك تريد صفحة جديدة؟","confirmCancel":"بعض الخيارات قد تغيرت. هل أنت متأكد من إغلاق مربع النص؟","options":"خيارات","target":"هدف الرابط","targetNew":"نافذة جديدة","targetTop":"النافذة الأعلى","targetSelf":"داخل النافذة","targetParent":"النافذة الأم","langDirLTR":"اليسار لليمين (LTR)","langDirRTL":"اليمين لليسار (RTL)","styles":"نمط","cssClasses":"فئات التنسيق","width":"العرض","height":"الإرتفاع","align":"محاذاة","left":"يسار","right":"يمين","center":"وسط","justify":"ضبط","alignLeft":"محاذاة إلى اليسار","alignRight":"محاذاة إلى اليمين","alignCenter":"Align Center","alignTop":"أعلى","alignMiddle":"وسط","alignBottom":"أسفل","alignNone":"None","invalidValue":"قيمة غير مفبولة.","invalidHeight":"الارتفاع يجب أن يكون عدداً.","invalidWidth":"العرض يجب أن يكون عدداً.","invalidLength":"Value specified for the \"%1\" field must be a positive number with or without a valid measurement unit (%2).","invalidCssLength":"قيمة الخانة المخصصة لـ \"%1\" يجب أن تكون رقما موجبا، باستخدام أو من غير استخدام وحدة CSS قياس مقبولة (px, %, in, cm, mm, em, ex, pt, or pc).","invalidHtmlLength":"قيمة الخانة المخصصة لـ \"%1\" يجب أن تكون رقما موجبا، باستخدام أو من غير استخدام وحدة HTML قياس مقبولة (px or %).","invalidInlineStyle":"قيمة الخانة المخصصة لـ  Inline Style يجب أن تختوي على مجموع واحد أو أكثر بالشكل التالي: \"name : value\", مفصولة بفاصلة منقزطة.","cssLengthTooltip":"أدخل رقما للقيمة بالبكسل أو رقما بوحدة CSS مقبولة (px, %, in, cm, mm, em, ex, pt, or pc).","unavailable":"%1<span class=\"cke_accessibility\">, غير متاح</span>","keyboard":{"8":"Backspace","13":"Enter","16":"Shift","17":"Ctrl","18":"Alt","32":"Space","35":"End","36":"Home","46":"Delete","112":"F1","113":"F2","114":"F3","115":"F4","116":"F5","117":"F6","118":"F7","119":"F8","120":"F9","121":"F10","122":"F11","123":"F12","124":"F13","125":"F14","126":"F15","127":"F16","128":"F17","129":"F18","130":"F19","131":"F20","132":"F21","133":"F22","134":"F23","135":"F24","224":"Command"},"keyboardShortcut":"Keyboard shortcut","optionDefault":"Default"}};
\ No newline at end of file
diff --git a/web/core/assets/vendor/ckeditor/lang/az.js b/web/core/assets/vendor/ckeditor/lang/az.js
index b25e344bcd..da40ee774e 100644
--- a/web/core/assets/vendor/ckeditor/lang/az.js
+++ b/web/core/assets/vendor/ckeditor/lang/az.js
@@ -1,5 +1,5 @@
 /*
-Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2020, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */
 CKEDITOR.lang['az']={"widget":{"move":"Tıklayın və aparın","label":"%1 vidjet"},"undo":{"redo":"Təkrar et","undo":"İmtina et"},"toolbar":{"toolbarCollapse":"Paneli gizlət","toolbarExpand":"Paneli göstər","toolbarGroups":{"document":"Mətn","clipboard":"Mübadilə buferi/İmtina et","editing":"Redaktə edilməsi","forms":"Formalar","basicstyles":"Əsas üslublar","paragraph":"Abzas","links":"Link","insert":"Əlavə et","styles":"Üslublar","colors":"Rənqlər","tools":"Alətləri"},"toolbars":"Redaktorun panelləri"},"table":{"border":"Sərhədlərin eni","caption":"Cədvəlin başlığı","cell":{"menu":"Xana","insertBefore":"Burdan əvvələ xanası çək","insertAfter":"Burdan sonra xanası çək","deleteCell":"Xanaları sil","merge":"Xanaları birləşdir","mergeRight":"Sağdan birləşdir","mergeDown":"Soldan birləşdir","splitHorizontal":"Üfüqi böl","splitVertical":"Şaquli böl","title":"Xanaların seçimləri","cellType":"Xana növü","rowSpan":"Sətirləri birləşdir","colSpan":"Sütunları birləşdir","wordWrap":"Sətirlərin sınması","hAlign":"Üfüqi düzləndirmə","vAlign":"Şaquli düzləndirmə","alignBaseline":"Mətn xətti","bgColor":"Doldurma rəngi","borderColor":"Sərhədin rəngi","data":"Məlumatlar","header":"Başlıq","yes":"Bəli","no":"Xeyr","invalidWidth":"Xanasın eni rəqəm olmalıdır.","invalidHeight":"Xanasın hündürlüyü rəqəm olmalıdır.","invalidRowSpan":"Birləşdirdiyiniz sütun xanaların sayı tam və müsbət rəqəm olmalıdır.","invalidColSpan":"Birləşdirdiyiniz sətir xanaların sayı tam və müsbət rəqəm olmalıdır.","chooseColor":"Seç"},"cellPad":"Xanalardakı kənar boşluqlar","cellSpace":"Xanalararası interval","column":{"menu":"Sütun","insertBefore":"Sola sütun əlavə et","insertAfter":"Sağa sütun əlavə et","deleteColumn":"Sütunları sil"},"columns":"Sütunlar","deleteTable":"Cədvəli sil","headers":"Başlıqlar","headersBoth":"Hər ikisi","headersColumn":"Birinci sütun","headersNone":"yox","headersRow":"Birinci sətir","heightUnit":"height unit","invalidBorder":"Sərhədlərin eni müsbət rəqəm olmalıdır.","invalidCellPadding":"Xanalardakı kənar boşluqlar müsbət rəqəm olmalıdır.","invalidCellSpacing":"Xanalararası interval müsbət rəqəm olmalıdır.","invalidCols":"Sütunlarin sayı tam və müsbət olmalıdır.","invalidHeight":"Cədvəlin hündürlüyü rəqəm olmalıdır.","invalidRows":"Sətirlətin sayı tam və müsbət olmalıdır.","invalidWidth":"Cədvəlin eni rəqəm olmalıdır.","menu":"Cədvəl alətləri","row":{"menu":"Sətir","insertBefore":"Yuxarıya sətir əlavə et","insertAfter":"Aşağıya sətir əlavə et","deleteRow":"Sətirləri sil"},"rows":"Sətirlər","summary":"Xülasə","title":"Cədvəl alətləri","toolbar":"Cədvəl","widthPc":"faiz","widthPx":"piksel","widthUnit":"en vahidi"},"stylescombo":{"label":"Üslub","panelTitle":"Format üslubları","panelTitle1":"Blokların üslubları","panelTitle2":"Sözlərin üslubları","panelTitle3":"Obyektlərin üslubları"},"specialchar":{"options":"Xüsusi simvolların seçimləri","title":"Xüsusi simvolu seç","toolbar":"Xüsusi simvolu daxil et"},"sourcedialog":{"toolbar":"Mənbə","title":"Mənbə"},"sourcearea":{"toolbar":"HTML mənbəyini göstər"},"showblocks":{"toolbar":"Blokları göstər"},"removeformat":{"toolbar":"Formatı sil"},"pastetext":{"button":"Yalnız mətni saxla","pasteNotification":"Press %1 to paste. Your browser doesn‘t support pasting with the toolbar button or context menu option.","title":"Paste as Plain Text"},"pastefromword":{"confirmCleanup":"Əlavə edilən mətn Word-dan köçürülənə oxşayır. Təmizləmək istəyirsinizmi?","error":"Daxili səhvə görə əlavə edilən məlumatların təmizlənməsi mümkün deyil","title":"Word-dan əlavəetmə","toolbar":"Word-dan əlavəetmə"},"notification":{"closed":"Xəbərdarlıq pəncərəsi bağlanıb"},"maximize":{"maximize":"Aşkarla","minimize":"Gizlət"},"magicline":{"title":"Abzası burada əlavə et"},"list":{"bulletedlist":"Markerlənmiş siyahını başlat/sil","numberedlist":"Nömrələnmiş siyahını başlat/sil"},"language":{"button":"Dilini təyin et","remove":"Dilini sil"},"indent":{"indent":"Sol boşluqu artır","outdent":"Sol boşluqu azalt"},"image2":{"alt":"Alternativ mətn","btnUpload":"Serverə göndər","captioned":"Altyazı olan şəkil","captionPlaceholder":"Altyazı","infoTab":"Şəkil haqqında məlumat","lockRatio":"Ölçülərin nisbəti saxla","menu":"Şəklin seçimləri","pathName":"Şəkil","pathNameCaption":"Altyazı","resetSize":"Ölçüləri qaytar","resizer":"Ölçülər dəyişmək üçün tıklayın və aparın","title":"Şəklin seçimləri","uploadTab":"Serverə yüklə","urlMissing":"Şəklin ünvanı yanlışdır.","altMissing":"Alternativ mətn tapılmayıb"},"horizontalrule":{"toolbar":"Sərhəd xətti yarat"},"format":{"label":"Format","panelTitle":"Abzasın formatı","tag_address":"Ünvan","tag_div":"Normal (DIV)","tag_h1":"Başlıq 1","tag_h2":"Başlıq 2","tag_h3":"Başlıq 3","tag_h4":"Başlıq 4","tag_h5":"Başlıq 5","tag_h6":"Başlıq 6","tag_p":"Normal","tag_pre":"Formatı saxla"},"filetools":{"loadError":"Faylını oxumaq mümkün deyil","networkError":"Xəta baş verdi.","httpError404":"Serverə göndərilməsinin zamanı xəta baş verdi (404 - fayl tapılmayıb)","httpError403":"Serverə göndərilməsinin zamanı xəta baş verdi (403 - gadağandır)","httpError":"Serverə göndərilməsinin zamanı xəta baş verdi (xətanın ststusu: %1)","noUrlError":"Yükləmə linki təyin edilməyib","responseError":"Serverin cavabı yanlışdır"},"elementspath":{"eleLabel":"Elementin izləri","eleTitle":"%1 element"},"contextmenu":{"options":"Əlavə əməliyyatlar"},"clipboard":{"copy":"Köçür","copyError":"Avtomatik köçürülməsi mümkün deyil. Ctrl+C basın.","cut":"Kəs","cutError":"Avtomatik kəsmə mümkün deyil. Ctrl+X basın.","paste":"Əlavə et","pasteNotification":"Press %1 to paste. Your browser doesn‘t support pasting with the toolbar button or context menu option.","pasteArea":"Paste Area","pasteMsg":"Paste your content inside the area below and press OK."},"blockquote":{"toolbar":"Sitat bloku"},"basicstyles":{"bold":"Qalın","italic":"Kursiv","strike":"Üstüxətli","subscript":"Aşağı indeks","superscript":"Yuxarı indeks","underline":"Altdan xətt"},"about":{"copy":"Copyright &copy; $1. Bütün hüquqlar qorunur.","dlgTitle":"CKEditor haqqında","moreInfo":"Lisenziya informasiyası üçün zəhmət olmasa saytımızı ziyarət edin:"},"editor":"Mətn Redaktoru","editorPanel":"Mətn Redaktorun Paneli","common":{"editorHelp":"Yardım üçün ALT 0 düymələrini basın","browseServer":"Fayların siyahı","url":"URL","protocol":"Protokol","upload":"Serverə yüklə","uploadSubmit":"Göndər","image":"Şəkil","flash":"Flash","form":"Forma","checkbox":"Çekboks","radio":"Radio düyməsi","textField":"Mətn xanası","textarea":"Mətn","hiddenField":"Gizli xana","button":"Düymə","select":"Opsiyaların seçilməsi","imageButton":"Şəkil tipli düymə","notSet":"<seçilməmiş>","id":"Id","name":"Ad","langDir":"Yaziların istiqaməti","langDirLtr":"Soldan sağa (LTR)","langDirRtl":"Sağdan sola (RTL)","langCode":"Dilin kodu","longDescr":"URL-ın ətraflı izahı","cssClass":"CSS klassları","advisoryTitle":"Başlıq","cssStyle":"CSS","ok":"Tədbiq et","cancel":"İmtina et","close":"Bağla","preview":"Baxış","resize":"Eni dəyiş","generalTab":"Əsas","advancedTab":"Əlavə","validateNumberFailed":"Rəqəm deyil.","confirmNewPage":"Yadda saxlanılmamış dəyişikliklər itiriləcək. Davam etmək istədiyinizə əminsinizmi?","confirmCancel":"Dəyişikliklər edilib. Pəncərəni bağlamaq istəyirsizə əminsinizmi?","options":"Seçimlər","target":"Hədəf çərçivə","targetNew":"Yeni pəncərə (_blank)","targetTop":"Əsas pəncərə (_top)","targetSelf":"Carı pəncərə (_self)","targetParent":"Ana pəncərə (_parent)","langDirLTR":"Soldan sağa (LTR)","langDirRTL":"Sağdan sola (RTL)","styles":"Üslub","cssClasses":"Üslub klası","width":"En","height":"Uzunluq","align":"Yerləşmə","left":"Sol","right":"Sağ","center":"Mərkəz","justify":"Eninə görə","alignLeft":"Soldan düzləndir","alignRight":"Sağdan düzləndir","alignCenter":"Mərkəzə düzləndir","alignTop":"Yuxarı","alignMiddle":"Orta","alignBottom":"Aşağı","alignNone":"Yoxdur","invalidValue":"Yanlışdır.","invalidHeight":"Hündürlük rəqəm olmalıdır.","invalidWidth":"En rəqəm olmalıdır.","invalidLength":"\"%1\" xanasına, ölçü vahidinin (%2) göstərilməsindən asılı olmayaraq, müsbət ədəd qeyd olunmalıdır.","invalidCssLength":"\"%1\" xanasında göstərilən məzmun tam və müsbət olmalıdır, CSS-də olan ölçü vahidlərin (px, %, in, cm, mm, em, ex, pt, or pc) istifadısinə icazə verilir.","invalidHtmlLength":"\"%1\" xanasında göstərilən məzmun tam və müsbət olmalıdır HTML-də olan ölçü vahidlərin (px və ya %) istifadısinə icazə verilir.","invalidInlineStyle":"Teq içində olan üslub \"ad :  məzmun\" şəklidə, nöqtə-verqül işarəsi ilə bitməlidir","cssLengthTooltip":"Piksel sayı və ya digər CSS ölçü vahidləri (px, %, in, cm, mm, em, ex, pt, or pc) daxil edin.","unavailable":"%1<span class=\"cke_accessibility\">, mövcud deyil</span>","keyboard":{"8":"Backspace","13":"Enter","16":"Shift","17":"Ctrl","18":"Alt","32":"Boşluq","35":"Son","36":"Evə","46":"Sil","112":"F1","113":"F2","114":"F3","115":"F4","116":"F5","117":"F6","118":"F7","119":"F8","120":"F9","121":"F10","122":"F11","123":"F12","124":"F13","125":"F14","126":"F15","127":"F16","128":"F17","129":"F18","130":"F19","131":"F20","132":"F21","133":"F22","134":"F23","135":"F24","224":"Əmr"},"keyboardShortcut":"Qısayol düymələri","optionDefault":"Standart"}};
\ No newline at end of file
diff --git a/web/core/assets/vendor/ckeditor/lang/bg.js b/web/core/assets/vendor/ckeditor/lang/bg.js
index e864425cb8..7efb190e70 100644
--- a/web/core/assets/vendor/ckeditor/lang/bg.js
+++ b/web/core/assets/vendor/ckeditor/lang/bg.js
@@ -1,5 +1,5 @@
 /*
-Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2020, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */
 CKEDITOR.lang['bg']={"widget":{"move":"Кликни и влачи, за да преместиш","label":"%1 приставка"},"undo":{"redo":"Пренаправи","undo":"Отмени"},"toolbar":{"toolbarCollapse":"Свиване на лентата с инструменти","toolbarExpand":"Разширяване на лентата с инструменти","toolbarGroups":{"document":"Документ","clipboard":"Клипборд/Отмяна","editing":"Редакция","forms":"Форми","basicstyles":"Базови стилове","paragraph":"Параграф","links":"Връзки","insert":"Вмъкване","styles":"Стилове","colors":"Цветове","tools":"Инструменти"},"toolbars":"Ленти с инструменти"},"table":{"border":"Размер на рамката","caption":"Заглавие","cell":{"menu":"Клетка","insertBefore":"Вмъкване на клетка преди","insertAfter":"Вмъкване на клетка след","deleteCell":"Изтриване на клетки","merge":"Сливане на клетки","mergeRight":"Сливане надясно","mergeDown":"Сливане надолу","splitHorizontal":"Разделяне клетката хоризонтално","splitVertical":"Разделяне клетката вертикално","title":"Настройки на клетката","cellType":"Тип на клетката","rowSpan":"Редове обединени","colSpan":"Колони обединени","wordWrap":"Авто. пренос","hAlign":"Хоризонтално подравняване","vAlign":"Вертикално подравняване","alignBaseline":"Базова линия","bgColor":"Фон","borderColor":"Цвят на рамката","data":"Данни","header":"Заглавие","yes":"Да","no":"Не","invalidWidth":"Ширината на клетката трябва да е число.","invalidHeight":"Височината на клетката трябва да е число.","invalidRowSpan":"Редове обединени трябва да е цяло число.","invalidColSpan":"Колони обединени трябва да е цяло число.","chooseColor":"Изберете"},"cellPad":"Отделяне на клетките","cellSpace":"Разстояние между клетките","column":{"menu":"Колона","insertBefore":"Вмъкване на колона преди","insertAfter":"Вмъкване на колона след","deleteColumn":"Изтриване на колони"},"columns":"Колони","deleteTable":"Изтриване на таблица","headers":"Заглавия","headersBoth":"И двете","headersColumn":"Първа колона","headersNone":"Няма","headersRow":"Първи ред","heightUnit":"height unit","invalidBorder":"Размерът на рамката трябва да е число.","invalidCellPadding":"Отстоянието на клетките трябва да е положително число.","invalidCellSpacing":"Интервалът в клетките трябва да е положително число.","invalidCols":"Броят колони трябва да е по-голям от 0.","invalidHeight":"Височината на таблицата трябва да е число.","invalidRows":"Броят редове трябва да е по-голям от 0.","invalidWidth":"Ширината на таблицата трябва да е число.","menu":"Настройки на таблицата","row":{"menu":"Ред","insertBefore":"Вмъкване на ред преди","insertAfter":"Вмъкване на ред след","deleteRow":"Изтриване на редове"},"rows":"Редове","summary":"Обща информация","title":"Настройки на таблицата","toolbar":"Таблица","widthPc":"процент","widthPx":"пиксела","widthUnit":"единица за ширина"},"stylescombo":{"label":"Стилове","panelTitle":"Стилове за форматиране","panelTitle1":"Блокови стилове","panelTitle2":"Поредови стилове","panelTitle3":"Обектни стилове"},"specialchar":{"options":"Опции за специален знак","title":"Избор на специален знак","toolbar":"Вмъкване на специален знак"},"sourcedialog":{"toolbar":"Източник","title":"Източник"},"sourcearea":{"toolbar":"Код"},"showblocks":{"toolbar":"Показва блокове"},"removeformat":{"toolbar":"Премахване на форматирането"},"pastetext":{"button":"Вмъкни като чист текст","pasteNotification":"Натиснете %1 за да поставите. Вашият браузър не поддържа поставяне с бутон от лентата с инструменти или контекстното меню.","title":"Вмъкни като чист текст"},"pastefromword":{"confirmCleanup":"Текстът, който искате да поставите, изглежда е копиран от Word. Искате ли да се почисти преди поставянето?","error":"Вмъкваните данни не могат да бъдат почистени поради вътрешна грешка","title":"Вмъкни от Word","toolbar":"Вмъкни от Word"},"notification":{"closed":"Известието е затворено."},"maximize":{"maximize":"Максимизиране","minimize":"Минимизиране"},"magicline":{"title":"Вмъкнете параграф тук"},"list":{"bulletedlist":"Вмъкване/премахване на точков списък","numberedlist":"Вмъкване/премахване на номериран списък"},"language":{"button":"Задай език","remove":"Премахни език"},"indent":{"indent":"Увеличаване на отстъпа","outdent":"Намаляване на отстъпа"},"image2":{"alt":"Алтернативен текст","btnUpload":"Изпрати на сървъра","captioned":"Надписано изображение","captionPlaceholder":"Надпис","infoTab":"Изображение","lockRatio":"Заключване на съотношението","menu":"Настройки на изображението","pathName":"изображение","pathNameCaption":"надпис","resetSize":"Нулиране на размер","resizer":"Кликни и влачи, за да преоразмериш","title":"Настройки на изображението","uploadTab":"Качване","urlMissing":"URL адреса на изображението липсва.","altMissing":"Липсва алтернативен текст."},"horizontalrule":{"toolbar":"Вмъкване на хоризонтална линия"},"format":{"label":"Формат","panelTitle":"Формат на параграф","tag_address":"Адрес","tag_div":"Нормален (DIV)","tag_h1":"Заглавие 1","tag_h2":"Заглавие 2","tag_h3":"Заглавие 3","tag_h4":"Заглавие 4","tag_h5":"Заглавие 5","tag_h6":"Заглавие 6","tag_p":"Нормален","tag_pre":"Форматиран"},"filetools":{"loadError":"Възникна грешка при четене на файла.","networkError":"Възникна мрежова грешка при качването на файла.","httpError404":"Възникна HTTP грешка при качване на файла (404: Файлът не е намерен).","httpError403":"Възникна HTTP грешка при качване на файла (403: Забранено).","httpError":"Възникна HTTP грешка при качване на файла (статус на грешката: %1).","noUrlError":"URL адресът за качване не е дефиниран.","responseError":"Неправилен отговор на сървъра."},"elementspath":{"eleLabel":"Път за елементите","eleTitle":"%1 елемент"},"contextmenu":{"options":"Опции на контекстното меню"},"clipboard":{"copy":"Копирай","copyError":"Настройките за сигурност на вашия бразуър не разрешават на редактора да изпълни действията по копиране. За целта използвайте клавиатурата (Ctrl+C).","cut":"Отрежи","cutError":"Настройките за сигурност на вашия браузър не позволяват на редактора автоматично да изъплни действията за отрязване. За целта използвайте клавиатурата (Ctrl+X).","paste":"Вмъкни","pasteNotification":"Натиснете %1 за да вмъкнете. Вашият браузър не поддържа поставяне с бутон от лентата с инструменти или от контекстното меню.","pasteArea":"Зона за поставяне","pasteMsg":"Поставете съдържанието в зоната отдолу и натиснете OK."},"blockquote":{"toolbar":"Блок за цитат"},"basicstyles":{"bold":"Удебелен","italic":"Наклонен","strike":"Зачертан текст","subscript":"Долен индекс","superscript":"Горен индекс","underline":"Подчертан"},"about":{"copy":"Авторско право &copy; $1. Всички права запазени.","dlgTitle":"Относно CKEditor 4","moreInfo":"За лицензионна информация моля посетете сайта ни:"},"editor":"Редактор за форматиран текст","editorPanel":"Панел на текстовия редактор","common":{"editorHelp":"натиснете ALT+0 за помощ","browseServer":"Избор от сървъра","url":"URL адрес","protocol":"Протокол","upload":"Качване","uploadSubmit":"Изпращане към сървъра","image":"Изображение","flash":"Флаш","form":"Форма","checkbox":"Поле за избор","radio":"Радио бутон","textField":"Текстово поле","textarea":"Текстова зона","hiddenField":"Скрито поле","button":"Бутон","select":"Поле за избор","imageButton":"Бутон за изображение","notSet":"<не е избрано>","id":"ID","name":"Име","langDir":"Посока на езика","langDirLtr":"От ляво надясно (LTR)","langDirRtl":"От дясно наляво (RTL)","langCode":"Код на езика","longDescr":"Уеб адрес за дълго описание","cssClass":"Класове за CSS","advisoryTitle":"Заглавие","cssStyle":"Стил","ok":"ОК","cancel":"Отказ","close":"Затвори","preview":"Преглед","resize":"Влачете за да оразмерите","generalTab":"Общи","advancedTab":"Разширено","validateNumberFailed":"Тази стойност не е число","confirmNewPage":"Всички незапазени промени ще бъдат изгубени. Сигурни ли сте, че желаете да заредите нова страница?","confirmCancel":"Някои от опциите са променени. Сигурни ли сте, че желаете да затворите прозореца?","options":"Опции","target":"Цел","targetNew":"Нов прозорец (_blank)","targetTop":"Най-горният прозорец (_top)","targetSelf":"Текущият прозорец (_self)","targetParent":"Горният прозорец (_parent)","langDirLTR":"От ляво надясно (LTR)","langDirRTL":"От дясно наляво (RTL)","styles":"Стил","cssClasses":"Класове за CSS","width":"Ширина","height":"Височина","align":"Подравняване","left":"Ляво","right":"Дясно","center":"Център","justify":"Двустранно","alignLeft":"Подравни ляво","alignRight":"Подравни дясно","alignCenter":"Подравни център","alignTop":"Горе","alignMiddle":"По средата","alignBottom":"Долу","alignNone":"Без подравняване","invalidValue":"Невалидна стойност.","invalidHeight":"Височината трябва да е число.","invalidWidth":"Ширина трябва да е число.","invalidLength":"Стойността на полето \"%1\" трябва да е положително число с или без валидна мерна единица (%2).","invalidCssLength":"Стойността на полето \"%1\" трябва да е положително число с или без валидна CSS мерна единица (px, %, in, cm, mm, em, ex, pt, или pc).","invalidHtmlLength":"Стойността на полето \"%1\" трябва да е положително число с или без валидна HTML мерна единица (px или %).","invalidInlineStyle":"Стойността на стилa трябва да съдържат една или повече двойки във формат \"name : value\", разделени с двоеточие.","cssLengthTooltip":"Въведете числена стойност в пиксели или друга валидна CSS единица (px, %, in, cm, mm, em, ex, pt, или pc).","unavailable":"%1<span class=\"cke_accessibility\">, недостъпно</span>","keyboard":{"8":"Backspace","13":"Enter","16":"Shift","17":"Ctrl","18":"Alt","32":"Space","35":"End","36":"Home","46":"Delete","112":"F1","113":"F2","114":"F3","115":"F4","116":"F5","117":"F6","118":"F7","119":"F8","120":"F9","121":"F10","122":"F11","123":"F12","124":"F13","125":"F14","126":"F15","127":"F16","128":"F17","129":"F18","130":"F19","131":"F20","132":"F21","133":"F22","134":"F23","135":"F24","224":"Command"},"keyboardShortcut":"Клавишна комбинация","optionDefault":"По подразбиране"}};
\ No newline at end of file
diff --git a/web/core/assets/vendor/ckeditor/lang/bn.js b/web/core/assets/vendor/ckeditor/lang/bn.js
index 086b937733..86fecd619e 100644
--- a/web/core/assets/vendor/ckeditor/lang/bn.js
+++ b/web/core/assets/vendor/ckeditor/lang/bn.js
@@ -1,5 +1,5 @@
 /*
-Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2020, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */
 CKEDITOR.lang['bn']={"widget":{"move":"Click and drag to move","label":"%1 widget"},"undo":{"redo":"পুনরায়  করি","undo":"আনডু"},"toolbar":{"toolbarCollapse":"Collapse Toolbar","toolbarExpand":"Expand Toolbar","toolbarGroups":{"document":"Document","clipboard":"Clipboard/Undo","editing":"Editing","forms":"Forms","basicstyles":"Basic Styles","paragraph":"Paragraph","links":"Links","insert":"Insert","styles":"Styles","colors":"Colors","tools":"Tools"},"toolbars":"Editor toolbars"},"table":{"border":"বর্ডারের সাইজ","caption":"শীর্ষক","cell":{"menu":"সেল","insertBefore":"Insert Cell Before","insertAfter":"Insert Cell After","deleteCell":"সেল মুছে দাও","merge":"সেল জোড়া দাও","mergeRight":"Merge Right","mergeDown":"Merge Down","splitHorizontal":"Split Cell Horizontally","splitVertical":"Split Cell Vertically","title":"Cell Properties","cellType":"Cell Type","rowSpan":"Rows Span","colSpan":"Columns Span","wordWrap":"Word Wrap","hAlign":"Horizontal Alignment","vAlign":"Vertical Alignment","alignBaseline":"Baseline","bgColor":"পৃষ্ঠতলের রং","borderColor":"Border Color","data":"Data","header":"Header","yes":"Yes","no":"No","invalidWidth":"Cell width must be a number.","invalidHeight":"Cell height must be a number.","invalidRowSpan":"Rows span must be a whole number.","invalidColSpan":"Columns span must be a whole number.","chooseColor":"Choose"},"cellPad":"সেল প্যাডিং","cellSpace":"সেল স্পেস","column":{"menu":"কলাম","insertBefore":"Insert Column Before","insertAfter":"Insert Column After","deleteColumn":"কলাম মুছে দাও"},"columns":"কলাম","deleteTable":"টেবিল ডিলীট কর","headers":"Headers","headersBoth":"Both","headersColumn":"First column","headersNone":"None","headersRow":"First Row","heightUnit":"height unit","invalidBorder":"Border size must be a number.","invalidCellPadding":"Cell padding must be a positive number.","invalidCellSpacing":"Cell spacing must be a positive number.","invalidCols":"Number of columns must be a number greater than 0.","invalidHeight":"Table height must be a number.","invalidRows":"Number of rows must be a number greater than 0.","invalidWidth":"Table width must be a number.","menu":"টেবিল প্রোপার্টি","row":{"menu":"রো","insertBefore":"Insert Row Before","insertAfter":"Insert Row After","deleteRow":"রো মুছে দাও"},"rows":"রো","summary":"সারাংশ","title":"টেবিল প্রোপার্টি","toolbar":"টেবিলের লেবেল যুক্ত কর","widthPc":"শতকরা","widthPx":"পিক্সেল","widthUnit":"width unit"},"stylescombo":{"label":"ধরন","panelTitle":"Formatting Styles","panelTitle1":"Block Styles","panelTitle2":"Inline Styles","panelTitle3":"Object Styles"},"specialchar":{"options":"Special Character Options","title":"বিশেষ ক্যারেক্টার বাছাই কর","toolbar":"বিশেষ অক্ষর যুক্ত কর"},"sourcedialog":{"toolbar":"উৎস","title":"সোর্স"},"sourcearea":{"toolbar":"উৎস"},"showblocks":{"toolbar":"Show Blocks"},"removeformat":{"toolbar":"ধরন-প্রকৃতি অপসারণ করি"},"pastetext":{"button":"সাধারণ টেক্সট হিসেবে পেইস্ট করি","pasteNotification":"Press %1 to paste. Your browser doesn‘t support pasting with the toolbar button or context menu option.","title":"সাদা টেক্সট হিসেবে পেস্ট কর"},"pastefromword":{"confirmCleanup":"The text you want to paste seems to be copied from Word. Do you want to clean it before pasting?","error":"It was not possible to clean up the pasted data due to an internal error","title":"পেস্ট (শব্দ)","toolbar":"পেস্ট (শব্দ)"},"notification":{"closed":"Notification closed."},"maximize":{"maximize":"Maximize","minimize":"Minimize"},"magicline":{"title":"Insert paragraph here"},"list":{"bulletedlist":"বুলেটেড তালিকা প্রবেশ/অপসারন করি","numberedlist":"সাংখ্যিক লিস্টের লেবেল"},"language":{"button":"Set language","remove":"Remove language"},"indent":{"indent":"ইনডেন্ট বাড়াই","outdent":"ইনডেন্ট কমাও"},"image2":{"alt":"বিকল্প টেক্সট","btnUpload":"ইহাকে সার্ভারে প্রেরন কর","captioned":"Captioned image","captionPlaceholder":"Caption","infoTab":"ছবির তথ্য","lockRatio":"অনুপাত লক কর","menu":"ছবির প্রোপার্টি","pathName":"image","pathNameCaption":"caption","resetSize":"সাইজ পূর্বাবস্থায় ফিরিয়ে দাও","resizer":"Click and drag to resize","title":"ছবির প্রোপার্টি","uploadTab":"আপলোড","urlMissing":"Image source URL is missing.","altMissing":"Alternative text is missing."},"horizontalrule":{"toolbar":"অনুভূমিক লাইন যোগ করি"},"format":{"label":"ধরন-প্রকৃতি","panelTitle":"ফন্ট ফরমেট","tag_address":"ঠিকানা","tag_div":"শীর্ষক (DIV)","tag_h1":"শীর্ষক ১","tag_h2":"শীর্ষক ২","tag_h3":"শীর্ষক ৩","tag_h4":"শীর্ষক ৪","tag_h5":"শীর্ষক ৫","tag_h6":"শীর্ষক ৬","tag_p":"সাধারণ","tag_pre":"ফর্মেটেড"},"filetools":{"loadError":"Error occurred during file read.","networkError":"Network error occurred during file upload.","httpError404":"HTTP error occurred during file upload (404: File not found).","httpError403":"HTTP error occurred during file upload (403: Forbidden).","httpError":"HTTP error occurred during file upload (error status: %1).","noUrlError":"Upload URL is not defined.","responseError":"Incorrect server response."},"elementspath":{"eleLabel":"Elements path","eleTitle":"%1 element"},"contextmenu":{"options":"Context Menu Options"},"clipboard":{"copy":"কপি","copyError":"আপনার ব্রাউজারের নিরাপত্তা সেটিংসমূহ এডিটরকে স্বয়ংক্রিয়ভাবে কপি করার প্রক্রিয়া চালনা করার অনুমতি দেয় না। অনুগ্রহপূর্বক এই কাজের জন্য কিবোর্ড ব্যবহার করুন (Ctrl/Cmd+C)।","cut":"কাট","cutError":"আপনার ব্রাউজারের সুরক্ষা সেটিংস এডিটরকে অটোমেটিক কাট করার অনুমতি দেয়নি। দয়া করে এই কাজের জন্য কিবোর্ড ব্যবহার করুন (Ctrl/Cmd+X)।","paste":"পেস্ট","pasteNotification":"Press %1 to paste. Your browser doesn‘t support pasting with the toolbar button or context menu option.","pasteArea":"Paste Area","pasteMsg":"Paste your content inside the area below and press OK."},"blockquote":{"toolbar":"Block Quote"},"basicstyles":{"bold":"বোল্ড","italic":"বাঁকা","strike":"স্ট্রাইক থ্রু","subscript":"অধোলেখ","superscript":"অভিলেখ","underline":"আন্ডারলাইন"},"about":{"copy":"Copyright &copy; $1. All rights reserved.","dlgTitle":"About CKEditor 4","moreInfo":"For licensing information please visit our web site:"},"editor":"Rich Text Editor","editorPanel":"Rich Text Editor panel","common":{"editorHelp":"Press ALT 0 for help","browseServer":"ব্রাউজ সার্ভার","url":"URL","protocol":"প্রোটোকল","upload":"আপলোড","uploadSubmit":"ইহাকে সার্ভারে প্রেরন কর","image":"ছবির লেবেল যুক্ত কর","flash":"ফ্লাশ লেবেল যুক্ত কর","form":"ফর্ম","checkbox":"চেক বাক্স","radio":"রেডিও বাটন","textField":"টেক্সট ফীল্ড","textarea":"টেক্সট এরিয়া","hiddenField":"গুপ্ত ফীল্ড","button":"বাটন","select":"বাছাই ফীল্ড","imageButton":"ছবির বাটন","notSet":"<সেট নেই>","id":"আইডি","name":"নাম","langDir":"ভাষা লেখার দিক","langDirLtr":"বাম থেকে ডান (LTR)","langDirRtl":"ডান থেকে বাম (RTL)","langCode":"ভাষা কোড","longDescr":"URL এর লম্বা বর্ণনা","cssClass":"স্টাইল-শীট ক্লাস","advisoryTitle":"পরামর্শ শীর্ষক","cssStyle":"স্টাইল","ok":"ওকে","cancel":"বাতিল","close":"Close","preview":"প্রিভিউ","resize":"Resize","generalTab":"General","advancedTab":"এডভান্সড","validateNumberFailed":"This value is not a number.","confirmNewPage":"Any unsaved changes to this content will be lost. Are you sure you want to load new page?","confirmCancel":"You have changed some options. Are you sure you want to close the dialog window?","options":"Options","target":"টার্গেট","targetNew":"New Window (_blank)","targetTop":"Topmost Window (_top)","targetSelf":"Same Window (_self)","targetParent":"Parent Window (_parent)","langDirLTR":"বাম থেকে ডান (LTR)","langDirRTL":"ডান থেকে বাম (RTL)","styles":"স্টাইল","cssClasses":"স্টাইল-শীট ক্লাস","width":"প্রস্থ","height":"দৈর্ঘ্য","align":"এলাইন","left":"বামে","right":"ডানে","center":"মাঝখানে","justify":"ব্লক জাস্টিফাই","alignLeft":"বা দিকে ঘেঁষা","alignRight":"ডান দিকে ঘেঁষা","alignCenter":"Align Center","alignTop":"উপর","alignMiddle":"মধ্য","alignBottom":"নীচে","alignNone":"None","invalidValue":"Invalid value.","invalidHeight":"Height must be a number.","invalidWidth":"Width must be a number.","invalidLength":"Value specified for the \"%1\" field must be a positive number with or without a valid measurement unit (%2).","invalidCssLength":"Value specified for the \"%1\" field must be a positive number with or without a valid CSS measurement unit (px, %, in, cm, mm, em, ex, pt, or pc).","invalidHtmlLength":"Value specified for the \"%1\" field must be a positive number with or without a valid HTML measurement unit (px or %).","invalidInlineStyle":"Value specified for the inline style must consist of one or more tuples with the format of \"name : value\", separated by semi-colons.","cssLengthTooltip":"Enter a number for a value in pixels or a number with a valid CSS unit (px, %, in, cm, mm, em, ex, pt, or pc).","unavailable":"%1<span class=\"cke_accessibility\">, unavailable</span>","keyboard":{"8":"Backspace","13":"Enter","16":"Shift","17":"Ctrl","18":"Alt","32":"Space","35":"End","36":"Home","46":"Delete","112":"F1","113":"F2","114":"F3","115":"F4","116":"F5","117":"F6","118":"F7","119":"F8","120":"F9","121":"F10","122":"F11","123":"F12","124":"F13","125":"F14","126":"F15","127":"F16","128":"F17","129":"F18","130":"F19","131":"F20","132":"F21","133":"F22","134":"F23","135":"F24","224":"Command"},"keyboardShortcut":"Keyboard shortcut","optionDefault":"Default"}};
\ No newline at end of file
diff --git a/web/core/assets/vendor/ckeditor/lang/bs.js b/web/core/assets/vendor/ckeditor/lang/bs.js
index 5f980c20a6..1f76e731eb 100644
--- a/web/core/assets/vendor/ckeditor/lang/bs.js
+++ b/web/core/assets/vendor/ckeditor/lang/bs.js
@@ -1,5 +1,5 @@
 /*
-Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2020, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */
 CKEDITOR.lang['bs']={"widget":{"move":"Click and drag to move","label":"%1 widget"},"undo":{"redo":"Ponovi","undo":"Vrati"},"toolbar":{"toolbarCollapse":"Collapse Toolbar","toolbarExpand":"Expand Toolbar","toolbarGroups":{"document":"Document","clipboard":"Clipboard/Undo","editing":"Editing","forms":"Forms","basicstyles":"Basic Styles","paragraph":"Paragraph","links":"Links","insert":"Insert","styles":"Styles","colors":"Colors","tools":"Tools"},"toolbars":"Editor toolbars"},"table":{"border":"Okvir","caption":"Naslov","cell":{"menu":"Cell","insertBefore":"Insert Cell Before","insertAfter":"Insert Cell After","deleteCell":"Briši æelije","merge":"Spoji æelije","mergeRight":"Merge Right","mergeDown":"Merge Down","splitHorizontal":"Split Cell Horizontally","splitVertical":"Split Cell Vertically","title":"Cell Properties","cellType":"Cell Type","rowSpan":"Rows Span","colSpan":"Columns Span","wordWrap":"Word Wrap","hAlign":"Horizontal Alignment","vAlign":"Vertical Alignment","alignBaseline":"Baseline","bgColor":"Background Color","borderColor":"Border Color","data":"Data","header":"Header","yes":"Yes","no":"No","invalidWidth":"Cell width must be a number.","invalidHeight":"Cell height must be a number.","invalidRowSpan":"Rows span must be a whole number.","invalidColSpan":"Columns span must be a whole number.","chooseColor":"Choose"},"cellPad":"Uvod æelija","cellSpace":"Razmak æelija","column":{"menu":"Column","insertBefore":"Insert Column Before","insertAfter":"Insert Column After","deleteColumn":"Briši kolone"},"columns":"Kolona","deleteTable":"Delete Table","headers":"Headers","headersBoth":"Both","headersColumn":"First column","headersNone":"None","headersRow":"First Row","heightUnit":"height unit","invalidBorder":"Border size must be a number.","invalidCellPadding":"Cell padding must be a positive number.","invalidCellSpacing":"Cell spacing must be a positive number.","invalidCols":"Number of columns must be a number greater than 0.","invalidHeight":"Table height must be a number.","invalidRows":"Number of rows must be a number greater than 0.","invalidWidth":"Table width must be a number.","menu":"Svojstva tabele","row":{"menu":"Row","insertBefore":"Insert Row Before","insertAfter":"Insert Row After","deleteRow":"Briši redove"},"rows":"Redova","summary":"Summary","title":"Svojstva tabele","toolbar":"Tabela","widthPc":"posto","widthPx":"piksela","widthUnit":"width unit"},"stylescombo":{"label":"Stil","panelTitle":"Formatting Styles","panelTitle1":"Block Styles","panelTitle2":"Inline Styles","panelTitle3":"Object Styles"},"specialchar":{"options":"Special Character Options","title":"Izaberi specijalni karakter","toolbar":"Ubaci specijalni karater"},"sourcedialog":{"toolbar":"HTML kôd","title":"HTML kôd"},"sourcearea":{"toolbar":"HTML kôd"},"showblocks":{"toolbar":"Show Blocks"},"removeformat":{"toolbar":"Poništi format"},"pastetext":{"button":"Zalijepi kao obièan tekst","pasteNotification":"Press %1 to paste. Your browser doesn‘t support pasting with the toolbar button or context menu option.","title":"Zalijepi kao obièan tekst"},"pastefromword":{"confirmCleanup":"The text you want to paste seems to be copied from Word. Do you want to clean it before pasting?","error":"It was not possible to clean up the pasted data due to an internal error","title":"Zalijepi iz Word-a","toolbar":"Zalijepi iz Word-a"},"notification":{"closed":"Notification closed."},"maximize":{"maximize":"Maximize","minimize":"Minimize"},"magicline":{"title":"Insert paragraph here"},"list":{"bulletedlist":"Lista","numberedlist":"Numerisana lista"},"language":{"button":"Set language","remove":"Remove language"},"indent":{"indent":"Poveæaj uvod","outdent":"Smanji uvod"},"image2":{"alt":"Tekst na slici","btnUpload":"Šalji na server","captioned":"Captioned image","captionPlaceholder":"Caption","infoTab":"Info slike","lockRatio":"Zakljuèaj odnos","menu":"Svojstva slike","pathName":"image","pathNameCaption":"caption","resetSize":"Resetuj dimenzije","resizer":"Click and drag to resize","title":"Svojstva slike","uploadTab":"Šalji","urlMissing":"Image source URL is missing.","altMissing":"Alternative text is missing."},"horizontalrule":{"toolbar":"Ubaci horizontalnu liniju"},"format":{"label":"Format","panelTitle":"Format","tag_address":"Address","tag_div":"Normal (DIV)","tag_h1":"Heading 1","tag_h2":"Heading 2","tag_h3":"Heading 3","tag_h4":"Heading 4","tag_h5":"Heading 5","tag_h6":"Heading 6","tag_p":"Normal","tag_pre":"Formatted"},"filetools":{"loadError":"Error occurred during file read.","networkError":"Network error occurred during file upload.","httpError404":"HTTP error occurred during file upload (404: File not found).","httpError403":"HTTP error occurred during file upload (403: Forbidden).","httpError":"HTTP error occurred during file upload (error status: %1).","noUrlError":"Upload URL is not defined.","responseError":"Incorrect server response."},"elementspath":{"eleLabel":"Elements path","eleTitle":"%1 element"},"contextmenu":{"options":"Context Menu Options"},"clipboard":{"copy":"Kopiraj","copyError":"Sigurnosne postavke Vašeg pretraživaèa ne dozvoljavaju operacije automatskog kopiranja. Molimo koristite kraticu na tastaturi (Ctrl/Cmd+C).","cut":"Izreži","cutError":"Sigurnosne postavke vašeg pretraživaèa ne dozvoljavaju operacije automatskog rezanja. Molimo koristite kraticu na tastaturi (Ctrl/Cmd+X).","paste":"Zalijepi","pasteNotification":"Press %1 to paste. Your browser doesn‘t support pasting with the toolbar button or context menu option.","pasteArea":"Paste Area","pasteMsg":"Paste your content inside the area below and press OK."},"blockquote":{"toolbar":"Block Quote"},"basicstyles":{"bold":"Boldiraj","italic":"Ukosi","strike":"Precrtaj","subscript":"Subscript","superscript":"Superscript","underline":"Podvuci"},"about":{"copy":"Copyright &copy; $1. All rights reserved.","dlgTitle":"About CKEditor 4","moreInfo":"For licensing information please visit our web site:"},"editor":"Rich Text Editor","editorPanel":"Rich Text Editor panel","common":{"editorHelp":"Press ALT 0 for help","browseServer":"Browse Server","url":"URL","protocol":"Protokol","upload":"Šalji","uploadSubmit":"Šalji na server","image":"Slika","flash":"Flash","form":"Form","checkbox":"Checkbox","radio":"Radio Button","textField":"Text Field","textarea":"Textarea","hiddenField":"Hidden Field","button":"Button","select":"Selection Field","imageButton":"Image Button","notSet":"<nije podešeno>","id":"Id","name":"Naziv","langDir":"Smjer pisanja","langDirLtr":"S lijeva na desno (LTR)","langDirRtl":"S desna na lijevo (RTL)","langCode":"Jezièni kôd","longDescr":"Dugaèki opis URL-a","cssClass":"Klase CSS stilova","advisoryTitle":"Advisory title","cssStyle":"Stil","ok":"OK","cancel":"Odustani","close":"Close","preview":"Prikaži","resize":"Resize","generalTab":"General","advancedTab":"Naprednije","validateNumberFailed":"This value is not a number.","confirmNewPage":"Any unsaved changes to this content will be lost. Are you sure you want to load new page?","confirmCancel":"You have changed some options. Are you sure you want to close the dialog window?","options":"Options","target":"Prozor","targetNew":"New Window (_blank)","targetTop":"Topmost Window (_top)","targetSelf":"Same Window (_self)","targetParent":"Parent Window (_parent)","langDirLTR":"S lijeva na desno (LTR)","langDirRTL":"S desna na lijevo (RTL)","styles":"Stil","cssClasses":"Klase CSS stilova","width":"Širina","height":"Visina","align":"Poravnanje","left":"Lijevo","right":"Desno","center":"Centar","justify":"Puno poravnanje","alignLeft":"Lijevo poravnanje","alignRight":"Desno poravnanje","alignCenter":"Align Center","alignTop":"Vrh","alignMiddle":"Sredina","alignBottom":"Dno","alignNone":"None","invalidValue":"Invalid value.","invalidHeight":"Height must be a number.","invalidWidth":"Width must be a number.","invalidLength":"Value specified for the \"%1\" field must be a positive number with or without a valid measurement unit (%2).","invalidCssLength":"Value specified for the \"%1\" field must be a positive number with or without a valid CSS measurement unit (px, %, in, cm, mm, em, ex, pt, or pc).","invalidHtmlLength":"Value specified for the \"%1\" field must be a positive number with or without a valid HTML measurement unit (px or %).","invalidInlineStyle":"Value specified for the inline style must consist of one or more tuples with the format of \"name : value\", separated by semi-colons.","cssLengthTooltip":"Enter a number for a value in pixels or a number with a valid CSS unit (px, %, in, cm, mm, em, ex, pt, or pc).","unavailable":"%1<span class=\"cke_accessibility\">, unavailable</span>","keyboard":{"8":"Backspace","13":"Enter","16":"Shift","17":"Ctrl","18":"Alt","32":"Space","35":"End","36":"Home","46":"Delete","112":"F1","113":"F2","114":"F3","115":"F4","116":"F5","117":"F6","118":"F7","119":"F8","120":"F9","121":"F10","122":"F11","123":"F12","124":"F13","125":"F14","126":"F15","127":"F16","128":"F17","129":"F18","130":"F19","131":"F20","132":"F21","133":"F22","134":"F23","135":"F24","224":"Command"},"keyboardShortcut":"Keyboard shortcut","optionDefault":"Default"}};
\ No newline at end of file
diff --git a/web/core/assets/vendor/ckeditor/lang/ca.js b/web/core/assets/vendor/ckeditor/lang/ca.js
index 6b6dc79a8d..5ccfd578c6 100644
--- a/web/core/assets/vendor/ckeditor/lang/ca.js
+++ b/web/core/assets/vendor/ckeditor/lang/ca.js
@@ -1,5 +1,5 @@
 /*
-Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2020, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */
 CKEDITOR.lang['ca']={"widget":{"move":"Clicar i arrossegar per moure","label":"%1 widget"},"undo":{"redo":"Refés","undo":"Desfés"},"toolbar":{"toolbarCollapse":"Redueix la barra d'eines","toolbarExpand":"Amplia la barra d'eines","toolbarGroups":{"document":"Document","clipboard":"Clipboard/Undo","editing":"Editing","forms":"Forms","basicstyles":"Basic Styles","paragraph":"Paragraph","links":"Links","insert":"Insert","styles":"Styles","colors":"Colors","tools":"Tools"},"toolbars":"Editor de barra d'eines"},"table":{"border":"Mida vora","caption":"Títol","cell":{"menu":"Cel·la","insertBefore":"Insereix abans","insertAfter":"Insereix després","deleteCell":"Suprimeix","merge":"Fusiona","mergeRight":"Fusiona a la dreta","mergeDown":"Fusiona avall","splitHorizontal":"Divideix horitzontalment","splitVertical":"Divideix verticalment","title":"Propietats de la cel·la","cellType":"Tipus de cel·la","rowSpan":"Expansió de files","colSpan":"Expansió de columnes","wordWrap":"Ajustar al contingut","hAlign":"Alineació Horizontal","vAlign":"Alineació Vertical","alignBaseline":"A la línia base","bgColor":"Color de fons","borderColor":"Color de la vora","data":"Dades","header":"Capçalera","yes":"Sí","no":"No","invalidWidth":"L'amplada de cel·la ha de ser un nombre.","invalidHeight":"L'alçada de cel·la ha de ser un nombre.","invalidRowSpan":"L'expansió de files ha de ser un nombre enter.","invalidColSpan":"L'expansió de columnes ha de ser un nombre enter.","chooseColor":"Trieu"},"cellPad":"Encoixinament de cel·les","cellSpace":"Espaiat de cel·les","column":{"menu":"Columna","insertBefore":"Insereix columna abans de","insertAfter":"Insereix columna darrera","deleteColumn":"Suprimeix una columna"},"columns":"Columnes","deleteTable":"Suprimeix la taula","headers":"Capçaleres","headersBoth":"Ambdues","headersColumn":"Primera columna","headersNone":"Cap","headersRow":"Primera fila","heightUnit":"height unit","invalidBorder":"El gruix de la vora ha de ser un nombre.","invalidCellPadding":"L'encoixinament de cel·la  ha de ser un nombre.","invalidCellSpacing":"L'espaiat de cel·la  ha de ser un nombre.","invalidCols":"El nombre de columnes ha de ser un nombre major que 0.","invalidHeight":"L'alçada de la taula  ha de ser un nombre.","invalidRows":"El nombre de files ha de ser un nombre major que 0.","invalidWidth":"L'amplada de la taula  ha de ser un nombre.","menu":"Propietats de la taula","row":{"menu":"Fila","insertBefore":"Insereix fila abans de","insertAfter":"Insereix fila darrera","deleteRow":"Suprimeix una fila"},"rows":"Files","summary":"Resum","title":"Propietats de la taula","toolbar":"Taula","widthPc":"percentatge","widthPx":"píxels","widthUnit":"unitat d'amplada"},"stylescombo":{"label":"Estil","panelTitle":"Estils de format","panelTitle1":"Estils de bloc","panelTitle2":"Estils incrustats","panelTitle3":"Estils d'objecte"},"specialchar":{"options":"Opcions de caràcters especials","title":"Selecciona el caràcter especial","toolbar":"Insereix caràcter especial"},"sourcedialog":{"toolbar":"Codi font","title":"Codi font"},"sourcearea":{"toolbar":"Codi font"},"showblocks":{"toolbar":"Mostra els blocs"},"removeformat":{"toolbar":"Elimina Format"},"pastetext":{"button":"Enganxa com a text no formatat","pasteNotification":"Press %1 to paste. Your browser doesn‘t support pasting with the toolbar button or context menu option.","title":"Enganxa com a text no formatat"},"pastefromword":{"confirmCleanup":"El text que voleu enganxar sembla provenir de Word. Voleu netejar aquest text abans que sigui enganxat?","error":"No ha estat possible netejar les dades enganxades degut a un error intern","title":"Enganxa des del Word","toolbar":"Enganxa des del Word"},"notification":{"closed":"Notificació tancada."},"maximize":{"maximize":"Maximitza","minimize":"Minimitza"},"magicline":{"title":"Insereix el paràgraf aquí"},"list":{"bulletedlist":"Llista de pics","numberedlist":"Llista numerada"},"language":{"button":"Definir l'idioma","remove":"Eliminar idioma"},"indent":{"indent":"Augmenta el sagnat","outdent":"Redueix el sagnat"},"image2":{"alt":"Text alternatiu","btnUpload":"Envia-la al servidor","captioned":"Imatge amb subtítol","captionPlaceholder":"Títol","infoTab":"Informació de la imatge","lockRatio":"Bloqueja les proporcions","menu":"Propietats de la imatge","pathName":"imatge","pathNameCaption":"subtítol","resetSize":"Restaura la mida","resizer":"Clicar i arrossegar per redimensionar","title":"Propietats de la imatge","uploadTab":"Puja","urlMissing":"Falta la URL de la imatge.","altMissing":"Alternative text is missing."},"horizontalrule":{"toolbar":"Insereix línia horitzontal"},"format":{"label":"Format","panelTitle":"Format","tag_address":"Adreça","tag_div":"Normal (DIV)","tag_h1":"Encapçalament 1","tag_h2":"Encapçalament 2","tag_h3":"Encapçalament 3","tag_h4":"Encapçalament 4","tag_h5":"Encapçalament 5","tag_h6":"Encapçalament 6","tag_p":"Normal","tag_pre":"Formatejat"},"filetools":{"loadError":"S'ha produït un error durant la lectura del fitxer.","networkError":"S'ha produït un error de xarxa durant la càrrega del fitxer.","httpError404":"S'ha produït un error HTTP durant la càrrega del fitxer (404: Fitxer no trobat).","httpError403":"S'ha produït un error HTTP durant la càrrega del fitxer (403: Permís denegat).","httpError":"S'ha produït un error HTTP durant la càrrega del fitxer (estat d'error: %1).","noUrlError":"La URL de càrrega no està definida.","responseError":"Resposta incorrecte del servidor"},"elementspath":{"eleLabel":"Ruta dels elements","eleTitle":"%1 element"},"contextmenu":{"options":"Opcions del menú contextual"},"clipboard":{"copy":"Copiar","copyError":"La configuració de seguretat del vostre navegador no permet executar automàticament les operacions de copiar. Si us plau, utilitzeu el teclat (Ctrl/Cmd+C).","cut":"Retallar","cutError":"La configuració de seguretat del vostre navegador no permet executar automàticament les operacions de retallar. Si us plau, utilitzeu el teclat (Ctrl/Cmd+X).","paste":"Enganxar","pasteNotification":"Press %1 to paste. Your browser doesn‘t support pasting with the toolbar button or context menu option.","pasteArea":"Àrea d'enganxat","pasteMsg":"Paste your content inside the area below and press OK."},"blockquote":{"toolbar":"Bloc de cita"},"basicstyles":{"bold":"Negreta","italic":"Cursiva","strike":"Ratllat","subscript":"Subíndex","superscript":"Superíndex","underline":"Subratllat"},"about":{"copy":"Copyright &copy; $1. Tots els drets reservats.","dlgTitle":"Quant al CKEditor 4","moreInfo":"Per informació sobre llicències visiteu el nostre lloc web:"},"editor":"Editor de text enriquit","editorPanel":"Panell de l'editor de text enriquit","common":{"editorHelp":"Premeu ALT 0 per ajuda","browseServer":"Veure servidor","url":"URL","protocol":"Protocol","upload":"Puja","uploadSubmit":"Envia-la al servidor","image":"Imatge","flash":"Flash","form":"Formulari","checkbox":"Casella de verificació","radio":"Botó d'opció","textField":"Camp de text","textarea":"Àrea de text","hiddenField":"Camp ocult","button":"Botó","select":"Camp de selecció","imageButton":"Botó d'imatge","notSet":"<no definit>","id":"Id","name":"Nom","langDir":"Direcció de l'idioma","langDirLtr":"D'esquerra a dreta (LTR)","langDirRtl":"De dreta a esquerra (RTL)","langCode":"Codi d'idioma","longDescr":"Descripció llarga de la URL","cssClass":"Classes del full d'estil","advisoryTitle":"Títol consultiu","cssStyle":"Estil","ok":"D'acord","cancel":"Cancel·la","close":"Tanca","preview":"Previsualitza","resize":"Arrossegueu per redimensionar","generalTab":"General","advancedTab":"Avançat","validateNumberFailed":"Aquest valor no és un número.","confirmNewPage":"Els canvis en aquest contingut que no es desin es perdran. Esteu segur que voleu carregar una pàgina nova?","confirmCancel":"Algunes opcions s'han canviat. Esteu segur que voleu tancar el quadre de diàleg?","options":"Opcions","target":"Destí","targetNew":"Nova finestra (_blank)","targetTop":"Finestra superior (_top)","targetSelf":"Mateixa finestra (_self)","targetParent":"Finestra pare (_parent)","langDirLTR":"D'esquerra a dreta (LTR)","langDirRTL":"De dreta a esquerra (RTL)","styles":"Estil","cssClasses":"Classes del full d'estil","width":"Amplada","height":"Alçada","align":"Alineació","left":"Ajusta a l'esquerra","right":"Ajusta a la dreta","center":"Centre","justify":"Justificat","alignLeft":"Alinea a l'esquerra","alignRight":"Alinea a la dreta","alignCenter":"Align Center","alignTop":"Superior","alignMiddle":"Centre","alignBottom":"Inferior","alignNone":"Cap","invalidValue":"Valor no vàlid.","invalidHeight":"L'alçada ha de ser un número.","invalidWidth":"L'amplada ha de ser un número.","invalidLength":"Value specified for the \"%1\" field must be a positive number with or without a valid measurement unit (%2).","invalidCssLength":"El valor especificat per als \"%1\" camps ha de ser un número positiu amb o sense unitat de mesura vàlida de CSS (px, %, in, cm, mm, em, ex, pt o pc).","invalidHtmlLength":"El valor especificat per als \"%1\" camps ha de ser un número positiu amb o sense unitat de mesura vàlida d'HTML (px o %).","invalidInlineStyle":"El valor especificat per l'estil en línia ha de constar d'una o més tuples amb el format \"name: value\", separats per punt i coma.","cssLengthTooltip":"Introduïu un número per un valor en píxels o un número amb una unitat vàlida de CSS (px, %, in, cm, mm, em, ex, pt o pc).","unavailable":"%1<span class=\"cke_accessibility\">, no disponible</span>","keyboard":{"8":"Retrocés","13":"Intro","16":"Majúscules","17":"Ctrl","18":"Alt","32":"Space","35":"Fi","36":"Inici","46":"Eliminar","112":"F1","113":"F2","114":"F3","115":"F4","116":"F5","117":"F6","118":"F7","119":"F8","120":"F9","121":"F10","122":"F11","123":"F12","124":"F13","125":"F14","126":"F15","127":"F16","128":"F17","129":"F18","130":"F19","131":"F20","132":"F21","133":"F22","134":"F23","135":"F24","224":"Command"},"keyboardShortcut":"Keyboard shortcut","optionDefault":"Default"}};
\ No newline at end of file
diff --git a/web/core/assets/vendor/ckeditor/lang/cs.js b/web/core/assets/vendor/ckeditor/lang/cs.js
index fc3d3d62d6..083e6ed633 100644
--- a/web/core/assets/vendor/ckeditor/lang/cs.js
+++ b/web/core/assets/vendor/ckeditor/lang/cs.js
@@ -1,5 +1,5 @@
 /*
-Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2020, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */
 CKEDITOR.lang['cs']={"widget":{"move":"Klepněte a táhněte pro přesunutí","label":"Ovládací prvek %1"},"undo":{"redo":"Znovu","undo":"Zpět"},"toolbar":{"toolbarCollapse":"Skrýt panel nástrojů","toolbarExpand":"Zobrazit panel nástrojů","toolbarGroups":{"document":"Dokument","clipboard":"Schránka/Zpět","editing":"Úpravy","forms":"Formuláře","basicstyles":"Základní styly","paragraph":"Odstavec","links":"Odkazy","insert":"Vložit","styles":"Styly","colors":"Barvy","tools":"Nástroje"},"toolbars":"Panely nástrojů editoru"},"table":{"border":"Ohraničení","caption":"Popis","cell":{"menu":"Buňka","insertBefore":"Vložit buňku před","insertAfter":"Vložit buňku za","deleteCell":"Smazat buňky","merge":"Sloučit buňky","mergeRight":"Sloučit doprava","mergeDown":"Sloučit dolů","splitHorizontal":"Rozdělit buňky vodorovně","splitVertical":"Rozdělit buňky svisle","title":"Vlastnosti buňky","cellType":"Typ buňky","rowSpan":"Spojit řádky","colSpan":"Spojit sloupce","wordWrap":"Zalamování","hAlign":"Vodorovné zarovnání","vAlign":"Svislé zarovnání","alignBaseline":"Na účaří","bgColor":"Barva pozadí","borderColor":"Barva okraje","data":"Data","header":"Hlavička","yes":"Ano","no":"Ne","invalidWidth":"Šířka buňky musí být číslo.","invalidHeight":"Zadaná výška buňky musí být číslená.","invalidRowSpan":"Zadaný počet sloučených řádků musí být celé číslo.","invalidColSpan":"Zadaný počet sloučených sloupců musí být celé číslo.","chooseColor":"Výběr"},"cellPad":"Odsazení obsahu v buňce","cellSpace":"Vzdálenost buněk","column":{"menu":"Sloupec","insertBefore":"Vložit sloupec před","insertAfter":"Vložit sloupec za","deleteColumn":"Smazat sloupec"},"columns":"Sloupce","deleteTable":"Smazat tabulku","headers":"Záhlaví","headersBoth":"Obojí","headersColumn":"První sloupec","headersNone":"Žádné","headersRow":"První řádek","heightUnit":"height unit","invalidBorder":"Zdaná velikost okraje musí být číselná.","invalidCellPadding":"Zadané odsazení obsahu v buňce musí být číselné.","invalidCellSpacing":"Zadaná vzdálenost buněk musí být číselná.","invalidCols":"Počet sloupců musí být číslo větší než 0.","invalidHeight":"Zadaná výška tabulky musí být číselná.","invalidRows":"Počet řádků musí být číslo větší než 0.","invalidWidth":"Šířka tabulky musí být číslo.","menu":"Vlastnosti tabulky","row":{"menu":"Řádek","insertBefore":"Vložit řádek před","insertAfter":"Vložit řádek za","deleteRow":"Smazat řádky"},"rows":"Řádky","summary":"Souhrn","title":"Vlastnosti tabulky","toolbar":"Tabulka","widthPc":"procent","widthPx":"bodů","widthUnit":"jednotka šířky"},"stylescombo":{"label":"Styl","panelTitle":"Formátovací styly","panelTitle1":"Blokové styly","panelTitle2":"Řádkové styly","panelTitle3":"Objektové styly"},"specialchar":{"options":"Nastavení speciálních znaků","title":"Výběr speciálního znaku","toolbar":"Vložit speciální znaky"},"sourcedialog":{"toolbar":"Zdroj","title":"Zdroj"},"sourcearea":{"toolbar":"Zdroj"},"showblocks":{"toolbar":"Ukázat bloky"},"removeformat":{"toolbar":"Odstranit formátování"},"pastetext":{"button":"Vložit jako čistý text","pasteNotification":"Press %1 to paste. Your browser doesn‘t support pasting with the toolbar button or context menu option.","title":"Vložit jako čistý text"},"pastefromword":{"confirmCleanup":"Jak je vidět, vkládaný text je kopírován z Wordu. Chcete jej před vložením vyčistit?","error":"Z důvodu vnitřní chyby nebylo možné provést vyčištění vkládaného textu.","title":"Vložit z Wordu","toolbar":"Vložit z Wordu"},"notification":{"closed":"Oznámení zavřeno."},"maximize":{"maximize":"Maximalizovat","minimize":"Minimalizovat"},"magicline":{"title":"zde vložit odstavec"},"list":{"bulletedlist":"Odrážky","numberedlist":"Číslování"},"language":{"button":"Nastavit jazyk","remove":"Odstranit jazyk"},"indent":{"indent":"Zvětšit odsazení","outdent":"Zmenšit odsazení"},"image2":{"alt":"Alternativní text","btnUpload":"Odeslat na server","captioned":"Obrázek s popisem","captionPlaceholder":"Popis","infoTab":"Informace o obrázku","lockRatio":"Zámek","menu":"Vlastnosti obrázku","pathName":"Obrázek","pathNameCaption":"Popis","resetSize":"Původní velikost","resizer":"Klepněte a táhněte pro změnu velikosti","title":"Vlastnosti obrázku","uploadTab":"Odeslat","urlMissing":"Zadané URL zdroje obrázku nebylo nalezeno.","altMissing":"Alternativní text chybí."},"horizontalrule":{"toolbar":"Vložit vodorovnou linku"},"format":{"label":"Formát","panelTitle":"Formát","tag_address":"Adresa","tag_div":"Normální (DIV)","tag_h1":"Nadpis 1","tag_h2":"Nadpis 2","tag_h3":"Nadpis 3","tag_h4":"Nadpis 4","tag_h5":"Nadpis 5","tag_h6":"Nadpis 6","tag_p":"Normální","tag_pre":"Naformátováno"},"filetools":{"loadError":"Při čtení souboru došlo k chybě.","networkError":"Při nahrávání souboru došlo k chybě v síti.","httpError404":"Při nahrávání souboru došlo k chybě HTTP (404: Soubor nenalezen).","httpError403":"Při nahrávání souboru došlo k chybě HTTP (403: Zakázáno).","httpError":"Při nahrávání souboru došlo k chybě HTTP (chybový stav: %1).","noUrlError":"URL pro nahrání není zadána.","responseError":"Nesprávná odpověď serveru."},"elementspath":{"eleLabel":"Cesta objektu","eleTitle":"%1 objekt"},"contextmenu":{"options":"Nastavení kontextové nabídky"},"clipboard":{"copy":"Kopírovat","copyError":"Bezpečnostní nastavení vašeho prohlížeče nedovolují editoru spustit funkci pro kopírování zvoleného textu do schránky. Prosím zkopírujte zvolený text do schránky pomocí klávesnice (Ctrl/Cmd+C).","cut":"Vyjmout","cutError":"Bezpečnostní nastavení vašeho prohlížeče nedovolují editoru spustit funkci pro vyjmutí zvoleného textu do schránky. Prosím vyjměte zvolený text do schránky pomocí klávesnice (Ctrl/Cmd+X).","paste":"Vložit","pasteNotification":"Stiskněte %1 pro vložení. Váš prohlížeč nepodporuje vkládání pomocí tlačítka na panelu nástrojů nebo volby kontextového menu.","pasteArea":"Oblast vkládání","pasteMsg":"Vložte svůj obsah do oblasti níže a stiskněte OK."},"blockquote":{"toolbar":"Citace"},"basicstyles":{"bold":"Tučné","italic":"Kurzíva","strike":"Přeškrtnuté","subscript":"Dolní index","superscript":"Horní index","underline":"Podtržené"},"about":{"copy":"Copyright &copy; $1. All rights reserved.","dlgTitle":"O aplikaci CKEditor 4","moreInfo":"Pro informace o lincenci navštivte naši webovou stránku:"},"editor":"Textový editor","editorPanel":"Panel textového editoru","common":{"editorHelp":"Stiskněte ALT 0 pro nápovědu","browseServer":"Vybrat na serveru","url":"URL","protocol":"Protokol","upload":"Odeslat","uploadSubmit":"Odeslat na server","image":"Obrázek","flash":"Flash","form":"Formulář","checkbox":"Zaškrtávací políčko","radio":"Přepínač","textField":"Textové pole","textarea":"Textová oblast","hiddenField":"Skryté pole","button":"Tlačítko","select":"Seznam","imageButton":"Obrázkové tlačítko","notSet":"<nenastaveno>","id":"Id","name":"Jméno","langDir":"Směr jazyka","langDirLtr":"Zleva doprava (LTR)","langDirRtl":"Zprava doleva (RTL)","langCode":"Kód jazyka","longDescr":"Dlouhý popis URL","cssClass":"Třída stylu","advisoryTitle":"Pomocný titulek","cssStyle":"Styl","ok":"OK","cancel":"Zrušit","close":"Zavřít","preview":"Náhled","resize":"Uchopit pro změnu velikosti","generalTab":"Obecné","advancedTab":"Rozšířené","validateNumberFailed":"Zadaná hodnota není číselná.","confirmNewPage":"Jakékoliv neuložené změny obsahu budou ztraceny. Skutečně chcete otevřít novou stránku?","confirmCancel":"Některá z nastavení byla změněna. Skutečně chcete zavřít dialogové okno?","options":"Nastavení","target":"Cíl","targetNew":"Nové okno (_blank)","targetTop":"Okno nejvyšší úrovně (_top)","targetSelf":"Stejné okno (_self)","targetParent":"Rodičovské okno (_parent)","langDirLTR":"Zleva doprava (LTR)","langDirRTL":"Zprava doleva (RTL)","styles":"Styly","cssClasses":"Třídy stylů","width":"Šířka","height":"Výška","align":"Zarovnání","left":"Vlevo","right":"Vpravo","center":"Na střed","justify":"Zarovnat do bloku","alignLeft":"Zarovnat vlevo","alignRight":"Zarovnat vpravo","alignCenter":"Zarovnat na střed","alignTop":"Nahoru","alignMiddle":"Na střed","alignBottom":"Dolů","alignNone":"Žádné","invalidValue":"Neplatná hodnota.","invalidHeight":"Zadaná výška musí být číslo.","invalidWidth":"Šířka musí být číslo.","invalidLength":"Hodnota určená pro pole \"%1\" musí být kladné číslo bez nebo s platnou jednotkou míry (%2).","invalidCssLength":"Hodnota určená pro pole \"%1\" musí být kladné číslo bez nebo s platnou jednotkou míry CSS (px, %, in, cm, mm, em, ex, pt, nebo pc).","invalidHtmlLength":"Hodnota určená pro pole \"%1\" musí být kladné číslo bez nebo s platnou jednotkou míry HTML (px nebo %).","invalidInlineStyle":"Hodnota určená pro řádkový styl se musí skládat z jedné nebo více n-tic ve formátu \"název : hodnota\", oddělené středníky","cssLengthTooltip":"Zadejte číslo jako hodnotu v pixelech nebo číslo s platnou jednotkou CSS (px, %, v cm, mm, em, ex, pt, nebo pc).","unavailable":"%1<span class=\"cke_accessibility\">, nedostupné</span>","keyboard":{"8":"Backspace","13":"Enter","16":"Shift","17":"Ctrl","18":"Alt","32":"Mezerník","35":"Konec","36":"Domů","46":"Smazat","112":"F1","113":"F2","114":"F3","115":"F4","116":"F5","117":"F6","118":"F7","119":"F8","120":"F9","121":"F10","122":"F11","123":"F12","124":"F13","125":"F14","126":"F15","127":"F16","128":"F17","129":"F18","130":"F19","131":"F20","132":"F21","133":"F22","134":"F23","135":"F24","224":"Command"},"keyboardShortcut":"Klávesová zkratka","optionDefault":"Výchozí"}};
\ No newline at end of file
diff --git a/web/core/assets/vendor/ckeditor/lang/cy.js b/web/core/assets/vendor/ckeditor/lang/cy.js
index 6e4d4aad5e..3be32d6a5f 100644
--- a/web/core/assets/vendor/ckeditor/lang/cy.js
+++ b/web/core/assets/vendor/ckeditor/lang/cy.js
@@ -1,5 +1,5 @@
 /*
-Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2020, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */
 CKEDITOR.lang['cy']={"widget":{"move":"Clcio a llusgo i symud","label":"%1 widget"},"undo":{"redo":"Ailwneud","undo":"Dadwneud"},"toolbar":{"toolbarCollapse":"Cyfangu'r Bar Offer","toolbarExpand":"Ehangu'r Bar Offer","toolbarGroups":{"document":"Dogfen","clipboard":"Clipfwrdd/Dadwneud","editing":"Golygu","forms":"Ffurflenni","basicstyles":"Arddulliau Sylfaenol","paragraph":"Paragraff","links":"Dolenni","insert":"Mewnosod","styles":"Arddulliau","colors":"Lliwiau","tools":"Offer"},"toolbars":"Bariau offer y golygydd"},"table":{"border":"Maint yr Ymyl","caption":"Pennawd","cell":{"menu":"Cell","insertBefore":"Mewnosod Cell Cyn","insertAfter":"Mewnosod Cell Ar Ôl","deleteCell":"Dileu Celloedd","merge":"Cyfuno Celloedd","mergeRight":"Cyfuno i'r Dde","mergeDown":"Cyfuno i Lawr","splitHorizontal":"Hollti'r Gell yn Lorweddol","splitVertical":"Hollti'r Gell yn Fertigol","title":"Priodweddau'r Gell","cellType":"Math y Gell","rowSpan":"Rhychwant Rhesi","colSpan":"Rhychwant Colofnau","wordWrap":"Lapio Geiriau","hAlign":"Aliniad Llorweddol","vAlign":"Aliniad Fertigol","alignBaseline":"Baslinell","bgColor":"Lliw Cefndir","borderColor":"Lliw Ymyl","data":"Data","header":"Pennyn","yes":"Ie","no":"Na","invalidWidth":"Mae'n rhaid i led y gell fod yn rhif.","invalidHeight":"Mae'n rhaid i uchder y gell fod yn rhif.","invalidRowSpan":"Mae'n rhaid i rychwant y rhesi fod yn gyfanrif.","invalidColSpan":"Mae'n rhaid i rychwant y colofnau fod yn gyfanrif.","chooseColor":"Dewis"},"cellPad":"Padio'r gell","cellSpace":"Bylchiad y gell","column":{"menu":"Colofn","insertBefore":"Mewnosod Colofn Cyn","insertAfter":"Mewnosod Colofn Ar Ôl","deleteColumn":"Dileu Colofnau"},"columns":"Colofnau","deleteTable":"Dileu Tabl","headers":"Penynnau","headersBoth":"Y Ddau","headersColumn":"Colofn gyntaf","headersNone":"Dim","headersRow":"Rhes gyntaf","heightUnit":"height unit","invalidBorder":"Mae'n rhaid i faint yr ymyl fod yn rhif.","invalidCellPadding":"Mae'n rhaid i badiad y gell fod yn rhif positif.","invalidCellSpacing":"Mae'n rhaid i fylchiad y gell fod yn rhif positif.","invalidCols":"Mae'n rhaid cael o leiaf un golofn.","invalidHeight":"Mae'n rhaid i uchder y tabl fod yn rhif.","invalidRows":"Mae'n rhaid cael o leiaf un rhes.","invalidWidth":"Mae'n rhaid i led y tabl fod yn rhif.","menu":"Priodweddau'r Tabl","row":{"menu":"Rhes","insertBefore":"Mewnosod Rhes Cyn","insertAfter":"Mewnosod Rhes Ar Ôl","deleteRow":"Dileu Rhesi"},"rows":"Rhesi","summary":"Crynodeb","title":"Priodweddau'r Tabl","toolbar":"Tabl","widthPc":"y cant","widthPx":"picsel","widthUnit":"uned lled"},"stylescombo":{"label":"Arddulliau","panelTitle":"Arddulliau Fformatio","panelTitle1":"Arddulliau Bloc","panelTitle2":"Arddulliau Mewnol","panelTitle3":"Arddulliau Gwrthrych"},"specialchar":{"options":"Opsiynau Nodau Arbennig","title":"Dewis Nod Arbennig","toolbar":"Mewnosod Nod Arbennig"},"sourcedialog":{"toolbar":"HTML","title":"HTML"},"sourcearea":{"toolbar":"HTML"},"showblocks":{"toolbar":"Dangos Blociau"},"removeformat":{"toolbar":"Tynnu Fformat"},"pastetext":{"button":"Gludo fel testun plaen","pasteNotification":"Press %1 to paste. Your browser doesn‘t support pasting with the toolbar button or context menu option.","title":"Gludo fel Testun Plaen"},"pastefromword":{"confirmCleanup":"Mae'r testun rydych chi am ludo wedi'i gopïo o Word. Ydych chi am ei lanhau cyn ei ludo?","error":"Doedd dim modd glanhau y data a ludwyd oherwydd gwall mewnol","title":"Gludo o Word","toolbar":"Gludo o Word"},"notification":{"closed":"Notification closed."},"maximize":{"maximize":"Mwyhau","minimize":"Lleihau"},"magicline":{"title":"Mewnosod paragraff yma"},"list":{"bulletedlist":"Mewnosod/Tynnu Rhestr Bwled","numberedlist":"Mewnosod/Tynnu Rhestr Rhifol"},"language":{"button":"Gosod iaith","remove":"Tynnu iaith"},"indent":{"indent":"Cynyddu'r Mewnoliad","outdent":"Lleihau'r Mewnoliad"},"image2":{"alt":"Testun Amgen","btnUpload":"Anfon i'r Gweinydd","captioned":"Delwedd â phennawd","captionPlaceholder":"Caption","infoTab":"Gwyb Delwedd","lockRatio":"Cloi Cymhareb","menu":"Priodweddau Delwedd","pathName":"delwedd","pathNameCaption":"pennawd","resetSize":"Ailosod Maint","resizer":"Clicio a llusgo i ail-meintio","title":"Priodweddau Delwedd","uploadTab":"Lanlwytho","urlMissing":"URL gwreiddiol y ddelwedd ar goll.","altMissing":"Alternative text is missing."},"horizontalrule":{"toolbar":"Mewnosod Llinell Lorweddol"},"format":{"label":"Fformat","panelTitle":"Fformat Paragraff","tag_address":"Cyfeiriad","tag_div":"Normal (DIV)","tag_h1":"Pennawd 1","tag_h2":"Pennawd 2","tag_h3":"Pennawd 3","tag_h4":"Pennawd 4","tag_h5":"Pennawd 5","tag_h6":"Pennawd 6","tag_p":"Normal","tag_pre":"Wedi'i Fformatio"},"filetools":{"loadError":"Error occurred during file read.","networkError":"Network error occurred during file upload.","httpError404":"HTTP error occurred during file upload (404: File not found).","httpError403":"HTTP error occurred during file upload (403: Forbidden).","httpError":"HTTP error occurred during file upload (error status: %1).","noUrlError":"Upload URL is not defined.","responseError":"Incorrect server response."},"elementspath":{"eleLabel":"Llwybr elfennau","eleTitle":"Elfen %1"},"contextmenu":{"options":"Opsiynau Dewislen Cyd-destun"},"clipboard":{"copy":"Copïo","copyError":"'Dyw gosodiadau diogelwch eich porwr ddim yn caniatàu'r golygydd i gynnal 'gweithredoedd copïo' yn awtomatig. Defnyddiwch y bysellfwrdd (Ctrl/Cmd+C).","cut":"Torri","cutError":"Nid yw gosodiadau diogelwch eich porwr yn caniatàu'r golygydd i gynnal 'gweithredoedd torri' yn awtomatig. Defnyddiwch y bysellfwrdd (Ctrl/Cmd+X).","paste":"Gludo","pasteNotification":"Press %1 to paste. Your browser doesn‘t support pasting with the toolbar button or context menu option.","pasteArea":"Ardal Gludo","pasteMsg":"Paste your content inside the area below and press OK."},"blockquote":{"toolbar":"Dyfyniad bloc"},"basicstyles":{"bold":"Bras","italic":"Italig","strike":"Llinell Trwyddo","subscript":"Is-sgript","superscript":"Uwchsgript","underline":"Tanlinellu"},"about":{"copy":"Hawlfraint &copy; $1. Cedwir pob hawl.","dlgTitle":"About CKEditor 4","moreInfo":"Am wybodaeth ynghylch trwyddedau, ewch i'n gwefan:"},"editor":"Golygydd Testun Cyfoethog","editorPanel":"Panel Golygydd Testun Cyfoethog","common":{"editorHelp":"Gwasgwch ALT 0 am gymorth","browseServer":"Pori'r Gweinydd","url":"URL","protocol":"Protocol","upload":"Lanlwytho","uploadSubmit":"Anfon i'r Gweinydd","image":"Delwedd","flash":"Flash","form":"Ffurflen","checkbox":"Blwch ticio","radio":"Botwm Radio","textField":"Maes Testun","textarea":"Ardal Testun","hiddenField":"Maes Cudd","button":"Botwm","select":"Maes Dewis","imageButton":"Botwm Delwedd","notSet":"<heb osod>","id":"Id","name":"Name","langDir":"Cyfeiriad Iaith","langDirLtr":"Chwith i'r Dde (LTR)","langDirRtl":"Dde i'r Chwith (RTL)","langCode":"Cod Iaith","longDescr":"URL Disgrifiad Hir","cssClass":"Dosbarthiadau Dalen Arddull","advisoryTitle":"Teitl Cynghorol","cssStyle":"Arddull","ok":"Iawn","cancel":"Diddymu","close":"Cau","preview":"Rhagolwg","resize":"Ailfeintio","generalTab":"Cyffredinol","advancedTab":"Uwch","validateNumberFailed":"'Dyw'r gwerth hwn ddim yn rhif.","confirmNewPage":"Byddwch chi'n colli unrhyw newidiadau i'r cynnwys sydd heb eu cadw. Ydych am barhau i lwytho tudalen newydd?","confirmCancel":"Cafodd rhai o'r opsiynau eu newid. Ydych chi wir am gau'r deialog?","options":"Opsiynau","target":"Targed","targetNew":"Ffenest Newydd (_blank)","targetTop":"Ffenest ar y Brig (_top)","targetSelf":"Yr un Ffenest (_self)","targetParent":"Ffenest y Rhiant (_parent)","langDirLTR":"Chwith i'r Dde (LTR)","langDirRTL":"Dde i'r Chwith (RTL)","styles":"Arddull","cssClasses":"Dosbarthiadau Dalen Arddull","width":"Lled","height":"Uchder","align":"Alinio","left":"Chwith","right":"Dde","center":"Canol","justify":"Unioni","alignLeft":"Alinio i'r Chwith","alignRight":"Alinio i'r Dde","alignCenter":"Align Center","alignTop":"Brig","alignMiddle":"Canol","alignBottom":"Gwaelod","alignNone":"None","invalidValue":"Gwerth annilys.","invalidHeight":"Mae'n rhaid i'r uchder fod yn rhif.","invalidWidth":"Mae'n rhaid i'r lled fod yn rhif.","invalidLength":"Value specified for the \"%1\" field must be a positive number with or without a valid measurement unit (%2).","invalidCssLength":"Mae'n rhaid i'r gwerth ar gyfer maes \"%1\" fod yn rhif positif gyda neu heb uned fesuriad CSS dilys (px, %, in, cm, mm, em, ex, pt, neu pc).","invalidHtmlLength":"Mae'n rhaid i'r gwerth ar gyfer maes \"%1\" fod yn rhif positif gyda neu heb uned fesuriad HTML dilys (px neu %).","invalidInlineStyle":"Mae'n rhaid i'r gwerth ar gyfer arddull mewn-llinell gynnwys un set neu fwy ar y fformat \"enw : gwerth\", wedi'u gwahanu gyda hanner colon.","cssLengthTooltip":"Rhowch rif am werth mewn picsel neu rhif gydag uned CSS dilys (px, %, in, cm, mm, em, pt neu pc).","unavailable":"%1<span class=\"cke_accessibility\">, ddim ar gael</span>","keyboard":{"8":"Backspace","13":"Enter","16":"Shift","17":"Ctrl","18":"Alt","32":"Space","35":"End","36":"Home","46":"Delete","112":"F1","113":"F2","114":"F3","115":"F4","116":"F5","117":"F6","118":"F7","119":"F8","120":"F9","121":"F10","122":"F11","123":"F12","124":"F13","125":"F14","126":"F15","127":"F16","128":"F17","129":"F18","130":"F19","131":"F20","132":"F21","133":"F22","134":"F23","135":"F24","224":"Command"},"keyboardShortcut":"Keyboard shortcut","optionDefault":"Default"}};
\ No newline at end of file
diff --git a/web/core/assets/vendor/ckeditor/lang/da.js b/web/core/assets/vendor/ckeditor/lang/da.js
index b416cbfe66..3dfd054552 100644
--- a/web/core/assets/vendor/ckeditor/lang/da.js
+++ b/web/core/assets/vendor/ckeditor/lang/da.js
@@ -1,5 +1,5 @@
 /*
-Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2020, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */
-CKEDITOR.lang['da']={"widget":{"move":"Klik og træk for at flytte","label":"%1 widget"},"undo":{"redo":"Annullér fortryd","undo":"Fortryd"},"toolbar":{"toolbarCollapse":"Sammenklap værktøjslinje","toolbarExpand":"Udvid værktøjslinje","toolbarGroups":{"document":"Dokument","clipboard":"Udklipsholder/Fortryd","editing":"Redigering","forms":"Formularer","basicstyles":"Basis styles","paragraph":"Paragraf","links":"Links","insert":"Indsæt","styles":"Typografier","colors":"Farver","tools":"Værktøjer"},"toolbars":"Editors værktøjslinjer"},"table":{"border":"Rammebredde","caption":"Titel","cell":{"menu":"Celle","insertBefore":"Indsæt celle før","insertAfter":"Indsæt celle efter","deleteCell":"Slet celle","merge":"Flet celler","mergeRight":"Flet til højre","mergeDown":"Flet nedad","splitHorizontal":"Del celle vandret","splitVertical":"Del celle lodret","title":"Celleegenskaber","cellType":"Celletype","rowSpan":"Række span (rows span)","colSpan":"Kolonne span (columns span)","wordWrap":"Tekstombrydning","hAlign":"Vandret justering","vAlign":"Lodret justering","alignBaseline":"Grundlinje","bgColor":"Baggrundsfarve","borderColor":"Rammefarve","data":"Data","header":"Hoved","yes":"Ja","no":"Nej","invalidWidth":"Cellebredde skal være et tal.","invalidHeight":"Cellehøjde skal være et tal.","invalidRowSpan":"Række span skal være et heltal.","invalidColSpan":"Kolonne span skal være et heltal.","chooseColor":"Vælg"},"cellPad":"Cellemargen","cellSpace":"Celleafstand","column":{"menu":"Kolonne","insertBefore":"Indsæt kolonne før","insertAfter":"Indsæt kolonne efter","deleteColumn":"Slet kolonne"},"columns":"Kolonner","deleteTable":"Slet tabel","headers":"Hoved","headersBoth":"Begge","headersColumn":"Første kolonne","headersNone":"Ingen","headersRow":"Første række","heightUnit":"height unit","invalidBorder":"Rammetykkelse skal være et tal.","invalidCellPadding":"Cellemargen skal være et tal.","invalidCellSpacing":"Celleafstand skal være et tal.","invalidCols":"Antallet af kolonner skal være større end 0.","invalidHeight":"Tabelhøjde skal være et tal.","invalidRows":"Antallet af rækker skal være større end 0.","invalidWidth":"Tabelbredde skal være et tal.","menu":"Egenskaber for tabel","row":{"menu":"Række","insertBefore":"Indsæt række før","insertAfter":"Indsæt række efter","deleteRow":"Slet række"},"rows":"Rækker","summary":"Resumé","title":"Egenskaber for tabel","toolbar":"Tabel","widthPc":"procent","widthPx":"pixels","widthUnit":"Bredde på enhed"},"stylescombo":{"label":"Typografi","panelTitle":"Formattering på stylesheet","panelTitle1":"Block typografi","panelTitle2":"Inline typografi","panelTitle3":"Object typografi"},"specialchar":{"options":"Muligheder for specialkarakterer","title":"Vælg symbol","toolbar":"Indsæt symbol"},"sourcedialog":{"toolbar":"Kilde","title":"Kilde"},"sourcearea":{"toolbar":"Kilde"},"showblocks":{"toolbar":"Vis afsnitsmærker"},"removeformat":{"toolbar":"Fjern formatering"},"pastetext":{"button":"Indsæt som ikke-formateret tekst","pasteNotification":"Press %1 to paste. Your browser doesn‘t support pasting with the toolbar button or context menu option.","title":"Indsæt som ikke-formateret tekst"},"pastefromword":{"confirmCleanup":"Den tekst du forsøger at indsætte ser ud til at komme fra Word. Vil du rense teksten før den indsættes?","error":"Det var ikke muligt at fjerne formatteringen på den indsatte tekst grundet en intern fejl","title":"Indsæt fra Word","toolbar":"Indsæt fra Word"},"notification":{"closed":"Notefikation lukket."},"maximize":{"maximize":"Maksimér","minimize":"Minimér"},"magicline":{"title":"Indsæt afsnit"},"list":{"bulletedlist":"Punktopstilling","numberedlist":"Talopstilling"},"language":{"button":"Vælg sprog","remove":"Fjern sprog"},"indent":{"indent":"Forøg indrykning","outdent":"Formindsk indrykning"},"image2":{"alt":"Alternativ tekst","btnUpload":"Upload fil til serveren","captioned":"Tekstet billede","captionPlaceholder":"Tekst","infoTab":"Generelt","lockRatio":"Lås størrelsesforhold","menu":"Egenskaber for billede","pathName":"billede","pathNameCaption":"tekst","resetSize":"Nulstil størrelse","resizer":"Klik og træk for at ændre størrelsen","title":"Egenskaber for billede","uploadTab":"Upload","urlMissing":"Kilde på billed-URL mangler","altMissing":"Alternative text is missing."},"horizontalrule":{"toolbar":"Indsæt vandret streg"},"format":{"label":"Formatering","panelTitle":"Formatering","tag_address":"Adresse","tag_div":"Normal (DIV)","tag_h1":"Overskrift 1","tag_h2":"Overskrift 2","tag_h3":"Overskrift 3","tag_h4":"Overskrift 4","tag_h5":"Overskrift 5","tag_h6":"Overskrift 6","tag_p":"Normal","tag_pre":"Formateret"},"filetools":{"loadError":"Der skete en fejl ved indlæsningen af filen.","networkError":"Der skete en netværks fejl under uploadingen.","httpError404":"Der skete en HTTP fejl under uploadingen (404: File not found).","httpError403":"Der skete en HTTP fejl under uploadingen (403: Forbidden).","httpError":"Der skete en HTTP fejl under uploadingen (error status: %1).","noUrlError":"Upload URL er ikke defineret.","responseError":"Ikke korrekt server svar."},"elementspath":{"eleLabel":"Sti på element","eleTitle":"%1 element"},"contextmenu":{"options":"Muligheder for hjælpemenu"},"clipboard":{"copy":"Kopiér","copyError":"Din browsers sikkerhedsindstillinger tillader ikke editoren at få automatisk adgang til udklipsholderen.<br><br>Brug i stedet tastaturet til at kopiere teksten (Ctrl/Cmd+C).","cut":"Klip","cutError":"Din browsers sikkerhedsindstillinger tillader ikke editoren at få automatisk adgang til udklipsholderen.<br><br>Brug i stedet tastaturet til at klippe teksten (Ctrl/Cmd+X).","paste":"Indsæt","pasteNotification":"Tryk %1 for at sætte ind. Din browser understøtter ikke indsættelse med værktøjslinje knappen eller kontekst menuen.","pasteArea":"Indsættelses område","pasteMsg":"Indsæt dit indhold i området nedenfor og tryk OK."},"blockquote":{"toolbar":"Blokcitat"},"basicstyles":{"bold":"Fed","italic":"Kursiv","strike":"Gennemstreget","subscript":"Sænket skrift","superscript":"Hævet skrift","underline":"Understreget"},"about":{"copy":"Copyright &copy; $1. Alle rettigheder forbeholdes.","dlgTitle":"Om CKEditor 4","moreInfo":"For informationer omkring licens, se venligst vores hjemmeside (på engelsk):"},"editor":"Rich Text Editor","editorPanel":"Rich Text Editor panel","common":{"editorHelp":"Tryk ALT 0 for hjælp","browseServer":"Gennemse...","url":"URL","protocol":"Protokol","upload":"Upload","uploadSubmit":"Upload","image":"Indsæt billede","flash":"Indsæt Flash","form":"Indsæt formular","checkbox":"Indsæt afkrydsningsfelt","radio":"Indsæt alternativknap","textField":"Indsæt tekstfelt","textarea":"Indsæt tekstboks","hiddenField":"Indsæt skjult felt","button":"Indsæt knap","select":"Indsæt liste","imageButton":"Indsæt billedknap","notSet":"<intet valgt>","id":"Id","name":"Navn","langDir":"Tekstretning","langDirLtr":"Fra venstre mod højre (LTR)","langDirRtl":"Fra højre mod venstre (RTL)","langCode":"Sprogkode","longDescr":"Udvidet beskrivelse","cssClass":"Typografiark (CSS)","advisoryTitle":"Titel","cssStyle":"Typografi (CSS)","ok":"OK","cancel":"Annullér","close":"Luk","preview":"Forhåndsvisning","resize":"Træk for at skalere","generalTab":"Generelt","advancedTab":"Avanceret","validateNumberFailed":"Værdien er ikke et tal.","confirmNewPage":"Alt indhold, der ikke er blevet gemt, vil gå tabt. Er du sikker på, at du vil indlæse en ny side?","confirmCancel":"Nogle af indstillingerne er blevet ændret. Er du sikker på, at du vil lukke vinduet?","options":"Vis muligheder","target":"Mål","targetNew":"Nyt vindue (_blank)","targetTop":"Øverste vindue (_top)","targetSelf":"Samme vindue (_self)","targetParent":"Samme vindue (_parent)","langDirLTR":"Venstre til højre (LTR)","langDirRTL":"Højre til venstre (RTL)","styles":"Style","cssClasses":"Stylesheetklasser","width":"Bredde","height":"Højde","align":"Justering","left":"Venstre","right":"Højre","center":"Center","justify":"Lige margener","alignLeft":"Venstrestillet","alignRight":"Højrestillet","alignCenter":"Centreret","alignTop":"Øverst","alignMiddle":"Centreret","alignBottom":"Nederst","alignNone":"Ingen","invalidValue":"Ugyldig værdi.","invalidHeight":"Højde skal være et tal.","invalidWidth":"Bredde skal være et tal.","invalidLength":"Værdien angivet for feltet \"%1\" skal være et positivt heltal med eller uden en gyldig måleenhed (%2).","invalidCssLength":"Værdien specificeret for \"%1\" feltet skal være et positivt nummer med eller uden en CSS måleenhed  (px, %, in, cm, mm, em, ex, pt, eller pc).","invalidHtmlLength":"Værdien specificeret for \"%1\" feltet skal være et positivt nummer med eller uden en CSS måleenhed  (px eller %).","invalidInlineStyle":"Værdien specificeret for inline style skal indeholde en eller flere elementer med et format som \"name:value\", separeret af semikoloner","cssLengthTooltip":"Indsæt en numerisk værdi i pixel eller nummer med en gyldig CSS værdi (px, %, in, cm, mm, em, ex, pt, eller pc).","unavailable":"%1<span class=\"cke_accessibility\">, ikke tilgængelig</span>","keyboard":{"8":"Backspace","13":"Retur","16":"Shift","17":"Ctrl","18":"Alt","32":"Mellemrum","35":"Slut","36":"Hjem","46":"Slet","112":"F1","113":"F2","114":"F3","115":"F4","116":"F5","117":"F6","118":"F7","119":"F8","120":"F9","121":"F10","122":"F11","123":"F12","124":"F13","125":"F14","126":"F15","127":"F16","128":"F17","129":"F18","130":"F19","131":"F20","132":"F21","133":"F22","134":"F23","135":"F24","224":"Kommando"},"keyboardShortcut":"Tastatur genvej","optionDefault":"Standard"}};
\ No newline at end of file
+CKEDITOR.lang['da']={"widget":{"move":"Klik og træk for at flytte","label":"%1 widget"},"undo":{"redo":"Annullér fortryd","undo":"Fortryd"},"toolbar":{"toolbarCollapse":"Sammenklap værktøjslinje","toolbarExpand":"Udvid værktøjslinje","toolbarGroups":{"document":"Dokument","clipboard":"Udklipsholder/Fortryd","editing":"Redigering","forms":"Formularer","basicstyles":"Basis styles","paragraph":"Paragraf","links":"Links","insert":"Indsæt","styles":"Typografier","colors":"Farver","tools":"Værktøjer"},"toolbars":"Editors værktøjslinjer"},"table":{"border":"Rammebredde","caption":"Titel","cell":{"menu":"Celle","insertBefore":"Indsæt celle før","insertAfter":"Indsæt celle efter","deleteCell":"Slet celle","merge":"Flet celler","mergeRight":"Flet til højre","mergeDown":"Flet nedad","splitHorizontal":"Del celle vandret","splitVertical":"Del celle lodret","title":"Celleegenskaber","cellType":"Celletype","rowSpan":"Række span (rows span)","colSpan":"Kolonne span (columns span)","wordWrap":"Tekstombrydning","hAlign":"Vandret justering","vAlign":"Lodret justering","alignBaseline":"Grundlinje","bgColor":"Baggrundsfarve","borderColor":"Rammefarve","data":"Data","header":"Hoved","yes":"Ja","no":"Nej","invalidWidth":"Cellebredde skal være et tal.","invalidHeight":"Cellehøjde skal være et tal.","invalidRowSpan":"Række span skal være et heltal.","invalidColSpan":"Kolonne span skal være et heltal.","chooseColor":"Vælg"},"cellPad":"Cellemargen","cellSpace":"Celleafstand","column":{"menu":"Kolonne","insertBefore":"Indsæt kolonne før","insertAfter":"Indsæt kolonne efter","deleteColumn":"Slet kolonne"},"columns":"Kolonner","deleteTable":"Slet tabel","headers":"Hoved","headersBoth":"Begge","headersColumn":"Første kolonne","headersNone":"Ingen","headersRow":"Første række","heightUnit":"height unit","invalidBorder":"Rammetykkelse skal være et tal.","invalidCellPadding":"Cellemargen skal være et tal.","invalidCellSpacing":"Celleafstand skal være et tal.","invalidCols":"Antallet af kolonner skal være større end 0.","invalidHeight":"Tabelhøjde skal være et tal.","invalidRows":"Antallet af rækker skal være større end 0.","invalidWidth":"Tabelbredde skal være et tal.","menu":"Egenskaber for tabel","row":{"menu":"Række","insertBefore":"Indsæt række før","insertAfter":"Indsæt række efter","deleteRow":"Slet række"},"rows":"Rækker","summary":"Resumé","title":"Egenskaber for tabel","toolbar":"Tabel","widthPc":"procent","widthPx":"pixels","widthUnit":"Bredde på enhed"},"stylescombo":{"label":"Typografi","panelTitle":"Formattering på stylesheet","panelTitle1":"Block typografi","panelTitle2":"Inline typografi","panelTitle3":"Object typografi"},"specialchar":{"options":"Muligheder for specialkarakterer","title":"Vælg symbol","toolbar":"Indsæt symbol"},"sourcedialog":{"toolbar":"Kilde","title":"Kilde"},"sourcearea":{"toolbar":"Kilde"},"showblocks":{"toolbar":"Vis afsnitsmærker"},"removeformat":{"toolbar":"Fjern formatering"},"pastetext":{"button":"Indsæt som ikke-formateret tekst","pasteNotification":"Press %1 to paste. Your browser doesn‘t support pasting with the toolbar button or context menu option.","title":"Indsæt som ikke-formateret tekst"},"pastefromword":{"confirmCleanup":"Den tekst du forsøger at indsætte ser ud til at komme fra Word. Vil du rense teksten før den indsættes?","error":"Det var ikke muligt at fjerne formatteringen på den indsatte tekst grundet en intern fejl","title":"Indsæt fra Word","toolbar":"Indsæt fra Word"},"notification":{"closed":"Notefikation lukket."},"maximize":{"maximize":"Maksimér","minimize":"Minimér"},"magicline":{"title":"Indsæt afsnit"},"list":{"bulletedlist":"Punktopstilling","numberedlist":"Talopstilling"},"language":{"button":"Vælg sprog","remove":"Fjern sprog"},"indent":{"indent":"Forøg indrykning","outdent":"Formindsk indrykning"},"image2":{"alt":"Alternativ tekst","btnUpload":"Upload fil til serveren","captioned":"Tekstet billede","captionPlaceholder":"Tekst","infoTab":"Generelt","lockRatio":"Lås størrelsesforhold","menu":"Egenskaber for billede","pathName":"billede","pathNameCaption":"tekst","resetSize":"Nulstil størrelse","resizer":"Klik og træk for at ændre størrelsen","title":"Egenskaber for billede","uploadTab":"Upload","urlMissing":"Kilde på billed-URL mangler","altMissing":"Alternative text is missing."},"horizontalrule":{"toolbar":"Indsæt vandret streg"},"format":{"label":"Formatering","panelTitle":"Formatering","tag_address":"Adresse","tag_div":"Normal (DIV)","tag_h1":"Overskrift 1","tag_h2":"Overskrift 2","tag_h3":"Overskrift 3","tag_h4":"Overskrift 4","tag_h5":"Overskrift 5","tag_h6":"Overskrift 6","tag_p":"Normal","tag_pre":"Formateret"},"filetools":{"loadError":"Der skete en fejl ved indlæsningen af filen.","networkError":"Der skete en netværks fejl under uploadingen.","httpError404":"Der skete en HTTP fejl under uploadingen (404: File not found).","httpError403":"Der skete en HTTP fejl under uploadingen (403: Forbidden).","httpError":"Der skete en HTTP fejl under uploadingen (error status: %1).","noUrlError":"Upload URL er ikke defineret.","responseError":"Ikke korrekt server svar."},"elementspath":{"eleLabel":"Sti på element","eleTitle":"%1 element"},"contextmenu":{"options":"Muligheder for hjælpemenu"},"clipboard":{"copy":"Kopiér","copyError":"Din browsers sikkerhedsindstillinger tillader ikke editoren at få automatisk adgang til udklipsholderen. Brug i stedet tastaturet til at kopiere teksten (Ctrl/Cmd+C).","cut":"Klip","cutError":"Din browsers sikkerhedsindstillinger tillader ikke editoren at få automatisk adgang til udklipsholderen. Brug i stedet tastaturet til at klippe teksten (Ctrl/Cmd+X).","paste":"Indsæt","pasteNotification":"Tryk %1 for at sætte ind. Din browser understøtter ikke indsættelse med værktøjslinje knappen eller kontekst menuen.","pasteArea":"Indsættelses område","pasteMsg":"Indsæt dit indhold i området nedenfor og tryk OK."},"blockquote":{"toolbar":"Blokcitat"},"basicstyles":{"bold":"Fed","italic":"Kursiv","strike":"Gennemstreget","subscript":"Sænket skrift","superscript":"Hævet skrift","underline":"Understreget"},"about":{"copy":"Copyright &copy; $1. Alle rettigheder forbeholdes.","dlgTitle":"Om CKEditor 4","moreInfo":"For informationer omkring licens, se venligst vores hjemmeside (på engelsk):"},"editor":"Rich Text Editor","editorPanel":"Rich Text Editor panel","common":{"editorHelp":"Tryk ALT 0 for hjælp","browseServer":"Gennemse...","url":"URL","protocol":"Protokol","upload":"Upload","uploadSubmit":"Upload","image":"Indsæt billede","flash":"Indsæt Flash","form":"Indsæt formular","checkbox":"Indsæt afkrydsningsfelt","radio":"Indsæt alternativknap","textField":"Indsæt tekstfelt","textarea":"Indsæt tekstboks","hiddenField":"Indsæt skjult felt","button":"Indsæt knap","select":"Indsæt liste","imageButton":"Indsæt billedknap","notSet":"<intet valgt>","id":"Id","name":"Navn","langDir":"Tekstretning","langDirLtr":"Fra venstre mod højre (LTR)","langDirRtl":"Fra højre mod venstre (RTL)","langCode":"Sprogkode","longDescr":"Udvidet beskrivelse","cssClass":"Typografiark (CSS)","advisoryTitle":"Titel","cssStyle":"Typografi (CSS)","ok":"OK","cancel":"Annullér","close":"Luk","preview":"Forhåndsvisning","resize":"Træk for at skalere","generalTab":"Generelt","advancedTab":"Avanceret","validateNumberFailed":"Værdien er ikke et tal.","confirmNewPage":"Alt indhold, der ikke er blevet gemt, vil gå tabt. Er du sikker på, at du vil indlæse en ny side?","confirmCancel":"Nogle af indstillingerne er blevet ændret. Er du sikker på, at du vil lukke vinduet?","options":"Vis muligheder","target":"Mål","targetNew":"Nyt vindue (_blank)","targetTop":"Øverste vindue (_top)","targetSelf":"Samme vindue (_self)","targetParent":"Samme vindue (_parent)","langDirLTR":"Venstre til højre (LTR)","langDirRTL":"Højre til venstre (RTL)","styles":"Style","cssClasses":"Stylesheetklasser","width":"Bredde","height":"Højde","align":"Justering","left":"Venstre","right":"Højre","center":"Center","justify":"Lige margener","alignLeft":"Venstrestillet","alignRight":"Højrestillet","alignCenter":"Centreret","alignTop":"Øverst","alignMiddle":"Centreret","alignBottom":"Nederst","alignNone":"Ingen","invalidValue":"Ugyldig værdi.","invalidHeight":"Højde skal være et tal.","invalidWidth":"Bredde skal være et tal.","invalidLength":"Værdien angivet for feltet \"%1\" skal være et positivt heltal med eller uden en gyldig måleenhed (%2).","invalidCssLength":"Værdien specificeret for \"%1\" feltet skal være et positivt nummer med eller uden en CSS måleenhed  (px, %, in, cm, mm, em, ex, pt, eller pc).","invalidHtmlLength":"Værdien specificeret for \"%1\" feltet skal være et positivt nummer med eller uden en CSS måleenhed  (px eller %).","invalidInlineStyle":"Værdien specificeret for inline style skal indeholde en eller flere elementer med et format som \"name:value\", separeret af semikoloner","cssLengthTooltip":"Indsæt en numerisk værdi i pixel eller nummer med en gyldig CSS værdi (px, %, in, cm, mm, em, ex, pt, eller pc).","unavailable":"%1<span class=\"cke_accessibility\">, ikke tilgængelig</span>","keyboard":{"8":"Backspace","13":"Retur","16":"Shift","17":"Ctrl","18":"Alt","32":"Mellemrum","35":"Slut","36":"Hjem","46":"Slet","112":"F1","113":"F2","114":"F3","115":"F4","116":"F5","117":"F6","118":"F7","119":"F8","120":"F9","121":"F10","122":"F11","123":"F12","124":"F13","125":"F14","126":"F15","127":"F16","128":"F17","129":"F18","130":"F19","131":"F20","132":"F21","133":"F22","134":"F23","135":"F24","224":"Kommando"},"keyboardShortcut":"Tastatur genvej","optionDefault":"Standard"}};
\ No newline at end of file
diff --git a/web/core/assets/vendor/ckeditor/lang/de-ch.js b/web/core/assets/vendor/ckeditor/lang/de-ch.js
index 4be27c0966..99b907de31 100644
--- a/web/core/assets/vendor/ckeditor/lang/de-ch.js
+++ b/web/core/assets/vendor/ckeditor/lang/de-ch.js
@@ -1,5 +1,5 @@
 /*
-Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2020, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */
 CKEDITOR.lang['de-ch']={"widget":{"move":"Zum Verschieben anwählen und ziehen","label":"%1 widget"},"undo":{"redo":"Wiederherstellen","undo":"Rückgängig"},"toolbar":{"toolbarCollapse":"Werkzeugleiste einklappen","toolbarExpand":"Werkzeugleiste ausklappen","toolbarGroups":{"document":"Dokument","clipboard":"Zwischenablage/Rückgängig","editing":"Editieren","forms":"Formulare","basicstyles":"Grundstile","paragraph":"Absatz","links":"Links","insert":"Einfügen","styles":"Stile","colors":"Farben","tools":"Werkzeuge"},"toolbars":"Editor Werkzeugleisten"},"table":{"border":"Rahmengrösse","caption":"Überschrift","cell":{"menu":"Zelle","insertBefore":"Zelle davor einfügen","insertAfter":"Zelle danach einfügen","deleteCell":"Zelle löschen","merge":"Zellen verbinden","mergeRight":"Nach rechts verbinden","mergeDown":"Nach unten verbinden","splitHorizontal":"Zelle horizontal teilen","splitVertical":"Zelle vertikal teilen","title":"Zelleneigenschaften","cellType":"Zellart","rowSpan":"Anzahl Zeilen verbinden","colSpan":"Anzahl Spalten verbinden","wordWrap":"Zeilenumbruch","hAlign":"Horizontale Ausrichtung","vAlign":"Vertikale Ausrichtung","alignBaseline":"Grundlinie","bgColor":"Hintergrundfarbe","borderColor":"Rahmenfarbe","data":"Daten","header":"Überschrift","yes":"Ja","no":"Nein","invalidWidth":"Zellenbreite muss eine Zahl sein.","invalidHeight":"Zellenhöhe muss eine Zahl sein.","invalidRowSpan":"\"Anzahl Zeilen verbinden\" muss eine Ganzzahl sein.","invalidColSpan":"\"Anzahl Spalten verbinden\" muss eine Ganzzahl sein.","chooseColor":"Wählen"},"cellPad":"Zellenabstand innen","cellSpace":"Zellenabstand aussen","column":{"menu":"Spalte","insertBefore":"Spalte links davor einfügen","insertAfter":"Spalte rechts danach einfügen","deleteColumn":"Spalte löschen"},"columns":"Spalte","deleteTable":"Tabelle löschen","headers":"Kopfzeile","headersBoth":"Beide","headersColumn":"Erste Spalte","headersNone":"Keine","headersRow":"Erste Zeile","heightUnit":"height unit","invalidBorder":"Die Rahmenbreite muss eine Zahl sein.","invalidCellPadding":"Der Zellenabstand innen muss eine positive Zahl sein.","invalidCellSpacing":"Der Zellenabstand aussen muss eine positive Zahl sein.","invalidCols":"Die Anzahl der Spalten muß grösser als 0 sein..","invalidHeight":"Die Tabellenbreite muss eine Zahl sein.","invalidRows":"Die Anzahl der Zeilen muß grösser als 0 sein.","invalidWidth":"Die Tabellenbreite muss eine Zahl sein.","menu":"Tabellen-Eigenschaften","row":{"menu":"Zeile","insertBefore":"Zeile oberhalb einfügen","insertAfter":"Zeile unterhalb einfügen","deleteRow":"Zeile entfernen"},"rows":"Zeile","summary":"Inhaltsübersicht","title":"Tabellen-Eigenschaften","toolbar":"Tabelle","widthPc":"%","widthPx":"Pixel","widthUnit":"Breite Einheit"},"stylescombo":{"label":"Stil","panelTitle":"Formatierungsstile","panelTitle1":"Blockstile","panelTitle2":"Inline Stilart","panelTitle3":"Objektstile"},"specialchar":{"options":"Sonderzeichenoptionen","title":"Sonderzeichen auswählen","toolbar":"Sonderzeichen einfügen"},"sourcedialog":{"toolbar":"Quellcode","title":"Quellcode"},"sourcearea":{"toolbar":"Quellcode"},"showblocks":{"toolbar":"Blöcke anzeigen"},"removeformat":{"toolbar":"Formatierung entfernen"},"pastetext":{"button":"Als Klartext einfügen","pasteNotification":"Press %1 to paste. Your browser doesn‘t support pasting with the toolbar button or context menu option.","title":"Als Klartext einfügen"},"pastefromword":{"confirmCleanup":"Der Text, den Sie einfügen möchten, scheint aus MS-Word kopiert zu sein. Möchten Sie ihn zuvor bereinigen lassen?","error":"Aufgrund eines internen Fehlers war es nicht möglich die eingefügten Daten zu bereinigen","title":"Aus Word einfügen","toolbar":"Aus Word einfügen"},"notification":{"closed":"Benachrichtigung geschlossen."},"maximize":{"maximize":"Maximieren","minimize":"Minimieren"},"magicline":{"title":"Absatz hier einfügen"},"list":{"bulletedlist":"Liste","numberedlist":"Nummerierte Liste einfügen/entfernen"},"language":{"button":"Sprache festlegen","remove":"Sprache entfernen"},"indent":{"indent":"Einzug erhöhen","outdent":"Einzug verringern"},"image2":{"alt":"Alternativer Text","btnUpload":"Zum Server senden","captioned":"Bild mit Überschrift","captionPlaceholder":"Überschrift","infoTab":"Bildinfo","lockRatio":"Größenverhältnis beibehalten","menu":"Bildeigenschaften","pathName":"Bild","pathNameCaption":"Überschrift","resetSize":"Grösse zurücksetzen","resizer":"Zum Vergrössern auswählen und ziehen","title":"Bild-Eigenschaften","uploadTab":"Hochladen","urlMissing":"Bildquellen-URL fehlt.","altMissing":"Alternative text is missing."},"horizontalrule":{"toolbar":"Horizontale Linie einfügen"},"format":{"label":"Format","panelTitle":"Absatzformat","tag_address":"Adresse","tag_div":"Normal (DIV)","tag_h1":"Überschrift 1","tag_h2":"Überschrift 2","tag_h3":"Überschrift 3","tag_h4":"Überschrift 4","tag_h5":"Überschrift 5","tag_h6":"Überschrift 6","tag_p":"Normal","tag_pre":"Formatiert"},"filetools":{"loadError":"Während dem Lesen der Datei ist ein Fehler aufgetreten.","networkError":"Während dem Hochladen der Datei ist ein Netzwerkfehler aufgetreten.","httpError404":"Während dem Hochladen der Datei ist ein HTTP-Fehler aufgetreten (404: Datei nicht gefunden).","httpError403":"Während dem Hochladen der Datei ist ein HTTP-Fehler aufgetreten (403: Verboten).","httpError":"Während dem Hochladen der Datei ist ein HTTP-Fehler aufgetreten (Fehlerstatus: %1).","noUrlError":"Hochlade-URL ist nicht definiert.","responseError":"Falsche Antwort des Servers."},"elementspath":{"eleLabel":"Elementepfad","eleTitle":"%1 Element"},"contextmenu":{"options":"Kontextmenüoptionen"},"clipboard":{"copy":"Kopieren","copyError":"Die Sicherheitseinstellungen Ihres Browsers lassen es nicht zu, den Text automatisch kopieren. Bitte benutzen Sie die System-Zwischenablage über STRG-C (kopieren).","cut":"Ausschneiden","cutError":"Die Sicherheitseinstellungen Ihres Browsers lassen es nicht zu, den Text automatisch auszuschneiden. Bitte benutzen Sie die System-Zwischenablage über STRG-X (ausschneiden) und STRG-V (einfügen).","paste":"Einfügen","pasteNotification":"Press %1 to paste. Your browser doesn‘t support pasting with the toolbar button or context menu option.","pasteArea":"Einfügebereich","pasteMsg":"Paste your content inside the area below and press OK."},"blockquote":{"toolbar":"Zitatblock"},"basicstyles":{"bold":"Fett","italic":"Kursiv","strike":"Durchgestrichen","subscript":"Tiefgestellt","superscript":"Hochgestellt","underline":"Unterstrichen"},"about":{"copy":"Copyright &copy; $1. Alle Rechte vorbehalten.","dlgTitle":"Über CKEditor 4","moreInfo":"Für Informationen über unsere Lizenzbestimmungen besuchen sie bitte unsere Webseite:"},"editor":"WYSIWYG-Editor","editorPanel":"WYSIWYG-Editor-Leiste","common":{"editorHelp":"Drücken Sie ALT 0 für Hilfe","browseServer":"Server durchsuchen","url":"URL","protocol":"Protokoll","upload":"Hochladen","uploadSubmit":"Zum Server senden","image":"Bild","flash":"Flash","form":"Formular","checkbox":"Kontrollbox","radio":"Optionsfeld","textField":"Textfeld","textarea":"Textfeld","hiddenField":"Verstecktes Feld","button":"Schaltfläche","select":"Auswahlfeld","imageButton":"Bildschaltfläche","notSet":"<nicht festgelegt>","id":"Kennung","name":"Name","langDir":"Schreibrichtung","langDirLtr":"Links nach Rechts (LTR)","langDirRtl":"Rechts nach Links (RTL)","langCode":"Sprachcode","longDescr":"Langbeschreibungs-URL","cssClass":"Formatvorlagenklassen","advisoryTitle":"Titel Beschreibung","cssStyle":"Stil","ok":"OK","cancel":"Abbrechen","close":"Schliessen","preview":"Vorschau","resize":"Grösse ändern","generalTab":"Allgemein","advancedTab":"Erweitert","validateNumberFailed":"Dieser Wert ist keine Nummer.","confirmNewPage":"Alle nicht gespeicherten Änderungen gehen verlohren. Sind Sie sicher die neue Seite zu laden?","confirmCancel":"Einige Optionen wurden geändert. Wollen Sie den Dialog dennoch schliessen?","options":"Optionen","target":"Zielseite","targetNew":"Neues Fenster (_blank)","targetTop":"Oberstes Fenster (_top)","targetSelf":"Gleiches Fenster (_self)","targetParent":"Oberes Fenster (_parent)","langDirLTR":"Links nach Rechts (LNR)","langDirRTL":"Rechts nach Links (RNL)","styles":"Style","cssClasses":"Stylesheet Klasse","width":"Breite","height":"Höhe","align":"Ausrichtung","left":"Links","right":"Rechts","center":"Zentriert","justify":"Blocksatz","alignLeft":"Linksbündig","alignRight":"Rechtsbündig","alignCenter":"Align Center","alignTop":"Oben","alignMiddle":"Mitte","alignBottom":"Unten","alignNone":"Keine","invalidValue":"Ungültiger Wert.","invalidHeight":"Höhe muss eine Zahl sein.","invalidWidth":"Breite muss eine Zahl sein.","invalidLength":"Value specified for the \"%1\" field must be a positive number with or without a valid measurement unit (%2).","invalidCssLength":"Wert spezifiziert für \"%1\" Feld muss ein positiver numerischer Wert sein mit oder ohne korrekte CSS Messeinheit (px, %, in, cm, mm, em, ex, pt oder pc).","invalidHtmlLength":"Wert spezifiziert für \"%1\" Feld muss ein positiver numerischer Wert sein mit oder ohne korrekte HTML Messeinheit (px oder %).","invalidInlineStyle":"Wert spezifiziert für inline Stilart muss enthalten ein oder mehr Tupels mit dem Format \"Name : Wert\" getrennt mit Semikolons.","cssLengthTooltip":"Gebe eine Zahl ein für ein Wert in pixels oder eine Zahl mit einer korrekten CSS Messeinheit (px, %, in, cm, mm, em, ex, pt oder pc).","unavailable":"%1<span class=\"cke_accessibility\">, nicht verfügbar</span>","keyboard":{"8":"Rücktaste","13":"Eingabe","16":"Umschalt","17":"Strg","18":"Alt","32":"Space","35":"Ende","36":"Pos1","46":"Entfernen","112":"F1","113":"F2","114":"F3","115":"F4","116":"F5","117":"F6","118":"F7","119":"F8","120":"F9","121":"F10","122":"F11","123":"F12","124":"F13","125":"F14","126":"F15","127":"F16","128":"F17","129":"F18","130":"F19","131":"F20","132":"F21","133":"F22","134":"F23","135":"F24","224":"Command"},"keyboardShortcut":"Keyboard shortcut","optionDefault":"Default"}};
\ No newline at end of file
diff --git a/web/core/assets/vendor/ckeditor/lang/de.js b/web/core/assets/vendor/ckeditor/lang/de.js
index 90c137e6d6..5bc59ad8fa 100644
--- a/web/core/assets/vendor/ckeditor/lang/de.js
+++ b/web/core/assets/vendor/ckeditor/lang/de.js
@@ -1,5 +1,5 @@
 /*
-Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2020, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */
 CKEDITOR.lang['de']={"widget":{"move":"Zum Verschieben anwählen und ziehen","label":"%1 Steuerelement"},"undo":{"redo":"Wiederherstellen","undo":"Rückgängig"},"toolbar":{"toolbarCollapse":"Werkzeugleiste einklappen","toolbarExpand":"Werkzeugleiste ausklappen","toolbarGroups":{"document":"Dokument","clipboard":"Zwischenablage/Rückgängig","editing":"Editieren","forms":"Formulare","basicstyles":"Grundstile","paragraph":"Absatz","links":"Links","insert":"Einfügen","styles":"Stile","colors":"Farben","tools":"Werkzeuge"},"toolbars":"Editor Werkzeugleisten"},"table":{"border":"Rahmengröße","caption":"Überschrift","cell":{"menu":"Zelle","insertBefore":"Zelle davor einfügen","insertAfter":"Zelle danach einfügen","deleteCell":"Zelle löschen","merge":"Zellen verbinden","mergeRight":"Nach rechts verbinden","mergeDown":"Nach unten verbinden","splitHorizontal":"Zelle horizontal teilen","splitVertical":"Zelle vertikal teilen","title":"Zelleneigenschaften","cellType":"Zellart","rowSpan":"Anzahl Zeilen verbinden","colSpan":"Anzahl Spalten verbinden","wordWrap":"Zeilenumbruch","hAlign":"Horizontale Ausrichtung","vAlign":"Vertikale Ausrichtung","alignBaseline":"Grundlinie","bgColor":"Hintergrundfarbe","borderColor":"Rahmenfarbe","data":"Daten","header":"Überschrift","yes":"Ja","no":"Nein","invalidWidth":"Zellenbreite muss eine Zahl sein.","invalidHeight":"Zellenhöhe muss eine Zahl sein.","invalidRowSpan":"\"Anzahl Zeilen verbinden\" muss eine Ganzzahl sein.","invalidColSpan":"\"Anzahl Spalten verbinden\" muss eine Ganzzahl sein.","chooseColor":"Wählen"},"cellPad":"Zellenabstand innen","cellSpace":"Zellenabstand außen","column":{"menu":"Spalte","insertBefore":"Spalte links davor einfügen","insertAfter":"Spalte rechts danach einfügen","deleteColumn":"Spalte löschen"},"columns":"Spalte","deleteTable":"Tabelle löschen","headers":"Kopfzeile","headersBoth":"Beide","headersColumn":"Erste Spalte","headersNone":"Keine","headersRow":"Erste Zeile","heightUnit":"height unit","invalidBorder":"Die Rahmenbreite muß eine Zahl sein.","invalidCellPadding":"Der Zellenabstand innen muß eine positive Zahl sein.","invalidCellSpacing":"Der Zellenabstand außen muß eine positive Zahl sein.","invalidCols":"Die Anzahl der Spalten muß größer als 0 sein..","invalidHeight":"Die Tabellenbreite muß eine Zahl sein.","invalidRows":"Die Anzahl der Zeilen muß größer als 0 sein.","invalidWidth":"Die Tabellenbreite muss eine Zahl sein.","menu":"Tabellen-Eigenschaften","row":{"menu":"Zeile","insertBefore":"Zeile oberhalb einfügen","insertAfter":"Zeile unterhalb einfügen","deleteRow":"Zeile entfernen"},"rows":"Zeile","summary":"Inhaltsübersicht","title":"Tabellen-Eigenschaften","toolbar":"Tabelle","widthPc":"%","widthPx":"Pixel","widthUnit":"Breite Einheit"},"stylescombo":{"label":"Stil","panelTitle":"Formatierungsstile","panelTitle1":"Blockstile","panelTitle2":"Inline Stilart","panelTitle3":"Objektstile"},"specialchar":{"options":"Sonderzeichenoptionen","title":"Sonderzeichen auswählen","toolbar":"Sonderzeichen einfügen"},"sourcedialog":{"toolbar":"Quellcode","title":"Quellcode"},"sourcearea":{"toolbar":"Quellcode"},"showblocks":{"toolbar":"Blöcke anzeigen"},"removeformat":{"toolbar":"Formatierung entfernen"},"pastetext":{"button":"Als Klartext einfügen","pasteNotification":"Drücken Sie %1 zum Einfügen. Ihr Browser unterstützt nicht das Einfügen über dem Knopf in der Toolbar oder dem Kontextmenü.","title":"Als Klartext einfügen"},"pastefromword":{"confirmCleanup":"Der Text, den Sie einfügen möchten, scheint aus MS-Word kopiert zu sein. Möchten Sie ihn zuvor bereinigen lassen?","error":"Aufgrund eines internen Fehlers war es nicht möglich die eingefügten Daten zu bereinigen","title":"Aus Word einfügen","toolbar":"Aus Word einfügen"},"notification":{"closed":"Benachrichtigung geschlossen."},"maximize":{"maximize":"Maximieren","minimize":"Minimieren"},"magicline":{"title":"Absatz hier einfügen"},"list":{"bulletedlist":"Liste","numberedlist":"Nummerierte Liste einfügen/entfernen"},"language":{"button":"Sprache festlegen","remove":"Sprache entfernen"},"indent":{"indent":"Einzug erhöhen","outdent":"Einzug verringern"},"image2":{"alt":"Alternativer Text","btnUpload":"Zum Server senden","captioned":"Bild mit Überschrift","captionPlaceholder":"Überschrift","infoTab":"Bildinfo","lockRatio":"Größenverhältnis beibehalten","menu":"Bildeigenschaften","pathName":"Bild","pathNameCaption":"Überschrift","resetSize":"Größe zurücksetzen","resizer":"Zum Vergrößern auswählen und ziehen","title":"Bild-Eigenschaften","uploadTab":"Hochladen","urlMissing":"Bildquellen-URL fehlt.","altMissing":"Alternativer Text fehlt."},"horizontalrule":{"toolbar":"Horizontale Linie einfügen"},"format":{"label":"Format","panelTitle":"Absatzformat","tag_address":"Adresse","tag_div":"Normal (DIV)","tag_h1":"Überschrift 1","tag_h2":"Überschrift 2","tag_h3":"Überschrift 3","tag_h4":"Überschrift 4","tag_h5":"Überschrift 5","tag_h6":"Überschrift 6","tag_p":"Normal","tag_pre":"Formatiert"},"filetools":{"loadError":"Während des Lesens der Datei ist ein Fehler aufgetreten.","networkError":"Während des Hochladens der Datei ist ein Netzwerkfehler aufgetreten.","httpError404":"Während des Hochladens der Datei ist ein HTTP-Fehler aufgetreten (404: Datei nicht gefunden).","httpError403":"Während des Hochladens der Datei ist ein HTTP-Fehler aufgetreten (403: Verboten).","httpError":"Während des Hochladens der Datei ist ein HTTP-Fehler aufgetreten (Fehlerstatus: %1).","noUrlError":"Hochlade-URL ist nicht definiert.","responseError":"Falsche Antwort des Servers."},"elementspath":{"eleLabel":"Elementepfad","eleTitle":"%1 Element"},"contextmenu":{"options":"Kontextmenüoptionen"},"clipboard":{"copy":"Kopieren","copyError":"Die Sicherheitseinstellungen Ihres Browsers lassen es nicht zu, den Text automatisch kopieren. Bitte benutzen Sie die System-Zwischenablage über STRG-C (kopieren).","cut":"Ausschneiden","cutError":"Die Sicherheitseinstellungen Ihres Browsers lassen es nicht zu, den Text automatisch auszuschneiden. Bitte benutzen Sie die System-Zwischenablage über STRG-X (ausschneiden) und STRG-V (einfügen).","paste":"Einfügen","pasteNotification":"Drücken Sie %1 zum Einfügen. Ihr Browser unterstützt nicht das Einfügen über dem Knopf in der Toolbar oder dem Kontextmenü.","pasteArea":"Einfügebereich","pasteMsg":"Fügen Sie den Inhalt in den unteren Bereich ein und drücken Sie OK."},"blockquote":{"toolbar":"Zitatblock"},"basicstyles":{"bold":"Fett","italic":"Kursiv","strike":"Durchgestrichen","subscript":"Tiefgestellt","superscript":"Hochgestellt","underline":"Unterstrichen"},"about":{"copy":"Copyright &copy; $1. Alle Rechte vorbehalten.","dlgTitle":"Über CKEditor 4","moreInfo":"Für Informationen über unsere Lizenzbestimmungen besuchen sie bitte unsere Webseite:"},"editor":"WYSIWYG-Editor","editorPanel":"WYSIWYG-Editor-Leiste","common":{"editorHelp":"Drücken Sie ALT 0 für Hilfe","browseServer":"Server durchsuchen","url":"URL","protocol":"Protokoll","upload":"Hochladen","uploadSubmit":"Zum Server senden","image":"Bild","flash":"Flash","form":"Formular","checkbox":"Kontrollbox","radio":"Optionsfeld","textField":"Textfeld","textarea":"Textfeld","hiddenField":"Verstecktes Feld","button":"Schaltfläche","select":"Auswahlfeld","imageButton":"Bildschaltfläche","notSet":"<nicht festgelegt>","id":"Kennung","name":"Name","langDir":"Schreibrichtung","langDirLtr":"Links nach Rechts (LTR)","langDirRtl":"Rechts nach Links (RTL)","langCode":"Sprachcode","longDescr":"Langbeschreibungs-URL","cssClass":"Formatvorlagenklassen","advisoryTitle":"Titel Beschreibung","cssStyle":"Stil","ok":"OK","cancel":"Abbrechen","close":"Schließen","preview":"Vorschau","resize":"Größe ändern","generalTab":"Allgemein","advancedTab":"Erweitert","validateNumberFailed":"Dieser Wert ist keine Nummer.","confirmNewPage":"Alle nicht gespeicherten Änderungen gehen verloren. Sind Sie sicher die neue Seite zu laden?","confirmCancel":"Einige Optionen wurden geändert. Wollen Sie den Dialog dennoch schließen?","options":"Optionen","target":"Zielseite","targetNew":"Neues Fenster (_blank)","targetTop":"Oberstes Fenster (_top)","targetSelf":"Gleiches Fenster (_self)","targetParent":"Oberes Fenster (_parent)","langDirLTR":"Links nach Rechts (LNR)","langDirRTL":"Rechts nach Links (RNL)","styles":"Style","cssClasses":"Stylesheet Klasse","width":"Breite","height":"Höhe","align":"Ausrichtung","left":"Links","right":"Rechts","center":"Zentriert","justify":"Blocksatz","alignLeft":"Linksbündig","alignRight":"Rechtsbündig","alignCenter":"Zentriert","alignTop":"Oben","alignMiddle":"Mitte","alignBottom":"Unten","alignNone":"Keine","invalidValue":"Ungültiger Wert.","invalidHeight":"Höhe muss eine Zahl sein.","invalidWidth":"Breite muss eine Zahl sein.","invalidLength":"Der für das Feld \"%1\" angegebene Wert muss eine positive Zahl mit oder ohne gültige Maßeinheit (%2) sein. ","invalidCssLength":"Wert spezifiziert für \"%1\" Feld muss ein positiver numerischer Wert sein mit oder ohne korrekte CSS Messeinheit (px, %, in, cm, mm, em, ex, pt oder pc).","invalidHtmlLength":"Wert spezifiziert für \"%1\" Feld muss ein positiver numerischer Wert sein mit oder ohne korrekte HTML Messeinheit (px oder %).","invalidInlineStyle":"Wert spezifiziert für inline Stilart muss enthalten ein oder mehr Tupels mit dem Format \"Name : Wert\" getrennt mit Semikolons.","cssLengthTooltip":"Gebe eine Zahl ein für ein Wert in pixels oder eine Zahl mit einer korrekten CSS Messeinheit (px, %, in, cm, mm, em, ex, pt oder pc).","unavailable":"%1<span class=\"cke_accessibility\">, nicht verfügbar</span>","keyboard":{"8":"Rücktaste","13":"Eingabe","16":"Umschalt","17":"Strg","18":"Alt","32":"Leer","35":"Ende","36":"Pos1","46":"Entfernen","112":"F1","113":"F2","114":"F3","115":"F4","116":"F5","117":"F6","118":"F7","119":"F8","120":"F9","121":"F10","122":"F11","123":"F12","124":"F13","125":"F14","126":"F15","127":"F16","128":"F17","129":"F18","130":"F19","131":"F20","132":"F21","133":"F22","134":"F23","135":"F24","224":"Befehl"},"keyboardShortcut":"Tastaturkürzel","optionDefault":"Standard"}};
\ No newline at end of file
diff --git a/web/core/assets/vendor/ckeditor/lang/el.js b/web/core/assets/vendor/ckeditor/lang/el.js
index 7adf31ecbf..6a4ba71fe5 100644
--- a/web/core/assets/vendor/ckeditor/lang/el.js
+++ b/web/core/assets/vendor/ckeditor/lang/el.js
@@ -1,5 +1,5 @@
 /*
-Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2020, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */
 CKEDITOR.lang['el']={"widget":{"move":"Κάνετε κλικ και σύρετε το ποντίκι για να μετακινήστε","label":"%1 widget"},"undo":{"redo":"Επανάληψη","undo":"Αναίρεση"},"toolbar":{"toolbarCollapse":"Σύμπτυξη Εργαλειοθήκης","toolbarExpand":"Ανάπτυξη Εργαλειοθήκης","toolbarGroups":{"document":"Έγγραφο","clipboard":"Πρόχειρο/Αναίρεση","editing":"Επεξεργασία","forms":"Φόρμες","basicstyles":"Βασικά Στυλ","paragraph":"Παράγραφος","links":"Σύνδεσμοι","insert":"Εισαγωγή","styles":"Στυλ","colors":"Χρώματα","tools":"Εργαλεία"},"toolbars":"Εργαλειοθήκες επεξεργαστή"},"table":{"border":"Πάχος Περιγράμματος","caption":"Λεζάντα","cell":{"menu":"Κελί","insertBefore":"Εισαγωγή Κελιού Πριν","insertAfter":"Εισαγωγή Κελιού Μετά","deleteCell":"Διαγραφή Κελιών","merge":"Ενοποίηση Κελιών","mergeRight":"Συγχώνευση Με Δεξιά","mergeDown":"Συγχώνευση Με Κάτω","splitHorizontal":"Οριζόντια Διαίρεση Κελιού","splitVertical":"Κατακόρυφη Διαίρεση Κελιού","title":"Ιδιότητες Κελιού","cellType":"Τύπος Κελιού","rowSpan":"Εύρος Γραμμών","colSpan":"Εύρος Στηλών","wordWrap":"Αναδίπλωση Λέξεων","hAlign":"Οριζόντια Στοίχιση","vAlign":"Κάθετη Στοίχιση","alignBaseline":"Γραμμή Βάσης","bgColor":"Χρώμα Φόντου","borderColor":"Χρώμα Περιγράμματος","data":"Δεδομένα","header":"Κεφαλίδα","yes":"Ναι","no":"Όχι","invalidWidth":"Το πλάτος του κελιού πρέπει να είναι αριθμός.","invalidHeight":"Το ύψος του κελιού πρέπει να είναι αριθμός.","invalidRowSpan":"Το εύρος των γραμμών πρέπει να είναι ακέραιος αριθμός.","invalidColSpan":"Το εύρος των στηλών πρέπει να είναι ακέραιος αριθμός.","chooseColor":"Επιλέξτε"},"cellPad":"Αναπλήρωση κελιών","cellSpace":"Απόσταση κελιών","column":{"menu":"Στήλη","insertBefore":"Εισαγωγή Στήλης Πριν","insertAfter":"Εισαγωγή Στήλης Μετά","deleteColumn":"Διαγραφή Στηλών"},"columns":"Στήλες","deleteTable":"Διαγραφή Πίνακα","headers":"Κεφαλίδες","headersBoth":"Και τα δύο","headersColumn":"Πρώτη στήλη","headersNone":"Κανένα","headersRow":"Πρώτη Γραμμή","heightUnit":"height unit","invalidBorder":"Το πάχος του περιγράμματος πρέπει να είναι ένας αριθμός.","invalidCellPadding":"Η αναπλήρωση των κελιών πρέπει να είναι θετικός αριθμός.","invalidCellSpacing":"Η απόσταση μεταξύ των κελιών πρέπει να είναι ένας θετικός αριθμός.","invalidCols":"Ο αριθμός των στηλών πρέπει να είναι μεγαλύτερος από 0.","invalidHeight":"Το ύψος του πίνακα πρέπει να είναι αριθμός.","invalidRows":"Ο αριθμός των σειρών πρέπει να είναι μεγαλύτερος από 0.","invalidWidth":"Το πλάτος του πίνακα πρέπει να είναι ένας αριθμός.","menu":"Ιδιότητες Πίνακα","row":{"menu":"Γραμμή","insertBefore":"Εισαγωγή Γραμμής Πριν","insertAfter":"Εισαγωγή Γραμμής Μετά","deleteRow":"Διαγραφή Γραμμών"},"rows":"Γραμμές","summary":"Περίληψη","title":"Ιδιότητες Πίνακα","toolbar":"Πίνακας","widthPc":"τοις εκατό","widthPx":"pixel","widthUnit":"μονάδα πλάτους"},"stylescombo":{"label":"Μορφές","panelTitle":"Στυλ Μορφοποίησης","panelTitle1":"Στυλ Τμημάτων","panelTitle2":"Στυλ Εν Σειρά","panelTitle3":"Στυλ Αντικειμένων"},"specialchar":{"options":"Επιλογές Ειδικών Χαρακτήρων","title":"Επιλέξτε Έναν Ειδικό Χαρακτήρα","toolbar":"Εισαγωγή Ειδικού Χαρακτήρα"},"sourcedialog":{"toolbar":"Κώδικας","title":"Κώδικας"},"sourcearea":{"toolbar":"Κώδικας"},"showblocks":{"toolbar":"Προβολή Τμημάτων"},"removeformat":{"toolbar":"Εκκαθάριση Μορφοποίησης"},"pastetext":{"button":"Επικόλληση ως απλό κείμενο","pasteNotification":"Press %1 to paste. Your browser doesn‘t support pasting with the toolbar button or context menu option.","title":"Επικόλληση ως απλό κείμενο"},"pastefromword":{"confirmCleanup":"Το κείμενο που επικολλάται φαίνεται να είναι αντιγραμμένο από το Word. Μήπως θα θέλατε να καθαριστεί προτού επικολληθεί;","error":"Δεν ήταν δυνατό να καθαριστούν τα δεδομένα λόγω ενός εσωτερικού σφάλματος","title":"Επικόλληση από το Word","toolbar":"Επικόλληση από το Word"},"notification":{"closed":"Notification closed."},"maximize":{"maximize":"Μεγιστοποίηση","minimize":"Ελαχιστοποίηση"},"magicline":{"title":"Εισάγετε παράγραφο εδώ"},"list":{"bulletedlist":"Εισαγωγή/Απομάκρυνση Λίστας Κουκκίδων","numberedlist":"Εισαγωγή/Απομάκρυνση Αριθμημένης Λίστας"},"language":{"button":"Θέση γλώσσας","remove":"Αφαίρεση γλώσσας"},"indent":{"indent":"Αύξηση Εσοχής","outdent":"Μείωση Εσοχής"},"image2":{"alt":"Εναλλακτικό Κείμενο","btnUpload":"Αποστολή στον Διακομιστή","captioned":"Εικόνα με λεζάντα","captionPlaceholder":"Λεζάντα","infoTab":"Πληροφορίες Εικόνας","lockRatio":"Κλείδωμα Αναλογίας","menu":"Ιδιότητες Εικόνας","pathName":"εικόνα","pathNameCaption":"λεζάντα","resetSize":"Επαναφορά Αρχικού Μεγέθους","resizer":"Κάνετε κλικ και σύρετε το ποντίκι για να αλλάξετε το μέγεθος","title":"Ιδιότητες Εικόνας","uploadTab":"Αποστολή","urlMissing":"Λείπει το πηγαίο URL της εικόνας.","altMissing":"Alternative text is missing."},"horizontalrule":{"toolbar":"Εισαγωγή Οριζόντιας Γραμμής"},"format":{"label":"Μορφοποίηση","panelTitle":"Μορφοποίηση Παραγράφου","tag_address":"Διεύθυνση","tag_div":"Κανονική (DIV)","tag_h1":"Κεφαλίδα 1","tag_h2":"Κεφαλίδα 2","tag_h3":"Κεφαλίδα 3","tag_h4":"Κεφαλίδα 4","tag_h5":"Κεφαλίδα 5","tag_h6":"Κεφαλίδα 6","tag_p":"Κανονική","tag_pre":"Προ-μορφοποιημένη"},"filetools":{"loadError":"Error occurred during file read.","networkError":"Network error occurred during file upload.","httpError404":"HTTP error occurred during file upload (404: File not found).","httpError403":"HTTP error occurred during file upload (403: Forbidden).","httpError":"HTTP error occurred during file upload (error status: %1).","noUrlError":"Upload URL is not defined.","responseError":"Incorrect server response."},"elementspath":{"eleLabel":"Διαδρομή Στοιχείων","eleTitle":"Στοιχείο %1"},"contextmenu":{"options":"Επιλογές Αναδυόμενου Μενού"},"clipboard":{"copy":"Αντιγραφή","copyError":"Οι ρυθμίσεις ασφαλείας του περιηγητή σας δεν επιτρέπουν την επιλεγμένη εργασία αντιγραφής. Παρακαλώ χρησιμοποιείστε το πληκτρολόγιο (Ctrl/Cmd+C).","cut":"Αποκοπή","cutError":"Οι ρυθμίσεις ασφαλείας του περιηγητή σας δεν επιτρέπουν την επιλεγμένη εργασία αποκοπής. Παρακαλώ χρησιμοποιείστε το πληκτρολόγιο (Ctrl/Cmd+X).","paste":"Επικόλληση","pasteNotification":"Press %1 to paste. Your browser doesn‘t support pasting with the toolbar button or context menu option.","pasteArea":"Περιοχή Επικόλλησης","pasteMsg":"Paste your content inside the area below and press OK."},"blockquote":{"toolbar":"Περιοχή Παράθεσης"},"basicstyles":{"bold":"Έντονη","italic":"Πλάγια","strike":"Διακριτή Διαγραφή","subscript":"Δείκτης","superscript":"Εκθέτης","underline":"Υπογράμμιση"},"about":{"copy":"Πνευματικά δικαιώματα &copy; $1 Με επιφύλαξη παντός δικαιώματος.","dlgTitle":"Περί του CKEditor 4","moreInfo":"Για πληροφορίες σχετικές με την άδεια χρήσης, παρακαλούμε επισκεφθείτε την ιστοσελίδα μας:"},"editor":"Επεξεργαστής Πλούσιου Κειμένου","editorPanel":"Πίνακας Επεξεργαστή Πλούσιου Κειμένου","common":{"editorHelp":"Πατήστε το ALT 0 για βοήθεια","browseServer":"Εξερεύνηση Διακομιστή","url":"URL","protocol":"Πρωτόκολλο","upload":"Αποστολή","uploadSubmit":"Αποστολή στον Διακομιστή","image":"Εικόνα","flash":"Flash","form":"Φόρμα","checkbox":"Κουτί Επιλογής","radio":"Κουμπί Επιλογής","textField":"Πεδίο Κειμένου","textarea":"Περιοχή Κειμένου","hiddenField":"Κρυφό Πεδίο","button":"Κουμπί","select":"Πεδίο Επιλογής","imageButton":"Κουμπί Εικόνας","notSet":"<δεν έχει ρυθμιστεί>","id":"Id","name":"Όνομα","langDir":"Κατεύθυνση Κειμένου","langDirLtr":"Αριστερά προς Δεξιά (LTR)","langDirRtl":"Δεξιά προς Αριστερά (RTL)","langCode":"Κωδικός Γλώσσας","longDescr":"Αναλυτική Περιγραφή URL","cssClass":"Κλάσεις Φύλλων Στυλ","advisoryTitle":"Ενδεικτικός Τίτλος","cssStyle":"Μορφή Κειμένου","ok":"OK","cancel":"Ακύρωση","close":"Κλείσιμο","preview":"Προεπισκόπηση","resize":"Αλλαγή Μεγέθους","generalTab":"Γενικά","advancedTab":"Για Προχωρημένους","validateNumberFailed":"Αυτή η τιμή δεν είναι αριθμός.","confirmNewPage":"Οι όποιες αλλαγές στο περιεχόμενο θα χαθούν. Είσαστε σίγουροι ότι θέλετε να φορτώσετε μια νέα σελίδα;","confirmCancel":"Μερικές επιλογές έχουν αλλάξει. Είσαστε σίγουροι ότι θέλετε να κλείσετε το παράθυρο διαλόγου;","options":"Επιλογές","target":"Προορισμός","targetNew":"Νέο Παράθυρο (_blank)","targetTop":"Αρχική Περιοχή (_top)","targetSelf":"Ίδιο Παράθυρο (_self)","targetParent":"Γονεϊκό Παράθυρο (_parent)","langDirLTR":"Αριστερά προς Δεξιά (LTR)","langDirRTL":"Δεξιά προς Αριστερά (RTL)","styles":"Μορφή","cssClasses":"Κλάσεις Φύλλων Στυλ","width":"Πλάτος","height":"Ύψος","align":"Στοίχιση","left":"Αριστερά","right":"Δεξιά","center":"Κέντρο","justify":"Πλήρης Στοίχιση","alignLeft":"Στοίχιση Αριστερά","alignRight":"Στοίχιση Δεξιά","alignCenter":"Align Center","alignTop":"Πάνω","alignMiddle":"Μέση","alignBottom":"Κάτω","alignNone":"Χωρίς","invalidValue":"Μη έγκυρη τιμή.","invalidHeight":"Το ύψος πρέπει να είναι ένας αριθμός.","invalidWidth":"Το πλάτος πρέπει να είναι ένας αριθμός.","invalidLength":"Value specified for the \"%1\" field must be a positive number with or without a valid measurement unit (%2).","invalidCssLength":"Η τιμή που ορίζεται για το πεδίο \"%1\" πρέπει να είναι ένας θετικός αριθμός με ή χωρίς μια έγκυρη μονάδα μέτρησης CSS (px, %, in, cm, mm, em, ex, pt, ή pc).","invalidHtmlLength":"Η τιμή που ορίζεται για το πεδίο \"%1\" πρέπει να είναι ένας θετικός αριθμός με ή χωρίς μια έγκυρη μονάδα μέτρησης HTML (px ή %).","invalidInlineStyle":"Η τιμή για το εν σειρά στυλ πρέπει να περιέχει ένα ή περισσότερα ζεύγη με την μορφή \"όνομα: τιμή\" διαχωρισμένα με Ελληνικό ερωτηματικό.","cssLengthTooltip":"Εισάγεται μια τιμή σε pixel ή έναν αριθμό μαζί με μια έγκυρη μονάδα μέτρησης CSS (px, %, in, cm, mm, em, ex, pt, ή pc).","unavailable":"%1<span class=\"cke_accessibility\">, δεν είναι διαθέσιμο</span>","keyboard":{"8":"Backspace","13":"Enter","16":"Shift","17":"Ctrl","18":"Alt","32":"Κενό","35":"End","36":"Home","46":"Delete","112":"F1","113":"F2","114":"F3","115":"F4","116":"F5","117":"F6","118":"F7","119":"F8","120":"F9","121":"F10","122":"F11","123":"F12","124":"F13","125":"F14","126":"F15","127":"F16","128":"F17","129":"F18","130":"F19","131":"F20","132":"F21","133":"F22","134":"F23","135":"F24","224":"Εντολή"},"keyboardShortcut":"Συντόμευση πληκτρολογίου","optionDefault":"Default"}};
\ No newline at end of file
diff --git a/web/core/assets/vendor/ckeditor/lang/en-au.js b/web/core/assets/vendor/ckeditor/lang/en-au.js
index dbcc1107f7..7d1d7e5b7b 100644
--- a/web/core/assets/vendor/ckeditor/lang/en-au.js
+++ b/web/core/assets/vendor/ckeditor/lang/en-au.js
@@ -1,5 +1,5 @@
 /*
-Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2020, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */
 CKEDITOR.lang['en-au']={"widget":{"move":"Click and drag to move","label":"%1 widget"},"undo":{"redo":"Redo","undo":"Undo"},"toolbar":{"toolbarCollapse":"Collapse Toolbar","toolbarExpand":"Expand Toolbar","toolbarGroups":{"document":"Document","clipboard":"Clipboard/Undo","editing":"Editing","forms":"Forms","basicstyles":"Basic Styles","paragraph":"Paragraph","links":"Links","insert":"Insert","styles":"Styles","colors":"Colors","tools":"Tools"},"toolbars":"Editor toolbars"},"table":{"border":"Border size","caption":"Caption","cell":{"menu":"Cell","insertBefore":"Insert Cell Before","insertAfter":"Insert Cell After","deleteCell":"Delete Cells","merge":"Merge Cells","mergeRight":"Merge Right","mergeDown":"Merge Down","splitHorizontal":"Split Cell Horizontally","splitVertical":"Split Cell Vertically","title":"Cell Properties","cellType":"Cell Type","rowSpan":"Rows Span","colSpan":"Columns Span","wordWrap":"Word Wrap","hAlign":"Horizontal Alignment","vAlign":"Vertical Alignment","alignBaseline":"Baseline","bgColor":"Background Color","borderColor":"Border Color","data":"Data","header":"Header","yes":"Yes","no":"No","invalidWidth":"Cell width must be a number.","invalidHeight":"Cell height must be a number.","invalidRowSpan":"Rows span must be a whole number.","invalidColSpan":"Columns span must be a whole number.","chooseColor":"Choose"},"cellPad":"Cell padding","cellSpace":"Cell spacing","column":{"menu":"Column","insertBefore":"Insert Column Before","insertAfter":"Insert Column After","deleteColumn":"Delete Columns"},"columns":"Columns","deleteTable":"Delete Table","headers":"Headers","headersBoth":"Both","headersColumn":"First column","headersNone":"None","headersRow":"First Row","heightUnit":"height unit","invalidBorder":"Border size must be a number.","invalidCellPadding":"Cell padding must be a number.","invalidCellSpacing":"Cell spacing must be a number.","invalidCols":"Number of columns must be a number greater than 0.","invalidHeight":"Table height must be a number.","invalidRows":"Number of rows must be a number greater than 0.","invalidWidth":"Table width must be a number.","menu":"Table Properties","row":{"menu":"Row","insertBefore":"Insert Row Before","insertAfter":"Insert Row After","deleteRow":"Delete Rows"},"rows":"Rows","summary":"Summary","title":"Table Properties","toolbar":"Table","widthPc":"percent","widthPx":"pixels","widthUnit":"width unit"},"stylescombo":{"label":"Styles","panelTitle":"Formatting Styles","panelTitle1":"Block Styles","panelTitle2":"Inline Styles","panelTitle3":"Object Styles"},"specialchar":{"options":"Special Character Options","title":"Select Special Character","toolbar":"Insert Special Character"},"sourcedialog":{"toolbar":"Source","title":"Source"},"sourcearea":{"toolbar":"Source"},"showblocks":{"toolbar":"Show Blocks"},"removeformat":{"toolbar":"Remove Format"},"pastetext":{"button":"Paste as plain text","pasteNotification":"Press %1 to paste. Your browser doesn‘t support pasting with the toolbar button or context menu option.","title":"Paste as Plain Text"},"pastefromword":{"confirmCleanup":"The text you want to paste seems to be copied from Word. Do you want to clean it before pasting?","error":"It was not possible to clean up the pasted data due to an internal error","title":"Paste from Word","toolbar":"Paste from Word"},"notification":{"closed":"Notification closed."},"maximize":{"maximize":"Maximise","minimize":"Minimise"},"magicline":{"title":"Insert paragraph here"},"list":{"bulletedlist":"Insert/Remove Bulleted List","numberedlist":"Insert/Remove Numbered List"},"language":{"button":"Set language","remove":"Remove language"},"indent":{"indent":"Increase Indent","outdent":"Decrease Indent"},"image2":{"alt":"Alternative Text","btnUpload":"Send it to the Server","captioned":"Captioned image","captionPlaceholder":"Caption","infoTab":"Image Info","lockRatio":"Lock Ratio","menu":"Image Properties","pathName":"image","pathNameCaption":"caption","resetSize":"Reset Size","resizer":"Click and drag to resize","title":"Image Properties","uploadTab":"Upload","urlMissing":"Image source URL is missing.","altMissing":"Alternative text is missing."},"horizontalrule":{"toolbar":"Insert Horizontal Line"},"format":{"label":"Format","panelTitle":"Paragraph Format","tag_address":"Address","tag_div":"Normal (DIV)","tag_h1":"Heading 1","tag_h2":"Heading 2","tag_h3":"Heading 3","tag_h4":"Heading 4","tag_h5":"Heading 5","tag_h6":"Heading 6","tag_p":"Normal","tag_pre":"Formatted"},"filetools":{"loadError":"Error occurred during file read.","networkError":"Network error occurred during file upload.","httpError404":"HTTP error occurred during file upload (404: File not found).","httpError403":"HTTP error occurred during file upload (403: Forbidden).","httpError":"HTTP error occurred during file upload (error status: %1).","noUrlError":"Upload URL is not defined.","responseError":"Incorrect server response."},"elementspath":{"eleLabel":"Elements path","eleTitle":"%1 element"},"contextmenu":{"options":"Context Menu Options"},"clipboard":{"copy":"Copy","copyError":"Your browser security settings don't permit the editor to automatically execute copying operations. Please use the keyboard for that (Ctrl/Cmd+C).","cut":"Cut","cutError":"Your browser security settings don't permit the editor to automatically execute cutting operations. Please use the keyboard for that (Ctrl/Cmd+X).","paste":"Paste","pasteNotification":"Press %1 to paste. Your browser doesn‘t support pasting with the toolbar button or context menu option.","pasteArea":"Paste Area","pasteMsg":"Paste your content inside the area below and press OK."},"blockquote":{"toolbar":"Block Quote"},"basicstyles":{"bold":"Bold","italic":"Italic","strike":"Strike Through","subscript":"Subscript","superscript":"Superscript","underline":"Underline"},"about":{"copy":"Copyright &copy; $1. All rights reserved.","dlgTitle":"About CKEditor 4","moreInfo":"For licensing information please visit our web site:"},"editor":"Rich Text Editor","editorPanel":"Rich Text Editor panel","common":{"editorHelp":"Press ALT 0 for help","browseServer":"Browse Server","url":"URL","protocol":"Protocol","upload":"Upload","uploadSubmit":"Send it to the Server","image":"Image","flash":"Flash","form":"Form","checkbox":"Checkbox","radio":"Radio Button","textField":"Text Field","textarea":"Textarea","hiddenField":"Hidden Field","button":"Button","select":"Selection Field","imageButton":"Image Button","notSet":"<not set>","id":"Id","name":"Name","langDir":"Language Direction","langDirLtr":"Left to Right (LTR)","langDirRtl":"Right to Left (RTL)","langCode":"Language Code","longDescr":"Long Description URL","cssClass":"Stylesheet Classes","advisoryTitle":"Advisory Title","cssStyle":"Style","ok":"OK","cancel":"Cancel","close":"Close","preview":"Preview","resize":"Resize","generalTab":"General","advancedTab":"Advanced","validateNumberFailed":"This value is not a number.","confirmNewPage":"Any unsaved changes to this content will be lost. Are you sure you want to load new page?","confirmCancel":"You have changed some options. Are you sure you want to close the dialog window?","options":"Options","target":"Target","targetNew":"New Window (_blank)","targetTop":"Topmost Window (_top)","targetSelf":"Same Window (_self)","targetParent":"Parent Window (_parent)","langDirLTR":"Left to Right (LTR)","langDirRTL":"Right to Left (RTL)","styles":"Style","cssClasses":"Stylesheet Classes","width":"Width","height":"Height","align":"Align","left":"Left","right":"Right","center":"Centre","justify":"Justify","alignLeft":"Align Left","alignRight":"Align Right","alignCenter":"Align Centre","alignTop":"Top","alignMiddle":"Middle","alignBottom":"Bottom","alignNone":"None","invalidValue":"Invalid value.","invalidHeight":"Height must be a number.","invalidWidth":"Width must be a number.","invalidLength":"Value specified for the \"%1\" field must be a positive number with or without a valid measurement unit (%2).","invalidCssLength":"Value specified for the \"%1\" field must be a positive number with or without a valid CSS measurement unit (px, %, in, cm, mm, em, ex, pt, or pc).","invalidHtmlLength":"Value specified for the \"%1\" field must be a positive number with or without a valid HTML measurement unit (px or %).","invalidInlineStyle":"Value specified for the inline style must consist of one or more tuples with the format of \"name : value\", separated by semi-colons.","cssLengthTooltip":"Enter a number for a value in pixels or a number with a valid CSS unit (px, %, in, cm, mm, em, ex, pt, or pc).","unavailable":"%1<span class=\"cke_accessibility\">, unavailable</span>","keyboard":{"8":"Backspace","13":"Enter","16":"Shift","17":"Ctrl","18":"Alt","32":"Space","35":"End","36":"Home","46":"Delete","112":"F1","113":"F2","114":"F3","115":"F4","116":"F5","117":"F6","118":"F7","119":"F8","120":"F9","121":"F10","122":"F11","123":"F12","124":"F13","125":"F14","126":"F15","127":"F16","128":"F17","129":"F18","130":"F19","131":"F20","132":"F21","133":"F22","134":"F23","135":"F24","224":"Command"},"keyboardShortcut":"Keyboard shortcut","optionDefault":"Default"}};
\ No newline at end of file
diff --git a/web/core/assets/vendor/ckeditor/lang/en-ca.js b/web/core/assets/vendor/ckeditor/lang/en-ca.js
index 5366d86bc2..5da3626d2a 100644
--- a/web/core/assets/vendor/ckeditor/lang/en-ca.js
+++ b/web/core/assets/vendor/ckeditor/lang/en-ca.js
@@ -1,5 +1,5 @@
 /*
-Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2020, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */
 CKEDITOR.lang['en-ca']={"widget":{"move":"Click and drag to move","label":"%1 widget"},"undo":{"redo":"Redo","undo":"Undo"},"toolbar":{"toolbarCollapse":"Collapse Toolbar","toolbarExpand":"Expand Toolbar","toolbarGroups":{"document":"Document","clipboard":"Clipboard/Undo","editing":"Editing","forms":"Forms","basicstyles":"Basic Styles","paragraph":"Paragraph","links":"Links","insert":"Insert","styles":"Styles","colors":"Colors","tools":"Tools"},"toolbars":"Editor toolbars"},"table":{"border":"Border size","caption":"Caption","cell":{"menu":"Cell","insertBefore":"Insert Cell Before","insertAfter":"Insert Cell After","deleteCell":"Delete Cells","merge":"Merge Cells","mergeRight":"Merge Right","mergeDown":"Merge Down","splitHorizontal":"Split Cell Horizontally","splitVertical":"Split Cell Vertically","title":"Cell Properties","cellType":"Cell Type","rowSpan":"Rows Span","colSpan":"Columns Span","wordWrap":"Word Wrap","hAlign":"Horizontal Alignment","vAlign":"Vertical Alignment","alignBaseline":"Baseline","bgColor":"Background Color","borderColor":"Border Color","data":"Data","header":"Header","yes":"Yes","no":"No","invalidWidth":"Cell width must be a number.","invalidHeight":"Cell height must be a number.","invalidRowSpan":"Rows span must be a whole number.","invalidColSpan":"Columns span must be a whole number.","chooseColor":"Choose"},"cellPad":"Cell padding","cellSpace":"Cell spacing","column":{"menu":"Column","insertBefore":"Insert Column Before","insertAfter":"Insert Column After","deleteColumn":"Delete Columns"},"columns":"Columns","deleteTable":"Delete Table","headers":"Headers","headersBoth":"Both","headersColumn":"First column","headersNone":"None","headersRow":"First Row","heightUnit":"height unit","invalidBorder":"Border size must be a number.","invalidCellPadding":"Cell padding must be a number.","invalidCellSpacing":"Cell spacing must be a number.","invalidCols":"Number of columns must be a number greater than 0.","invalidHeight":"Table height must be a number.","invalidRows":"Number of rows must be a number greater than 0.","invalidWidth":"Table width must be a number.","menu":"Table Properties","row":{"menu":"Row","insertBefore":"Insert Row Before","insertAfter":"Insert Row After","deleteRow":"Delete Rows"},"rows":"Rows","summary":"Summary","title":"Table Properties","toolbar":"Table","widthPc":"percent","widthPx":"pixels","widthUnit":"width unit"},"stylescombo":{"label":"Styles","panelTitle":"Formatting Styles","panelTitle1":"Block Styles","panelTitle2":"Inline Styles","panelTitle3":"Object Styles"},"specialchar":{"options":"Special Character Options","title":"Select Special Character","toolbar":"Insert Special Character"},"sourcedialog":{"toolbar":"Source","title":"Source"},"sourcearea":{"toolbar":"Source"},"showblocks":{"toolbar":"Show Blocks"},"removeformat":{"toolbar":"Remove Format"},"pastetext":{"button":"Paste as plain text","pasteNotification":"Press %1 to paste. Your browser doesn‘t support pasting with the toolbar button or context menu option.","title":"Paste as Plain Text"},"pastefromword":{"confirmCleanup":"The text you want to paste seems to be copied from Word. Do you want to clean it before pasting?","error":"It was not possible to clean up the pasted data due to an internal error","title":"Paste from Word","toolbar":"Paste from Word"},"notification":{"closed":"Notification closed."},"maximize":{"maximize":"Maximize","minimize":"Minimize"},"magicline":{"title":"Insert paragraph here"},"list":{"bulletedlist":"Insert/Remove Bulleted List","numberedlist":"Insert/Remove Numbered List"},"language":{"button":"Set language","remove":"Remove language"},"indent":{"indent":"Increase Indent","outdent":"Decrease Indent"},"image2":{"alt":"Alternative Text","btnUpload":"Send it to the Server","captioned":"Captioned image","captionPlaceholder":"Caption","infoTab":"Image Info","lockRatio":"Lock Ratio","menu":"Image Properties","pathName":"image","pathNameCaption":"caption","resetSize":"Reset Size","resizer":"Click and drag to resize","title":"Image Properties","uploadTab":"Upload","urlMissing":"Image source URL is missing.","altMissing":"Alternative text is missing."},"horizontalrule":{"toolbar":"Insert Horizontal Line"},"format":{"label":"Format","panelTitle":"Paragraph Format","tag_address":"Address","tag_div":"Normal (DIV)","tag_h1":"Heading 1","tag_h2":"Heading 2","tag_h3":"Heading 3","tag_h4":"Heading 4","tag_h5":"Heading 5","tag_h6":"Heading 6","tag_p":"Normal","tag_pre":"Formatted"},"filetools":{"loadError":"Error occurred during file read.","networkError":"Network error occurred during file upload.","httpError404":"HTTP error occurred during file upload (404: File not found).","httpError403":"HTTP error occurred during file upload (403: Forbidden).","httpError":"HTTP error occurred during file upload (error status: %1).","noUrlError":"Upload URL is not defined.","responseError":"Incorrect server response."},"elementspath":{"eleLabel":"Elements path","eleTitle":"%1 element"},"contextmenu":{"options":"Context Menu Options"},"clipboard":{"copy":"Copy","copyError":"Your browser security settings don't permit the editor to automatically execute copying operations. Please use the keyboard for that (Ctrl/Cmd+C).","cut":"Cut","cutError":"Your browser security settings don't permit the editor to automatically execute cutting operations. Please use the keyboard for that (Ctrl/Cmd+X).","paste":"Paste","pasteNotification":"Press %1 to paste. Your browser doesn‘t support pasting with the toolbar button or context menu option.","pasteArea":"Paste Area","pasteMsg":"Paste your content inside the area below and press OK."},"blockquote":{"toolbar":"Block Quote"},"basicstyles":{"bold":"Bold","italic":"Italic","strike":"Strike Through","subscript":"Subscript","superscript":"Superscript","underline":"Underline"},"about":{"copy":"Copyright &copy; $1. All rights reserved.","dlgTitle":"About CKEditor 4","moreInfo":"For licensing information please visit our web site:"},"editor":"Rich Text Editor","editorPanel":"Rich Text Editor panel","common":{"editorHelp":"Press ALT 0 for help","browseServer":"Browse Server","url":"URL","protocol":"Protocol","upload":"Upload","uploadSubmit":"Send it to the Server","image":"Image","flash":"Flash","form":"Form","checkbox":"Checkbox","radio":"Radio Button","textField":"Text Field","textarea":"Textarea","hiddenField":"Hidden Field","button":"Button","select":"Selection Field","imageButton":"Image Button","notSet":"<not set>","id":"Id","name":"Name","langDir":"Language Direction","langDirLtr":"Left to Right (LTR)","langDirRtl":"Right to Left (RTL)","langCode":"Language Code","longDescr":"Long Description URL","cssClass":"Stylesheet Classes","advisoryTitle":"Advisory Title","cssStyle":"Style","ok":"OK","cancel":"Cancel","close":"Close","preview":"Preview","resize":"Resize","generalTab":"General","advancedTab":"Advanced","validateNumberFailed":"This value is not a number.","confirmNewPage":"Any unsaved changes to this content will be lost. Are you sure you want to load new page?","confirmCancel":"You have changed some options. Are you sure you want to close the dialog window?","options":"Options","target":"Target","targetNew":"New Window (_blank)","targetTop":"Topmost Window (_top)","targetSelf":"Same Window (_self)","targetParent":"Parent Window (_parent)","langDirLTR":"Left to Right (LTR)","langDirRTL":"Right to Left (RTL)","styles":"Style","cssClasses":"Stylesheet Classes","width":"Width","height":"Height","align":"Align","left":"Left","right":"Right","center":"Centre","justify":"Justify","alignLeft":"Align Left","alignRight":"Align Right","alignCenter":"Align Center","alignTop":"Top","alignMiddle":"Middle","alignBottom":"Bottom","alignNone":"None","invalidValue":"Invalid value.","invalidHeight":"Height must be a number.","invalidWidth":"Width must be a number.","invalidLength":"Value specified for the \"%1\" field must be a positive number with or without a valid measurement unit (%2).","invalidCssLength":"Value specified for the \"%1\" field must be a positive number with or without a valid CSS measurement unit (px, %, in, cm, mm, em, ex, pt, or pc).","invalidHtmlLength":"Value specified for the \"%1\" field must be a positive number with or without a valid HTML measurement unit (px or %).","invalidInlineStyle":"Value specified for the inline style must consist of one or more tuples with the format of \"name : value\", separated by semi-colons.","cssLengthTooltip":"Enter a number for a value in pixels or a number with a valid CSS unit (px, %, in, cm, mm, em, ex, pt, or pc).","unavailable":"%1<span class=\"cke_accessibility\">, unavailable</span>","keyboard":{"8":"Backspace","13":"Enter","16":"Shift","17":"Ctrl","18":"Alt","32":"Space","35":"End","36":"Home","46":"Delete","112":"F1","113":"F2","114":"F3","115":"F4","116":"F5","117":"F6","118":"F7","119":"F8","120":"F9","121":"F10","122":"F11","123":"F12","124":"F13","125":"F14","126":"F15","127":"F16","128":"F17","129":"F18","130":"F19","131":"F20","132":"F21","133":"F22","134":"F23","135":"F24","224":"Command"},"keyboardShortcut":"Keyboard shortcut","optionDefault":"Default"}};
\ No newline at end of file
diff --git a/web/core/assets/vendor/ckeditor/lang/en-gb.js b/web/core/assets/vendor/ckeditor/lang/en-gb.js
index 5d4716f0f3..bbd040e247 100644
--- a/web/core/assets/vendor/ckeditor/lang/en-gb.js
+++ b/web/core/assets/vendor/ckeditor/lang/en-gb.js
@@ -1,5 +1,5 @@
 /*
-Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2020, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */
 CKEDITOR.lang['en-gb']={"widget":{"move":"Click and drag to move","label":"%1 widget"},"undo":{"redo":"Redo","undo":"Undo"},"toolbar":{"toolbarCollapse":"Collapse Toolbar","toolbarExpand":"Expand Toolbar","toolbarGroups":{"document":"Document","clipboard":"Clipboard/Undo","editing":"Editing","forms":"Forms","basicstyles":"Basic Styles","paragraph":"Paragraph","links":"Links","insert":"Insert","styles":"Styles","colors":"Colors","tools":"Tools"},"toolbars":"Editor toolbars"},"table":{"border":"Border size","caption":"Caption","cell":{"menu":"Cell","insertBefore":"Insert Cell Before","insertAfter":"Insert Cell After","deleteCell":"Delete Cells","merge":"Merge Cells","mergeRight":"Merge Right","mergeDown":"Merge Down","splitHorizontal":"Split Cell Horizontally","splitVertical":"Split Cell Vertically","title":"Cell Properties","cellType":"Cell Type","rowSpan":"Rows Span","colSpan":"Columns Span","wordWrap":"Word Wrap","hAlign":"Horizontal Alignment","vAlign":"Vertical Alignment","alignBaseline":"Baseline","bgColor":"Background Color","borderColor":"Border Color","data":"Data","header":"Header","yes":"Yes","no":"No","invalidWidth":"Cell width must be a number.","invalidHeight":"Cell height must be a number.","invalidRowSpan":"Rows span must be a whole number.","invalidColSpan":"Columns span must be a whole number.","chooseColor":"Choose"},"cellPad":"Cell padding","cellSpace":"Cell spacing","column":{"menu":"Column","insertBefore":"Insert Column Before","insertAfter":"Insert Column After","deleteColumn":"Delete Columns"},"columns":"Columns","deleteTable":"Delete Table","headers":"Headers","headersBoth":"Both","headersColumn":"First column","headersNone":"None","headersRow":"First Row","heightUnit":"height unit","invalidBorder":"Border size must be a number.","invalidCellPadding":"Cell padding must be a number.","invalidCellSpacing":"Cell spacing must be a number.","invalidCols":"Number of columns must be a number greater than 0.","invalidHeight":"Table height must be a number.","invalidRows":"Number of rows must be a number greater than 0.","invalidWidth":"Table width must be a number.","menu":"Table Properties","row":{"menu":"Row","insertBefore":"Insert Row Before","insertAfter":"Insert Row After","deleteRow":"Delete Rows"},"rows":"Rows","summary":"Summary","title":"Table Properties","toolbar":"Table","widthPc":"percent","widthPx":"pixels","widthUnit":"width unit"},"stylescombo":{"label":"Styles","panelTitle":"Formatting Styles","panelTitle1":"Block Styles","panelTitle2":"Inline Styles","panelTitle3":"Object Styles"},"specialchar":{"options":"Special Character Options","title":"Select Special Character","toolbar":"Insert Special Character"},"sourcedialog":{"toolbar":"Source","title":"Source"},"sourcearea":{"toolbar":"Source"},"showblocks":{"toolbar":"Show Blocks"},"removeformat":{"toolbar":"Remove Format"},"pastetext":{"button":"Paste as plain text","pasteNotification":"Press %1 to paste. Your browser doesn‘t support pasting with the toolbar button or context menu option.","title":"Paste as Plain Text"},"pastefromword":{"confirmCleanup":"The text you want to paste seems to be copied from Word. Do you want to clean it before pasting?","error":"It was not possible to clean up the pasted data due to an internal error","title":"Paste from Word","toolbar":"Paste from Word"},"notification":{"closed":"Notification closed."},"maximize":{"maximize":"Maximise","minimize":"Minimise"},"magicline":{"title":"Insert paragraph here"},"list":{"bulletedlist":"Insert/Remove Bulleted List","numberedlist":"Insert/Remove Numbered List"},"language":{"button":"Set language","remove":"Remove language"},"indent":{"indent":"Increase Indent","outdent":"Decrease Indent"},"image2":{"alt":"Alternative Text","btnUpload":"Send it to the Server","captioned":"Captioned image","captionPlaceholder":"Caption","infoTab":"Image Info","lockRatio":"Lock Ratio","menu":"Image Properties","pathName":"image","pathNameCaption":"caption","resetSize":"Reset Size","resizer":"Click and drag to resize","title":"Image Properties","uploadTab":"Upload","urlMissing":"Image source URL is missing.","altMissing":"Alternative text is missing."},"horizontalrule":{"toolbar":"Insert Horizontal Line"},"format":{"label":"Format","panelTitle":"Paragraph Format","tag_address":"Address","tag_div":"Normal (DIV)","tag_h1":"Heading 1","tag_h2":"Heading 2","tag_h3":"Heading 3","tag_h4":"Heading 4","tag_h5":"Heading 5","tag_h6":"Heading 6","tag_p":"Normal","tag_pre":"Formatted"},"filetools":{"loadError":"Error occurred during file read.","networkError":"Network error occurred during file upload.","httpError404":"HTTP error occurred during file upload (404: File not found).","httpError403":"HTTP error occurred during file upload (403: Forbidden).","httpError":"HTTP error occurred during file upload (error status: %1).","noUrlError":"Upload URL is not defined.","responseError":"Incorrect server response."},"elementspath":{"eleLabel":"Elements path","eleTitle":"%1 element"},"contextmenu":{"options":"Context Menu Options"},"clipboard":{"copy":"Copy","copyError":"Your browser security settings don't permit the editor to automatically execute copying operations. Please use the keyboard for that (Ctrl/Cmd+C).","cut":"Cut","cutError":"Your browser security settings don't permit the editor to automatically execute cutting operations. Please use the keyboard for that (Ctrl/Cmd+X).","paste":"Paste","pasteNotification":"Press %1 to paste. Your browser doesn‘t support pasting with the toolbar button or context menu option.","pasteArea":"Paste Area","pasteMsg":"Paste your content inside the area below and press OK."},"blockquote":{"toolbar":"Block Quote"},"basicstyles":{"bold":"Bold","italic":"Italic","strike":"Strike Through","subscript":"Subscript","superscript":"Superscript","underline":"Underline"},"about":{"copy":"Copyright &copy; $1. All rights reserved.","dlgTitle":"About CKEditor 4","moreInfo":"For licensing information please visit our web site:"},"editor":"Rich Text Editor","editorPanel":"Rich Text Editor panel","common":{"editorHelp":"Press ALT 0 for help","browseServer":"Browse Server","url":"URL","protocol":"Protocol","upload":"Upload","uploadSubmit":"Send it to the Server","image":"Image","flash":"Flash","form":"Form","checkbox":"Checkbox","radio":"Radio Button","textField":"Text Field","textarea":"Textarea","hiddenField":"Hidden Field","button":"Button","select":"Selection Field","imageButton":"Image Button","notSet":"<not set>","id":"Id","name":"Name","langDir":"Language Direction","langDirLtr":"Left to Right (LTR)","langDirRtl":"Right to Left (RTL)","langCode":"Language Code","longDescr":"Long Description URL","cssClass":"Stylesheet Classes","advisoryTitle":"Advisory Title","cssStyle":"Style","ok":"OK","cancel":"Cancel","close":"Close","preview":"Preview","resize":"Drag to resize","generalTab":"General","advancedTab":"Advanced","validateNumberFailed":"This value is not a number.","confirmNewPage":"Any unsaved changes to this content will be lost. Are you sure you want to load new page?","confirmCancel":"You have changed some options. Are you sure you want to close the dialogue window?","options":"Options","target":"Target","targetNew":"New Window (_blank)","targetTop":"Topmost Window (_top)","targetSelf":"Same Window (_self)","targetParent":"Parent Window (_parent)","langDirLTR":"Left to Right (LTR)","langDirRTL":"Right to Left (RTL)","styles":"Style","cssClasses":"Stylesheet Classes","width":"Width","height":"Height","align":"Align","left":"Left","right":"Right","center":"Center","justify":"Justify","alignLeft":"Align Left","alignRight":"Align Right","alignCenter":"Align Center","alignTop":"Top","alignMiddle":"Middle","alignBottom":"Bottom","alignNone":"None","invalidValue":"Invalid value.","invalidHeight":"Height must be a number.","invalidWidth":"Width must be a number.","invalidLength":"Value specified for the \"%1\" field must be a positive number with or without a valid measurement unit (%2).","invalidCssLength":"Value specified for the \"%1\" field must be a positive number with or without a valid CSS measurement unit (px, %, in, cm, mm, em, ex, pt, or pc).","invalidHtmlLength":"Value specified for the \"%1\" field must be a positive number with or without a valid HTML measurement unit (px or %).","invalidInlineStyle":"Value specified for the inline style must consist of one or more tuples with the format of \"name : value\", separated by semi-colons.","cssLengthTooltip":"Enter a number for a value in pixels or a number with a valid CSS unit (px, %, in, cm, mm, em, ex, pt, or pc).","unavailable":"%1<span class=\"cke_accessibility\">, unavailable</span>","keyboard":{"8":"Backspace","13":"Enter","16":"Shift","17":"Ctrl","18":"Alt","32":"Space","35":"End","36":"Home","46":"Delete","112":"F1","113":"F2","114":"F3","115":"F4","116":"F5","117":"F6","118":"F7","119":"F8","120":"F9","121":"F10","122":"F11","123":"F12","124":"F13","125":"F14","126":"F15","127":"F16","128":"F17","129":"F18","130":"F19","131":"F20","132":"F21","133":"F22","134":"F23","135":"F24","224":"Command"},"keyboardShortcut":"Keyboard shortcut","optionDefault":"Default"}};
\ No newline at end of file
diff --git a/web/core/assets/vendor/ckeditor/lang/en.js b/web/core/assets/vendor/ckeditor/lang/en.js
index 4acda9a84d..c84b8af00f 100644
--- a/web/core/assets/vendor/ckeditor/lang/en.js
+++ b/web/core/assets/vendor/ckeditor/lang/en.js
@@ -1,5 +1,5 @@
 /*
-Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2020, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */
 CKEDITOR.lang['en']={"widget":{"move":"Click and drag to move","label":"%1 widget"},"undo":{"redo":"Redo","undo":"Undo"},"toolbar":{"toolbarCollapse":"Collapse Toolbar","toolbarExpand":"Expand Toolbar","toolbarGroups":{"document":"Document","clipboard":"Clipboard/Undo","editing":"Editing","forms":"Forms","basicstyles":"Basic Styles","paragraph":"Paragraph","links":"Links","insert":"Insert","styles":"Styles","colors":"Colors","tools":"Tools"},"toolbars":"Editor toolbars"},"table":{"border":"Border size","caption":"Caption","cell":{"menu":"Cell","insertBefore":"Insert Cell Before","insertAfter":"Insert Cell After","deleteCell":"Delete Cells","merge":"Merge Cells","mergeRight":"Merge Right","mergeDown":"Merge Down","splitHorizontal":"Split Cell Horizontally","splitVertical":"Split Cell Vertically","title":"Cell Properties","cellType":"Cell Type","rowSpan":"Rows Span","colSpan":"Columns Span","wordWrap":"Word Wrap","hAlign":"Horizontal Alignment","vAlign":"Vertical Alignment","alignBaseline":"Baseline","bgColor":"Background Color","borderColor":"Border Color","data":"Data","header":"Header","yes":"Yes","no":"No","invalidWidth":"Cell width must be a number.","invalidHeight":"Cell height must be a number.","invalidRowSpan":"Rows span must be a whole number.","invalidColSpan":"Columns span must be a whole number.","chooseColor":"Choose"},"cellPad":"Cell padding","cellSpace":"Cell spacing","column":{"menu":"Column","insertBefore":"Insert Column Before","insertAfter":"Insert Column After","deleteColumn":"Delete Columns"},"columns":"Columns","deleteTable":"Delete Table","headers":"Headers","headersBoth":"Both","headersColumn":"First column","headersNone":"None","headersRow":"First Row","heightUnit":"height unit","invalidBorder":"Border size must be a number.","invalidCellPadding":"Cell padding must be a positive number.","invalidCellSpacing":"Cell spacing must be a positive number.","invalidCols":"Number of columns must be a number greater than 0.","invalidHeight":"Table height must be a number.","invalidRows":"Number of rows must be a number greater than 0.","invalidWidth":"Table width must be a number.","menu":"Table Properties","row":{"menu":"Row","insertBefore":"Insert Row Before","insertAfter":"Insert Row After","deleteRow":"Delete Rows"},"rows":"Rows","summary":"Summary","title":"Table Properties","toolbar":"Table","widthPc":"percent","widthPx":"pixels","widthUnit":"width unit"},"stylescombo":{"label":"Styles","panelTitle":"Formatting Styles","panelTitle1":"Block Styles","panelTitle2":"Inline Styles","panelTitle3":"Object Styles"},"specialchar":{"options":"Special Character Options","title":"Select Special Character","toolbar":"Insert Special Character"},"sourcedialog":{"toolbar":"Source","title":"Source"},"sourcearea":{"toolbar":"Source"},"showblocks":{"toolbar":"Show Blocks"},"removeformat":{"toolbar":"Remove Format"},"pastetext":{"button":"Paste as plain text","pasteNotification":"Press %1 to paste. Your browser doesn‘t support pasting with the toolbar button or context menu option.","title":"Paste as Plain Text"},"pastefromword":{"confirmCleanup":"The text you want to paste seems to be copied from Word. Do you want to clean it before pasting?","error":"It was not possible to clean up the pasted data due to an internal error","title":"Paste from Word","toolbar":"Paste from Word"},"notification":{"closed":"Notification closed."},"maximize":{"maximize":"Maximize","minimize":"Minimize"},"magicline":{"title":"Insert paragraph here"},"list":{"bulletedlist":"Insert/Remove Bulleted List","numberedlist":"Insert/Remove Numbered List"},"language":{"button":"Set language","remove":"Remove language"},"indent":{"indent":"Increase Indent","outdent":"Decrease Indent"},"image2":{"alt":"Alternative Text","btnUpload":"Send it to the Server","captioned":"Captioned image","captionPlaceholder":"Caption","infoTab":"Image Info","lockRatio":"Lock Ratio","menu":"Image Properties","pathName":"image","pathNameCaption":"caption","resetSize":"Reset Size","resizer":"Click and drag to resize","title":"Image Properties","uploadTab":"Upload","urlMissing":"Image source URL is missing.","altMissing":"Alternative text is missing."},"horizontalrule":{"toolbar":"Insert Horizontal Line"},"format":{"label":"Format","panelTitle":"Paragraph Format","tag_address":"Address","tag_div":"Normal (DIV)","tag_h1":"Heading 1","tag_h2":"Heading 2","tag_h3":"Heading 3","tag_h4":"Heading 4","tag_h5":"Heading 5","tag_h6":"Heading 6","tag_p":"Normal","tag_pre":"Formatted"},"filetools":{"loadError":"Error occurred during file read.","networkError":"Network error occurred during file upload.","httpError404":"HTTP error occurred during file upload (404: File not found).","httpError403":"HTTP error occurred during file upload (403: Forbidden).","httpError":"HTTP error occurred during file upload (error status: %1).","noUrlError":"Upload URL is not defined.","responseError":"Incorrect server response."},"elementspath":{"eleLabel":"Elements path","eleTitle":"%1 element"},"contextmenu":{"options":"Context Menu Options"},"clipboard":{"copy":"Copy","copyError":"Your browser security settings don't permit the editor to automatically execute copying operations. Please use the keyboard for that (Ctrl/Cmd+C).","cut":"Cut","cutError":"Your browser security settings don't permit the editor to automatically execute cutting operations. Please use the keyboard for that (Ctrl/Cmd+X).","paste":"Paste","pasteNotification":"Press %1 to paste. Your browser doesn‘t support pasting with the toolbar button or context menu option.","pasteArea":"Paste Area","pasteMsg":"Paste your content inside the area below and press OK."},"blockquote":{"toolbar":"Block Quote"},"basicstyles":{"bold":"Bold","italic":"Italic","strike":"Strikethrough","subscript":"Subscript","superscript":"Superscript","underline":"Underline"},"about":{"copy":"Copyright &copy; $1. All rights reserved.","dlgTitle":"About CKEditor 4","moreInfo":"For licensing information please visit our web site:"},"editor":"Rich Text Editor","editorPanel":"Rich Text Editor panel","common":{"editorHelp":"Press ALT 0 for help","browseServer":"Browse Server","url":"URL","protocol":"Protocol","upload":"Upload","uploadSubmit":"Send it to the Server","image":"Image","flash":"Flash","form":"Form","checkbox":"Checkbox","radio":"Radio Button","textField":"Text Field","textarea":"Textarea","hiddenField":"Hidden Field","button":"Button","select":"Selection Field","imageButton":"Image Button","notSet":"<not set>","id":"Id","name":"Name","langDir":"Language Direction","langDirLtr":"Left to Right (LTR)","langDirRtl":"Right to Left (RTL)","langCode":"Language Code","longDescr":"Long Description URL","cssClass":"Stylesheet Classes","advisoryTitle":"Advisory Title","cssStyle":"Style","ok":"OK","cancel":"Cancel","close":"Close","preview":"Preview","resize":"Resize","generalTab":"General","advancedTab":"Advanced","validateNumberFailed":"This value is not a number.","confirmNewPage":"Any unsaved changes to this content will be lost. Are you sure you want to load new page?","confirmCancel":"You have changed some options. Are you sure you want to close the dialog window?","options":"Options","target":"Target","targetNew":"New Window (_blank)","targetTop":"Topmost Window (_top)","targetSelf":"Same Window (_self)","targetParent":"Parent Window (_parent)","langDirLTR":"Left to Right (LTR)","langDirRTL":"Right to Left (RTL)","styles":"Style","cssClasses":"Stylesheet Classes","width":"Width","height":"Height","align":"Alignment","left":"Left","right":"Right","center":"Center","justify":"Justify","alignLeft":"Align Left","alignRight":"Align Right","alignCenter":"Align Center","alignTop":"Top","alignMiddle":"Middle","alignBottom":"Bottom","alignNone":"None","invalidValue":"Invalid value.","invalidHeight":"Height must be a number.","invalidWidth":"Width must be a number.","invalidLength":"Value specified for the \"%1\" field must be a positive number with or without a valid measurement unit (%2).","invalidCssLength":"Value specified for the \"%1\" field must be a positive number with or without a valid CSS measurement unit (px, %, in, cm, mm, em, ex, pt, or pc).","invalidHtmlLength":"Value specified for the \"%1\" field must be a positive number with or without a valid HTML measurement unit (px or %).","invalidInlineStyle":"Value specified for the inline style must consist of one or more tuples with the format of \"name : value\", separated by semi-colons.","cssLengthTooltip":"Enter a number for a value in pixels or a number with a valid CSS unit (px, %, in, cm, mm, em, ex, pt, or pc).","unavailable":"%1<span class=\"cke_accessibility\">, unavailable</span>","keyboard":{"8":"Backspace","13":"Enter","16":"Shift","17":"Ctrl","18":"Alt","32":"Space","35":"End","36":"Home","46":"Delete","112":"F1","113":"F2","114":"F3","115":"F4","116":"F5","117":"F6","118":"F7","119":"F8","120":"F9","121":"F10","122":"F11","123":"F12","124":"F13","125":"F14","126":"F15","127":"F16","128":"F17","129":"F18","130":"F19","131":"F20","132":"F21","133":"F22","134":"F23","135":"F24","224":"Command"},"keyboardShortcut":"Keyboard shortcut","optionDefault":"Default"}};
\ No newline at end of file
diff --git a/web/core/assets/vendor/ckeditor/lang/eo.js b/web/core/assets/vendor/ckeditor/lang/eo.js
index e2e64a495b..3df2eb8169 100644
--- a/web/core/assets/vendor/ckeditor/lang/eo.js
+++ b/web/core/assets/vendor/ckeditor/lang/eo.js
@@ -1,5 +1,5 @@
 /*
-Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2020, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */
 CKEDITOR.lang['eo']={"widget":{"move":"klaki kaj treni por movi","label":"%1 fenestraĵo"},"undo":{"redo":"Refari","undo":"Malfari"},"toolbar":{"toolbarCollapse":"Faldi la ilbreton","toolbarExpand":"Malfaldi la ilbreton","toolbarGroups":{"document":"Dokumento","clipboard":"Poŝo/Malfari","editing":"Redaktado","forms":"Formularoj","basicstyles":"Bazaj stiloj","paragraph":"Paragrafo","links":"Ligiloj","insert":"Enmeti","styles":"Stiloj","colors":"Koloroj","tools":"Iloj"},"toolbars":"Ilobretoj de la redaktilo"},"table":{"border":"Bordero","caption":"Tabeltitolo","cell":{"menu":"Ĉelo","insertBefore":"Enmeti Ĉelon Antaŭ","insertAfter":"Enmeti Ĉelon Post","deleteCell":"Forigi la Ĉelojn","merge":"Kunfandi la Ĉelojn","mergeRight":"Kunfandi dekstren","mergeDown":"Kunfandi malsupren ","splitHorizontal":"Horizontale dividi","splitVertical":"Vertikale dividi","title":"Ĉelatributoj","cellType":"Ĉeltipo","rowSpan":"Kunfando de linioj","colSpan":"Kunfando de kolumnoj","wordWrap":"Cezuro","hAlign":"Horizontala ĝisrandigo","vAlign":"Vertikala ĝisrandigo","alignBaseline":"Malsupro de la teksto","bgColor":"Fonkoloro","borderColor":"Borderkoloro","data":"Datenoj","header":"Supra paĝotitolo","yes":"Jes","no":"No","invalidWidth":"Ĉellarĝo devas esti nombro.","invalidHeight":"Ĉelalto devas esti nombro.","invalidRowSpan":"Kunfando de linioj devas esti entjera nombro.","invalidColSpan":"Kunfando de kolumnoj devas esti entjera nombro.","chooseColor":"Elektu"},"cellPad":"Interna Marĝeno de la ĉeloj","cellSpace":"Spaco inter la Ĉeloj","column":{"menu":"Kolumno","insertBefore":"Enmeti kolumnon antaŭ","insertAfter":"Enmeti kolumnon post","deleteColumn":"Forigi Kolumnojn"},"columns":"Kolumnoj","deleteTable":"Forigi Tabelon","headers":"Supraj Paĝotitoloj","headersBoth":"Ambaŭ","headersColumn":"Unua kolumno","headersNone":"Neniu","headersRow":"Unua linio","heightUnit":"height unit","invalidBorder":"La bordergrando devas esti nombro.","invalidCellPadding":"La interna marĝeno en la ĉeloj devas esti pozitiva nombro.","invalidCellSpacing":"La spaco inter la ĉeloj devas esti pozitiva nombro.","invalidCols":"La nombro de la kolumnoj devas superi 0.","invalidHeight":"La tabelalto devas esti nombro.","invalidRows":"La nombro de la linioj devas superi 0.","invalidWidth":"La tabellarĝo devas esti nombro.","menu":"Atributoj de Tabelo","row":{"menu":"Linio","insertBefore":"Enmeti linion antaŭ","insertAfter":"Enmeti linion post","deleteRow":"Forigi Liniojn"},"rows":"Linioj","summary":"Resumo","title":"Atributoj de Tabelo","toolbar":"Tabelo","widthPc":"elcentoj","widthPx":"Rastrumeroj","widthUnit":"unuo de larĝo"},"stylescombo":{"label":"Stiloj","panelTitle":"Stiloj pri enpaĝigo","panelTitle1":"Stiloj de blokoj","panelTitle2":"Enliniaj Stiloj","panelTitle3":"Stiloj de objektoj"},"specialchar":{"options":"Opcioj pri Specialaj Signoj","title":"Selekti Specialan Signon","toolbar":"Enmeti Specialan Signon"},"sourcedialog":{"toolbar":"Fonto","title":"Fonto"},"sourcearea":{"toolbar":"Fonto"},"showblocks":{"toolbar":"Montri la blokojn"},"removeformat":{"toolbar":"Forigi Formaton"},"pastetext":{"button":"Interglui kiel platan tekston","pasteNotification":"Press %1 to paste. Your browser doesn‘t support pasting with the toolbar button or context menu option.","title":"Interglui kiel platan tekston"},"pastefromword":{"confirmCleanup":"La teksto, kiun vi volas interglui, ŝajnas esti kopiita el Word. Ĉu vi deziras purigi ĝin antaŭ intergluo?","error":"Ne eblis purigi la intergluitajn datenojn pro interna eraro","title":"Interglui el Word","toolbar":"Interglui el Word"},"notification":{"closed":"Sciigo fermita"},"maximize":{"maximize":"Pligrandigi","minimize":"Malgrandigi"},"magicline":{"title":"Enmeti paragrafon ĉi-tien"},"list":{"bulletedlist":"Bula Listo","numberedlist":"Numera Listo"},"language":{"button":"Instali lingvon","remove":"Forigi lingvon"},"indent":{"indent":"Pligrandigi Krommarĝenon","outdent":"Malpligrandigi Krommarĝenon"},"image2":{"alt":"Anstataŭiga Teksto","btnUpload":"Sendu al Servilo","captioned":"Bildo kun apudskribo","captionPlaceholder":"Apudskribo","infoTab":"Informoj pri Bildo","lockRatio":"Konservi Proporcion","menu":"Atributoj de Bildo","pathName":"bildo","pathNameCaption":"apudskribo","resetSize":"Origina Grando","resizer":"Kliki kaj treni por ŝanĝi la grandon","title":"Atributoj de Bildo","uploadTab":"Alŝuti","urlMissing":"La fontretadreso de la bildo mankas.","altMissing":"Alternativa teksto mankas."},"horizontalrule":{"toolbar":"Enmeti Horizontalan Linion"},"format":{"label":"Formato","panelTitle":"ParagrafFormato","tag_address":"Adreso","tag_div":"Normala (DIV)","tag_h1":"Titolo 1","tag_h2":"Titolo 2","tag_h3":"Titolo 3","tag_h4":"Titolo 4","tag_h5":"Titolo 5","tag_h6":"Titolo 6","tag_p":"Normala","tag_pre":"Formatita"},"filetools":{"loadError":"Eraro okazis dum la dosiera legado.","networkError":"Reta eraro okazis dum la dosiera alŝuto.","httpError404":"HTTP eraro okazis dum la dosiera alŝuto (404: dosiero ne trovita).","httpError403":"HTTP eraro okazis dum la dosiera alŝuto (403: malpermesita).","httpError":"HTTP eraro okazis dum la dosiera alŝuto (erara stato: %1).","noUrlError":"Alŝuta URL ne estas difinita.","responseError":"Malĝusta respondo de la servilo."},"elementspath":{"eleLabel":"Vojo al Elementoj","eleTitle":"%1 elementoj"},"contextmenu":{"options":"Opcioj de Kunteksta Menuo"},"clipboard":{"copy":"Kopii","copyError":"La sekurecagordo de via TTT-legilo ne permesas, ke la redaktilo faras kopiajn operaciojn. Bonvolu uzi la klavaron por tio (Ctrl/Cmd-C).","cut":"Eltondi","cutError":"La sekurecagordo de via TTT-legilo ne permesas, ke la redaktilo faras eltondajn operaciojn. Bonvolu uzi la klavaron por tio (Ctrl/Cmd-X).","paste":"Interglui","pasteNotification":"Press %1 to paste. Your browser doesn‘t support pasting with the toolbar button or context menu option.","pasteArea":"Intergluoareo","pasteMsg":"Paste your content inside the area below and press OK."},"blockquote":{"toolbar":"Citaĵo"},"basicstyles":{"bold":"Grasa","italic":"Kursiva","strike":"Trastreko","subscript":"Suba indico","superscript":"Supra indico","underline":"Substreko"},"about":{"copy":"Copyright &copy; $1. Ĉiuj rajtoj rezervitaj.","dlgTitle":"Pri CKEditor 4","moreInfo":"Por informoj pri licenco, bonvolu viziti nian retpaĝaron:"},"editor":"RiĉTeksta Redaktilo","editorPanel":"Panelo de la RiĉTeksta Redaktilo","common":{"editorHelp":"Premu ALT 0 por helpilo","browseServer":"Foliumi en la Servilo","url":"URL","protocol":"Protokolo","upload":"Alŝuti","uploadSubmit":"Sendu al Servilo","image":"Bildo","flash":"Flaŝo","form":"Formularo","checkbox":"Markobutono","radio":"Radiobutono","textField":"Teksta kampo","textarea":"Teksta Areo","hiddenField":"Kaŝita Kampo","button":"Butono","select":"Elekta Kampo","imageButton":"Bildbutono","notSet":"<Defaŭlta>","id":"Id","name":"Nomo","langDir":"Skribdirekto","langDirLtr":"De maldekstro dekstren (LTR)","langDirRtl":"De dekstro maldekstren (RTL)","langCode":"Lingva Kodo","longDescr":"URL de Longa Priskribo","cssClass":"Klasoj de Stilfolioj","advisoryTitle":"Priskriba Titolo","cssStyle":"Stilo","ok":"Akcepti","cancel":"Rezigni","close":"Fermi","preview":"Vidigi Aspekton","resize":"Movigi por ŝanĝi la grandon","generalTab":"Ĝenerala","advancedTab":"Speciala","validateNumberFailed":"Tiu valoro ne estas nombro.","confirmNewPage":"La neregistritaj ŝanĝoj estas perdotaj. Ĉu vi certas, ke vi volas ŝargi novan paĝon?","confirmCancel":"Iuj opcioj esta ŝanĝitaj. Ĉu vi certas, ke vi volas fermi la dialogon?","options":"Opcioj","target":"Celo","targetNew":"Nova Fenestro (_blank)","targetTop":"Supra Fenestro (_top)","targetSelf":"Sama Fenestro (_self)","targetParent":"Patra Fenestro (_parent)","langDirLTR":"De maldekstro dekstren (LTR)","langDirRTL":"De dekstro maldekstren (RTL)","styles":"Stilo","cssClasses":"Stilfoliaj Klasoj","width":"Larĝo","height":"Alto","align":"Ĝisrandigo","left":"Maldekstre","right":"Dekstre","center":"Centre","justify":"Ĝisrandigi Ambaŭflanke","alignLeft":"Ĝisrandigi maldekstren","alignRight":"Ĝisrandigi dekstren","alignCenter":"Align Center","alignTop":"Supre","alignMiddle":"Centre","alignBottom":"Malsupre","alignNone":"Neniu","invalidValue":"Nevalida Valoro","invalidHeight":"Alto devas esti nombro.","invalidWidth":"Larĝo devas esti nombro.","invalidLength":"Value specified for the \"%1\" field must be a positive number with or without a valid measurement unit (%2).","invalidCssLength":"La valoro indikita por la \"%1\" kampo devas esti pozitiva nombro kun aŭ sen valida CSSmezurunuo (px, %, in, cm, mm, em, ex, pt, or pc).","invalidHtmlLength":"La valoro indikita por la \"%1\" kampo devas esti pozitiva nombro kun aŭ sen valida HTMLmezurunuo (px or %).","invalidInlineStyle":"La valoro indikita por la enlinia stilo devas konsisti el unu aŭ pluraj elementoj kun la formato de \"nomo : valoro\", apartigitaj per punktokomoj.","cssLengthTooltip":"Entajpu nombron por rastrumera valoro aŭ nombron kun valida CSSunuo (px, %, in, cm, mm, em, ex, pt, or pc).","unavailable":"%1<span class=\"cke_accessibility\">, nehavebla</span>","keyboard":{"8":"Retropaŝo","13":"Enigi","16":"Registrumo","17":"Stirklavo","18":"Alt-klavo","32":"Spaco","35":"Fino","36":"Hejmo","46":"Forigi","112":"F1","113":"F2","114":"F3","115":"F4","116":"F5","117":"F6","118":"F7","119":"F8","120":"F9","121":"F10","122":"F11","123":"F12","124":"F13","125":"F14","126":"F15","127":"F16","128":"F17","129":"F18","130":"F19","131":"F20","132":"F21","133":"F22","134":"F23","135":"F24","224":"Komando"},"keyboardShortcut":"Fulmoklavo","optionDefault":"Defaŭlta"}};
\ No newline at end of file
diff --git a/web/core/assets/vendor/ckeditor/lang/es-mx.js b/web/core/assets/vendor/ckeditor/lang/es-mx.js
index a5f08ffa4b..6ec08c866b 100644
--- a/web/core/assets/vendor/ckeditor/lang/es-mx.js
+++ b/web/core/assets/vendor/ckeditor/lang/es-mx.js
@@ -1,5 +1,5 @@
 /*
-Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2020, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */
 CKEDITOR.lang['es-mx']={"widget":{"move":"Presiona y arrastra para mover","label":"%1 widget"},"undo":{"redo":"Rehacer","undo":"Deshacer"},"toolbar":{"toolbarCollapse":"Colapsar barra de herramientas","toolbarExpand":"Expandir barra de herramientas","toolbarGroups":{"document":"Documento","clipboard":"Portapapeles/deshacer","editing":"Editando","forms":"Formularios","basicstyles":"Estilo básico","paragraph":"Párrafo","links":"Enlaces","insert":"Insertar","styles":"Estilos","colors":"Colores","tools":"Herramientas"},"toolbars":"Editor de barra de herramientas"},"table":{"border":"Tamaño del borde","caption":"Subtítulo","cell":{"menu":"Celda","insertBefore":"Insertar una celda antes","insertAfter":"Insertar una celda despues","deleteCell":"Borrar celdas","merge":"Unir celdas","mergeRight":"Unir a la derecha","mergeDown":"Unir abajo","splitHorizontal":"Dividir celda horizontalmente","splitVertical":"Dividir celda verticalmente","title":"Propiedades de la celda","cellType":"Tipo de celda","rowSpan":"Extensión de las filas","colSpan":"Extensión de las columnas","wordWrap":"Ajuste de línea","hAlign":"Alineación horizontal","vAlign":"Alineación vertical","alignBaseline":"Base","bgColor":"Color de fondo","borderColor":"Color de borde","data":"Datos","header":"Encabezado","yes":"Si","no":"No","invalidWidth":"El ancho de la celda debe ser un número entero.","invalidHeight":"El alto de la celda debe ser un número entero.","invalidRowSpan":"El intervalo de filas debe ser un número entero.","invalidColSpan":"El intervalo de columnas debe ser un número entero.","chooseColor":"Escoger"},"cellPad":"relleno de celda","cellSpace":"Espacio de celda","column":{"menu":"Columna","insertBefore":"Insertar columna antes","insertAfter":"Insertar columna después","deleteColumn":"Borrar columnas"},"columns":"Columnas","deleteTable":"Borrar tabla","headers":"Encabezados","headersBoth":"Ambos","headersColumn":"Primera columna","headersNone":"Ninguna","headersRow":"Primera fila","heightUnit":"height unit","invalidBorder":"El tamaño del borde debe ser un número entero.","invalidCellPadding":"El relleno de la celda debe ser un número positivo.","invalidCellSpacing":"El espacio de la celda debe ser un número positivo.","invalidCols":"El número de columnas debe ser un número mayo que 0.","invalidHeight":"La altura de la tabla debe ser un número.","invalidRows":"El número de filas debe ser mayor a 0.","invalidWidth":"El ancho de la tabla debe ser un número.","menu":"Propiedades de la tabla","row":{"menu":"Fila","insertBefore":"Inserta una fila antes","insertAfter":"Inserta una fila después","deleteRow":"Borrar filas"},"rows":"Filas","summary":"Resumen","title":"Propiedades de la tabla","toolbar":"Tabla","widthPc":"porcentaje","widthPx":"pixeles","widthUnit":"Unidad de ancho"},"stylescombo":{"label":"Estilos","panelTitle":"Estilos de formatos","panelTitle1":"Estilos de bloques","panelTitle2":"Estilos de líneas","panelTitle3":"Estilo de objetos"},"specialchar":{"options":"Opciones de carácteres especiales","title":"Seleccione un carácter especial","toolbar":"Inserta un carácter especial"},"sourcedialog":{"toolbar":"Fuente","title":"Fuente"},"sourcearea":{"toolbar":"Fuente"},"showblocks":{"toolbar":"Mostrar bloques"},"removeformat":{"toolbar":"Remover formato"},"pastetext":{"button":"Pegar como texto plano","pasteNotification":"Press %1 to paste. Your browser doesn‘t support pasting with the toolbar button or context menu option.","title":"Paste as Plain Text"},"pastefromword":{"confirmCleanup":"El texto que desea pegar parece estar copiado de Word. ¿Quieres limpiarlo antes de pegarlo?","error":"No fue posible limpiar los datos pegados debido a un error interno","title":"Pegar desde word","toolbar":"Pegar desde word"},"notification":{"closed":"Notificación cerrada."},"maximize":{"maximize":"Maximizar","minimize":"Minimizar"},"magicline":{"title":"Insertar un párrafo aquí"},"list":{"bulletedlist":"Insertar/Remover Lista con viñetas","numberedlist":"Insertar/Remover Lista numerada"},"language":{"button":"Establecer idioma","remove":"Remover idioma"},"indent":{"indent":"Incrementar sangría","outdent":"Decrementar sangría"},"image2":{"alt":"Texto alternativo","btnUpload":"Enviar al servidor","captioned":"Imagen subtitulada","captionPlaceholder":"Subtítulo","infoTab":"Información de la imagen","lockRatio":"Bloquear aspecto","menu":"Propiedades de la imagen","pathName":"imagen","pathNameCaption":"subtítulo","resetSize":"Reiniciar tamaño","resizer":"Presiona y arrastra para redimensionar","title":"Propiedades de imagen","uploadTab":"Cargar","urlMissing":"Falta la URL de origen de la imagen.","altMissing":"Falta texto alternativo."},"horizontalrule":{"toolbar":"Insertar una línea horizontal"},"format":{"label":"Formato","panelTitle":"Formato de párrafo","tag_address":"Dirección","tag_div":"Normal (DIV)","tag_h1":"Encabezado 1","tag_h2":"Encabezado 2","tag_h3":"Encabezado 3","tag_h4":"Encabezado 4","tag_h5":"Encabezado 5","tag_h6":"Encabezado 6","tag_p":"Normal","tag_pre":"Formateado"},"filetools":{"loadError":"Ha ocurrido un error al leer el archivo","networkError":"Ha ocurrido un error de red durante la carga del archivo.","httpError404":"Se ha producido un error HTTP durante la subida de archivos (404: archivo no encontrado).","httpError403":"Se ha producido un error HTTP durante la subida de archivos (403: Prohibido).","httpError":"Se ha producido un error HTTP durante la subida de archivos (error: %1).","noUrlError":"La URL de subida no está definida.","responseError":"Respuesta incorrecta del servidor."},"elementspath":{"eleLabel":"Ruta de los elementos","eleTitle":"%1 elemento"},"contextmenu":{"options":"Opciones del menú contextual"},"clipboard":{"copy":"Copiar","copyError":"La configuración de seguridad de su navegador no permite al editor ejecutar automáticamente operaciones de copiado. Por favor, utilice el teclado para (Ctrl/Cmd+C).","cut":"Cortar","cutError":"La configuración de seguridad de su navegador no permite al editor ejecutar automáticamente operaciones de corte. Por favor, utilice el teclado para (Ctrl/Cmd+X).","paste":"Pegar","pasteNotification":"Press %1 to paste. Your browser doesn‘t support pasting with the toolbar button or context menu option.","pasteArea":"Paste Area","pasteMsg":"Paste your content inside the area below and press OK."},"blockquote":{"toolbar":"Entrecomillado"},"basicstyles":{"bold":"Negrita","italic":"Cursiva","strike":"Tachado","subscript":"subíndice","superscript":"Sobrescrito","underline":"Subrayada"},"about":{"copy":"Derechos reservados &copy; $1. Todos los derechos reservados","dlgTitle":"Acerca de CKEditor 4","moreInfo":"Para información sobre la licencia por favor visita nuestro sitio web:"},"editor":"Editor de texto enriquecido","editorPanel":"Panel del editor de texto","common":{"editorHelp":"Presiona ALT + 0 para ayuda","browseServer":"Examinar servidor","url":"URL","protocol":"Protocolo","upload":"Subir","uploadSubmit":"Enviar al servidor","image":"Imagen","flash":"Flash","form":"Formulario","checkbox":"Casilla de verificación","radio":"Botón de opción","textField":"Campo de texto","textarea":"Área de texto","hiddenField":"Campo oculto","button":"Botón","select":"Campo de selección","imageButton":"Botón de imagen","notSet":"<not set>","id":"Id","name":"Nombre","langDir":"Dirección de idiomas","langDirLtr":"Izquierda a derecha (LTR)","langDirRtl":"Derecha a izquierda (RTL)","langCode":"Código de lenguaje","longDescr":"URL descripción larga","cssClass":"Clases de hoja de estilo","advisoryTitle":"Título del anuncio","cssStyle":"Estilo","ok":"OK","cancel":"Cancelar","close":"Cerrar","preview":"Vista previa","resize":"Redimensionar","generalTab":"General","advancedTab":"Avanzada","validateNumberFailed":"Este valor no es un número.","confirmNewPage":"Se perderán todos los cambios no guardados en este contenido. ¿Seguro que quieres cargar nueva página?","confirmCancel":"Ha cambiado algunas opciones. ¿Está seguro de que desea cerrar la ventana de diálogo?","options":"Opciones","target":"Objetivo","targetNew":"Nueva ventana (_blank)","targetTop":"Ventana superior (_top)","targetSelf":"Misma ventana (_self)","targetParent":"Ventana principal (_parent)","langDirLTR":"Izquierda a Derecha (LTR)","langDirRTL":"Derecha a Izquierda (RTL)","styles":"Estilo","cssClasses":"Clases de hojas de estilo","width":"Ancho","height":"Alto","align":"Alineación","left":"Izquierda","right":"Derecha","center":"Centrado","justify":"Justificado","alignLeft":"Alinear a la izquierda","alignRight":"Alinear a la derecha","alignCenter":"Align Center","alignTop":"Arriba","alignMiddle":"En medio","alignBottom":"Abajo","alignNone":"Ninguno","invalidValue":"Valor inválido","invalidHeight":"La altura debe ser un número.","invalidWidth":"La anchura debe ser un número.","invalidLength":"Value specified for the \"%1\" field must be a positive number with or without a valid measurement unit (%2).","invalidCssLength":"El valor especificado para el campo \"% 1\" debe ser un número positivo con o sin una unidad de medida CSS válida (px, %, in, cm, mm, em, ex, pt, or pc).","invalidHtmlLength":"El valor especificado para el campo \"% 1\" debe ser un número positivo con o sin una unidad de medición HTML válida (px or %).","invalidInlineStyle":"El valor especificado para el estilo en línea debe constar de una o más tuplas con el formato de \"nombre: valor\", separados por punto y coma","cssLengthTooltip":"Introduzca un número para un valor en píxeles o un número con una unidad CSS válida  (px, %, in, cm, mm, em, ex, pt, or pc).","unavailable":"%1<span class=\"cke_accessibility\">, no disponible</span>","keyboard":{"8":"Retroceso","13":"Intro","16":"Shift","17":"Ctrl","18":"Alt","32":"Espacio","35":"Fin","36":"Inicio","46":"Borrar","112":"F1","113":"F2","114":"F3","115":"F4","116":"F5","117":"F6","118":"F7","119":"F8","120":"F9","121":"F10","122":"F11","123":"F12","124":"F13","125":"F14","126":"F15","127":"F16","128":"F17","129":"F18","130":"F19","131":"F20","132":"F21","133":"F22","134":"F23","135":"F24","224":"Comando"},"keyboardShortcut":"Atajo de teclado","optionDefault":"Default"}};
\ No newline at end of file
diff --git a/web/core/assets/vendor/ckeditor/lang/es.js b/web/core/assets/vendor/ckeditor/lang/es.js
index 99af9a2c51..2081b1cee8 100644
--- a/web/core/assets/vendor/ckeditor/lang/es.js
+++ b/web/core/assets/vendor/ckeditor/lang/es.js
@@ -1,5 +1,5 @@
 /*
-Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2020, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */
 CKEDITOR.lang['es']={"widget":{"move":"Dar clic y arrastrar para mover","label":"reproductor %1"},"undo":{"redo":"Rehacer","undo":"Deshacer"},"toolbar":{"toolbarCollapse":"Contraer barra de herramientas","toolbarExpand":"Expandir barra de herramientas","toolbarGroups":{"document":"Documento","clipboard":"Portapapeles/Deshacer","editing":"Edición","forms":"Formularios","basicstyles":"Estilos básicos","paragraph":"Párrafo","links":"Enlaces","insert":"Insertar","styles":"Estilos","colors":"Colores","tools":"Herramientas"},"toolbars":"Barras de herramientas del editor"},"table":{"border":"Tamaño de Borde","caption":"Título","cell":{"menu":"Celda","insertBefore":"Insertar celda a la izquierda","insertAfter":"Insertar celda a la derecha","deleteCell":"Eliminar Celdas","merge":"Combinar Celdas","mergeRight":"Combinar a la derecha","mergeDown":"Combinar hacia abajo","splitHorizontal":"Dividir la celda horizontalmente","splitVertical":"Dividir la celda verticalmente","title":"Propiedades de celda","cellType":"Tipo de Celda","rowSpan":"Expandir filas","colSpan":"Expandir columnas","wordWrap":"Ajustar al contenido","hAlign":"Alineación Horizontal","vAlign":"Alineación Vertical","alignBaseline":"Linea de base","bgColor":"Color de fondo","borderColor":"Color de borde","data":"Datos","header":"Encabezado","yes":"Sí","no":"No","invalidWidth":"La anchura de celda debe ser un número.","invalidHeight":"La altura de celda debe ser un número.","invalidRowSpan":"La expansión de filas debe ser un número entero.","invalidColSpan":"La expansión de columnas debe ser un número entero.","chooseColor":"Elegir"},"cellPad":"Esp. interior","cellSpace":"Esp. e/celdas","column":{"menu":"Columna","insertBefore":"Insertar columna a la izquierda","insertAfter":"Insertar columna a la derecha","deleteColumn":"Eliminar Columnas"},"columns":"Columnas","deleteTable":"Eliminar Tabla","headers":"Encabezados","headersBoth":"Ambas","headersColumn":"Primera columna","headersNone":"Ninguno","headersRow":"Primera fila","heightUnit":"height unit","invalidBorder":"El tamaño del borde debe ser un número.","invalidCellPadding":"El espaciado interior debe ser un número.","invalidCellSpacing":"El espaciado entre celdas debe ser un número.","invalidCols":"El número de columnas debe ser un número mayor que 0.","invalidHeight":"La altura de tabla debe ser un número.","invalidRows":"El número de filas debe ser un número mayor que 0.","invalidWidth":"La anchura de tabla debe ser un número.","menu":"Propiedades de Tabla","row":{"menu":"Fila","insertBefore":"Insertar fila en la parte superior","insertAfter":"Insertar fila en la parte inferior","deleteRow":"Eliminar Filas"},"rows":"Filas","summary":"Síntesis","title":"Propiedades de Tabla","toolbar":"Tabla","widthPc":"porcentaje","widthPx":"pixeles","widthUnit":"unidad de la anchura"},"stylescombo":{"label":"Estilo","panelTitle":"Estilos para formatear","panelTitle1":"Estilos de párrafo","panelTitle2":"Estilos de carácter","panelTitle3":"Estilos de objeto"},"specialchar":{"options":"Opciones de caracteres especiales","title":"Seleccione un caracter especial","toolbar":"Insertar Caracter Especial"},"sourcedialog":{"toolbar":"Fuente HTML","title":"Fuente HTML"},"sourcearea":{"toolbar":"Fuente HTML"},"showblocks":{"toolbar":"Mostrar bloques"},"removeformat":{"toolbar":"Eliminar Formato"},"pastetext":{"button":"Pegar como Texto Plano","pasteNotification":"Press %1 to paste. Your browser doesn‘t support pasting with the toolbar button or context menu option.","title":"Pegar como Texto Plano"},"pastefromword":{"confirmCleanup":"El texto que desea parece provenir de Word.\r\n¿Desea depurarlo antes de pegarlo?","error":"No ha sido posible limpiar los datos debido a un error interno","title":"Pegar desde Word","toolbar":"Pegar desde Word"},"notification":{"closed":"Notificación cerrada."},"maximize":{"maximize":"Maximizar","minimize":"Minimizar"},"magicline":{"title":"Insertar párrafo aquí"},"list":{"bulletedlist":"Viñetas","numberedlist":"Numeración"},"language":{"button":"Fijar lenguaje","remove":"Quitar lenguaje"},"indent":{"indent":"Aumentar Sangría","outdent":"Disminuir Sangría"},"image2":{"alt":"Texto Alternativo","btnUpload":"Enviar al Servidor","captioned":"Imagen subtitulada","captionPlaceholder":"Leyenda","infoTab":"Información de Imagen","lockRatio":"Proporcional","menu":"Propiedades de Imagen","pathName":"image","pathNameCaption":"subtítulo","resetSize":"Tamaño Original","resizer":"Dar clic y arrastrar para cambiar tamaño","title":"Propiedades de Imagen","uploadTab":"Cargar","urlMissing":"Debe indicar la URL de la imagen.","altMissing":"Alternative text is missing."},"horizontalrule":{"toolbar":"Insertar Línea Horizontal"},"format":{"label":"Formato","panelTitle":"Formato","tag_address":"Dirección","tag_div":"Normal (DIV)","tag_h1":"Encabezado 1","tag_h2":"Encabezado 2","tag_h3":"Encabezado 3","tag_h4":"Encabezado 4","tag_h5":"Encabezado 5","tag_h6":"Encabezado 6","tag_p":"Normal","tag_pre":"Con formato"},"filetools":{"loadError":"Ha ocurrido un error durante la lectura del archivo.","networkError":"Error de red ocurrido durante carga de archivo.","httpError404":"Un error HTTP ha ocurrido durante la carga del archivo (404: Archivo no encontrado).","httpError403":"Un error HTTP ha ocurrido durante la carga del archivo (403: Prohibido).","httpError":"Error HTTP ocurrido durante la carga del archivo (Estado del error: %1).","noUrlError":"URL cargada no está definida.","responseError":"Respueta del servidor incorrecta."},"elementspath":{"eleLabel":"Ruta de los elementos","eleTitle":"%1 elemento"},"contextmenu":{"options":"Opciones del menú contextual"},"clipboard":{"copy":"Copiar","copyError":"La configuración de seguridad de este navegador no permite la ejecución automática de operaciones de copiado.\r\nPor favor use el teclado (Ctrl/Cmd+C).","cut":"Cortar","cutError":"La configuración de seguridad de este navegador no permite la ejecución automática de operaciones de cortado.\r\nPor favor use el teclado (Ctrl/Cmd+X).","paste":"Pegar","pasteNotification":"Press %1 to paste. Your browser doesn‘t support pasting with the toolbar button or context menu option.","pasteArea":"Zona de pegado","pasteMsg":"Paste your content inside the area below and press OK."},"blockquote":{"toolbar":"Cita"},"basicstyles":{"bold":"Negrita","italic":"Cursiva","strike":"Tachado","subscript":"Subíndice","superscript":"Superíndice","underline":"Subrayado"},"about":{"copy":"Copyright &copy; $1. Todos los derechos reservados.","dlgTitle":"Acerca de CKEditor 4","moreInfo":"Para información de licencia, por favor visite nuestro sitio web:"},"editor":"Editor de texto enriquecido","editorPanel":"Panel del Editor de Texto Enriquecido","common":{"editorHelp":"Pulse ALT 0 para ayuda","browseServer":"Ver Servidor","url":"URL","protocol":"Protocolo","upload":"Cargar","uploadSubmit":"Enviar al Servidor","image":"Imagen","flash":"Flash","form":"Formulario","checkbox":"Casilla de Verificación","radio":"Botones de Radio","textField":"Campo de Texto","textarea":"Area de Texto","hiddenField":"Campo Oculto","button":"Botón","select":"Campo de Selección","imageButton":"Botón Imagen","notSet":"<No definido>","id":"Id","name":"Nombre","langDir":"Orientación","langDirLtr":"Izquierda a Derecha (LTR)","langDirRtl":"Derecha a Izquierda (RTL)","langCode":"Cód. de idioma","longDescr":"Descripción larga URL","cssClass":"Clases de hojas de estilo","advisoryTitle":"Título","cssStyle":"Estilo","ok":"Aceptar","cancel":"Cancelar","close":"Cerrar","preview":"Previsualización","resize":"Arrastre para redimensionar","generalTab":"General","advancedTab":"Avanzado","validateNumberFailed":"El valor no es un número.","confirmNewPage":"Cualquier cambio que no se haya guardado se perderá.\r\n¿Está seguro de querer crear una nueva página?","confirmCancel":"Algunas de las opciones se han cambiado.\r\n¿Está seguro de querer cerrar el diálogo?","options":"Opciones","target":"Destino","targetNew":"Nueva ventana (_blank)","targetTop":"Ventana principal (_top)","targetSelf":"Misma ventana (_self)","targetParent":"Ventana padre (_parent)","langDirLTR":"Izquierda a derecha (LTR)","langDirRTL":"Derecha a izquierda (RTL)","styles":"Estilos","cssClasses":"Clase de la hoja de estilos","width":"Anchura","height":"Altura","align":"Alineación","left":"Izquierda","right":"Derecha","center":"Centrado","justify":"Justificado","alignLeft":"Alinear a Izquierda","alignRight":"Alinear a Derecha","alignCenter":"Align Center","alignTop":"Tope","alignMiddle":"Centro","alignBottom":"Pie","alignNone":"Ninguno","invalidValue":"Valor no válido","invalidHeight":"Altura debe ser un número.","invalidWidth":"Anchura debe ser un número.","invalidLength":"Value specified for the \"%1\" field must be a positive number with or without a valid measurement unit (%2).","invalidCssLength":"El valor especificado para el campo \"%1\" debe ser un número positivo, incluyendo optionalmente una unidad de medida CSS válida (px, %, in, cm, mm, em, ex, pt, o pc).","invalidHtmlLength":"El valor especificado para el campo \"%1\" debe ser un número positivo, incluyendo optionalmente una unidad de medida HTML válida (px o %).","invalidInlineStyle":"El valor especificado para el estilo debe consistir en uno o más pares con el formato \"nombre: valor\", separados por punto y coma.","cssLengthTooltip":"Introduca un número para el valor en pixels o un número con una unidad de medida CSS válida (px, %, in, cm, mm, em, ex, pt, o pc).","unavailable":"%1<span class=\"cke_accessibility\">, no disponible</span>","keyboard":{"8":"Retroceso","13":"Ingresar","16":"Mayús.","17":"Ctrl","18":"Alt","32":"Space","35":"Fin","36":"Inicio","46":"Suprimir","112":"F1","113":"F2","114":"F3","115":"F4","116":"F5","117":"F6","118":"F7","119":"F8","120":"F9","121":"F10","122":"F11","123":"F12","124":"F13","125":"F14","126":"F15","127":"F16","128":"F17","129":"F18","130":"F19","131":"F20","132":"F21","133":"F22","134":"F23","135":"F24","224":"Command"},"keyboardShortcut":"Keyboard shortcut","optionDefault":"Default"}};
\ No newline at end of file
diff --git a/web/core/assets/vendor/ckeditor/lang/et.js b/web/core/assets/vendor/ckeditor/lang/et.js
index c4c9fcd4a3..fd3b63f6ba 100644
--- a/web/core/assets/vendor/ckeditor/lang/et.js
+++ b/web/core/assets/vendor/ckeditor/lang/et.js
@@ -1,5 +1,5 @@
 /*
-Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2020, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */
 CKEDITOR.lang['et']={"widget":{"move":"Liigutamiseks klõpsa ja lohista","label":"%1 vidin"},"undo":{"redo":"Toimingu kordamine","undo":"Tagasivõtmine"},"toolbar":{"toolbarCollapse":"Tööriistariba peitmine","toolbarExpand":"Tööriistariba näitamine","toolbarGroups":{"document":"Dokument","clipboard":"Lõikelaud/tagasivõtmine","editing":"Muutmine","forms":"Vormid","basicstyles":"Põhistiilid","paragraph":"Lõik","links":"Lingid","insert":"Sisesta","styles":"Stiilid","colors":"Värvid","tools":"Tööriistad"},"toolbars":"Redaktori tööriistaribad"},"table":{"border":"Joone suurus","caption":"Tabeli tiitel","cell":{"menu":"Lahter","insertBefore":"Sisesta lahter enne","insertAfter":"Sisesta lahter peale","deleteCell":"Eemalda lahtrid","merge":"Ühenda lahtrid","mergeRight":"Ühenda paremale","mergeDown":"Ühenda alla","splitHorizontal":"Poolita lahter horisontaalselt","splitVertical":"Poolita lahter vertikaalselt","title":"Lahtri omadused","cellType":"Lahtri liik","rowSpan":"Ridade vahe","colSpan":"Tulpade vahe","wordWrap":"Sõnade murdmine","hAlign":"Horisontaalne joondus","vAlign":"Vertikaalne joondus","alignBaseline":"Baasjoon","bgColor":"Tausta värv","borderColor":"Äärise värv","data":"Andmed","header":"Päis","yes":"Jah","no":"Ei","invalidWidth":"Lahtri laius peab olema number.","invalidHeight":"Lahtri kõrgus peab olema number.","invalidRowSpan":"Ridade vahe peab olema täisarv.","invalidColSpan":"Tulpade vahe peab olema täisarv.","chooseColor":"Vali"},"cellPad":"Lahtri täidis","cellSpace":"Lahtri vahe","column":{"menu":"Veerg","insertBefore":"Sisesta veerg enne","insertAfter":"Sisesta veerg peale","deleteColumn":"Eemalda veerud"},"columns":"Veerud","deleteTable":"Kustuta tabel","headers":"Päised","headersBoth":"Mõlemad","headersColumn":"Esimene tulp","headersNone":"Puudub","headersRow":"Esimene rida","heightUnit":"height unit","invalidBorder":"Äärise suurus peab olema number.","invalidCellPadding":"Lahtrite polsterdus (padding) peab olema positiivne arv.","invalidCellSpacing":"Lahtrite vahe peab olema positiivne arv.","invalidCols":"Tulpade arv peab olema nullist suurem.","invalidHeight":"Tabeli kõrgus peab olema number.","invalidRows":"Ridade arv peab olema nullist suurem.","invalidWidth":"Tabeli laius peab olema number.","menu":"Tabeli omadused","row":{"menu":"Rida","insertBefore":"Sisesta rida enne","insertAfter":"Sisesta rida peale","deleteRow":"Eemalda read"},"rows":"Read","summary":"Kokkuvõte","title":"Tabeli omadused","toolbar":"Tabel","widthPc":"protsenti","widthPx":"pikslit","widthUnit":"laiuse ühik"},"stylescombo":{"label":"Stiil","panelTitle":"Vormindusstiilid","panelTitle1":"Blokkstiilid","panelTitle2":"Reasisesed stiilid","panelTitle3":"Objektistiilid"},"specialchar":{"options":"Erimärkide valikud","title":"Erimärgi valimine","toolbar":"Erimärgi sisestamine"},"sourcedialog":{"toolbar":"Lähtekood","title":"Lähtekood"},"sourcearea":{"toolbar":"Lähtekood"},"showblocks":{"toolbar":"Blokkide näitamine"},"removeformat":{"toolbar":"Vormingu eemaldamine"},"pastetext":{"button":"Asetamine tavalise tekstina","pasteNotification":"Asetamiseks vajuta %1. Sinu brauser ei toeta asetamist tööriistariba nupu või kontekstimenüü valikuga.","title":"Asetamine tavalise tekstina"},"pastefromword":{"confirmCleanup":"Tekst, mida tahad asetada näib pärinevat Wordist. Kas tahad selle enne asetamist puhastada?","error":"Asetatud andmete puhastamine ei olnud sisemise vea tõttu võimalik","title":"Asetamine Wordist","toolbar":"Asetamine Wordist"},"notification":{"closed":"Teavitused on suletud."},"maximize":{"maximize":"Maksimeerimine","minimize":"Minimeerimine"},"magicline":{"title":"Sisesta siia lõigu tekst"},"list":{"bulletedlist":"Punktloend","numberedlist":"Numberloend"},"language":{"button":"Määra keel","remove":"Eemalda keel"},"indent":{"indent":"Taande suurendamine","outdent":"Taande vähendamine"},"image2":{"alt":"Alternatiivne tekst","btnUpload":"Saada serverisse","captioned":"Pealkirjaga pilt","captionPlaceholder":"Pealkiri","infoTab":"Pildi info","lockRatio":"Lukusta kuvasuhe","menu":"Pildi omadused","pathName":"pilt","pathNameCaption":"pealkiri","resetSize":"Lähtesta suurus","resizer":"Suuruse muutmiseks klõpsa ja lohista","title":"Pildi omadused","uploadTab":"Lae üles","urlMissing":"Pildi lähte-URL on puudu.","altMissing":"Alternatiivtekst puudub."},"horizontalrule":{"toolbar":"Horisontaaljoone sisestamine"},"format":{"label":"Vorming","panelTitle":"Vorming","tag_address":"Aadress","tag_div":"Tavaline (DIV)","tag_h1":"Pealkiri 1","tag_h2":"Pealkiri 2","tag_h3":"Pealkiri 3","tag_h4":"Pealkiri 4","tag_h5":"Pealkiri 5","tag_h6":"Pealkiri 6","tag_p":"Tavaline","tag_pre":"Vormindatud"},"filetools":{"loadError":"Faili lugemisel esines viga.","networkError":"Faili üleslaadimisel esines võrgu viga.","httpError404":"Faili üleslaadimisel esines HTTP viga (404: faili ei leitud).","httpError403":"Faili üleslaadimisel esines HTTP viga (403: keelatud).","httpError":"Faili üleslaadimisel esines HTTP viga (veakood: %1).","noUrlError":"Üleslaadimise URL ei ole määratud.","responseError":"Vigane serveri vastus."},"elementspath":{"eleLabel":"Elementide asukoht","eleTitle":"%1 element"},"contextmenu":{"options":"Kontekstimenüü valikud"},"clipboard":{"copy":"Kopeeri","copyError":"Sinu veebisirvija turvaseaded ei luba redaktoril automaatselt kopeerida. Palun kasutage selleks klaviatuuri klahvikombinatsiooni (Ctrl/Cmd+C).","cut":"Lõika","cutError":"Sinu veebisirvija turvaseaded ei luba redaktoril automaatselt lõigata. Palun kasutage selleks klaviatuuri klahvikombinatsiooni (Ctrl/Cmd+X).","paste":"Aseta","pasteNotification":"Asetamiseks vajuta %1. Sinu brauser ei toeta asetamist tööriistariba nupu või kontekstimenüü valikuga.","pasteArea":"Asetamise ala","pasteMsg":"Aseta sisu alumisse kasti ja vajuta OK nupule."},"blockquote":{"toolbar":"Blokktsitaat"},"basicstyles":{"bold":"Paks","italic":"Kursiiv","strike":"Läbijoonitud","subscript":"Allindeks","superscript":"Ülaindeks","underline":"Allajoonitud"},"about":{"copy":"Copyright &copy; $1. Kõik õigused kaitstud.","dlgTitle":"CKEditor 4st lähemalt","moreInfo":"Litsentsi andmed leiab meie veebilehelt:"},"editor":"Rikkalik tekstiredaktor","editorPanel":"Rikkaliku tekstiredaktori paneel","common":{"editorHelp":"Abi saamiseks vajuta ALT 0","browseServer":"Serveri sirvimine","url":"URL","protocol":"Protokoll","upload":"Laadi üles","uploadSubmit":"Saada serverisse","image":"Pilt","flash":"Flash","form":"Vorm","checkbox":"Märkeruut","radio":"Raadionupp","textField":"Tekstilahter","textarea":"Tekstiala","hiddenField":"Varjatud lahter","button":"Nupp","select":"Valiklahter","imageButton":"Piltnupp","notSet":"<määramata>","id":"ID","name":"Nimi","langDir":"Keele suund","langDirLtr":"Vasakult paremale (LTR)","langDirRtl":"Paremalt vasakule (RTL)","langCode":"Keele kood","longDescr":"Pikk kirjeldus URL","cssClass":"Stiilistiku klassid","advisoryTitle":"Soovituslik pealkiri","cssStyle":"Laad","ok":"Olgu","cancel":"Loobu","close":"Sulge","preview":"Eelvaade","resize":"Suuruse muutmiseks lohista","generalTab":"Üldine","advancedTab":"Täpsemalt","validateNumberFailed":"See väärtus pole number.","confirmNewPage":"Kõik salvestamata muudatused lähevad kaotsi. Kas oled kindel, et tahad laadida uue lehe?","confirmCancel":"Mõned valikud on muudetud. Kas oled kindel, et tahad dialoogi sulgeda?","options":"Valikud","target":"Sihtkoht","targetNew":"Uus aken (_blank)","targetTop":"Kõige ülemine aken (_top)","targetSelf":"Sama aken (_self)","targetParent":"Vanemaken (_parent)","langDirLTR":"Vasakult paremale (LTR)","langDirRTL":"Paremalt vasakule (RTL)","styles":"Stiili","cssClasses":"Stiililehe klassid","width":"Laius","height":"Kõrgus","align":"Joondus","left":"Vasak","right":"Paremale","center":"Kesk","justify":"Rööpjoondus","alignLeft":"Vasakjoondus","alignRight":"Paremjoondus","alignCenter":"Keskjoondus","alignTop":"Üles","alignMiddle":"Keskele","alignBottom":"Alla","alignNone":"Pole","invalidValue":"Vigane väärtus.","invalidHeight":"Kõrgus peab olema number.","invalidWidth":"Laius peab olema number.","invalidLength":"Välja \"%1\" väärtus peab olema positiivne arv korrektse ühikuga (%2) või ilma.","invalidCssLength":"\"%1\" välja jaoks määratud väärtus peab olema positiivne täisarv CSS ühikuga (px, %, in, cm, mm, em, ex, pt või pc) või ilma.","invalidHtmlLength":"\"%1\" välja jaoks määratud väärtus peab olema positiivne täisarv HTML ühikuga (px või %) või ilma.","invalidInlineStyle":"Reasisese stiili määrangud peavad koosnema paarisväärtustest (tuples), mis on semikoolonitega eraldatult järgnevas vormingus: \"nimi : väärtus\".","cssLengthTooltip":"Sisesta väärtus pikslites või number koos sobiva CSS-i ühikuga (px, %, in, cm, mm, em, ex, pt või pc).","unavailable":"%1<span class=\"cke_accessibility\">, pole saadaval</span>","keyboard":{"8":"Backspace","13":"Enter","16":"Shift","17":"Ctrl","18":"Alt","32":"Tühik","35":"End","36":"Home","46":"Kustuta","112":"F1","113":"F2","114":"F3","115":"F4","116":"F5","117":"F6","118":"F7","119":"F8","120":"F9","121":"F10","122":"F11","123":"F12","124":"F13","125":"F14","126":"F15","127":"F16","128":"F17","129":"F18","130":"F19","131":"F20","132":"F21","133":"F22","134":"F23","135":"F24","224":"Command"},"keyboardShortcut":"Kiirklahv","optionDefault":"Vaikeväärtus"}};
\ No newline at end of file
diff --git a/web/core/assets/vendor/ckeditor/lang/eu.js b/web/core/assets/vendor/ckeditor/lang/eu.js
index eaa497468a..777024401d 100644
--- a/web/core/assets/vendor/ckeditor/lang/eu.js
+++ b/web/core/assets/vendor/ckeditor/lang/eu.js
@@ -1,5 +1,5 @@
 /*
-Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2020, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */
 CKEDITOR.lang['eu']={"widget":{"move":"Klikatu eta arrastatu lekuz aldatzeko","label":"%1 widget"},"undo":{"redo":"Berregin","undo":"Desegin"},"toolbar":{"toolbarCollapse":"Tolestu tresna-barra","toolbarExpand":"Zabaldu tresna-barra","toolbarGroups":{"document":"Dokumentua","clipboard":"Arbela/Desegin","editing":"Editatu","forms":"Formularioak","basicstyles":"Oinarrizko estiloak","paragraph":"Paragrafoa","links":"Estekak","insert":"Txertatu","styles":"Estiloak","colors":"Koloreak","tools":"Tresnak"},"toolbars":"Editorearen tresna-barrak"},"table":{"border":"Ertzaren zabalera","caption":"Epigrafea","cell":{"menu":"Gelaxka","insertBefore":"Txertatu gelaxka aurretik","insertAfter":"Txertatu gelaxka ondoren","deleteCell":"Ezabatu gelaxkak","merge":"Batu gelaxkak","mergeRight":"Batu eskuinetara","mergeDown":"Batu behera","splitHorizontal":"Banatu gelaxka horizontalki","splitVertical":"Banatu gelaxka bertikalki","title":"Gelaxkaren propietateak","cellType":"Gelaxka-mota","rowSpan":"Errenkaden hedadura","colSpan":"Zutabeen hedadura","wordWrap":"Itzulbira","hAlign":"Lerrokatze horizontala","vAlign":"Lerrokatze bertikala","alignBaseline":"Oinarri-lerroan","bgColor":"Atzeko planoaren kolorea","borderColor":"Ertzaren kolorea","data":"Data","header":"Goiburua","yes":"Bai","no":"Ez","invalidWidth":"Gelaxkaren zabalera zenbaki bat izan behar da.","invalidHeight":"Gelaxkaren altuera zenbaki bat izan behar da.","invalidRowSpan":"Errenkaden hedadura zenbaki osoa izan behar da.","invalidColSpan":"Zutabeen hedadura zenbaki osoa izan behar da.","chooseColor":"Aukeratu"},"cellPad":"Gelaxken betegarria","cellSpace":"Gelaxka arteko tartea","column":{"menu":"Zutabea","insertBefore":"Txertatu zutabea aurretik","insertAfter":"Txertatu zutabea ondoren","deleteColumn":"Ezabatu zutabeak"},"columns":"Zutabeak","deleteTable":"Ezabatu taula","headers":"Goiburuak","headersBoth":"Biak","headersColumn":"Lehen zutabea","headersNone":"Bat ere ez","headersRow":"Lehen errenkada","heightUnit":"height unit","invalidBorder":"Ertzaren tamaina zenbaki bat izan behar da.","invalidCellPadding":"Gelaxken betegarria zenbaki bat izan behar da.","invalidCellSpacing":"Gelaxka arteko tartea zenbaki bat izan behar da.","invalidCols":"Zutabe kopurua 0 baino handiagoa den zenbakia izan behar da.","invalidHeight":"Taularen altuera zenbaki bat izan behar da.","invalidRows":"Errenkada kopurua 0 baino handiagoa den zenbakia izan behar da.","invalidWidth":"Taularen zabalera zenbaki bat izan behar da.","menu":"Taularen propietateak","row":{"menu":"Errenkada","insertBefore":"Txertatu errenkada aurretik","insertAfter":"Txertatu errenkada ondoren","deleteRow":"Ezabatu errenkadak"},"rows":"Errenkadak","summary":"Laburpena","title":"Taularen propietateak","toolbar":"Taula","widthPc":"ehuneko","widthPx":"pixel","widthUnit":"zabalera unitatea"},"stylescombo":{"label":"Estiloak","panelTitle":"Formatu estiloak","panelTitle1":"Bloke estiloak","panelTitle2":"Lineako estiloak","panelTitle3":"Objektu estiloak"},"specialchar":{"options":"Karaktere berezien aukerak","title":"Hautatu karaktere berezia","toolbar":"Txertatu karaktere berezia"},"sourcedialog":{"toolbar":"Iturburua","title":"Iturburua"},"sourcearea":{"toolbar":"Iturburua"},"showblocks":{"toolbar":"Erakutsi blokeak"},"removeformat":{"toolbar":"Kendu formatua"},"pastetext":{"button":"Itsatsi testu arrunta bezala","pasteNotification":"Press %1 to paste. Your browser doesn‘t support pasting with the toolbar button or context menu option.","title":"Itsatsi testu arrunta bezala"},"pastefromword":{"confirmCleanup":"Itsatsi nahi duzun testua Word-etik kopiatua dela dirudi. Itsatsi baino lehen garbitu nahi duzu?","error":"Barne-errore bat dela eta ezin izan da itsatsitako testua garbitu","title":"Itsatsi Word-etik","toolbar":"Itsatsi Word-etik"},"notification":{"closed":"Jakinarazpena itxita."},"maximize":{"maximize":"Maximizatu","minimize":"Minimizatu"},"magicline":{"title":"Txertatu paragrafoa hemen"},"list":{"bulletedlist":"Buletdun Zerrenda","numberedlist":"Zenbakidun Zerrenda"},"language":{"button":"Ezarri hizkuntza","remove":"Kendu hizkuntza"},"indent":{"indent":"Handitu koska","outdent":"Txikitu koska"},"image2":{"alt":"Ordezko testua","btnUpload":"Bidali zerbitzarira","captioned":"Argazki oina","captionPlaceholder":"Argazki oina","infoTab":"Irudiaren informazioa","lockRatio":"Blokeatu erlazioa","menu":"Irudiaren propietateak","pathName":"Irudia","pathNameCaption":"Argazki oina","resetSize":"Berrezarri tamaina","resizer":"Klikatu eta arrastatu tamainaz aldatzeko","title":"Irudiaren propietateak","uploadTab":"Kargatu","urlMissing":"Irudiaren iturburuaren URLa falta da.","altMissing":"Ordezko testua falta da."},"horizontalrule":{"toolbar":"Txertatu marra horizontala"},"format":{"label":"Formatua","panelTitle":"Paragrafoaren formatua","tag_address":"Helbidea","tag_div":"Normala (DIV)","tag_h1":"Izenburua 1","tag_h2":"Izenburua 2","tag_h3":"Izenburua 3","tag_h4":"Izenburua 4","tag_h5":"Izenburua 5","tag_h6":"Izenburua 6","tag_p":"Normala","tag_pre":"Formatuduna"},"filetools":{"loadError":"Errorea gertatu da fitxategia irakurtzean.","networkError":"Sareko errorea gertatu da fitxategia kargatzean.","httpError404":"HTTP errorea gertatu da fitxategia kargatzean (404: Fitxategia ez da aurkitu).","httpError403":"HTTP errorea gertatu da fitxategia kargatzean (403: Debekatuta).","httpError":"HTTP errorea gertatu da fitxategia kargatzean (errore-egoera: %1).","noUrlError":"Kargatzeko URLa definitu gabe.","responseError":"Zerbitzariaren erantzun okerra."},"elementspath":{"eleLabel":"Elementuen bidea","eleTitle":"%1 elementua"},"contextmenu":{"options":"Testuinguru-menuaren aukerak"},"clipboard":{"copy":"Kopiatu","copyError":"Zure web nabigatzailearen segurtasun ezarpenek ez dute baimentzen testuak automatikoki kopiatzea. Mesedez teklatua erabil ezazu (Ctrl/Cmd+C).","cut":"Ebaki","cutError":"Zure web nabigatzailearen segurtasun ezarpenek ez dute baimentzen testuak automatikoki moztea. Mesedez teklatua erabil ezazu (Ctrl/Cmd+X).","paste":"Itsatsi","pasteNotification":"Press %1 to paste. Your browser doesn‘t support pasting with the toolbar button or context menu option.","pasteArea":"Itsasteko area","pasteMsg":"Paste your content inside the area below and press OK."},"blockquote":{"toolbar":"Aipamen blokea"},"basicstyles":{"bold":"Lodia","italic":"Etzana","strike":"Marratua","subscript":"Azpi-indizea","superscript":"Goi-indizea","underline":"Azpimarratu"},"about":{"copy":"Copyright &copy; $1. Eskubide guztiak erreserbaturik.","dlgTitle":"CKEditor 4ri buruz","moreInfo":"Lizentziari buruzko informazioa gure webgunean:"},"editor":"Testu aberastuaren editorea","editorPanel":"Testu aberastuaren editorearen panela","common":{"editorHelp":"Sakatu ALT 0 laguntza jasotzeko","browseServer":"Arakatu zerbitzaria","url":"URLa","protocol":"Protokoloa","upload":"Kargatu","uploadSubmit":"Bidali zerbitzarira","image":"Irudia","flash":"Flash","form":"Formularioa","checkbox":"Kontrol-laukia","radio":"Aukera-botoia","textField":"Testu-eremua","textarea":"Testu-area","hiddenField":"Ezkutuko eremua","button":"Botoia","select":"Hautespen-eremua","imageButton":"Irudi-botoia","notSet":"<ezarri gabe>","id":"Id","name":"Izena","langDir":"Hizkuntzaren norabidea","langDirLtr":"Ezkerretik eskuinera (LTR)","langDirRtl":"Eskuinetik ezkerrera (RTL)","langCode":"Hizkuntzaren kodea","longDescr":"URLaren deskribapen luzea","cssClass":"Estilo-orriko klaseak","advisoryTitle":"Aholkatutako izenburua","cssStyle":"Estiloa","ok":"Ados","cancel":"Utzi","close":"Itxi","preview":"Aurrebista","resize":"Aldatu tamainaz","generalTab":"Orokorra","advancedTab":"Aurreratua","validateNumberFailed":"Balio hau ez da zenbaki bat.","confirmNewPage":"Eduki honetan gorde gabe dauden aldaketak galduko dira. Ziur zaude orri berri bat kargatu nahi duzula?","confirmCancel":"Aukera batzuk aldatu dituzu. Ziur zaude elkarrizketa-koadroa itxi nahi duzula?","options":"Aukerak","target":"Helburua","targetNew":"Leiho berria (_blank)","targetTop":"Goieneko leihoan (_top)","targetSelf":"Leiho berean (_self)","targetParent":"Leiho gurasoan (_parent)","langDirLTR":"Ezkerretik eskuinera (LTR)","langDirRTL":"Eskuinetik ezkerrera (RTL)","styles":"Estiloa","cssClasses":"Estilo-orriko klaseak","width":"Zabalera","height":"Altuera","align":"Lerrokatzea","left":"Ezkerrean","right":"Eskuinean","center":"Erdian","justify":"Justifikatu","alignLeft":"Lerrokatu ezkerrean","alignRight":"Lerrokatu eskuinean","alignCenter":"Align Center","alignTop":"Goian","alignMiddle":"Erdian","alignBottom":"Behean","alignNone":"Bat ere ez","invalidValue":"Balio desegokia.","invalidHeight":"Altuera zenbaki bat izan behar da.","invalidWidth":"Zabalera zenbaki bat izan behar da.","invalidLength":"Value specified for the \"%1\" field must be a positive number with or without a valid measurement unit (%2).","invalidCssLength":"\"%1\" eremurako zehaztutako balioak zenbaki positibo bat izan behar du, CSS neurri unitate batekin edo gabe (px, %, in, cm, mm, em, ex, pt edo pc).","invalidHtmlLength":"\"%1\" eremurako zehaztutako balioak zenbaki positibo bat izan behar du, HTML neurri unitate batekin edo gabe (px edo %).","invalidInlineStyle":"Lineako estiloan zehaztutako balioak \"izen : balio\" formatuko tupla bat edo gehiago izan behar dira, komaz bereiztuak.","cssLengthTooltip":"Sartu zenbaki bat edo zenbaki bat baliozko CSS unitate batekin (px, %, in, cm, mm, em, ex, pt, edo pc).","unavailable":"%1<span class=\"cke_accessibility\">, erabilezina</span>","keyboard":{"8":"Atzera tekla","13":"Sartu","16":"Maius","17":"Ktrl","18":"Alt","32":"Zuriunea","35":"Buka","36":"Etxea","46":"Ezabatu","112":"F1","113":"F2","114":"F3","115":"F4","116":"F5","117":"F6","118":"F7","119":"F8","120":"F9","121":"F10","122":"F11","123":"F12","124":"F13","125":"F14","126":"F15","127":"F16","128":"F17","129":"F18","130":"F19","131":"F20","132":"F21","133":"F22","134":"F23","135":"F24","224":"Komandoa"},"keyboardShortcut":"Laster-tekla","optionDefault":"Lehenetsia"}};
\ No newline at end of file
diff --git a/web/core/assets/vendor/ckeditor/lang/fa.js b/web/core/assets/vendor/ckeditor/lang/fa.js
index c860f5319a..e92a20bea4 100644
--- a/web/core/assets/vendor/ckeditor/lang/fa.js
+++ b/web/core/assets/vendor/ckeditor/lang/fa.js
@@ -1,5 +1,5 @@
 /*
-Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2020, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */
-CKEDITOR.lang['fa']={"widget":{"move":"کلیک و کشیدن برای جابجایی","label":"ابزارک %1"},"undo":{"redo":"بازچیدن","undo":"واچیدن"},"toolbar":{"toolbarCollapse":"بستن نوار ابزار","toolbarExpand":"بازکردن نوار ابزار","toolbarGroups":{"document":"سند","clipboard":"حافظه موقت/برگشت","editing":"در حال ویرایش","forms":"فرم​ها","basicstyles":"سبک‌های پایه","paragraph":"بند","links":"پیوندها","insert":"ورود","styles":"سبک‌ها","colors":"رنگ​ها","tools":"ابزارها"},"toolbars":"نوار ابزارهای ویرایش‌گر"},"table":{"border":"اندازهٴ لبه","caption":"عنوان","cell":{"menu":"سلول","insertBefore":"افزودن سلول قبل از","insertAfter":"افزودن سلول بعد از","deleteCell":"حذف سلولها","merge":"ادغام سلولها","mergeRight":"ادغام به راست","mergeDown":"ادغام به پایین","splitHorizontal":"جدا کردن افقی سلول","splitVertical":"جدا کردن عمودی سلول","title":"ویژگیهای سلول","cellType":"نوع سلول","rowSpan":"محدوده ردیفها","colSpan":"محدوده ستونها","wordWrap":"شکستن کلمه","hAlign":"چینش افقی","vAlign":"چینش عمودی","alignBaseline":"خط مبنا","bgColor":"رنگ زمینه","borderColor":"رنگ خطوط","data":"اطلاعات","header":"سرنویس","yes":"بله","no":"خیر","invalidWidth":"عرض سلول باید یک عدد باشد.","invalidHeight":"ارتفاع سلول باید عدد باشد.","invalidRowSpan":"مقدار محدوده ردیفها باید یک عدد باشد.","invalidColSpan":"مقدار محدوده ستونها باید یک عدد باشد.","chooseColor":"انتخاب"},"cellPad":"فاصلهٴ پرشده در سلول","cellSpace":"فاصلهٴ میان سلولها","column":{"menu":"ستون","insertBefore":"افزودن ستون قبل از","insertAfter":"افزودن ستون بعد از","deleteColumn":"حذف ستونها"},"columns":"ستونها","deleteTable":"پاک کردن جدول","headers":"سرنویسها","headersBoth":"هردو","headersColumn":"اولین ستون","headersNone":"هیچ","headersRow":"اولین ردیف","heightUnit":"height unit","invalidBorder":"مقدار اندازه خطوط باید یک عدد باشد.","invalidCellPadding":"بالشتک سلول باید یک عدد باشد.","invalidCellSpacing":"مقدار فاصلهگذاری سلول باید یک عدد باشد.","invalidCols":"تعداد ستونها باید یک عدد بزرگتر از 0 باشد.","invalidHeight":"مقدار ارتفاع  جدول باید یک عدد باشد.","invalidRows":"تعداد ردیفها باید یک عدد بزرگتر از 0 باشد.","invalidWidth":"مقدار پهنای جدول باید یک عدد باشد.","menu":"ویژگیهای جدول","row":{"menu":"سطر","insertBefore":"افزودن سطر قبل از","insertAfter":"افزودن سطر بعد از","deleteRow":"حذف سطرها"},"rows":"سطرها","summary":"خلاصه","title":"ویژگیهای جدول","toolbar":"جدول","widthPc":"درصد","widthPx":"پیکسل","widthUnit":"واحد پهنا"},"stylescombo":{"label":"سبک","panelTitle":"سبکهای قالببندی","panelTitle1":"سبکهای بلوک","panelTitle2":"سبکهای درونخطی","panelTitle3":"سبکهای شیء"},"specialchar":{"options":"گزینه‌های نویسه‌های ویژه","title":"گزینش نویسه‌ی ویژه","toolbar":"گنجاندن نویسه‌ی ویژه"},"sourcedialog":{"toolbar":"منبع","title":"منبع"},"sourcearea":{"toolbar":"منبع"},"showblocks":{"toolbar":"نمایش بلوک‌ها"},"removeformat":{"toolbar":"برداشتن فرمت"},"pastetext":{"button":"چسباندن به عنوان متن ساده","pasteNotification":"Press %1 to paste. Your browser doesn‘t support pasting with the toolbar button or context menu option.","title":"چسباندن به عنوان متن ساده"},"pastefromword":{"confirmCleanup":"متنی که میخواهید بچسبانید به نظر میرسد که از Word کپی شده است. آیا میخواهید قبل از چسباندن آن را پاکسازی کنید؟","error":"به دلیل بروز خطای داخلی امکان پاکسازی اطلاعات بازنشانی شده وجود ندارد.","title":"چسباندن از Word","toolbar":"چسباندن از Word"},"notification":{"closed":"آگاه‌سازی بسته شد"},"maximize":{"maximize":"بیشنه کردن","minimize":"کمینه کردن"},"magicline":{"title":"قرار دادن بند در اینجا"},"list":{"bulletedlist":"فهرست نقطه​ای","numberedlist":"فهرست شماره​دار"},"language":{"button":"تعیین زبان","remove":"حذف زبان"},"indent":{"indent":"افزایش تورفتگی","outdent":"کاهش تورفتگی"},"image2":{"alt":"متن جایگزین","btnUpload":"به سرور بفرست","captioned":"تصویر زیرنویس شده","captionPlaceholder":"عنوان","infoTab":"اطلاعات تصویر","lockRatio":"قفل کردن نسبت","menu":"ویژگی​های تصویر","pathName":"تصویر","pathNameCaption":"عنوان","resetSize":"بازنشانی اندازه","resizer":"کلیک و کشیدن برای تغییر اندازه","title":"ویژگی​های تصویر","uploadTab":"بالاگذاری","urlMissing":"آدرس URL اصلی تصویر یافت نشد.","altMissing":"متن جایگزین یافت نشد."},"horizontalrule":{"toolbar":"گنجاندن خط افقی"},"format":{"label":"قالب","panelTitle":"قالب بند","tag_address":"نشانی","tag_div":"بند","tag_h1":"سرنویس ۱","tag_h2":"سرنویس ۲","tag_h3":"سرنویس ۳","tag_h4":"سرنویس ۴","tag_h5":"سرنویس ۵","tag_h6":"سرنویس ۶","tag_p":"معمولی","tag_pre":"قالب‌دار"},"filetools":{"loadError":"هنگام خواندن فایل، خطایی رخ داد.","networkError":"هنگام آپلود فایل خطای شبکه رخ داد.","httpError404":"هنگام آپلود فایل خطای HTTP رخ داد (404: فایل یافت نشد).","httpError403":"هنگام آپلود فایل، خطای HTTP رخ داد  (403: ممنوع).","httpError":"خطای HTTP در آپلود فایل رخ داده است (وضعیت خطا: %1).","noUrlError":"آدرس آپلود تعریف نشده است.","responseError":"پاسخ نادرست سرور."},"elementspath":{"eleLabel":"مسیر عناصر","eleTitle":"%1 عنصر"},"contextmenu":{"options":"گزینه​های منوی زمینه"},"clipboard":{"copy":"رونوشت","copyError":"تنظیمات امنیتی مرورگر شما اجازه نمیدهد که ویرایشگر به طور خودکار عملکردهای کپی کردن را انجام دهد. لطفا با دکمههای صفحه کلید این کار را انجام دهید (Ctrl/Cmd+C).","cut":"برش","cutError":"تنظیمات امنیتی مرورگر شما اجازه نمیدهد که ویرایشگر به طور خودکار عملکردهای برش را انجام دهد. لطفا با دکمههای صفحه کلید این کار را انجام دهید (Ctrl/Cmd+X).","paste":"چسباندن","pasteNotification":"Press %1 to paste. Your browser doesn‘t support pasting with the toolbar button or context menu option.","pasteArea":"محل چسباندن","pasteMsg":"Paste your content inside the area below and press OK."},"blockquote":{"toolbar":"بلوک نقل قول"},"basicstyles":{"bold":"درشت","italic":"خمیده","strike":"خط‌خورده","subscript":"زیرنویس","superscript":"بالانویس","underline":"زیرخط‌دار"},"about":{"copy":"حق نشر &copy; $1. کلیه حقوق محفوظ است.","dlgTitle":"درباره CKEditor","moreInfo":"برای کسب اطلاعات مجوز لطفا به وب سایت ما مراجعه کنید:"},"editor":"ویرایش‌گر متن غنی","editorPanel":"پنل ویرایشگر متن غنی","common":{"editorHelp":"کلید Alt+0 را برای راهنمایی بفشارید","browseServer":"فهرست​نمایی سرور","url":"URL","protocol":"قرارداد","upload":"بالاگذاری","uploadSubmit":"به سرور بفرست","image":"تصویر","flash":"فلش","form":"فرم","checkbox":"چک‌باکس","radio":"دکمه‌ی رادیویی","textField":"فیلد متنی","textarea":"ناحیهٴ متنی","hiddenField":"فیلد پنهان","button":"دکمه","select":"فیلد انتخاب چند گزینه​ای","imageButton":"دکمه‌ی تصویری","notSet":"<تعیین‌نشده>","id":"شناسه","name":"نام","langDir":"جهت زبان","langDirLtr":"چپ به راست","langDirRtl":"راست به چپ","langCode":"کد زبان","longDescr":"URL توصیف طولانی","cssClass":"کلاس​های شیوه​نامه (Stylesheet)","advisoryTitle":"عنوان کمکی","cssStyle":"سبک","ok":"پذیرش","cancel":"انصراف","close":"بستن","preview":"پیش‌نمایش","resize":"تغییر اندازه","generalTab":"عمومی","advancedTab":"پیش‌رفته","validateNumberFailed":"این مقدار یک عدد نیست.","confirmNewPage":"هر تغییر ایجاد شده​ی ذخیره نشده از بین خواهد رفت. آیا اطمینان دارید که قصد بارگیری صفحه جدیدی را دارید؟","confirmCancel":"برخی از گزینه‌ها تغییر کرده‌اند. آیا واقعا قصد بستن این پنجره را دارید؟","options":"گزینه​ها","target":"مقصد","targetNew":"پنجره جدید","targetTop":"بالاترین پنجره","targetSelf":"همان پنجره","targetParent":"پنجره والد","langDirLTR":"چپ به راست","langDirRTL":"راست به چپ","styles":"سبک","cssClasses":"کلاس‌های سبک‌نامه","width":"عرض","height":"طول","align":"چینش","left":"چپ","right":"راست","center":"وسط","justify":"بلوک چین","alignLeft":"چپ چین","alignRight":"راست چین","alignCenter":"مرکز قرار بده","alignTop":"بالا","alignMiddle":"میانه","alignBottom":"پائین","alignNone":"هیچ","invalidValue":"مقدار نامعتبر.","invalidHeight":"ارتفاع باید یک عدد باشد.","invalidWidth":"عرض باید یک عدد باشد.","invalidLength":"عدد تعیین شده برای فیلد \"%1\" باید یک عدد مثبت با یا بدون یک واحد اندازه گیری معتبر (\"%2\") باشد.","invalidCssLength":"عدد تعیین شده برای فیلد \"%1\" باید یک عدد مثبت با یا بدون یک واحد اندازه گیری CSS معتبر باشد (px, %, in, cm, mm, em, ex, pt, or pc).","invalidHtmlLength":"عدد تعیین شده برای فیلد \"%1\" باید یک عدد مثبت با یا بدون یک واحد اندازه گیری HTML معتبر باشد (px or %).","invalidInlineStyle":"عدد تعیین شده برای سبک درون​خطی -Inline Style- باید دارای یک یا چند چندتایی با شکلی شبیه \"name : value\" که باید با یک \";\" از هم جدا شوند.","cssLengthTooltip":"یک عدد برای یک مقدار بر حسب پیکسل و یا یک عدد با یک واحد CSS معتبر وارد کنید (px, %, in, cm, mm, em, ex, pt, or pc).","unavailable":"%1<span class=\"cke_accessibility\">، غیر قابل دسترس</span>","keyboard":{"8":"عقبگرد","13":"ورود","16":"تعویض","17":"کنترل","18":"دگرساز","32":"فاصله","35":"پایان","36":"خانه","46":"حذف","112":"F1","113":"F2","114":"F3","115":"F4","116":"F5","117":"F6","118":"F7","119":"F8","120":"F9","121":"F10","122":"F11","123":"F12","124":"F13","125":"F14","126":"F15","127":"F16","128":"F17","129":"F18","130":"F19","131":"F20","132":"F21","133":"F22","134":"F23","135":"F24","224":"فرمان"},"keyboardShortcut":"میانبر صفحه کلید","optionDefault":"پیش فرض"}};
\ No newline at end of file
+CKEDITOR.lang['fa']={"widget":{"move":"کلیک و کشیدن برای جابجایی","label":"ابزارک %1"},"undo":{"redo":"بازچیدن","undo":"واچیدن"},"toolbar":{"toolbarCollapse":"بستن نوار ابزار","toolbarExpand":"بازکردن نوار ابزار","toolbarGroups":{"document":"سند","clipboard":"حافظه موقت/برگشت","editing":"در حال ویرایش","forms":"فرم​ها","basicstyles":"سبک‌های پایه","paragraph":"بند","links":"پیوندها","insert":"ورود","styles":"سبک‌ها","colors":"رنگ​ها","tools":"ابزارها"},"toolbars":"نوار ابزارهای ویرایش‌گر"},"table":{"border":"اندازهٴ لبه","caption":"عنوان","cell":{"menu":"سلول","insertBefore":"افزودن سلول قبل از","insertAfter":"افزودن سلول بعد از","deleteCell":"حذف سلولها","merge":"ادغام سلولها","mergeRight":"ادغام به راست","mergeDown":"ادغام به پایین","splitHorizontal":"جدا کردن افقی سلول","splitVertical":"جدا کردن عمودی سلول","title":"ویژگیهای سلول","cellType":"نوع سلول","rowSpan":"محدوده ردیفها","colSpan":"محدوده ستونها","wordWrap":"شکستن کلمه","hAlign":"چینش افقی","vAlign":"چینش عمودی","alignBaseline":"خط مبنا","bgColor":"رنگ زمینه","borderColor":"رنگ خطوط","data":"اطلاعات","header":"سرنویس","yes":"بله","no":"خیر","invalidWidth":"عرض سلول باید یک عدد باشد.","invalidHeight":"ارتفاع سلول باید عدد باشد.","invalidRowSpan":"مقدار محدوده ردیفها باید یک عدد باشد.","invalidColSpan":"مقدار محدوده ستونها باید یک عدد باشد.","chooseColor":"انتخاب"},"cellPad":"فاصلهٴ پرشده در سلول","cellSpace":"فاصلهٴ میان سلولها","column":{"menu":"ستون","insertBefore":"افزودن ستون قبل از","insertAfter":"افزودن ستون بعد از","deleteColumn":"حذف ستونها"},"columns":"ستونها","deleteTable":"پاک کردن جدول","headers":"سرنویسها","headersBoth":"هردو","headersColumn":"اولین ستون","headersNone":"هیچ","headersRow":"اولین ردیف","heightUnit":"height unit","invalidBorder":"مقدار اندازه خطوط باید یک عدد باشد.","invalidCellPadding":"بالشتک سلول باید یک عدد باشد.","invalidCellSpacing":"مقدار فاصلهگذاری سلول باید یک عدد باشد.","invalidCols":"تعداد ستونها باید یک عدد بزرگتر از 0 باشد.","invalidHeight":"مقدار ارتفاع  جدول باید یک عدد باشد.","invalidRows":"تعداد ردیفها باید یک عدد بزرگتر از 0 باشد.","invalidWidth":"مقدار پهنای جدول باید یک عدد باشد.","menu":"ویژگیهای جدول","row":{"menu":"سطر","insertBefore":"افزودن سطر قبل از","insertAfter":"افزودن سطر بعد از","deleteRow":"حذف سطرها"},"rows":"سطرها","summary":"خلاصه","title":"ویژگیهای جدول","toolbar":"جدول","widthPc":"درصد","widthPx":"پیکسل","widthUnit":"واحد پهنا"},"stylescombo":{"label":"سبک","panelTitle":"سبکهای قالببندی","panelTitle1":"سبکهای بلوک","panelTitle2":"سبکهای درونخطی","panelTitle3":"سبکهای شیء"},"specialchar":{"options":"گزینه‌های نویسه‌های ویژه","title":"گزینش نویسه‌ی ویژه","toolbar":"گنجاندن نویسه‌ی ویژه"},"sourcedialog":{"toolbar":"منبع","title":"منبع"},"sourcearea":{"toolbar":"منبع"},"showblocks":{"toolbar":"نمایش بلوک‌ها"},"removeformat":{"toolbar":"برداشتن فرمت"},"pastetext":{"button":"چسباندن به عنوان متن ساده","pasteNotification":"Press %1 to paste. Your browser doesn‘t support pasting with the toolbar button or context menu option.","title":"چسباندن به عنوان متن ساده"},"pastefromword":{"confirmCleanup":"متنی که میخواهید بچسبانید به نظر میرسد که از Word کپی شده است. آیا میخواهید قبل از چسباندن آن را پاکسازی کنید؟","error":"به دلیل بروز خطای داخلی امکان پاکسازی اطلاعات بازنشانی شده وجود ندارد.","title":"چسباندن از Word","toolbar":"چسباندن از Word"},"notification":{"closed":"آگاه‌سازی بسته شد"},"maximize":{"maximize":"بیشنه کردن","minimize":"کمینه کردن"},"magicline":{"title":"قرار دادن بند در اینجا"},"list":{"bulletedlist":"فهرست نقطه​ای","numberedlist":"فهرست شماره​دار"},"language":{"button":"تعیین زبان","remove":"حذف زبان"},"indent":{"indent":"افزایش تورفتگی","outdent":"کاهش تورفتگی"},"image2":{"alt":"متن جایگزین","btnUpload":"به سرور بفرست","captioned":"تصویر زیرنویس شده","captionPlaceholder":"عنوان","infoTab":"اطلاعات تصویر","lockRatio":"قفل کردن نسبت","menu":"ویژگی​های تصویر","pathName":"تصویر","pathNameCaption":"عنوان","resetSize":"بازنشانی اندازه","resizer":"کلیک و کشیدن برای تغییر اندازه","title":"ویژگی​های تصویر","uploadTab":"بالاگذاری","urlMissing":"آدرس URL اصلی تصویر یافت نشد.","altMissing":"متن جایگزین یافت نشد."},"horizontalrule":{"toolbar":"گنجاندن خط افقی"},"format":{"label":"قالب","panelTitle":"قالب بند","tag_address":"نشانی","tag_div":"بند","tag_h1":"سرنویس ۱","tag_h2":"سرنویس ۲","tag_h3":"سرنویس ۳","tag_h4":"سرنویس ۴","tag_h5":"سرنویس ۵","tag_h6":"سرنویس ۶","tag_p":"معمولی","tag_pre":"قالب‌دار"},"filetools":{"loadError":"هنگام خواندن فایل، خطایی رخ داد.","networkError":"هنگام آپلود فایل خطای شبکه رخ داد.","httpError404":"هنگام آپلود فایل خطای HTTP رخ داد (404: فایل یافت نشد).","httpError403":"هنگام آپلود فایل، خطای HTTP رخ داد  (403: ممنوع).","httpError":"خطای HTTP در آپلود فایل رخ داده است (وضعیت خطا: %1).","noUrlError":"آدرس آپلود تعریف نشده است.","responseError":"پاسخ نادرست سرور."},"elementspath":{"eleLabel":"مسیر عناصر","eleTitle":"%1 عنصر"},"contextmenu":{"options":"گزینه​های منوی زمینه"},"clipboard":{"copy":"رونوشت","copyError":"تنظیمات امنیتی مرورگر شما اجازه نمیدهد که ویرایشگر به طور خودکار عملکردهای کپی کردن را انجام دهد. لطفا با دکمههای صفحه کلید این کار را انجام دهید (Ctrl/Cmd+C).","cut":"برش","cutError":"تنظیمات امنیتی مرورگر شما اجازه نمیدهد که ویرایشگر به طور خودکار عملکردهای برش را انجام دهد. لطفا با دکمههای صفحه کلید این کار را انجام دهید (Ctrl/Cmd+X).","paste":"چسباندن","pasteNotification":"1% را فشاردهید تا قرار داده شود. مرورگر شما از قراردهی با دکمه نوارابزار یا گزینه منوی زمینه پشتیبانی نمیکند","pasteArea":"محل چسباندن","pasteMsg":"محتوای خود را در ناحیه زیر قرار دهید و OK را فشار دهید"},"blockquote":{"toolbar":"بلوک نقل قول"},"basicstyles":{"bold":"درشت","italic":"خمیده","strike":"خط‌خورده","subscript":"زیرنویس","superscript":"بالانویس","underline":"زیرخط‌دار"},"about":{"copy":"حق نشر &copy; $1. کلیه حقوق محفوظ است.","dlgTitle":"درباره CKEditor","moreInfo":"برای کسب اطلاعات مجوز لطفا به وب سایت ما مراجعه کنید:"},"editor":"ویرایش‌گر متن غنی","editorPanel":"پنل ویرایشگر متن غنی","common":{"editorHelp":"کلید Alt+0 را برای راهنمایی بفشارید","browseServer":"فهرست​نمایی سرور","url":"URL","protocol":"قرارداد","upload":"بالاگذاری","uploadSubmit":"به سرور بفرست","image":"تصویر","flash":"فلش","form":"فرم","checkbox":"چک‌باکس","radio":"دکمه‌ی رادیویی","textField":"فیلد متنی","textarea":"ناحیهٴ متنی","hiddenField":"فیلد پنهان","button":"دکمه","select":"فیلد انتخاب چند گزینه​ای","imageButton":"دکمه‌ی تصویری","notSet":"<تعیین‌نشده>","id":"شناسه","name":"نام","langDir":"جهت زبان","langDirLtr":"چپ به راست","langDirRtl":"راست به چپ","langCode":"کد زبان","longDescr":"URL توصیف طولانی","cssClass":"کلاس​های شیوه​نامه (Stylesheet)","advisoryTitle":"عنوان کمکی","cssStyle":"سبک","ok":"پذیرش","cancel":"انصراف","close":"بستن","preview":"پیش‌نمایش","resize":"تغییر اندازه","generalTab":"عمومی","advancedTab":"پیش‌رفته","validateNumberFailed":"این مقدار یک عدد نیست.","confirmNewPage":"هر تغییر ایجاد شده​ی ذخیره نشده از بین خواهد رفت. آیا اطمینان دارید که قصد بارگیری صفحه جدیدی را دارید؟","confirmCancel":"برخی از گزینه‌ها تغییر کرده‌اند. آیا واقعا قصد بستن این پنجره را دارید؟","options":"گزینه​ها","target":"مقصد","targetNew":"پنجره جدید","targetTop":"بالاترین پنجره","targetSelf":"همان پنجره","targetParent":"پنجره والد","langDirLTR":"چپ به راست","langDirRTL":"راست به چپ","styles":"سبک","cssClasses":"کلاس‌های سبک‌نامه","width":"عرض","height":"طول","align":"چینش","left":"چپ","right":"راست","center":"وسط","justify":"بلوک چین","alignLeft":"چپ چین","alignRight":"راست چین","alignCenter":"مرکز قرار بده","alignTop":"بالا","alignMiddle":"میانه","alignBottom":"پائین","alignNone":"هیچ","invalidValue":"مقدار نامعتبر.","invalidHeight":"ارتفاع باید یک عدد باشد.","invalidWidth":"عرض باید یک عدد باشد.","invalidLength":"عدد تعیین شده برای فیلد \"%1\" باید یک عدد مثبت با یا بدون یک واحد اندازه گیری معتبر (\"%2\") باشد.","invalidCssLength":"عدد تعیین شده برای فیلد \"%1\" باید یک عدد مثبت با یا بدون یک واحد اندازه گیری CSS معتبر باشد (px, %, in, cm, mm, em, ex, pt, or pc).","invalidHtmlLength":"عدد تعیین شده برای فیلد \"%1\" باید یک عدد مثبت با یا بدون یک واحد اندازه گیری HTML معتبر باشد (px or %).","invalidInlineStyle":"عدد تعیین شده برای سبک درون​خطی -Inline Style- باید دارای یک یا چند چندتایی با شکلی شبیه \"name : value\" که باید با یک \";\" از هم جدا شوند.","cssLengthTooltip":"یک عدد برای یک مقدار بر حسب پیکسل و یا یک عدد با یک واحد CSS معتبر وارد کنید (px, %, in, cm, mm, em, ex, pt, or pc).","unavailable":"%1<span class=\"cke_accessibility\">، غیر قابل دسترس</span>","keyboard":{"8":"عقبگرد","13":"ورود","16":"تعویض","17":"کنترل","18":"دگرساز","32":"فاصله","35":"پایان","36":"خانه","46":"حذف","112":"F1","113":"F2","114":"F3","115":"F4","116":"F5","117":"F6","118":"F7","119":"F8","120":"F9","121":"F10","122":"F11","123":"F12","124":"F13","125":"F14","126":"F15","127":"F16","128":"F17","129":"F18","130":"F19","131":"F20","132":"F21","133":"F22","134":"F23","135":"F24","224":"فرمان"},"keyboardShortcut":"میانبر صفحه کلید","optionDefault":"پیش فرض"}};
\ No newline at end of file
diff --git a/web/core/assets/vendor/ckeditor/lang/fi.js b/web/core/assets/vendor/ckeditor/lang/fi.js
index 84b051b031..6dedd5748c 100644
--- a/web/core/assets/vendor/ckeditor/lang/fi.js
+++ b/web/core/assets/vendor/ckeditor/lang/fi.js
@@ -1,5 +1,5 @@
 /*
-Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2020, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */
 CKEDITOR.lang['fi']={"widget":{"move":"Siirrä klikkaamalla ja raahaamalla","label":"%1 widget"},"undo":{"redo":"Toista","undo":"Kumoa"},"toolbar":{"toolbarCollapse":"Kutista työkalupalkki","toolbarExpand":"Laajenna työkalupalkki","toolbarGroups":{"document":"Dokumentti","clipboard":"Leikepöytä/Kumoa","editing":"Muokkaus","forms":"Lomakkeet","basicstyles":"Perustyylit","paragraph":"Kappale","links":"Linkit","insert":"Lisää","styles":"Tyylit","colors":"Värit","tools":"Työkalut"},"toolbars":"Editorin työkalupalkit"},"table":{"border":"Rajan paksuus","caption":"Otsikko","cell":{"menu":"Solu","insertBefore":"Lisää solu eteen","insertAfter":"Lisää solu perään","deleteCell":"Poista solut","merge":"Yhdistä solut","mergeRight":"Yhdistä oikealla olevan kanssa","mergeDown":"Yhdistä alla olevan kanssa","splitHorizontal":"Jaa solu vaakasuunnassa","splitVertical":"Jaa solu pystysuunnassa","title":"Solun ominaisuudet","cellType":"Solun tyyppi","rowSpan":"Rivin jatkuvuus","colSpan":"Solun jatkuvuus","wordWrap":"Rivitys","hAlign":"Horisontaali kohdistus","vAlign":"Vertikaali kohdistus","alignBaseline":"Alas (teksti)","bgColor":"Taustan väri","borderColor":"Reunan väri","data":"Data","header":"Ylätunniste","yes":"Kyllä","no":"Ei","invalidWidth":"Solun leveyden täytyy olla numero.","invalidHeight":"Solun korkeuden täytyy olla numero.","invalidRowSpan":"Rivin jatkuvuuden täytyy olla kokonaisluku.","invalidColSpan":"Solun jatkuvuuden täytyy olla kokonaisluku.","chooseColor":"Valitse"},"cellPad":"Solujen sisennys","cellSpace":"Solujen väli","column":{"menu":"Sarake","insertBefore":"Lisää sarake vasemmalle","insertAfter":"Lisää sarake oikealle","deleteColumn":"Poista sarakkeet"},"columns":"Sarakkeet","deleteTable":"Poista taulu","headers":"Ylätunnisteet","headersBoth":"Molemmat","headersColumn":"Ensimmäinen sarake","headersNone":"Ei","headersRow":"Ensimmäinen rivi","heightUnit":"height unit","invalidBorder":"Reunan koon täytyy olla numero.","invalidCellPadding":"Solujen sisennyksen täytyy olla numero.","invalidCellSpacing":"Solujen välin täytyy olla numero.","invalidCols":"Sarakkeiden määrän täytyy olla suurempi kuin 0.","invalidHeight":"Taulun korkeuden täytyy olla numero.","invalidRows":"Rivien määrän täytyy olla suurempi kuin 0.","invalidWidth":"Taulun leveyden täytyy olla numero.","menu":"Taulun ominaisuudet","row":{"menu":"Rivi","insertBefore":"Lisää rivi yläpuolelle","insertAfter":"Lisää rivi alapuolelle","deleteRow":"Poista rivit"},"rows":"Rivit","summary":"Yhteenveto","title":"Taulun ominaisuudet","toolbar":"Taulu","widthPc":"prosenttia","widthPx":"pikseliä","widthUnit":"leveysyksikkö"},"stylescombo":{"label":"Tyyli","panelTitle":"Muotoilujen tyylit","panelTitle1":"Lohkojen tyylit","panelTitle2":"Rivinsisäiset tyylit","panelTitle3":"Objektien tyylit"},"specialchar":{"options":"Erikoismerkin ominaisuudet","title":"Valitse erikoismerkki","toolbar":"Lisää erikoismerkki"},"sourcedialog":{"toolbar":"Koodi","title":"Koodi"},"sourcearea":{"toolbar":"Koodi"},"showblocks":{"toolbar":"Näytä elementit"},"removeformat":{"toolbar":"Poista muotoilu"},"pastetext":{"button":"Liitä tekstinä","pasteNotification":"Press %1 to paste. Your browser doesn‘t support pasting with the toolbar button or context menu option.","title":"Liitä tekstinä"},"pastefromword":{"confirmCleanup":"Liittämäsi teksti näyttäisi olevan Word-dokumentista. Haluatko siivota sen ennen liittämistä? (Suositus: Kyllä)","error":"Liitetyn tiedon siivoaminen ei onnistunut sisäisen virheen takia","title":"Liitä Word-dokumentista","toolbar":"Liitä Word-dokumentista"},"notification":{"closed":"Notification closed."},"maximize":{"maximize":"Suurenna","minimize":"Pienennä"},"magicline":{"title":"Lisää kappale tähän."},"list":{"bulletedlist":"Luettelomerkit","numberedlist":"Numerointi"},"language":{"button":"Aseta kieli","remove":"Poista kieli"},"indent":{"indent":"Suurenna sisennystä","outdent":"Pienennä sisennystä"},"image2":{"alt":"Vaihtoehtoinen teksti","btnUpload":"Lähetä palvelimelle","captioned":"Kuva kuvatekstillä","captionPlaceholder":"Kuvateksti","infoTab":"Kuvan tiedot","lockRatio":"Lukitse suhteet","menu":"Kuvan ominaisuudet","pathName":"kuva","pathNameCaption":"kuvateksti","resetSize":"Alkuperäinen koko","resizer":"Klikkaa ja raahaa muuttaaksesi kokoa","title":"Kuvan ominaisuudet","uploadTab":"Lisää tiedosto","urlMissing":"Kuvan lähdeosoite puuttuu.","altMissing":"Alternative text is missing."},"horizontalrule":{"toolbar":"Lisää murtoviiva"},"format":{"label":"Muotoilu","panelTitle":"Muotoilu","tag_address":"Osoite","tag_div":"Normaali (DIV)","tag_h1":"Otsikko 1","tag_h2":"Otsikko 2","tag_h3":"Otsikko 3","tag_h4":"Otsikko 4","tag_h5":"Otsikko 5","tag_h6":"Otsikko 6","tag_p":"Normaali","tag_pre":"Muotoiltu"},"filetools":{"loadError":"Error occurred during file read.","networkError":"Network error occurred during file upload.","httpError404":"HTTP error occurred during file upload (404: File not found).","httpError403":"HTTP error occurred during file upload (403: Forbidden).","httpError":"HTTP error occurred during file upload (error status: %1).","noUrlError":"Upload URL is not defined.","responseError":"Incorrect server response."},"elementspath":{"eleLabel":"Elementin polku","eleTitle":"%1 elementti"},"contextmenu":{"options":"Pikavalikon ominaisuudet"},"clipboard":{"copy":"Kopioi","copyError":"Selaimesi turva-asetukset eivät salli editorin toteuttaa kopioimista. Käytä näppäimistöä kopioimiseen (Ctrl+C).","cut":"Leikkaa","cutError":"Selaimesi turva-asetukset eivät salli editorin toteuttaa leikkaamista. Käytä näppäimistöä leikkaamiseen (Ctrl+X).","paste":"Liitä","pasteNotification":"Press %1 to paste. Your browser doesn‘t support pasting with the toolbar button or context menu option.","pasteArea":"Leikealue","pasteMsg":"Paste your content inside the area below and press OK."},"blockquote":{"toolbar":"Lainaus"},"basicstyles":{"bold":"Lihavoitu","italic":"Kursivoitu","strike":"Yliviivattu","subscript":"Alaindeksi","superscript":"Yläindeksi","underline":"Alleviivattu"},"about":{"copy":"Copyright &copy; $1. Kaikki oikeuden pidätetään.","dlgTitle":"Tietoa CKEditorista","moreInfo":"Lisenssitiedot löytyvät kotisivuiltamme:"},"editor":"Rikastekstieditori","editorPanel":"Rikastekstieditoripaneeli","common":{"editorHelp":"Paina ALT 0 nähdäksesi ohjeen","browseServer":"Selaa palvelinta","url":"Osoite","protocol":"Protokolla","upload":"Lisää tiedosto","uploadSubmit":"Lähetä palvelimelle","image":"Kuva","flash":"Flash-animaatio","form":"Lomake","checkbox":"Valintaruutu","radio":"Radiopainike","textField":"Tekstikenttä","textarea":"Tekstilaatikko","hiddenField":"Piilokenttä","button":"Painike","select":"Valintakenttä","imageButton":"Kuvapainike","notSet":"<ei asetettu>","id":"Tunniste","name":"Nimi","langDir":"Kielen suunta","langDirLtr":"Vasemmalta oikealle (LTR)","langDirRtl":"Oikealta vasemmalle (RTL)","langCode":"Kielikoodi","longDescr":"Pitkän kuvauksen URL","cssClass":"Tyyliluokat","advisoryTitle":"Avustava otsikko","cssStyle":"Tyyli","ok":"OK","cancel":"Peruuta","close":"Sulje","preview":"Esikatselu","resize":"Raahaa muuttaaksesi kokoa","generalTab":"Yleinen","advancedTab":"Lisäominaisuudet","validateNumberFailed":"Arvon pitää olla numero.","confirmNewPage":"Kaikki tallentamattomat muutokset tähän sisältöön menetetään. Oletko varma, että haluat ladata uuden sivun?","confirmCancel":"Jotkut asetuksista on muuttuneet. Oletko varma, että haluat sulkea valintaikkunan?","options":"Asetukset","target":"Kohde","targetNew":"Uusi ikkuna (_blank)","targetTop":"Päällimmäinen ikkuna (_top)","targetSelf":"Sama ikkuna (_self)","targetParent":"Ylemmän tason ikkuna (_parent)","langDirLTR":"Vasemmalta oikealle (LTR)","langDirRTL":"Oikealta vasemmalle (RTL)","styles":"Tyyli","cssClasses":"Tyylitiedoston luokat","width":"Leveys","height":"Korkeus","align":"Kohdistus","left":"Vasemmalle","right":"Oikealle","center":"Keskelle","justify":"Tasaa molemmat reunat","alignLeft":"Tasaa vasemmat reunat","alignRight":"Tasaa oikeat reunat","alignCenter":"Align Center","alignTop":"Ylös","alignMiddle":"Keskelle","alignBottom":"Alas","alignNone":"Ei asetettu","invalidValue":"Virheellinen arvo.","invalidHeight":"Korkeuden täytyy olla numero.","invalidWidth":"Leveyden täytyy olla numero.","invalidLength":"Value specified for the \"%1\" field must be a positive number with or without a valid measurement unit (%2).","invalidCssLength":"Kentän \"%1\" arvon täytyy olla positiivinen luku CSS mittayksikön (px, %, in, cm, mm, em, ex, pt tai pc) kanssa tai ilman.","invalidHtmlLength":"Kentän \"%1\" arvon täytyy olla positiivinen luku HTML mittayksikön (px tai %) kanssa tai ilman.","invalidInlineStyle":"Tyylille annetun arvon täytyy koostua yhdestä tai useammasta \"nimi : arvo\" parista, jotka ovat eroteltuna toisistaan puolipisteillä.","cssLengthTooltip":"Anna numeroarvo pikseleinä tai numeroarvo CSS mittayksikön kanssa (px, %, in, cm, mm, em, ex, pt, tai pc).","unavailable":"%1<span class=\"cke_accessibility\">, ei saatavissa</span>","keyboard":{"8":"Backspace","13":"Enter","16":"Shift","17":"Ctrl","18":"Alt","32":"Space","35":"End","36":"Home","46":"Delete","112":"F1","113":"F2","114":"F3","115":"F4","116":"F5","117":"F6","118":"F7","119":"F8","120":"F9","121":"F10","122":"F11","123":"F12","124":"F13","125":"F14","126":"F15","127":"F16","128":"F17","129":"F18","130":"F19","131":"F20","132":"F21","133":"F22","134":"F23","135":"F24","224":"Command"},"keyboardShortcut":"Keyboard shortcut","optionDefault":"Default"}};
\ No newline at end of file
diff --git a/web/core/assets/vendor/ckeditor/lang/fo.js b/web/core/assets/vendor/ckeditor/lang/fo.js
index a5971cf9f6..031e7be576 100644
--- a/web/core/assets/vendor/ckeditor/lang/fo.js
+++ b/web/core/assets/vendor/ckeditor/lang/fo.js
@@ -1,5 +1,5 @@
 /*
-Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2020, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */
 CKEDITOR.lang['fo']={"widget":{"move":"Click and drag to move","label":"%1 widget"},"undo":{"redo":"Vend aftur","undo":"Angra"},"toolbar":{"toolbarCollapse":"Lat Toolbar aftur","toolbarExpand":"Vís Toolbar","toolbarGroups":{"document":"Dokument","clipboard":"Clipboard/Undo","editing":"Editering","forms":"Formar","basicstyles":"Grundleggjandi Styles","paragraph":"Reglubrot","links":"Leinkjur","insert":"Set inn","styles":"Styles","colors":"Litir","tools":"Tól"},"toolbars":"Editor toolbars"},"table":{"border":"Bordabreidd","caption":"Tabellfrágreiðing","cell":{"menu":"Meski","insertBefore":"Set meska inn áðrenn","insertAfter":"Set meska inn aftaná","deleteCell":"Strika meskar","merge":"Flætta meskar","mergeRight":"Flætta meskar til høgru","mergeDown":"Flætta saman","splitHorizontal":"Kloyv meska vatnrætt","splitVertical":"Kloyv meska loddrætt","title":"Mesku eginleikar","cellType":"Mesku slag","rowSpan":"Ræð spenni","colSpan":"Kolonnu spenni","wordWrap":"Orðkloyving","hAlign":"Horisontal plasering","vAlign":"Loddrøtt plasering","alignBaseline":"Basislinja","bgColor":"Bakgrundslitur","borderColor":"Bordalitur","data":"Data","header":"Header","yes":"Ja","no":"Nei","invalidWidth":"Meskubreidd má vera eitt tal.","invalidHeight":"Meskuhædd má vera eitt tal.","invalidRowSpan":"Raðspennið má vera eitt heiltal.","invalidColSpan":"Kolonnuspennið má vera eitt heiltal.","chooseColor":"Vel"},"cellPad":"Meskubreddi","cellSpace":"Fjarstøða millum meskar","column":{"menu":"Kolonna","insertBefore":"Set kolonnu inn áðrenn","insertAfter":"Set kolonnu inn aftaná","deleteColumn":"Strika kolonnur"},"columns":"Kolonnur","deleteTable":"Strika tabell","headers":"Yvirskriftir","headersBoth":"Báðir","headersColumn":"Fyrsta kolonna","headersNone":"Eingin","headersRow":"Fyrsta rað","heightUnit":"height unit","invalidBorder":"Borda-stødd má vera eitt tal.","invalidCellPadding":"Cell padding má vera eitt tal.","invalidCellSpacing":"Cell spacing má vera eitt tal.","invalidCols":"Talið av kolonnum má vera eitt tal størri enn 0.","invalidHeight":"Tabell-hædd má vera eitt tal.","invalidRows":"Talið av røðum má vera eitt tal størri enn 0.","invalidWidth":"Tabell-breidd má vera eitt tal.","menu":"Eginleikar fyri tabell","row":{"menu":"Rað","insertBefore":"Set rað inn áðrenn","insertAfter":"Set rað inn aftaná","deleteRow":"Strika røðir"},"rows":"Røðir","summary":"Samandráttur","title":"Eginleikar fyri tabell","toolbar":"Tabell","widthPc":"prosent","widthPx":"pixels","widthUnit":"breiddar unit"},"stylescombo":{"label":"Typografi","panelTitle":"Formatterings stílir","panelTitle1":"Blokk stílir","panelTitle2":"Inline stílir","panelTitle3":"Object stílir"},"specialchar":{"options":"Møguleikar við serteknum","title":"Vel sertekn","toolbar":"Set inn sertekn"},"sourcedialog":{"toolbar":"Kelda","title":"Kelda"},"sourcearea":{"toolbar":"Kelda"},"showblocks":{"toolbar":"Vís blokkar"},"removeformat":{"toolbar":"Strika sniðgeving"},"pastetext":{"button":"Innrita som reinan tekst","pasteNotification":"Press %1 to paste. Your browser doesn‘t support pasting with the toolbar button or context menu option.","title":"Innrita som reinan tekst"},"pastefromword":{"confirmCleanup":"Teksturin, tú roynir at seta inn, sýnist at stava frá Word. Skal teksturin reinsast fyrst?","error":"Tað eydnaðist ikki at reinsa tekstin vegna ein internan feil","title":"Innrita frá Word","toolbar":"Innrita frá Word"},"notification":{"closed":"Notification closed."},"maximize":{"maximize":"Maksimera","minimize":"Minimera"},"magicline":{"title":"Insert paragraph here"},"list":{"bulletedlist":"Punktmerktur listi","numberedlist":"Talmerktur listi"},"language":{"button":"Velja tungumál","remove":"Remove language"},"indent":{"indent":"Økja reglubrotarinntriv","outdent":"Minka reglubrotarinntriv"},"image2":{"alt":"Alternativur tekstur","btnUpload":"Send til ambætaran","captioned":"Captioned image","captionPlaceholder":"Caption","infoTab":"Myndaupplýsingar","lockRatio":"Læs lutfallið","menu":"Myndaeginleikar","pathName":"image","pathNameCaption":"caption","resetSize":"Upprunastødd","resizer":"Click and drag to resize","title":"Myndaeginleikar","uploadTab":"Send til ambætaran","urlMissing":"URL til mynd manglar.","altMissing":"Alternative text is missing."},"horizontalrule":{"toolbar":"Ger vatnrætta linju"},"format":{"label":"Skriftsnið","panelTitle":"Skriftsnið","tag_address":"Adressa","tag_div":"Vanligt (DIV)","tag_h1":"Yvirskrift 1","tag_h2":"Yvirskrift 2","tag_h3":"Yvirskrift 3","tag_h4":"Yvirskrift 4","tag_h5":"Yvirskrift 5","tag_h6":"Yvirskrift 6","tag_p":"Vanligt","tag_pre":"Sniðgivið"},"filetools":{"loadError":"Error occurred during file read.","networkError":"Network error occurred during file upload.","httpError404":"HTTP error occurred during file upload (404: File not found).","httpError403":"HTTP error occurred during file upload (403: Forbidden).","httpError":"HTTP error occurred during file upload (error status: %1).","noUrlError":"Upload URL is not defined.","responseError":"Incorrect server response."},"elementspath":{"eleLabel":"Slóð til elementir","eleTitle":"%1 element"},"contextmenu":{"options":"Context Menu Options"},"clipboard":{"copy":"Avrita","copyError":"Trygdaruppseting alnótskagans forðar tekstviðgeranum í at avrita tekstin. Vinarliga nýt knappaborðið til at avrita tekstin (Ctrl/Cmd+C).","cut":"Kvett","cutError":"Trygdaruppseting alnótskagans forðar tekstviðgeranum í at kvetta tekstin. Vinarliga nýt knappaborðið til at kvetta tekstin (Ctrl/Cmd+X).","paste":"Innrita","pasteNotification":"Press %1 to paste. Your browser doesn‘t support pasting with the toolbar button or context menu option.","pasteArea":"Avritingarumráði","pasteMsg":"Paste your content inside the area below and press OK."},"blockquote":{"toolbar":"Blockquote"},"basicstyles":{"bold":"Feit skrift","italic":"Skráskrift","strike":"Yvirstrikað","subscript":"Lækkað skrift","superscript":"Hækkað skrift","underline":"Undirstrikað"},"about":{"copy":"Copyright &copy; $1. All rights reserved.","dlgTitle":"Um CKEditor 4","moreInfo":"Licens upplýsingar finnast á heimasíðu okkara:"},"editor":"Rich Text Editor","editorPanel":"Rich Text Editor panel","common":{"editorHelp":"Trýst ALT og 0 fyri vegleiðing","browseServer":"Ambætarakagi","url":"URL","protocol":"Protokoll","upload":"Send til ambætaran","uploadSubmit":"Send til ambætaran","image":"Myndir","flash":"Flash","form":"Formur","checkbox":"Flugubein","radio":"Radioknøttur","textField":"Tekstteigur","textarea":"Tekstumráði","hiddenField":"Fjaldur teigur","button":"Knøttur","select":"Valskrá","imageButton":"Myndaknøttur","notSet":"<ikki sett>","id":"Id","name":"Navn","langDir":"Tekstkós","langDirLtr":"Frá vinstru til høgru (LTR)","langDirRtl":"Frá høgru til vinstru (RTL)","langCode":"Málkoda","longDescr":"Víðkað URL frágreiðing","cssClass":"Typografi klassar","advisoryTitle":"Vegleiðandi heiti","cssStyle":"Typografi","ok":"Góðkent","cancel":"Avlýs","close":"Lat aftur","preview":"Frumsýn","resize":"Drag fyri at broyta stødd","generalTab":"Generelt","advancedTab":"Fjølbroytt","validateNumberFailed":"Hetta er ikki eitt tal.","confirmNewPage":"Allar ikki goymdar broytingar í hesum innihaldið hvørva. Skal nýggj síða lesast kortini?","confirmCancel":"Nakrir valmøguleikar eru broyttir. Ert tú vísur í, at dialogurin skal latast aftur?","options":"Options","target":"Target","targetNew":"Nýtt vindeyga (_blank)","targetTop":"Vindeyga ovast (_top)","targetSelf":"Sama vindeyga (_self)","targetParent":"Upphavligt vindeyga (_parent)","langDirLTR":"Frá vinstru til høgru (LTR)","langDirRTL":"Frá høgru til vinstru (RTL)","styles":"Style","cssClasses":"Stylesheet Classes","width":"Breidd","height":"Hædd","align":"Justering","left":"Vinstra","right":"Høgra","center":"Miðsett","justify":"Javnir tekstkantar","alignLeft":"Vinstrasett","alignRight":"Høgrasett","alignCenter":"Align Center","alignTop":"Ovast","alignMiddle":"Miðja","alignBottom":"Botnur","alignNone":"Eingin","invalidValue":"Invalid value.","invalidHeight":"Hædd má vera eitt tal.","invalidWidth":"Breidd má vera eitt tal.","invalidLength":"Value specified for the \"%1\" field must be a positive number with or without a valid measurement unit (%2).","invalidCssLength":"Virðið sett í \"%1\" feltið má vera eitt positivt tal, við ella uttan gyldugum CSS mátieind (px, %, in, cm, mm, em, ex, pt, ella pc).","invalidHtmlLength":"Virðið sett í \"%1\" feltiðield má vera eitt positivt tal, við ella uttan gyldugum CSS mátieind (px ella %).","invalidInlineStyle":"Virði specifiserað fyri inline style má hava eitt ella fleiri pør (tuples) skrivað sum \"name : value\", hvørt parið sundurskilt við semi-colon.","cssLengthTooltip":"Skriva eitt tal fyri eitt virði í pixels ella eitt tal við gyldigum CSS eind (px, %, in, cm, mm, em, ex, pt, ella pc).","unavailable":"%1<span class=\"cke_accessibility\">, ikki tøkt</span>","keyboard":{"8":"Backspace","13":"Enter","16":"Shift","17":"Ctrl","18":"Alt","32":"Space","35":"End","36":"Home","46":"Delete","112":"F1","113":"F2","114":"F3","115":"F4","116":"F5","117":"F6","118":"F7","119":"F8","120":"F9","121":"F10","122":"F11","123":"F12","124":"F13","125":"F14","126":"F15","127":"F16","128":"F17","129":"F18","130":"F19","131":"F20","132":"F21","133":"F22","134":"F23","135":"F24","224":"Command"},"keyboardShortcut":"Keyboard shortcut","optionDefault":"Default"}};
\ No newline at end of file
diff --git a/web/core/assets/vendor/ckeditor/lang/fr-ca.js b/web/core/assets/vendor/ckeditor/lang/fr-ca.js
index 0c00dea378..a2c620275d 100644
--- a/web/core/assets/vendor/ckeditor/lang/fr-ca.js
+++ b/web/core/assets/vendor/ckeditor/lang/fr-ca.js
@@ -1,5 +1,5 @@
 /*
-Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2020, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */
 CKEDITOR.lang['fr-ca']={"widget":{"move":"Click and drag to move","label":"%1 widget"},"undo":{"redo":"Refaire","undo":"Annuler"},"toolbar":{"toolbarCollapse":"Enrouler la barre d'outils","toolbarExpand":"Dérouler la barre d'outils","toolbarGroups":{"document":"Document","clipboard":"Presse papier/Annuler","editing":"Édition","forms":"Formulaires","basicstyles":"Styles de base","paragraph":"Paragraphe","links":"Liens","insert":"Insérer","styles":"Styles","colors":"Couleurs","tools":"Outils"},"toolbars":"Barre d'outils de l'éditeur"},"table":{"border":"Taille de la bordure","caption":"Titre","cell":{"menu":"Cellule","insertBefore":"Insérer une cellule avant","insertAfter":"Insérer une cellule après","deleteCell":"Supprimer des cellules","merge":"Fusionner les cellules","mergeRight":"Fusionner à droite","mergeDown":"Fusionner en bas","splitHorizontal":"Scinder la cellule horizontalement","splitVertical":"Scinder la cellule verticalement","title":"Propriétés de la cellule","cellType":"Type de cellule","rowSpan":"Fusion de lignes","colSpan":"Fusion de colonnes","wordWrap":"Retour à la ligne","hAlign":"Alignement horizontal","vAlign":"Alignement vertical","alignBaseline":"Bas du texte","bgColor":"Couleur d'arrière plan","borderColor":"Couleur de bordure","data":"Données","header":"En-tête","yes":"Oui","no":"Non","invalidWidth":"La largeur de cellule doit être un nombre.","invalidHeight":"La hauteur de cellule doit être un nombre.","invalidRowSpan":"La fusion de lignes doit être un nombre entier.","invalidColSpan":"La fusion de colonnes doit être un nombre entier.","chooseColor":"Sélectionner"},"cellPad":"Marge interne des cellules","cellSpace":"Espacement des cellules","column":{"menu":"Colonne","insertBefore":"Insérer une colonne avant","insertAfter":"Insérer une colonne après","deleteColumn":"Supprimer des colonnes"},"columns":"Colonnes","deleteTable":"Supprimer le tableau","headers":"En-têtes","headersBoth":"Les deux.","headersColumn":"Première colonne","headersNone":"Aucun","headersRow":"Première ligne","heightUnit":"height unit","invalidBorder":"La taille de bordure doit être un nombre.","invalidCellPadding":"La marge interne des cellules doit être un nombre positif.","invalidCellSpacing":"L'espacement des cellules doit être un nombre positif.","invalidCols":"Le nombre de colonnes doit être supérieur à 0.","invalidHeight":"La hauteur du tableau doit être un nombre.","invalidRows":"Le nombre de lignes doit être supérieur à 0.","invalidWidth":"La largeur du tableau doit être un nombre.","menu":"Propriétés du tableau","row":{"menu":"Ligne","insertBefore":"Insérer une ligne avant","insertAfter":"Insérer une ligne après","deleteRow":"Supprimer des lignes"},"rows":"Lignes","summary":"Résumé","title":"Propriétés du tableau","toolbar":"Tableau","widthPc":"pourcentage","widthPx":"pixels","widthUnit":"unité de largeur"},"stylescombo":{"label":"Styles","panelTitle":"Styles de formattage","panelTitle1":"Styles de block","panelTitle2":"Styles en ligne","panelTitle3":"Styles d'objet"},"specialchar":{"options":"Option des caractères spéciaux","title":"Sélectionner un caractère spécial","toolbar":"Insérer un caractère spécial"},"sourcedialog":{"toolbar":"Source","title":"Source"},"sourcearea":{"toolbar":"Source"},"showblocks":{"toolbar":"Afficher les blocs"},"removeformat":{"toolbar":"Supprimer le formatage"},"pastetext":{"button":"Coller comme texte","pasteNotification":"Press %1 to paste. Your browser doesn‘t support pasting with the toolbar button or context menu option.","title":"Coller comme texte"},"pastefromword":{"confirmCleanup":"Le texte que vous tentez de coller semble provenir de Word.  Désirez vous le nettoyer avant de coller?","error":"Il n'a pas été possible de nettoyer les données collées du à une erreur interne","title":"Coller de Word","toolbar":"Coller de Word"},"notification":{"closed":"Notification closed."},"maximize":{"maximize":"Maximizer","minimize":"Minimizer"},"magicline":{"title":"Insérer le paragraphe ici"},"list":{"bulletedlist":"Liste à puces","numberedlist":"Liste numérotée"},"language":{"button":"Set language","remove":"Remove language"},"indent":{"indent":"Augmenter le retrait","outdent":"Diminuer le retrait"},"image2":{"alt":"Texte alternatif","btnUpload":"Envoyer sur le serveur","captioned":"Captioned image","captionPlaceholder":"Caption","infoTab":"Informations sur l'image2","lockRatio":"Verrouiller les proportions","menu":"Propriétés de l'image2","pathName":"image","pathNameCaption":"caption","resetSize":"Taille originale","resizer":"Click and drag to resize","title":"Propriétés de l'image2","uploadTab":"Téléverser","urlMissing":"L'URL de la source de l'image est manquant.","altMissing":"Alternative text is missing."},"horizontalrule":{"toolbar":"Insérer un séparateur horizontale"},"format":{"label":"Format","panelTitle":"Format de paragraphe","tag_address":"Adresse","tag_div":"Normal (DIV)","tag_h1":"En-tête 1","tag_h2":"En-tête 2","tag_h3":"En-tête 3","tag_h4":"En-tête 4","tag_h5":"En-tête 5","tag_h6":"En-tête 6","tag_p":"Normal","tag_pre":"Formaté"},"filetools":{"loadError":"Error occurred during file read.","networkError":"Network error occurred during file upload.","httpError404":"HTTP error occurred during file upload (404: File not found).","httpError403":"HTTP error occurred during file upload (403: Forbidden).","httpError":"HTTP error occurred during file upload (error status: %1).","noUrlError":"Upload URL is not defined.","responseError":"Incorrect server response."},"elementspath":{"eleLabel":"Chemin d'éléments","eleTitle":"element %1"},"contextmenu":{"options":"Options du menu contextuel"},"clipboard":{"copy":"Copier","copyError":"Les paramètres de sécurité de votre navigateur empêchent l'éditeur de copier automatiquement vos données. Veuillez utiliser les équivalents claviers (Ctrl/Cmd+C).","cut":"Couper","cutError":"Les paramètres de sécurité de votre navigateur empêchent l'éditeur de couper automatiquement vos données. Veuillez utiliser les équivalents claviers (Ctrl/Cmd+X).","paste":"Coller","pasteNotification":"Press %1 to paste. Your browser doesn‘t support pasting with the toolbar button or context menu option.","pasteArea":"Coller la zone","pasteMsg":"Paste your content inside the area below and press OK."},"blockquote":{"toolbar":"Citation"},"basicstyles":{"bold":"Gras","italic":"Italique","strike":"Barré","subscript":"Indice","superscript":"Exposant","underline":"Souligné"},"about":{"copy":"Copyright &copy; $1. Tous droits réservés.","dlgTitle":"À propos de CKEditor 4","moreInfo":"Pour les informations de licence, consulter notre site internet:"},"editor":"Éditeur de texte enrichi","editorPanel":"Rich Text Editor panel","common":{"editorHelp":"Appuyez sur 0 pour de l'aide","browseServer":"Parcourir le serveur","url":"URL","protocol":"Protocole","upload":"Envoyer","uploadSubmit":"Envoyer au serveur","image":"Image","flash":"Animation Flash","form":"Formulaire","checkbox":"Case à cocher","radio":"Bouton radio","textField":"Champ texte","textarea":"Zone de texte","hiddenField":"Champ caché","button":"Bouton","select":"Liste déroulante","imageButton":"Bouton image","notSet":"<Par défaut>","id":"Id","name":"Nom","langDir":"Sens d'écriture","langDirLtr":"De gauche à droite (LTR)","langDirRtl":"De droite à gauche (RTL)","langCode":"Code langue","longDescr":"URL de description longue","cssClass":"Classes CSS","advisoryTitle":"Titre","cssStyle":"Style","ok":"OK","cancel":"Annuler","close":"Fermer","preview":"Aperçu","resize":"Redimensionner","generalTab":"Général","advancedTab":"Avancé","validateNumberFailed":"Cette valeur n'est pas un nombre.","confirmNewPage":"Les changements non sauvegardés seront perdus. Êtes-vous certain de vouloir charger une nouvelle page?","confirmCancel":"Certaines options ont été modifiées.  Êtes-vous certain de vouloir fermer?","options":"Options","target":"Cible","targetNew":"Nouvelle fenêtre (_blank)","targetTop":"Fenêtre supérieur (_top)","targetSelf":"Cette fenêtre (_self)","targetParent":"Fenêtre parent (_parent)","langDirLTR":"De gauche à droite (LTR)","langDirRTL":"De droite à gauche (RTL)","styles":"Style","cssClasses":"Classe CSS","width":"Largeur","height":"Hauteur","align":"Alignement","left":"Gauche","right":"Droite","center":"Centré","justify":"Justifié","alignLeft":"Aligner à gauche","alignRight":"Aligner à Droite","alignCenter":"Align Center","alignTop":"Haut","alignMiddle":"Milieu","alignBottom":"Bas","alignNone":"None","invalidValue":"Valeur invalide.","invalidHeight":"La hauteur doit être un nombre.","invalidWidth":"La largeur doit être un nombre.","invalidLength":"Value specified for the \"%1\" field must be a positive number with or without a valid measurement unit (%2).","invalidCssLength":"La valeur spécifiée pour le champ \"%1\" doit être un nombre positif avec ou sans unité de mesure CSS valide (px, %, in, cm, mm, em, ex, pt, ou pc).","invalidHtmlLength":"La valeur spécifiée pour le champ \"%1\" doit être un nombre positif avec ou sans unité de mesure HTML valide (px ou %).","invalidInlineStyle":"La valeur spécifiée pour le style intégré doit être composée d'un ou plusieurs couples de valeur au format \"nom : valeur\", separés par des points-virgules.","cssLengthTooltip":"Entrer un nombre pour la valeur en pixel ou un nombre avec une unité CSS valide (px, %, in, cm, mm, em, ex, pt, ou pc).","unavailable":"%1<span class=\"cke_accessibility\">, indisponible</span>","keyboard":{"8":"Backspace","13":"Enter","16":"Shift","17":"Ctrl","18":"Alt","32":"Space","35":"End","36":"Home","46":"Delete","112":"F1","113":"F2","114":"F3","115":"F4","116":"F5","117":"F6","118":"F7","119":"F8","120":"F9","121":"F10","122":"F11","123":"F12","124":"F13","125":"F14","126":"F15","127":"F16","128":"F17","129":"F18","130":"F19","131":"F20","132":"F21","133":"F22","134":"F23","135":"F24","224":"Command"},"keyboardShortcut":"Keyboard shortcut","optionDefault":"Default"}};
\ No newline at end of file
diff --git a/web/core/assets/vendor/ckeditor/lang/fr.js b/web/core/assets/vendor/ckeditor/lang/fr.js
index 0f3bf8d9e2..39e714191a 100644
--- a/web/core/assets/vendor/ckeditor/lang/fr.js
+++ b/web/core/assets/vendor/ckeditor/lang/fr.js
@@ -1,5 +1,5 @@
 /*
-Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2020, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */
 CKEDITOR.lang['fr']={"widget":{"move":"Cliquer et glisser pour déplacer","label":"Élément %1"},"undo":{"redo":"Rétablir","undo":"Annuler"},"toolbar":{"toolbarCollapse":"Enrouler la barre d'outils","toolbarExpand":"Dérouler la barre d'outils","toolbarGroups":{"document":"Document","clipboard":"Presse-papier/Défaire","editing":"Édition","forms":"Formulaires","basicstyles":"Styles de base","paragraph":"Paragraphe","links":"Liens","insert":"Insérer","styles":"Styles","colors":"Couleurs","tools":"Outils"},"toolbars":"Barres d'outils de l'éditeur"},"table":{"border":"Taille de la bordure","caption":"Titre du tableau","cell":{"menu":"Cellule","insertBefore":"Insérer une cellule avant","insertAfter":"Insérer une cellule après","deleteCell":"Supprimer les cellules","merge":"Fusionner les cellules","mergeRight":"Fusionner vers la droite","mergeDown":"Fusionner vers le bas","splitHorizontal":"Scinder la cellule horizontalement","splitVertical":"Scinder la cellule verticalement","title":"Propriétés de la cellule","cellType":"Type de cellule","rowSpan":"Lignes occupées","colSpan":"Colonnes occupées","wordWrap":"Césure","hAlign":"Alignement horizontal","vAlign":"Alignement vertical","alignBaseline":"Ligne de base","bgColor":"Couleur d'arrière-plan","borderColor":"Couleur de bordure","data":"Données","header":"En-tête","yes":"Oui","no":"Non","invalidWidth":"La largeur de la cellule doit être un nombre.","invalidHeight":"La hauteur de la cellule doit être un nombre.","invalidRowSpan":"Le nombre de colonnes occupées doit être un nombre entier.","invalidColSpan":"Le nombre de colonnes occupées doit être un nombre entier.","chooseColor":"Choisir"},"cellPad":"Marge interne des cellules","cellSpace":"Espacement entre les cellules","column":{"menu":"Colonne","insertBefore":"Insérer une colonne avant","insertAfter":"Insérer une colonne après","deleteColumn":"Supprimer les colonnes"},"columns":"Colonnes","deleteTable":"Supprimer le tableau","headers":"En-têtes","headersBoth":"Les deux","headersColumn":"Première colonne","headersNone":"Aucun","headersRow":"Première ligne","heightUnit":"height unit","invalidBorder":"La taille de la bordure doit être un nombre.","invalidCellPadding":"La marge interne des cellules doit être un nombre positif.","invalidCellSpacing":"L'espacement entre les cellules doit être un nombre positif.","invalidCols":"Le nombre de colonnes doit être supérieur à 0.","invalidHeight":"La hauteur du tableau doit être un nombre.","invalidRows":"Le nombre de lignes doit être supérieur à 0.","invalidWidth":"La largeur du tableau doit être un nombre.","menu":"Propriétés du tableau","row":{"menu":"Ligne","insertBefore":"Insérer une ligne avant","insertAfter":"Insérer une ligne après","deleteRow":"Supprimer les lignes"},"rows":"Lignes","summary":"Résumé (description)","title":"Propriétés du tableau","toolbar":"Tableau","widthPc":"pour cent","widthPx":"pixels","widthUnit":"unité de largeur"},"stylescombo":{"label":"Styles","panelTitle":"Styles de mise en forme","panelTitle1":"Styles de bloc","panelTitle2":"Styles en ligne","panelTitle3":"Styles d'objet"},"specialchar":{"options":"Options des caractères spéciaux","title":"Sélectionner un caractère","toolbar":"Insérer un caractère spécial"},"sourcedialog":{"toolbar":"Source","title":"Source"},"sourcearea":{"toolbar":"Source"},"showblocks":{"toolbar":"Afficher les blocs"},"removeformat":{"toolbar":"Supprimer la mise en forme"},"pastetext":{"button":"Coller comme texte brut","pasteNotification":"Utilisez le raccourci %1 pour coller. Votre navigateur n'accepte pas de coller à l'aide du bouton ou du menu contextuel.","title":"Coller comme texte brut"},"pastefromword":{"confirmCleanup":"Le texte à coller semble provenir de Word. Désirez-vous le nettoyer avant de coller ?","error":"Les données collées n'ont pas pu être nettoyées à cause d'une erreur interne","title":"Coller depuis Word","toolbar":"Coller depuis Word"},"notification":{"closed":"Notification fermée."},"maximize":{"maximize":"Agrandir","minimize":"Réduire"},"magicline":{"title":"Insérer un paragraphe ici"},"list":{"bulletedlist":"Insérer/Supprimer une liste à puces","numberedlist":"Insérer/Supprimer une liste numérotée"},"language":{"button":"Définir la langue","remove":"Supprimer la langue"},"indent":{"indent":"Augmenter le retrait","outdent":"Diminuer le retrait"},"image2":{"alt":"Texte alternatif","btnUpload":"Envoyer sur le serveur","captioned":"Image légendée","captionPlaceholder":"Légende","infoTab":"Informations sur l'image","lockRatio":"Conserver les proportions","menu":"Propriétés de l'image","pathName":"image","pathNameCaption":"légende","resetSize":"Réinitialiser la taille","resizer":"Cliquer et glisser pour redimensionner","title":"Propriétés de l'image","uploadTab":"Téléverser","urlMissing":"L'URL source de l'image est manquante.","altMissing":"Vous n'avez pas indiqué de texte de remplacement."},"horizontalrule":{"toolbar":"Ligne horizontale"},"format":{"label":"Format","panelTitle":"Format de paragraphe","tag_address":"Adresse","tag_div":"Division","tag_h1":"Titre 1","tag_h2":"Titre 2","tag_h3":"Titre 3","tag_h4":"Titre 4","tag_h5":"Titre 5","tag_h6":"Titre 6","tag_p":"Normal","tag_pre":"Préformaté"},"filetools":{"loadError":"Une erreur est survenue lors de la lecture du fichier.","networkError":"Une erreur réseau est survenue lors du téléversement du fichier.","httpError404":"Une erreur HTTP est survenue durant le téléversement du fichier (404 : fichier non trouvé).","httpError403":"Une erreur HTTP est survenue durant le téléversement du fichier (403 : accès refusé).","httpError":"Une erreur HTTP est survenue durant le téléversement du fichier (erreur : %1).","noUrlError":"L'URL de téléversement n'est pas spécifiée.","responseError":"Réponse du serveur incorrecte."},"elementspath":{"eleLabel":"Chemin des éléments","eleTitle":"Élément %1"},"contextmenu":{"options":"Options du menu contextuel"},"clipboard":{"copy":"Copier","copyError":"Les paramètres de sécurité de votre navigateur n'autorisent pas l'éditeur à exécuter automatiquement l'opération « Copier ». Veuillez utiliser le raccourci clavier à cet effet (Ctrl/Cmd+C).","cut":"Couper","cutError":"Les paramètres de sécurité de votre navigateur n'autorisent pas l'éditeur à exécuter automatiquement l'opération « Couper ». Veuillez utiliser le raccourci clavier à cet effet (Ctrl/Cmd+X).","paste":"Coller","pasteNotification":"Utilisez le raccourci %1 pour coller. Votre navigateur n'accepte pas de coller à l'aide du bouton ou du menu contextuel.","pasteArea":"Coller la zone","pasteMsg":"Collez votre contenu dans la zone de saisie ci-dessous et cliquez OK."},"blockquote":{"toolbar":"Citation"},"basicstyles":{"bold":"Gras","italic":"Italique","strike":"Barré","subscript":"Indice","superscript":"Exposant","underline":"Souligné"},"about":{"copy":"Copyright &copy; $1. Tous droits réservés.","dlgTitle":"À propos de CKEditor 4","moreInfo":"Pour les informations de licence, veuillez visiter notre site web :"},"editor":"Éditeur de texte enrichi","editorPanel":"Tableau de bord de l'éditeur de texte enrichi","common":{"editorHelp":"Utilisez le raccourci Alt-0 pour obtenir de l'aide","browseServer":"Parcourir le serveur","url":"URL","protocol":"Protocole","upload":"Télécharger","uploadSubmit":"Envoyer sur le serveur","image":"Image","flash":"Flash","form":"Formulaire","checkbox":"Case à cocher","radio":"Bouton radio","textField":"Champ texte","textarea":"Zone de texte","hiddenField":"Champ invisible","button":"Bouton","select":"Liste déroulante","imageButton":"Bouton avec image","notSet":"<indéfini>","id":"ID","name":"Nom","langDir":"Sens d'écriture","langDirLtr":"Gauche à droite (LTR)","langDirRtl":"Droite à gauche (RTL)","langCode":"Code de langue","longDescr":"URL de description longue","cssClass":"Classes de style","advisoryTitle":"Infobulle","cssStyle":"Style","ok":"OK","cancel":"Annuler","close":"Fermer","preview":"Aperçu","resize":"Redimensionner","generalTab":"Général","advancedTab":"Avancé","validateNumberFailed":"Cette valeur n'est pas un nombre.","confirmNewPage":"Les changements non sauvegardés seront perdus. Êtes-vous sûr de vouloir charger une nouvelle page ?","confirmCancel":"Certaines options ont été modifiées. Êtes-vous sûr de vouloir fermer ?","options":"Options","target":"Cible","targetNew":"Nouvelle fenêtre (_blank)","targetTop":"Fenêtre supérieure (_top)","targetSelf":"Même fenêtre (_self)","targetParent":"Fenêtre parent (_parent)","langDirLTR":"Gauche à droite (LTR)","langDirRTL":"Droite à gauche (RTL)","styles":"Style","cssClasses":"Classes de style","width":"Largeur","height":"Hauteur","align":"Alignement","left":"Gauche","right":"Droite","center":"Centrer","justify":"Justifier","alignLeft":"Aligner à gauche","alignRight":"Aligner à droite","alignCenter":"Aligner au centre","alignTop":"Haut","alignMiddle":"Milieu","alignBottom":"Bas","alignNone":"Aucun","invalidValue":"Valeur invalide.","invalidHeight":"La hauteur doit être un nombre.","invalidWidth":"La largeur doit être un nombre.","invalidLength":"La valeur de \"%1\" doit être un nombre positif avec ou sans unité de mesure (%2).","invalidCssLength":"La valeur spécifiée pour le champ « %1 » doit être un nombre positif avec ou sans unité de mesure CSS valide (px, %, in, cm, mm, em, ex, pt, ou pc).","invalidHtmlLength":"La valeur spécifiée pour le champ « %1 » doit être un nombre positif avec ou sans unité de mesure HTML valide (px ou %).","invalidInlineStyle":"La valeur spécifiée pour le style en ligne doit être composée d'un ou plusieurs couples au format « nom : valeur », séparés par des points-virgules.","cssLengthTooltip":"Entrer un nombre pour une valeur en pixels ou un nombre avec une unité de mesure CSS valide (px, %, in, cm, mm, em, ex, pt, ou pc).","unavailable":"%1<span class=\"cke_accessibility\">, indisponible</span>","keyboard":{"8":"Retour arrière","13":"Entrée","16":"Majuscule","17":"Ctrl","18":"Alt","32":"Espace","35":"Fin","36":"Origine","46":"Supprimer","112":"F1","113":"F2","114":"F3","115":"F4","116":"F5","117":"F6","118":"F7","119":"F8","120":"F9","121":"F10","122":"F11","123":"F12","124":"F13","125":"F14","126":"F15","127":"F16","128":"F17","129":"F18","130":"F19","131":"F20","132":"F21","133":"F22","134":"F23","135":"F24","224":"Commande"},"keyboardShortcut":"Raccourci clavier","optionDefault":"Par défaut"}};
\ No newline at end of file
diff --git a/web/core/assets/vendor/ckeditor/lang/gl.js b/web/core/assets/vendor/ckeditor/lang/gl.js
index fa9830b207..02a7f9cab8 100644
--- a/web/core/assets/vendor/ckeditor/lang/gl.js
+++ b/web/core/assets/vendor/ckeditor/lang/gl.js
@@ -1,5 +1,5 @@
 /*
-Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2020, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */
 CKEDITOR.lang['gl']={"widget":{"move":"Prema e arrastre para mover","label":"Trebello %1"},"undo":{"redo":"Refacer","undo":"Desfacer"},"toolbar":{"toolbarCollapse":"Contraer a barra de ferramentas","toolbarExpand":"Expandir a barra de ferramentas","toolbarGroups":{"document":"Documento","clipboard":"Portapapeis/desfacer","editing":"Edición","forms":"Formularios","basicstyles":"Estilos básicos","paragraph":"Paragrafo","links":"Ligazóns","insert":"Inserir","styles":"Estilos","colors":"Cores","tools":"Ferramentas"},"toolbars":"Barras de ferramentas do editor"},"table":{"border":"Tamaño do bordo","caption":"Título","cell":{"menu":"Cela","insertBefore":"Inserir a cela á esquerda","insertAfter":"Inserir a cela á dereita","deleteCell":"Eliminar celas","merge":"Combinar celas","mergeRight":"Combinar á dereita","mergeDown":"Combinar cara abaixo","splitHorizontal":"Dividir a cela en horizontal","splitVertical":"Dividir a cela en vertical","title":"Propiedades da cela","cellType":"Tipo de cela","rowSpan":"Expandir filas","colSpan":"Expandir columnas","wordWrap":"Axustar ao contido","hAlign":"Aliñación horizontal","vAlign":"Aliñación vertical","alignBaseline":"Liña de base","bgColor":"Cor do fondo","borderColor":"Cor do bordo","data":"Datos","header":"Cabeceira","yes":"Si","no":"Non","invalidWidth":"O largo da cela debe ser un número.","invalidHeight":"O alto da cela debe ser un número.","invalidRowSpan":"A expansión de filas debe ser un número enteiro.","invalidColSpan":"A expansión de columnas debe ser un número enteiro.","chooseColor":"Escoller"},"cellPad":"Marxe interior da cela","cellSpace":"Marxe entre celas","column":{"menu":"Columna","insertBefore":"Inserir a columna á esquerda","insertAfter":"Inserir a columna á dereita","deleteColumn":"Borrar Columnas"},"columns":"Columnas","deleteTable":"Borrar Táboa","headers":"Cabeceiras","headersBoth":"Ambas","headersColumn":"Primeira columna","headersNone":"Ningún","headersRow":"Primeira fila","heightUnit":"height unit","invalidBorder":"O tamaño do bordo debe ser un número.","invalidCellPadding":"A marxe interior debe ser un número positivo.","invalidCellSpacing":"A marxe entre celas debe ser un número positivo.","invalidCols":"O número de columnas debe ser un número maior que 0.","invalidHeight":"O alto da táboa debe ser un número.","invalidRows":"O número de filas debe ser un número maior que 0","invalidWidth":"O largo da táboa debe ser un número.","menu":"Propiedades da táboa","row":{"menu":"Fila","insertBefore":"Inserir a fila por riba","insertAfter":"Inserir a fila por baixo","deleteRow":"Eliminar filas"},"rows":"Filas","summary":"Resumo","title":"Propiedades da táboa","toolbar":"Taboa","widthPc":"porcentaxe","widthPx":"píxeles","widthUnit":"unidade do largo"},"stylescombo":{"label":"Estilos","panelTitle":"Estilos de formatando","panelTitle1":"Estilos de bloque","panelTitle2":"Estilos de liña","panelTitle3":"Estilos de obxecto"},"specialchar":{"options":"Opcións de caracteres especiais","title":"Seleccione un carácter especial","toolbar":"Inserir un carácter especial"},"sourcedialog":{"toolbar":"Orixe","title":"Orixe"},"sourcearea":{"toolbar":"Orixe"},"showblocks":{"toolbar":"Amosar os bloques"},"removeformat":{"toolbar":"Retirar o formato"},"pastetext":{"button":"Pegar como texto simple","pasteNotification":"Prema %1 para pegar. O seu navegador non admite pegar co botón da barra de ferramentas ou coa opción do menú contextual.","title":"Pegar como texto simple"},"pastefromword":{"confirmCleanup":"O texto que quere pegar semella ser copiado desde o Word. Quere depuralo antes de pegalo?","error":"Non foi posíbel depurar os datos pegados por mor dun erro interno","title":"Pegar desde Word","toolbar":"Pegar desde Word"},"notification":{"closed":"Notificación pechada."},"maximize":{"maximize":"Maximizar","minimize":"Minimizar"},"magicline":{"title":"Inserir aquí o parágrafo"},"list":{"bulletedlist":"Inserir/retirar lista viñeteada","numberedlist":"Inserir/retirar lista numerada"},"language":{"button":"Estabelezer o idioma","remove":"Retirar o idioma"},"indent":{"indent":"Aumentar a sangría","outdent":"Reducir a sangría"},"image2":{"alt":"Texto alternativo","btnUpload":"Enviar ao servidor","captioned":"Imaxe con lenda","captionPlaceholder":"Lenda","infoTab":"Información da imaxe","lockRatio":"Proporcional","menu":"Propiedades da imaxe","pathName":"Imaxe","pathNameCaption":"lenda","resetSize":"Tamaño orixinal","resizer":"Prema e arrastre para axustar o tamaño","title":"Propiedades da imaxe","uploadTab":"Cargar","urlMissing":"Non se atopa o URL da imaxe.","altMissing":"Non foi posíbel atopar o texto alternativo."},"horizontalrule":{"toolbar":"Inserir unha liña horizontal"},"format":{"label":"Formato","panelTitle":"Formato do parágrafo","tag_address":"Enderezo","tag_div":"Normal  (DIV)","tag_h1":"Enacabezado 1","tag_h2":"Encabezado 2","tag_h3":"Encabezado 3","tag_h4":"Encabezado 4","tag_h5":"Encabezado 5","tag_h6":"Encabezado 6","tag_p":"Normal","tag_pre":"Formatado"},"filetools":{"loadError":"Produciuse un erro durante a lectura do ficheiro.","networkError":"Produciuse un erro na rede durante o envío do ficheiro.","httpError404":"Produciuse un erro HTTP durante o envío do ficheiro (404: Ficheiro non atopado).","httpError403":"Produciuse un erro HTTP durante o envío do ficheiro (403: Acceso denegado).","httpError":"Produciuse un erro HTTP durante o envío do ficheiro (erro de estado: %1).","noUrlError":"Non foi definido o URL para o envío.","responseError":"Resposta incorrecta do servidor."},"elementspath":{"eleLabel":"Ruta dos elementos","eleTitle":"Elemento %1"},"contextmenu":{"options":"Opcións do menú contextual"},"clipboard":{"copy":"Copiar","copyError":"Os axustes de seguranza do seu navegador non permiten que o editor realice automaticamente as tarefas de copia. Use o teclado para iso (Ctrl/Cmd+C).","cut":"Cortar","cutError":"Os axustes de seguranza do seu navegador non permiten que o editor realice automaticamente as tarefas de corte. Use o teclado para iso (Ctrl/Cmd+X).","paste":"Pegar","pasteNotification":"Prema %1 para pegar. O seu navegador non admite pegar co botón da barra de ferramentas ou coa opción do menú contextual.","pasteArea":"Zona de pegado","pasteMsg":"Pegue o contido dentro da área de abaixo e prema Aceptar."},"blockquote":{"toolbar":"Cita"},"basicstyles":{"bold":"Negra","italic":"Cursiva","strike":"Riscado","subscript":"Subíndice","superscript":"Superíndice","underline":"Subliñado"},"about":{"copy":"Copyright &copy; $1. Todos os dereitos reservados.","dlgTitle":"Sobre o CKEditor 4","moreInfo":"Para obter  información sobre a licenza, visite o noso sitio web:"},"editor":"Editor de texto mellorado","editorPanel":"Panel do editor de texto mellorado","common":{"editorHelp":"Prema ALT 0 para obter axuda","browseServer":"Examinar o servidor","url":"URL","protocol":"Protocolo","upload":"Enviar","uploadSubmit":"Enviar ao servidor","image":"Imaxe","flash":"Flash","form":"Formulario","checkbox":"Caixa de selección","radio":"Botón de opción","textField":"Campo de texto","textarea":"Área de texto","hiddenField":"Campo agochado","button":"Botón","select":"Campo de selección","imageButton":"Botón de imaxe","notSet":"<sen estabelecer>","id":"ID","name":"Nome","langDir":"Dirección de escritura do idioma","langDirLtr":"Esquerda a dereita (LTR)","langDirRtl":"Dereita a esquerda (RTL)","langCode":"Código do idioma","longDescr":"Descrición completa do URL","cssClass":"Clases da folla de estilos","advisoryTitle":"Título","cssStyle":"Estilo","ok":"Aceptar","cancel":"Cancelar","close":"Pechar","preview":"Vista previa","resize":"Redimensionar","generalTab":"Xeral","advancedTab":"Avanzado","validateNumberFailed":"Este valor non é un número.","confirmNewPage":"Calquera cambio que non gardara neste contido perderase.\r\nConfirma que quere cargar unha páxina nova?","confirmCancel":"Algunhas das opcións foron cambiadas.\r\nConfirma que quere pechar o diálogo?","options":"Opcións","target":"Destino","targetNew":"Nova xanela (_blank)","targetTop":"Xanela principal (_top)","targetSelf":"Mesma xanela (_self)","targetParent":"Xanela superior (_parent)","langDirLTR":"Esquerda a dereita (LTR)","langDirRTL":"Dereita a esquerda (RTL)","styles":"Estilo","cssClasses":"Clases da folla de estilos","width":"Largo","height":"Alto","align":"Aliñamento","left":"Esquerda","right":"Dereita","center":"Centro","justify":"Xustificado","alignLeft":"Aliñar á esquerda","alignRight":"Aliñar á dereita","alignCenter":"Aliñar ao centro","alignTop":"Arriba","alignMiddle":"Centro","alignBottom":"Abaixo","alignNone":"Ningún","invalidValue":"Valor incorrecto.","invalidHeight":"O alto debe ser un número.","invalidWidth":"O largo debe ser un número.","invalidLength":"O valor especificado para o campo «%1» debe ser un número positivo con ou sen unha unidade de medida correcta (%2).","invalidCssLength":"O valor especificado para o campo «%1» debe ser un número positivo con ou sen unha unidade de medida CSS correcta (px, %, in, cm, mm, em, ex, pt, ou pc).","invalidHtmlLength":"O valor especificado para o campo «%1» debe ser un número positivo con ou sen unha unidade de medida HTML correcta (px ou %).","invalidInlineStyle":"O valor especificado no estilo en liña debe consistir nunha ou máis tuplas co formato «nome : valor», separadas por punto e coma.","cssLengthTooltip":"Escriba un número para o valor en píxeles ou un número cunha unidade CSS correcta (px, %, in, cm, mm, em, ex, pt, ou pc).","unavailable":"%1<span class=\"cke_accessibility\">, non dispoñíbel</span>","keyboard":{"8":"Ir atrás","13":"Intro","16":"Maiús","17":"Ctrl","18":"Alt","32":"Espazo","35":"Fin","36":"Inicio","46":"Supr","112":"F1","113":"F2","114":"F3","115":"F4","116":"F5","117":"F6","118":"F7","119":"F8","120":"F9","121":"F10","122":"F11","123":"F12","124":"F13","125":"F14","126":"F15","127":"F16","128":"F17","129":"F18","130":"F19","131":"F20","132":"F21","133":"F22","134":"F23","135":"F24","224":"Orde"},"keyboardShortcut":"Atallo de teclado","optionDefault":"Predeterminado"}};
\ No newline at end of file
diff --git a/web/core/assets/vendor/ckeditor/lang/gu.js b/web/core/assets/vendor/ckeditor/lang/gu.js
index 0f30e9ea07..82e13dbe73 100644
--- a/web/core/assets/vendor/ckeditor/lang/gu.js
+++ b/web/core/assets/vendor/ckeditor/lang/gu.js
@@ -1,5 +1,5 @@
 /*
-Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2020, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */
 CKEDITOR.lang['gu']={"widget":{"move":"Click and drag to move","label":"%1 widget"},"undo":{"redo":"રિડૂ; પછી હતી એવી સ્થિતિ પાછી લાવવી","undo":"રદ કરવું; પહેલાં હતી એવી સ્થિતિ પાછી લાવવી"},"toolbar":{"toolbarCollapse":"ટૂલબાર નાનું કરવું","toolbarExpand":"ટૂલબાર મોટું કરવું","toolbarGroups":{"document":"દસ્તાવેજ","clipboard":"ક્લિપબોર્ડ/અન","editing":"એડીટ કરવું","forms":"ફોર્મ","basicstyles":"બેસિક્ સ્ટાઇલ","paragraph":"ફકરો","links":"લીંક","insert":"ઉમેરવું","styles":"સ્ટાઇલ","colors":"રંગ","tools":"ટૂલ્સ"},"toolbars":"એડીટર ટૂલ બાર"},"table":{"border":"કોઠાની બાજુ(બોર્ડર) સાઇઝ","caption":"મથાળું/કૅપ્શન ","cell":{"menu":"કોષના ખાના","insertBefore":"પહેલાં કોષ ઉમેરવો","insertAfter":"પછી કોષ ઉમેરવો","deleteCell":"કોષ ડિલીટ/કાઢી નાખવો","merge":"કોષ ભેગા કરવા","mergeRight":"જમણી બાજુ ભેગા કરવા","mergeDown":"નીચે ભેગા કરવા","splitHorizontal":"કોષને સમસ્તરીય વિભાજન કરવું","splitVertical":"કોષને સીધું ને ઊભું વિભાજન કરવું","title":"સેલના ગુણ","cellType":"સેલનો પ્રકાર","rowSpan":"આડી કટારની જગ્યા","colSpan":"ઊભી કતારની જગ્યા","wordWrap":"વર્ડ રેપ","hAlign":"સપાટ લાઈનદોરી","vAlign":"ઊભી લાઈનદોરી","alignBaseline":"બસે લાઈન","bgColor":"પાછાળનો રંગ","borderColor":"બોર્ડેર રંગ","data":"સ્વીકૃત માહિતી","header":"મથાળું","yes":"હા","no":"ના","invalidWidth":"સેલની પોહલાઈ આંકડો હોવો જોઈએ.","invalidHeight":"સેલની ઊંચાઈ આંકડો હોવો જોઈએ.","invalidRowSpan":"રો સ્પાન આંકડો હોવો જોઈએ.","invalidColSpan":"કોલમ સ્પાન આંકડો હોવો જોઈએ.","chooseColor":"પસંદ કરવું"},"cellPad":"સેલ પૅડિંગ","cellSpace":"સેલ અંતર","column":{"menu":"કૉલમ/ઊભી કટાર","insertBefore":"પહેલાં કૉલમ/ઊભી કટાર ઉમેરવી","insertAfter":"પછી કૉલમ/ઊભી કટાર ઉમેરવી","deleteColumn":"કૉલમ/ઊભી કટાર ડિલીટ/કાઢી નાખવી"},"columns":"કૉલમ/ઊભી કટાર","deleteTable":"કોઠો ડિલીટ/કાઢી નાખવું","headers":"મથાળા","headersBoth":"બેવું","headersColumn":"પહેલી ઊભી કટાર","headersNone":"નથી ","headersRow":"પહેલી  કટાર","heightUnit":"height unit","invalidBorder":"બોર્ડર એક આંકડો હોવો જોઈએ","invalidCellPadding":"સેલની અંદરની જગ્યા સુન્ય કરતા વધારે હોવી જોઈએ.","invalidCellSpacing":"સેલ વચ્ચેની જગ્યા સુન્ય કરતા વધારે હોવી જોઈએ.","invalidCols":"ઉભી કટાર, 0 કરતા વધારે હોવી જોઈએ.","invalidHeight":"ટેબલની ઊંચાઈ આંકડો હોવો જોઈએ.","invalidRows":"આડી કટાર, 0 કરતા વધારે હોવી જોઈએ.","invalidWidth":"ટેબલની પોહલાઈ આંકડો હોવો જોઈએ.","menu":"ટેબલ, કોઠાનું મથાળું","row":{"menu":"પંક્તિના ખાના","insertBefore":"પહેલાં પંક્તિ ઉમેરવી","insertAfter":"પછી પંક્તિ ઉમેરવી","deleteRow":"પંક્તિઓ ડિલીટ/કાઢી નાખવી"},"rows":"પંક્તિના ખાના","summary":"ટૂંકો એહેવાલ","title":"ટેબલ, કોઠાનું મથાળું","toolbar":"ટેબલ, કોઠો","widthPc":"પ્રતિશત","widthPx":"પિકસલ","widthUnit":"પોહાલાઈ એકમ"},"stylescombo":{"label":"શૈલી/રીત","panelTitle":"ફોર્મેટ ","panelTitle1":"બ્લોક ","panelTitle2":"ઈનલાઈન ","panelTitle3":"ઓબ્જેક્ટ પદ્ધતિ"},"specialchar":{"options":"સ્પેશિઅલ કરેક્ટરના વિકલ્પો","title":"સ્પેશિઅલ વિશિષ્ટ અક્ષર પસંદ કરો","toolbar":"વિશિષ્ટ અક્ષર ઇન્સર્ટ/દાખલ કરવું"},"sourcedialog":{"toolbar":"મૂળ કે પ્રાથમિક દસ્તાવેજ","title":"મૂળ કે પ્રાથમિક દસ્તાવેજ"},"sourcearea":{"toolbar":"મૂળ કે પ્રાથમિક દસ્તાવેજ"},"showblocks":{"toolbar":"બ્લૉક બતાવવું"},"removeformat":{"toolbar":"ફૉર્મટ કાઢવું"},"pastetext":{"button":"પેસ્ટ (ટેક્સ્ટ)","pasteNotification":"Press %1 to paste. Your browser doesn‘t support pasting with the toolbar button or context menu option.","title":"પેસ્ટ (ટેક્સ્ટ)"},"pastefromword":{"confirmCleanup":"તમે જે ટેક્ષ્ત્ કોપી કરી રહ્યા છો ટે વર્ડ ની છે. કોપી કરતા પેહલા સાફ કરવી છે?","error":"પેસ્ટ કરેલો ડેટા ઇન્ટરનલ એરર ના લીથે સાફ કરી શકાયો નથી.","title":"પેસ્ટ (વડૅ ટેક્સ્ટ)","toolbar":"પેસ્ટ (વડૅ ટેક્સ્ટ)"},"notification":{"closed":"Notification closed."},"maximize":{"maximize":"મોટું કરવું","minimize":"નાનું કરવું"},"magicline":{"title":"Insert paragraph here"},"list":{"bulletedlist":"બુલેટ સૂચિ","numberedlist":"સંખ્યાંકન સૂચિ"},"language":{"button":"Set language","remove":"Remove language"},"indent":{"indent":"ઇન્ડેન્ટ, લીટીના આરંભમાં જગ્યા વધારવી","outdent":"ઇન્ડેન્ટ લીટીના આરંભમાં જગ્યા ઘટાડવી"},"image2":{"alt":"ઑલ્ટર્નટ ટેક્સ્ટ","btnUpload":"આ સર્વરને મોકલવું","captioned":"Captioned image","captionPlaceholder":"Caption","infoTab":"ચિત્ર ની જાણકારી","lockRatio":"લૉક ગુણોત્તર","menu":"ચિત્રના ગુણ","pathName":"image","pathNameCaption":"caption","resetSize":"રીસેટ સાઇઝ","resizer":"Click and drag to resize","title":"ચિત્રના ગુણ","uploadTab":"અપલોડ","urlMissing":"ઈમેજની મૂળ URL છે નહી.","altMissing":"Alternative text is missing."},"horizontalrule":{"toolbar":"સમસ્તરીય રેખા ઇન્સર્ટ/દાખલ કરવી"},"format":{"label":"ફૉન્ટ ફૉર્મટ, રચનાની શૈલી","panelTitle":"ફૉન્ટ ફૉર્મટ, રચનાની શૈલી","tag_address":"સરનામું","tag_div":"શીર્ષક (DIV)","tag_h1":"શીર્ષક 1","tag_h2":"શીર્ષક 2","tag_h3":"શીર્ષક 3","tag_h4":"શીર્ષક 4","tag_h5":"શીર્ષક 5","tag_h6":"શીર્ષક 6","tag_p":"સામાન્ય","tag_pre":"ફૉર્મટેડ"},"filetools":{"loadError":"Error occurred during file read.","networkError":"Network error occurred during file upload.","httpError404":"HTTP error occurred during file upload (404: File not found).","httpError403":"HTTP error occurred during file upload (403: Forbidden).","httpError":"HTTP error occurred during file upload (error status: %1).","noUrlError":"Upload URL is not defined.","responseError":"Incorrect server response."},"elementspath":{"eleLabel":"એલીમેન્ટ્સ નો ","eleTitle":"એલીમેન્ટ %1"},"contextmenu":{"options":"કોન્તેક્ષ્ત્ મેનુના વિકલ્પો"},"clipboard":{"copy":"નકલ","copyError":"તમારા બ્રાઉઝર ની સુરક્ષિત સેટિંગસ કોપી કરવાની પરવાનગી નથી આપતી.  (Ctrl/Cmd+C) का प्रयोग करें।","cut":"કાપવું","cutError":"તમારા બ્રાઉઝર ની સુરક્ષિત સેટિંગસ કટ કરવાની પરવાનગી નથી આપતી. (Ctrl/Cmd+X) નો ઉપયોગ કરો.","paste":"પેસ્ટ","pasteNotification":"Press %1 to paste. Your browser doesn‘t support pasting with the toolbar button or context menu option.","pasteArea":"પેસ્ટ કરવાની જગ્યા","pasteMsg":"Paste your content inside the area below and press OK."},"blockquote":{"toolbar":"બ્લૉક-કોટ, અવતરણચિહ્નો"},"basicstyles":{"bold":"બોલ્ડ/સ્પષ્ટ","italic":"ઇટેલિક, ત્રાંસા","strike":"છેકી નાખવું","subscript":"એક ચિહ્નની નીચે કરેલું બીજું ચિહ્ન","superscript":"એક ચિહ્ન ઉપર કરેલું બીજું ચિહ્ન.","underline":"અન્ડર્લાઇન, નીચે લીટી"},"about":{"copy":"કોપીરાઈટ &copy; $1. ઓલ રાઈટ્સ ","dlgTitle":"CKEditor વિષે","moreInfo":"લાયસનસની માહિતી માટે અમારી વેબ સાઈટ"},"editor":"રીચ ટેક્ષ્ત્ એડીટર","editorPanel":"વધુ વિકલ્પ વાળુ એડિટર","common":{"editorHelp":"મદદ માટ ALT 0 દબાવો","browseServer":"સર્વર બ્રાઉઝ કરો","url":"URL","protocol":"પ્રોટોકૉલ","upload":"અપલોડ","uploadSubmit":"આ સર્વરને મોકલવું","image":"ચિત્ર","flash":"ફ્લૅશ","form":"ફૉર્મ/પત્રક","checkbox":"ચેક બોક્સ","radio":"રેડિઓ બટન","textField":"ટેક્સ્ટ ફીલ્ડ, શબ્દ ક્ષેત્ર","textarea":"ટેક્સ્ટ એરિઆ, શબ્દ વિસ્તાર","hiddenField":"ગુપ્ત ક્ષેત્ર","button":"બટન","select":"પસંદગી ક્ષેત્ર","imageButton":"ચિત્ર બટન","notSet":"<સેટ નથી>","id":"Id","name":"નામ","langDir":"ભાષા લેખવાની પદ્ધતિ","langDirLtr":"ડાબે થી જમણે (LTR)","langDirRtl":"જમણે થી ડાબે (RTL)","langCode":"ભાષા કોડ","longDescr":"વધારે માહિતી માટે URL","cssClass":"સ્ટાઇલ-શીટ ક્લાસ","advisoryTitle":"મુખ્ય મથાળું","cssStyle":"સ્ટાઇલ","ok":"ઠીક છે","cancel":"રદ કરવું","close":"બંધ કરવું","preview":"જોવું","resize":"ખેંચી ને યોગ્ય કરવું","generalTab":"જનરલ","advancedTab":"અડ્વાન્સડ","validateNumberFailed":"આ રકમ આકડો નથી.","confirmNewPage":"સવે કાર્ય વગરનું ફકરો ખોવાઈ જશે. તમને ખાતરી છે કે તમને નવું પાનું ખોલવું છે?","confirmCancel":"ઘણા વિકલ્પો બદલાયા છે. તમારે આ બોક્ષ્ બંધ કરવું છે?","options":"વિકલ્પો","target":"લક્ષ્ય","targetNew":"નવી વિન્ડો (_blank)","targetTop":"ઉપરની વિન્ડો (_top)","targetSelf":"એજ વિન્ડો (_self)","targetParent":"પેરનટ વિન્ડો (_parent)","langDirLTR":"ડાબે થી જમણે (LTR)","langDirRTL":"જમણે થી ડાબે (RTL)","styles":"શૈલી","cssClasses":"શૈલી કલાસીસ","width":"પહોળાઈ","height":"ઊંચાઈ","align":"લાઇનદોરીમાં ગોઠવવું","left":"ડાબી બાજુ ગોઠવવું","right":"જમણી","center":"મધ્ય સેન્ટર","justify":"બ્લૉક, અંતરાય જસ્ટિફાઇ","alignLeft":"ડાબી બાજુએ/બાજુ તરફ","alignRight":"જમણી બાજુએ/બાજુ તરફ","alignCenter":"Align Center","alignTop":"ઉપર","alignMiddle":"વચ્ચે","alignBottom":"નીચે","alignNone":"કઇ નહી","invalidValue":"અનુચિત મૂલ્ય","invalidHeight":"ઉંચાઈ એક આંકડો હોવો જોઈએ.","invalidWidth":"પોહળ ઈ એક આંકડો હોવો જોઈએ.","invalidLength":"Value specified for the \"%1\" field must be a positive number with or without a valid measurement unit (%2).","invalidCssLength":"\"%1\" ની વેલ્યુ એક પોસીટીવ આંકડો હોવો જોઈએ અથવા CSS measurement unit (px, %, in, cm, mm, em, ex, pt, or pc) વગર.","invalidHtmlLength":"\"%1\" ની વેલ્યુ એક પોસીટીવ આંકડો હોવો જોઈએ અથવા HTML measurement unit (px or %) વગર.","invalidInlineStyle":"ઈનલાઈન  સ્ટાઈલ ની વેલ્યુ  \"name : value\" ના ફોર્મેટ માં હોવી જોઈએ, વચ્ચે સેમી-કોલોન જોઈએ.","cssLengthTooltip":"પિક્ષ્લ્ નો આંકડો CSS unit (px, %, in, cm, mm, em, ex, pt, or pc) માં નાખો.","unavailable":"%1<span class=\"cke_accessibility\">, નથી મળતું</span>","keyboard":{"8":"Backspace કી","13":"Enter કી","16":"Shift કી","17":"Ctrl કી","18":"Alt કી","32":"Space કી","35":"End કી","36":"Home કી","46":"Delete કી","112":"F1","113":"F2","114":"F3","115":"F4","116":"F5","117":"F6","118":"F7","119":"F8","120":"F9","121":"F10","122":"F11","123":"F12","124":"F13","125":"F14","126":"F15","127":"F16","128":"F17","129":"F18","130":"F19","131":"F20","132":"F21","133":"F22","134":"F23","135":"F24","224":"Command કી"},"keyboardShortcut":"કીબોર્ડ શૉર્ટકટ","optionDefault":"Default"}};
\ No newline at end of file
diff --git a/web/core/assets/vendor/ckeditor/lang/he.js b/web/core/assets/vendor/ckeditor/lang/he.js
index c03ed4df49..56ff7db2f2 100644
--- a/web/core/assets/vendor/ckeditor/lang/he.js
+++ b/web/core/assets/vendor/ckeditor/lang/he.js
@@ -1,5 +1,5 @@
 /*
-Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2020, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */
 CKEDITOR.lang['he']={"widget":{"move":"לחץ וגרור להזזה","label":"%1 widget"},"undo":{"redo":"חזרה על צעד אחרון","undo":"ביטול צעד אחרון"},"toolbar":{"toolbarCollapse":"מזעור סרגל כלים","toolbarExpand":"הרחבת סרגל כלים","toolbarGroups":{"document":"מסמך","clipboard":"לוח הגזירים (Clipboard)/צעד אחרון","editing":"עריכה","forms":"טפסים","basicstyles":"עיצוב בסיסי","paragraph":"פסקה","links":"קישורים","insert":"הכנסה","styles":"עיצוב","colors":"צבעים","tools":"כלים"},"toolbars":"סרגלי כלים של העורך"},"table":{"border":"גודל מסגרת","caption":"כיתוב","cell":{"menu":"מאפייני תא","insertBefore":"הוספת תא לפני","insertAfter":"הוספת תא אחרי","deleteCell":"מחיקת תאים","merge":"מיזוג תאים","mergeRight":"מזג ימינה","mergeDown":"מזג למטה","splitHorizontal":"פיצול תא אופקית","splitVertical":"פיצול תא אנכית","title":"תכונות התא","cellType":"סוג התא","rowSpan":"מתיחת השורות","colSpan":"מתיחת התאים","wordWrap":"מניעת גלישת שורות","hAlign":"יישור אופקי","vAlign":"יישור אנכי","alignBaseline":"שורת בסיס","bgColor":"צבע רקע","borderColor":"צבע מסגרת","data":"מידע","header":"כותרת","yes":"כן","no":"לא","invalidWidth":"שדה רוחב התא חייב להיות מספר.","invalidHeight":"שדה גובה התא חייב להיות מספר.","invalidRowSpan":"שדה מתיחת השורות חייב להיות מספר שלם.","invalidColSpan":"שדה מתיחת העמודות חייב להיות מספר שלם.","chooseColor":"בחר"},"cellPad":"ריפוד תא","cellSpace":"מרווח תא","column":{"menu":"עמודה","insertBefore":"הוספת עמודה לפני","insertAfter":"הוספת עמודה אחרי","deleteColumn":"מחיקת עמודות"},"columns":"עמודות","deleteTable":"מחק טבלה","headers":"כותרות","headersBoth":"שניהם","headersColumn":"עמודה ראשונה","headersNone":"אין","headersRow":"שורה ראשונה","heightUnit":"height unit","invalidBorder":"שדה גודל המסגרת חייב להיות מספר.","invalidCellPadding":"שדה ריפוד התאים חייב להיות מספר חיובי.","invalidCellSpacing":"שדה ריווח התאים חייב להיות מספר חיובי.","invalidCols":"שדה מספר העמודות חייב להיות מספר גדול מ 0.","invalidHeight":"שדה גובה הטבלה חייב להיות מספר.","invalidRows":"שדה מספר השורות חייב להיות מספר גדול מ 0.","invalidWidth":"שדה רוחב הטבלה חייב להיות מספר.","menu":"מאפייני טבלה","row":{"menu":"שורה","insertBefore":"הוספת שורה לפני","insertAfter":"הוספת שורה אחרי","deleteRow":"מחיקת שורות"},"rows":"שורות","summary":"תקציר","title":"מאפייני טבלה","toolbar":"טבלה","widthPc":"אחוז","widthPx":"פיקסלים","widthUnit":"יחידת רוחב"},"stylescombo":{"label":"סגנון","panelTitle":"סגנונות פורמט","panelTitle1":"סגנונות בלוק","panelTitle2":"סגנונות רצף","panelTitle3":"סגנונות אובייקט"},"specialchar":{"options":"אפשרויות תווים מיוחדים","title":"בחירת תו מיוחד","toolbar":"הוספת תו מיוחד"},"sourcedialog":{"toolbar":"מקור","title":"מקור"},"sourcearea":{"toolbar":"מקור"},"showblocks":{"toolbar":"הצגת בלוקים"},"removeformat":{"toolbar":"הסרת העיצוב"},"pastetext":{"button":"הדבקה כטקסט פשוט","pasteNotification":"Press %1 to paste. Your browser doesn‘t support pasting with the toolbar button or context menu option.","title":"הדבקה כטקסט פשוט"},"pastefromword":{"confirmCleanup":"נראה הטקסט שבכוונתך להדביק מקורו בקובץ וורד. האם ברצונך לנקות אותו טרם ההדבקה?","error":"לא ניתן היה לנקות את המידע בשל תקלה פנימית.","title":"הדבקה מ-Word","toolbar":"הדבקה מ-Word"},"notification":{"closed":"Notification closed."},"maximize":{"maximize":"הגדלה למקסימום","minimize":"הקטנה למינימום"},"magicline":{"title":"הכנס פסקה כאן"},"list":{"bulletedlist":"רשימת נקודות","numberedlist":"רשימה ממוספרת"},"language":{"button":"צור שפה","remove":"הסר שפה"},"indent":{"indent":"הגדלת הזחה","outdent":"הקטנת הזחה"},"image2":{"alt":"טקסט חלופי","btnUpload":"שליחה לשרת","captioned":"כותרת תמונה","captionPlaceholder":"כותרת","infoTab":"מידע על התמונה","lockRatio":"נעילת היחס","menu":"תכונות התמונה","pathName":"תמונה","pathNameCaption":"כותרת","resetSize":"איפוס הגודל","resizer":"לחץ וגרור לשינוי הגודל","title":"מאפייני התמונה","uploadTab":"העלאה","urlMissing":"כתובת התמונה חסרה.","altMissing":"Alternative text is missing."},"horizontalrule":{"toolbar":"הוספת קו אופקי"},"format":{"label":"עיצוב","panelTitle":"עיצוב","tag_address":"כתובת","tag_div":"נורמלי (DIV)","tag_h1":"כותרת","tag_h2":"כותרת 2","tag_h3":"כותרת 3","tag_h4":"כותרת 4","tag_h5":"כותרת 5","tag_h6":"כותרת 6","tag_p":"נורמלי","tag_pre":"קוד"},"filetools":{"loadError":"Error occurred during file read.","networkError":"Network error occurred during file upload.","httpError404":"HTTP error occurred during file upload (404: File not found).","httpError403":"HTTP error occurred during file upload (403: Forbidden).","httpError":"HTTP error occurred during file upload (error status: %1).","noUrlError":"Upload URL is not defined.","responseError":"Incorrect server response."},"elementspath":{"eleLabel":"עץ האלמנטים","eleTitle":"%1 אלמנט"},"contextmenu":{"options":"אפשרויות תפריט ההקשר"},"clipboard":{"copy":"העתקה","copyError":"הגדרות האבטחה בדפדפן שלך לא מאפשרות לעורך לבצע פעולות העתקה אוטומטיות. יש להשתמש במקלדת לשם כך (Ctrl/Cmd+C).","cut":"גזירה","cutError":"הגדרות האבטחה בדפדפן שלך לא מאפשרות לעורך לבצע פעולות גזירה אוטומטיות. יש להשתמש במקלדת לשם כך (Ctrl/Cmd+X).","paste":"הדבקה","pasteNotification":"Press %1 to paste. Your browser doesn‘t support pasting with the toolbar button or context menu option.","pasteArea":"איזור הדבקה","pasteMsg":"Paste your content inside the area below and press OK."},"blockquote":{"toolbar":"בלוק ציטוט"},"basicstyles":{"bold":"מודגש","italic":"נטוי","strike":"כתיב מחוק","subscript":"כתיב תחתון","superscript":"כתיב עליון","underline":"קו תחתון"},"about":{"copy":"Copyright &copy; $1. כל הזכויות שמורות.","dlgTitle":"אודות CKEditor","moreInfo":"למידע נוסף בקרו באתרנו:"},"editor":"עורך טקסט עשיר","editorPanel":"Rich Text Editor panel","common":{"editorHelp":"לחץ אלט ALT + 0 לעזרה","browseServer":"סייר השרת","url":"כתובת (URL)","protocol":"פרוטוקול","upload":"העלאה","uploadSubmit":"שליחה לשרת","image":"תמונה","flash":"פלאש","form":"טופס","checkbox":"תיבת סימון","radio":"לחצן אפשרויות","textField":"שדה טקסט","textarea":"איזור טקסט","hiddenField":"שדה חבוי","button":"כפתור","select":"שדה בחירה","imageButton":"כפתור תמונה","notSet":"<לא נקבע>","id":"זיהוי (ID)","name":"שם","langDir":"כיוון שפה","langDirLtr":"שמאל לימין (LTR)","langDirRtl":"ימין לשמאל (RTL)","langCode":"קוד שפה","longDescr":"קישור לתיאור מפורט","cssClass":"מחלקת עיצוב (CSS Class)","advisoryTitle":"כותרת מוצעת","cssStyle":"סגנון","ok":"אישור","cancel":"ביטול","close":"סגירה","preview":"תצוגה מקדימה","resize":"יש לגרור בכדי לשנות את הגודל","generalTab":"כללי","advancedTab":"אפשרויות מתקדמות","validateNumberFailed":"הערך חייב להיות מספרי.","confirmNewPage":"כל השינויים שלא נשמרו יאבדו. האם להעלות דף חדש?","confirmCancel":"חלק מהאפשרויות שונו, האם לסגור את הדיאלוג?","options":"אפשרויות","target":"מטרה","targetNew":"חלון חדש (_blank)","targetTop":"החלון העליון ביותר (_top)","targetSelf":"אותו חלון (_self)","targetParent":"חלון האב (_parent)","langDirLTR":"שמאל לימין (LTR)","langDirRTL":"ימין לשמאל (RTL)","styles":"סגנון","cssClasses":"מחלקות גליונות סגנון","width":"רוחב","height":"גובה","align":"יישור","left":"לשמאל","right":"לימין","center":"מרכז","justify":"יישור לשוליים","alignLeft":"יישור לשמאל","alignRight":"יישור לימין","alignCenter":"Align Center","alignTop":"למעלה","alignMiddle":"לאמצע","alignBottom":"לתחתית","alignNone":"None","invalidValue":"ערך לא חוקי.","invalidHeight":"הגובה חייב להיות מספר.","invalidWidth":"הרוחב חייב להיות מספר.","invalidLength":"Value specified for the \"%1\" field must be a positive number with or without a valid measurement unit (%2).","invalidCssLength":"הערך שצוין לשדה \"%1\" חייב להיות מספר חיובי עם או ללא יחידת מידה חוקית של CSS (px, %, in, cm, mm, em, ex, pt, או pc).","invalidHtmlLength":"הערך שצוין לשדה \"%1\" חייב להיות מספר חיובי עם או ללא יחידת מידה חוקית של HTML (px או %).","invalidInlineStyle":"הערך שצויין לשדה הסגנון חייב להכיל זוג ערכים אחד או יותר בפורמט \"שם : ערך\", מופרדים על ידי נקודה-פסיק.","cssLengthTooltip":"יש להכניס מספר המייצג פיקסלים או מספר עם יחידת גליונות סגנון תקינה (px, %, in, cm, mm, em, ex, pt, או pc).","unavailable":"%1<span class=\"cke_accessibility\">, לא זמין</span>","keyboard":{"8":"Backspace","13":"Enter","16":"Shift","17":"Ctrl","18":"Alt","32":"Space","35":"End","36":"Home","46":"מחק","112":"F1","113":"F2","114":"F3","115":"F4","116":"F5","117":"F6","118":"F7","119":"F8","120":"F9","121":"F10","122":"F11","123":"F12","124":"F13","125":"F14","126":"F15","127":"F16","128":"F17","129":"F18","130":"F19","131":"F20","132":"F21","133":"F22","134":"F23","135":"F24","224":"Command"},"keyboardShortcut":"Keyboard shortcut","optionDefault":"Default"}};
\ No newline at end of file
diff --git a/web/core/assets/vendor/ckeditor/lang/hi.js b/web/core/assets/vendor/ckeditor/lang/hi.js
index eaf8a16856..8da2cf3092 100644
--- a/web/core/assets/vendor/ckeditor/lang/hi.js
+++ b/web/core/assets/vendor/ckeditor/lang/hi.js
@@ -1,5 +1,5 @@
 /*
-Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2020, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */
 CKEDITOR.lang['hi']={"widget":{"move":"Click and drag to move","label":"%1 widget"},"undo":{"redo":"रीडू","undo":"अन्डू"},"toolbar":{"toolbarCollapse":"Collapse Toolbar","toolbarExpand":"Expand Toolbar","toolbarGroups":{"document":"Document","clipboard":"Clipboard/Undo","editing":"Editing","forms":"Forms","basicstyles":"Basic Styles","paragraph":"Paragraph","links":"Links","insert":"Insert","styles":"Styles","colors":"Colors","tools":"Tools"},"toolbars":"एडिटर टूलबार"},"table":{"border":"बॉर्डर साइज़","caption":"शीर्षक","cell":{"menu":"खाना","insertBefore":"पहले सैल डालें","insertAfter":"बाद में सैल डालें","deleteCell":"सैल डिलीट करें","merge":"सैल मिलायें","mergeRight":"बाँया विलय","mergeDown":"नीचे विलय करें","splitHorizontal":"सैल को क्षैतिज स्थिति में विभाजित करें","splitVertical":"सैल को लम्बाकार में विभाजित करें","title":"Cell Properties","cellType":"Cell Type","rowSpan":"Rows Span","colSpan":"Columns Span","wordWrap":"Word Wrap","hAlign":"Horizontal Alignment","vAlign":"Vertical Alignment","alignBaseline":"Baseline","bgColor":"Background Color","borderColor":"Border Color","data":"Data","header":"Header","yes":"Yes","no":"No","invalidWidth":"Cell width must be a number.","invalidHeight":"Cell height must be a number.","invalidRowSpan":"Rows span must be a whole number.","invalidColSpan":"Columns span must be a whole number.","chooseColor":"Choose"},"cellPad":"सैल पैडिंग","cellSpace":"सैल अंतर","column":{"menu":"कालम","insertBefore":"पहले कालम डालें","insertAfter":"बाद में कालम डालें","deleteColumn":"कालम डिलीट करें"},"columns":"कालम","deleteTable":"टेबल डिलीट करें","headers":"Headers","headersBoth":"Both","headersColumn":"First column","headersNone":"None","headersRow":"First Row","heightUnit":"height unit","invalidBorder":"Border size must be a number.","invalidCellPadding":"Cell padding must be a positive number.","invalidCellSpacing":"Cell spacing must be a positive number.","invalidCols":"Number of columns must be a number greater than 0.","invalidHeight":"Table height must be a number.","invalidRows":"Number of rows must be a number greater than 0.","invalidWidth":"Table width must be a number.","menu":"टेबल प्रॉपर्टीज़","row":{"menu":"पंक्ति","insertBefore":"पहले पंक्ति डालें","insertAfter":"बाद में पंक्ति डालें","deleteRow":"पंक्तियाँ डिलीट करें"},"rows":"पंक्तियाँ","summary":"सारांश","title":"टेबल प्रॉपर्टीज़","toolbar":"टेबल","widthPc":"प्रतिशत","widthPx":"पिक्सैल","widthUnit":"width unit"},"stylescombo":{"label":"स्टाइल","panelTitle":"Formatting Styles","panelTitle1":"Block Styles","panelTitle2":"Inline Styles","panelTitle3":"Object Styles"},"specialchar":{"options":"विशेष चरित्र विकल्प","title":"विशेष करॅक्टर चुनें","toolbar":"विशेष करॅक्टर इन्सर्ट करें"},"sourcedialog":{"toolbar":"सोर्स","title":"सोर्स"},"sourcearea":{"toolbar":"सोर्स"},"showblocks":{"toolbar":"ब्लॉक दिखायें"},"removeformat":{"toolbar":"फ़ॉर्मैट हटायें"},"pastetext":{"button":"पेस्ट (सादा टॅक्स्ट)","pasteNotification":"Press %1 to paste. Your browser doesn‘t support pasting with the toolbar button or context menu option.","title":"पेस्ट (सादा टॅक्स्ट)"},"pastefromword":{"confirmCleanup":"The text you want to paste seems to be copied from Word. Do you want to clean it before pasting?","error":"It was not possible to clean up the pasted data due to an internal error","title":"पेस्ट (वर्ड से)","toolbar":"पेस्ट (वर्ड से)"},"notification":{"closed":"Notification closed."},"maximize":{"maximize":"मेक्सिमाईज़","minimize":"मिनिमाईज़"},"magicline":{"title":"Insert paragraph here"},"list":{"bulletedlist":"बुलॅट सूची","numberedlist":"अंकीय सूची"},"language":{"button":"Set language","remove":"Remove language"},"indent":{"indent":"इन्डॅन्ट बढ़ायें","outdent":"इन्डॅन्ट कम करें"},"image2":{"alt":"वैकल्पिक टेक्स्ट","btnUpload":"इसे सर्वर को भेजें","captioned":"Captioned image","captionPlaceholder":"Caption","infoTab":"तस्वीर की जानकारी","lockRatio":"लॉक अनुपात","menu":"तस्वीर प्रॉपर्टीज़","pathName":"image","pathNameCaption":"caption","resetSize":"रीसॅट साइज़","resizer":"Click and drag to resize","title":"तस्वीर प्रॉपर्टीज़","uploadTab":"अपलोड","urlMissing":"Image source URL is missing.","altMissing":"Alternative text is missing."},"horizontalrule":{"toolbar":"हॉरिज़ॉन्टल रेखा इन्सर्ट करें"},"format":{"label":"फ़ॉर्मैट","panelTitle":"फ़ॉर्मैट","tag_address":"पता","tag_div":"शीर्षक (DIV)","tag_h1":"शीर्षक 1","tag_h2":"शीर्षक 2","tag_h3":"शीर्षक 3","tag_h4":"शीर्षक 4","tag_h5":"शीर्षक 5","tag_h6":"शीर्षक 6","tag_p":"साधारण","tag_pre":"फ़ॉर्मैटॅड"},"filetools":{"loadError":"Error occurred during file read.","networkError":"Network error occurred during file upload.","httpError404":"HTTP error occurred during file upload (404: File not found).","httpError403":"HTTP error occurred during file upload (403: Forbidden).","httpError":"HTTP error occurred during file upload (error status: %1).","noUrlError":"Upload URL is not defined.","responseError":"Incorrect server response."},"elementspath":{"eleLabel":"Elements path","eleTitle":"%1 element"},"contextmenu":{"options":"Context Menu Options"},"clipboard":{"copy":"कॉपी","copyError":"आपके ब्राआउज़र की सुरक्षा सॅटिन्ग्स ने कॉपी करने की अनुमति नहीं प्रदान की है। (Ctrl/Cmd+C) का प्रयोग करें।","cut":"कट","cutError":"आपके ब्राउज़र की सुरक्षा सॅटिन्ग्स ने कट करने की अनुमति नहीं प्रदान की है। (Ctrl/Cmd+X) का प्रयोग करें।","paste":"पेस्ट","pasteNotification":"Press %1 to paste. Your browser doesn‘t support pasting with the toolbar button or context menu option.","pasteArea":"Paste Area","pasteMsg":"Paste your content inside the area below and press OK."},"blockquote":{"toolbar":"ब्लॉक-कोट"},"basicstyles":{"bold":"बोल्ड","italic":"इटैलिक","strike":"स्ट्राइक थ्रू","subscript":"अधोलेख","superscript":"अभिलेख","underline":"रेखांकण"},"about":{"copy":"Copyright &copy; $1. All rights reserved.","dlgTitle":"About CKEditor 4","moreInfo":"For licensing information please visit our web site:"},"editor":"रिच टेक्स्ट एडिटर","editorPanel":"Rich Text Editor panel","common":{"editorHelp":"मदद के लिये ALT 0 दबाए","browseServer":"सर्वर ब्राउज़ करें","url":"URL","protocol":"प्रोटोकॉल","upload":"अपलोड","uploadSubmit":"इसे सर्वर को भेजें","image":"तस्वीर","flash":"फ़्लैश","form":"फ़ॉर्म","checkbox":"चॅक बॉक्स","radio":"रेडिओ बटन","textField":"टेक्स्ट फ़ील्ड","textarea":"टेक्स्ट एरिया","hiddenField":"गुप्त फ़ील्ड","button":"बटन","select":"चुनाव फ़ील्ड","imageButton":"तस्वीर बटन","notSet":"<सॅट नहीं>","id":"Id","name":"नाम","langDir":"भाषा लिखने की दिशा","langDirLtr":"बायें से दायें (LTR)","langDirRtl":"दायें से बायें (RTL)","langCode":"भाषा कोड","longDescr":"अधिक विवरण के लिए URL","cssClass":"स्टाइल-शीट क्लास","advisoryTitle":"परामर्श शीर्शक","cssStyle":"स्टाइल","ok":"ठीक है","cancel":"रद्द करें","close":"Close","preview":"प्रीव्यू","resize":"Resize","generalTab":"सामान्य","advancedTab":"ऍड्वान्स्ड","validateNumberFailed":"This value is not a number.","confirmNewPage":"Any unsaved changes to this content will be lost. Are you sure you want to load new page?","confirmCancel":"You have changed some options. Are you sure you want to close the dialog window?","options":"Options","target":"टार्गेट","targetNew":"New Window (_blank)","targetTop":"Topmost Window (_top)","targetSelf":"Same Window (_self)","targetParent":"Parent Window (_parent)","langDirLTR":"बायें से दायें (LTR)","langDirRTL":"दायें से बायें (RTL)","styles":"स्टाइल","cssClasses":"स्टाइल-शीट क्लास","width":"चौड़ाई","height":"ऊँचाई","align":"ऍलाइन","left":"दायें","right":"दायें","center":"बीच में","justify":"ब्लॉक जस्टीफ़ाई","alignLeft":"बायीं तरफ","alignRight":"दायीं तरफ","alignCenter":"Align Center","alignTop":"ऊपर","alignMiddle":"मध्य","alignBottom":"नीचे","alignNone":"None","invalidValue":"Invalid value.","invalidHeight":"Height must be a number.","invalidWidth":"Width must be a number.","invalidLength":"Value specified for the \"%1\" field must be a positive number with or without a valid measurement unit (%2).","invalidCssLength":"Value specified for the \"%1\" field must be a positive number with or without a valid CSS measurement unit (px, %, in, cm, mm, em, ex, pt, or pc).","invalidHtmlLength":"Value specified for the \"%1\" field must be a positive number with or without a valid HTML measurement unit (px or %).","invalidInlineStyle":"Value specified for the inline style must consist of one or more tuples with the format of \"name : value\", separated by semi-colons.","cssLengthTooltip":"Enter a number for a value in pixels or a number with a valid CSS unit (px, %, in, cm, mm, em, ex, pt, or pc).","unavailable":"%1<span class=\"cke_accessibility\">, unavailable</span>","keyboard":{"8":"Backspace","13":"Enter","16":"Shift","17":"Ctrl","18":"Alt","32":"Space","35":"End","36":"Home","46":"Delete","112":"F1","113":"F2","114":"F3","115":"F4","116":"F5","117":"F6","118":"F7","119":"F8","120":"F9","121":"F10","122":"F11","123":"F12","124":"F13","125":"F14","126":"F15","127":"F16","128":"F17","129":"F18","130":"F19","131":"F20","132":"F21","133":"F22","134":"F23","135":"F24","224":"Command"},"keyboardShortcut":"Keyboard shortcut","optionDefault":"Default"}};
\ No newline at end of file
diff --git a/web/core/assets/vendor/ckeditor/lang/hr.js b/web/core/assets/vendor/ckeditor/lang/hr.js
index 3bb9cdcf1e..84c36143dd 100644
--- a/web/core/assets/vendor/ckeditor/lang/hr.js
+++ b/web/core/assets/vendor/ckeditor/lang/hr.js
@@ -1,5 +1,5 @@
 /*
-Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2020, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */
 CKEDITOR.lang['hr']={"widget":{"move":"Klikni i povuci za pomicanje","label":"%1 widget"},"undo":{"redo":"Ponovi","undo":"Poništi"},"toolbar":{"toolbarCollapse":"Smanji alatnu traku","toolbarExpand":"Proširi alatnu traku","toolbarGroups":{"document":"Dokument","clipboard":"Međuspremnik/Poništi","editing":"Uređivanje","forms":"Forme","basicstyles":"Osnovni stilovi","paragraph":"Paragraf","links":"Veze","insert":"Umetni","styles":"Stilovi","colors":"Boje","tools":"Alatke"},"toolbars":"Alatne trake uređivača teksta"},"table":{"border":"Veličina okvira","caption":"Naslov","cell":{"menu":"Ćelija","insertBefore":"Ubaci ćeliju prije","insertAfter":"Ubaci ćeliju poslije","deleteCell":"Izbriši ćelije","merge":"Spoji ćelije","mergeRight":"Spoji desno","mergeDown":"Spoji dolje","splitHorizontal":"Podijeli ćeliju vodoravno","splitVertical":"Podijeli ćeliju okomito","title":"Svojstva ćelije","cellType":"Vrsta ćelije","rowSpan":"Rows Span","colSpan":"Columns Span","wordWrap":"Prelazak u novi red","hAlign":"Vodoravno poravnanje","vAlign":"Okomito poravnanje","alignBaseline":"Osnovna linija","bgColor":"Boja pozadine","borderColor":"Boja ruba","data":"Podatak","header":"Zaglavlje","yes":"Da","no":"Ne","invalidWidth":"Širina ćelije mora biti broj.","invalidHeight":"Visina ćelije mora biti broj.","invalidRowSpan":"Rows span mora biti cijeli broj.","invalidColSpan":"Columns span mora biti cijeli broj.","chooseColor":"Odaberi"},"cellPad":"Razmak ćelija","cellSpace":"Prostornost ćelija","column":{"menu":"Kolona","insertBefore":"Ubaci kolonu prije","insertAfter":"Ubaci kolonu poslije","deleteColumn":"Izbriši kolone"},"columns":"Kolona","deleteTable":"Izbriši tablicu","headers":"Zaglavlje","headersBoth":"Oba","headersColumn":"Prva kolona","headersNone":"Ništa","headersRow":"Prvi red","heightUnit":"height unit","invalidBorder":"Debljina ruba mora biti broj.","invalidCellPadding":"Razmak ćelija mora biti broj.","invalidCellSpacing":"Prostornost ćelija mora biti broj.","invalidCols":"Broj kolona mora biti broj veći od 0.","invalidHeight":"Visina tablice mora biti broj.","invalidRows":"Broj redova mora biti broj veći od 0.","invalidWidth":"Širina tablice mora biti broj.","menu":"Svojstva tablice","row":{"menu":"Red","insertBefore":"Ubaci red prije","insertAfter":"Ubaci red poslije","deleteRow":"Izbriši redove"},"rows":"Redova","summary":"Sažetak","title":"Svojstva tablice","toolbar":"Tablica","widthPc":"postotaka","widthPx":"piksela","widthUnit":"jedinica širine"},"stylescombo":{"label":"Stil","panelTitle":"Stilovi formatiranja","panelTitle1":"Block stilovi","panelTitle2":"Inline stilovi","panelTitle3":"Object stilovi"},"specialchar":{"options":"Opcije specijalnih znakova","title":"Odaberite posebni karakter","toolbar":"Ubaci posebni znak"},"sourcedialog":{"toolbar":"Kôd","title":"Kôd"},"sourcearea":{"toolbar":"Kôd"},"showblocks":{"toolbar":"Prikaži blokove"},"removeformat":{"toolbar":"Ukloni formatiranje"},"pastetext":{"button":"Zalijepi kao čisti tekst","pasteNotification":"Press %1 to paste. Your browser doesn‘t support pasting with the toolbar button or context menu option.","title":"Zalijepi kao čisti tekst"},"pastefromword":{"confirmCleanup":"Tekst koji želite zalijepiti čini se da je kopiran iz Worda. Želite li prije očistiti tekst?","error":"Nije moguće očistiti podatke za ljepljenje zbog interne greške","title":"Zalijepi iz Worda","toolbar":"Zalijepi iz Worda"},"notification":{"closed":"Obavijest zatvorena."},"maximize":{"maximize":"Povećaj","minimize":"Smanji"},"magicline":{"title":"Ubaci paragraf ovdje"},"list":{"bulletedlist":"Obična lista","numberedlist":"Brojčana lista"},"language":{"button":"Namjesti jezik","remove":"Makni jezik"},"indent":{"indent":"Pomakni udesno","outdent":"Pomakni ulijevo"},"image2":{"alt":"Alternativni tekst","btnUpload":"Pošalji na server","captioned":"Titl slike","captionPlaceholder":"Titl","infoTab":"Info slike","lockRatio":"Zaključaj odnos","menu":"Svojstva slika","pathName":"slika","pathNameCaption":"titl","resetSize":"Obriši veličinu","resizer":"Odaberi i povuci za promjenu veličine","title":"Svojstva slika","uploadTab":"Pošalji","urlMissing":"Nedostaje URL slike.","altMissing":"Nedostaje alternativni tekst."},"horizontalrule":{"toolbar":"Ubaci vodoravnu liniju"},"format":{"label":"Format","panelTitle":"Format paragrafa","tag_address":"Adresa","tag_div":"Normalno (DIV)","tag_h1":"Naslov 1","tag_h2":"Naslov 2","tag_h3":"Naslov 3","tag_h4":"Naslov 4","tag_h5":"Naslov 5","tag_h6":"Naslov 6","tag_p":"Normalno","tag_pre":"Formatirano"},"filetools":{"loadError":"Greška prilikom čitanja datoteke.","networkError":"Mrežna greška prilikom slanja datoteke.","httpError404":"HTTP greška tijekom slanja datoteke (404: datoteka nije pronađena).","httpError403":"HTTP greška tijekom slanja datoteke  (403: Zabranjeno).","httpError":"HTTP greška tijekom slanja datoteke (greška status: %1).","noUrlError":"URL za slanje nije podešen.","responseError":"Neispravni odgovor servera."},"elementspath":{"eleLabel":"Putanje elemenata","eleTitle":"%1 element"},"contextmenu":{"options":"Opcije izbornika"},"clipboard":{"copy":"Kopiraj","copyError":"Sigurnosne postavke Vašeg pretraživača ne dozvoljavaju operacije automatskog kopiranja. Molimo koristite kraticu na tipkovnici (Ctrl/Cmd+C).","cut":"Izreži","cutError":"Sigurnosne postavke Vašeg pretraživača ne dozvoljavaju operacije automatskog izrezivanja. Molimo koristite kraticu na tipkovnici (Ctrl/Cmd+X).","paste":"Zalijepi","pasteNotification":"Vaš preglednik Vam ne dozvoljava lijepljenje običnog teksta na ovaj način. Za lijepljenje, pritisnite %1.","pasteArea":"Okvir za lijepljenje","pasteMsg":"Zalijepite vaš sadržaj u okvir ispod i pritisnite OK."},"blockquote":{"toolbar":"Citat"},"basicstyles":{"bold":"Podebljano","italic":"Ukošeno","strike":"Precrtano","subscript":"Subscript","superscript":"Superscript","underline":"Potcrtano"},"about":{"copy":"Autorsko pravo &copy; $1. Sva prava pridržana.","dlgTitle":"O CKEditoru 4","moreInfo":"Za informacije o licencama posjetite našu web stranicu:"},"editor":"Bogati uređivač teksta, %1","editorPanel":"Ploča Bogatog Uređivača Teksta","common":{"editorHelp":"Pritisni ALT 0 za pomoć","browseServer":"Pretraži server","url":"URL","protocol":"Protokol","upload":"Pošalji","uploadSubmit":"Pošalji na server","image":"Slika","flash":"Flash","form":"Forma","checkbox":"Checkbox","radio":"Radio Button","textField":"Text Field","textarea":"Textarea","hiddenField":"Hidden Field","button":"Button","select":"Selection Field","imageButton":"Image Button","notSet":"<nije postavljeno>","id":"Id","name":"Naziv","langDir":"Smjer jezika","langDirLtr":"S lijeva na desno (LTR)","langDirRtl":"S desna na lijevo (RTL)","langCode":"Kôd jezika","longDescr":"Dugački opis URL","cssClass":"Klase stilova","advisoryTitle":"Advisory naslov","cssStyle":"Stil","ok":"OK","cancel":"Poništi","close":"Zatvori","preview":"Pregledaj","resize":"Povuci za promjenu veličine","generalTab":"Općenito","advancedTab":"Napredno","validateNumberFailed":"Ova vrijednost nije broj.","confirmNewPage":"Sve napravljene promjene će biti izgubljene ukoliko ih niste snimili. Sigurno želite učitati novu stranicu?","confirmCancel":"Neke od opcija su promjenjene. Sigurno želite zatvoriti ovaj prozor?","options":"Opcije","target":"Odredište","targetNew":"Novi prozor (_blank)","targetTop":"Vršni prozor (_top)","targetSelf":"Isti prozor (_self)","targetParent":"Roditeljski prozor (_parent)","langDirLTR":"S lijeva na desno (LTR)","langDirRTL":"S desna na lijevo (RTL)","styles":"Stil","cssClasses":"Klase stilova","width":"Širina","height":"Visina","align":"Poravnanje","left":"Lijevo","right":"Desno","center":"Središnje","justify":"Blok poravnanje","alignLeft":"Lijevo poravnanje","alignRight":"Desno poravnanje","alignCenter":"Align Center","alignTop":"Vrh","alignMiddle":"Sredina","alignBottom":"Dolje","alignNone":"Bez poravnanja","invalidValue":"Neispravna vrijednost.","invalidHeight":"Visina mora biti broj.","invalidWidth":"Širina mora biti broj.","invalidLength":"Naznačena vrijednost polja \"%1\" mora biti pozitivni broj sa ili bez važeće mjerne jedinice (%2).","invalidCssLength":"Vrijednost određena za \"%1\" polje mora biti pozitivni broj sa ili bez važećih CSS mjernih jedinica (px, %, in, cm, mm, em, ex, pt ili pc).","invalidHtmlLength":"Vrijednost određena za \"%1\" polje mora biti pozitivni broj sa ili bez važećih HTML mjernih jedinica (px ili %).","invalidInlineStyle":"Vrijednost za linijski stil mora sadržavati jednu ili više definicija s formatom \"naziv:vrijednost\", odvojenih točka-zarezom.","cssLengthTooltip":"Unesite broj za vrijednost u pikselima ili broj s važećim CSS mjernim jedinicama (px, %, in, cm, mm, em, ex, pt ili pc).","unavailable":"%1<span class=\"cke_accessibility\">, nedostupno</span>","keyboard":{"8":"Backspace","13":"Enter","16":"Shift","17":"Ctrl","18":"Alt","32":"Space","35":"End","36":"Home","46":"Delete","112":"F1","113":"F2","114":"F3","115":"F4","116":"F5","117":"F6","118":"F7","119":"F8","120":"F9","121":"F10","122":"F11","123":"F12","124":"F13","125":"F14","126":"F15","127":"F16","128":"F17","129":"F18","130":"F19","131":"F20","132":"F21","133":"F22","134":"F23","135":"F24","224":"Command"},"keyboardShortcut":"Prečica na tipkovnici","optionDefault":"Zadano"}};
\ No newline at end of file
diff --git a/web/core/assets/vendor/ckeditor/lang/hu.js b/web/core/assets/vendor/ckeditor/lang/hu.js
index 9372e5520d..1997809d58 100644
--- a/web/core/assets/vendor/ckeditor/lang/hu.js
+++ b/web/core/assets/vendor/ckeditor/lang/hu.js
@@ -1,5 +1,5 @@
 /*
-Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2020, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */
 CKEDITOR.lang['hu']={"widget":{"move":"Kattints és húzd a mozgatáshoz","label":"%1 modul"},"undo":{"redo":"Ismétlés","undo":"Visszavonás"},"toolbar":{"toolbarCollapse":"Eszköztár összecsukása","toolbarExpand":"Eszköztár szétnyitása","toolbarGroups":{"document":"Dokumentum","clipboard":"Vágólap/Visszavonás","editing":"Szerkesztés","forms":"Űrlapok","basicstyles":"Alapstílusok","paragraph":"Bekezdés","links":"Hivatkozások","insert":"Beszúrás","styles":"Stílusok","colors":"Színek","tools":"Eszközök"},"toolbars":"Szerkesztő Eszköztár"},"table":{"border":"Szegélyméret","caption":"Felirat","cell":{"menu":"Cella","insertBefore":"Beszúrás balra","insertAfter":"Beszúrás jobbra","deleteCell":"Cellák törlése","merge":"Cellák egyesítése","mergeRight":"Cellák egyesítése jobbra","mergeDown":"Cellák egyesítése lefelé","splitHorizontal":"Cellák szétválasztása vízszintesen","splitVertical":"Cellák szétválasztása függőlegesen","title":"Cella tulajdonságai","cellType":"Cella típusa","rowSpan":"Függőleges egyesítés","colSpan":"Vízszintes egyesítés","wordWrap":"Hosszú sorok törése","hAlign":"Vízszintes igazítás","vAlign":"Függőleges igazítás","alignBaseline":"Alapvonalra","bgColor":"Háttér színe","borderColor":"Keret színe","data":"Adat","header":"Fejléc","yes":"Igen","no":"Nem","invalidWidth":"A szélesség mezőbe csak számokat írhat.","invalidHeight":"A magasság mezőbe csak számokat írhat.","invalidRowSpan":"A függőleges egyesítés mezőbe csak számokat írhat.","invalidColSpan":"A vízszintes egyesítés mezőbe csak számokat írhat.","chooseColor":"Válasszon"},"cellPad":"Cella belső margó","cellSpace":"Cella térköz","column":{"menu":"Oszlop","insertBefore":"Beszúrás balra","insertAfter":"Beszúrás jobbra","deleteColumn":"Oszlopok törlése"},"columns":"Oszlopok","deleteTable":"Táblázat törlése","headers":"Fejlécek","headersBoth":"Mindkettő","headersColumn":"Első oszlop","headersNone":"Nincsenek","headersRow":"Első sor","heightUnit":"height unit","invalidBorder":"A szegélyméret mezőbe csak számokat írhat.","invalidCellPadding":"A cella belső margó mezőbe csak számokat írhat.","invalidCellSpacing":"A cella térköz mezőbe csak számokat írhat.","invalidCols":"Az oszlopok számának nagyobbnak kell lenni mint 0.","invalidHeight":"A magasság mezőbe csak számokat írhat.","invalidRows":"A sorok számának nagyobbnak kell lenni mint 0.","invalidWidth":"A szélesség mezőbe csak számokat írhat.","menu":"Táblázat tulajdonságai","row":{"menu":"Sor","insertBefore":"Beszúrás fölé","insertAfter":"Beszúrás alá","deleteRow":"Sorok törlése"},"rows":"Sorok","summary":"Leírás","title":"Táblázat tulajdonságai","toolbar":"Táblázat","widthPc":"százalék","widthPx":"képpont","widthUnit":"Szélesség egység"},"stylescombo":{"label":"Stílus","panelTitle":"Formázási stílusok","panelTitle1":"Blokk stílusok","panelTitle2":"Inline stílusok","panelTitle3":"Objektum stílusok"},"specialchar":{"options":"Speciális karakter opciók","title":"Speciális karakter választása","toolbar":"Speciális karakter beillesztése"},"sourcedialog":{"toolbar":"Forráskód","title":"Forráskód"},"sourcearea":{"toolbar":"Forráskód"},"showblocks":{"toolbar":"Blokkok megjelenítése"},"removeformat":{"toolbar":"Formázás eltávolítása"},"pastetext":{"button":"Beillesztés formázatlan szövegként","pasteNotification":"Nyomja meg a %1 gombot a beillesztéshez. A böngésző nem támogatja a beillesztést az eszköztár gombbal vagy a menüből.","title":"Beillesztés formázatlan szövegként"},"pastefromword":{"confirmCleanup":"Úgy tűnik a beillesztett szöveget Word-ből másolta át. Meg szeretné tisztítani a szöveget? (ajánlott)","error":"Egy belső hiba miatt nem sikerült megtisztítani a szöveget","title":"Beillesztés Word-ből","toolbar":"Beillesztés Word-ből"},"notification":{"closed":"Értesítés bezárva."},"maximize":{"maximize":"Teljes méret","minimize":"Kis méret"},"magicline":{"title":"Szúrja be a bekezdést ide"},"list":{"bulletedlist":"Felsorolás","numberedlist":"Számozás"},"language":{"button":"Nyelv beállítása","remove":"Nyelv eltávolítása"},"indent":{"indent":"Behúzás növelése","outdent":"Behúzás csökkentése"},"image2":{"alt":"Alternatív szöveg","btnUpload":"Küldés a szerverre","captioned":"Feliratozott kép","captionPlaceholder":"Képfelirat","infoTab":"Alaptulajdonságok","lockRatio":"Arány megtartása","menu":"Kép tulajdonságai","pathName":"kép","pathNameCaption":"felirat","resetSize":"Eredeti méret","resizer":"Kattintson és húzza az átméretezéshez","title":"Kép tulajdonságai","uploadTab":"Feltöltés","urlMissing":"Hiányzik a kép URL-je","altMissing":"Az alternatív szöveg hiányzik."},"horizontalrule":{"toolbar":"Elválasztóvonal beillesztése"},"format":{"label":"Formátum","panelTitle":"Bekezdés formátum","tag_address":"Címsor","tag_div":"Bekezdés (DIV)","tag_h1":"Fejléc 1","tag_h2":"Fejléc 2","tag_h3":"Fejléc 3","tag_h4":"Fejléc 4","tag_h5":"Fejléc 5","tag_h6":"Fejléc 6","tag_p":"Normál","tag_pre":"Formázott"},"filetools":{"loadError":"Hiba történt a fájl olvasása közben.","networkError":"Hálózati hiba történt a fájl feltöltése közben.","httpError404":"HTTP hiba történt a fájl feltöltése alatt (404: A fájl nem található).","httpError403":"HTTP hiba történt a fájl feltöltése alatt (403: Tiltott).","httpError":"HTTP hiba történt a fájl feltöltése alatt (hiba státusz: %1).","noUrlError":"Feltöltési URL nincs megadva.","responseError":"Helytelen szerver válasz."},"elementspath":{"eleLabel":"Elem utak","eleTitle":"%1 elem"},"contextmenu":{"options":"Helyi menü opciók"},"clipboard":{"copy":"Másolás","copyError":"A böngésző biztonsági beállításai nem engedélyezik a szerkesztőnek, hogy végrehajtsa a másolás műveletet. Használja az alábbi billentyűkombinációt (Ctrl/Cmd+X).","cut":"Kivágás","cutError":"A böngésző biztonsági beállításai nem engedélyezik a szerkesztőnek, hogy végrehajtsa a kivágás műveletet. Használja az alábbi billentyűkombinációt (Ctrl/Cmd+X).","paste":"Beillesztés","pasteNotification":"Nyomja meg a %1 gombot a beillesztéshez. A böngésző nem támogatja a beillesztést az eszköztárról vagy a menüből.","pasteArea":"Beillesztési terület","pasteMsg":"Illessze be a tartalmat az alábbi mezőbe, és nyomja meg az OK-t."},"blockquote":{"toolbar":"Idézet blokk"},"basicstyles":{"bold":"Félkövér","italic":"Dőlt","strike":"Áthúzott","subscript":"Alsó index","superscript":"Felső index","underline":"Aláhúzott"},"about":{"copy":"Copyright &copy; $1. Minden jog fenntartva.","dlgTitle":"A CKEditor 4-ről","moreInfo":"Licenszelési információkért kérjük látogassa meg weboldalunkat:"},"editor":"HTML szerkesztő","editorPanel":"HTML szerkesztő panel","common":{"editorHelp":"Segítségért nyomjon ALT 0-t","browseServer":"Böngészés a szerveren","url":"Hivatkozás","protocol":"Protokoll","upload":"Feltöltés","uploadSubmit":"Küldés a szerverre","image":"Kép","flash":"Flash","form":"Űrlap","checkbox":"Jelölőnégyzet","radio":"Választógomb","textField":"Szövegmező","textarea":"Szövegterület","hiddenField":"Rejtett mező","button":"Gomb","select":"Legördülő lista","imageButton":"Képgomb","notSet":"<nincs beállítva>","id":"Azonosító","name":"Név","langDir":"Írás iránya","langDirLtr":"Balról jobbra","langDirRtl":"Jobbról balra","langCode":"Nyelv kódja","longDescr":"Részletes leírás webcíme","cssClass":"CSS osztályok","advisoryTitle":"Súgócimke","cssStyle":"Stílus","ok":"Rendben","cancel":"Mégsem","close":"Bezárás","preview":"Előnézet","resize":"Húzza az átméretezéshez","generalTab":"Általános","advancedTab":"További opciók","validateNumberFailed":"A mezőbe csak számokat írhat.","confirmNewPage":"Minden nem mentett változás el fog veszni! Biztosan be szeretné tölteni az oldalt?","confirmCancel":"Pár beállítást megváltoztatott. Biztosan be szeretné zárni az ablakot?","options":"Beállítások","target":"Cél","targetNew":"Új ablak (_blank)","targetTop":"Legfelső ablak (_top)","targetSelf":"Aktuális ablakban (_self)","targetParent":"Szülő ablak (_parent)","langDirLTR":"Balról jobbra (LTR)","langDirRTL":"Jobbról balra (RTL)","styles":"Stílus","cssClasses":"Stíluslap osztály","width":"Szélesség","height":"Magasság","align":"Igazítás","left":"Bal","right":"Jobbra","center":"Középre","justify":"Sorkizárt","alignLeft":"Balra","alignRight":"Jobbra","alignCenter":"Középre igazítás","alignTop":"Tetejére","alignMiddle":"Középre","alignBottom":"Aljára","alignNone":"Semmi","invalidValue":"Érvénytelen érték.","invalidHeight":"A magasság mezőbe csak számokat írhat.","invalidWidth":"A szélesség mezőbe csak számokat írhat.","invalidLength":"A megadott értéknek a \"%1\" mezőben pozitív számnak kell lennie, egy érvényes mértékegységgel vagy anélkül (%2).","invalidCssLength":"\"%1\"-hez megadott érték csakis egy pozitív szám lehet, esetleg egy érvényes CSS egységgel megjelölve(px, %, in, cm, mm, em, ex, pt vagy pc).","invalidHtmlLength":"\"%1\"-hez megadott érték csakis egy pozitív szám lehet, esetleg egy érvényes HTML egységgel megjelölve(px vagy %).","invalidInlineStyle":"Az inline stílusnak megadott értéknek tartalmaznia kell egy vagy több rekordot a \"name : value\" formátumban, pontosvesszővel elválasztva.","cssLengthTooltip":"Adjon meg egy számot értéknek pixelekben vagy egy számot érvényes CSS mértékegységben (px, %, in, cm, mm, em, ex, pt, vagy pc).","unavailable":"%1<span class=\"cke_accessibility\">, nem elérhető</span>","keyboard":{"8":"Backspace","13":"Enter","16":"Shift","17":"Ctrl","18":"Alt","32":"Space","35":"End","36":"Home","46":"Delete","112":"F1","113":"F2","114":"F3","115":"F4","116":"F5","117":"F6","118":"F7","119":"F8","120":"F9","121":"F10","122":"F11","123":"F12","124":"F13","125":"F14","126":"F15","127":"F16","128":"F17","129":"F18","130":"F19","131":"F20","132":"F21","133":"F22","134":"F23","135":"F24","224":"Command"},"keyboardShortcut":"Gyorsbillentyű","optionDefault":"Alapértelmezett"}};
\ No newline at end of file
diff --git a/web/core/assets/vendor/ckeditor/lang/id.js b/web/core/assets/vendor/ckeditor/lang/id.js
index 262770341c..ebcbc048b1 100644
--- a/web/core/assets/vendor/ckeditor/lang/id.js
+++ b/web/core/assets/vendor/ckeditor/lang/id.js
@@ -1,5 +1,5 @@
 /*
-Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2020, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */
 CKEDITOR.lang['id']={"widget":{"move":"Tekan dan geser untuk memindahkan","label":"%1 widget"},"undo":{"redo":"Kembali lakukan","undo":"Batalkan perlakuan"},"toolbar":{"toolbarCollapse":"Ciutkan Toolbar","toolbarExpand":"Bentangkan Toolbar","toolbarGroups":{"document":"Dokumen","clipboard":"Papan klip / Kembalikan perlakuan","editing":"Sunting","forms":"Formulir","basicstyles":"Gaya Dasar","paragraph":"Paragraf","links":"Tautan","insert":"Sisip","styles":"Gaya","colors":"Warna","tools":"Alat"},"toolbars":"Toolbar Penyunting"},"table":{"border":"Ukuran batas","caption":"Judul halaman","cell":{"menu":"Sel","insertBefore":"Sisip Sel Sebelum","insertAfter":"Sisip Sel Setelah","deleteCell":"Hapus Sel","merge":"Gabungkan Sel","mergeRight":"Gabungkan ke Kanan","mergeDown":"Gabungkan ke Bawah","splitHorizontal":"Pisahkan Sel Secara Horisontal","splitVertical":"Pisahkan Sel Secara Vertikal","title":"Properti Sel","cellType":"Tipe Sel","rowSpan":"Rentang antar baris","colSpan":"Rentang antar kolom","wordWrap":"Word Wrap","hAlign":"Jajaran Horisontal","vAlign":"Jajaran Vertikal","alignBaseline":"Dasar","bgColor":"Warna Latar Belakang","borderColor":"Warna Batasan","data":"Data","header":"Header","yes":"Ya","no":"Tidak","invalidWidth":"Lebar sel harus sebuah angka.","invalidHeight":"Tinggi sel harus sebuah angka","invalidRowSpan":"Rentang antar baris harus angka seluruhnya.","invalidColSpan":"Rentang antar kolom harus angka seluruhnya","chooseColor":"Pilih"},"cellPad":"Sel spasi dalam","cellSpace":"Spasi antar sel","column":{"menu":"Kolom","insertBefore":"Sisip Kolom Sebelum","insertAfter":"Sisip Kolom Sesudah","deleteColumn":"Hapus Kolom"},"columns":"Kolom","deleteTable":"Hapus Tabel","headers":"Headers","headersBoth":"Keduanya","headersColumn":"Kolom pertama","headersNone":"Tidak ada","headersRow":"Baris Pertama","heightUnit":"height unit","invalidBorder":"Ukuran batasan harus sebuah angka","invalidCellPadding":"'Spasi dalam' sel harus angka positif.","invalidCellSpacing":"Spasi antar sel harus angka positif.","invalidCols":"Jumlah kolom harus sebuah angka lebih besar dari 0","invalidHeight":"Tinggi tabel harus sebuah angka.","invalidRows":"Jumlah barus harus sebuah angka dan lebih besar dari 0.","invalidWidth":"Lebar tabel harus sebuah angka.","menu":"Properti Tabel","row":{"menu":"Baris","insertBefore":"Sisip Baris Sebelum","insertAfter":"Sisip Baris Sesudah","deleteRow":"Hapus Baris"},"rows":"Baris","summary":"Intisari","title":"Properti Tabel","toolbar":"Tabe","widthPc":"persen","widthPx":"piksel","widthUnit":"lebar satuan"},"stylescombo":{"label":"Gaya","panelTitle":"Formatting Styles","panelTitle1":"Block Styles","panelTitle2":"Inline Styles","panelTitle3":"Object Styles"},"specialchar":{"options":"Opsi spesial karakter","title":"Pilih spesial karakter","toolbar":"Sisipkan spesial karakter"},"sourcedialog":{"toolbar":"Sumber","title":"Sumber"},"sourcearea":{"toolbar":"Sumber"},"showblocks":{"toolbar":"Perlihatkan Blok"},"removeformat":{"toolbar":"Hapus Format"},"pastetext":{"button":"Tempel sebagai teks polos","pasteNotification":"Press %1 to paste. Your browser doesn‘t support pasting with the toolbar button or context menu option.","title":"Tempel sebagai Teks Polos"},"pastefromword":{"confirmCleanup":"Teks yang ingin anda tempel sepertinya di salin dari Word. Apakah anda mau membersihkannya sebelum menempel?","error":"Tidak mungkin membersihkan data yang ditempel dikerenakan kesalahan internal","title":"Tempel dari Word","toolbar":"Tempel dari Word"},"notification":{"closed":"Pemberitahuan ditutup"},"maximize":{"maximize":"Memperbesar","minimize":"Memperkecil"},"magicline":{"title":"Masukkan paragraf disini"},"list":{"bulletedlist":"Sisip/Hapus Daftar Bullet","numberedlist":"Sisip/Hapus Daftar Bernomor"},"language":{"button":"Atur Bahasa","remove":"Hapus Bahasa"},"indent":{"indent":"Tingkatkan Lekuk","outdent":"Kurangi Lekuk"},"image2":{"alt":"Teks alternatif","btnUpload":"Kirim ke Server","captioned":"Captioned image","captionPlaceholder":"Caption","infoTab":"Info Gambar","lockRatio":"Lock Ratio","menu":"Image Properties","pathName":"image","pathNameCaption":"caption","resetSize":"Atur Ulang Ukuran","resizer":"Click and drag to resize","title":"Image Properties","uploadTab":"Unggah","urlMissing":"Image source URL is missing.","altMissing":"Alternative text is missing."},"horizontalrule":{"toolbar":"Sisip Garis Horisontal"},"format":{"label":"Bentuk","panelTitle":"Bentuk Paragraf","tag_address":"Alamat","tag_div":"Normal (DIV)","tag_h1":"Heading 1","tag_h2":"Heading 2","tag_h3":"Heading 3","tag_h4":"Heading 4","tag_h5":"Heading 5","tag_h6":"Heading 6","tag_p":"Normal","tag_pre":"Membentuk"},"filetools":{"loadError":"Error terjadi ketika berkas dibaca","networkError":"Jaringan error terjadi ketika mengunggah berkas","httpError404":"HTTP error terjadi ketika mengunggah berkas (404: Berkas tidak ditemukan)","httpError403":"HTTP error terjadi ketika mengunggah berkas (403: Gangguan)","httpError":"HTTP error terjadi ketika mengunggah berkas (status error: %1)","noUrlError":"Unggahan URL tidak terdefinisi","responseError":"Respon server tidak sesuai"},"elementspath":{"eleLabel":"Elements path","eleTitle":"%1 element"},"contextmenu":{"options":"Opsi Konteks Pilihan"},"clipboard":{"copy":"Salin","copyError":"Pengaturan keamanan peramban anda tidak mengizinkan editor untuk mengeksekusi operasi menyalin secara otomatis. Mohon gunakan papan tuts (Ctrl/Cmd+C)","cut":"Potong","cutError":"Your browser security settings don't permit the editor to automatically execute cutting operations. Please use the keyboard for that (Ctrl/Cmd+X).","paste":"Tempel","pasteNotification":"Press %1 to paste. Your browser doesn‘t support pasting with the toolbar button or context menu option.","pasteArea":"Area Tempel","pasteMsg":"Paste your content inside the area below and press OK."},"blockquote":{"toolbar":"Kutipan Blok"},"basicstyles":{"bold":"Huruf Tebal","italic":"Huruf Miring","strike":"Strikethrough","subscript":"Subscript","superscript":"Superscript","underline":"Garis Bawah"},"about":{"copy":"Hak cipta &copy; $1. All rights reserved.","dlgTitle":"Tentang CKEditor 4","moreInfo":"Untuk informasi lisensi silahkan kunjungi web site kami:"},"editor":"Rich Text Editor","editorPanel":"Panel Rich Text Editor","common":{"editorHelp":"Tekan ALT 0 untuk bantuan.","browseServer":"Jelajah Server","url":"URL","protocol":"Protokol","upload":"Unggah","uploadSubmit":"Kirim ke Server","image":"Gambar","flash":"Flash","form":"Formulir","checkbox":"Kotak Cek","radio":"Tombol Radio","textField":"Kolom Teks","textarea":"Area Teks","hiddenField":"Kolom Tersembunyi","button":"Tombol","select":"Kolom Seleksi","imageButton":"Tombol Gambar","notSet":"<tidak diatur>","id":"Id","name":"Nama","langDir":"Arah Bahasa","langDirLtr":"Kiri ke Kanan (LTR)","langDirRtl":"Kanan ke Kiri","langCode":"Kode Bahasa","longDescr":"Deskripsi URL Panjang","cssClass":"Kelas Stylesheet","advisoryTitle":"Penasehat Judul","cssStyle":"Gaya","ok":"OK","cancel":"Batal","close":"Tutup","preview":"Pratinjau","resize":"Ubah ukuran","generalTab":"Umum","advancedTab":"Lebih Lanjut","validateNumberFailed":"Nilai ini tidak sebuah angka","confirmNewPage":"Semua perubahan yang tidak disimpan di konten ini akan hilang. Apakah anda yakin ingin memuat halaman baru?","confirmCancel":"Beberapa opsi telah berubah. Apakah anda yakin ingin menutup dialog?","options":"Opsi","target":"Sasaran","targetNew":"Jendela Baru (_blank)","targetTop":"Laman Atas (_top)","targetSelf":"Jendela yang Sama (_self)","targetParent":"Jendela Induk (_parent)","langDirLTR":"Kiri ke Kanan (LTR)","langDirRTL":"Kanan ke Kiri (RTL)","styles":"Gaya","cssClasses":"Kelas Stylesheet","width":"Lebar","height":"Tinggi","align":"Penjajaran","left":"Kiri","right":"Kanan","center":"Tengah","justify":"Rata kiri-kanan","alignLeft":"Align Left","alignRight":"Align Right","alignCenter":"Align Center","alignTop":"Atas","alignMiddle":"Tengah","alignBottom":"Bawah","alignNone":"Tidak ada","invalidValue":"Nilai tidak sah.","invalidHeight":"Tinggi harus sebuah angka.","invalidWidth":"Lebar harus sebuah angka.","invalidLength":"Value specified for the \"%1\" field must be a positive number with or without a valid measurement unit (%2).","invalidCssLength":"Nilai untuk \"%1\" harus sebuah angkat positif dengan atau tanpa pengukuran unit CSS yang sah (px, %, in, cm, mm, em, ex, pt, or pc).","invalidHtmlLength":"Nilai yang dispesifikasian untuk kolom \"%1\" harus sebuah angka positif dengan atau tanpa sebuah unit pengukuran HTML (px atau %) yang valid.","invalidInlineStyle":"Nilai pada inline style merupakan pasangan nama dan nilai dengan format \"nama : nilai\", yang dipisahkan dengan titik dua.","cssLengthTooltip":"Masukkan sebuah angka untuk sebuah nilai dalam pixel atau sebuah angka dengan unit CSS yang sah (px, %, in, cm, mm, em, ex, pt, or pc).","unavailable":"%1<span class=\"cke_accessibility\">, tidak tersedia</span>","keyboard":{"8":"Backspace","13":"Enter","16":"Shift","17":"Ctrl","18":"Alt","32":"Spasi","35":"End","36":"Home","46":"Hapus","112":"F1","113":"F2","114":"F3","115":"F4","116":"F5","117":"F6","118":"F7","119":"F8","120":"F9","121":"F10","122":"F11","123":"F12","124":"F13","125":"F14","126":"F15","127":"F16","128":"F17","129":"F18","130":"F19","131":"F20","132":"F21","133":"F22","134":"F23","135":"F24","224":"Command"},"keyboardShortcut":"Pintasan Keyboard","optionDefault":"Default"}};
\ No newline at end of file
diff --git a/web/core/assets/vendor/ckeditor/lang/is.js b/web/core/assets/vendor/ckeditor/lang/is.js
index ed4dcaf704..fed8dba22e 100644
--- a/web/core/assets/vendor/ckeditor/lang/is.js
+++ b/web/core/assets/vendor/ckeditor/lang/is.js
@@ -1,5 +1,5 @@
 /*
-Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2020, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */
 CKEDITOR.lang['is']={"widget":{"move":"Click and drag to move","label":"%1 widget"},"undo":{"redo":"Hætta við afturköllun","undo":"Afturkalla"},"toolbar":{"toolbarCollapse":"Collapse Toolbar","toolbarExpand":"Expand Toolbar","toolbarGroups":{"document":"Document","clipboard":"Clipboard/Undo","editing":"Editing","forms":"Forms","basicstyles":"Basic Styles","paragraph":"Paragraph","links":"Links","insert":"Insert","styles":"Styles","colors":"Colors","tools":"Tools"},"toolbars":"Editor toolbars"},"table":{"border":"Breidd ramma","caption":"Titill","cell":{"menu":"Reitur","insertBefore":"Skjóta inn reiti fyrir aftan","insertAfter":"Skjóta inn reiti fyrir framan","deleteCell":"Fella reit","merge":"Sameina reiti","mergeRight":"Sameina til hægri","mergeDown":"Sameina niður á við","splitHorizontal":"Kljúfa reit lárétt","splitVertical":"Kljúfa reit lóðrétt","title":"Cell Properties","cellType":"Cell Type","rowSpan":"Rows Span","colSpan":"Columns Span","wordWrap":"Word Wrap","hAlign":"Horizontal Alignment","vAlign":"Vertical Alignment","alignBaseline":"Baseline","bgColor":"Background Color","borderColor":"Border Color","data":"Data","header":"Header","yes":"Yes","no":"No","invalidWidth":"Cell width must be a number.","invalidHeight":"Cell height must be a number.","invalidRowSpan":"Rows span must be a whole number.","invalidColSpan":"Columns span must be a whole number.","chooseColor":"Choose"},"cellPad":"Reitaspássía","cellSpace":"Bil milli reita","column":{"menu":"Dálkur","insertBefore":"Skjóta inn dálki vinstra megin","insertAfter":"Skjóta inn dálki hægra megin","deleteColumn":"Fella dálk"},"columns":"Dálkar","deleteTable":"Fella töflu","headers":"Fyrirsagnir","headersBoth":"Hvort tveggja","headersColumn":"Fyrsti dálkur","headersNone":"Engar","headersRow":"Fyrsta röð","heightUnit":"height unit","invalidBorder":"Border size must be a number.","invalidCellPadding":"Cell padding must be a positive number.","invalidCellSpacing":"Cell spacing must be a positive number.","invalidCols":"Number of columns must be a number greater than 0.","invalidHeight":"Table height must be a number.","invalidRows":"Number of rows must be a number greater than 0.","invalidWidth":"Table width must be a number.","menu":"Eigindi töflu","row":{"menu":"Röð","insertBefore":"Skjóta inn röð fyrir ofan","insertAfter":"Skjóta inn röð fyrir neðan","deleteRow":"Eyða röð"},"rows":"Raðir","summary":"Áfram","title":"Eigindi töflu","toolbar":"Tafla","widthPc":"prósent","widthPx":"myndeindir","widthUnit":"width unit"},"stylescombo":{"label":"Stílflokkur","panelTitle":"Formatting Styles","panelTitle1":"Block Styles","panelTitle2":"Inline Styles","panelTitle3":"Object Styles"},"specialchar":{"options":"Special Character Options","title":"Velja tákn","toolbar":"Setja inn merki"},"sourcedialog":{"toolbar":"Kóði","title":"Kóði"},"sourcearea":{"toolbar":"Kóði"},"showblocks":{"toolbar":"Sýna blokkir"},"removeformat":{"toolbar":"Fjarlægja snið"},"pastetext":{"button":"Líma sem ósniðinn texta","pasteNotification":"Press %1 to paste. Your browser doesn‘t support pasting with the toolbar button or context menu option.","title":"Líma sem ósniðinn texta"},"pastefromword":{"confirmCleanup":"The text you want to paste seems to be copied from Word. Do you want to clean it before pasting?","error":"It was not possible to clean up the pasted data due to an internal error","title":"Líma úr Word","toolbar":"Líma úr Word"},"notification":{"closed":"Notification closed."},"maximize":{"maximize":"Maximize","minimize":"Minimize"},"magicline":{"title":"Insert paragraph here"},"list":{"bulletedlist":"Punktalisti","numberedlist":"Númeraður listi"},"language":{"button":"Set language","remove":"Remove language"},"indent":{"indent":"Minnka inndrátt","outdent":"Auka inndrátt"},"image2":{"alt":"Baklægur texti","btnUpload":"Hlaða upp","captioned":"Captioned image","captionPlaceholder":"Caption","infoTab":"Almennt","lockRatio":"Festa stærðarhlutfall","menu":"Eigindi myndar","pathName":"image","pathNameCaption":"caption","resetSize":"Reikna stærð","resizer":"Click and drag to resize","title":"Eigindi myndar","uploadTab":"Senda upp","urlMissing":"Image source URL is missing.","altMissing":"Alternative text is missing."},"horizontalrule":{"toolbar":"Lóðrétt lína"},"format":{"label":"Stílsnið","panelTitle":"Stílsnið","tag_address":"Vistfang","tag_div":"Venjulegt (DIV)","tag_h1":"Fyrirsögn 1","tag_h2":"Fyrirsögn 2","tag_h3":"Fyrirsögn 3","tag_h4":"Fyrirsögn 4","tag_h5":"Fyrirsögn 5","tag_h6":"Fyrirsögn 6","tag_p":"Venjulegt letur","tag_pre":"Forsniðið"},"filetools":{"loadError":"Error occurred during file read.","networkError":"Network error occurred during file upload.","httpError404":"HTTP error occurred during file upload (404: File not found).","httpError403":"HTTP error occurred during file upload (403: Forbidden).","httpError":"HTTP error occurred during file upload (error status: %1).","noUrlError":"Upload URL is not defined.","responseError":"Incorrect server response."},"elementspath":{"eleLabel":"Elements path","eleTitle":"%1 element"},"contextmenu":{"options":"Context Menu Options"},"clipboard":{"copy":"Afrita","copyError":"Öryggisstillingar vafrans þíns leyfa ekki afritun texta með músaraðgerð. Notaðu lyklaborðið í afrita (Ctrl/Cmd+C).","cut":"Klippa","cutError":"Öryggisstillingar vafrans þíns leyfa ekki klippingu texta með músaraðgerð. Notaðu lyklaborðið í klippa (Ctrl/Cmd+X).","paste":"Líma","pasteNotification":"Press %1 to paste. Your browser doesn‘t support pasting with the toolbar button or context menu option.","pasteArea":"Paste Area","pasteMsg":"Paste your content inside the area below and press OK."},"blockquote":{"toolbar":"Inndráttur"},"basicstyles":{"bold":"Feitletrað","italic":"Skáletrað","strike":"Yfirstrikað","subscript":"Niðurskrifað","superscript":"Uppskrifað","underline":"Undirstrikað"},"about":{"copy":"Copyright &copy; $1. All rights reserved.","dlgTitle":"About CKEditor 4","moreInfo":"For licensing information please visit our web site:"},"editor":"Rich Text Editor","editorPanel":"Rich Text Editor panel","common":{"editorHelp":"Press ALT 0 for help","browseServer":"Fletta í skjalasafni","url":"Vefslóð","protocol":"Samskiptastaðall","upload":"Senda upp","uploadSubmit":"Hlaða upp","image":"Setja inn mynd","flash":"Flash","form":"Setja inn innsláttarform","checkbox":"Setja inn hökunarreit","radio":"Setja inn valhnapp","textField":"Setja inn textareit","textarea":"Setja inn textasvæði","hiddenField":"Setja inn falið svæði","button":"Setja inn hnapp","select":"Setja inn lista","imageButton":"Setja inn myndahnapp","notSet":"<ekkert valið>","id":"Auðkenni","name":"Nafn","langDir":"Lesstefna","langDirLtr":"Frá vinstri til hægri (LTR)","langDirRtl":"Frá hægri til vinstri (RTL)","langCode":"Tungumálakóði","longDescr":"Nánari lýsing","cssClass":"Stílsniðsflokkur","advisoryTitle":"Titill","cssStyle":"Stíll","ok":"Í lagi","cancel":"Hætta við","close":"Close","preview":"Forskoða","resize":"Resize","generalTab":"Almennt","advancedTab":"Tæknilegt","validateNumberFailed":"This value is not a number.","confirmNewPage":"Any unsaved changes to this content will be lost. Are you sure you want to load new page?","confirmCancel":"You have changed some options. Are you sure you want to close the dialog window?","options":"Options","target":"Mark","targetNew":"New Window (_blank)","targetTop":"Topmost Window (_top)","targetSelf":"Same Window (_self)","targetParent":"Parent Window (_parent)","langDirLTR":"Frá vinstri til hægri (LTR)","langDirRTL":"Frá hægri til vinstri (RTL)","styles":"Stíll","cssClasses":"Stílsniðsflokkur","width":"Breidd","height":"Hæð","align":"Jöfnun","left":"Vinstri","right":"Hægri","center":"Miðjað","justify":"Jafna báðum megin","alignLeft":"Vinstrijöfnun","alignRight":"Hægrijöfnun","alignCenter":"Align Center","alignTop":"Efst","alignMiddle":"Miðjuð","alignBottom":"Neðst","alignNone":"None","invalidValue":"Invalid value.","invalidHeight":"Height must be a number.","invalidWidth":"Width must be a number.","invalidLength":"Value specified for the \"%1\" field must be a positive number with or without a valid measurement unit (%2).","invalidCssLength":"Value specified for the \"%1\" field must be a positive number with or without a valid CSS measurement unit (px, %, in, cm, mm, em, ex, pt, or pc).","invalidHtmlLength":"Value specified for the \"%1\" field must be a positive number with or without a valid HTML measurement unit (px or %).","invalidInlineStyle":"Value specified for the inline style must consist of one or more tuples with the format of \"name : value\", separated by semi-colons.","cssLengthTooltip":"Enter a number for a value in pixels or a number with a valid CSS unit (px, %, in, cm, mm, em, ex, pt, or pc).","unavailable":"%1<span class=\"cke_accessibility\">, unavailable</span>","keyboard":{"8":"Backspace","13":"Enter","16":"Shift","17":"Ctrl","18":"Alt","32":"Space","35":"End","36":"Home","46":"Delete","112":"F1","113":"F2","114":"F3","115":"F4","116":"F5","117":"F6","118":"F7","119":"F8","120":"F9","121":"F10","122":"F11","123":"F12","124":"F13","125":"F14","126":"F15","127":"F16","128":"F17","129":"F18","130":"F19","131":"F20","132":"F21","133":"F22","134":"F23","135":"F24","224":"Command"},"keyboardShortcut":"Keyboard shortcut","optionDefault":"Default"}};
\ No newline at end of file
diff --git a/web/core/assets/vendor/ckeditor/lang/it.js b/web/core/assets/vendor/ckeditor/lang/it.js
index 1c7b53f4ba..15f0d1230e 100644
--- a/web/core/assets/vendor/ckeditor/lang/it.js
+++ b/web/core/assets/vendor/ckeditor/lang/it.js
@@ -1,5 +1,5 @@
 /*
-Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2020, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */
 CKEDITOR.lang['it']={"widget":{"move":"Fare clic e trascinare per spostare","label":"Widget %1"},"undo":{"redo":"Ripristina","undo":"Annulla"},"toolbar":{"toolbarCollapse":"Minimizza Toolbar","toolbarExpand":"Espandi Toolbar","toolbarGroups":{"document":"Documento","clipboard":"Copia negli appunti/Annulla","editing":"Modifica","forms":"Form","basicstyles":"Stili di base","paragraph":"Paragrafo","links":"Link","insert":"Inserisci","styles":"Stili","colors":"Colori","tools":"Strumenti"},"toolbars":"Editor toolbar"},"table":{"border":"Dimensione bordo","caption":"Intestazione","cell":{"menu":"Cella","insertBefore":"Inserisci Cella Prima","insertAfter":"Inserisci Cella Dopo","deleteCell":"Elimina celle","merge":"Unisce celle","mergeRight":"Unisci a Destra","mergeDown":"Unisci in Basso","splitHorizontal":"Dividi Cella Orizzontalmente","splitVertical":"Dividi Cella Verticalmente","title":"Proprietà della cella","cellType":"Tipo di cella","rowSpan":"Su più righe","colSpan":"Su più colonne","wordWrap":"Ritorno a capo","hAlign":"Allineamento orizzontale","vAlign":"Allineamento verticale","alignBaseline":"Linea Base","bgColor":"Colore di Sfondo","borderColor":"Colore del Bordo","data":"Dati","header":"Intestazione","yes":"Si","no":"No","invalidWidth":"La larghezza della cella dev'essere un numero.","invalidHeight":"L'altezza della cella dev'essere un numero.","invalidRowSpan":"Il numero di righe dev'essere un numero intero.","invalidColSpan":"Il numero di colonne dev'essere un numero intero.","chooseColor":"Scegli"},"cellPad":"Padding celle","cellSpace":"Spaziatura celle","column":{"menu":"Colonna","insertBefore":"Inserisci Colonna Prima","insertAfter":"Inserisci Colonna Dopo","deleteColumn":"Elimina colonne"},"columns":"Colonne","deleteTable":"Cancella Tabella","headers":"Intestazione","headersBoth":"Entrambe","headersColumn":"Prima Colonna","headersNone":"Nessuna","headersRow":"Prima Riga","heightUnit":"height unit","invalidBorder":"La dimensione del bordo dev'essere un numero.","invalidCellPadding":"Il paging delle celle dev'essere un numero","invalidCellSpacing":"La spaziatura tra le celle dev'essere un numero.","invalidCols":"Il numero di colonne dev'essere un numero maggiore di 0.","invalidHeight":"L'altezza della tabella dev'essere un numero.","invalidRows":"Il numero di righe dev'essere un numero maggiore di 0.","invalidWidth":"La larghezza della tabella dev'essere un numero.","menu":"Proprietà tabella","row":{"menu":"Riga","insertBefore":"Inserisci Riga Prima","insertAfter":"Inserisci Riga Dopo","deleteRow":"Elimina righe"},"rows":"Righe","summary":"Indice","title":"Proprietà tabella","toolbar":"Tabella","widthPc":"percento","widthPx":"pixel","widthUnit":"unità larghezza"},"stylescombo":{"label":"Stili","panelTitle":"Stili di formattazione","panelTitle1":"Stili per blocchi","panelTitle2":"Stili in linea","panelTitle3":"Stili per oggetti"},"specialchar":{"options":"Opzioni carattere speciale","title":"Seleziona carattere speciale","toolbar":"Inserisci carattere speciale"},"sourcedialog":{"toolbar":"Sorgente","title":"Sorgente"},"sourcearea":{"toolbar":"Sorgente"},"showblocks":{"toolbar":"Visualizza Blocchi"},"removeformat":{"toolbar":"Elimina formattazione"},"pastetext":{"button":"Incolla come testo semplice","pasteNotification":"Press %1 to paste. Your browser doesn‘t support pasting with the toolbar button or context menu option.","title":"Incolla come testo semplice"},"pastefromword":{"confirmCleanup":"Il testo da incollare sembra provenire da Word. Desideri pulirlo prima di incollare?","error":"Non è stato possibile eliminare il testo incollato a causa di un errore interno.","title":"Incolla da Word","toolbar":"Incolla da Word"},"notification":{"closed":"Notifica chiusa."},"maximize":{"maximize":"Massimizza","minimize":"Minimizza"},"magicline":{"title":"Inserisci paragrafo qui"},"list":{"bulletedlist":"Inserisci/Rimuovi Elenco Puntato","numberedlist":"Inserisci/Rimuovi Elenco Numerato"},"language":{"button":"Imposta lingua","remove":"Rimuovi lingua"},"indent":{"indent":"Aumenta rientro","outdent":"Riduci rientro"},"image2":{"alt":"Testo alternativo","btnUpload":"Invia al server","captioned":"Immagine con didascalia","captionPlaceholder":"Didascalia","infoTab":"Informazioni immagine","lockRatio":"Blocca rapporto","menu":"Proprietà immagine","pathName":"immagine","pathNameCaption":"didascalia","resetSize":"Reimposta dimensione","resizer":"Fare clic e trascinare per ridimensionare","title":"Proprietà immagine","uploadTab":"Carica","urlMissing":"Manca l'URL dell'immagine.","altMissing":"Testo alternativo mancante."},"horizontalrule":{"toolbar":"Inserisci riga orizzontale"},"format":{"label":"Formato","panelTitle":"Formato","tag_address":"Indirizzo","tag_div":"Paragrafo (DIV)","tag_h1":"Titolo 1","tag_h2":"Titolo 2","tag_h3":"Titolo 3","tag_h4":"Titolo 4","tag_h5":"Titolo 5","tag_h6":"Titolo 6","tag_p":"Normale","tag_pre":"Formattato"},"filetools":{"loadError":"Si è verificato un errore durante la lettura del file.","networkError":"Si è verificato un errore di rete durante il caricamento del file.","httpError404":"Si è verificato un errore HTTP durante il caricamento del file (404: file non trovato).","httpError403":"Si è verificato un errore HTTP durante il caricamento del file (403: accesso negato).","httpError":"Si è verificato un errore HTTP durante il caricamento del file (stato dell'errore: %1).","noUrlError":"L'URL per il caricamento non è stato definito.","responseError":"La risposta del server non è corretta."},"elementspath":{"eleLabel":"Percorso degli elementi","eleTitle":"%1 elemento"},"contextmenu":{"options":"Opzioni del menù contestuale"},"clipboard":{"copy":"Copia","copyError":"Le impostazioni di sicurezza del browser non permettono di copiare automaticamente il testo. Usa la tastiera (Ctrl/Cmd+C).","cut":"Taglia","cutError":"Le impostazioni di sicurezza del browser non permettono di tagliare automaticamente il testo. Usa la tastiera (Ctrl/Cmd+X).","paste":"Incolla","pasteNotification":"Premere %1 per incollare. Il tuo browser non permette di incollare tramite il pulsante della barra degli strumenti o tramite la voce del menu contestuale.","pasteArea":"Area dove incollare","pasteMsg":"Incollare il proprio contenuto all'interno dell'area sottostante e premere OK."},"blockquote":{"toolbar":"Citazione"},"basicstyles":{"bold":"Grassetto","italic":"Corsivo","strike":"Barrato","subscript":"Pedice","superscript":"Apice","underline":"Sottolineato"},"about":{"copy":"Copyright &copy; $1. Tutti i diritti riservati.","dlgTitle":"Informazioni su CKEditor 4","moreInfo":"Per le informazioni sulla licenza si prega di visitare il nostro sito:"},"editor":"Rich Text Editor","editorPanel":"Pannello Rich Text Editor","common":{"editorHelp":"Premi ALT 0 per aiuto","browseServer":"Cerca sul server","url":"URL","protocol":"Protocollo","upload":"Carica","uploadSubmit":"Invia al server","image":"Immagine","flash":"Oggetto Flash","form":"Modulo","checkbox":"Checkbox","radio":"Radio Button","textField":"Campo di testo","textarea":"Area di testo","hiddenField":"Campo nascosto","button":"Bottone","select":"Menu di selezione","imageButton":"Bottone immagine","notSet":"<non impostato>","id":"Id","name":"Nome","langDir":"Direzione scrittura","langDirLtr":"Da Sinistra a Destra (LTR)","langDirRtl":"Da Destra a Sinistra (RTL)","langCode":"Codice Lingua","longDescr":"URL descrizione estesa","cssClass":"Nome classe CSS","advisoryTitle":"Titolo","cssStyle":"Stile","ok":"OK","cancel":"Annulla","close":"Chiudi","preview":"Anteprima","resize":"Trascina per ridimensionare","generalTab":"Generale","advancedTab":"Avanzate","validateNumberFailed":"Il valore inserito non è un numero.","confirmNewPage":"Ogni modifica non salvata sarà persa. Sei sicuro di voler caricare una nuova pagina?","confirmCancel":"Alcune delle opzioni sono state cambiate. Sei sicuro di voler chiudere la finestra di dialogo?","options":"Opzioni","target":"Destinazione","targetNew":"Nuova finestra (_blank)","targetTop":"Finestra in primo piano (_top)","targetSelf":"Stessa finestra (_self)","targetParent":"Finestra Padre (_parent)","langDirLTR":"Da sinistra a destra (LTR)","langDirRTL":"Da destra a sinistra (RTL)","styles":"Stile","cssClasses":"Classi di stile","width":"Larghezza","height":"Altezza","align":"Allineamento","left":"Sinistra","right":"Destra","center":"Centrato","justify":"Giustifica","alignLeft":"Allinea a sinistra","alignRight":"Allinea a destra","alignCenter":"Allinea al centro","alignTop":"In Alto","alignMiddle":"Centrato","alignBottom":"In Basso","alignNone":"Nessuno","invalidValue":"Valore non valido.","invalidHeight":"L'altezza dev'essere un numero","invalidWidth":"La Larghezza dev'essere un numero","invalidLength":"Il valore specificato per il campo \"%1\" deve essere un numero positivo con o senza un'unità di misura valida (%2).","invalidCssLength":"Il valore indicato per il campo \"%1\" deve essere un numero positivo con o senza indicazione di una valida unità di misura per le classi CSS (px, %, in, cm, mm, em, ex, pt, o pc).","invalidHtmlLength":"Il valore indicato per il campo \"%1\" deve essere un numero positivo con o senza indicazione di una valida unità di misura per le pagine HTML (px o %).","invalidInlineStyle":"Il valore specificato per lo stile inline deve consistere in una o più tuple con il formato di \"name : value\", separati da semicolonne.","cssLengthTooltip":"Inserisci un numero per il valore in pixel oppure un numero con una valida unità CSS (px, %, in, cm, mm, ex, pt, o pc).","unavailable":"%1<span class=\"cke_accessibility\">, non disponibile</span>","keyboard":{"8":"Backspace","13":"Invio","16":"Maiusc","17":"Ctrl","18":"Alt","32":"Spazio","35":"Fine","36":"Inizio","46":"Canc","112":"F1","113":"F2","114":"F3","115":"F4","116":"F5","117":"F6","118":"F7","119":"F8","120":"F9","121":"F10","122":"F11","123":"F12","124":"F13","125":"F14","126":"F15","127":"F16","128":"F17","129":"F18","130":"F19","131":"F20","132":"F21","133":"F22","134":"F23","135":"F24","224":"Comando"},"keyboardShortcut":"Scorciatoia da tastiera","optionDefault":"Predefinito"}};
\ No newline at end of file
diff --git a/web/core/assets/vendor/ckeditor/lang/ja.js b/web/core/assets/vendor/ckeditor/lang/ja.js
index 953de6ec08..5b806fb25d 100644
--- a/web/core/assets/vendor/ckeditor/lang/ja.js
+++ b/web/core/assets/vendor/ckeditor/lang/ja.js
@@ -1,5 +1,5 @@
 /*
-Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2020, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */
 CKEDITOR.lang['ja']={"widget":{"move":"ドラッグして移動","label":"%1 ウィジェット"},"undo":{"redo":"やり直す","undo":"元に戻す"},"toolbar":{"toolbarCollapse":"ツールバーを閉じる","toolbarExpand":"ツールバーを開く","toolbarGroups":{"document":"Document","clipboard":"Clipboard/Undo","editing":"Editing","forms":"Forms","basicstyles":"Basic Styles","paragraph":"Paragraph","links":"Links","insert":"Insert","styles":"Styles","colors":"Colors","tools":"Tools"},"toolbars":"編集ツールバー"},"table":{"border":"枠線の幅","caption":"キャプション","cell":{"menu":"セル","insertBefore":"セルを前に挿入","insertAfter":"セルを後に挿入","deleteCell":"セルを削除","merge":"セルを結合","mergeRight":"右に結合","mergeDown":"下に結合","splitHorizontal":"セルを水平方向に分割","splitVertical":"セルを垂直方向に分割","title":"セルのプロパティ","cellType":"セルの種類","rowSpan":"行の結合数","colSpan":"列の結合数","wordWrap":"単語の折り返し","hAlign":"水平方向の配置","vAlign":"垂直方向の配置","alignBaseline":"ベースライン","bgColor":"背景色","borderColor":"ボーダーカラー","data":"テーブルデータ (td)","header":"ヘッダ","yes":"はい","no":"いいえ","invalidWidth":"セル幅は数値で入力してください。","invalidHeight":"セル高さは数値で入力してください。","invalidRowSpan":"縦幅(行数)は数値で入力してください。","invalidColSpan":"横幅(列数)は数値で入力してください。","chooseColor":"色の選択"},"cellPad":"セル内間隔","cellSpace":"セル内余白","column":{"menu":"列","insertBefore":"列を左に挿入","insertAfter":"列を右に挿入","deleteColumn":"列を削除"},"columns":"列数","deleteTable":"表を削除","headers":"ヘッダ (th)","headersBoth":"両方","headersColumn":"最初の列のみ","headersNone":"なし","headersRow":"最初の行のみ","heightUnit":"height unit","invalidBorder":"枠線の幅は数値で入力してください。","invalidCellPadding":"セル内余白は数値で入力してください。","invalidCellSpacing":"セル間余白は数値で入力してください。","invalidCols":"列数は0より大きな数値を入力してください。","invalidHeight":"高さは数値で入力してください。","invalidRows":"行数は0より大きな数値を入力してください。","invalidWidth":"幅は数値で入力してください。","menu":"表のプロパティ","row":{"menu":"行","insertBefore":"行を上に挿入","insertAfter":"行を下に挿入","deleteRow":"行を削除"},"rows":"行数","summary":"表の概要","title":"表のプロパティ","toolbar":"表","widthPc":"パーセント","widthPx":"ピクセル","widthUnit":"幅の単位"},"stylescombo":{"label":"スタイル","panelTitle":"スタイル","panelTitle1":"ブロックスタイル","panelTitle2":"インラインスタイル","panelTitle3":"オブジェクトスタイル"},"specialchar":{"options":"特殊文字オプション","title":"特殊文字の選択","toolbar":"特殊文字を挿入"},"sourcedialog":{"toolbar":"ソース","title":"ソース"},"sourcearea":{"toolbar":"ソース"},"showblocks":{"toolbar":"ブロック表示"},"removeformat":{"toolbar":"書式を解除"},"pastetext":{"button":"プレーンテキストとして貼り付け","pasteNotification":"Press %1 to paste. Your browser doesn‘t support pasting with the toolbar button or context menu option.","title":"プレーンテキストとして貼り付け"},"pastefromword":{"confirmCleanup":"貼り付けを行うテキストはワード文章からコピーされようとしています。貼り付ける前にクリーニングを行いますか?","error":"内部エラーにより貼り付けたデータをクリアできませんでした","title":"ワード文章から貼り付け","toolbar":"ワード文章から貼り付け"},"notification":{"closed":"通知を閉じました。"},"maximize":{"maximize":"最大化","minimize":"最小化"},"magicline":{"title":"ここに段落を挿入"},"list":{"bulletedlist":"番号無しリスト","numberedlist":"番号付きリスト"},"language":{"button":"言語を設定","remove":"言語を削除"},"indent":{"indent":"インデント","outdent":"インデント解除"},"image2":{"alt":"代替テキスト","btnUpload":"サーバーに送信","captioned":"キャプションを付ける","captionPlaceholder":"キャプション","infoTab":"画像情報","lockRatio":"比率を固定","menu":"画像のプロパティ","pathName":"image","pathNameCaption":"caption","resetSize":"サイズをリセット","resizer":"ドラッグしてリサイズ","title":"画像のプロパティ","uploadTab":"アップロード","urlMissing":"画像のURLを入力してください。","altMissing":"代替テキストを入力してください。"},"horizontalrule":{"toolbar":"水平線"},"format":{"label":"書式","panelTitle":"段落の書式","tag_address":"アドレス","tag_div":"標準 (DIV)","tag_h1":"見出し 1","tag_h2":"見出し 2","tag_h3":"見出し 3","tag_h4":"見出し 4","tag_h5":"見出し 5","tag_h6":"見出し 6","tag_p":"標準","tag_pre":"書式付き"},"filetools":{"loadError":"ファイルの読み込み中にエラーが発生しました。","networkError":"ファイルのアップロード中にネットワークエラーが発生しました。","httpError404":"ファイルのアップロード中にHTTPエラーが発生しました。(404: File not found)","httpError403":"ファイルのアップロード中にHTTPエラーが発生しました。(403: Forbidden)","httpError":"ファイルのアップロード中にHTTPエラーが発生しました。(error status: %1)","noUrlError":"アップロードURLが定義されていません。","responseError":"サーバーの応答が不正です。"},"elementspath":{"eleLabel":"要素パス","eleTitle":"%1 要素"},"contextmenu":{"options":"コンテキストメニューオプション"},"clipboard":{"copy":"コピー","copyError":"ブラウザーのセキュリティ設定によりエディタのコピー操作を自動で実行することができません。実行するには手動でキーボードの(Ctrl/Cmd+C)を使用してください。","cut":"切り取り","cutError":"ブラウザーのセキュリティ設定によりエディタの切り取り操作を自動で実行することができません。実行するには手動でキーボードの(Ctrl/Cmd+X)を使用してください。","paste":"貼り付け","pasteNotification":"Press %1 to paste. Your browser doesn‘t support pasting with the toolbar button or context menu option.","pasteArea":"貼り付け場所","pasteMsg":"Paste your content inside the area below and press OK."},"blockquote":{"toolbar":"ブロック引用文"},"basicstyles":{"bold":"太字","italic":"斜体","strike":"打ち消し線","subscript":"下付き","superscript":"上付き","underline":"下線"},"about":{"copy":"Copyright &copy; $1. All rights reserved.","dlgTitle":"CKEditorについて","moreInfo":"ライセンス情報の詳細はウェブサイトにて確認してください:"},"editor":"リッチテキストエディタ","editorPanel":"リッチテキストエディタパネル","common":{"editorHelp":"ヘルプは ALT 0 を押してください","browseServer":"サーバブラウザ","url":"URL","protocol":"プロトコル","upload":"アップロード","uploadSubmit":"サーバーに送信","image":"イメージ","flash":"Flash","form":"フォーム","checkbox":"チェックボックス","radio":"ラジオボタン","textField":"1行テキスト","textarea":"テキストエリア","hiddenField":"不可視フィールド","button":"ボタン","select":"選択フィールド","imageButton":"画像ボタン","notSet":"<なし>","id":"Id","name":"Name属性","langDir":"文字表記の方向","langDirLtr":"左から右 (LTR)","langDirRtl":"右から左 (RTL)","langCode":"言語コード","longDescr":"longdesc属性(長文説明)","cssClass":"スタイルシートクラス","advisoryTitle":"Title属性","cssStyle":"スタイルシート","ok":"OK","cancel":"キャンセル","close":"閉じる","preview":"プレビュー","resize":"ドラッグしてリサイズ","generalTab":"全般","advancedTab":"高度な設定","validateNumberFailed":"値が数値ではありません","confirmNewPage":"変更内容を保存せず、 新しいページを開いてもよろしいでしょうか?","confirmCancel":"オプション設定を変更しました。ダイアログを閉じてもよろしいでしょうか?","options":"オプション","target":"ターゲット","targetNew":"新しいウインドウ (_blank)","targetTop":"最上部ウィンドウ (_top)","targetSelf":"同じウィンドウ (_self)","targetParent":"親ウィンドウ (_parent)","langDirLTR":"左から右 (LTR)","langDirRTL":"右から左 (RTL)","styles":"スタイル","cssClasses":"スタイルシートクラス","width":"幅","height":"高さ","align":"行揃え","left":"左","right":"右","center":"中央","justify":"両端揃え","alignLeft":"左揃え","alignRight":"右揃え","alignCenter":"Align Center","alignTop":"上","alignMiddle":"中央","alignBottom":"下","alignNone":"なし","invalidValue":"不正な値です。","invalidHeight":"高さは数値で入力してください。","invalidWidth":"幅は数値で入力してください。","invalidLength":"Value specified for the \"%1\" field must be a positive number with or without a valid measurement unit (%2).","invalidCssLength":"入力された \"%1\" 項目の値は、CSSの大きさ(px, %, in, cm, mm, em, ex, pt, または pc)が正しいものである/ないに関わらず、正の値である必要があります。","invalidHtmlLength":"入力された \"%1\" 項目の値は、HTMLの大きさ(px または %)が正しいものである/ないに関わらず、正の値である必要があります。","invalidInlineStyle":"入力されたインラインスタイルの値は、\"名前 : 値\" のフォーマットのセットで、複数の場合はセミコロンで区切られている形式である必要があります。","cssLengthTooltip":"ピクセル数もしくはCSSにセットできる数値を入力してください。(px,%,in,cm,mm,em,ex,pt,or pc)","unavailable":"%1<span class=\"cke_accessibility\">, 利用不可能</span>","keyboard":{"8":"Backspace","13":"Enter","16":"Shift","17":"Ctrl","18":"Alt","32":"Space","35":"End","36":"Home","46":"Delete","112":"F1","113":"F2","114":"F3","115":"F4","116":"F5","117":"F6","118":"F7","119":"F8","120":"F9","121":"F10","122":"F11","123":"F12","124":"F13","125":"F14","126":"F15","127":"F16","128":"F17","129":"F18","130":"F19","131":"F20","132":"F21","133":"F22","134":"F23","135":"F24","224":"Command"},"keyboardShortcut":"キーボードショートカット","optionDefault":"Default"}};
\ No newline at end of file
diff --git a/web/core/assets/vendor/ckeditor/lang/ka.js b/web/core/assets/vendor/ckeditor/lang/ka.js
index a4e1c3a544..fc96da4784 100644
--- a/web/core/assets/vendor/ckeditor/lang/ka.js
+++ b/web/core/assets/vendor/ckeditor/lang/ka.js
@@ -1,5 +1,5 @@
 /*
-Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2020, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */
 CKEDITOR.lang['ka']={"widget":{"move":"Click and drag to move","label":"%1 widget"},"undo":{"redo":"გამეორება","undo":"გაუქმება"},"toolbar":{"toolbarCollapse":"ხელსაწყოთა ზოლის შეწევა","toolbarExpand":"ხელსაწყოთა ზოლის გამოწევა","toolbarGroups":{"document":"დოკუმენტი","clipboard":"Clipboard/გაუქმება","editing":"რედაქტირება","forms":"ფორმები","basicstyles":"ძირითადი სტილები","paragraph":"აბზაცი","links":"ბმულები","insert":"ჩასმა","styles":"სტილები","colors":"ფერები","tools":"ხელსაწყოები"},"toolbars":"Editor toolbars"},"table":{"border":"ჩარჩოს ზომა","caption":"სათაური","cell":{"menu":"უჯრა","insertBefore":"უჯრის ჩასმა მანამდე","insertAfter":"უჯრის ჩასმა მერე","deleteCell":"უჯრების წაშლა","merge":"უჯრების შეერთება","mergeRight":"შეერთება მარჯვენასთან","mergeDown":"შეერთება ქვემოთასთან","splitHorizontal":"გაყოფა ჰორიზონტალურად","splitVertical":"გაყოფა ვერტიკალურად","title":"უჯრის პარამეტრები","cellType":"უჯრის ტიპი","rowSpan":"სტრიქონების ოდენობა","colSpan":"სვეტების ოდენობა","wordWrap":"სტრიქონის გადატანა (Word Wrap)","hAlign":"ჰორიზონტალური სწორება","vAlign":"ვერტიკალური სწორება","alignBaseline":"ძირითადი ხაზის გასწვრივ","bgColor":"ფონის ფერი","borderColor":"ჩარჩოს ფერი","data":"მონაცემები","header":"სათაური","yes":"დიახ","no":"არა","invalidWidth":"უჯრის სიგანე რიცხვით უნდა იყოს წარმოდგენილი.","invalidHeight":"უჯრის სიმაღლე რიცხვით უნდა იყოს წარმოდგენილი.","invalidRowSpan":"სტრიქონების რაოდენობა მთელი რიცხვი უნდა იყოს.","invalidColSpan":"სვეტების რაოდენობა მთელი რიცხვი უნდა იყოს.","chooseColor":"არჩევა"},"cellPad":"უჯრის კიდე (padding)","cellSpace":"უჯრის სივრცე (spacing)","column":{"menu":"სვეტი","insertBefore":"სვეტის ჩამატება წინ","insertAfter":"სვეტის ჩამატება მერე","deleteColumn":"სვეტების წაშლა"},"columns":"სვეტი","deleteTable":"ცხრილის წაშლა","headers":"სათაურები","headersBoth":"ორივე","headersColumn":"პირველი სვეტი","headersNone":"არაფერი","headersRow":"პირველი სტრიქონი","heightUnit":"height unit","invalidBorder":"ჩარჩოს ზომა რიცხვით უდნა იყოს წარმოდგენილი.","invalidCellPadding":"უჯრის კიდე (padding) რიცხვით უნდა იყოს წარმოდგენილი.","invalidCellSpacing":"უჯრის სივრცე (spacing) რიცხვით უნდა იყოს წარმოდგენილი.","invalidCols":"სვეტების რაოდენობა დადებითი რიცხვი უნდა იყოს.","invalidHeight":"ცხრილის სიმაღლე რიცხვით უნდა იყოს წარმოდგენილი.","invalidRows":"სტრიქონების რაოდენობა დადებითი რიცხვი უნდა იყოს.","invalidWidth":"ცხრილის სიგანე რიცხვით უნდა იყოს წარმოდგენილი.","menu":"ცხრილის პარამეტრები","row":{"menu":"სტრიქონი","insertBefore":"სტრიქონის ჩამატება წინ","insertAfter":"სტრიქონის ჩამატება მერე","deleteRow":"სტრიქონების წაშლა"},"rows":"სტრიქონი","summary":"შეჯამება","title":"ცხრილის პარამეტრები","toolbar":"ცხრილი","widthPc":"პროცენტი","widthPx":"წერტილი","widthUnit":"საზომი ერთეული"},"stylescombo":{"label":"სტილები","panelTitle":"ფორმატირების სტილები","panelTitle1":"არის სტილები","panelTitle2":"თანდართული სტილები","panelTitle3":"ობიექტის სტილები"},"specialchar":{"options":"სპეციალური სიმბოლოს პარამეტრები","title":"სპეციალური სიმბოლოს არჩევა","toolbar":"სპეციალური სიმბოლოს ჩასმა"},"sourcedialog":{"toolbar":"კოდები","title":"კოდები"},"sourcearea":{"toolbar":"კოდები"},"showblocks":{"toolbar":"არეების ჩვენება"},"removeformat":{"toolbar":"ფორმატირების მოხსნა"},"pastetext":{"button":"მხოლოდ ტექსტის ჩასმა","pasteNotification":"Press %1 to paste. Your browser doesn‘t support pasting with the toolbar button or context menu option.","title":"მხოლოდ ტექსტის ჩასმა"},"pastefromword":{"confirmCleanup":"ჩასასმელი ტექსტი ვორდიდან გადმოტანილს გავს - გინდათ მისი წინასწარ გაწმენდა?","error":"შიდა შეცდომის გამო ვერ მოხერხდა ტექსტის გაწმენდა","title":"ვორდიდან ჩასმა","toolbar":"ვორდიდან ჩასმა"},"notification":{"closed":"Notification closed."},"maximize":{"maximize":"გადიდება","minimize":"დაპატარავება"},"magicline":{"title":"Insert paragraph here"},"list":{"bulletedlist":"ღილიანი სია","numberedlist":"გადანომრილი სია"},"language":{"button":"Set language","remove":"Remove language"},"indent":{"indent":"მეტად შეწევა","outdent":"ნაკლებად შეწევა"},"image2":{"alt":"სანაცვლო ტექსტი","btnUpload":"სერვერისთვის გაგზავნა","captioned":"Captioned image","captionPlaceholder":"Caption","infoTab":"სურათის ინფორმცია","lockRatio":"პროპორციის შენარჩუნება","menu":"სურათის პარამეტრები","pathName":"image","pathNameCaption":"caption","resetSize":"ზომის დაბრუნება","resizer":"Click and drag to resize","title":"სურათის პარამეტრები","uploadTab":"აქაჩვა","urlMissing":"სურათის URL არაა შევსებული.","altMissing":"Alternative text is missing."},"horizontalrule":{"toolbar":"ჰორიზონტალური ხაზის ჩასმა"},"format":{"label":"ფიორმატირება","panelTitle":"ფორმატირება","tag_address":"მისამართი","tag_div":"ჩვეულებრივი (DIV)","tag_h1":"სათაური 1","tag_h2":"სათაური 2","tag_h3":"სათაური 3","tag_h4":"სათაური 4","tag_h5":"სათაური 5","tag_h6":"სათაური 6","tag_p":"ჩვეულებრივი","tag_pre":"ფორმატირებული"},"filetools":{"loadError":"Error occurred during file read.","networkError":"Network error occurred during file upload.","httpError404":"HTTP error occurred during file upload (404: File not found).","httpError403":"HTTP error occurred during file upload (403: Forbidden).","httpError":"HTTP error occurred during file upload (error status: %1).","noUrlError":"Upload URL is not defined.","responseError":"Incorrect server response."},"elementspath":{"eleLabel":"ელემეტის გზა","eleTitle":"%1 ელემენტი"},"contextmenu":{"options":"კონტექსტური მენიუს პარამეტრები"},"clipboard":{"copy":"ასლი","copyError":"თქვენი ბროუზერის უსაფრთხოების პარამეტრები არ იძლევა ასლის ოპერაციის ავტომატურად განხორციელების საშუალებას. გამოიყენეთ კლავიატურა ამისთვის (Ctrl/Cmd+C).","cut":"ამოჭრა","cutError":"თქვენი ბროუზერის უსაფრთხოების პარამეტრები არ იძლევა ამოჭრის ოპერაციის ავტომატურად განხორციელების საშუალებას. გამოიყენეთ კლავიატურა ამისთვის (Ctrl/Cmd+X).","paste":"ჩასმა","pasteNotification":"Press %1 to paste. Your browser doesn‘t support pasting with the toolbar button or context menu option.","pasteArea":"ჩასმის არე","pasteMsg":"Paste your content inside the area below and press OK."},"blockquote":{"toolbar":"ციტატა"},"basicstyles":{"bold":"მსხვილი","italic":"დახრილი","strike":"გადახაზული","subscript":"ინდექსი","superscript":"ხარისხი","underline":"გახაზული"},"about":{"copy":"Copyright &copy; $1. ყველა უფლება დაცულია.","dlgTitle":"CKEditor-ის შესახებ","moreInfo":"ლიცენზიის ინფორმაციისთვის ეწვიეთ ჩვენს საიტს:"},"editor":"ტექსტის რედაქტორი","editorPanel":"Rich Text Editor panel","common":{"editorHelp":"დააჭირეთ ALT 0-ს დახმარების მისაღებად","browseServer":"სერვერზე დათვალიერება","url":"URL","protocol":"პროტოკოლი","upload":"ატვირთვა","uploadSubmit":"სერვერზე გაგზავნა","image":"სურათი","flash":"Flash","form":"ფორმა","checkbox":"მონიშვნის ღილაკი","radio":"ამორჩევის ღილაკი","textField":"ტექსტური ველი","textarea":"ტექსტური არე","hiddenField":"მალული ველი","button":"ღილაკი","select":"არჩევის ველი","imageButton":"სურათიანი ღილაკი","notSet":"<არაფერი>","id":"Id","name":"სახელი","langDir":"ენის მიმართულება","langDirLtr":"მარცხნიდან მარჯვნივ (LTR)","langDirRtl":"მარჯვნიდან მარცხნივ (RTL)","langCode":"ენის კოდი","longDescr":"დიდი აღწერის URL","cssClass":"CSS კლასი","advisoryTitle":"სათაური","cssStyle":"CSS სტილი","ok":"დიახ","cancel":"გაუქმება","close":"დახურვა","preview":"გადახედვა","resize":"გაწიე ზომის შესაცვლელად","generalTab":"ინფორმაცია","advancedTab":"გაფართოებული","validateNumberFailed":"ეს მნიშვნელობა არაა რიცხვი.","confirmNewPage":"ამ დოკუმენტში ყველა ჩაუწერელი ცვლილება დაიკარგება. დარწმუნებული ხართ რომ ახალი გვერდის ჩატვირთვა გინდათ?","confirmCancel":"ზოგიერთი პარამეტრი შეცვლილია, დარწმუნებულილ ხართ რომ ფანჯრის დახურვა გსურთ?","options":"პარამეტრები","target":"გახსნის ადგილი","targetNew":"ახალი ფანჯარა (_blank)","targetTop":"ზედა ფანჯარა (_top)","targetSelf":"იგივე ფანჯარა (_self)","targetParent":"მშობელი ფანჯარა (_parent)","langDirLTR":"მარცხნიდან მარჯვნივ (LTR)","langDirRTL":"მარჯვნიდან მარცხნივ (RTL)","styles":"სტილი","cssClasses":"CSS კლასი","width":"სიგანე","height":"სიმაღლე","align":"სწორება","left":"მარცხენა","right":"მარჯვენა","center":"შუა","justify":"両端揃え","alignLeft":"მარცხნივ სწორება","alignRight":"მარჯვნივ სწორება","alignCenter":"Align Center","alignTop":"ზემოთა","alignMiddle":"შუა","alignBottom":"ქვემოთა","alignNone":"None","invalidValue":"Invalid value.","invalidHeight":"სიმაღლე რიცხვით უნდა იყოს წარმოდგენილი.","invalidWidth":"სიგანე რიცხვით უნდა იყოს წარმოდგენილი.","invalidLength":"Value specified for the \"%1\" field must be a positive number with or without a valid measurement unit (%2).","invalidCssLength":"Value specified for the \"%1\" field must be a positive number with or without a valid CSS measurement unit (px, %, in, cm, mm, em, ex, pt, or pc).","invalidHtmlLength":"Value specified for the \"%1\" field must be a positive number with or without a valid HTML measurement unit (px or %).","invalidInlineStyle":"Value specified for the inline style must consist of one or more tuples with the format of \"name : value\", separated by semi-colons.","cssLengthTooltip":"Enter a number for a value in pixels or a number with a valid CSS unit (px, %, in, cm, mm, em, ex, pt, or pc).","unavailable":"%1<span class=\"cke_accessibility\">, მიუწვდომელია</span>","keyboard":{"8":"Backspace","13":"Enter","16":"Shift","17":"Ctrl","18":"Alt","32":"Space","35":"End","36":"Home","46":"Delete","112":"F1","113":"F2","114":"F3","115":"F4","116":"F5","117":"F6","118":"F7","119":"F8","120":"F9","121":"F10","122":"F11","123":"F12","124":"F13","125":"F14","126":"F15","127":"F16","128":"F17","129":"F18","130":"F19","131":"F20","132":"F21","133":"F22","134":"F23","135":"F24","224":"Command"},"keyboardShortcut":"Keyboard shortcut","optionDefault":"Default"}};
\ No newline at end of file
diff --git a/web/core/assets/vendor/ckeditor/lang/km.js b/web/core/assets/vendor/ckeditor/lang/km.js
index 0403df3c38..25fdf1af33 100644
--- a/web/core/assets/vendor/ckeditor/lang/km.js
+++ b/web/core/assets/vendor/ckeditor/lang/km.js
@@ -1,5 +1,5 @@
 /*
-Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2020, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */
 CKEDITOR.lang['km']={"widget":{"move":"ចុច​ហើយ​ទាញ​ដើម្បី​ផ្លាស់​ទី","label":"%1 widget"},"undo":{"redo":"ធ្វើ​ឡើង​វិញ","undo":"មិន​ធ្វើ​វិញ"},"toolbar":{"toolbarCollapse":"បង្រួម​របារ​ឧបករណ៍","toolbarExpand":"ពង្រីក​របារ​ឧបករណ៍","toolbarGroups":{"document":"ឯកសារ","clipboard":"Clipboard/មិន​ធ្វើ​វិញ","editing":"ការ​កែ​សម្រួល","forms":"បែបបទ","basicstyles":"រចនាបថ​មូលដ្ឋាន","paragraph":"កថាខណ្ឌ","links":"តំណ","insert":"បញ្ចូល","styles":"រចនាបថ","colors":"ពណ៌","tools":"ឧបករណ៍"},"toolbars":"របារ​ឧបករណ៍​កែ​សម្រួល"},"table":{"border":"ទំហំ​បន្ទាត់​ស៊ុម","caption":"ចំណងជើង","cell":{"menu":"ក្រឡា","insertBefore":"បញ្ចូល​ក្រឡា​ពីមុខ","insertAfter":"បញ្ចូល​ក្រឡា​ពី​ក្រោយ","deleteCell":"លុប​ក្រឡា","merge":"បញ្ចូល​ក្រឡា​ចូល​គ្នា","mergeRight":"បញ្ចូល​គ្នា​ខាង​ស្ដាំ","mergeDown":"បញ្ចូល​គ្នា​ចុះ​ក្រោម","splitHorizontal":"ពុះ​ក្រឡា​ផ្ដេក","splitVertical":"ពុះ​ក្រឡា​បញ្ឈរ","title":"លក្ខណៈ​ក្រឡា","cellType":"ប្រភេទ​ក្រឡា","rowSpan":"ចំនួន​ជួរ​ដេក​លាយ​ចូល​គ្នា","colSpan":"ចំនួន​ជួរ​ឈរ​លាយ​ចូល​គ្នា","wordWrap":"រុំ​ពាក្យ","hAlign":"ការ​តម្រឹម​ផ្ដេក","vAlign":"ការ​តម្រឹម​បញ្ឈរ","alignBaseline":"ខ្សែ​បន្ទាត់​គោល","bgColor":"ពណ៌​ផ្ទៃ​ក្រោយ","borderColor":"ពណ៌​បន្ទាត់​ស៊ុម","data":"ទិន្នន័យ","header":"ក្បាល","yes":"ព្រម","no":"ទេ","invalidWidth":"ទទឹង​ក្រឡា​ត្រូវ​តែ​ជា​លេខ។","invalidHeight":"កម្ពស់​ក្រឡា​ត្រូវ​តែ​ជា​លេខ។","invalidRowSpan":"ចំនួន​ជួរ​ដេក​លាយ​ចូល​គ្នា​ត្រូវ​តែ​ជា​លេខ​ទាំង​អស់។","invalidColSpan":"ចំនួន​ជួរ​ឈរ​លាយ​ចូល​គ្នា​ត្រូវ​តែ​ជា​លេខ​ទាំង​អស់។","chooseColor":"រើស"},"cellPad":"ចន្លោះ​ក្រឡា","cellSpace":"គម្លាត​ក្រឡា","column":{"menu":"ជួរ​ឈរ","insertBefore":"បញ្ចូល​ជួរ​ឈរ​ពីមុខ","insertAfter":"បញ្ចូល​ជួរ​ឈរ​ពី​ក្រោយ","deleteColumn":"លុប​ជួរ​ឈរ"},"columns":"ជួរឈរ","deleteTable":"លុប​តារាង","headers":"ក្បាល","headersBoth":"ទាំង​ពីរ","headersColumn":"ជួរ​ឈរ​ដំបូង","headersNone":"មិន​មាន","headersRow":"ជួរ​ដេក​ដំបូង","heightUnit":"height unit","invalidBorder":"ទំហំ​បន្ទាត់​ស៊ុម​ត្រូវ​តែ​ជា​លេខ។","invalidCellPadding":"ចន្លោះ​ក្រឡា​ត្រូវ​តែជា​លេខ​វិជ្ជមាន។","invalidCellSpacing":"គម្លាត​ក្រឡា​ត្រូវ​តែ​ជា​លេខ​វិជ្ជមាន។","invalidCols":"ចំនួន​ជួរ​ឈរ​ត្រូវ​តែ​ជា​លេខ​ធំ​ជាង 0។","invalidHeight":"កម្ពស់​តារាង​ត្រូវ​តែ​ជា​លេខ","invalidRows":"ចំនួន​ជួរ​ដេក​ត្រូវ​តែ​ជា​លេខ​ធំ​ជាង 0។","invalidWidth":"ទទឹង​តារាង​ត្រូវ​តែ​ជា​លេខ។","menu":"លក្ខណៈ​តារាង","row":{"menu":"ជួរ​ដេក","insertBefore":"បញ្ចូល​ជួរ​ដេក​ពីមុខ","insertAfter":"បញ្ចូល​ជួរ​ដេក​ពី​ក្រោយ","deleteRow":"លុប​ជួរ​ដេក"},"rows":"ជួរ​ដេក","summary":"សេចក្តី​សង្ខេប","title":"លក្ខណៈ​តារាង","toolbar":"តារាង","widthPc":"ភាគរយ","widthPx":"ភីកសែល","widthUnit":"ឯកតា​ទទឹង"},"stylescombo":{"label":"រចនាបថ","panelTitle":"ទ្រង់ទ្រាយ​រចនាបថ","panelTitle1":"រចនាបថ​ប្លក់","panelTitle2":"រចនាបថ​ក្នុង​ជួរ","panelTitle3":"រចនាបថ​វត្ថុ"},"specialchar":{"options":"ជម្រើស​តួ​អក្សរ​ពិសេស","title":"រើស​តួអក្សរ​ពិសេស","toolbar":"បន្ថែមអក្សរពិសេស"},"sourcedialog":{"toolbar":"អក្សរ​កូដ","title":"អក្សរ​កូដ"},"sourcearea":{"toolbar":"អក្សរ​កូដ"},"showblocks":{"toolbar":"បង្ហាញ​ប្លក់"},"removeformat":{"toolbar":"ជម្រះ​ទ្រង់​ទ្រាយ"},"pastetext":{"button":"បិទ​ភ្ជាប់​ជា​អត្ថបទ​ធម្មតា","pasteNotification":"Press %1 to paste. Your browser doesn‘t support pasting with the toolbar button or context menu option.","title":"បិទ​ភ្ជាប់​ជា​អត្ថបទ​ធម្មតា"},"pastefromword":{"confirmCleanup":"អត្ថបទ​ដែល​អ្នក​ចង់​បិទ​ភ្ជាប់​នេះ ទំនង​ដូច​ជា​ចម្លង​មក​ពី Word។ តើ​អ្នក​ចង់​សម្អាត​វា​មុន​បិទ​ភ្ជាប់​ទេ?","error":"ដោយ​សារ​មាន​បញ្ហា​ផ្នែក​ក្នុង​ធ្វើ​ឲ្យ​មិន​អាច​សម្អាត​ទិន្នន័យ​ដែល​បាន​បិទ​ភ្ជាប់","title":"បិទ​ភ្ជាប់​ពី Word","toolbar":"បិទ​ភ្ជាប់​ពី Word"},"notification":{"closed":"បាន​បិទ​ការ​ផ្ដល់​ដំណឹង។"},"maximize":{"maximize":"ពង្រីក​អតិបរមា","minimize":"បង្រួម​អប្បបរមា"},"magicline":{"title":"បញ្ចូល​កថាខណ្ឌ​នៅ​ទីនេះ"},"list":{"bulletedlist":"បញ្ចូល / លុប​បញ្ជី​ជា​ចំណុច​មូល","numberedlist":"បញ្ចូល / លុប​បញ្ជី​ជា​លេខ"},"language":{"button":"កំណត់​ភាសា","remove":"លុប​ភាសា"},"indent":{"indent":"បន្ថែមការចូលបន្ទាត់","outdent":"បន្ថយការចូលបន្ទាត់"},"image2":{"alt":"អត្ថបទជំនួស","btnUpload":"បញ្ជូនទៅកាន់ម៉ាស៊ីនផ្តល់សេវា","captioned":"រូប​ដែល​មាន​ចំណង​ជើង","captionPlaceholder":"Caption","infoTab":"ពត៌មានអំពីរូបភាព","lockRatio":"ចាក់​សោ​ផល​ធៀប","menu":"លក្ខណៈ​សម្បត្តិ​រូប​ភាព","pathName":"រូបភាព","pathNameCaption":"ចំណងជើង","resetSize":"កំណត់ទំហំឡើងវិញ","resizer":"ចុច​ហើយ​ទាញ​ដើម្បី​ប្ដូរ​ទំហំ","title":"លក្ខណៈ​សម្បត្តិ​រូប​ភាប","uploadTab":"ផ្ទុក​ឡើង","urlMissing":"ខ្វះ URL ប្រភព​រូប​ភាព។","altMissing":"Alternative text is missing."},"horizontalrule":{"toolbar":"បន្ថែមបន្ទាត់ផ្តេក"},"format":{"label":"ទម្រង់","panelTitle":"ទម្រង់​កថាខណ្ឌ","tag_address":"អាសយដ្ឋាន","tag_div":"ធម្មតា (DIV)","tag_h1":"ចំណង​ជើង 1","tag_h2":"ចំណង​ជើង 2","tag_h3":"ចំណង​ជើង 3","tag_h4":"ចំណង​ជើង 4","tag_h5":"ចំណង​ជើង 5","tag_h6":"ចំណង​ជើង 6","tag_p":"ធម្មតា","tag_pre":"Formatted"},"filetools":{"loadError":"មាន​បញ្ហា​កើតឡើង​ក្នុង​ពេល​អាន​ឯកសារ។","networkError":"មាន​បញ្ហា​បណ្ដាញ​កើត​ឡើង​ក្នុង​ពេល​ផ្ទុកឡើង​ឯកសារ។","httpError404":"មាន​បញ្ហា HTTP កើត​ឡើង​ក្នុង​ពេល​ផ្ទុកឡើង​ឯកសារ (404៖ រក​ឯកសារ​មិន​ឃើញ)។","httpError403":"មាន​បញ្ហា HTTP កើត​ឡើង​ក្នុង​ពេល​ផ្ទុកឡើង​ឯកសារ (403៖ ហាមឃាត់)។","httpError":"មាន​បញ្ហា HTTP កើត​ឡើង​ក្នុង​ពេល​ផ្ទុកឡើង​ឯកសារ (ស្ថានភាព​កំហុស៖ %1)។","noUrlError":"មិន​មាន​បញ្ជាក់ URL ផ្ទុក​ឡើង។","responseError":"ការ​ឆ្លើយតប​របស់​ម៉ាស៊ីនបម្រើ មិន​ត្រឹមត្រូវ។"},"elementspath":{"eleLabel":"ទីតាំង​ធាតុ","eleTitle":"ធាតុ %1"},"contextmenu":{"options":"ជម្រើស​ម៉ឺនុយ​បរិបទ"},"clipboard":{"copy":"ចម្លង","copyError":"ការកំណត់សុវត្ថភាពរបស់កម្មវិធីរុករករបស់លោកអ្នក នេះ​មិនអាចធ្វើកម្មវិធីតាក់តែងអត្ថបទ ចំលងអត្ថបទយកដោយស្វ័យប្រវត្តបានឡើយ ។ សូមប្រើប្រាស់បន្សំ ឃីដូចនេះ (Ctrl/Cmd+C)។","cut":"កាត់យក","cutError":"ការកំណត់សុវត្ថភាពរបស់កម្មវិធីរុករករបស់លោកអ្នក នេះ​មិនអាចធ្វើកម្មវិធីតាក់តែងអត្ថបទ កាត់អត្ថបទយកដោយស្វ័យប្រវត្តបានឡើយ ។ សូមប្រើប្រាស់បន្សំ ឃីដូចនេះ  (Ctrl/Cmd+X) ។","paste":"បិទ​ភ្ជាប់","pasteNotification":"Press %1 to paste. Your browser doesn‘t support pasting with the toolbar button or context menu option.","pasteArea":"តំបន់​បិទ​ភ្ជាប់","pasteMsg":"Paste your content inside the area below and press OK."},"blockquote":{"toolbar":"ប្លក់​ពាក្យ​សម្រង់"},"basicstyles":{"bold":"ដិត","italic":"ទ្រេត","strike":"គូស​បន្ទាត់​ចំ​កណ្ដាល","subscript":"អក្សរតូចក្រោម","superscript":"អក្សរតូចលើ","underline":"គូស​បន្ទាត់​ក្រោម"},"about":{"copy":"រក្សាសិទ្ធិ &copy; $1។ រក្សា​សិទ្ធិ​គ្រប់​បែប​យ៉ាង។","dlgTitle":"អំពី CKEditor","moreInfo":"សម្រាប់​ព័ត៌មាន​អំពី​អាជ្ញាបណញណ សូម​មើល​ក្នុង​គេហទំព័រ​របស់​យើង៖"},"editor":"ឧបករណ៍​សរសេរ​អត្ថបទ​សម្បូរ​បែប","editorPanel":"ផ្ទាំង​ឧបករណ៍​សរសេរ​អត្ថបទ​សម្បូរ​បែប","common":{"editorHelp":"ចុច ALT 0 សម្រាប់​ជំនួយ","browseServer":"រក​មើល​ក្នុង​ម៉ាស៊ីន​បម្រើ","url":"URL","protocol":"ពិធីការ","upload":"ផ្ទុក​ឡើង","uploadSubmit":"បញ្ជូនទៅកាន់ម៉ាស៊ីន​បម្រើ","image":"រូបភាព","flash":"Flash","form":"បែបបទ","checkbox":"ប្រអប់​ធីក","radio":"ប៊ូតុង​មូល","textField":"វាល​អត្ថបទ","textarea":"Textarea","hiddenField":"វាល​កំបាំង","button":"ប៊ូតុង","select":"វាល​ជម្រើស","imageButton":"ប៊ូតុង​រូបភាព","notSet":"<មិនកំណត់>","id":"Id","name":"ឈ្មោះ","langDir":"ទិសដៅភាសា","langDirLtr":"ពីឆ្វេងទៅស្តាំ (LTR)","langDirRtl":"ពីស្តាំទៅឆ្វេង (RTL)","langCode":"លេខ​កូដ​ភាសា","longDescr":"URL អធិប្បាយ​វែង","cssClass":"Stylesheet Classes","advisoryTitle":"ចំណង​ជើង​ណែនាំ","cssStyle":"រចនាបថ","ok":"ព្រម","cancel":"បោះបង់","close":"បិទ","preview":"មើល​ជា​មុន","resize":"ប្ដូរ​ទំហំ","generalTab":"ទូទៅ","advancedTab":"កម្រិត​ខ្ពស់","validateNumberFailed":"តម្លៃ​នេះ​ពុំ​មែន​ជា​លេខ​ទេ។","confirmNewPage":"រាល់​បន្លាស់​ប្ដូរ​នានា​ដែល​មិន​ទាន់​រក្សា​ទុក​ក្នុង​មាតិកា​នេះ នឹង​ត្រូវ​បាត់​បង់។ តើ​អ្នក​ពិត​ជា​ចង់​ផ្ទុក​ទំព័រ​ថ្មី​មែនទេ?","confirmCancel":"ការ​កំណត់​មួយ​ចំនួន​ត្រូ​វ​បាន​ផ្លាស់​ប្ដូរ។ តើ​អ្នក​ពិត​ជា​ចង់​បិទ​ប្រអប់​នេះ​មែនទេ?","options":"ការ​កំណត់","target":"គោលដៅ","targetNew":"វីនដូ​ថ្មី (_blank)","targetTop":"វីនដូ​លើ​គេ (_top)","targetSelf":"វីនដូ​ដូច​គ្នា (_self)","targetParent":"វីនដូ​មេ (_parent)","langDirLTR":"ពីឆ្វេងទៅស្តាំ(LTR)","langDirRTL":"ពីស្តាំទៅឆ្វេង(RTL)","styles":"រចនាបថ","cssClasses":"Stylesheet Classes","width":"ទទឹង","height":"កំពស់","align":"កំណត់​ទីតាំង","left":"ខាងឆ្វង","right":"ខាងស្តាំ","center":"កណ្តាល","justify":"តំរឹមសងខាង","alignLeft":"តម្រឹម​ឆ្វេង","alignRight":"តម្រឹម​ស្ដាំ","alignCenter":"Align Center","alignTop":"ខាងលើ","alignMiddle":"កណ្តាល","alignBottom":"ខាងក្រោម","alignNone":"គ្មាន","invalidValue":"តម្លៃ​មិន​ត្រឹម​ត្រូវ។","invalidHeight":"តម្លៃ​កំពស់​ត្រូវ​តែ​ជា​លេខ។","invalidWidth":"តម្លៃ​ទទឹង​ត្រូវ​តែ​ជា​លេខ។","invalidLength":"Value specified for the \"%1\" field must be a positive number with or without a valid measurement unit (%2).","invalidCssLength":"តម្លៃ​កំណត់​សម្រាប់​វាល \"%1\" ត្រូវ​តែ​ជា​លេខ​វិជ្ជមាន​ ដោយ​ភ្ជាប់ឬ​មិន​ភ្ជាប់​ជាមួយ​នឹង​ឯកតា​រង្វាស់​របស់ CSS (px, %, in, cm, mm, em, ex, pt ឬ pc) ។","invalidHtmlLength":"តម្លៃ​កំណត់​សម្រាប់​វាល \"%1\" ត្រូវ​តែ​ជា​លេខ​វិជ្ជមាន ដោយ​ភ្ជាប់​ឬ​មិន​ភ្ជាប់​ជាមួយ​នឹង​ឯកតា​រង្វាស់​របស់ HTML (px ឬ %) ។","invalidInlineStyle":"តម្លៃ​កំណត់​សម្រាប់​រចនាបថ​ក្នុង​តួ ត្រូវ​តែ​មាន​មួយ​ឬ​ធាតុ​ច្រើន​ដោយ​មាន​ទ្រង់ទ្រាយ​ជា \"ឈ្មោះ : តម្លៃ\" ហើយ​ញែក​ចេញ​ពី​គ្នា​ដោយ​ចុច​ក្បៀស។","cssLengthTooltip":"បញ្ចូល​លេខ​សម្រាប់​តម្លៃ​ជា​ភិចសែល ឬ​លេខ​ដែល​មាន​ឯកតា​ត្រឹមត្រូវ​របស់ CSS (px, %, in, cm, mm, em, ex, pt ឬ pc) ។","unavailable":"%1<span class=\"cke_accessibility\">, មិន​មាន</span>","keyboard":{"8":"លុបថយក្រោយ","13":"Enter","16":"Shift","17":"Ctrl","18":"Alt","32":"Space","35":"ចុង","36":"ផ្ទះ","46":"លុប","112":"F1","113":"F2","114":"F3","115":"F4","116":"F5","117":"F6","118":"F7","119":"F8","120":"F9","121":"F10","122":"F11","123":"F12","124":"F13","125":"F14","126":"F15","127":"F16","128":"F17","129":"F18","130":"F19","131":"F20","132":"F21","133":"F22","134":"F23","135":"F24","224":"Command"},"keyboardShortcut":"Keyboard shortcut","optionDefault":"Default"}};
\ No newline at end of file
diff --git a/web/core/assets/vendor/ckeditor/lang/ko.js b/web/core/assets/vendor/ckeditor/lang/ko.js
index 2b6bae9a73..d021558240 100644
--- a/web/core/assets/vendor/ckeditor/lang/ko.js
+++ b/web/core/assets/vendor/ckeditor/lang/ko.js
@@ -1,5 +1,5 @@
 /*
-Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2020, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */
-CKEDITOR.lang['ko']={"widget":{"move":"움직이려면 클릭 후 드래그 하세요","label":"%1 위젯"},"undo":{"redo":"다시 실행","undo":"실행 취소"},"toolbar":{"toolbarCollapse":"툴바 줄이기","toolbarExpand":"툴바 확장","toolbarGroups":{"document":"문서","clipboard":"클립보드/실행 취소","editing":"편집","forms":"폼","basicstyles":"기본 스타일","paragraph":"단락","links":"링크","insert":"삽입","styles":"스타일","colors":"색상","tools":"도구"},"toolbars":"에디터 툴바"},"table":{"border":"테두리 두께","caption":"주석","cell":{"menu":"셀","insertBefore":"앞에 셀 삽입","insertAfter":"뒤에 셀 삽입","deleteCell":"셀 삭제","merge":"셀 합치기","mergeRight":"오른쪽 합치기","mergeDown":"왼쪽 합치기","splitHorizontal":"수평 나누기","splitVertical":"수직 나누기","title":"셀 속성","cellType":"셀 종류","rowSpan":"행 간격","colSpan":"열 간격","wordWrap":"줄 끝 단어 줄 바꿈","hAlign":"가로 정렬","vAlign":"세로 정렬","alignBaseline":"영문 글꼴 기준선","bgColor":"배경색","borderColor":"테두리 색","data":"자료","header":"머릿칸","yes":"예","no":"아니오","invalidWidth":"셀 너비는 숫자여야 합니다.","invalidHeight":"셀 높이는 숫자여야 합니다.","invalidRowSpan":"행 간격은 정수여야 합니다.","invalidColSpan":"열 간격은 정수여야 합니다.","chooseColor":"선택"},"cellPad":"셀 여백","cellSpace":"셀 간격","column":{"menu":"열","insertBefore":"왼쪽에 열 삽입","insertAfter":"오른쪽에 열 삽입","deleteColumn":"열 삭제"},"columns":"열","deleteTable":"표 삭제","headers":"머릿칸","headersBoth":"모두","headersColumn":"첫 열","headersNone":"없음","headersRow":"첫 행","heightUnit":"height unit","invalidBorder":"테두리 두께는 숫자여야 합니다.","invalidCellPadding":"셀 여백은 0 이상이어야 합니다.","invalidCellSpacing":"셀 간격은 0 이상이어야 합니다.","invalidCols":"열 번호는 0보다 커야 합니다.","invalidHeight":"표 높이는 숫자여야 합니다.","invalidRows":"행 번호는 0보다 커야 합니다.","invalidWidth":"표의 너비는 숫자여야 합니다.","menu":"표 속성","row":{"menu":"행","insertBefore":"위에 행 삽입","insertAfter":"아래에 행 삽입","deleteRow":"행 삭제"},"rows":"행","summary":"요약","title":"표 속성","toolbar":"표","widthPc":"백분율","widthPx":"픽셀","widthUnit":"너비 단위"},"stylescombo":{"label":"스타일","panelTitle":"전체 구성 스타일","panelTitle1":"블록 스타일","panelTitle2":"인라인 스타일","panelTitle3":"객체 스타일"},"specialchar":{"options":"특수문자 옵션","title":"특수문자 선택","toolbar":"특수문자 삽입"},"sourcedialog":{"toolbar":"소스","title":"소스"},"sourcearea":{"toolbar":"소스"},"showblocks":{"toolbar":"블록 보기"},"removeformat":{"toolbar":"형식 지우기"},"pastetext":{"button":"텍스트로 붙여넣기","pasteNotification":"Press %1 to paste. Your browser doesn‘t support pasting with the toolbar button or context menu option.","title":"텍스트로 붙여넣기"},"pastefromword":{"confirmCleanup":"붙여 넣을 내용은 MS Word에서 복사 한 것입니다. 붙여 넣기 전에 정리 하시겠습니까?","error":"내부 오류로 붙여 넣은 데이터를 정리 할 수 없습니다.","title":"MS Word 에서 붙여넣기","toolbar":"MS Word 에서 붙여넣기"},"notification":{"closed":"알림이 닫힘."},"maximize":{"maximize":"최대화","minimize":"최소화"},"magicline":{"title":"여기에 단락 삽입"},"list":{"bulletedlist":"순서 없는 목록","numberedlist":"순서 있는 목록"},"language":{"button":"언어 설정","remove":"언어 설정 지우기"},"indent":{"indent":"들여쓰기","outdent":"내어쓰기"},"image2":{"alt":"대체 문자열","btnUpload":"서버로 전송","captioned":"이미지 설명 넣기","captionPlaceholder":"설명","infoTab":"이미지 정보","lockRatio":"비율 유지","menu":"이미지 속성","pathName":"이미지","pathNameCaption":"설명","resetSize":"원래 크기로","resizer":"크기를 조절하려면 클릭 후 드래그 하세요","title":"이미지 속성","uploadTab":"업로드","urlMissing":"이미지 원본 주소(URL)가 없습니다.","altMissing":"대체 문자가 없습니다."},"horizontalrule":{"toolbar":"가로 줄 삽입"},"format":{"label":"문단","panelTitle":"문단 형식","tag_address":"글쓴이","tag_div":"기본 (DIV)","tag_h1":"제목 1","tag_h2":"제목 2","tag_h3":"제목 3","tag_h4":"제목 4","tag_h5":"제목 5","tag_h6":"제목 6","tag_p":"본문","tag_pre":"정형 문단"},"filetools":{"loadError":"파일을 읽는 중 오류가 발생했습니다.","networkError":"파일 업로드 중 네트워크 오류가 발생했습니다.","httpError404":"파일 업로드중 HTTP 오류가 발생했습니다 (404: 파일 찾을수 없음).","httpError403":"파일 업로드중 HTTP 오류가 발생했습니다 (403: 권한 없음).","httpError":"파일 업로드중 HTTP 오류가 발생했습니다 (오류 코드 %1).","noUrlError":"업로드 주소가 정의되어 있지 않습니다.","responseError":"잘못된 서버 응답."},"elementspath":{"eleLabel":"요소 경로","eleTitle":"%1 요소"},"contextmenu":{"options":"컨텍스트 메뉴 옵션"},"clipboard":{"copy":"복사","copyError":"브라우저의 보안설정 때문에 복사할 수 없습니다. 키보드(Ctrl/Cmd+C)를 이용해서 복사하십시오.","cut":"잘라내기","cutError":"브라우저의 보안설정 때문에 잘라내기 기능을 실행할 수 없습니다. 키보드(Ctrl/Cmd+X)를 이용해서 잘라내기 하십시오","paste":"붙여넣기","pasteNotification":"Press %1 to paste. Your browser doesn‘t support pasting with the toolbar button or context menu option.","pasteArea":"붙여넣기 범위","pasteMsg":"Paste your content inside the area below and press OK."},"blockquote":{"toolbar":"인용 단락"},"basicstyles":{"bold":"굵게","italic":"기울임꼴","strike":"취소선","subscript":"아래 첨자","superscript":"위 첨자","underline":"밑줄"},"about":{"copy":"저작권 &copy; $1 . 판권 소유.","dlgTitle":"CKEditor 에 대하여","moreInfo":"라이선스에 대한 정보는 저희 웹 사이트를 참고하세요:"},"editor":"리치 텍스트 편집기","editorPanel":"리치 텍스트 편집기 패널","common":{"editorHelp":"도움이 필요하면 ALT 0 을 누르세요","browseServer":"서버 탐색","url":"URL","protocol":"프로토콜","upload":"업로드","uploadSubmit":"서버로 전송","image":"이미지","flash":"플래시","form":"폼","checkbox":"체크 박스","radio":"라디오 버튼","textField":"한 줄 입력 칸","textarea":"여러 줄 입력 칸","hiddenField":"숨은 입력 칸","button":"버튼","select":"선택 목록","imageButton":"이미지 버튼","notSet":"<설정 안 됨>","id":"ID","name":"이름","langDir":"언어 방향","langDirLtr":"왼쪽에서 오른쪽 (LTR)","langDirRtl":"오른쪽에서 왼쪽 (RTL)","langCode":"언어 코드","longDescr":"웹 주소 설명","cssClass":"스타일 시트 클래스","advisoryTitle":"보조 제목","cssStyle":"스타일","ok":"확인","cancel":"취소","close":"닫기","preview":"미리보기","resize":"크기 조절","generalTab":"일반","advancedTab":"자세히","validateNumberFailed":"이 값은 숫자가 아닙니다.","confirmNewPage":"저장하지 않은 모든 변경사항은 유실됩니다. 정말로 새로운 페이지를 부르겠습니까?","confirmCancel":"일부 옵션이 변경 되었습니다. 정말로 창을 닫겠습니까?","options":"옵션","target":"타겟","targetNew":"새 창 (_blank)","targetTop":"최상위 창 (_top)","targetSelf":"같은 창 (_self)","targetParent":"부모 창 (_parent)","langDirLTR":"왼쪽에서 오른쪽 (LTR)","langDirRTL":"오른쪽에서 왼쪽 (RTL)","styles":"스타일","cssClasses":"스타일 시트 클래스","width":"너비","height":"높이","align":"정렬","left":"왼쪽","right":"오른쪽","center":"중앙","justify":"양쪽 정렬","alignLeft":"왼쪽 정렬","alignRight":"오른쪽 정렬","alignCenter":"중앙 정렬","alignTop":"위","alignMiddle":"중간","alignBottom":"아래","alignNone":"기본","invalidValue":"잘못된 값.","invalidHeight":"높이는 숫자여야 합니다.","invalidWidth":"넓이는 숫자여야 합니다.","invalidLength":"\"%1\" 값은 유효한 측정단위(%2)를 포함하거나 포함하지 않은 양수여야 합니다.","invalidCssLength":"\"%1\" 값은 유효한 CSS 측정 단위(px, %, in, cm, mm, em, ex, pt, or pc)를 포함하거나 포함하지 않은 양수 여야 합니다.","invalidHtmlLength":"\"%1\" 값은 유효한 HTML 측정 단위(px or %)를 포함하거나 포함하지 않은 양수여야 합니다.","invalidInlineStyle":"인라인 스타일에 설정된 값은 \"name : value\" 형식을 가진 하나 이상의 투플(tuples)이 세미콜론(;)으로 구분되어 구성되어야 합니다.","cssLengthTooltip":"픽셀 단위의 숫자만 입력하시거나 유효한 CSS 단위(px, %, in, cm, mm, em, ex, pt, or pc)와 함께 숫자를 입력해주세요.","unavailable":"%1<span class=\"cke_accessibility\">, 사용불가</span>","keyboard":{"8":"백스페이스","13":"엔터","16":"시프트","17":"컨트롤","18":"알트","32":"간격","35":"엔드","36":"홈","46":"딜리트","112":"F1","113":"F2","114":"F3","115":"F4","116":"F5","117":"F6","118":"F7","119":"F8","120":"F9","121":"F10","122":"F11","123":"F12","124":"F13","125":"F14","126":"F15","127":"F16","128":"F17","129":"F18","130":"F19","131":"F20","132":"F21","133":"F22","134":"F23","135":"F24","224":"커맨드"},"keyboardShortcut":"키보드 단축키","optionDefault":"기본값"}};
\ No newline at end of file
+CKEDITOR.lang['ko']={"widget":{"move":"움직이려면 클릭 후 드래그 하세요","label":"%1 위젯"},"undo":{"redo":"다시 실행","undo":"실행 취소"},"toolbar":{"toolbarCollapse":"툴바 줄이기","toolbarExpand":"툴바 확장","toolbarGroups":{"document":"문서","clipboard":"클립보드/실행 취소","editing":"편집","forms":"폼","basicstyles":"기본 스타일","paragraph":"단락","links":"링크","insert":"삽입","styles":"스타일","colors":"색상","tools":"도구"},"toolbars":"에디터 툴바"},"table":{"border":"테두리 두께","caption":"주석","cell":{"menu":"셀","insertBefore":"앞에 셀 삽입","insertAfter":"뒤에 셀 삽입","deleteCell":"셀 삭제","merge":"셀 합치기","mergeRight":"오른쪽 합치기","mergeDown":"왼쪽 합치기","splitHorizontal":"수평 나누기","splitVertical":"수직 나누기","title":"셀 속성","cellType":"셀 종류","rowSpan":"행 간격","colSpan":"열 간격","wordWrap":"줄 끝 단어 줄 바꿈","hAlign":"가로 정렬","vAlign":"세로 정렬","alignBaseline":"영문 글꼴 기준선","bgColor":"배경색","borderColor":"테두리 색","data":"자료","header":"머릿칸","yes":"예","no":"아니오","invalidWidth":"셀 너비는 숫자여야 합니다.","invalidHeight":"셀 높이는 숫자여야 합니다.","invalidRowSpan":"행 간격은 정수여야 합니다.","invalidColSpan":"열 간격은 정수여야 합니다.","chooseColor":"선택"},"cellPad":"셀 여백","cellSpace":"셀 간격","column":{"menu":"열","insertBefore":"왼쪽에 열 삽입","insertAfter":"오른쪽에 열 삽입","deleteColumn":"열 삭제"},"columns":"열","deleteTable":"표 삭제","headers":"머릿칸","headersBoth":"모두","headersColumn":"첫 열","headersNone":"없음","headersRow":"첫 행","heightUnit":"height unit","invalidBorder":"테두리 두께는 숫자여야 합니다.","invalidCellPadding":"셀 여백은 0 이상이어야 합니다.","invalidCellSpacing":"셀 간격은 0 이상이어야 합니다.","invalidCols":"열 번호는 0보다 커야 합니다.","invalidHeight":"표 높이는 숫자여야 합니다.","invalidRows":"행 번호는 0보다 커야 합니다.","invalidWidth":"표의 너비는 숫자여야 합니다.","menu":"표 속성","row":{"menu":"행","insertBefore":"위에 행 삽입","insertAfter":"아래에 행 삽입","deleteRow":"행 삭제"},"rows":"행","summary":"요약","title":"표 속성","toolbar":"표","widthPc":"백분율","widthPx":"픽셀","widthUnit":"너비 단위"},"stylescombo":{"label":"스타일","panelTitle":"전체 구성 스타일","panelTitle1":"블록 스타일","panelTitle2":"인라인 스타일","panelTitle3":"객체 스타일"},"specialchar":{"options":"특수문자 옵션","title":"특수문자 선택","toolbar":"특수문자 삽입"},"sourcedialog":{"toolbar":"소스","title":"소스"},"sourcearea":{"toolbar":"소스"},"showblocks":{"toolbar":"블록 보기"},"removeformat":{"toolbar":"형식 지우기"},"pastetext":{"button":"텍스트로 붙여넣기","pasteNotification":"Press %1 to paste. Your browser doesn‘t support pasting with the toolbar button or context menu option.","title":"텍스트로 붙여넣기"},"pastefromword":{"confirmCleanup":"붙여 넣을 내용은 MS Word에서 복사 한 것입니다. 붙여 넣기 전에 정리 하시겠습니까?","error":"내부 오류로 붙여 넣은 데이터를 정리 할 수 없습니다.","title":"MS Word 에서 붙여넣기","toolbar":"MS Word 에서 붙여넣기"},"notification":{"closed":"알림이 닫힘."},"maximize":{"maximize":"최대화","minimize":"최소화"},"magicline":{"title":"여기에 단락 삽입"},"list":{"bulletedlist":"순서 없는 목록","numberedlist":"순서 있는 목록"},"language":{"button":"언어 설정","remove":"언어 설정 지우기"},"indent":{"indent":"들여쓰기","outdent":"내어쓰기"},"image2":{"alt":"대체 문자열","btnUpload":"서버로 전송","captioned":"이미지 설명 넣기","captionPlaceholder":"설명","infoTab":"이미지 정보","lockRatio":"비율 유지","menu":"이미지 속성","pathName":"이미지","pathNameCaption":"설명","resetSize":"원래 크기로","resizer":"크기를 조절하려면 클릭 후 드래그 하세요","title":"이미지 속성","uploadTab":"업로드","urlMissing":"이미지 원본 주소(URL)가 없습니다.","altMissing":"대체 문자가 없습니다."},"horizontalrule":{"toolbar":"가로 줄 삽입"},"format":{"label":"문단","panelTitle":"문단 형식","tag_address":"글쓴이","tag_div":"기본 (DIV)","tag_h1":"제목 1","tag_h2":"제목 2","tag_h3":"제목 3","tag_h4":"제목 4","tag_h5":"제목 5","tag_h6":"제목 6","tag_p":"본문","tag_pre":"정형 문단"},"filetools":{"loadError":"파일을 읽는 중 오류가 발생했습니다.","networkError":"파일 업로드 중 네트워크 오류가 발생했습니다.","httpError404":"파일 업로드중 HTTP 오류가 발생했습니다 (404: 파일 찾을수 없음).","httpError403":"파일 업로드중 HTTP 오류가 발생했습니다 (403: 권한 없음).","httpError":"파일 업로드중 HTTP 오류가 발생했습니다 (오류 코드 %1).","noUrlError":"업로드 주소가 정의되어 있지 않습니다.","responseError":"잘못된 서버 응답."},"elementspath":{"eleLabel":"요소 경로","eleTitle":"%1 요소"},"contextmenu":{"options":"컨텍스트 메뉴 옵션"},"clipboard":{"copy":"복사","copyError":"브라우저의 보안설정 때문에 복사할 수 없습니다. 키보드(Ctrl/Cmd+C)를 이용해서 복사하십시오.","cut":"잘라내기","cutError":"브라우저의 보안설정 때문에 잘라내기 기능을 실행할 수 없습니다. 키보드(Ctrl/Cmd+X)를 이용해서 잘라내기 하십시오","paste":"붙여넣기","pasteNotification":"Press %1 to paste. Your browser doesn‘t support pasting with the toolbar button or context menu option.","pasteArea":"붙여넣기 범위","pasteMsg":"Paste your content inside the area below and press OK."},"blockquote":{"toolbar":"인용 단락"},"basicstyles":{"bold":"굵게","italic":"기울임꼴","strike":"취소선","subscript":"아래 첨자","superscript":"위 첨자","underline":"밑줄"},"about":{"copy":"저작권 &copy; $1 . 판권 소유.","dlgTitle":"CKEditor 에 대하여","moreInfo":"라이선스에 대한 정보는 저희 웹 사이트를 참고하세요:"},"editor":"리치 텍스트 편집기","editorPanel":"리치 텍스트 편집기 패널","common":{"editorHelp":"도움이 필요하면 ALT 0 을 누르세요","browseServer":"서버 탐색","url":"URL","protocol":"프로토콜","upload":"업로드","uploadSubmit":"서버로 전송","image":"이미지","flash":"플래시","form":"폼","checkbox":"체크 박스","radio":"라디오 버튼","textField":"한 줄 입력 칸","textarea":"여러 줄 입력 칸","hiddenField":"숨은 입력 칸","button":"버튼","select":"선택 목록","imageButton":"이미지 버튼","notSet":"<설정 안 됨>","id":"ID","name":"이름","langDir":"언어 방향","langDirLtr":"왼쪽에서 오른쪽 (LTR)","langDirRtl":"오른쪽에서 왼쪽 (RTL)","langCode":"언어 코드","longDescr":"웹 주소 설명","cssClass":"스타일 시트 클래스","advisoryTitle":"보조 제목","cssStyle":"스타일","ok":"확인","cancel":"취소","close":"닫기","preview":"미리보기","resize":"크기 조절","generalTab":"일반","advancedTab":"자세히","validateNumberFailed":"이 값은 숫자가 아닙니다.","confirmNewPage":"저장하지 않은 모든 변경사항은 유실됩니다. 정말로 새로운 페이지를 부르겠습니까?","confirmCancel":"일부 옵션이 변경 되었습니다. 정말로 창을 닫겠습니까?","options":"옵션","target":"타겟","targetNew":"새 창 (_blank)","targetTop":"최상위 창 (_top)","targetSelf":"같은 창 (_self)","targetParent":"부모 창 (_parent)","langDirLTR":"왼쪽에서 오른쪽 (LTR)","langDirRTL":"오른쪽에서 왼쪽 (RTL)","styles":"스타일","cssClasses":"스타일 시트 클래스","width":"너비","height":"높이","align":"정렬","left":"왼쪽","right":"오른쪽","center":"중앙","justify":"양쪽 정렬","alignLeft":"왼쪽 정렬","alignRight":"오른쪽 정렬","alignCenter":"중앙 정렬","alignTop":"위","alignMiddle":"중간","alignBottom":"아래","alignNone":"기본","invalidValue":"잘못된 값.","invalidHeight":"높이는 숫자여야 합니다.","invalidWidth":"넓이는 숫자여야 합니다.","invalidLength":"\"%1\" 값은 유효한 측정단위(%2)를 포함하거나 포함하지 않은 양수여야 합니다.","invalidCssLength":"\"%1\" 값은 유효한 CSS 측정 단위(px, %, in, cm, mm, em, ex, pt, or pc)를 포함하거나 포함하지 않은 양수 여야 합니다.","invalidHtmlLength":"\"%1\" 값은 유효한 HTML 측정 단위(px or %)를 포함하거나 포함하지 않은 양수여야 합니다.","invalidInlineStyle":"인라인 스타일에 명시된 값은 세미콜론(;)으로 구분되는 한 쌍 이상의 \"이름 : 값\" 형식으로 구성되어야 합니다.","cssLengthTooltip":"픽셀 단위의 숫자만 입력하시거나 숫자와 유효한 CSS 단위(px, %, in, cm, mm, em, ex, pt, or pc)를 함께 입력해주세요.","unavailable":"%1<span class=\"cke_accessibility\">, 사용불가</span>","keyboard":{"8":"백스페이스","13":"엔터","16":"시프트","17":"컨트롤","18":"알트","32":"간격","35":"엔드","36":"홈","46":"딜리트","112":"F1","113":"F2","114":"F3","115":"F4","116":"F5","117":"F6","118":"F7","119":"F8","120":"F9","121":"F10","122":"F11","123":"F12","124":"F13","125":"F14","126":"F15","127":"F16","128":"F17","129":"F18","130":"F19","131":"F20","132":"F21","133":"F22","134":"F23","135":"F24","224":"커맨드"},"keyboardShortcut":"키보드 단축키","optionDefault":"기본값"}};
\ No newline at end of file
diff --git a/web/core/assets/vendor/ckeditor/lang/ku.js b/web/core/assets/vendor/ckeditor/lang/ku.js
index 5f9b3bacb9..0aeb35ddc0 100644
--- a/web/core/assets/vendor/ckeditor/lang/ku.js
+++ b/web/core/assets/vendor/ckeditor/lang/ku.js
@@ -1,5 +1,5 @@
 /*
-Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2020, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */
 CKEDITOR.lang['ku']={"widget":{"move":"کرتەبکە و ڕایبکێشە بۆ جوڵاندن","label":"%1 ویجێت"},"undo":{"redo":"هەڵگەڕاندنەوە","undo":"پووچکردنەوە"},"toolbar":{"toolbarCollapse":"شاردنەوی هێڵی تووڵامراز","toolbarExpand":"نیشاندانی هێڵی تووڵامراز","toolbarGroups":{"document":"پەڕه","clipboard":"بڕین/پووچکردنەوە","editing":"چاکسازی","forms":"داڕشتە","basicstyles":"شێوازی بنچینەیی","paragraph":"بڕگە","links":"بەستەر","insert":"خستنە ناو","styles":"شێواز","colors":"ڕەنگەکان","tools":"ئامرازەکان"},"toolbars":"تووڵامرازی دەسکاریکەر"},"table":{"border":"گەورەیی پەراوێز","caption":"سەردێڕ","cell":{"menu":"خانه","insertBefore":"دانانی خانه لەپێش","insertAfter":"دانانی خانه لەپاش","deleteCell":"سڕینەوەی خانه","merge":"تێکەڵکردنی خانە","mergeRight":"تێکەڵکردنی لەگەڵ ڕاست","mergeDown":"تێکەڵکردنی لەگەڵ خوارەوە","splitHorizontal":"دابەشکردنی خانەی ئاسۆیی","splitVertical":"دابەشکردنی خانەی ئەستونی","title":"خاسیەتی خانه","cellType":"جۆری خانه","rowSpan":"ماوەی نێوان ڕیز","colSpan":"بستی ئەستونی","wordWrap":"پێچانەوەی وشە","hAlign":"ڕیزکردنی ئاسۆیی","vAlign":"ڕیزکردنی ئەستونی","alignBaseline":"هێڵەبنەڕەت","bgColor":"ڕەنگی پاشبنەما","borderColor":"ڕەنگی پەراوێز","data":"داتا","header":"سەرپەڕه","yes":"بەڵێ","no":"نەخێر","invalidWidth":"پانی خانه دەبێت بەتەواوی ژماره بێت.","invalidHeight":"درێژی خانه بەتەواوی دەبێت ژمارە بێت.","invalidRowSpan":"ماوەی نێوان ڕیز بەتەواوی دەبێت ژمارە بێت.","invalidColSpan":"ماوەی نێوان ئەستونی بەتەواوی دەبێت ژمارە بێت.","chooseColor":"هەڵبژێرە"},"cellPad":"بۆشایی ناوپۆش","cellSpace":"بۆشایی خانه","column":{"menu":"ئەستون","insertBefore":"دانانی ئەستون لەپێش","insertAfter":"دانانی ئەستوون لەپاش","deleteColumn":"سڕینەوەی ئەستوون"},"columns":"ستوونەکان","deleteTable":"سڕینەوەی خشتە","headers":"سەرپەڕه","headersBoth":"هەردووك","headersColumn":"یەکەم ئەستوون","headersNone":"هیچ","headersRow":"یەکەم ڕیز","heightUnit":"height unit","invalidBorder":"ژمارەی پەراوێز دەبێت تەنها ژماره بێت.","invalidCellPadding":"ناوپۆشی خانه دەبێت ژمارەکی درووست بێت.","invalidCellSpacing":"بۆشایی خانه دەبێت ژمارەکی درووست بێت.","invalidCols":"ژمارەی ئەستوونی دەبێت گەورەتر بێت لەژمارەی 0.","invalidHeight":"درێژی خشته دهبێت تهنها ژماره بێت.","invalidRows":"ژمارەی ڕیز دەبێت گەورەتر بێت لەژمارەی 0.","invalidWidth":"پانی خشته دەبێت تەنها ژماره بێت.","menu":"خاسیەتی خشتە","row":{"menu":"ڕیز","insertBefore":"دانانی ڕیز لەپێش","insertAfter":"دانانی ڕیز لەپاش","deleteRow":"سڕینەوەی ڕیز"},"rows":"ڕیز","summary":"کورتە","title":"خاسیەتی خشتە","toolbar":"خشتە","widthPc":"لەسەدا","widthPx":"وێنەخاڵ - پیکسل","widthUnit":"پانی یەکە"},"stylescombo":{"label":"شێواز","panelTitle":"شێوازی ڕازاندنەوە","panelTitle1":"شێوازی خشت","panelTitle2":"شێوازی ناوهێڵ","panelTitle3":"شێوازی بەرکار"},"specialchar":{"options":"هەڵبژاردەی نووسەی تایبەتی","title":"هەڵبژاردنی نووسەی تایبەتی","toolbar":"دانانی نووسەی تایبەتی"},"sourcedialog":{"toolbar":"سەرچاوە","title":"سەرچاوە"},"sourcearea":{"toolbar":"سەرچاوە"},"showblocks":{"toolbar":"نیشاندانی بەربەستەکان"},"removeformat":{"toolbar":"لابردنی داڕشتەکە"},"pastetext":{"button":"لکاندنی وەك دەقی ڕوون","pasteNotification":"کلیک بکە لەسەر %1 بۆ لکاندنی. وێبگەڕەکەت پشتیوانی لکاندن ناکات بە دوگمەی تولامراز یان ئامرازی ناوەڕۆکی لیستە - کلیکی دەستی ڕاست","title":"لکاندنی وەك دەقی ڕوون"},"pastefromword":{"confirmCleanup":"ئەم دەقەی بەتەمای بیلکێنی پێدەچێت له word هێنرابێت. دەتەوێت پاکی بکەیوه پێش ئەوەی بیلکێنی؟","error":"هیچ ڕێگەیەك نەبوو لەلکاندنی دەقەکه بەهۆی هەڵەیەکی ناوەخۆیی","title":"لکاندنی لەلایەن Word","toolbar":"لکاندنی لەڕێی Word"},"notification":{"closed":"ئاگادارکەرەوەکە داخرا."},"maximize":{"maximize":"ئەوپەڕی گەورەیی","minimize":"ئەوپەڕی بچووکی"},"magicline":{"title":"بڕگە لێرە دابنێ"},"list":{"bulletedlist":"دانان/لابردنی خاڵی لیست","numberedlist":"دانان/لابردنی ژمارەی لیست"},"language":{"button":"جێگیرکردنی زمان","remove":"لابردنی زمان"},"indent":{"indent":"زیادکردنی بۆشایی","outdent":"کەمکردنەوەی بۆشایی"},"image2":{"alt":"جێگرەوەی دەق","btnUpload":"ناردنی بۆ ڕاژه","captioned":"وێنەی بەسەردێر","captionPlaceholder":"سەردێر","infoTab":"زانیاری وێنه","lockRatio":"داخستنی ڕێژه","menu":"خاسیەتی وێنه","pathName":"وێنە","pathNameCaption":"سەردێر","resetSize":"ڕێکخستنەوەی قەباره","resizer":"کرتەبکە و ڕایبکێشە بۆ قەبارە گۆڕین","title":"خاسیەتی وێنه","uploadTab":"بارکردن","urlMissing":"سەرچاوەی بەستەری وێنه بزره","altMissing":"جێگرەوەی دەق لەدەست چووە."},"horizontalrule":{"toolbar":"دانانی هێلی ئاسۆیی"},"format":{"label":"ڕازاندنەوە","panelTitle":"بەشی ڕازاندنەوه","tag_address":"ناونیشان","tag_div":"(DIV)-ی ئاسایی","tag_h1":"سەرنووسەی ١","tag_h2":"سەرنووسەی ٢","tag_h3":"سەرنووسەی ٣","tag_h4":"سەرنووسەی ٤","tag_h5":"سەرنووسەی ٥","tag_h6":"سەرنووسەی ٦","tag_p":"ئاسایی","tag_pre":"شێوازکراو"},"filetools":{"loadError":"هەڵەیەک ڕوویدا لە ماوەی خوێندنەوەی پەڕگەکە.","networkError":"هەڵەیەکی ڕایەڵە ڕوویدا لە ماوەی بارکردنی پەڕگەکە.","httpError404":"هەڵەیەک ڕوویدا لە ماوەی بارکردنی پەڕگەکە (404: پەڕگەکە نەدۆزراوە).","httpError403":"هەڵەیەک ڕوویدا لە ماوەی بارکردنی پەڕگەکە  (403: قەدەغەکراو).","httpError":"هەڵەیەک ڕوویدا لە ماوەی بارکردنی پەڕگەکە (دۆخی هەڵە: %1).","noUrlError":"بەستەری پەڕگەکە پێناسە نەکراوە.","responseError":"وەڵامێکی نادروستی سێرڤەر."},"elementspath":{"eleLabel":"ڕێڕەوی توخمەکان","eleTitle":"%1 توخم"},"contextmenu":{"options":"هەڵبژاردەی لیستەی کلیکی دەستی ڕاست"},"clipboard":{"copy":"لەبەرگرتنەوە","copyError":"پارێزی وێبگەڕەکەت ڕێگەنادات بەسەرنووسەکە لە لکاندنی دەقی خۆکارارنە. تکایە لەبری ئەمە ئەم فەرمانە بەکاربهێنە بەداگرتنی کلیلی (Ctrl/Cmd+C).","cut":"بڕین","cutError":"پارێزی وێبگەڕەکەت ڕێگەنادات بە سەرنووسەکە لەبڕینی خۆکارانە. تکایە لەبری ئەمە ئەم فەرمانە بەکاربهێنە بەداگرتنی کلیلی (Ctrl/Cmd+X).","paste":"لکاندن","pasteNotification":"کلیک بکە لەسەر %1 بۆ لکاندنی. وێبگەڕەکەت پشتیوانی لکاندن ناکات بە دوگمەی تولامراز یان ئامرازی ناوەڕۆکی لیستە -  کلیکی دەستی ڕاست. ","pasteArea":"ناوچەی لکاندن","pasteMsg":"ناوەڕۆکەکەت لەم پانتایی خوارەوە بلکێنە"},"blockquote":{"toolbar":"بەربەستکردنی ووتەی وەرگیراو"},"basicstyles":{"bold":"قەڵەو","italic":"لار","strike":"لێدان","subscript":"ژێرنووس","superscript":"سەرنووس","underline":"ژێرهێڵ"},"about":{"copy":"مافی لەبەرگەرتنەوەی &copy; $1. گشتی پارێزراوه. ورگێڕانی بۆ کوردی لەلایەن هۆژە کۆیی.","dlgTitle":"دەربارەی CKEditor 4","moreInfo":"بۆ زانیاری زیاتر دەربارەی مۆڵەتی بەکارهێنان، تکایه سەردانی ماڵپەڕەکەمان بکه:"},"editor":"سەرنووسەی دەقی تەواو","editorPanel":"بڕگەی سەرنووسەی دەقی تەواو","common":{"editorHelp":"کلیکی ALT لەگەڵ 0 بکه‌ بۆ یارمەتی","browseServer":"هێنانی ڕاژە","url":"ناونیشانی بەستەر","protocol":"پڕۆتۆکۆڵ","upload":"بارکردن","uploadSubmit":"ناردنی بۆ ڕاژە","image":"وێنە","flash":"فلاش","form":"داڕشتە","checkbox":"خانەی نیشانکردن","radio":"جێگرەوەی دوگمە","textField":"خانەی دەق","textarea":"ڕووبەری دەق","hiddenField":"شاردنەوی خانە","button":"دوگمە","select":"هەڵبژاردەی خانە","imageButton":"دوگمەی وێنە","notSet":"<هیچ دانەدراوە>","id":"ناسنامە","name":"ناو","langDir":"ئاراستەی زمان","langDirLtr":"چەپ بۆ ڕاست (LTR)","langDirRtl":"ڕاست بۆ چەپ (RTL)","langCode":"هێمای زمان","longDescr":"پێناسەی درێژی بەستەر","cssClass":"شێوازی چینی په‌ڕە","advisoryTitle":"ڕاوێژکاری سەردێڕ","cssStyle":"شێواز","ok":"باشە","cancel":"پاشگەزبوونەوە","close":"داخستن","preview":"پێشبینین","resize":"گۆڕینی ئەندازە","generalTab":"گشتی","advancedTab":"پەرەسەندوو","validateNumberFailed":"ئەم نرخە ژمارە نیە، تکایە نرخێکی ژمارە بنووسە.","confirmNewPage":"سەرجەم گۆڕانکاریەکان و پێکهاتەکانی ناووەوە لەدەست دەدەی گەر بێتوو پاشکەوتی نەکەی یەکەم جار، تۆ هەر دڵنیایی لەکردنەوەی پەنجەرەکی نوێ؟","confirmCancel":"هەندێك هەڵبژاردە گۆڕدراوە. تۆ دڵنیایی لە داخستنی ئەم دیالۆگە؟","options":"هەڵبژاردەکان","target":"ئامانج","targetNew":"پەنجەرەیەکی نوێ (_blank)","targetTop":"لووتکەی پەنجەرە (_top)","targetSelf":"لەهەمان پەنجەرە (_self)","targetParent":"پەنجەرەی باوان (_parent)","langDirLTR":"چەپ بۆ ڕاست (LTR)","langDirRTL":"ڕاست بۆ چەپ (RTL)","styles":"شێواز","cssClasses":"شێوازی چینی پەڕە","width":"پانی","height":"درێژی","align":"ڕێککەرەوە","left":"چەپ","right":"ڕاست","center":"ناوەڕاست","justify":"هاوستوونی","alignLeft":"بەهێڵ کردنی چەپ","alignRight":"بەهێڵ کردنی ڕاست","alignCenter":"بەهێڵ کردنی ناوەڕاست","alignTop":"سەرەوە","alignMiddle":"ناوەند","alignBottom":"ژێرەوە","alignNone":"هیچ","invalidValue":"نرخێکی نادرووست.","invalidHeight":"درێژی دەبێت ژمارە بێت.","invalidWidth":"پانی دەبێت ژمارە بێت.","invalidLength":"ئەم نرخەی دراوە بۆ خانەی \"%1\" دەبێت ژمارەکی درووست لەگەڵ بێت یان بە بێ پێوانەی یەکەی ( %2)","invalidCssLength":"ئەم نرخەی دراوە بۆ خانەی \"%1\" دەبێت ژمارەکی درووست بێت یان بێ ناونیشانی ئامرازی (px, %, in, cm, mm, em, ex, pt, یان pc).","invalidHtmlLength":"ئەم نرخەی دراوە بۆ خانەی \"%1\" دەبێت ژمارەکی درووست بێت یان بێ ناونیشانی ئامرازی HTML (px یان %).","invalidInlineStyle":"دانەی نرخی شێوازی ناوهێڵ دەبێت پێکهاتبێت لەیەك یان زیاتری داڕشتە \"ناو : نرخ\", جیاکردنەوەی بە فاریزە و خاڵ","cssLengthTooltip":"ژمارەیەك بنووسه‌ بۆ نرخی piksel یان ئامرازێکی درووستی CSS (px, %, in, cm, mm, em, ex, pt, یان pc).","unavailable":"%1<span class=\"cke_accessibility\">, ئامادە نیە</span>","keyboard":{"8":"Backspace","13":"Enter","16":"Shift","17":"Ctrl","18":"Alt","32":"Space","35":"End","36":"Home","46":"Delete","112":"F1","113":"F2","114":"F3","115":"F4","116":"F5","117":"F6","118":"F7","119":"F8","120":"F9","121":"F10","122":"F11","123":"F12","124":"F13","125":"F14","126":"F15","127":"F16","128":"F17","129":"F18","130":"F19","131":"F20","132":"F21","133":"F22","134":"F23","135":"F24","224":"فەرمان"},"keyboardShortcut":"کورتبڕی تەختەکلیل","optionDefault":"هەمیشەیی"}};
\ No newline at end of file
diff --git a/web/core/assets/vendor/ckeditor/lang/lt.js b/web/core/assets/vendor/ckeditor/lang/lt.js
index 4aa8ce62bc..ae00a3020f 100644
--- a/web/core/assets/vendor/ckeditor/lang/lt.js
+++ b/web/core/assets/vendor/ckeditor/lang/lt.js
@@ -1,5 +1,5 @@
 /*
-Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2020, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */
 CKEDITOR.lang['lt']={"widget":{"move":"Paspauskite ir tempkite kad perkeltumėte","label":"%1 valdiklis"},"undo":{"redo":"Atstatyti","undo":"Atšaukti"},"toolbar":{"toolbarCollapse":"Apjungti įrankių juostą","toolbarExpand":"Išplėsti įrankių juostą","toolbarGroups":{"document":"Dokumentas","clipboard":"Atmintinė/Atgal","editing":"Redagavimas","forms":"Formos","basicstyles":"Pagrindiniai stiliai","paragraph":"Paragrafas","links":"Nuorodos","insert":"Įterpti","styles":"Stiliai","colors":"Spalvos","tools":"Įrankiai"},"toolbars":"Redaktoriaus įrankiai"},"table":{"border":"Rėmelio dydis","caption":"Antraštė","cell":{"menu":"Langelis","insertBefore":"Įterpti langelį prieš","insertAfter":"Įterpti langelį po","deleteCell":"Šalinti langelius","merge":"Sujungti langelius","mergeRight":"Sujungti su dešine","mergeDown":"Sujungti su apačia","splitHorizontal":"Skaidyti langelį horizontaliai","splitVertical":"Skaidyti langelį vertikaliai","title":"Cell nustatymai","cellType":"Cell rūšis","rowSpan":"Eilučių Span","colSpan":"Stulpelių Span","wordWrap":"Sutraukti raides","hAlign":"Horizontalus lygiavimas","vAlign":"Vertikalus lygiavimas","alignBaseline":"Apatinė linija","bgColor":"Fono spalva","borderColor":"Rėmelio spalva","data":"Data","header":"Antraštė","yes":"Taip","no":"Ne","invalidWidth":"Reikšmė turi būti skaičius.","invalidHeight":"Reikšmė turi būti skaičius.","invalidRowSpan":"Reikšmė turi būti skaičius.","invalidColSpan":"Reikšmė turi būti skaičius.","chooseColor":"Pasirinkite"},"cellPad":"Tarpas nuo langelio rėmo iki teksto","cellSpace":"Tarpas tarp langelių","column":{"menu":"Stulpelis","insertBefore":"Įterpti stulpelį prieš","insertAfter":"Įterpti stulpelį po","deleteColumn":"Šalinti stulpelius"},"columns":"Stulpeliai","deleteTable":"Šalinti lentelę","headers":"Antraštės","headersBoth":"Abu","headersColumn":"Pirmas stulpelis","headersNone":"Nėra","headersRow":"Pirma eilutė","heightUnit":"height unit","invalidBorder":"Reikšmė turi būti nurodyta skaičiumi.","invalidCellPadding":"Reikšmė turi būti nurodyta skaičiumi.","invalidCellSpacing":"Reikšmė turi būti nurodyta skaičiumi.","invalidCols":"Skaičius turi būti didesnis nei 0.","invalidHeight":"Reikšmė turi būti nurodyta skaičiumi.","invalidRows":"Skaičius turi būti didesnis nei 0.","invalidWidth":"Reikšmė turi būti nurodyta skaičiumi.","menu":"Lentelės savybės","row":{"menu":"Eilutė","insertBefore":"Įterpti eilutę prieš","insertAfter":"Įterpti eilutę po","deleteRow":"Šalinti eilutes"},"rows":"Eilutės","summary":"Santrauka","title":"Lentelės savybės","toolbar":"Lentelė","widthPc":"procentais","widthPx":"taškais","widthUnit":"pločio vienetas"},"stylescombo":{"label":"Stilius","panelTitle":"Stilių formatavimas","panelTitle1":"Blokų stiliai","panelTitle2":"Vidiniai stiliai","panelTitle3":"Objektų stiliai"},"specialchar":{"options":"Specialaus simbolio nustatymai","title":"Pasirinkite specialų simbolį","toolbar":"Įterpti specialų simbolį"},"sourcedialog":{"toolbar":"Šaltinis","title":"Šaltinis"},"sourcearea":{"toolbar":"Šaltinis"},"showblocks":{"toolbar":"Rodyti blokus"},"removeformat":{"toolbar":"Panaikinti formatą"},"pastetext":{"button":"Įdėti kaip gryną tekstą","pasteNotification":"Spauskite %1 kad įklijuotumėte. Jūsų naršyklė nepalaiko įklijavimo mygtuko arba kontekstinio meniu šiam veiksmui.","title":"Įdėti kaip gryną tekstą"},"pastefromword":{"confirmCleanup":"Tekstas, kurį įkeliate yra kopijuojamas iš Word. Ar norite jį išvalyti prieš įkeliant?","error":"Dėl vidinių sutrikimų, nepavyko išvalyti įkeliamo teksto","title":"Įdėti iš Word","toolbar":"Įdėti iš Word"},"notification":{"closed":"Pranešimas uždarytas."},"maximize":{"maximize":"Išdidinti","minimize":"Sumažinti"},"magicline":{"title":"Įterpti pastraipą čia"},"list":{"bulletedlist":"Suženklintas sąrašas","numberedlist":"Numeruotas sąrašas"},"language":{"button":"Nustatyti kalbą","remove":"Pašalinti kalbą"},"indent":{"indent":"Padidinti įtrauką","outdent":"Sumažinti įtrauką"},"image2":{"alt":"Alternatyvus Tekstas","btnUpload":"Siųsti į serverį","captioned":"Captioned image","captionPlaceholder":"Caption","infoTab":"Vaizdo informacija","lockRatio":"Išlaikyti proporciją","menu":"Vaizdo savybės","pathName":"image","pathNameCaption":"caption","resetSize":"Atstatyti dydį","resizer":"Click and drag to resize","title":"Vaizdo savybės","uploadTab":"Siųsti","urlMissing":"Paveiksliuko nuorodos nėra.","altMissing":"Alternative text is missing."},"horizontalrule":{"toolbar":"Įterpti horizontalią liniją"},"format":{"label":"Šrifto formatas","panelTitle":"Šrifto formatas","tag_address":"Kreipinio","tag_div":"Normalus (DIV)","tag_h1":"Antraštinis 1","tag_h2":"Antraštinis 2","tag_h3":"Antraštinis 3","tag_h4":"Antraštinis 4","tag_h5":"Antraštinis 5","tag_h6":"Antraštinis 6","tag_p":"Normalus","tag_pre":"Formuotas"},"filetools":{"loadError":"Error occurred during file read.","networkError":"Network error occurred during file upload.","httpError404":"HTTP error occurred during file upload (404: File not found).","httpError403":"HTTP error occurred during file upload (403: Forbidden).","httpError":"HTTP error occurred during file upload (error status: %1).","noUrlError":"Upload URL is not defined.","responseError":"Incorrect server response."},"elementspath":{"eleLabel":"Elemento kelias","eleTitle":"%1 elementas"},"contextmenu":{"options":"Kontekstinio meniu parametrai"},"clipboard":{"copy":"Kopijuoti","copyError":"Jūsų naršyklės saugumo nustatymai neleidžia redaktoriui automatiškai įvykdyti kopijavimo operacijų. Tam prašome naudoti klaviatūrą (Ctrl/Cmd+C).","cut":"Iškirpti","cutError":"Jūsų naršyklės saugumo nustatymai neleidžia redaktoriui automatiškai įvykdyti iškirpimo operacijų. Tam prašome naudoti klaviatūrą (Ctrl/Cmd+X).","paste":"Įdėti","pasteNotification":"Spauskite %1 kad įkliuotumėte. Jūsų naršyklė nepalaiko įklijavimo paspaudus mygtuką arba kontekstinio menių galimybės.","pasteArea":"Įkelti dalį","pasteMsg":"Įklijuokite savo turinį į žemiau esantį lauką ir paspauskite OK."},"blockquote":{"toolbar":"Citata"},"basicstyles":{"bold":"Pusjuodis","italic":"Kursyvas","strike":"Perbrauktas","subscript":"Apatinis indeksas","superscript":"Viršutinis indeksas","underline":"Pabrauktas"},"about":{"copy":"Copyright &copy; $1. Visos teiss saugomos.","dlgTitle":"Apie CKEditor 4","moreInfo":"Dėl licencijavimo apsilankykite mūsų svetainėje:"},"editor":"Pilnas redaktorius","editorPanel":"Pilno redagtoriaus skydelis","common":{"editorHelp":"Spauskite ALT 0 dėl pagalbos","browseServer":"Naršyti po serverį","url":"URL","protocol":"Protokolas","upload":"Siųsti","uploadSubmit":"Siųsti į serverį","image":"Vaizdas","flash":"Flash","form":"Forma","checkbox":"Žymimasis langelis","radio":"Žymimoji akutė","textField":"Teksto laukas","textarea":"Teksto sritis","hiddenField":"Nerodomas laukas","button":"Mygtukas","select":"Atrankos laukas","imageButton":"Vaizdinis mygtukas","notSet":"<nėra nustatyta>","id":"Id","name":"Vardas","langDir":"Teksto kryptis","langDirLtr":"Iš kairės į dešinę (LTR)","langDirRtl":"Iš dešinės į kairę (RTL)","langCode":"Kalbos kodas","longDescr":"Ilgas aprašymas URL","cssClass":"Stilių lentelės klasės","advisoryTitle":"Konsultacinė antraštė","cssStyle":"Stilius","ok":"OK","cancel":"Nutraukti","close":"Uždaryti","preview":"Peržiūrėti","resize":"Pavilkite, kad pakeistumėte dydį","generalTab":"Bendros savybės","advancedTab":"Papildomas","validateNumberFailed":"Ši reikšmė nėra skaičius.","confirmNewPage":"Visas neišsaugotas turinys bus prarastas. Ar tikrai norite įkrauti naują puslapį?","confirmCancel":"Kai kurie parametrai pasikeitė. Ar tikrai norite užverti langą?","options":"Parametrai","target":"Tikslinė nuoroda","targetNew":"Naujas langas (_blank)","targetTop":"Viršutinis langas (_top)","targetSelf":"Esamas langas (_self)","targetParent":"Paskutinis langas (_parent)","langDirLTR":"Iš kairės į dešinę (LTR)","langDirRTL":"Iš dešinės į kairę (RTL)","styles":"Stilius","cssClasses":"Stilių klasės","width":"Plotis","height":"Aukštis","align":"Lygiuoti","left":"Kairę","right":"Dešinę","center":"Centrą","justify":"Lygiuoti abi puses","alignLeft":"Lygiuoti kairę","alignRight":"Lygiuoti dešinę","alignCenter":"Align Center","alignTop":"Viršūnę","alignMiddle":"Vidurį","alignBottom":"Apačią","alignNone":"Niekas","invalidValue":"Neteisinga reikšmė.","invalidHeight":"Aukštis turi būti nurodytas skaičiais.","invalidWidth":"Plotis turi būti nurodytas skaičiais.","invalidLength":"Value specified for the \"%1\" field must be a positive number with or without a valid measurement unit (%2).","invalidCssLength":"Reikšmė nurodyta \"%1\" laukui, turi būti teigiamas skaičius su arba be tinkamo CSS matavimo vieneto (px, %, in, cm, mm, em, ex, pt arba pc).","invalidHtmlLength":"Reikšmė nurodyta \"%1\" laukui, turi būti teigiamas skaičius su arba be tinkamo HTML matavimo vieneto (px arba %).","invalidInlineStyle":"Reikšmė nurodyta vidiniame stiliuje turi būti sudaryta iš vieno šių reikšmių \"vardas : reikšmė\", atskirta kabliataškiais.","cssLengthTooltip":"Įveskite reikšmę pikseliais arba skaičiais su tinkamu CSS vienetu (px, %, in, cm, mm, em, ex, pt arba pc).","unavailable":"%1<span class=\"cke_accessibility\">, netinkamas</span>","keyboard":{"8":"Backspace","13":"Enter","16":"Shift","17":"Ctrl","18":"Alt","32":"Tarpas","35":"End","36":"Home","46":"Delete","112":"F1","113":"F2","114":"F3","115":"F4","116":"F5","117":"F6","118":"F7","119":"F8","120":"F9","121":"F10","122":"F11","123":"F12","124":"F13","125":"F14","126":"F15","127":"F16","128":"F17","129":"F18","130":"F19","131":"F20","132":"F21","133":"F22","134":"F23","135":"F24","224":"Command"},"keyboardShortcut":"Spartusis klavišas","optionDefault":"Numatytasis"}};
\ No newline at end of file
diff --git a/web/core/assets/vendor/ckeditor/lang/lv.js b/web/core/assets/vendor/ckeditor/lang/lv.js
index 2bce16140f..2c33b50596 100644
--- a/web/core/assets/vendor/ckeditor/lang/lv.js
+++ b/web/core/assets/vendor/ckeditor/lang/lv.js
@@ -1,5 +1,5 @@
 /*
-Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2020, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */
 CKEDITOR.lang['lv']={"widget":{"move":"Klikšķina un velc, lai pārvietotu","label":"logrīks %1"},"undo":{"redo":"Atkārtot","undo":"Atcelt"},"toolbar":{"toolbarCollapse":"Aizvērt rīkjoslu","toolbarExpand":"Atvērt rīkjoslu","toolbarGroups":{"document":"Dokuments","clipboard":"Starpliktuve/Atcelt","editing":"Labošana","forms":"Formas","basicstyles":"Pamata stili","paragraph":"Paragrāfs","links":"Saites","insert":"Ievietot","styles":"Stili","colors":"Krāsas","tools":"Rīki"},"toolbars":"Redaktora rīkjoslas"},"table":{"border":"Rāmja izmērs","caption":"Leģenda","cell":{"menu":"Šūna","insertBefore":"Pievienot šūnu pirms","insertAfter":"Pievienot šūnu pēc","deleteCell":"Dzēst rūtiņas","merge":"Apvienot rūtiņas","mergeRight":"Apvieno pa labi","mergeDown":"Apvienot uz leju","splitHorizontal":"Sadalīt šūnu horizontāli","splitVertical":"Sadalīt šūnu vertikāli","title":"Šūnas uzstādījumi","cellType":"Šūnas tips","rowSpan":"Apvienotas rindas","colSpan":"Apvienotas kolonas","wordWrap":"Vārdu pārnese","hAlign":"Horizontālais novietojums","vAlign":"Vertikālais novietojums","alignBaseline":"Pamatrinda","bgColor":"Fona krāsa","borderColor":"Rāmja krāsa","data":"Dati","header":"Virsraksts","yes":"Jā","no":"Nē","invalidWidth":"Šūnas platumam jābūt skaitlim","invalidHeight":"Šūnas augstumam jābūt skaitlim","invalidRowSpan":"Apvienojamo rindu skaitam jābūt veselam skaitlim","invalidColSpan":"Apvienojamo kolonu skaitam jābūt veselam skaitlim","chooseColor":"Izvēlēties"},"cellPad":"Rūtiņu nobīde","cellSpace":"Rūtiņu atstatums","column":{"menu":"Kolonna","insertBefore":"Ievietot kolonu pirms","insertAfter":"Ievieto kolonu pēc","deleteColumn":"Dzēst kolonnas"},"columns":"Kolonnas","deleteTable":"Dzēst tabulu","headers":"Virsraksti","headersBoth":"Abi","headersColumn":"Pirmā kolona","headersNone":"Nekas","headersRow":"Pirmā rinda","heightUnit":"height unit","invalidBorder":"Rāmju izmēram jābūt skaitlim","invalidCellPadding":"Šūnu atkāpēm jābūt pozitīvam skaitlim","invalidCellSpacing":"Šūnu atstarpēm jābūt pozitīvam skaitlim","invalidCols":"Kolonu skaitam jābūt lielākam par 0","invalidHeight":"Tabulas augstumam jābūt skaitlim","invalidRows":"Rindu skaitam jābūt lielākam par 0","invalidWidth":"Tabulas platumam jābūt skaitlim","menu":"Tabulas īpašības","row":{"menu":"Rinda","insertBefore":"Ievietot rindu pirms","insertAfter":"Ievietot rindu pēc","deleteRow":"Dzēst rindas"},"rows":"Rindas","summary":"Anotācija","title":"Tabulas īpašības","toolbar":"Tabula","widthPc":"procentuāli","widthPx":"pikseļos","widthUnit":"platuma mērvienība"},"stylescombo":{"label":"Stils","panelTitle":"Formatēšanas stili","panelTitle1":"Bloka stili","panelTitle2":"iekļautie stili","panelTitle3":"Objekta stili"},"specialchar":{"options":"Speciālo simbolu uzstādījumi","title":"Ievietot īpašu simbolu","toolbar":"Ievietot speciālo simbolu"},"sourcedialog":{"toolbar":"HTML kods","title":"HTML kods"},"sourcearea":{"toolbar":"HTML kods"},"showblocks":{"toolbar":"Parādīt blokus"},"removeformat":{"toolbar":"Noņemt stilus"},"pastetext":{"button":"Ievietot kā vienkāršu tekstu","pasteNotification":"Nospied %1 lai ielīmētu. Tavs pārlūks neatbalsta ielīmēšanu ar rīkjoslas pogām vai uznirstošās izvēlnes opciju.","title":"Ievietot kā vienkāršu tekstu"},"pastefromword":{"confirmCleanup":"Teksts, kuru vēlaties ielīmēt, izskatās ir nokopēts no Word. Vai vēlaties to iztīrīt pirms ielīmēšanas?","error":"Iekšējas kļūdas dēļ, neizdevās iztīrīt ielīmētos datus.","title":"Ievietot no Worda","toolbar":"Ievietot no Worda"},"notification":{"closed":"Paziņojums aizvērts."},"maximize":{"maximize":"Maksimizēt","minimize":"Minimizēt"},"magicline":{"title":"Ievietot šeit rindkopu"},"list":{"bulletedlist":"Pievienot/Noņemt vienkāršu sarakstu","numberedlist":"Numurēts saraksts"},"language":{"button":"Uzstādīt valodu","remove":"Noņemt valodu"},"indent":{"indent":"Palielināt atkāpi","outdent":"Samazināt atkāpi"},"image2":{"alt":"Alternatīvais teksts","btnUpload":"Nosūtīt serverim","captioned":"Attēls ar parakstu","captionPlaceholder":"Paraksts","infoTab":"Informācija par attēlu","lockRatio":"Nemainīga Augstuma/Platuma attiecība","menu":"Attēla īpašības","pathName":"Attēls","pathNameCaption":"paraksts","resetSize":"Atjaunot sākotnējo izmēru","resizer":"Noklikšķini un pavelc lai mērogotu","title":"Attēla īpašības","uploadTab":"Augšupielādēt","urlMissing":"Trūkst attēla atrašanās adrese.","altMissing":"Trūkst alternatīvais teksts"},"horizontalrule":{"toolbar":"Ievietot horizontālu Atdalītājsvītru"},"format":{"label":"Formāts","panelTitle":"Formāts","tag_address":"Adrese","tag_div":"Rindkopa (DIV)","tag_h1":"Virsraksts 1","tag_h2":"Virsraksts 2","tag_h3":"Virsraksts 3","tag_h4":"Virsraksts 4","tag_h5":"Virsraksts 5","tag_h6":"Virsraksts 6","tag_p":"Normāls teksts","tag_pre":"Formatēts teksts"},"filetools":{"loadError":"Radās kļūda nolasot failu.","networkError":"Radās tīkla kļūda, kamēr tika ielādēts fails.","httpError404":"Ielādējot failu, radās HTTP kļūda (404: Fails nav atrasts)","httpError403":"Ielādējot failu, radās HTTP kļūda (403: Pieeja liegta)","httpError":"Ielādējot failu, radās HTTP kļūda (kļūdas statuss: %1)","noUrlError":"Augšupielādes adrese nav norādīta.","responseError":"Nekorekta servera atbilde."},"elementspath":{"eleLabel":"Elementa ceļš","eleTitle":"%1 elements"},"contextmenu":{"options":"Uznirstošās izvēlnes uzstādījumi"},"clipboard":{"copy":"Kopēt","copyError":"Jūsu pārlūkprogrammas drošības iestatījumi nepieļauj redaktoram automātiski veikt kopēšanas darbību.  Lūdzu, izmantojiet (Ctrl/Cmd+C), lai veiktu šo darbību.","cut":"Izgriezt","cutError":"Jūsu pārlūkprogrammas drošības iestatījumi nepieļauj redaktoram automātiski veikt izgriezšanas darbību.  Lūdzu, izmantojiet (Ctrl/Cmd+X), lai veiktu šo darbību.","paste":"Ielīmēt","pasteNotification":"Nospied %1 lai ielīmētu. Tavs pārlūks neatbalsta ielīmēšanu ar rīkjoslas pogām vai uznirstošās izvēlnes opciju.","pasteArea":"Ielīmēšanas zona","pasteMsg":"Ielīmē saturu zemāk esošajā laukā un nospied OK."},"blockquote":{"toolbar":"Bloka citāts"},"basicstyles":{"bold":"Treknināts","italic":"Kursīvs","strike":"Pārsvītrots","subscript":"Apakšrakstā","superscript":"Augšrakstā","underline":"Pasvītrots"},"about":{"copy":"Kopēšanas tiesības &copy; $1. Visas tiesības rezervētas.","dlgTitle":"Par CKEditor 4","moreInfo":"Informācijai par licenzēšanu apmeklējiet mūsu mājas lapu:"},"editor":"Bagātinātā teksta redaktors","editorPanel":"Bagātinātā teksta redaktora panelis","common":{"editorHelp":"Palīdzībai, nospiediet ALT 0 ","browseServer":"Skatīt servera saturu","url":"URL","protocol":"Protokols","upload":"Augšupielādēt","uploadSubmit":"Nosūtīt serverim","image":"Attēls","flash":"Flash","form":"Forma","checkbox":"Atzīmēšanas kastīte","radio":"Izvēles poga","textField":"Teksta rinda","textarea":"Teksta laukums","hiddenField":"Paslēpta teksta rinda","button":"Poga","select":"Iezīmēšanas lauks","imageButton":"Attēlpoga","notSet":"<nav iestatīts>","id":"Id","name":"Nosaukums","langDir":"Valodas lasīšanas virziens","langDirLtr":"No kreisās uz labo (LTR)","langDirRtl":"No labās uz kreiso (RTL)","langCode":"Valodas kods","longDescr":"Gara apraksta Hipersaite","cssClass":"Stilu saraksta klases","advisoryTitle":"Konsultatīvs virsraksts","cssStyle":"Stils","ok":"Darīts!","cancel":"Atcelt","close":"Aizvērt","preview":"Priekšskatījums","resize":"Mērogot","generalTab":"Vispārīgi","advancedTab":"Izvērstais","validateNumberFailed":"Šī vērtība nav skaitlis","confirmNewPage":"Jebkuras nesaglabātās izmaiņas tiks zaudētas. Vai tiešām vēlaties atvērt jaunu lapu?","confirmCancel":"Daži no uzstādījumiem ir mainīti. Vai tiešām vēlaties aizvērt šo dialogu?","options":"Uzstādījumi","target":"Mērķis","targetNew":"Jauns logs (_blank)","targetTop":"Virsējais logs (_top)","targetSelf":"Tas pats logs (_self)","targetParent":"Avota logs (_parent)","langDirLTR":"Kreisais uz Labo (LTR)","langDirRTL":"Labais uz Kreiso (RTL)","styles":"Stils","cssClasses":"Stilu klases","width":"Platums","height":"Augstums","align":"Nolīdzināt","left":"Pa kreisi","right":"Pa labi","center":"Centrēti","justify":"Izlīdzināt malas","alignLeft":"Izlīdzināt pa kreisi","alignRight":"Izlīdzināt pa labi","alignCenter":"Centrēt","alignTop":"Augšā","alignMiddle":"Vertikāli centrēts","alignBottom":"Apakšā","alignNone":"Nekas","invalidValue":"Nekorekta vērtība","invalidHeight":"Augstumam jābūt skaitlim.","invalidWidth":"Platumam jābūt skaitlim","invalidLength":"Laukam \"%1\" norādītajai vērtībai jābūt pozitīvam skaitlim ar vai bez korektām mērvienībām (%2).","invalidCssLength":"Laukam \"%1\" norādītajai vērtībai jābūt pozitīvam skaitlim ar vai bez korektām CSS mērvienībām (px, %, in, cm, mm, em, ex, pt, vai pc).","invalidHtmlLength":"Laukam \"%1\" norādītajai vērtībai jābūt pozitīvam skaitlim ar vai bez korektām HTML mērvienībām (px vai %).","invalidInlineStyle":"Iekļautajā stilā norādītajai vērtībai jāsastāv no viena vai vairākiem pāriem pēc formāta \"nosaukums: vērtība\", atdalītiem ar semikolu.","cssLengthTooltip":"Ievadiet vērtību pikseļos vai skaitli ar derīgu CSS mērvienību (px, %, in, cm, mm, em, ex, pt, vai pc).","unavailable":"%1<span class=\"cke_accessibility\">, nav pieejams</span>","keyboard":{"8":" atkāpšanās taustiņš","13":"Ievadīt","16":"pārslēgšanas taustiņš","17":"vadīšanas taustiņš","18":"alternēšanas taustiņš","32":"Atstarpe","35":"Beigas","36":"Mājup","46":"Dzēst","112":"F1","113":"F2","114":"F3","115":"F4","116":"F5","117":"F6","118":"F7","119":"F8","120":"F9","121":"F10","122":"F11","123":"F12","124":"F13","125":"F14","126":"F15","127":"F16","128":"F17","129":"F18","130":"F19","131":"F20","132":"F21","133":"F22","134":"F23","135":"F24","224":"Komanda"},"keyboardShortcut":"Klaviatūras saīsne","optionDefault":"Noklusēts"}};
\ No newline at end of file
diff --git a/web/core/assets/vendor/ckeditor/lang/mk.js b/web/core/assets/vendor/ckeditor/lang/mk.js
index cc44a0316d..b4381687e6 100644
--- a/web/core/assets/vendor/ckeditor/lang/mk.js
+++ b/web/core/assets/vendor/ckeditor/lang/mk.js
@@ -1,5 +1,5 @@
 /*
-Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2020, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */
 CKEDITOR.lang['mk']={"widget":{"move":"Click and drag to move","label":"%1 widget"},"undo":{"redo":"Redo","undo":"Undo"},"toolbar":{"toolbarCollapse":"Collapse Toolbar","toolbarExpand":"Expand Toolbar","toolbarGroups":{"document":"Document","clipboard":"Clipboard/Undo","editing":"Editing","forms":"Forms","basicstyles":"Basic Styles","paragraph":"Paragraph","links":"Links","insert":"Insert","styles":"Styles","colors":"Colors","tools":"Tools"},"toolbars":"Editor toolbars"},"table":{"border":"Border size","caption":"Caption","cell":{"menu":"Cell","insertBefore":"Insert Cell Before","insertAfter":"Insert Cell After","deleteCell":"Delete Cells","merge":"Merge Cells","mergeRight":"Merge Right","mergeDown":"Merge Down","splitHorizontal":"Split Cell Horizontally","splitVertical":"Split Cell Vertically","title":"Cell Properties","cellType":"Cell Type","rowSpan":"Rows Span","colSpan":"Columns Span","wordWrap":"Word Wrap","hAlign":"Horizontal Alignment","vAlign":"Vertical Alignment","alignBaseline":"Baseline","bgColor":"Background Color","borderColor":"Border Color","data":"Data","header":"Header","yes":"Yes","no":"No","invalidWidth":"Cell width must be a number.","invalidHeight":"Cell height must be a number.","invalidRowSpan":"Rows span must be a whole number.","invalidColSpan":"Columns span must be a whole number.","chooseColor":"Choose"},"cellPad":"Cell padding","cellSpace":"Cell spacing","column":{"menu":"Column","insertBefore":"Insert Column Before","insertAfter":"Insert Column After","deleteColumn":"Delete Columns"},"columns":"Columns","deleteTable":"Delete Table","headers":"Headers","headersBoth":"Both","headersColumn":"First column","headersNone":"None","headersRow":"First Row","heightUnit":"height unit","invalidBorder":"Border size must be a number.","invalidCellPadding":"Cell padding must be a positive number.","invalidCellSpacing":"Cell spacing must be a positive number.","invalidCols":"Number of columns must be a number greater than 0.","invalidHeight":"Table height must be a number.","invalidRows":"Number of rows must be a number greater than 0.","invalidWidth":"Table width must be a number.","menu":"Table Properties","row":{"menu":"Row","insertBefore":"Insert Row Before","insertAfter":"Insert Row After","deleteRow":"Delete Rows"},"rows":"Rows","summary":"Summary","title":"Table Properties","toolbar":"Table","widthPc":"percent","widthPx":"pixels","widthUnit":"width unit"},"stylescombo":{"label":"Styles","panelTitle":"Formatting Styles","panelTitle1":"Block Styles","panelTitle2":"Inline Styles","panelTitle3":"Object Styles"},"specialchar":{"options":"Special Character Options","title":"Select Special Character","toolbar":"Insert Special Character"},"sourcedialog":{"toolbar":"Source","title":"Source"},"sourcearea":{"toolbar":"Source"},"showblocks":{"toolbar":"Show Blocks"},"removeformat":{"toolbar":"Remove Format"},"pastetext":{"button":"Paste as plain text","pasteNotification":"Press %1 to paste. Your browser doesn‘t support pasting with the toolbar button or context menu option.","title":"Paste as Plain Text"},"pastefromword":{"confirmCleanup":"The text you want to paste seems to be copied from Word. Do you want to clean it before pasting?","error":"It was not possible to clean up the pasted data due to an internal error","title":"Paste from Word","toolbar":"Paste from Word"},"notification":{"closed":"Notification closed."},"maximize":{"maximize":"Maximize","minimize":"Minimize"},"magicline":{"title":"Insert paragraph here"},"list":{"bulletedlist":"Insert/Remove Bulleted List","numberedlist":"Insert/Remove Numbered List"},"language":{"button":"Set language","remove":"Remove language"},"indent":{"indent":"Increase Indent","outdent":"Decrease Indent"},"image2":{"alt":"Алтернативен текст","btnUpload":"Прикачи на сервер","captioned":"Captioned image","captionPlaceholder":"Caption","infoTab":"Информации за сликата","lockRatio":"Зачувај пропорција","menu":"Својства на сликата","pathName":"image","pathNameCaption":"caption","resetSize":"Ресетирај големина","resizer":"Click and drag to resize","title":"Својства на сликата","uploadTab":"Прикачи","urlMissing":"Недостасува URL-то на сликата.","altMissing":"Alternative text is missing."},"horizontalrule":{"toolbar":"Insert Horizontal Line"},"format":{"label":"Format","panelTitle":"Paragraph Format","tag_address":"Address","tag_div":"Normal (DIV)","tag_h1":"Heading 1","tag_h2":"Heading 2","tag_h3":"Heading 3","tag_h4":"Heading 4","tag_h5":"Heading 5","tag_h6":"Heading 6","tag_p":"Normal","tag_pre":"Formatted"},"filetools":{"loadError":"Error occurred during file read.","networkError":"Network error occurred during file upload.","httpError404":"HTTP error occurred during file upload (404: File not found).","httpError403":"HTTP error occurred during file upload (403: Forbidden).","httpError":"HTTP error occurred during file upload (error status: %1).","noUrlError":"Upload URL is not defined.","responseError":"Incorrect server response."},"elementspath":{"eleLabel":"Elements path","eleTitle":"%1 element"},"contextmenu":{"options":"Контекст-мени опции"},"clipboard":{"copy":"Копирај (Copy)","copyError":"Опциите за безбедност на вашиот прелистувач не дозволуваат уредувачот автоматски да изврши копирање. Ве молиме употребете ја тастатурата. (Ctrl/Cmd+C)","cut":"Исечи (Cut)","cutError":"Опциите за безбедност на вашиот прелистувач не дозволуваат уредувачот автоматски да изврши сечење. Ве молиме употребете ја тастатурата. (Ctrl/Cmd+C)","paste":"Залепи (Paste)","pasteNotification":"Press %1 to paste. Your browser doesn‘t support pasting with the toolbar button or context menu option.","pasteArea":"Простор за залепување","pasteMsg":"Paste your content inside the area below and press OK."},"blockquote":{"toolbar":"Одвоен цитат"},"basicstyles":{"bold":"Здебелено","italic":"Накривено","strike":"Прецртано","subscript":"Долен индекс","superscript":"Горен индекс","underline":"Подвлечено"},"about":{"copy":"Авторски права &copy; $1. Сите права се задржани.","dlgTitle":"За CKEditor 4","moreInfo":"За информации околу лиценцата, ве молиме посетете го нашиот веб-сајт: "},"editor":"Rich Text Editor","editorPanel":"Rich Text Editor panel","common":{"editorHelp":"Притисни ALT 0 за помош","browseServer":"Пребарај низ серверот","url":"URL","protocol":"Протокол","upload":"Прикачи","uploadSubmit":"Прикачи на сервер","image":"Слика","flash":"Flash","form":"Form","checkbox":"Checkbox","radio":"Radio Button","textField":"Поле за текст","textarea":"Големо поле за текст","hiddenField":"Скриено поле","button":"Button","select":"Selection Field","imageButton":"Копче-слика","notSet":"<not set>","id":"Id","name":"Name","langDir":"Насока на јазик","langDirLtr":"Лево кон десно","langDirRtl":"Десно кон лево","langCode":"Код на јазик","longDescr":"Long Description URL","cssClass":"Stylesheet Classes","advisoryTitle":"Advisory Title","cssStyle":"Стил","ok":"OK","cancel":"Cancel","close":"Close","preview":"Preview","resize":"Resize","generalTab":"Општо","advancedTab":"Advanced","validateNumberFailed":"This value is not a number.","confirmNewPage":"Any unsaved changes to this content will be lost. Are you sure you want to load new page?","confirmCancel":"You have changed some options. Are you sure you want to close the dialog window?","options":"Опции","target":"Target","targetNew":"Нов прозорец (_blank)","targetTop":"Најгорниот прозорец (_top)","targetSelf":"Истиот прозорец (_self)","targetParent":"Прозорец-родител (_parent)","langDirLTR":"Лево кон десно","langDirRTL":"Десно кон лево","styles":"Стил","cssClasses":"Stylesheet Classes","width":"Широчина","height":"Височина","align":"Alignment","left":"Лево","right":"Десно","center":"Во средина","justify":"Justify","alignLeft":"Align Left","alignRight":"Align Right","alignCenter":"Align Center","alignTop":"Горе","alignMiddle":"Средина","alignBottom":"Доле","alignNone":"Никое","invalidValue":"Невалидна вредност","invalidHeight":"Височината мора да биде број.","invalidWidth":"Широчината мора да биде број.","invalidLength":"Value specified for the \"%1\" field must be a positive number with or without a valid measurement unit (%2).","invalidCssLength":"Value specified for the \"%1\" field must be a positive number with or without a valid CSS measurement unit (px, %, in, cm, mm, em, ex, pt, or pc).","invalidHtmlLength":"Value specified for the \"%1\" field must be a positive number with or without a valid HTML measurement unit (px or %).","invalidInlineStyle":"Value specified for the inline style must consist of one or more tuples with the format of \"name : value\", separated by semi-colons.","cssLengthTooltip":"Enter a number for a value in pixels or a number with a valid CSS unit (px, %, in, cm, mm, em, ex, pt, or pc).","unavailable":"%1<span class=\"cke_accessibility\">, unavailable</span>","keyboard":{"8":"Backspace","13":"Enter","16":"Shift","17":"Ctrl","18":"Alt","32":"Space","35":"End","36":"Home","46":"Delete","112":"F1","113":"F2","114":"F3","115":"F4","116":"F5","117":"F6","118":"F7","119":"F8","120":"F9","121":"F10","122":"F11","123":"F12","124":"F13","125":"F14","126":"F15","127":"F16","128":"F17","129":"F18","130":"F19","131":"F20","132":"F21","133":"F22","134":"F23","135":"F24","224":"Command"},"keyboardShortcut":"Keyboard shortcut","optionDefault":"Default"}};
\ No newline at end of file
diff --git a/web/core/assets/vendor/ckeditor/lang/mn.js b/web/core/assets/vendor/ckeditor/lang/mn.js
index d6417074dd..4fb1e6d97d 100644
--- a/web/core/assets/vendor/ckeditor/lang/mn.js
+++ b/web/core/assets/vendor/ckeditor/lang/mn.js
@@ -1,5 +1,5 @@
 /*
-Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2020, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */
 CKEDITOR.lang['mn']={"widget":{"move":"Click and drag to move","label":"%1 widget"},"undo":{"redo":"Өмнөх үйлдлээ сэргээх","undo":"Хүчингүй болгох"},"toolbar":{"toolbarCollapse":"Collapse Toolbar","toolbarExpand":"Expand Toolbar","toolbarGroups":{"document":"Document","clipboard":"Clipboard/Undo","editing":"Editing","forms":"Forms","basicstyles":"Basic Styles","paragraph":"Paragraph","links":"Холбоосууд","insert":"Оруулах","styles":"Загварууд","colors":"Онгөнүүд","tools":"Хэрэгслүүд"},"toolbars":"Болосруулагчийн хэрэгслийн самбар"},"table":{"border":"Хүрээний хэмжээ","caption":"Тайлбар","cell":{"menu":"Нүх/зай","insertBefore":"Нүх/зай өмнө нь оруулах","insertAfter":"Нүх/зай дараа нь оруулах","deleteCell":"Нүх устгах","merge":"Нүх нэгтэх","mergeRight":"Баруун тийш нэгтгэх","mergeDown":"Доош нэгтгэх","splitHorizontal":"Нүх/зайг босоогоор нь тусгаарлах","splitVertical":"Нүх/зайг хөндлөнгөөр нь тусгаарлах","title":"Cell Properties","cellType":"Cell Type","rowSpan":"Rows Span","colSpan":"Columns Span","wordWrap":"Word Wrap","hAlign":"Хэвтээд тэгшлэх арга","vAlign":"Босоод тэгшлэх арга","alignBaseline":"Baseline","bgColor":"Дэвсгэр өнгө","borderColor":"Хүрээний өнгө","data":"Data","header":"Header","yes":"Тийм","no":"Үгүй","invalidWidth":"Нүдний өргөн нь тоо байх ёстой.","invalidHeight":"Cell height must be a number.","invalidRowSpan":"Rows span must be a whole number.","invalidColSpan":"Columns span must be a whole number.","chooseColor":"Сонгох"},"cellPad":"Нүх доторлох(padding)","cellSpace":"Нүх хоорондын зай (spacing)","column":{"menu":"Багана","insertBefore":"Багана өмнө нь оруулах","insertAfter":"Багана дараа нь оруулах","deleteColumn":"Багана устгах"},"columns":"Багана","deleteTable":"Хүснэгт устгах","headers":"Headers","headersBoth":"Both","headersColumn":"First column","headersNone":"None","headersRow":"First Row","heightUnit":"height unit","invalidBorder":"Border size must be a number.","invalidCellPadding":"Cell padding must be a positive number.","invalidCellSpacing":"Cell spacing must be a positive number.","invalidCols":"Number of columns must be a number greater than 0.","invalidHeight":"Table height must be a number.","invalidRows":"Number of rows must be a number greater than 0.","invalidWidth":"Хүснэгтийн өргөн нь тоо байх ёстой.","menu":"Хүснэгт","row":{"menu":"Мөр","insertBefore":"Мөр өмнө нь оруулах","insertAfter":"Мөр дараа нь оруулах","deleteRow":"Мөр устгах"},"rows":"Мөр","summary":"Тайлбар","title":"Хүснэгт","toolbar":"Хүснэгт","widthPc":"хувь","widthPx":"цэг","widthUnit":"өргөний нэгж"},"stylescombo":{"label":"Загвар","panelTitle":"Загвар хэлбэржүүлэх","panelTitle1":"Block Styles","panelTitle2":"Inline Styles","panelTitle3":"Object Styles"},"specialchar":{"options":"Special Character Options","title":"Онцгой тэмдэгт сонгох","toolbar":"Онцгой тэмдэгт оруулах"},"sourcedialog":{"toolbar":"Код","title":"Код"},"sourcearea":{"toolbar":"Код"},"showblocks":{"toolbar":"Хавтангуудыг харуулах"},"removeformat":{"toolbar":"Параргафын загварыг авч хаях"},"pastetext":{"button":"Энгийн бичвэрээр буулгах","pasteNotification":"Press %1 to paste. Your browser doesn‘t support pasting with the toolbar button or context menu option.","title":"Энгийн бичвэрээр буулгах"},"pastefromword":{"confirmCleanup":"The text you want to paste seems to be copied from Word. Do you want to clean it before pasting?","error":"It was not possible to clean up the pasted data due to an internal error","title":"Word-оос буулгах","toolbar":"Word-оос буулгах"},"notification":{"closed":"Notification closed."},"maximize":{"maximize":"Дэлгэц дүүргэх","minimize":"Цонхыг багсгаж харуулах"},"magicline":{"title":"Insert paragraph here"},"list":{"bulletedlist":"Цэгтэй жагсаалт","numberedlist":"Дугаарлагдсан жагсаалт"},"language":{"button":"Set language","remove":"Remove language"},"indent":{"indent":"Догол мөр хасах","outdent":"Догол мөр нэмэх"},"image2":{"alt":"Зургийг орлох бичвэр","btnUpload":"Үүнийг сервэррүү илгээ","captioned":"Captioned image","captionPlaceholder":"Caption","infoTab":"Зурагны мэдээлэл","lockRatio":"Радио түгжих","menu":"Зураг","pathName":"image","pathNameCaption":"caption","resetSize":"хэмжээ дахин оноох","resizer":"Click and drag to resize","title":"Зураг","uploadTab":"Илгээж ачаалах","urlMissing":"Зургийн эх сурвалжийн хаяг (URL) байхгүй байна.","altMissing":"Alternative text is missing."},"horizontalrule":{"toolbar":"Хөндлөн зураас оруулах"},"format":{"label":"Параргафын загвар","panelTitle":"Параргафын загвар","tag_address":"Хаяг","tag_div":"Paragraph (DIV)","tag_h1":"Гарчиг 1","tag_h2":"Гарчиг 2","tag_h3":"Гарчиг 3","tag_h4":"Гарчиг 4","tag_h5":"Гарчиг 5","tag_h6":"Гарчиг 6","tag_p":"Хэвийн","tag_pre":"Formatted"},"filetools":{"loadError":"Error occurred during file read.","networkError":"Network error occurred during file upload.","httpError404":"HTTP error occurred during file upload (404: File not found).","httpError403":"HTTP error occurred during file upload (403: Forbidden).","httpError":"HTTP error occurred during file upload (error status: %1).","noUrlError":"Upload URL is not defined.","responseError":"Incorrect server response."},"elementspath":{"eleLabel":"Elements path","eleTitle":"%1 element"},"contextmenu":{"options":"Context Menu Options"},"clipboard":{"copy":"Хуулах","copyError":"Таны browser-ын хамгаалалтын тохиргоо editor-д автоматаар хуулах үйлдэлийг зөвшөөрөхгүй байна. (Ctrl/Cmd+C) товчны хослолыг ашиглана уу.","cut":"Хайчлах","cutError":"Таны browser-ын хамгаалалтын тохиргоо editor-д автоматаар хайчлах үйлдэлийг зөвшөөрөхгүй байна. (Ctrl/Cmd+X) товчны хослолыг ашиглана уу.","paste":"Буулгах","pasteNotification":"Press %1 to paste. Your browser doesn‘t support pasting with the toolbar button or context menu option.","pasteArea":"Paste Area","pasteMsg":"Paste your content inside the area below and press OK."},"blockquote":{"toolbar":"Ишлэл хэсэг"},"basicstyles":{"bold":"Тод бүдүүн","italic":"Налуу","strike":"Дундуур нь зураастай болгох","subscript":"Суурь болгох","superscript":"Зэрэг болгох","underline":"Доогуур нь зураастай болгох"},"about":{"copy":"Copyright &copy; $1. All rights reserved.","dlgTitle":"About CKEditor 4","moreInfo":"For licensing information please visit our web site:"},"editor":"Хэлбэрт бичвэр боловсруулагч","editorPanel":"Rich Text Editor panel","common":{"editorHelp":"Press ALT 0 for help","browseServer":"Үйлчлэгч тооцоолуур (сервэр)-ийг үзэх","url":"цахим хуудасны хаяг (URL)","protocol":"Протокол","upload":"Илгээж ачаалах","uploadSubmit":"Үүнийг үйлчлэгч тооцоолуур (сервер) лүү илгээх","image":"Зураг","flash":"Флаш хөдөлгөөнтэй зураг","form":"Маягт","checkbox":"Тэмдэглээний нүд","radio":"Радио товчлуур","textField":"Бичвэрийн талбар","textarea":"Бичвэрийн зай","hiddenField":"Далд талбар","button":"Товчлуур","select":"Сонголтын талбар","imageButton":"Зургий товчуур","notSet":"<тохируулаагүй>","id":"Id (техникийн нэр)","name":"Нэр","langDir":"Хэлний чиглэл","langDirLtr":"Зүүнээс баруун (LTR)","langDirRtl":"Баруунаас зүүн (RTL)","langCode":"Хэлний код","longDescr":"Урт тайлбарын вэб хаяг","cssClass":"Хэлбэрийн хуудасны ангиуд","advisoryTitle":"Зөвлөх гарчиг","cssStyle":"Загвар","ok":"За","cancel":"Болих","close":"Хаах","preview":"Урьдчилан харах","resize":"Resize","generalTab":"Ерөнхий","advancedTab":"Гүнзгий","validateNumberFailed":"This value is not a number.","confirmNewPage":"Any unsaved changes to this content will be lost. Are you sure you want to load new page?","confirmCancel":"You have changed some options. Are you sure you want to close the dialog window?","options":"Сонголт","target":"Бай","targetNew":"New Window (_blank)","targetTop":"Topmost Window (_top)","targetSelf":"Same Window (_self)","targetParent":"Parent Window (_parent)","langDirLTR":"Зүүн талаас баруун тийшээ (LTR)","langDirRTL":"Баруун талаас зүүн тийшээ (RTL)","styles":"Загвар","cssClasses":"Хэлбэрийн хуудасны ангиуд","width":"Өргөн","height":"Өндөр","align":"Эгнээ","left":"Зүүн","right":"Баруун","center":"Төвд","justify":"Тэгшлэх","alignLeft":"Зүүн талд тулгах","alignRight":"Баруун талд тулгах","alignCenter":"Align Center","alignTop":"Дээд талд","alignMiddle":"Дунд","alignBottom":"Доод талд","alignNone":"None","invalidValue":"Invalid value.","invalidHeight":"Өндөр нь тоо байх ёстой.","invalidWidth":"Өргөн нь тоо байх ёстой.","invalidLength":"Value specified for the \"%1\" field must be a positive number with or without a valid measurement unit (%2).","invalidCssLength":"Value specified for the \"%1\" field must be a positive number with or without a valid CSS measurement unit (px, %, in, cm, mm, em, ex, pt, or pc).","invalidHtmlLength":"Value specified for the \"%1\" field must be a positive number with or without a valid HTML measurement unit (px or %).","invalidInlineStyle":"Value specified for the inline style must consist of one or more tuples with the format of \"name : value\", separated by semi-colons.","cssLengthTooltip":"Enter a number for a value in pixels or a number with a valid CSS unit (px, %, in, cm, mm, em, ex, pt, or pc).","unavailable":"%1<span class=\"cke_accessibility\">, unavailable</span>","keyboard":{"8":"Backspace","13":"Enter","16":"Shift","17":"Ctrl","18":"Alt","32":"Space","35":"End","36":"Home","46":"Delete","112":"F1","113":"F2","114":"F3","115":"F4","116":"F5","117":"F6","118":"F7","119":"F8","120":"F9","121":"F10","122":"F11","123":"F12","124":"F13","125":"F14","126":"F15","127":"F16","128":"F17","129":"F18","130":"F19","131":"F20","132":"F21","133":"F22","134":"F23","135":"F24","224":"Command"},"keyboardShortcut":"Keyboard shortcut","optionDefault":"Default"}};
\ No newline at end of file
diff --git a/web/core/assets/vendor/ckeditor/lang/ms.js b/web/core/assets/vendor/ckeditor/lang/ms.js
index 72d9eeb259..a519b0f702 100644
--- a/web/core/assets/vendor/ckeditor/lang/ms.js
+++ b/web/core/assets/vendor/ckeditor/lang/ms.js
@@ -1,5 +1,5 @@
 /*
-Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2020, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */
 CKEDITOR.lang['ms']={"widget":{"move":"Click and drag to move","label":"%1 widget"},"undo":{"redo":"Ulangkan","undo":"Batalkan"},"toolbar":{"toolbarCollapse":"Collapse Toolbar","toolbarExpand":"Expand Toolbar","toolbarGroups":{"document":"Document","clipboard":"Clipboard/Undo","editing":"Editing","forms":"Forms","basicstyles":"Basic Styles","paragraph":"Paragraph","links":"Links","insert":"Insert","styles":"Styles","colors":"Colors","tools":"Tools"},"toolbars":"Editor toolbars"},"table":{"border":"Saiz Border","caption":"Keterangan","cell":{"menu":"Cell","insertBefore":"Insert Cell Before","insertAfter":"Insert Cell After","deleteCell":"Buangkan Sel-sel","merge":"Cantumkan Sel-sel","mergeRight":"Merge Right","mergeDown":"Merge Down","splitHorizontal":"Split Cell Horizontally","splitVertical":"Split Cell Vertically","title":"Cell Properties","cellType":"Cell Type","rowSpan":"Rows Span","colSpan":"Columns Span","wordWrap":"Word Wrap","hAlign":"Horizontal Alignment","vAlign":"Vertical Alignment","alignBaseline":"Baseline","bgColor":"Background Color","borderColor":"Border Color","data":"Data","header":"Header","yes":"Yes","no":"No","invalidWidth":"Cell width must be a number.","invalidHeight":"Cell height must be a number.","invalidRowSpan":"Rows span must be a whole number.","invalidColSpan":"Columns span must be a whole number.","chooseColor":"Choose"},"cellPad":"Tambahan Ruang Sel","cellSpace":"Ruangan Antara Sel","column":{"menu":"Column","insertBefore":"Insert Column Before","insertAfter":"Insert Column After","deleteColumn":"Buangkan Lajur"},"columns":"Jaluran","deleteTable":"Delete Table","headers":"Headers","headersBoth":"Both","headersColumn":"First column","headersNone":"None","headersRow":"First Row","heightUnit":"height unit","invalidBorder":"Border size must be a number.","invalidCellPadding":"Cell padding must be a positive number.","invalidCellSpacing":"Cell spacing must be a positive number.","invalidCols":"Number of columns must be a number greater than 0.","invalidHeight":"Table height must be a number.","invalidRows":"Number of rows must be a number greater than 0.","invalidWidth":"Table width must be a number.","menu":"Ciri-ciri Jadual","row":{"menu":"Row","insertBefore":"Insert Row Before","insertAfter":"Insert Row After","deleteRow":"Buangkan Baris"},"rows":"Barisan","summary":"Summary","title":"Ciri-ciri Jadual","toolbar":"Jadual","widthPc":"peratus","widthPx":"piksel-piksel","widthUnit":"width unit"},"stylescombo":{"label":"Stail","panelTitle":"Formatting Styles","panelTitle1":"Block Styles","panelTitle2":"Inline Styles","panelTitle3":"Object Styles"},"specialchar":{"options":"Special Character Options","title":"Sila pilih huruf istimewa","toolbar":"Masukkan Huruf Istimewa"},"sourcedialog":{"toolbar":"Sumber","title":"Sumber"},"sourcearea":{"toolbar":"Sumber"},"showblocks":{"toolbar":"Show Blocks"},"removeformat":{"toolbar":"Buang Format"},"pastetext":{"button":"Tampal sebagai text biasa","pasteNotification":"Press %1 to paste. Your browser doesn‘t support pasting with the toolbar button or context menu option.","title":"Tampal sebagai text biasa"},"pastefromword":{"confirmCleanup":"The text you want to paste seems to be copied from Word. Do you want to clean it before pasting?","error":"It was not possible to clean up the pasted data due to an internal error","title":"Tampal dari Word","toolbar":"Tampal dari Word"},"notification":{"closed":"Notification closed."},"maximize":{"maximize":"Maximize","minimize":"Minimize"},"magicline":{"title":"Insert paragraph here"},"list":{"bulletedlist":"Senarai tidak bernombor","numberedlist":"Senarai bernombor"},"language":{"button":"Set language","remove":"Remove language"},"indent":{"indent":"Tambahkan Inden","outdent":"Kurangkan Inden"},"image2":{"alt":"Text Alternatif","btnUpload":"Hantar ke Server","captioned":"Captioned image","captionPlaceholder":"Caption","infoTab":"Info Imej","lockRatio":"Tetapkan Nisbah","menu":"Ciri-ciri Imej","pathName":"image","pathNameCaption":"caption","resetSize":"Saiz Set Semula","resizer":"Click and drag to resize","title":"Ciri-ciri Imej","uploadTab":"Muat Naik","urlMissing":"Image source URL is missing.","altMissing":"Alternative text is missing."},"horizontalrule":{"toolbar":"Masukkan Garisan Membujur"},"format":{"label":"Format","panelTitle":"Format","tag_address":"Alamat","tag_div":"Perenggan (DIV)","tag_h1":"Heading 1","tag_h2":"Heading 2","tag_h3":"Heading 3","tag_h4":"Heading 4","tag_h5":"Heading 5","tag_h6":"Heading 6","tag_p":"Normal","tag_pre":"Telah Diformat"},"filetools":{"loadError":"Error occurred during file read.","networkError":"Network error occurred during file upload.","httpError404":"HTTP error occurred during file upload (404: File not found).","httpError403":"HTTP error occurred during file upload (403: Forbidden).","httpError":"HTTP error occurred during file upload (error status: %1).","noUrlError":"Upload URL is not defined.","responseError":"Incorrect server response."},"elementspath":{"eleLabel":"Elements path","eleTitle":"%1 element"},"contextmenu":{"options":"Context Menu Options"},"clipboard":{"copy":"Salin","copyError":"Keselamatan perisian browser anda tidak membenarkan operasi salinan text/imej. Sila gunakan papan kekunci (Ctrl/Cmd+C).","cut":"Potong","cutError":"Keselamatan perisian browser anda tidak membenarkan operasi suntingan text/imej. Sila gunakan papan kekunci (Ctrl/Cmd+X).","paste":"Tampal","pasteNotification":"Press %1 to paste. Your browser doesn‘t support pasting with the toolbar button or context menu option.","pasteArea":"Paste Area","pasteMsg":"Paste your content inside the area below and press OK."},"blockquote":{"toolbar":"Block Quote"},"basicstyles":{"bold":"Bold","italic":"Italic","strike":"Strike Through","subscript":"Subscript","superscript":"Superscript","underline":"Underline"},"about":{"copy":"Copyright &copy; $1. All rights reserved.","dlgTitle":"About CKEditor 4","moreInfo":"For licensing information please visit our web site:"},"editor":"Rich Text Editor","editorPanel":"Rich Text Editor panel","common":{"editorHelp":"Press ALT 0 for help","browseServer":"Browse Server","url":"URL","protocol":"Protokol","upload":"Muat Naik","uploadSubmit":"Hantar ke Server","image":"Gambar","flash":"Flash","form":"Borang","checkbox":"Checkbox","radio":"Butang Radio","textField":"Text Field","textarea":"Textarea","hiddenField":"Field Tersembunyi","button":"Butang","select":"Field Pilihan","imageButton":"Butang Bergambar","notSet":"<tidak di set>","id":"Id","name":"Nama","langDir":"Arah Tulisan","langDirLtr":"Kiri ke Kanan (LTR)","langDirRtl":"Kanan ke Kiri (RTL)","langCode":"Kod Bahasa","longDescr":"Butiran Panjang URL","cssClass":"Kelas-kelas Stylesheet","advisoryTitle":"Tajuk Makluman","cssStyle":"Stail","ok":"OK","cancel":"Batal","close":"Tutup","preview":"Prebiu","resize":"Resize","generalTab":"Umum","advancedTab":"Advanced","validateNumberFailed":"This value is not a number.","confirmNewPage":"Any unsaved changes to this content will be lost. Are you sure you want to load new page?","confirmCancel":"You have changed some options. Are you sure you want to close the dialog window?","options":"Options","target":"Sasaran","targetNew":"New Window (_blank)","targetTop":"Topmost Window (_top)","targetSelf":"Same Window (_self)","targetParent":"Parent Window (_parent)","langDirLTR":"Kiri ke Kanan (LTR)","langDirRTL":"Kanan ke Kiri (RTL)","styles":"Stail","cssClasses":"Kelas-kelas Stylesheet","width":"Lebar","height":"Tinggi","align":"Jajaran","left":"Kiri","right":"Kanan","center":"Tengah","justify":"Jajaran Blok","alignLeft":"Jajaran Kiri","alignRight":"Jajaran Kanan","alignCenter":"Align Center","alignTop":"Atas","alignMiddle":"Pertengahan","alignBottom":"Bawah","alignNone":"None","invalidValue":"Nilai tidak sah.","invalidHeight":"Height must be a number.","invalidWidth":"Width must be a number.","invalidLength":"Value specified for the \"%1\" field must be a positive number with or without a valid measurement unit (%2).","invalidCssLength":"Value specified for the \"%1\" field must be a positive number with or without a valid CSS measurement unit (px, %, in, cm, mm, em, ex, pt, or pc).","invalidHtmlLength":"Value specified for the \"%1\" field must be a positive number with or without a valid HTML measurement unit (px or %).","invalidInlineStyle":"Value specified for the inline style must consist of one or more tuples with the format of \"name : value\", separated by semi-colons.","cssLengthTooltip":"Enter a number for a value in pixels or a number with a valid CSS unit (px, %, in, cm, mm, em, ex, pt, or pc).","unavailable":"%1<span class=\"cke_accessibility\">, unavailable</span>","keyboard":{"8":"Backspace","13":"Enter","16":"Shift","17":"Ctrl","18":"Alt","32":"Space","35":"End","36":"Home","46":"Delete","112":"F1","113":"F2","114":"F3","115":"F4","116":"F5","117":"F6","118":"F7","119":"F8","120":"F9","121":"F10","122":"F11","123":"F12","124":"F13","125":"F14","126":"F15","127":"F16","128":"F17","129":"F18","130":"F19","131":"F20","132":"F21","133":"F22","134":"F23","135":"F24","224":"Command"},"keyboardShortcut":"Keyboard shortcut","optionDefault":"Default"}};
\ No newline at end of file
diff --git a/web/core/assets/vendor/ckeditor/lang/nb.js b/web/core/assets/vendor/ckeditor/lang/nb.js
index 02c4d30c1f..13fa2092d7 100644
--- a/web/core/assets/vendor/ckeditor/lang/nb.js
+++ b/web/core/assets/vendor/ckeditor/lang/nb.js
@@ -1,5 +1,5 @@
 /*
-Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2020, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */
 CKEDITOR.lang['nb']={"widget":{"move":"Klikk og dra for å flytte","label":"Widget %1"},"undo":{"redo":"Gjør om","undo":"Angre"},"toolbar":{"toolbarCollapse":"Skjul verktøylinje","toolbarExpand":"Vis verktøylinje","toolbarGroups":{"document":"Dokument","clipboard":"Utklippstavle/Angre","editing":"Redigering","forms":"Skjema","basicstyles":"Basisstiler","paragraph":"Avsnitt","links":"Lenker","insert":"Innsetting","styles":"Stiler","colors":"Farger","tools":"Verktøy"},"toolbars":"Verktøylinjer for editor"},"table":{"border":"Rammestørrelse","caption":"Tittel","cell":{"menu":"Celle","insertBefore":"Sett inn celle før","insertAfter":"Sett inn celle etter","deleteCell":"Slett celler","merge":"Slå sammen celler","mergeRight":"Slå sammen høyre","mergeDown":"Slå sammen ned","splitHorizontal":"Del celle horisontalt","splitVertical":"Del celle vertikalt","title":"Celleegenskaper","cellType":"Celletype","rowSpan":"Radspenn","colSpan":"Kolonnespenn","wordWrap":"Tekstbrytning","hAlign":"Horisontal justering","vAlign":"Vertikal justering","alignBaseline":"Grunnlinje","bgColor":"Bakgrunnsfarge","borderColor":"Rammefarge","data":"Data","header":"Overskrift","yes":"Ja","no":"Nei","invalidWidth":"Cellebredde må være et tall.","invalidHeight":"Cellehøyde må være et tall.","invalidRowSpan":"Radspenn må være et heltall.","invalidColSpan":"Kolonnespenn må være et heltall.","chooseColor":"Velg"},"cellPad":"Cellepolstring","cellSpace":"Cellemarg","column":{"menu":"Kolonne","insertBefore":"Sett inn kolonne før","insertAfter":"Sett inn kolonne etter","deleteColumn":"Slett kolonner"},"columns":"Kolonner","deleteTable":"Slett tabell","headers":"Overskrifter","headersBoth":"Begge","headersColumn":"Første kolonne","headersNone":"Ingen","headersRow":"Første rad","heightUnit":"height unit","invalidBorder":"Rammestørrelse må være et tall.","invalidCellPadding":"Cellepolstring må være et positivt tall.","invalidCellSpacing":"Cellemarg må være et positivt tall.","invalidCols":"Antall kolonner må være et tall større enn 0.","invalidHeight":"Tabellhøyde må være et tall.","invalidRows":"Antall rader må være et tall større enn 0.","invalidWidth":"Tabellbredde må være et tall.","menu":"Egenskaper for tabell","row":{"menu":"Rader","insertBefore":"Sett inn rad før","insertAfter":"Sett inn rad etter","deleteRow":"Slett rader"},"rows":"Rader","summary":"Sammendrag","title":"Egenskaper for tabell","toolbar":"Tabell","widthPc":"prosent","widthPx":"piksler","widthUnit":"Bredde-enhet"},"stylescombo":{"label":"Stil","panelTitle":"Stilformater","panelTitle1":"Blokkstiler","panelTitle2":"Inlinestiler","panelTitle3":"Objektstiler"},"specialchar":{"options":"Alternativer for spesialtegn","title":"Velg spesialtegn","toolbar":"Sett inn spesialtegn"},"sourcedialog":{"toolbar":"Kilde","title":"Kilde"},"sourcearea":{"toolbar":"Kilde"},"showblocks":{"toolbar":"Vis blokker"},"removeformat":{"toolbar":"Fjern formatering"},"pastetext":{"button":"Lim inn som ren tekst","pasteNotification":"Press %1 to paste. Your browser doesn‘t support pasting with the toolbar button or context menu option.","title":"Lim inn som ren tekst"},"pastefromword":{"confirmCleanup":"Teksten du limer inn ser ut til å være kopiert fra Word. Vil du renske den før du limer den inn?","error":"Det var ikke mulig å renske den innlimte teksten på grunn av en intern feil","title":"Lim inn fra Word","toolbar":"Lim inn fra Word"},"notification":{"closed":"Varsling lukket."},"maximize":{"maximize":"Maksimer","minimize":"Minimer"},"magicline":{"title":"Sett inn nytt avsnitt her"},"list":{"bulletedlist":"Legg til / fjern punktliste","numberedlist":"Legg til / fjern nummerert liste"},"language":{"button":"Sett språk","remove":"Fjern språk"},"indent":{"indent":"Øk innrykk","outdent":"Reduser innrykk"},"image2":{"alt":"Alternativ tekst","btnUpload":"Send det til serveren","captioned":"Bilde med bildetekst","captionPlaceholder":"Bildetekst","infoTab":"Bildeinformasjon","lockRatio":"Lås forhold","menu":"Bildeegenskaper","pathName":"bilde","pathNameCaption":"bildetekst","resetSize":"Tilbakestill størrelse","resizer":"Klikk og dra for å endre størrelse","title":"Bildeegenskaper","uploadTab":"Last opp","urlMissing":"Bildets adresse mangler.","altMissing":"Alternativ tekst mangler."},"horizontalrule":{"toolbar":"Sett inn horisontal linje"},"format":{"label":"Format","panelTitle":"Avsnittsformat","tag_address":"Adresse","tag_div":"Normal (DIV)","tag_h1":"Overskrift 1","tag_h2":"Overskrift 2","tag_h3":"Overskrift 3","tag_h4":"Overskrift 4","tag_h5":"Overskrift 5","tag_h6":"Overskrift 6","tag_p":"Normal","tag_pre":"Formatert"},"filetools":{"loadError":"Feil oppsto under filinnlesing.","networkError":"Nettverksfeil oppsto under filopplasting.","httpError404":"HTTP-feil oppsto under filopplasting (404: Fant ikke filen).","httpError403":"HTTP-feil oppsto under filopplasting (403: Ikke tillatt).","httpError":"HTTP-feil oppsto under filopplasting (feilstatus: %1).","noUrlError":"URL for opplasting er ikke oppgitt.","responseError":"Ukorrekt svar fra serveren."},"elementspath":{"eleLabel":"Element-sti","eleTitle":"%1 element"},"contextmenu":{"options":"Alternativer for høyreklikkmeny"},"clipboard":{"copy":"Kopier","copyError":"Din nettlesers sikkerhetsinstillinger tillater ikke automatisk kopiering av tekst. Vennligst bruk tastatursnarveien (Ctrl/Cmd+C).","cut":"Klipp ut","cutError":"Din nettlesers sikkerhetsinstillinger tillater ikke automatisk utklipping av tekst. Vennligst bruk tastatursnarveien (Ctrl/Cmd+X).","paste":"Lim inn","pasteNotification":"Trykk %1 for å lime inn. Nettleseren din støtter ikke å lime inn med knappen i verktøylinjen eller høyreklikkmenyen.","pasteArea":"Innlimingsområde","pasteMsg":"Lim inn innholdet i området nedenfor og klikk OK."},"blockquote":{"toolbar":"Blokksitat"},"basicstyles":{"bold":"Fet","italic":"Kursiv","strike":"Gjennomstreking","subscript":"Senket skrift","superscript":"Hevet skrift","underline":"Understreking"},"about":{"copy":"Copyright &copy; $1. Alle rettigheter reservert.","dlgTitle":"Om CKEditor 4","moreInfo":"For lisensieringsinformasjon, vennligst besøk vårt nettsted:"},"editor":"Rikteksteditor","editorPanel":"Panel for rikteksteditor","common":{"editorHelp":"Trykk ALT 0 for hjelp","browseServer":"Bla gjennom tjener","url":"URL","protocol":"Protokoll","upload":"Last opp","uploadSubmit":"Send det til serveren","image":"Bilde","flash":"Flash","form":"Skjema","checkbox":"Avmerkingsboks","radio":"Alternativknapp","textField":"Tekstboks","textarea":"Tekstområde","hiddenField":"Skjult felt","button":"Knapp","select":"Rullegardinliste","imageButton":"Bildeknapp","notSet":"<ikke satt>","id":"Id","name":"Navn","langDir":"Språkretning","langDirLtr":"Venstre til høyre (LTR)","langDirRtl":"Høyre til venstre (RTL)","langCode":"Språkkode","longDescr":"Utvidet beskrivelse","cssClass":"Stilarkklasser","advisoryTitle":"Tittel","cssStyle":"Stil","ok":"OK","cancel":"Avbryt","close":"Lukk","preview":"Forhåndsvis","resize":"Dra for å skalere","generalTab":"Generelt","advancedTab":"Avansert","validateNumberFailed":"Denne verdien er ikke et tall.","confirmNewPage":"Alle ulagrede endringer som er gjort i dette innholdet vil gå tapt. Er du sikker på at du vil laste en ny side?","confirmCancel":"Du har endret noen alternativer. Er du sikker på at du vil lukke dialogvinduet?","options":"Valg","target":"Mål","targetNew":"Nytt vindu (_blank)","targetTop":"Hele vinduet (_top)","targetSelf":"Samme vindu (_self)","targetParent":"Foreldrevindu (_parent)","langDirLTR":"Venstre til høyre (VTH)","langDirRTL":"Høyre til venstre (HTV)","styles":"Stil","cssClasses":"Stilarkklasser","width":"Bredde","height":"Høyde","align":"Juster","left":"Venstre","right":"Høyre","center":"Midtstill","justify":"Blokkjuster","alignLeft":"Venstrejuster","alignRight":"Høyrejuster","alignCenter":"Midtstill","alignTop":"Topp","alignMiddle":"Midten","alignBottom":"Bunn","alignNone":"Ingen","invalidValue":"Ugyldig verdi.","invalidHeight":"Høyde må være et tall.","invalidWidth":"Bredde må være et tall.","invalidLength":"Den angitte verdien for feltet \"%1\" må være et positivt tall med eller uten en gyldig måleenhet (%2).","invalidCssLength":"Den angitte verdien for feltet \"%1\" må være et positivt tall med eller uten en gyldig CSS-målingsenhet (px, %, in, cm, mm, em, ex, pt, eller pc).","invalidHtmlLength":"Den angitte verdien for feltet \"%1\" må være et positivt tall med eller uten en gyldig HTML-målingsenhet (px eller %).","invalidInlineStyle":"Verdi angitt for inline stil må bestå av en eller flere sett med formatet \"navn : verdi\", separert med semikolon","cssLengthTooltip":"Skriv inn et tall for en piksel-verdi eller et tall med en gyldig CSS-enhet (px, %, in, cm, mm, em, ex, pt, eller pc).","unavailable":"%1<span class=\"cke_accessibility\">, utilgjenglig</span>","keyboard":{"8":"Backspace","13":"Enter","16":"Shift","17":"Ctrl","18":"Alt","32":"Mellomrom","35":"End","36":"Home","46":"Delete","112":"F1","113":"F2","114":"F3","115":"F4","116":"F5","117":"F6","118":"F7","119":"F8","120":"F9","121":"F10","122":"F11","123":"F12","124":"F13","125":"F14","126":"F15","127":"F16","128":"F17","129":"F18","130":"F19","131":"F20","132":"F21","133":"F22","134":"F23","135":"F24","224":"Command"},"keyboardShortcut":"Tastatursnarvei","optionDefault":"Standard"}};
\ No newline at end of file
diff --git a/web/core/assets/vendor/ckeditor/lang/nl.js b/web/core/assets/vendor/ckeditor/lang/nl.js
index c88a2aad27..ed2b3de429 100644
--- a/web/core/assets/vendor/ckeditor/lang/nl.js
+++ b/web/core/assets/vendor/ckeditor/lang/nl.js
@@ -1,5 +1,5 @@
 /*
-Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2020, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */
 CKEDITOR.lang['nl']={"widget":{"move":"Klik en sleep om te verplaatsen","label":"%1 widget"},"undo":{"redo":"Opnieuw uitvoeren","undo":"Ongedaan maken"},"toolbar":{"toolbarCollapse":"Werkbalk inklappen","toolbarExpand":"Werkbalk uitklappen","toolbarGroups":{"document":"Document","clipboard":"Klembord/Ongedaan maken","editing":"Bewerken","forms":"Formulieren","basicstyles":"Basisstijlen","paragraph":"Paragraaf","links":"Links","insert":"Invoegen","styles":"Stijlen","colors":"Kleuren","tools":"Toepassingen"},"toolbars":"Werkbalken"},"table":{"border":"Randdikte","caption":"Bijschrift","cell":{"menu":"Cel","insertBefore":"Voeg cel in voor","insertAfter":"Voeg cel in na","deleteCell":"Cellen verwijderen","merge":"Cellen samenvoegen","mergeRight":"Voeg samen naar rechts","mergeDown":"Voeg samen naar beneden","splitHorizontal":"Splits cel horizontaal","splitVertical":"Splits cel vertikaal","title":"Celeigenschappen","cellType":"Celtype","rowSpan":"Rijen samenvoegen","colSpan":"Kolommen samenvoegen","wordWrap":"Automatische terugloop","hAlign":"Horizontale uitlijning","vAlign":"Verticale uitlijning","alignBaseline":"Tekstregel","bgColor":"Achtergrondkleur","borderColor":"Randkleur","data":"Gegevens","header":"Kop","yes":"Ja","no":"Nee","invalidWidth":"De celbreedte moet een getal zijn.","invalidHeight":"De celhoogte moet een getal zijn.","invalidRowSpan":"Rijen samenvoegen moet een heel getal zijn.","invalidColSpan":"Kolommen samenvoegen moet een heel getal zijn.","chooseColor":"Kies"},"cellPad":"Celopvulling","cellSpace":"Celafstand","column":{"menu":"Kolom","insertBefore":"Voeg kolom in voor","insertAfter":"Voeg kolom in na","deleteColumn":"Kolommen verwijderen"},"columns":"Kolommen","deleteTable":"Tabel verwijderen","headers":"Koppen","headersBoth":"Beide","headersColumn":"Eerste kolom","headersNone":"Geen","headersRow":"Eerste rij","heightUnit":"height unit","invalidBorder":"De randdikte moet een getal zijn.","invalidCellPadding":"Celopvulling moet een getal zijn.","invalidCellSpacing":"Celafstand moet een getal zijn.","invalidCols":"Het aantal kolommen moet een getal zijn groter dan 0.","invalidHeight":"De tabelhoogte moet een getal zijn.","invalidRows":"Het aantal rijen moet een getal zijn groter dan 0.","invalidWidth":"De tabelbreedte moet een getal zijn.","menu":"Tabeleigenschappen","row":{"menu":"Rij","insertBefore":"Voeg rij in voor","insertAfter":"Voeg rij in na","deleteRow":"Rijen verwijderen"},"rows":"Rijen","summary":"Samenvatting","title":"Tabeleigenschappen","toolbar":"Tabel","widthPc":"procent","widthPx":"pixels","widthUnit":"eenheid breedte"},"stylescombo":{"label":"Stijl","panelTitle":"Opmaakstijlen","panelTitle1":"Blok stijlen","panelTitle2":"Inline stijlen","panelTitle3":"Object stijlen"},"specialchar":{"options":"Speciale tekens opties","title":"Selecteer speciaal teken","toolbar":"Speciaal teken invoegen"},"sourcedialog":{"toolbar":"Broncode","title":"Broncode"},"sourcearea":{"toolbar":"Broncode"},"showblocks":{"toolbar":"Toon blokken"},"removeformat":{"toolbar":"Opmaak verwijderen"},"pastetext":{"button":"Plakken als platte tekst","pasteNotification":"Press %1 to paste. Your browser doesn‘t support pasting with the toolbar button or context menu option.","title":"Plakken als platte tekst"},"pastefromword":{"confirmCleanup":"De tekst die u wilt plakken lijkt gekopieerd te zijn vanuit Word. Wilt u de tekst opschonen voordat deze geplakt wordt?","error":"Het was niet mogelijk om de geplakte tekst op te schonen door een interne fout","title":"Plakken vanuit Word","toolbar":"Plakken vanuit Word"},"notification":{"closed":"Melding gesloten."},"maximize":{"maximize":"Maximaliseren","minimize":"Minimaliseren"},"magicline":{"title":"Hier paragraaf invoeren"},"list":{"bulletedlist":"Opsomming invoegen","numberedlist":"Genummerde lijst invoegen"},"language":{"button":"Taal instellen","remove":"Taal verwijderen"},"indent":{"indent":"Inspringing vergroten","outdent":"Inspringing verkleinen"},"image2":{"alt":"Alternatieve tekst","btnUpload":"Naar server verzenden","captioned":"Afbeelding met onderschrift","captionPlaceholder":"Onderschrift","infoTab":"Afbeeldingsinformatie","lockRatio":"Verhouding vergrendelen","menu":"Eigenschappen afbeelding","pathName":"afbeelding","pathNameCaption":"onderschrift","resetSize":"Afmetingen herstellen","resizer":"Klik en sleep om te herschalen","title":"Afbeeldingseigenschappen","uploadTab":"Uploaden","urlMissing":"De URL naar de afbeelding ontbreekt.","altMissing":"Alternatieve tekst ontbreekt."},"horizontalrule":{"toolbar":"Horizontale lijn invoegen"},"format":{"label":"Opmaak","panelTitle":"Opmaak","tag_address":"Adres","tag_div":"Normaal (DIV)","tag_h1":"Kop 1","tag_h2":"Kop 2","tag_h3":"Kop 3","tag_h4":"Kop 4","tag_h5":"Kop 5","tag_h6":"Kop 6","tag_p":"Normaal","tag_pre":"Met opmaak"},"filetools":{"loadError":"Fout tijdens lezen van bestand.","networkError":"Netwerkfout tijdens uploaden van bestand.","httpError404":"HTTP fout tijdens uploaden van bestand (404: Bestand niet gevonden).","httpError403":"HTTP fout tijdens uploaden van bestand (403: Verboden).","httpError":"HTTP fout tijdens uploaden van bestand (fout status: %1).","noUrlError":"Upload URL is niet gedefinieerd.","responseError":"Ongeldig antwoord van server."},"elementspath":{"eleLabel":"Elementenpad","eleTitle":"%1 element"},"contextmenu":{"options":"Contextmenu opties"},"clipboard":{"copy":"Kopiëren","copyError":"De beveiligingsinstelling van de browser verhinderen het automatisch kopiëren. Gebruik de sneltoets Ctrl/Cmd+C van het toetsenbord.","cut":"Knippen","cutError":"De beveiligingsinstelling van de browser verhinderen het automatisch knippen. Gebruik de sneltoets Ctrl/Cmd+X van het toetsenbord.","paste":"Plakken","pasteNotification":"Press %1 to paste. Your browser doesn‘t support pasting with the toolbar button or context menu option.","pasteArea":"Plakgebied","pasteMsg":"Paste your content inside the area below and press OK."},"blockquote":{"toolbar":"Citaatblok"},"basicstyles":{"bold":"Vet","italic":"Cursief","strike":"Doorhalen","subscript":"Subscript","superscript":"Superscript","underline":"Onderstrepen"},"about":{"copy":"Copyright &copy; $1. Alle rechten voorbehouden.","dlgTitle":"Over CKEditor 4","moreInfo":"Bezoek onze website voor licentieinformatie:"},"editor":"Tekstverwerker","editorPanel":"Tekstverwerker beheerpaneel","common":{"editorHelp":"Druk ALT 0 voor hulp","browseServer":"Bladeren op server","url":"URL","protocol":"Protocol","upload":"Upload","uploadSubmit":"Naar server verzenden","image":"Afbeelding","flash":"Flash","form":"Formulier","checkbox":"Selectievinkje","radio":"Keuzerondje","textField":"Tekstveld","textarea":"Tekstvak","hiddenField":"Verborgen veld","button":"Knop","select":"Selectieveld","imageButton":"Afbeeldingsknop","notSet":"<niet ingevuld>","id":"Id","name":"Naam","langDir":"Schrijfrichting","langDirLtr":"Links naar rechts (LTR)","langDirRtl":"Rechts naar links (RTL)","langCode":"Taalcode","longDescr":"Lange URL-omschrijving","cssClass":"Stylesheet-klassen","advisoryTitle":"Adviserende titel","cssStyle":"Stijl","ok":"OK","cancel":"Annuleren","close":"Sluiten","preview":"Voorbeeld","resize":"Sleep om te herschalen","generalTab":"Algemeen","advancedTab":"Geavanceerd","validateNumberFailed":"Deze waarde is geen geldig getal.","confirmNewPage":"Alle aangebrachte wijzigingen gaan verloren. Weet u zeker dat u een nieuwe pagina wilt openen?","confirmCancel":"Enkele opties zijn gewijzigd. Weet u zeker dat u dit dialoogvenster wilt sluiten?","options":"Opties","target":"Doelvenster","targetNew":"Nieuw venster (_blank)","targetTop":"Hele venster (_top)","targetSelf":"Zelfde venster (_self)","targetParent":"Origineel venster (_parent)","langDirLTR":"Links naar rechts (LTR)","langDirRTL":"Rechts naar links (RTL)","styles":"Stijl","cssClasses":"Stylesheet-klassen","width":"Breedte","height":"Hoogte","align":"Uitlijning","left":"Links","right":"Rechts","center":"Centreren","justify":"Uitvullen","alignLeft":"Links uitlijnen","alignRight":"Rechts uitlijnen","alignCenter":"Centreren","alignTop":"Boven","alignMiddle":"Midden","alignBottom":"Onder","alignNone":"Geen","invalidValue":"Ongeldige waarde.","invalidHeight":"De hoogte moet een getal zijn.","invalidWidth":"De breedte moet een getal zijn.","invalidLength":"Value specified for the \"%1\" field must be a positive number with or without a valid measurement unit (%2).","invalidCssLength":"Waarde in veld \"%1\" moet een positief nummer zijn, met of zonder een geldige CSS meeteenheid (px, %, in, cm, mm, em, ex, pt of pc).","invalidHtmlLength":"Waarde in veld \"%1\" moet een positief nummer zijn, met of zonder een geldige HTML meeteenheid (px of %).","invalidInlineStyle":"Waarde voor de online stijl moet bestaan uit een of meerdere tupels met het formaat \"naam : waarde\", gescheiden door puntkomma's.","cssLengthTooltip":"Geef een nummer in voor een waarde in pixels of geef een nummer in met een geldige CSS eenheid (px, %, in, cm, mm, em, ex, pt, of pc).","unavailable":"%1<span class=\"cke_accessibility\">, niet beschikbaar</span>","keyboard":{"8":"Backspace","13":"Enter","16":"Shift","17":"Ctrl","18":"Alt","32":"Spatie","35":"End","36":"Home","46":"Verwijderen","112":"F1","113":"F2","114":"F3","115":"F4","116":"F5","117":"F6","118":"F7","119":"F8","120":"F9","121":"F10","122":"F11","123":"F12","124":"F13","125":"F14","126":"F15","127":"F16","128":"F17","129":"F18","130":"F19","131":"F20","132":"F21","133":"F22","134":"F23","135":"F24","224":"Command"},"keyboardShortcut":"Sneltoets","optionDefault":"Standaard"}};
\ No newline at end of file
diff --git a/web/core/assets/vendor/ckeditor/lang/no.js b/web/core/assets/vendor/ckeditor/lang/no.js
index 2e3f09fc81..32a37da9e5 100644
--- a/web/core/assets/vendor/ckeditor/lang/no.js
+++ b/web/core/assets/vendor/ckeditor/lang/no.js
@@ -1,5 +1,5 @@
 /*
-Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2020, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */
 CKEDITOR.lang['no']={"widget":{"move":"Klikk og dra for å flytte","label":"Widget %1"},"undo":{"redo":"Gjør om","undo":"Angre"},"toolbar":{"toolbarCollapse":"Skjul verktøylinje","toolbarExpand":"Vis verktøylinje","toolbarGroups":{"document":"Dokument","clipboard":"Utklippstavle/Angre","editing":"Redigering","forms":"Skjema","basicstyles":"Basisstiler","paragraph":"Avsnitt","links":"Lenker","insert":"Innsetting","styles":"Stiler","colors":"Farger","tools":"Verktøy"},"toolbars":"Verktøylinjer for editor"},"table":{"border":"Rammestørrelse","caption":"Tittel","cell":{"menu":"Celle","insertBefore":"Sett inn celle før","insertAfter":"Sett inn celle etter","deleteCell":"Slett celler","merge":"Slå sammen celler","mergeRight":"Slå sammen høyre","mergeDown":"Slå sammen ned","splitHorizontal":"Del celle horisontalt","splitVertical":"Del celle vertikalt","title":"Celleegenskaper","cellType":"Celletype","rowSpan":"Radspenn","colSpan":"Kolonnespenn","wordWrap":"Tekstbrytning","hAlign":"Horisontal justering","vAlign":"Vertikal justering","alignBaseline":"Grunnlinje","bgColor":"Bakgrunnsfarge","borderColor":"Rammefarge","data":"Data","header":"Overskrift","yes":"Ja","no":"Nei","invalidWidth":"Cellebredde må være et tall.","invalidHeight":"Cellehøyde må være et tall.","invalidRowSpan":"Radspenn må være et heltall.","invalidColSpan":"Kolonnespenn må være et heltall.","chooseColor":"Velg"},"cellPad":"Cellepolstring","cellSpace":"Cellemarg","column":{"menu":"Kolonne","insertBefore":"Sett inn kolonne før","insertAfter":"Sett inn kolonne etter","deleteColumn":"Slett kolonner"},"columns":"Kolonner","deleteTable":"Slett tabell","headers":"Overskrifter","headersBoth":"Begge","headersColumn":"Første kolonne","headersNone":"Ingen","headersRow":"Første rad","heightUnit":"height unit","invalidBorder":"Rammestørrelse må være et tall.","invalidCellPadding":"Cellepolstring må være et positivt tall.","invalidCellSpacing":"Cellemarg må være et positivt tall.","invalidCols":"Antall kolonner må være et tall større enn 0.","invalidHeight":"Tabellhøyde må være et tall.","invalidRows":"Antall rader må være et tall større enn 0.","invalidWidth":"Tabellbredde må være et tall.","menu":"Egenskaper for tabell","row":{"menu":"Rader","insertBefore":"Sett inn rad før","insertAfter":"Sett inn rad etter","deleteRow":"Slett rader"},"rows":"Rader","summary":"Sammendrag","title":"Egenskaper for tabell","toolbar":"Tabell","widthPc":"prosent","widthPx":"piksler","widthUnit":"Bredde-enhet"},"stylescombo":{"label":"Stil","panelTitle":"Stilformater","panelTitle1":"Blokkstiler","panelTitle2":"Inlinestiler","panelTitle3":"Objektstiler"},"specialchar":{"options":"Alternativer for spesialtegn","title":"Velg spesialtegn","toolbar":"Sett inn spesialtegn"},"sourcedialog":{"toolbar":"Kilde","title":"Kilde"},"sourcearea":{"toolbar":"Kilde"},"showblocks":{"toolbar":"Vis blokker"},"removeformat":{"toolbar":"Fjern formatering"},"pastetext":{"button":"Lim inn som ren tekst","pasteNotification":"Press %1 to paste. Your browser doesn‘t support pasting with the toolbar button or context menu option.","title":"Lim inn som ren tekst"},"pastefromword":{"confirmCleanup":"Teksten du limer inn ser ut til å være kopiert fra Word. Vil du renske den før du limer den inn?","error":"Det var ikke mulig å renske den innlimte teksten på grunn av en intern feil","title":"Lim inn fra Word","toolbar":"Lim inn fra Word"},"notification":{"closed":"Notification closed."},"maximize":{"maximize":"Maksimer","minimize":"Minimer"},"magicline":{"title":"Sett inn nytt avsnitt her"},"list":{"bulletedlist":"Legg til/Fjern punktmerket liste","numberedlist":"Legg til/Fjern nummerert liste"},"language":{"button":"Sett språk","remove":"Fjern språk"},"indent":{"indent":"Øk innrykk","outdent":"Reduser innrykk"},"image2":{"alt":"Alternativ tekst","btnUpload":"Send det til serveren","captioned":"Bilde med bildetekst","captionPlaceholder":"Billedtekst","infoTab":"Bildeinformasjon","lockRatio":"Lås forhold","menu":"Bildeegenskaper","pathName":"bilde","pathNameCaption":"bildetekst","resetSize":"Tilbakestill størrelse","resizer":"Klikk og dra for å endre størrelse","title":"Bildeegenskaper","uploadTab":"Last opp","urlMissing":"Bildets adresse mangler.","altMissing":"Alternativ tekst mangler."},"horizontalrule":{"toolbar":"Sett inn horisontal linje"},"format":{"label":"Format","panelTitle":"Avsnittsformat","tag_address":"Adresse","tag_div":"Normal (DIV)","tag_h1":"Overskrift 1","tag_h2":"Overskrift 2","tag_h3":"Overskrift 3","tag_h4":"Overskrift 4","tag_h5":"Overskrift 5","tag_h6":"Overskrift 6","tag_p":"Normal","tag_pre":"Formatert"},"filetools":{"loadError":"Det oppstod en feil under lesing av filen.","networkError":"Det oppstod en nettverksfeil under opplasting av filen.","httpError404":"En HTTP-feil oppstod under opplasting av filen (404: Filen finnes ikke).","httpError403":"En HTTP-feil oppstod under opplasting av filen (403: Ingen tilgang).","httpError":"En HTTP-feil oppstod under opplasting av filen (feilkode: %1).","noUrlError":"Opplastings-URL er ikke definert.","responseError":"Feil svar fra serveren."},"elementspath":{"eleLabel":"Element-sti","eleTitle":"%1 element"},"contextmenu":{"options":"Alternativer for høyreklikkmeny"},"clipboard":{"copy":"Kopier","copyError":"Din nettlesers sikkerhetsinstillinger tillater ikke automatisk kopiering av tekst. Vennligst bruk snarveien (Ctrl/Cmd+C).","cut":"Klipp ut","cutError":"Din nettlesers sikkerhetsinstillinger tillater ikke automatisk utklipping av tekst. Vennligst bruk snarveien (Ctrl/Cmd+X).","paste":"Lim inn","pasteNotification":"Trykk %1 for å lime inn. På grunn av manglende støtte i nettleseren din, kan du ikke lime inn via knapperaden eller kontekstmenyen.","pasteArea":"Innlimingsområde","pasteMsg":"Lim inn innholdet i området nedenfor og trykk OK."},"blockquote":{"toolbar":"Blokksitat"},"basicstyles":{"bold":"Fet","italic":"Kursiv","strike":"Gjennomstreking","subscript":"Senket skrift","superscript":"Hevet skrift","underline":"Understreking"},"about":{"copy":"Copyright &copy; $1. Alle rettigheter reservert.","dlgTitle":"Om CKEditor 4","moreInfo":"For lisensieringsinformasjon, vennligst besøk vårt nettsted:"},"editor":"Rikteksteditor","editorPanel":"Panel for rikteksteditor","common":{"editorHelp":"Trykk ALT 0 for hjelp","browseServer":"Bla igjennom server","url":"URL","protocol":"Protokoll","upload":"Last opp","uploadSubmit":"Send det til serveren","image":"Bilde","flash":"Flash","form":"Skjema","checkbox":"Avmerkingsboks","radio":"Alternativknapp","textField":"Tekstboks","textarea":"Tekstområde","hiddenField":"Skjult felt","button":"Knapp","select":"Rullegardinliste","imageButton":"Bildeknapp","notSet":"<ikke satt>","id":"Id","name":"Navn","langDir":"Språkretning","langDirLtr":"Venstre til høyre (VTH)","langDirRtl":"Høyre til venstre (HTV)","langCode":"Språkkode","longDescr":"Utvidet beskrivelse","cssClass":"Stilarkklasser","advisoryTitle":"Tittel","cssStyle":"Stil","ok":"OK","cancel":"Avbryt","close":"Lukk","preview":"Forhåndsvis","resize":"Dra for å skalere","generalTab":"Generelt","advancedTab":"Avansert","validateNumberFailed":"Denne verdien er ikke et tall.","confirmNewPage":"Alle ulagrede endringer som er gjort i dette innholdet vil bli tapt. Er du sikker på at du vil laste en ny side?","confirmCancel":"Noen av valgene har blitt endret. Er du sikker på at du vil lukke dialogen?","options":"Valg","target":"Mål","targetNew":"Nytt vindu (_blank)","targetTop":"Hele vindu (_top)","targetSelf":"Samme vindu (_self)","targetParent":"Foreldrevindu (_parent)","langDirLTR":"Venstre til høyre (VTH)","langDirRTL":"Høyre til venstre (HTV)","styles":"Stil","cssClasses":"Stilarkklasser","width":"Bredde","height":"Høyde","align":"Juster","left":"Venstre","right":"Høyre","center":"Midtjuster","justify":"Blokkjuster","alignLeft":"Venstrejuster","alignRight":"Høyrejuster","alignCenter":"Midtjustér","alignTop":"Topp","alignMiddle":"Midten","alignBottom":"Bunn","alignNone":"Ingen","invalidValue":"Ugyldig verdi.","invalidHeight":"Høyde må være et tall.","invalidWidth":"Bredde må være et tall.","invalidLength":"Verdien i \"%1\"-feltet må være et positivt tall med eller uten en gyldig måleenhet (%2).","invalidCssLength":"Den angitte verdien for feltet \"%1\" må være et positivt tall med eller uten en gyldig CSS-målingsenhet (px, %, in, cm, mm, em, ex, pt, eller pc).","invalidHtmlLength":"Den angitte verdien for feltet \"%1\" må være et positivt tall med eller uten en gyldig HTML-målingsenhet (px eller %).","invalidInlineStyle":"Verdi angitt for inline stil må bestå av en eller flere sett med formatet \"navn : verdi\", separert med semikolon","cssLengthTooltip":"Skriv inn et tall for en piksel-verdi eller et tall med en gyldig CSS-enhet (px, %, in, cm, mm, em, ex, pt, eller pc).","unavailable":"%1<span class=\"cke_accessibility\">, utilgjenglig</span>","keyboard":{"8":"Backspace","13":"Enter","16":"Shift","17":"Ctrl","18":"Alt","32":"Mellomrom","35":"End","36":"Home","46":"Delete","112":"F1","113":"F2","114":"F3","115":"F4","116":"F5","117":"F6","118":"F7","119":"F8","120":"F9","121":"F10","122":"F11","123":"F12","124":"F13","125":"F14","126":"F15","127":"F16","128":"F17","129":"F18","130":"F19","131":"F20","132":"F21","133":"F22","134":"F23","135":"F24","224":"Kommando"},"keyboardShortcut":"Hurtigtast","optionDefault":"Standard"}};
\ No newline at end of file
diff --git a/web/core/assets/vendor/ckeditor/lang/oc.js b/web/core/assets/vendor/ckeditor/lang/oc.js
index 7cc8c324e4..379a2fa965 100644
--- a/web/core/assets/vendor/ckeditor/lang/oc.js
+++ b/web/core/assets/vendor/ckeditor/lang/oc.js
@@ -1,5 +1,5 @@
 /*
-Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2020, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */
 CKEDITOR.lang['oc']={"widget":{"move":"Clicar e lisar per desplaçar","label":"Element %1"},"undo":{"redo":"Refar","undo":"Restablir"},"toolbar":{"toolbarCollapse":"Enrotlar la barra d'aisinas","toolbarExpand":"Desenrotlar la barra d'aisinas","toolbarGroups":{"document":"Document","clipboard":"Quichapapièr/Desfar","editing":"Edicion","forms":"Formularis","basicstyles":"Estils de basa","paragraph":"Paragraf","links":"Ligams","insert":"Inserir","styles":"Estils","colors":"Colors","tools":"Aisinas"},"toolbars":"Barras d'aisinas de l'editor"},"table":{"border":"Talha de la bordadura","caption":"Títol del tablèu","cell":{"menu":"Cellula","insertBefore":"Inserir una cellula abans","insertAfter":"Inserir una cellula aprèp","deleteCell":"Suprimir las cellulas","merge":"Fusionar las cellulas","mergeRight":"Fusionar cap a dreita","mergeDown":"Fusionar cap aval","splitHorizontal":"Separar la cellula orizontalament","splitVertical":"Separar la cellula verticalament","title":"Proprietats de la cellula","cellType":"Tipe de cellula","rowSpan":"Linhas ocupadas","colSpan":"Colomnas ocupadas","wordWrap":"Cesura","hAlign":"Alinhament orizontal","vAlign":"Alinhament vertical","alignBaseline":"Linha de basa","bgColor":"Color de rèireplan","borderColor":"Color de bordadura","data":"Donadas","header":"Entèsta","yes":"Òc","no":"Non","invalidWidth":"La largor de la cellula deu èsser un nombre.","invalidHeight":"La nautor de la cellula deu èsser un nombre.","invalidRowSpan":"Lo nombre de linhas ocupadas deu èsser un nombre entièr.","invalidColSpan":"Lo nombre de colomnas ocupadas deu èsser un nombre entièr.","chooseColor":"Causir"},"cellPad":"Marge intèrne de las cellulas","cellSpace":"Espaçament entre las cellulas","column":{"menu":"Colomna","insertBefore":"Inserir una colomna abans","insertAfter":"Inserir una colomna aprèp","deleteColumn":"Suprimir las colomnas"},"columns":"Colomnas","deleteTable":"Suprimir lo tablèu","headers":"Entèstas","headersBoth":"Los dos","headersColumn":"Primièra colomna","headersNone":"Pas cap","headersRow":"Primièra linha","heightUnit":"height unit","invalidBorder":"La talha de la bordadura deu èsser un nombre.","invalidCellPadding":"Lo marge intèrne de las cellulas deu èsser un nombre positiu.","invalidCellSpacing":"L'espaçament entre las cellulas deu èsser un nombre positiu.","invalidCols":"Lo nombre de colomnas deu èsser superior a 0.","invalidHeight":"La nautor del tablèu deu èsser un nombre.","invalidRows":"Lo nombre de linhas deu èsser superior a 0.","invalidWidth":"La largor del tablèu deu èsser un nombre.","menu":"Proprietats del tablèu","row":{"menu":"Linha","insertBefore":"Inserir una linha abans","insertAfter":"Inserir una linha aprèp","deleteRow":"Suprimir las linhas"},"rows":"Linhas","summary":"Resumit (descripcion)","title":"Proprietats del tablèu","toolbar":"Tablèu","widthPc":"per cent","widthPx":"pixèls","widthUnit":"unitat de largor"},"stylescombo":{"label":"Estils","panelTitle":"Estils de mesa en pagina","panelTitle1":"Estils de blòt","panelTitle2":"Estils en linha","panelTitle3":"Estils d'objècte"},"specialchar":{"options":"Opcions dels caractèrs especials","title":"Seleccionar un caractèr","toolbar":"Inserir un caractèr especial"},"sourcedialog":{"toolbar":"Font","title":"Font"},"sourcearea":{"toolbar":"Font"},"showblocks":{"toolbar":"Afichar los blòts"},"removeformat":{"toolbar":"Suprimir la mesa en forma"},"pastetext":{"button":"Pegar coma tèxte brut","pasteNotification":"Press %1 to paste. Your browser doesn‘t support pasting with the toolbar button or context menu option.","title":"Paste as Plain Text"},"pastefromword":{"confirmCleanup":"Sembla que lo tèxte de pegar proven de Word. Lo volètz netejar abans de lo pegar ?","error":"Las donadas pegadas an pas pogut èsser netejadas a causa d'una error intèrna","title":"Pegar dempuèi Word","toolbar":"Pegar dempuèi Word"},"notification":{"closed":"Notificacion tampada."},"maximize":{"maximize":"Maximizar","minimize":"Minimizar"},"magicline":{"title":"Inserir un paragraf aicí"},"list":{"bulletedlist":"Inserir/Suprimir una lista amb de piuses","numberedlist":"Inserir/Suprimir una lista numerotada"},"language":{"button":"Definir la lenga","remove":"Suprimir la lenga"},"indent":{"indent":"Aumentar l'alinèa","outdent":"Dmesir l'alinèa"},"image2":{"alt":"Tèxte alternatiu","btnUpload":"Mandar sul servidor","captioned":"Imatge amb legenda","captionPlaceholder":"Legenda","infoTab":"Informacions sus l'imatge","lockRatio":"Conservar las proporcions","menu":"Proprietats de l'imatge","pathName":"imatge","pathNameCaption":"legenda","resetSize":"Reïnicializar la talha","resizer":"Clicar e lisar per redimensionar","title":"Proprietats de l'imatge","uploadTab":"Mandar","urlMissing":"L'URL font de l'imatge es mancanta.","altMissing":"Lo tèxte alternatiu es mancant."},"horizontalrule":{"toolbar":"Inserir una linha orizontala"},"format":{"label":"Format","panelTitle":"Format de paragraf","tag_address":"Adreça","tag_div":"Division (DIV)","tag_h1":"Títol 1","tag_h2":"Títol 2","tag_h3":"Títol 3","tag_h4":"Títol 4","tag_h5":"Títol 5","tag_h6":"Títol 6","tag_p":"Normal","tag_pre":"Preformatat"},"filetools":{"loadError":"Una error s'es produita pendent la lectura del fichièr.","networkError":"Una error de ret s'es produita pendent lo mandadís del fichièr.","httpError404":"Una error HTTP s'es produita pendent lo mandadís del fichièr (404 : fichièr pas trobat).","httpError403":"Una error HTTP s'es produita pendent lo mandadís del fichièr (403 : accès refusat).","httpError":"Una error HTTP s'es produita pendent lo mandadís del fichièr (error : %1).","noUrlError":"L'URL de mandadís es pas especificada.","responseError":"Responsa del servidor incorrècta."},"elementspath":{"eleLabel":"Camin dels elements","eleTitle":"Element %1"},"contextmenu":{"options":"Opcions del menú contextual"},"clipboard":{"copy":"Copiar","copyError":"Los paramètres de seguretat de vòstre navigador autorizan pas l'editor a executar automaticament l'operacion « Copiar ». Utilizatz l'acorchi de clavièr a aqueste efièit (Ctrl/Cmd+C).","cut":"Talhar","cutError":"Los paramètres de seguretat de vòstre navigador autorizan pas l'editor a executar automaticament l'operacion « Talhar ». Utilizatz l'acorchi de clavièr a aqueste efièit (Ctrl/Cmd+X).","paste":"Pegar","pasteNotification":"Press %1 to paste. Your browser doesn‘t support pasting with the toolbar button or context menu option.","pasteArea":"Paste Area","pasteMsg":"Paste your content inside the area below and press OK."},"blockquote":{"toolbar":"Citacion"},"basicstyles":{"bold":"Gras","italic":"Italica","strike":"Raiat","subscript":"Indici","superscript":"Exponent","underline":"Solinhat"},"about":{"copy":"Copyright &copy; $1. Totes los dreits reservats.","dlgTitle":"A prepaus de CKEditor 4","moreInfo":"Per las informacions de licéncia, visitatz nòstre site web :"},"editor":"Editor de tèxte enriquit","editorPanel":"Tablèu de bòrd de l'editor de tèxte enriquit","common":{"editorHelp":"Utilisatz l'acorchi Alt-0 per obténer d'ajuda","browseServer":"Percórrer lo servidor","url":"URL","protocol":"Protocòl","upload":"Mandar","uploadSubmit":"Mandar sul servidor","image":"Imatge","flash":"Flash","form":"Formulari","checkbox":"Casa de marcar","radio":"Boton ràdio","textField":"Camp  tèxte","textarea":"Zòna de tèxte","hiddenField":"Camp invisible","button":"Boton","select":"Lista desenrotlanta","imageButton":"Boton amb imatge","notSet":"<indefinit>","id":"Id","name":"Nom","langDir":"Sens d'escritura","langDirLtr":"Esquèrra a dreita (LTR)","langDirRtl":"Dreita a esquèrra (RTL)","langCode":"Còdi de lenga","longDescr":"URL de descripcion longa","cssClass":"Classas d'estil","advisoryTitle":"Infobulla","cssStyle":"Estil","ok":"D'acòrdi","cancel":"Anullar","close":"Tampar","preview":"Previsualizar","resize":"Redimensionar","generalTab":"General","advancedTab":"Avançat","validateNumberFailed":"Aquesta valor es pas un nombre.","confirmNewPage":"Los cambiaments pas salvats seràn perduts. Sètz segur que volètz cargar una novèla pagina ?","confirmCancel":"Certanas opcions son estadas modificadas. Sètz segur que volètz tampar ?","options":"Opcions","target":"Cibla","targetNew":"Novèla fenèstra (_blank)","targetTop":"Fenèstra superiora (_top)","targetSelf":"Meteissa fenèstra (_self)","targetParent":"Fenèstra parent (_parent)","langDirLTR":"Esquèrra a dreita (LTR)","langDirRTL":"Dreita a esquèrra (RTL)","styles":"Estil","cssClasses":"Classas d'estil","width":"Largor","height":"Nautor","align":"Alinhament","left":"Esquèrra","right":"Dreita","center":"Centrar","justify":"Justificar","alignLeft":"Alinhar a esquèrra","alignRight":"Alinhar a dreita","alignCenter":"Align Center","alignTop":"Naut","alignMiddle":"Mitan","alignBottom":"Bas","alignNone":"Pas cap","invalidValue":"Valor invalida.","invalidHeight":"La nautor deu èsser un nombre.","invalidWidth":"La largor deu èsser un nombre.","invalidLength":"Value specified for the \"%1\" field must be a positive number with or without a valid measurement unit (%2).","invalidCssLength":"La valor especificada pel camp « %1 » deu èsser un nombre positiu amb o sens unitat de mesura CSS valid (px, %, in, cm, mm, em, ex, pt, o pc).","invalidHtmlLength":"La valor especificada pel camp « %1 » deu èsser un nombre positiu amb o sens unitat de mesura HTML valid (px o %).","invalidInlineStyle":"La valor especificada per l'estil en linha deu èsser compausada d'un o mantun parelh al format « nom : valor », separats per de punts-virgulas.","cssLengthTooltip":"Entrar un nombre per una valor en pixèls o un nombre amb una unitat de mesura CSS valida (px, %, in, cm, mm, em, ex, pt, o pc).","unavailable":"%1<span class=\"cke_accessibility\">, indisponible</span>","keyboard":{"8":"Retorn","13":"Entrada","16":"Majuscula","17":"Ctrl","18":"Alt","32":"Espaci","35":"Fin","36":"Origina","46":"Suprimir","112":"F1","113":"F2","114":"F3","115":"F4","116":"F5","117":"F6","118":"F7","119":"F8","120":"F9","121":"F10","122":"F11","123":"F12","124":"F13","125":"F14","126":"F15","127":"F16","128":"F17","129":"F18","130":"F19","131":"F20","132":"F21","133":"F22","134":"F23","135":"F24","224":"Comanda"},"keyboardShortcut":"Acorchi de clavièr","optionDefault":"Default"}};
\ No newline at end of file
diff --git a/web/core/assets/vendor/ckeditor/lang/pl.js b/web/core/assets/vendor/ckeditor/lang/pl.js
index 580dd4cb42..01a9c95001 100644
--- a/web/core/assets/vendor/ckeditor/lang/pl.js
+++ b/web/core/assets/vendor/ckeditor/lang/pl.js
@@ -1,5 +1,5 @@
 /*
-Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2020, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */
 CKEDITOR.lang['pl']={"widget":{"move":"Kliknij i przeciągnij, by przenieść.","label":"Widget %1"},"undo":{"redo":"Ponów","undo":"Cofnij"},"toolbar":{"toolbarCollapse":"Zwiń pasek narzędzi","toolbarExpand":"Rozwiń pasek narzędzi","toolbarGroups":{"document":"Dokument","clipboard":"Schowek/Wstecz","editing":"Edycja","forms":"Formularze","basicstyles":"Style podstawowe","paragraph":"Akapit","links":"Hiperłącza","insert":"Wstawianie","styles":"Style","colors":"Kolory","tools":"Narzędzia"},"toolbars":"Paski narzędzi edytora"},"table":{"border":"Grubość obramowania","caption":"Tytuł","cell":{"menu":"Komórka","insertBefore":"Wstaw komórkę z lewej","insertAfter":"Wstaw komórkę z prawej","deleteCell":"Usuń komórki","merge":"Połącz komórki","mergeRight":"Połącz z komórką z prawej","mergeDown":"Połącz z komórką poniżej","splitHorizontal":"Podziel komórkę poziomo","splitVertical":"Podziel komórkę pionowo","title":"Właściwości komórki","cellType":"Typ komórki","rowSpan":"Scalenie wierszy","colSpan":"Scalenie komórek","wordWrap":"Zawijanie słów","hAlign":"Wyrównanie poziome","vAlign":"Wyrównanie pionowe","alignBaseline":"Linia bazowa","bgColor":"Kolor tła","borderColor":"Kolor obramowania","data":"Dane","header":"Nagłówek","yes":"Tak","no":"Nie","invalidWidth":"Szerokość komórki musi być liczbą.","invalidHeight":"Wysokość komórki musi być liczbą.","invalidRowSpan":"Scalenie wierszy musi być liczbą całkowitą.","invalidColSpan":"Scalenie komórek musi być liczbą całkowitą.","chooseColor":"Wybierz"},"cellPad":"Dopełnienie komórek","cellSpace":"Odstęp pomiędzy komórkami","column":{"menu":"Kolumna","insertBefore":"Wstaw kolumnę z lewej","insertAfter":"Wstaw kolumnę z prawej","deleteColumn":"Usuń kolumny"},"columns":"Liczba kolumn","deleteTable":"Usuń tabelę","headers":"Nagłówki","headersBoth":"Oba","headersColumn":"Pierwsza kolumna","headersNone":"Brak","headersRow":"Pierwszy wiersz","heightUnit":"height unit","invalidBorder":"Wartość obramowania musi być liczbą.","invalidCellPadding":"Dopełnienie komórek musi być liczbą dodatnią.","invalidCellSpacing":"Odstęp pomiędzy komórkami musi być liczbą dodatnią.","invalidCols":"Liczba kolumn musi być większa niż 0.","invalidHeight":"Wysokość tabeli musi być liczbą.","invalidRows":"Liczba wierszy musi być większa niż 0.","invalidWidth":"Szerokość tabeli musi być liczbą.","menu":"Właściwości tabeli","row":{"menu":"Wiersz","insertBefore":"Wstaw wiersz powyżej","insertAfter":"Wstaw wiersz poniżej","deleteRow":"Usuń wiersze"},"rows":"Liczba wierszy","summary":"Podsumowanie","title":"Właściwości tabeli","toolbar":"Tabela","widthPc":"%","widthPx":"piksele","widthUnit":"jednostka szerokości"},"stylescombo":{"label":"Styl","panelTitle":"Style formatujące","panelTitle1":"Style blokowe","panelTitle2":"Style liniowe","panelTitle3":"Style obiektowe"},"specialchar":{"options":"Opcje znaków specjalnych","title":"Wybierz znak specjalny","toolbar":"Wstaw znak specjalny"},"sourcedialog":{"toolbar":"Źródło dokumentu","title":"Źródło dokumentu"},"sourcearea":{"toolbar":"Źródło dokumentu"},"showblocks":{"toolbar":"Pokaż bloki"},"removeformat":{"toolbar":"Usuń formatowanie"},"pastetext":{"button":"Wklej jako czysty tekst","pasteNotification":"Naciśnij %1 by wkleić tekst. Twoja przeglądarka nie obsługuje wklejania za pomocą przycisku paska narzędzi lub opcji menu kontekstowego.","title":"Wklej jako czysty tekst"},"pastefromword":{"confirmCleanup":"Tekst, który chcesz wkleić, prawdopodobnie pochodzi z programu Microsoft Word. Czy chcesz go wyczyścić przed wklejeniem?","error":"Wyczyszczenie wklejonych danych nie było możliwe z powodu wystąpienia błędu.","title":"Wklej z programu MS Word","toolbar":"Wklej z programu MS Word"},"notification":{"closed":"Powiadomienie zostało zamknięte."},"maximize":{"maximize":"Maksymalizuj","minimize":"Minimalizuj"},"magicline":{"title":"Wstaw nowy akapit"},"list":{"bulletedlist":"Lista wypunktowana","numberedlist":"Lista numerowana"},"language":{"button":"Ustaw język","remove":"Usuń język"},"indent":{"indent":"Zwiększ wcięcie","outdent":"Zmniejsz wcięcie"},"image2":{"alt":"Tekst zastępczy","btnUpload":"Wyślij","captioned":"Obrazek z podpisem","captionPlaceholder":"Podpis","infoTab":"Informacje o obrazku","lockRatio":"Zablokuj proporcje","menu":"Właściwości obrazka","pathName":"obrazek","pathNameCaption":"podpis","resetSize":"Przywróć rozmiar","resizer":"Kliknij i przeciągnij, by zmienić rozmiar.","title":"Właściwości obrazka","uploadTab":"Wyślij","urlMissing":"Podaj adres URL obrazka.","altMissing":"Podaj tekst zastępczy obrazka."},"horizontalrule":{"toolbar":"Wstaw poziomą linię"},"format":{"label":"Format","panelTitle":"Format","tag_address":"Adres","tag_div":"Normalny (DIV)","tag_h1":"Nagłówek 1","tag_h2":"Nagłówek 2","tag_h3":"Nagłówek 3","tag_h4":"Nagłówek 4","tag_h5":"Nagłówek 5","tag_h6":"Nagłówek 6","tag_p":"Normalny","tag_pre":"Tekst sformatowany"},"filetools":{"loadError":"Błąd podczas odczytu pliku.","networkError":"W trakcie wysyłania pliku pojawił się błąd sieciowy.","httpError404":"Błąd HTTP w trakcie wysyłania pliku (404: Nie znaleziono pliku).","httpError403":"Błąd HTTP w trakcie wysyłania pliku (403: Zabroniony).","httpError":"Błąd HTTP w trakcie wysyłania pliku (status błędu: %1).","noUrlError":"Nie zdefiniowano adresu URL do przesłania pliku.","responseError":"Niepoprawna odpowiedź serwera."},"elementspath":{"eleLabel":"Ścieżka elementów","eleTitle":"element %1"},"contextmenu":{"options":"Opcje menu kontekstowego"},"clipboard":{"copy":"Kopiuj","copyError":"Ustawienia bezpieczeństwa Twojej przeglądarki nie pozwalają na automatyczne kopiowanie tekstu. Użyj skrótu klawiszowego Ctrl/Cmd+C.","cut":"Wytnij","cutError":"Ustawienia bezpieczeństwa Twojej przeglądarki nie pozwalają na automatyczne wycinanie tekstu. Użyj skrótu klawiszowego Ctrl/Cmd+X.","paste":"Wklej","pasteNotification":"Naciśnij %1 by wkleić tekst. Twoja przeglądarka nie pozwala na wklejanie za pomocą przycisku paska narzędzi lub opcji menu kontekstowego.","pasteArea":"Miejsce do wklejenia treści","pasteMsg":"Wklej treść do obszaru poniżej i naciśnij OK."},"blockquote":{"toolbar":"Cytat"},"basicstyles":{"bold":"Pogrubienie","italic":"Kursywa","strike":"Przekreślenie","subscript":"Indeks dolny","superscript":"Indeks górny","underline":"Podkreślenie"},"about":{"copy":"Copyright &copy; $1. Wszelkie prawa zastrzeżone.","dlgTitle":"Informacje o programie CKEditor 4","moreInfo":"Informacje na temat licencji można znaleźć na naszej stronie:"},"editor":"Edytor tekstu sformatowanego","editorPanel":"Panel edytora tekstu sformatowanego","common":{"editorHelp":"W celu uzyskania pomocy naciśnij ALT 0","browseServer":"Przeglądaj","url":"Adres URL","protocol":"Protokół","upload":"Wyślij","uploadSubmit":"Wyślij","image":"Obrazek","flash":"Flash","form":"Formularz","checkbox":"Pole wyboru (checkbox)","radio":"Przycisk opcji (radio)","textField":"Pole tekstowe","textarea":"Obszar tekstowy","hiddenField":"Pole ukryte","button":"Przycisk","select":"Lista wyboru","imageButton":"Przycisk graficzny","notSet":"<nie ustawiono>","id":"Id","name":"Nazwa","langDir":"Kierunek tekstu","langDirLtr":"Od lewej do prawej (LTR)","langDirRtl":"Od prawej do lewej (RTL)","langCode":"Kod języka","longDescr":"Adres URL długiego opisu","cssClass":"Nazwa klasy CSS","advisoryTitle":"Opis obiektu docelowego","cssStyle":"Styl","ok":"OK","cancel":"Anuluj","close":"Zamknij","preview":"Podgląd","resize":"Przeciągnij, aby zmienić rozmiar","generalTab":"Ogólne","advancedTab":"Zaawansowane","validateNumberFailed":"Ta wartość nie jest liczbą.","confirmNewPage":"Wszystkie niezapisane zmiany zostaną utracone. Czy na pewno wczytać nową stronę?","confirmCancel":"Pewne opcje zostały zmienione. Czy na pewno zamknąć okno dialogowe?","options":"Opcje","target":"Obiekt docelowy","targetNew":"Nowe okno (_blank)","targetTop":"Okno najwyżej w hierarchii (_top)","targetSelf":"To samo okno (_self)","targetParent":"Okno nadrzędne (_parent)","langDirLTR":"Od lewej do prawej (LTR)","langDirRTL":"Od prawej do lewej (RTL)","styles":"Style","cssClasses":"Klasy arkusza stylów","width":"Szerokość","height":"Wysokość","align":"Wyrównaj","left":"Do lewej","right":"Do prawej","center":"Do środka","justify":"Wyjustuj","alignLeft":"Wyrównaj do lewej","alignRight":"Wyrównaj do prawej","alignCenter":"Wyśrodkuj","alignTop":"Do góry","alignMiddle":"Do środka","alignBottom":"Do dołu","alignNone":"Brak","invalidValue":"Nieprawidłowa wartość.","invalidHeight":"Wysokość musi być liczbą.","invalidWidth":"Szerokość musi być liczbą.","invalidLength":"Wartość podana dla pola \"%1\" musi być liczbą dodatnią bez jednostki lub z poprawną jednostką długości (%2).","invalidCssLength":"Wartość podana dla pola \"%1\" musi być liczbą dodatnią bez jednostki lub z poprawną jednostką długości zgodną z CSS (px, %, in, cm, mm, em, ex, pt lub pc).","invalidHtmlLength":"Wartość podana dla pola \"%1\" musi być liczbą dodatnią bez jednostki lub z poprawną jednostką długości zgodną z HTML (px lub %).","invalidInlineStyle":"Wartość podana dla stylu musi składać się z jednej lub większej liczby krotek w formacie \"nazwa : wartość\", rozdzielonych średnikami.","cssLengthTooltip":"Wpisz liczbę dla wartości w pikselach lub liczbę wraz z jednostką długości zgodną z CSS (px, %, in, cm, mm, em, ex, pt lub pc).","unavailable":"%1<span class=\"cke_accessibility\">, niedostępne</span>","keyboard":{"8":"Backspace","13":"Enter","16":"Shift","17":"Ctrl","18":"Alt","32":"spacja","35":"End","36":"Home","46":"Delete","112":"F1","113":"F2","114":"F3","115":"F4","116":"F5","117":"F6","118":"F7","119":"F8","120":"F9","121":"F10","122":"F11","123":"F12","124":"F13","125":"F14","126":"F15","127":"F16","128":"F17","129":"F18","130":"F19","131":"F20","132":"F21","133":"F22","134":"F23","135":"F24","224":"Command"},"keyboardShortcut":"Skrót klawiszowy","optionDefault":"Domyślny"}};
\ No newline at end of file
diff --git a/web/core/assets/vendor/ckeditor/lang/pt-br.js b/web/core/assets/vendor/ckeditor/lang/pt-br.js
index f7b0e8445e..bed125efce 100644
--- a/web/core/assets/vendor/ckeditor/lang/pt-br.js
+++ b/web/core/assets/vendor/ckeditor/lang/pt-br.js
@@ -1,5 +1,5 @@
 /*
-Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2020, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */
-CKEDITOR.lang['pt-br']={"widget":{"move":"Click e arraste para mover","label":"%1 widget"},"undo":{"redo":"Refazer","undo":"Desfazer"},"toolbar":{"toolbarCollapse":"Diminuir Barra de Ferramentas","toolbarExpand":"Aumentar Barra de Ferramentas","toolbarGroups":{"document":"Documento","clipboard":"Clipboard/Desfazer","editing":"Edição","forms":"Formulários","basicstyles":"Estilos Básicos","paragraph":"Paragrafo","links":"Links","insert":"Inserir","styles":"Estilos","colors":"Cores","tools":"Ferramentas"},"toolbars":"Barra de Ferramentas do Editor"},"table":{"border":"Borda","caption":"Legenda","cell":{"menu":"Célula","insertBefore":"Inserir célula a esquerda","insertAfter":"Inserir célula a direita","deleteCell":"Remover Células","merge":"Mesclar Células","mergeRight":"Mesclar com célula a direita","mergeDown":"Mesclar com célula abaixo","splitHorizontal":"Dividir célula horizontalmente","splitVertical":"Dividir célula verticalmente","title":"Propriedades da célula","cellType":"Tipo de célula","rowSpan":"Linhas cobertas","colSpan":"Colunas cobertas","wordWrap":"Quebra de palavra","hAlign":"Alinhamento horizontal","vAlign":"Alinhamento vertical","alignBaseline":"Patamar de alinhamento","bgColor":"Cor de fundo","borderColor":"Cor das bordas","data":"Dados","header":"Cabeçalho","yes":"Sim","no":"Não","invalidWidth":"A largura da célula tem que ser um número.","invalidHeight":"A altura da célula tem que ser um número.","invalidRowSpan":"Linhas cobertas tem que ser um número inteiro.","invalidColSpan":"Colunas cobertas tem que ser um número inteiro.","chooseColor":"Escolher"},"cellPad":"Margem interna","cellSpace":"Espaçamento","column":{"menu":"Coluna","insertBefore":"Inserir coluna a esquerda","insertAfter":"Inserir coluna a direita","deleteColumn":"Remover Colunas"},"columns":"Colunas","deleteTable":"Apagar Tabela","headers":"Cabeçalho","headersBoth":"Ambos","headersColumn":"Primeira coluna","headersNone":"Nenhum","headersRow":"Primeira linha","heightUnit":"height unit","invalidBorder":"O tamanho da borda tem que ser um número.","invalidCellPadding":"A margem interna das células tem que ser um número.","invalidCellSpacing":"O espaçamento das células tem que ser um número.","invalidCols":"O número de colunas tem que ser um número maior que 0.","invalidHeight":"A altura da tabela tem que ser um número.","invalidRows":"O número de linhas tem que ser um número maior que 0.","invalidWidth":"A largura da tabela tem que ser um número.","menu":"Formatar Tabela","row":{"menu":"Linha","insertBefore":"Inserir linha acima","insertAfter":"Inserir linha abaixo","deleteRow":"Remover Linhas"},"rows":"Linhas","summary":"Resumo","title":"Formatar Tabela","toolbar":"Tabela","widthPc":"%","widthPx":"pixels","widthUnit":"unidade largura"},"stylescombo":{"label":"Estilo","panelTitle":"Estilos de Formatação","panelTitle1":"Estilos de bloco","panelTitle2":"Estilos de texto corrido","panelTitle3":"Estilos de objeto"},"specialchar":{"options":"Opções de Caractere Especial","title":"Selecione um Caractere Especial","toolbar":"Inserir Caractere Especial"},"sourcedialog":{"toolbar":"Código-Fonte","title":"Código-Fonte"},"sourcearea":{"toolbar":"Código-Fonte"},"showblocks":{"toolbar":"Mostrar blocos de código"},"removeformat":{"toolbar":"Remover Formatação"},"pastetext":{"button":"Colar como Texto sem Formatação","pasteNotification":"Pressione %1 para colar. Seu navegador não suporta colar a partir do botão da barra de ferramentas ou do menu de contexto.","title":"Colar como Texto sem Formatação"},"pastefromword":{"confirmCleanup":"O texto que você deseja colar parece ter sido copiado do Word. Você gostaria de remover a formatação antes de colar?","error":"Não foi possível limpar os dados colados devido a um erro interno","title":"Colar do Word","toolbar":"Colar do Word"},"notification":{"closed":"Notificação fechada."},"maximize":{"maximize":"Maximizar","minimize":"Minimize"},"magicline":{"title":"Insera um parágrafo aqui"},"list":{"bulletedlist":"Lista sem números","numberedlist":"Lista numerada"},"language":{"button":"Configure o Idioma","remove":"Remover Idioma"},"indent":{"indent":"Aumentar Recuo","outdent":"Diminuir Recuo"},"image2":{"alt":"Texto Alternativo","btnUpload":"Enviar para o Servidor","captioned":"Legenda da Imagem","captionPlaceholder":"Legenda","infoTab":"Informações da Imagem","lockRatio":"Travar Proporções","menu":"Formatar Imagem","pathName":"Imagem","pathNameCaption":"Legenda","resetSize":"Redefinir para o Tamanho Original","resizer":"Click e arraste para redimensionar","title":"Formatar Imagem","uploadTab":"Enviar ao Servidor","urlMissing":"URL da imagem está faltando.","altMissing":"Texto alternativo não informado."},"horizontalrule":{"toolbar":"Inserir Linha Horizontal"},"format":{"label":"Formatação","panelTitle":"Formatação","tag_address":"Endereço","tag_div":"Normal (DIV)","tag_h1":"Título 1","tag_h2":"Título 2","tag_h3":"Título 3","tag_h4":"Título 4","tag_h5":"Título 5","tag_h6":"Título 6","tag_p":"Normal","tag_pre":"Formatado"},"filetools":{"loadError":"Um erro ocorreu durante a leitura do arquivo.","networkError":"Um erro de rede ocorreu durante o envio do arquivo.","httpError404":"Um erro HTTP ocorreu durante o envio do arquivo (404: Arquivo não encontrado).","httpError403":"Um erro HTTP ocorreu durante o envio do arquivo (403: Proibido).","httpError":"Um erro HTTP ocorreu durante o envio do arquivo (status do erro: %1)","noUrlError":"A URL de upload não está definida.","responseError":"Resposta incorreta do servidor."},"elementspath":{"eleLabel":"Caminho dos Elementos","eleTitle":"Elemento %1"},"contextmenu":{"options":"Opções Menu de Contexto"},"clipboard":{"copy":"Copiar","copyError":"As configurações de segurança do seu navegador não permitem que o editor execute operações de copiar automaticamente. Por favor, utilize o teclado para copiar (Ctrl/Cmd+C).","cut":"Recortar","cutError":"As configurações de segurança do seu navegador não permitem que o editor execute operações de recortar automaticamente. Por favor, utilize o teclado para recortar (Ctrl/Cmd+X).","paste":"Colar","pasteNotification":"Press %1 to paste. Your browser doesn‘t support pasting with the toolbar button or context menu option.","pasteArea":"Área para Colar","pasteMsg":"Paste your content inside the area below and press OK."},"blockquote":{"toolbar":"Citação"},"basicstyles":{"bold":"Negrito","italic":"Itálico","strike":"Tachado","subscript":"Subscrito","superscript":"Sobrescrito","underline":"Sublinhado"},"about":{"copy":"Copyright &copy; $1. Todos os direitos reservados.","dlgTitle":"Sobre o CKEditor 4","moreInfo":"Para informações sobre a licença por favor visite o nosso site:"},"editor":"Editor de Rich Text","editorPanel":"Painel do editor de Rich Text","common":{"editorHelp":"Pressione ALT+0 para ajuda","browseServer":"Localizar no Servidor","url":"URL","protocol":"Protocolo","upload":"Enviar ao Servidor","uploadSubmit":"Enviar para o Servidor","image":"Imagem","flash":"Flash","form":"Formulário","checkbox":"Caixa de Seleção","radio":"Botão de Opção","textField":"Caixa de Texto","textarea":"Área de Texto","hiddenField":"Campo Oculto","button":"Botão","select":"Caixa de Listagem","imageButton":"Botão de Imagem","notSet":"<não ajustado>","id":"Id","name":"Nome","langDir":"Direção do idioma","langDirLtr":"Esquerda para Direita (LTR)","langDirRtl":"Direita para Esquerda (RTL)","langCode":"Idioma","longDescr":"Descrição da URL","cssClass":"Classe de CSS","advisoryTitle":"Título","cssStyle":"Estilos","ok":"OK","cancel":"Cancelar","close":"Fechar","preview":"Visualizar","resize":"Arraste para redimensionar","generalTab":"Geral","advancedTab":"Avançado","validateNumberFailed":"Este valor não é um número.","confirmNewPage":"Todas as mudanças não salvas serão perdidas. Tem certeza de que quer abrir uma nova página?","confirmCancel":"Algumas opções foram alteradas. Tem certeza de que quer fechar a caixa de diálogo?","options":"Opções","target":"Destino","targetNew":"Nova Janela (_blank)","targetTop":"Janela de Cima (_top)","targetSelf":"Mesma Janela (_self)","targetParent":"Janela Pai (_parent)","langDirLTR":"Esquerda para Direita (LTR)","langDirRTL":"Direita para Esquerda (RTL)","styles":"Estilo","cssClasses":"Classes","width":"Largura","height":"Altura","align":"Alinhamento","left":"Esquerda","right":"Direita","center":"Centralizado","justify":"Justificar","alignLeft":"Alinhar Esquerda","alignRight":"Alinhar Direita","alignCenter":"Centralizar","alignTop":"Superior","alignMiddle":"Centralizado","alignBottom":"Inferior","alignNone":"Nenhum","invalidValue":"Valor inválido.","invalidHeight":"A altura tem que ser um número","invalidWidth":"A largura tem que ser um número.","invalidLength":"Valor especifico para o campo \"%1\" deve ser um número positivo com ou sem uma unidade mensurável (%2) válida.","invalidCssLength":"O valor do campo \"%1\" deve ser um número positivo opcionalmente seguido por uma válida unidade de medida de CSS (px, %, in, cm, mm, em, ex, pt ou pc).","invalidHtmlLength":"O valor do campo \"%1\" deve ser um número positivo opcionalmente seguido por uma válida unidade de medida de HTML (px ou %).","invalidInlineStyle":"O valor válido para estilo deve conter uma ou mais tuplas no formato \"nome : valor\", separados por ponto e vírgula.","cssLengthTooltip":"Insira um número para valor em pixels ou um número seguido de uma válida unidade de medida de CSS (px, %, in, cm, mm, em, ex, pt ou pc).","unavailable":"%1<span class=\"cke_accessibility\">, indisponível</span>","keyboard":{"8":"Tecla Retroceder","13":"Enter","16":"Shift","17":"Ctrl","18":"Alt","32":"Tecla Espaço","35":"End","36":"Home","46":"Delete","112":"F1","113":"F2","114":"F3","115":"F4","116":"F5","117":"F6","118":"F7","119":"F8","120":"F9","121":"F10","122":"F11","123":"F12","124":"F13","125":"F14","126":"F15","127":"F16","128":"F17","129":"F18","130":"F19","131":"F20","132":"F21","133":"F22","134":"F23","135":"F24","224":"Comando"},"keyboardShortcut":"Atalho do teclado","optionDefault":"Padrão"}};
\ No newline at end of file
+CKEDITOR.lang['pt-br']={"widget":{"move":"Click e arraste para mover","label":"%1 widget"},"undo":{"redo":"Refazer","undo":"Desfazer"},"toolbar":{"toolbarCollapse":"Diminuir Barra de Ferramentas","toolbarExpand":"Aumentar Barra de Ferramentas","toolbarGroups":{"document":"Documento","clipboard":"Clipboard/Desfazer","editing":"Edição","forms":"Formulários","basicstyles":"Estilos Básicos","paragraph":"Paragrafo","links":"Links","insert":"Inserir","styles":"Estilos","colors":"Cores","tools":"Ferramentas"},"toolbars":"Barra de Ferramentas do Editor"},"table":{"border":"Borda","caption":"Legenda","cell":{"menu":"Célula","insertBefore":"Inserir célula a esquerda","insertAfter":"Inserir célula a direita","deleteCell":"Remover Células","merge":"Mesclar Células","mergeRight":"Mesclar com célula a direita","mergeDown":"Mesclar com célula abaixo","splitHorizontal":"Dividir célula horizontalmente","splitVertical":"Dividir célula verticalmente","title":"Propriedades da célula","cellType":"Tipo de célula","rowSpan":"Linhas cobertas","colSpan":"Colunas cobertas","wordWrap":"Quebra de palavra","hAlign":"Alinhamento horizontal","vAlign":"Alinhamento vertical","alignBaseline":"Patamar de alinhamento","bgColor":"Cor de fundo","borderColor":"Cor das bordas","data":"Dados","header":"Cabeçalho","yes":"Sim","no":"Não","invalidWidth":"A largura da célula tem que ser um número.","invalidHeight":"A altura da célula tem que ser um número.","invalidRowSpan":"Linhas cobertas tem que ser um número inteiro.","invalidColSpan":"Colunas cobertas tem que ser um número inteiro.","chooseColor":"Escolher"},"cellPad":"Margem interna","cellSpace":"Espaçamento","column":{"menu":"Coluna","insertBefore":"Inserir coluna a esquerda","insertAfter":"Inserir coluna a direita","deleteColumn":"Remover Colunas"},"columns":"Colunas","deleteTable":"Apagar Tabela","headers":"Cabeçalho","headersBoth":"Ambos","headersColumn":"Primeira coluna","headersNone":"Nenhum","headersRow":"Primeira linha","heightUnit":"height unit","invalidBorder":"O tamanho da borda tem que ser um número.","invalidCellPadding":"A margem interna das células tem que ser um número.","invalidCellSpacing":"O espaçamento das células tem que ser um número.","invalidCols":"O número de colunas tem que ser um número maior que 0.","invalidHeight":"A altura da tabela tem que ser um número.","invalidRows":"O número de linhas tem que ser um número maior que 0.","invalidWidth":"A largura da tabela tem que ser um número.","menu":"Formatar Tabela","row":{"menu":"Linha","insertBefore":"Inserir linha acima","insertAfter":"Inserir linha abaixo","deleteRow":"Remover Linhas"},"rows":"Linhas","summary":"Resumo","title":"Formatar Tabela","toolbar":"Tabela","widthPc":"%","widthPx":"pixels","widthUnit":"unidade largura"},"stylescombo":{"label":"Estilo","panelTitle":"Estilos de Formatação","panelTitle1":"Estilos de bloco","panelTitle2":"Estilos de texto corrido","panelTitle3":"Estilos de objeto"},"specialchar":{"options":"Opções de Caractere Especial","title":"Selecione um Caractere Especial","toolbar":"Inserir Caractere Especial"},"sourcedialog":{"toolbar":"Código-Fonte","title":"Código-Fonte"},"sourcearea":{"toolbar":"Código-Fonte"},"showblocks":{"toolbar":"Mostrar blocos de código"},"removeformat":{"toolbar":"Remover Formatação"},"pastetext":{"button":"Colar como Texto sem Formatação","pasteNotification":"Pressione %1 para colar. Seu navegador não suporta colar a partir do botão da barra de ferramentas ou do menu de contexto.","title":"Colar como Texto sem Formatação"},"pastefromword":{"confirmCleanup":"O texto que você deseja colar parece ter sido copiado do Word. Você gostaria de remover a formatação antes de colar?","error":"Não foi possível limpar os dados colados devido a um erro interno","title":"Colar do Word","toolbar":"Colar do Word"},"notification":{"closed":"Notificação fechada."},"maximize":{"maximize":"Maximizar","minimize":"Minimize"},"magicline":{"title":"Insera um parágrafo aqui"},"list":{"bulletedlist":"Lista sem números","numberedlist":"Lista numerada"},"language":{"button":"Configure o Idioma","remove":"Remover Idioma"},"indent":{"indent":"Aumentar Recuo","outdent":"Diminuir Recuo"},"image2":{"alt":"Texto Alternativo","btnUpload":"Enviar para o Servidor","captioned":"Legenda da Imagem","captionPlaceholder":"Legenda","infoTab":"Informações da Imagem","lockRatio":"Travar Proporções","menu":"Formatar Imagem","pathName":"Imagem","pathNameCaption":"Legenda","resetSize":"Redefinir para o Tamanho Original","resizer":"Click e arraste para redimensionar","title":"Formatar Imagem","uploadTab":"Enviar ao Servidor","urlMissing":"URL da imagem está faltando.","altMissing":"Texto alternativo não informado."},"horizontalrule":{"toolbar":"Inserir Linha Horizontal"},"format":{"label":"Formatação","panelTitle":"Formatação","tag_address":"Endereço","tag_div":"Normal (DIV)","tag_h1":"Título 1","tag_h2":"Título 2","tag_h3":"Título 3","tag_h4":"Título 4","tag_h5":"Título 5","tag_h6":"Título 6","tag_p":"Normal","tag_pre":"Formatado"},"filetools":{"loadError":"Um erro ocorreu durante a leitura do arquivo.","networkError":"Um erro de rede ocorreu durante o envio do arquivo.","httpError404":"Um erro HTTP ocorreu durante o envio do arquivo (404: Arquivo não encontrado).","httpError403":"Um erro HTTP ocorreu durante o envio do arquivo (403: Proibido).","httpError":"Um erro HTTP ocorreu durante o envio do arquivo (status do erro: %1)","noUrlError":"A URL de upload não está definida.","responseError":"Resposta incorreta do servidor."},"elementspath":{"eleLabel":"Caminho dos Elementos","eleTitle":"Elemento %1"},"contextmenu":{"options":"Opções Menu de Contexto"},"clipboard":{"copy":"Copiar","copyError":"As configurações de segurança do seu navegador não permitem que o editor execute operações de copiar automaticamente. Por favor, utilize o teclado para copiar (Ctrl/Cmd+C).","cut":"Recortar","cutError":"As configurações de segurança do seu navegador não permitem que o editor execute operações de recortar automaticamente. Por favor, utilize o teclado para recortar (Ctrl/Cmd+X).","paste":"Colar","pasteNotification":"Pressione %1 para colar. Seu navegador não permite colar pelos botões da barra de tarefas ou pelo menu de contexto.","pasteArea":"Área para Colar","pasteMsg":"Cole o conteúdo na área abaixo e pressione OK."},"blockquote":{"toolbar":"Citação"},"basicstyles":{"bold":"Negrito","italic":"Itálico","strike":"Tachado","subscript":"Subscrito","superscript":"Sobrescrito","underline":"Sublinhado"},"about":{"copy":"Copyright &copy; $1. Todos os direitos reservados.","dlgTitle":"Sobre o CKEditor 4","moreInfo":"Para informações sobre a licença por favor visite o nosso site:"},"editor":"Editor de Rich Text","editorPanel":"Painel do editor de Rich Text","common":{"editorHelp":"Pressione ALT+0 para ajuda","browseServer":"Localizar no Servidor","url":"URL","protocol":"Protocolo","upload":"Enviar ao Servidor","uploadSubmit":"Enviar para o Servidor","image":"Imagem","flash":"Flash","form":"Formulário","checkbox":"Caixa de Seleção","radio":"Botão de Opção","textField":"Caixa de Texto","textarea":"Área de Texto","hiddenField":"Campo Oculto","button":"Botão","select":"Caixa de Listagem","imageButton":"Botão de Imagem","notSet":"<não ajustado>","id":"Id","name":"Nome","langDir":"Direção do idioma","langDirLtr":"Esquerda para Direita (LTR)","langDirRtl":"Direita para Esquerda (RTL)","langCode":"Idioma","longDescr":"Descrição da URL","cssClass":"Classe de CSS","advisoryTitle":"Título","cssStyle":"Estilos","ok":"OK","cancel":"Cancelar","close":"Fechar","preview":"Visualizar","resize":"Arraste para redimensionar","generalTab":"Geral","advancedTab":"Avançado","validateNumberFailed":"Este valor não é um número.","confirmNewPage":"Todas as mudanças não salvas serão perdidas. Tem certeza de que quer abrir uma nova página?","confirmCancel":"Algumas opções foram alteradas. Tem certeza de que quer fechar a caixa de diálogo?","options":"Opções","target":"Destino","targetNew":"Nova Janela (_blank)","targetTop":"Janela de Cima (_top)","targetSelf":"Mesma Janela (_self)","targetParent":"Janela Pai (_parent)","langDirLTR":"Esquerda para Direita (LTR)","langDirRTL":"Direita para Esquerda (RTL)","styles":"Estilo","cssClasses":"Classes","width":"Largura","height":"Altura","align":"Alinhamento","left":"Esquerda","right":"Direita","center":"Centralizado","justify":"Justificar","alignLeft":"Alinhar Esquerda","alignRight":"Alinhar Direita","alignCenter":"Centralizar","alignTop":"Superior","alignMiddle":"Centralizado","alignBottom":"Inferior","alignNone":"Nenhum","invalidValue":"Valor inválido.","invalidHeight":"A altura tem que ser um número","invalidWidth":"A largura tem que ser um número.","invalidLength":"Valor especifico para o campo \"%1\" deve ser um número positivo com ou sem uma unidade mensurável (%2) válida.","invalidCssLength":"O valor do campo \"%1\" deve ser um número positivo opcionalmente seguido por uma válida unidade de medida de CSS (px, %, in, cm, mm, em, ex, pt ou pc).","invalidHtmlLength":"O valor do campo \"%1\" deve ser um número positivo opcionalmente seguido por uma válida unidade de medida de HTML (px ou %).","invalidInlineStyle":"O valor válido para estilo deve conter uma ou mais tuplas no formato \"nome : valor\", separados por ponto e vírgula.","cssLengthTooltip":"Insira um número para valor em pixels ou um número seguido de uma válida unidade de medida de CSS (px, %, in, cm, mm, em, ex, pt ou pc).","unavailable":"%1<span class=\"cke_accessibility\">, indisponível</span>","keyboard":{"8":"Tecla Retroceder","13":"Enter","16":"Shift","17":"Ctrl","18":"Alt","32":"Tecla Espaço","35":"End","36":"Home","46":"Delete","112":"F1","113":"F2","114":"F3","115":"F4","116":"F5","117":"F6","118":"F7","119":"F8","120":"F9","121":"F10","122":"F11","123":"F12","124":"F13","125":"F14","126":"F15","127":"F16","128":"F17","129":"F18","130":"F19","131":"F20","132":"F21","133":"F22","134":"F23","135":"F24","224":"Comando"},"keyboardShortcut":"Atalho do teclado","optionDefault":"Padrão"}};
\ No newline at end of file
diff --git a/web/core/assets/vendor/ckeditor/lang/pt.js b/web/core/assets/vendor/ckeditor/lang/pt.js
index 69f760af84..e928d0baa6 100644
--- a/web/core/assets/vendor/ckeditor/lang/pt.js
+++ b/web/core/assets/vendor/ckeditor/lang/pt.js
@@ -1,5 +1,5 @@
 /*
-Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2020, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */
 CKEDITOR.lang['pt']={"widget":{"move":"Clique e arraste para mover","label":"%1 widget"},"undo":{"redo":"Refazer","undo":"Anular"},"toolbar":{"toolbarCollapse":"Ocultar barra de ferramentas","toolbarExpand":"Expandir barra de ferramentas","toolbarGroups":{"document":"Documento","clipboard":"Área de transferência/Anular","editing":"Edição","forms":"Formulários","basicstyles":"Estilos básicos","paragraph":"Parágrafo","links":"Hiperligações","insert":"Inserir","styles":"Estilos","colors":"Cores","tools":"Ferramentas"},"toolbars":"Editor de barras de ferramentas"},"table":{"border":"Tamanho do contorno","caption":"Legenda","cell":{"menu":"Célula","insertBefore":"Inserir célula antes","insertAfter":"Inserir célula depois","deleteCell":"Apagar células","merge":"Unir células","mergeRight":"Unir à direita","mergeDown":"Fundir abaixo","splitHorizontal":"Dividir célula horizontalmente","splitVertical":"Dividir célula verticalmente","title":"Propriedades da célula","cellType":"Tipo de célula","rowSpan":"Linhas na célula","colSpan":"Colunas na célula","wordWrap":"Moldar texto","hAlign":"Alinhamento horizontal","vAlign":"Alinhamento vertical","alignBaseline":"Linha base","bgColor":"Cor de fundo","borderColor":"Cor da margem","data":"Dados","header":"Cabeçalho","yes":"Sim","no":"Não","invalidWidth":"A largura da célula deve ser um número.","invalidHeight":"A altura da célula deve ser um número.","invalidRowSpan":"As linhas da célula devem ser um número inteiro.","invalidColSpan":"As colunas da célula devem ter um número inteiro.","chooseColor":"Escolher"},"cellPad":"Espaço interior","cellSpace":"Espaçamento de célula","column":{"menu":"Coluna","insertBefore":"Inserir coluna antes","insertAfter":"Inserir coluna depois","deleteColumn":"Apagar colunas"},"columns":"Colunas","deleteTable":"Apagar tabela","headers":"Cabeçalhos","headersBoth":"Ambos","headersColumn":"Primeira coluna","headersNone":"Nenhum","headersRow":"Primeira linha","heightUnit":"height unit","invalidBorder":"O tamanho da margem tem de ser um número.","invalidCellPadding":"A criação do espaço na célula deve ser um número positivo.","invalidCellSpacing":"O espaçamento da célula deve ser um número positivo.","invalidCols":"O número de colunas tem de ser um número maior que 0.","invalidHeight":"A altura da tabela tem de ser um número.","invalidRows":"O número de linhas tem de ser maior que 0.","invalidWidth":"A largura da tabela tem de ser um número.","menu":"Propriedades da tabela","row":{"menu":"Linha","insertBefore":"Inserir linha antes","insertAfter":"Inserir linha depois","deleteRow":"Apagar linhas"},"rows":"Linhas","summary":"Resumo","title":"Propriedades da tabela","toolbar":"Tabela","widthPc":"percentagem","widthPx":"píxeis","widthUnit":"unidade da largura"},"stylescombo":{"label":"Estilos","panelTitle":"Estilos de formatação","panelTitle1":"Estilos de bloco","panelTitle2":"Estilos nas etiquetas","panelTitle3":"Estilos em objeto"},"specialchar":{"options":"Opções de caracteres especiais","title":"Selecione um caracter especial","toolbar":"Inserir carácter especial"},"sourcedialog":{"toolbar":"Fonte","title":"Fonte"},"sourcearea":{"toolbar":"Fonte"},"showblocks":{"toolbar":"Exibir blocos"},"removeformat":{"toolbar":"Limpar formatação"},"pastetext":{"button":"Colar como texto simples","pasteNotification":"Press %1 to paste. Your browser doesn‘t support pasting with the toolbar button or context menu option.","title":"Colar como texto simples"},"pastefromword":{"confirmCleanup":"O texto que pretende colar parece ter sido copiado do Word. Deseja limpar o código antes de o colar?","error":"Não foi possível limpar a informação colada devido a um erro interno.","title":"Colar do Word","toolbar":"Colar do Word"},"notification":{"closed":"Notificação encerrada."},"maximize":{"maximize":"Maximizar","minimize":"Minimizar"},"magicline":{"title":"Inserir parágrafo aqui"},"list":{"bulletedlist":"Marcas","numberedlist":"Numeração"},"language":{"button":"Definir Idioma","remove":"Remover idioma"},"indent":{"indent":"Aumentar avanço","outdent":"Diminuir avanço"},"image2":{"alt":"Texto alternativo","btnUpload":"Enviar para o servidor","captioned":"Imagem legendada","captionPlaceholder":"Legenda","infoTab":"Informação da imagem","lockRatio":"Proporcional","menu":"Propriedades da imagem","pathName":"imagem","pathNameCaption":"legenda","resetSize":"Tamanho original","resizer":"Clique e arraste para redimensionar","title":"Propriedades da imagem","uploadTab":"Carregar","urlMissing":"O URL de origem da imagem está em falta.","altMissing":"Texto alternativo em falta."},"horizontalrule":{"toolbar":"Inserir linha horizontal"},"format":{"label":"Formatar","panelTitle":"Formatar Parágrafo","tag_address":"Endereço","tag_div":"Normal (DIV)","tag_h1":"Título 1","tag_h2":"Título 2","tag_h3":"Título 3","tag_h4":"Título 4","tag_h5":"Título 5","tag_h6":"Título 6","tag_p":"Normal","tag_pre":"Formatado"},"filetools":{"loadError":"Ocorreu um erro ao ler o ficheiro","networkError":"Ocorreu um erro de rede ao carregar o ficheiro.","httpError404":"HTTP error occurred during file upload (404: File not found).","httpError403":"HTTP error occurred during file upload (403: Forbidden).","httpError":"HTTP error occurred during file upload (error status: %1).","noUrlError":"Upload URL is not defined.","responseError":"Incorrect server response."},"elementspath":{"eleLabel":"Caminho dos elementos","eleTitle":"Elemento %1"},"contextmenu":{"options":"Menu de opções de contexto"},"clipboard":{"copy":"Copiar","copyError":"A configuração de segurança do navegador não permite a execução automática de operações de copiar. Por favor use o teclado (Ctrl/Cmd+C).","cut":"Cortar","cutError":"A configuração de segurança do navegador não permite a execução automática de operações de cortar. Por favor use o teclado (Ctrl/Cmd+X).","paste":"Colar","pasteNotification":"Press %1 to paste. Your browser doesn‘t support pasting with the toolbar button or context menu option.","pasteArea":"Área de colagem","pasteMsg":"Paste your content inside the area below and press OK."},"blockquote":{"toolbar":"Bloco de citação"},"basicstyles":{"bold":"Negrito","italic":"Itálico","strike":"Rasurado","subscript":"Superior à linha","superscript":"Superior à linha","underline":"Sublinhado"},"about":{"copy":"Direitos de Autor &copy; $1. Todos os direitos reservados.","dlgTitle":"Sobre o CKEditor 4","moreInfo":"Para informação sobre licenciamento visite o nosso sítio web:"},"editor":"Editor de texto enriquecido","editorPanel":"Painel do editor de texto enriquecido","common":{"editorHelp":"Pressione ALT+0 para ajuda","browseServer":"Navegar no servidor","url":"URL","protocol":"Protocolo","upload":"Carregar","uploadSubmit":"Enviar para o servidor","image":"Imagem","flash":"Flash","form":"Formulário","checkbox":"Caixa de verificação","radio":"Botão","textField":"Campo de texto","textarea":"Área de texto","hiddenField":"Campo oculto","button":"Botão","select":"Campo de seleção","imageButton":"Botão da imagem","notSet":"<Não definido>","id":"ID","name":"Nome","langDir":"Direção do idioma","langDirLtr":"Esquerda para a Direita (EPD)","langDirRtl":"Direita para a Esquerda (DPE)","langCode":"Código do idioma","longDescr":"Descrição completa do URL","cssClass":"Classes de estilo das folhas","advisoryTitle":"Título consultivo","cssStyle":"Estilo","ok":"CONFIRMAR","cancel":"Cancelar","close":"Fechar","preview":"Pré-visualização","resize":"Redimensionar","generalTab":"Geral","advancedTab":"Avançado","validateNumberFailed":"Este valor não é um numero.","confirmNewPage":"Irão ser perdidas quaisquer alterações não guardadas. Tem a certeza que deseja carregar a nova página?","confirmCancel":"Foram alteradas algumas das opções. Tem a certeza que deseja fechar a janela?","options":"Opções","target":"Destino","targetNew":"Nova janela (_blank)","targetTop":"Janela superior (_top)","targetSelf":"Mesma janela (_self)","targetParent":"Janela dependente (_parent)","langDirLTR":"Esquerda para a Direita (EPD)","langDirRTL":"Direita para a Esquerda (DPE)","styles":"Estilo","cssClasses":"Classes de folhas de estilo","width":"Largura","height":"Altura","align":"Alinhamento","left":"Esquerda","right":"Direita","center":"Centrado","justify":"Justificado","alignLeft":"Alinhar à esquerda","alignRight":"Alinhar à direita","alignCenter":"Centrado","alignTop":"Topo","alignMiddle":"Meio","alignBottom":"Base","alignNone":"Nenhum","invalidValue":"Valor inválido.","invalidHeight":"A altura deve ser um número.","invalidWidth":"A largura deve ser um número. ","invalidLength":"Value specified for the \"%1\" field must be a positive number with or without a valid measurement unit (%2).","invalidCssLength":"O valor especificado para o campo \"1%\" deve ser um número positivo, com ou sem uma unidade de medida CSS válida (px, %, in, cm, mm, em, ex, pt, ou pc).","invalidHtmlLength":"O valor especificado para o campo \"1%\" deve ser um número positivo, com ou sem uma unidade de medida HTML válida (px ou %).","invalidInlineStyle":"O valor especificado para o estilo em linha deve constituir um ou mais conjuntos de valores com o formato de \"nome : valor\", separados por ponto e vírgula.","cssLengthTooltip":"Insira um número para um valor em píxeis ou um número com uma unidade CSS válida (px, %, in, cm, mm, em, ex, pt, ou pc).","unavailable":"%1<span class=\"cke_accessibility\">, indisponível</span>","keyboard":{"8":"Backspace","13":"Enter","16":"Shift","17":"Ctrl","18":"Alt","32":"Espaço","35":"Fim","36":"Entrada","46":"Eliminar","112":"F1","113":"F2","114":"F3","115":"F4","116":"F5","117":"F6","118":"F7","119":"F8","120":"F9","121":"F10","122":"F11","123":"F12","124":"F13","125":"F14","126":"F15","127":"F16","128":"F17","129":"F18","130":"F19","131":"F20","132":"F21","133":"F22","134":"F23","135":"F24","224":"Comando"},"keyboardShortcut":"Keyboard shortcut","optionDefault":"Padrão"}};
\ No newline at end of file
diff --git a/web/core/assets/vendor/ckeditor/lang/ro.js b/web/core/assets/vendor/ckeditor/lang/ro.js
index 7c38515742..695ea26c6f 100644
--- a/web/core/assets/vendor/ckeditor/lang/ro.js
+++ b/web/core/assets/vendor/ckeditor/lang/ro.js
@@ -1,5 +1,5 @@
 /*
-Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2020, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */
 CKEDITOR.lang['ro']={"widget":{"move":"Apasă și trage pentru a muta","label":"%1 widget"},"undo":{"redo":"Starea ulterioară (redo)","undo":"Starea anterioară (undo)"},"toolbar":{"toolbarCollapse":"Micșorează Bara","toolbarExpand":"Mărește Bara","toolbarGroups":{"document":"Document","clipboard":"Clipboard/Undo","editing":"Editing","forms":"Forms","basicstyles":"Basic Styles","paragraph":"Paragraph","links":"Links","insert":"Insert","styles":"Styles","colors":"Colors","tools":"Tools"},"toolbars":"Editează bara de unelte"},"table":{"border":"Mărimea marginii","caption":"Titlu (Caption)","cell":{"menu":"Celulă","insertBefore":"Inserează celulă înainte","insertAfter":"Inserează celulă după","deleteCell":"Şterge celule","merge":"Uneşte celule","mergeRight":"Uneşte la dreapta","mergeDown":"Uneşte jos","splitHorizontal":"Împarte celula pe orizontală","splitVertical":"Împarte celula pe verticală","title":"Proprietăți celulă","cellType":"Tipul celulei","rowSpan":"Rows Span","colSpan":"Columns Span","wordWrap":"Word Wrap","hAlign":"Aliniament orizontal","vAlign":"Aliniament vertical","alignBaseline":"Baseline","bgColor":"Culoare fundal","borderColor":"Culoare bordură","data":"Data","header":"Antet","yes":"Da","no":"Nu","invalidWidth":"Lățimea celulei trebuie să fie un număr.","invalidHeight":"Înălțimea celulei trebuie să fie un număr.","invalidRowSpan":"Rows span must be a whole number.","invalidColSpan":"Columns span must be a whole number.","chooseColor":"Alege"},"cellPad":"Spaţiu în cadrul celulei","cellSpace":"Spaţiu între celule","column":{"menu":"Coloană","insertBefore":"Inserează coloană înainte","insertAfter":"Inserează coloană după","deleteColumn":"Şterge celule"},"columns":"Coloane","deleteTable":"Şterge tabel","headers":"Antente","headersBoth":"Ambele","headersColumn":"Prima coloană","headersNone":"Nimic","headersRow":"Primul rând","heightUnit":"height unit","invalidBorder":"Dimensiunea bordurii trebuie să aibe un număr.","invalidCellPadding":"Spațierea celulei trebuie sa fie un număr pozitiv","invalidCellSpacing":"Spațierea celului trebuie să fie un număr pozitiv.","invalidCols":"Numărul coloanelor trebuie să fie mai mare decât 0.","invalidHeight":"Inaltimea celulei trebuie sa fie un numar.","invalidRows":"Numărul rândurilor trebuie să fie mai mare decât 0.","invalidWidth":"Lățimea tabelului trebuie să fie un număr.","menu":"Proprietăţile tabelului","row":{"menu":"Rând","insertBefore":"Inserează rând înainte","insertAfter":"Inserează rând după","deleteRow":"Şterge rânduri"},"rows":"Rânduri","summary":"Rezumat","title":"Proprietăţile tabelului","toolbar":"Tabel","widthPc":"procente","widthPx":"pixeli","widthUnit":"unitate lățime"},"stylescombo":{"label":"Stil","panelTitle":"Formatare stilurilor","panelTitle1":"Bloc stiluri","panelTitle2":"Stiluri înșiruite","panelTitle3":"Stiluri obiect"},"specialchar":{"options":"Opțiuni caractere speciale","title":"Selectează caracter special","toolbar":"Inserează caracter special"},"sourcedialog":{"toolbar":"Sursa","title":"Sursa"},"sourcearea":{"toolbar":"Sursa"},"showblocks":{"toolbar":"Arată blocurile"},"removeformat":{"toolbar":"Înlătură formatarea"},"pastetext":{"button":"Adaugă ca text simplu (Plain Text)","pasteNotification":"Press %1 to paste. Your browser doesn‘t support pasting with the toolbar button or context menu option.","title":"Adaugă ca text simplu (Plain Text)"},"pastefromword":{"confirmCleanup":"Textul pe care doriți să-l lipiți este din Word. Doriți curățarea textului înante de a-l adăuga?","error":"Nu a fost posibilă curățarea datelor adăugate datorită unei erori interne","title":"Adaugă din Word","toolbar":"Adaugă din Word"},"notification":{"closed":"Notificare închisă."},"maximize":{"maximize":"Mărește","minimize":"Micșorează"},"magicline":{"title":"Inserează paragraf aici"},"list":{"bulletedlist":"Inserează / Elimină Listă cu puncte","numberedlist":"Inserează / Elimină Listă numerotată"},"language":{"button":"Alege limba","remove":"Șterge limba deja selectată"},"indent":{"indent":"Creşte indentarea","outdent":"Scade indentarea"},"image2":{"alt":"Text alternativ","btnUpload":"Încarcă pe server","captioned":"Descris","captionPlaceholder":"Descriere implicită","infoTab":"Informaţii despre imagine","lockRatio":"Păstrează proporţiile","menu":"Proprietăţile imaginii","pathName":"Adresa căii","pathNameCaption":"Descrierea numelui căii","resetSize":"Resetează mărimea","resizer":"Redimensionare dinamică","title":"Proprietăţile imaginii","uploadTab":"Încarcă","urlMissing":"Sursa URL a imaginii lipsește.","altMissing":"Textul alternativ descriptive lipsește!"},"horizontalrule":{"toolbar":"Inserează linie orizontală"},"format":{"label":"Formatare","panelTitle":"Formatare","tag_address":"Adresă","tag_div":"Normal (DIV)","tag_h1":"Heading 1","tag_h2":"Heading 2","tag_h3":"Heading 3","tag_h4":"Heading 4","tag_h5":"Heading 5","tag_h6":"Heading 6","tag_p":"Normal","tag_pre":"Formatat"},"filetools":{"loadError":"Eroare în timpul citirii fișierului.","networkError":"Eroare de rețea în timpul încărcării fișierului.","httpError404":"Eroare HTTP în timpul încărcării fișierului (404: Fișier negăsit).","httpError403":"Eroare HTTP în timpul încărcării fișierului (403: Operașie nepermisă).","httpError":"Eroare HTTP în timpul încărcării fișierului (stare eroiare: %1).","noUrlError":"URL-ul de ăncărcare nu este specificat.","responseError":"Răspuns server incorect."},"elementspath":{"eleLabel":"Calea elementelor","eleTitle":"Nume element"},"contextmenu":{"options":"Opțiuni Meniu Contextual"},"clipboard":{"copy":"Copiază","copyError":"Setările de securitate ale navigatorului (browser) pe care îl folosiţi nu permit editorului să execute automat operaţiunea de copiere. Vă rugăm folosiţi tastatura (Ctrl/Cmd+C).","cut":"Tăiere","cutError":"Setările de securitate ale navigatorului (browser) pe care îl folosiţi nu permit editorului să execute automat operaţiunea de tăiere. Vă rugăm folosiţi tastatura (Ctrl/Cmd+X).","paste":"Adaugă","pasteNotification":"Apasă %1 pentru adăugare. Navigatorul (browser) tău nu suportă adăugarea din clipboard cu butonul din toolbar sau cu opțiunea din meniul contextual.","pasteArea":"Suprafața de adăugare","pasteMsg":"Adaugă conținutul tău înăuntru zonei de mai jos și apasă OK."},"blockquote":{"toolbar":"Citat"},"basicstyles":{"bold":"Îngroşat (bold)","italic":"Înclinat (italic)","strike":"Tăiat (strike through)","subscript":"Indice (subscript)","superscript":"Putere (superscript)","underline":"Subliniat (underline)"},"about":{"copy":"Copyright &copy; $1. Toate drepturile rezervate.","dlgTitle":"Despre CKEeditor 4","moreInfo":"Pentru informații despre licențiere, vă rugăm vizitați web site-ul nostru:"},"editor":"Editor de text îmbogățit","editorPanel":"Panoul editorului de text îmbogățit","common":{"editorHelp":"Apasă ALT 0 pentru ajutor","browseServer":"Răsfoiește fișiere","url":"URL","protocol":"Protocol","upload":"Încarcă","uploadSubmit":"Trimite la server","image":"Imagine","flash":"Flash","form":"Formular (Form)","checkbox":"Bifă (Checkbox)","radio":"Buton radio (RadioButton)","textField":"Câmp text (TextField)","textarea":"Suprafaţă text (Textarea)","hiddenField":"Câmp ascuns (HiddenField)","button":"Buton","select":"Câmp selecţie (SelectionField)","imageButton":"Buton imagine (ImageButton)","notSet":"fără setări","id":"identificator","name":"Nume","langDir":"Direcţia cuvintelor","langDirLtr":"de la stânga la dreapta (LTR)","langDirRtl":"de la dreapta la stânga (RTL)","langCode":"Codul limbii","longDescr":"Descrierea completă URL","cssClass":"Clasele cu stilul paginii (CSS)","advisoryTitle":"Titlul consultativ","cssStyle":"Stil","ok":"OK","cancel":"Anulare","close":"Închide","preview":"Previzualizare","resize":"Redimensionează","generalTab":"General","advancedTab":"Avansat","validateNumberFailed":"Această valoare nu este un număr!","confirmNewPage":"Orice modificări nesalvate ale acestui conținut, vor fi pierdute. Sigur doriți încărcarea unei noi pagini?","confirmCancel":"Ai schimbat câteva opțiuni. Ești sigur că dorești să închiz fereastra de dialog?","options":"Opțiuni","target":"Țintă","targetNew":"Fereastră nouă (_blank)","targetTop":"Topmost Window (_top)","targetSelf":"În aceeași fereastră (_self)","targetParent":"Parent Window (_parent)","langDirLTR":"Stânga spre Dreapta (LTR)","langDirRTL":"Dreapta spre Stânga (RTL)","styles":"Stil","cssClasses":"Clase foaie de stil","width":"Lăţime","height":"Înălţime","align":"Aliniere","left":"Aliniază la stânga","right":"Aliniază la dreapta","center":"Aliniază pe centru","justify":"Aliniere în bloc (Justify)","alignLeft":"Aliniere la stânga","alignRight":"Aliniere la dreapta","alignCenter":"Aliniere centru","alignTop":"Aliniere sus","alignMiddle":"Aliniere la mijloc","alignBottom":"Aliniere jos","alignNone":"Fără aliniere","invalidValue":"Valoare invalidă","invalidHeight":"Înălțimea trebuie să fie un număr.","invalidWidth":"Lățimea trebuie să fie un număr.","invalidLength":"Valoarea specificată pentru câmpul \"%1\" trebuie să fie un număr pozitiv cu sau fără o unitate de măsură validă (%2).","invalidCssLength":"Valoarea specificată pentru câmpul \"%1\" trebuie să fie un număr pozitiv cu sau fără o unitate de măsură validă CSS (px, %, in, cm, mm, em, ex, pt, sau pc).","invalidHtmlLength":"Valoarea specificată pentru câmpul \"%1\" trebuie să fie un număr pozitiv cu sau fără o unitate de măsură validă HTML (px sau %).","invalidInlineStyle":"Valoarea specificată pentru stil trebuie să conțină una sau mai multe construcții de tipul \"name : value\", separate prin punct și virgulă.","cssLengthTooltip":"Introdu un număr pentru o valoare în pixeli sau un număr pentru o unitate de măsură validă CSS (px, %, in, cm, mm, em, ex, pt, sau pc).","unavailable":"%1<span class=\"cke_accessibility\">, nu este disponibil</span>","keyboard":{"8":"Backspace","13":"Enter","16":"Shift","17":"Ctrl","18":"Alt","32":"Bară spațiu","35":"End","36":"Home","46":"Delete","112":"F1","113":"F2","114":"F3","115":"F4","116":"F5","117":"F6","118":"F7","119":"F8","120":"F9","121":"F10","122":"F11","123":"F12","124":"F13","125":"F14","126":"F15","127":"F16","128":"F17","129":"F18","130":"F19","131":"F20","132":"F21","133":"F22","134":"F23","135":"F24","224":"Command"},"keyboardShortcut":"Scurtături tastatură","optionDefault":"Implicit"}};
\ No newline at end of file
diff --git a/web/core/assets/vendor/ckeditor/lang/ru.js b/web/core/assets/vendor/ckeditor/lang/ru.js
index 0d4c8dfab3..b181820726 100644
--- a/web/core/assets/vendor/ckeditor/lang/ru.js
+++ b/web/core/assets/vendor/ckeditor/lang/ru.js
@@ -1,5 +1,5 @@
 /*
-Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2020, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */
 CKEDITOR.lang['ru']={"widget":{"move":"Нажмите и перетащите, чтобы переместить","label":"%1 виджет"},"undo":{"redo":"Повторить","undo":"Отменить"},"toolbar":{"toolbarCollapse":"Свернуть панель инструментов","toolbarExpand":"Развернуть панель инструментов","toolbarGroups":{"document":"Документ","clipboard":"Буфер обмена / Отмена действий","editing":"Корректировка","forms":"Формы","basicstyles":"Простые стили","paragraph":"Абзац","links":"Ссылки","insert":"Вставка","styles":"Стили","colors":"Цвета","tools":"Инструменты"},"toolbars":"Панели инструментов редактора"},"table":{"border":"Размер границ","caption":"Заголовок","cell":{"menu":"Ячейка","insertBefore":"Вставить ячейку слева","insertAfter":"Вставить ячейку справа","deleteCell":"Удалить ячейки","merge":"Объединить ячейки","mergeRight":"Объединить с правой","mergeDown":"Объединить с нижней","splitHorizontal":"Разделить ячейку по вертикали","splitVertical":"Разделить ячейку по горизонтали","title":"Свойства ячейки","cellType":"Тип ячейки","rowSpan":"Объединяет строк","colSpan":"Объединяет колонок","wordWrap":"Перенос по словам","hAlign":"Горизонтальное выравнивание","vAlign":"Вертикальное выравнивание","alignBaseline":"По базовой линии","bgColor":"Цвет фона","borderColor":"Цвет границ","data":"Данные","header":"Заголовок","yes":"Да","no":"Нет","invalidWidth":"Ширина ячейки должна быть числом.","invalidHeight":"Высота ячейки должна быть числом.","invalidRowSpan":"Количество объединяемых строк должно быть задано числом.","invalidColSpan":"Количество объединяемых колонок должно быть задано числом.","chooseColor":"Выберите"},"cellPad":"Внутренний отступ ячеек","cellSpace":"Внешний отступ ячеек","column":{"menu":"Колонка","insertBefore":"Вставить колонку слева","insertAfter":"Вставить колонку справа","deleteColumn":"Удалить колонки"},"columns":"Колонки","deleteTable":"Удалить таблицу","headers":"Заголовки","headersBoth":"Сверху и слева","headersColumn":"Левая колонка","headersNone":"Без заголовков","headersRow":"Верхняя строка","heightUnit":"height unit","invalidBorder":"Размер границ должен быть числом.","invalidCellPadding":"Внутренний отступ ячеек (cellpadding) должен быть числом.","invalidCellSpacing":"Внешний отступ ячеек (cellspacing) должен быть числом.","invalidCols":"Количество столбцов должно быть больше 0.","invalidHeight":"Высота таблицы должна быть числом.","invalidRows":"Количество строк должно быть больше 0.","invalidWidth":"Ширина таблицы должна быть числом.","menu":"Свойства таблицы","row":{"menu":"Строка","insertBefore":"Вставить строку сверху","insertAfter":"Вставить строку снизу","deleteRow":"Удалить строки"},"rows":"Строки","summary":"Итоги","title":"Свойства таблицы","toolbar":"Таблица","widthPc":"процентов","widthPx":"пикселей","widthUnit":"единица измерения"},"stylescombo":{"label":"Стили","panelTitle":"Стили форматирования","panelTitle1":"Стили блока","panelTitle2":"Стили элемента","panelTitle3":"Стили объекта"},"specialchar":{"options":"Выбор специального символа","title":"Выберите специальный символ","toolbar":"Вставить специальный символ"},"sourcedialog":{"toolbar":"Исходник","title":"Источник"},"sourcearea":{"toolbar":"Источник"},"showblocks":{"toolbar":"Отображать блоки"},"removeformat":{"toolbar":"Убрать форматирование"},"pastetext":{"button":"Вставить только текст","pasteNotification":"Press %1 to paste. Your browser doesn‘t support pasting with the toolbar button or context menu option.","title":"Вставить только текст"},"pastefromword":{"confirmCleanup":"Текст, который вы желаете вставить, по всей видимости, был скопирован из Word. Следует ли очистить его перед вставкой?","error":"Невозможно очистить вставленные данные из-за внутренней ошибки","title":"Вставить из Word","toolbar":"Вставить из Word"},"notification":{"closed":"Уведомление закрыто"},"maximize":{"maximize":"Развернуть","minimize":"Свернуть"},"magicline":{"title":"Вставить здесь параграф"},"list":{"bulletedlist":"Вставить / удалить маркированный список","numberedlist":"Вставить / удалить нумерованный список"},"language":{"button":"Установка языка","remove":"Удалить язык"},"indent":{"indent":"Увеличить отступ","outdent":"Уменьшить отступ"},"image2":{"alt":"Альтернативный текст","btnUpload":"Загрузить на сервер","captioned":"Отображать название","captionPlaceholder":"Название","infoTab":"Данные об изображении","lockRatio":"Сохранять пропорции","menu":"Свойства изображения","pathName":"изображение","pathNameCaption":"название","resetSize":"Вернуть обычные размеры","resizer":"Нажмите и растяните","title":"Свойства изображения","uploadTab":"Загрузка файла","urlMissing":"Не указана ссылка на изображение.","altMissing":"Не задан альтернативный текст"},"horizontalrule":{"toolbar":"Вставить горизонтальную линию"},"format":{"label":"Форматирование","panelTitle":"Форматирование","tag_address":"Адрес","tag_div":"Обычное (div)","tag_h1":"Заголовок 1","tag_h2":"Заголовок 2","tag_h3":"Заголовок 3","tag_h4":"Заголовок 4","tag_h5":"Заголовок 5","tag_h6":"Заголовок 6","tag_p":"Обычное","tag_pre":"Моноширинное"},"filetools":{"loadError":"Ошибка при чтении файла","networkError":"Сетевая ошибка при загрузке файла","httpError404":"HTTP ошибка при загрузке файла (404: Файл не найден)","httpError403":"HTTP ошибка при загрузке файла (403: Запрещено)","httpError":"HTTP ошибка при загрузке файла (%1)","noUrlError":"Не определен URL для загрузки файлов","responseError":"Некорректный ответ сервера"},"elementspath":{"eleLabel":"Путь элементов","eleTitle":"Элемент %1"},"contextmenu":{"options":"Параметры контекстного меню"},"clipboard":{"copy":"Копировать","copyError":"Настройки безопасности вашего браузера не разрешают редактору выполнять операции по копированию текста. Пожалуйста, используйте для этого клавиатуру (Ctrl/Cmd+C).","cut":"Вырезать","cutError":"Настройки безопасности вашего браузера не разрешают редактору выполнять операции по вырезке текста. Пожалуйста, используйте для этого клавиатуру (Ctrl/Cmd+X).","paste":"Вставить","pasteNotification":"Для вставки нажмите %1. Ваш браузер не поддерживает возможность вставки через панель инструментов или контекстное меню","pasteArea":"Область вставки","pasteMsg":"Вставьте контент в эту область и нажмите OK"},"blockquote":{"toolbar":"Цитата"},"basicstyles":{"bold":"Полужирный","italic":"Курсив","strike":"Зачеркнутый","subscript":"Подстрочный индекс","superscript":"Надстрочный индекс","underline":"Подчеркнутый"},"about":{"copy":"Copyright &copy; $1. Все права защищены.","dlgTitle":"О CKEditor 4","moreInfo":"Для получения информации о лицензии, пожалуйста, перейдите на наш сайт:"},"editor":"Визуальный текстовый редактор","editorPanel":"Визуальный редактор текста","common":{"editorHelp":"Нажмите ALT-0 для открытия справки","browseServer":"Выбор на сервере","url":"Ссылка","protocol":"Протокол","upload":"Загрузка файла","uploadSubmit":"Загрузить на сервер","image":"Изображение","flash":"Flash","form":"Форма","checkbox":"Чекбокс","radio":"Радиокнопка","textField":"Текстовое поле","textarea":"Многострочное текстовое поле","hiddenField":"Скрытое поле","button":"Кнопка","select":"Выпадающий список","imageButton":"Кнопка-изображение","notSet":"<не указано>","id":"Идентификатор","name":"Имя","langDir":"Направление текста","langDirLtr":"Слева направо (LTR)","langDirRtl":"Справа налево (RTL)","langCode":"Код языка","longDescr":"Длинное описание ссылки","cssClass":"Класс CSS","advisoryTitle":"Заголовок","cssStyle":"Стиль","ok":"ОК","cancel":"Отмена","close":"Закрыть","preview":"Предпросмотр","resize":"Перетащите для изменения размера","generalTab":"Основное","advancedTab":"Дополнительно","validateNumberFailed":"Это значение не является числом.","confirmNewPage":"Несохранённые изменения будут потеряны! Вы действительно желаете перейти на другую страницу?","confirmCancel":"Некоторые параметры были изменены. Вы уверены, что желаете закрыть без сохранения?","options":"Параметры","target":"Цель","targetNew":"Новое окно (_blank)","targetTop":"Главное окно (_top)","targetSelf":"Текущее окно (_self)","targetParent":"Родительское окно (_parent)","langDirLTR":"Слева направо (LTR)","langDirRTL":"Справа налево (RTL)","styles":"Стиль","cssClasses":"CSS классы","width":"Ширина","height":"Высота","align":"Выравнивание","left":"По левому краю","right":"По правому краю","center":"По центру","justify":"По ширине","alignLeft":"По левому краю","alignRight":"По правому краю","alignCenter":"По центру","alignTop":"Поверху","alignMiddle":"Посередине","alignBottom":"Понизу","alignNone":"Нет","invalidValue":"Недопустимое значение.","invalidHeight":"Высота задается числом.","invalidWidth":"Ширина задается числом.","invalidLength":"Указанное значение для поля \"%1\" должно быть положительным числом без или с корректным символом единицы измерения (%2)","invalidCssLength":"Значение, указанное в поле \"%1\", должно быть положительным целым числом. Допускается указание единиц меры CSS (px, %, in, cm, mm, em, ex, pt или pc).","invalidHtmlLength":"Значение, указанное в поле \"%1\", должно быть положительным целым числом. Допускается указание единиц меры HTML (px или %).","invalidInlineStyle":"Значение, указанное для стиля элемента, должно состоять из одной или нескольких пар данных в формате \"параметр : значение\", разделённых точкой с запятой.","cssLengthTooltip":"Введите значение в пикселях, либо число с корректной единицей меры CSS (px, %, in, cm, mm, em, ex, pt или pc).","unavailable":"%1<span class=\"cke_accessibility\">, недоступно</span>","keyboard":{"8":"Backspace","13":"Ввод","16":"Shift","17":"Ctrl","18":"Alt","32":"Пробел","35":"End","36":"Home","46":"Delete","112":"F1","113":"F2","114":"F3","115":"F4","116":"F5","117":"F6","118":"F7","119":"F8","120":"F9","121":"F10","122":"F11","123":"F12","124":"F13","125":"F14","126":"F15","127":"F16","128":"F17","129":"F18","130":"F19","131":"F20","132":"F21","133":"F22","134":"F23","135":"F24","224":"Command"},"keyboardShortcut":"Комбинация клавиш","optionDefault":"По умолчанию"}};
\ No newline at end of file
diff --git a/web/core/assets/vendor/ckeditor/lang/si.js b/web/core/assets/vendor/ckeditor/lang/si.js
index e139b5a0af..a61d59273f 100644
--- a/web/core/assets/vendor/ckeditor/lang/si.js
+++ b/web/core/assets/vendor/ckeditor/lang/si.js
@@ -1,5 +1,5 @@
 /*
-Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2020, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */
 CKEDITOR.lang['si']={"widget":{"move":"Click and drag to move","label":"%1 widget"},"undo":{"redo":"නැවත කිරීම","undo":"වෙනස් කිරීම"},"toolbar":{"toolbarCollapse":"මෙවලම් තීරුව හැකුලුම.","toolbarExpand":"මෙවලම් තීරුව දීගහැරුම","toolbarGroups":{"document":"ලිපිය","clipboard":"ඇමිණුම වෙනස් කිරීම","editing":"සංස්කරණය","forms":"පෝරමය","basicstyles":"මුලික විලාසය","paragraph":"චේදය","links":"සබැඳිය","insert":"ඇතුලත් කිරීම","styles":"විලාසය","colors":"වර්ණය","tools":"මෙවලම්"},"toolbars":"සංස්කරණ මෙවලම් තීරුව"},"table":{"border":"සීමාවවල විශාලත්වය","caption":"Caption","cell":{"menu":"කොටුව","insertBefore":"පෙර කොටුවක් ඇතුල්කිරිම","insertAfter":"පසුව කොටුවක් ඇතුලත් ","deleteCell":"කොටුව මැකීම","merge":"කොටු එකට යාකිරිම","mergeRight":"දකුණට ","mergeDown":"පහලට ","splitHorizontal":"තිරස්ව කොටු පැතිරීම","splitVertical":"සිරස්ව කොටු පැතිරීම","title":"කොටු ","cellType":"කොටු වර්ගය","rowSpan":"පේළි පළල","colSpan":"සිරස් පළල","wordWrap":"වචන ගැලපුම","hAlign":"තිරස්ව ","vAlign":"සිරස්ව ","alignBaseline":"පාද රේඛාව","bgColor":"පසුබිම් වර්ණය","borderColor":"මායිම් ","data":"Data","header":"ශීර්ෂක","yes":"ඔව්","no":"නැත","invalidWidth":"කොටු පළල සංඛ්‍ය්ත්මක වටිනාකමක් විය යුතුය","invalidHeight":"කොටු උස සංඛ්‍ය්ත්මක වටිනාකමක් විය යුතුය","invalidRowSpan":"Rows span must be a whole number.","invalidColSpan":"Columns span must be a whole number.","chooseColor":"තෝරන්න"},"cellPad":"Cell padding","cellSpace":"Cell spacing","column":{"menu":"Column","insertBefore":"Insert Column Before","insertAfter":"Insert Column After","deleteColumn":"Delete Columns"},"columns":"සිරස් ","deleteTable":"වගුව මකන්න","headers":"ශීර්ෂක","headersBoth":"දෙකම","headersColumn":"පළමූ සිරස් තීරුව","headersNone":"කිසිවක්ම නොවේ","headersRow":"පළමූ පේළිය","heightUnit":"height unit","invalidBorder":"Border size must be a number.","invalidCellPadding":"Cell padding must be a positive number.","invalidCellSpacing":"Cell spacing must be a positive number.","invalidCols":"Number of columns must be a number greater than 0.","invalidHeight":"Table height must be a number.","invalidRows":"Number of rows must be a number greater than 0.","invalidWidth":"Table width must be a number.","menu":"Table Properties","row":{"menu":"Row","insertBefore":"Insert Row Before","insertAfter":"Insert Row After","deleteRow":"Delete Rows"},"rows":"Rows","summary":"Summary","title":"Table Properties","toolbar":"Table","widthPc":"percent","widthPx":"pixels","widthUnit":"width unit"},"stylescombo":{"label":"විලාසය","panelTitle":"Formatting Styles","panelTitle1":"Block Styles","panelTitle2":"Inline Styles","panelTitle3":"Object Styles"},"specialchar":{"options":"විශේෂ  ගුණාංග වීකල්ප","title":"විශේෂ  ගුණාංග ","toolbar":"විශේෂ ගුණාංග ඇතුලත් "},"sourcedialog":{"toolbar":"මුලාශ්‍රය","title":"මුලාශ්‍රය"},"sourcearea":{"toolbar":"මුලාශ්‍රය"},"showblocks":{"toolbar":"කොටස පෙන්නන්න"},"removeformat":{"toolbar":"සැකසීම වෙනස් කරන්න"},"pastetext":{"button":"සාමාන්‍ය අක්ෂර ලෙස අලවන්න","pasteNotification":"Press %1 to paste. Your browser doesn‘t support pasting with the toolbar button or context menu option.","title":"සාමාන්‍ය අක්ෂර ලෙස අලවන්න"},"pastefromword":{"confirmCleanup":"The text you want to paste seems to be copied from Word. Do you want to clean it before pasting?","error":"It was not possible to clean up the pasted data due to an internal error","title":"වචන වලින් අලවන්න","toolbar":"වචන වලින් අලවන්න"},"notification":{"closed":"Notification closed."},"maximize":{"maximize":"විශාල කිරීම","minimize":"කුඩා කිරීම"},"magicline":{"title":"චේදය ඇතුලත් කරන්න"},"list":{"bulletedlist":"ඇතුලත් / ඉවත් කිරීම ලඉස්තුව","numberedlist":"ඇතුලත් / ඉවත් කිරීම අන්න්කිත ලඉස්තුව"},"language":{"button":"Set language","remove":"Remove language"},"indent":{"indent":"අතර පරතරය වැඩිකරන්න","outdent":"අතර පරතරය අඩුකරන්න"},"image2":{"alt":"විකල්ප ","btnUpload":"සේවාදායකය වෙත යොමුකිරිම","captioned":"Captioned image","captionPlaceholder":"Caption","infoTab":"රුපයේ තොරතුරු","lockRatio":"නවතන අනුපාතය ","menu":"රුපයේ ගුණ","pathName":"image","pathNameCaption":"caption","resetSize":"නැවතත් විශාලත්වය වෙනස් කිරීම","resizer":"Click and drag to resize","title":"රුපයේ ","uploadTab":"උඩුගතකිරීම","urlMissing":"රුප මුලාශ්‍ර URL නැත.","altMissing":"Alternative text is missing."},"horizontalrule":{"toolbar":"තිරස් රේඛාවක් ඇතුලත් කරන්න"},"format":{"label":"ආකෘතිය","panelTitle":"චේදයේ ","tag_address":"ලිපිනය","tag_div":"සාමාන්‍ය(DIV)","tag_h1":"ශීර්ෂය 1","tag_h2":"ශීර්ෂය 2","tag_h3":"ශීර්ෂය 3","tag_h4":"ශීර්ෂය 4","tag_h5":"ශීර්ෂය 5","tag_h6":"ශීර්ෂය 6","tag_p":"සාමාන්‍ය","tag_pre":"ආකෘතියන්"},"filetools":{"loadError":"Error occurred during file read.","networkError":"Network error occurred during file upload.","httpError404":"HTTP error occurred during file upload (404: File not found).","httpError403":"HTTP error occurred during file upload (403: Forbidden).","httpError":"HTTP error occurred during file upload (error status: %1).","noUrlError":"Upload URL is not defined.","responseError":"Incorrect server response."},"elementspath":{"eleLabel":"මුලද්‍රව්‍ය මාර්ගය","eleTitle":"%1 මුල"},"contextmenu":{"options":"අනතර්ග ලේඛණ  විකල්ප"},"clipboard":{"copy":"පිටපත් කරන්න","copyError":"Your browser security settings don't permit the editor to automatically execute copying operations. Please use the keyboard for that (Ctrl/Cmd+C).","cut":"කපාගන්න","cutError":"Your browser security settings don't permit the editor to automatically execute cutting operations. Please use the keyboard for that (Ctrl/Cmd+X).","paste":"අලවන්න","pasteNotification":"Press %1 to paste. Your browser doesn‘t support pasting with the toolbar button or context menu option.","pasteArea":"අලවන ප්‍රදේශ","pasteMsg":"Paste your content inside the area below and press OK."},"blockquote":{"toolbar":"උද්ධෘත කොටස"},"basicstyles":{"bold":"තද අකුරින් ලියනලද","italic":"බැධීඅකුරින් ලියන ලද","strike":"Strikethrough","subscript":"Subscript","superscript":"Superscript","underline":"යටින් ඉරි අදින ලද"},"about":{"copy":"පිටපත් අයිතිය සහ පිටපත් කිරීම;$1 .සියලුම හිමිකම් ඇවිරිණි.","dlgTitle":"CKEditor ගැන විස්තර","moreInfo":"බලපත්‍ර තොරතුරු සදහා කරුණාකර අපගේ විද්‍යුත් ලිපිනයට පිවිසෙන්න:"},"editor":"පොහොසත් වචන සංස්කරණ","editorPanel":"Rich Text Editor panel","common":{"editorHelp":"උදව් ලබා ගැනීමට  ALT බොත්තම ඔබන්න","browseServer":"සෙවුම් සේවාදායකය","url":"URL","protocol":"මුලාපත්‍රය","upload":"උඩුගතකිරීම","uploadSubmit":"සේවාදායකය වෙත යොමුකිරිම","image":"රුපය","flash":"දීප්තිය","form":"පෝරමය","checkbox":"ලකුණුකිරීමේ කොටුව","radio":"තේරීම් ","textField":"ලියන ප්‍රදේශය","textarea":"අකුරු ","hiddenField":"සැඟවුණු ප්‍රදේශය","button":"බොත්තම","select":"තෝරන්න ","imageButton":"රුප ","notSet":"<යොදා >","id":"අංකය","name":"නම","langDir":"භාෂා දිශාව","langDirLtr":"වමේසිට දකුණුට","langDirRtl":"දකුණේ සිට වමට","langCode":"භාෂා කේතය","longDescr":"සම්පුර්න පැහැදිලි කිරීම","cssClass":"විලාශ පත්‍ර පන්තිය","advisoryTitle":"උපදෙස් ","cssStyle":"විලාසය","ok":"නිරදි","cancel":"අවලංගු කිරීම","close":"වැසීම","preview":"නැවත ","resize":"විශාලත්වය නැවත වෙනස් කිරීම","generalTab":"පොදු කරුණු.","advancedTab":"දීය","validateNumberFailed":"මෙම වටිනාකම අංකයක් නොවේ","confirmNewPage":"ආරක්ෂා නොකළ සියලුම දත්තයන් මැකියනුලැබේ. ඔබට නව පිටුවක් ලබා ගැනීමට අවශ්‍යද?","confirmCancel":"ඇතම් විකල්පයන් වෙනස් කර ඇත. ඔබට මින් නික්මීමට අවශ්‍යද?","options":" විකල්ප","target":"අරමුණ","targetNew":"නව කව්ළුව","targetTop":"වැදගත් කව්ළුව","targetSelf":"එම කව්ළුව(_තම\\\\)","targetParent":"මව් කව්ළුව(_)","langDirLTR":"වමේසිට දකුණුට","langDirRTL":"දකුණේ සිට වමට","styles":"විලාසය","cssClasses":"විලාසපත්‍ර පන්තිය","width":"පළල","height":"උස","align":"ගැලපුම","left":"වම","right":"දකුණ","center":"මධ්‍ය","justify":"Justify","alignLeft":"Align Left","alignRight":"Align Right","alignCenter":"Align Center","alignTop":"ඉ","alignMiddle":"මැද","alignBottom":"පහල","alignNone":"None","invalidValue":"වැරදී වටිනාකමකි","invalidHeight":"උස අංකයක් විය යුතුය","invalidWidth":"පළල අංකයක් විය යුතුය","invalidLength":"Value specified for the \"%1\" field must be a positive number with or without a valid measurement unit (%2).","invalidCssLength":"වටිනාකමක් නිරූපණය කිරීම \"%1\" ප්‍රදේශය ධන සංක්‍යාත්මක වටිනාකමක් හෝ  නිවරදි නොවන  CSS මිනුම් එකක(px, %, in, cm, mm, em, ex, pt, pc)","invalidHtmlLength":"වටිනාකමක් නිරූපණය කිරීම \"%1\" ප්‍රදේශය ධන සංක්‍යාත්මක වටිනාකමක් හෝ  නිවරදි නොවන  HTML මිනුම් එකක (px හෝ %).","invalidInlineStyle":"වටිනාකමක් නිරූපණය කිරීම  පේළි විලාසයයට ආකෘතිය  අනතර්ග විය යුතය  \"නම : වටිනාකම\", තිත් කොමාවකින් වෙන් වෙන ලද.","cssLengthTooltip":"සංක්‍යා ඇතුලත් කිරීමේදී වටිනාකම තිත් ප්‍රමාණය නිවරදි CSS  ඒකක(තිත්, %, අඟල්,සෙමි, mm, em, ex, pt, pc)","unavailable":"%1<span පන්තිය=\"ළඟා වියහැකි ද බලන්න\">, නොමැතිනම්</span>","keyboard":{"8":"Backspace","13":"Enter","16":"Shift","17":"Ctrl","18":"Alt","32":"Space","35":"End","36":"Home","46":"Delete","112":"F1","113":"F2","114":"F3","115":"F4","116":"F5","117":"F6","118":"F7","119":"F8","120":"F9","121":"F10","122":"F11","123":"F12","124":"F13","125":"F14","126":"F15","127":"F16","128":"F17","129":"F18","130":"F19","131":"F20","132":"F21","133":"F22","134":"F23","135":"F24","224":"Command"},"keyboardShortcut":"Keyboard shortcut","optionDefault":"Default"}};
\ No newline at end of file
diff --git a/web/core/assets/vendor/ckeditor/lang/sk.js b/web/core/assets/vendor/ckeditor/lang/sk.js
index 622ed54a8f..8eb9833b5b 100644
--- a/web/core/assets/vendor/ckeditor/lang/sk.js
+++ b/web/core/assets/vendor/ckeditor/lang/sk.js
@@ -1,5 +1,5 @@
 /*
-Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2020, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */
 CKEDITOR.lang['sk']={"widget":{"move":"Kliknite a potiahnite pre presunutie","label":"%1 widget"},"undo":{"redo":"Znovu","undo":"Späť"},"toolbar":{"toolbarCollapse":"Zbaliť lištu nástrojov","toolbarExpand":"Rozbaliť lištu nástrojov","toolbarGroups":{"document":"Dokument","clipboard":"Schránka pre kopírovanie/Späť","editing":"Upravovanie","forms":"Formuláre","basicstyles":"Základné štýly","paragraph":"Odsek","links":"Odkazy","insert":"Vložiť","styles":"Štýly","colors":"Farby","tools":"Nástroje"},"toolbars":"Lišty nástrojov editora"},"table":{"border":"Šírka orámovania","caption":"Popis","cell":{"menu":"Bunka","insertBefore":"Vložiť bunku pred","insertAfter":"Vložiť bunku za","deleteCell":"Vymazať bunky","merge":"Zlúčiť bunky","mergeRight":"Zlúčiť doprava","mergeDown":"Zlúčiť dole","splitHorizontal":"Rozdeliť bunky horizontálne","splitVertical":"Rozdeliť bunky vertikálne","title":"Vlastnosti bunky","cellType":"Typ bunky","rowSpan":"Rozsah riadkov","colSpan":"Rozsah stĺpcov","wordWrap":"Zalamovanie riadkov","hAlign":"Horizontálne zarovnanie","vAlign":"Vertikálne zarovnanie","alignBaseline":"Základná čiara (baseline)","bgColor":"Farba pozadia","borderColor":"Farba orámovania","data":"Dáta","header":"Hlavička","yes":"Áno","no":"Nie","invalidWidth":"Šírka bunky musí byť číslo.","invalidHeight":"Výška bunky musí byť číslo.","invalidRowSpan":"Rozsah riadkov musí byť celé číslo.","invalidColSpan":"Rozsah stĺpcov musí byť celé číslo.","chooseColor":"Vybrať"},"cellPad":"Odsadenie obsahu (cell padding)","cellSpace":"Vzdialenosť buniek (cell spacing)","column":{"menu":"Stĺpec","insertBefore":"Vložiť stĺpec pred","insertAfter":"Vložiť stĺpec po","deleteColumn":"Zmazať stĺpce"},"columns":"Stĺpce","deleteTable":"Vymazať tabuľku","headers":"Hlavička","headersBoth":"Obe","headersColumn":"Prvý stĺpec","headersNone":"Žiadne","headersRow":"Prvý riadok","heightUnit":"height unit","invalidBorder":"Šírka orámovania musí byť číslo.","invalidCellPadding":"Odsadenie v bunkách (cell padding) musí byť kladné číslo.","invalidCellSpacing":"Medzera mädzi bunkami (cell spacing) musí byť kladné číslo.","invalidCols":"Počet stĺpcov musí byť číslo väčšie ako 0.","invalidHeight":"Výška tabuľky musí byť číslo.","invalidRows":"Počet riadkov musí byť číslo väčšie ako 0.","invalidWidth":"Širka tabuľky musí byť číslo.","menu":"Vlastnosti tabuľky","row":{"menu":"Riadok","insertBefore":"Vložiť riadok pred","insertAfter":"Vložiť riadok po","deleteRow":"Vymazať riadky"},"rows":"Riadky","summary":"Prehľad","title":"Vlastnosti tabuľky","toolbar":"Tabuľka","widthPc":"percent","widthPx":"pixelov","widthUnit":"jednotka šírky"},"stylescombo":{"label":"Štýly","panelTitle":"Formátovanie štýlov","panelTitle1":"Štýly bloku","panelTitle2":"Znakové štýly","panelTitle3":"Štýly objektu"},"specialchar":{"options":"Možnosti špeciálneho znaku","title":"Výber špeciálneho znaku","toolbar":"Vložiť špeciálny znak"},"sourcedialog":{"toolbar":"Zdroj","title":"Zdroj"},"sourcearea":{"toolbar":"Zdroj"},"showblocks":{"toolbar":"Ukázať bloky"},"removeformat":{"toolbar":"Odstrániť formátovanie"},"pastetext":{"button":"Vložiť ako čistý text","pasteNotification":"Press %1 to paste. Your browser doesn‘t support pasting with the toolbar button or context menu option.","title":"Vložiť ako čistý text"},"pastefromword":{"confirmCleanup":"Zdá sa, že vkladaný text pochádza z programu MS Word. Chcete ho pred vkladaním automaticky vyčistiť?","error":"Kvôli internej chybe nebolo možné vložené dáta vyčistiť","title":"Vložiť z Wordu","toolbar":"Vložiť z Wordu"},"notification":{"closed":"Notifikácia zatvorená."},"maximize":{"maximize":"Maximalizovať","minimize":"Minimalizovať"},"magicline":{"title":"Odsek vložiť sem"},"list":{"bulletedlist":"Vložiť/odstrániť zoznam s odrážkami","numberedlist":"Vložiť/odstrániť číslovaný zoznam"},"language":{"button":"Nastaviť jazyk","remove":"Odstrániť jazyk"},"indent":{"indent":"Zväčšiť odsadenie","outdent":"Zmenšiť odsadenie"},"image2":{"alt":"Alternatívny text","btnUpload":"Odoslať to na server","captioned":"Opísaný obrázok","captionPlaceholder":"Popis","infoTab":"Informácie o obrázku","lockRatio":"Pomer zámky","menu":"Vlastnosti obrázka","pathName":"obrázok","pathNameCaption":"popis","resetSize":"Pôvodná veľkosť","resizer":"Kliknite a potiahnite pre zmenu veľkosti","title":"Vlastnosti obrázka","uploadTab":"Nahrať","urlMissing":"Chýba URL zdroja obrázka.","altMissing":"Chýba alternatívny text."},"horizontalrule":{"toolbar":"Vložiť vodorovnú čiaru"},"format":{"label":"Formát","panelTitle":"Odsek","tag_address":"Adresa","tag_div":"Normálny (DIV)","tag_h1":"Nadpis 1","tag_h2":"Nadpis 2","tag_h3":"Nadpis 3","tag_h4":"Nadpis 4","tag_h5":"Nadpis 5","tag_h6":"Nadpis 6","tag_p":"Normálny","tag_pre":"Formátovaný"},"filetools":{"loadError":"Počas čítania súboru nastala chyba.","networkError":"Počas nahrávania súboru nastala chyba siete.","httpError404":"Počas nahrávania súboru nastala HTTP chyba (404: Súbor nebol nájdený).","httpError403":"Počas nahrávania súboru nastala HTTP chyba (403: Zakázaný).","httpError":"Počas nahrávania súboru nastala HTTP chyba (error status: %1).","noUrlError":"URL nahrávania nie je definovaný.","responseError":"Nesprávna odpoveď servera."},"elementspath":{"eleLabel":"Cesta prvkov","eleTitle":"%1 prvok"},"contextmenu":{"options":"Možnosti kontextového menu"},"clipboard":{"copy":"Kopírovať","copyError":"Bezpečnostné nastavenia vášho prehliadača nedovoľujú editoru automaticky spustiť operáciu kopírovania. Použite na to klávesnicu (Ctrl/Cmd+C).","cut":"Vystrihnúť","cutError":"Bezpečnostné nastavenia vášho prehliadača nedovoľujú editoru automaticky spustiť operáciu vystrihnutia. Použite na to klávesnicu (Ctrl/Cmd+X).","paste":"Vložiť","pasteNotification":"Stlačte %1 na vloženie. Váš prehliadač nepodporuje vloženie prostredníctvom tlačidla v nástrojovej lište alebo voľby v kontextovom menu.","pasteArea":"Miesto pre vloženie","pasteMsg":"Vložte svoj obsah do nasledujúcej oblasti a stlačte OK."},"blockquote":{"toolbar":"Citácia"},"basicstyles":{"bold":"Tučné","italic":"Kurzíva","strike":"Prečiarknuté","subscript":"Dolný index","superscript":"Horný index","underline":"Podčiarknuté"},"about":{"copy":"Copyright &copy; $1. Všetky práva vyhradené.","dlgTitle":"O aplikácii CKEditor 4","moreInfo":"Pre informácie o licenciách, prosíme, navštívte našu web stránku:"},"editor":"Editor formátovaného textu","editorPanel":"Panel editora formátovaného textu","common":{"editorHelp":"Stlačením ALT 0 spustiť pomocníka","browseServer":"Prehliadať server","url":"URL","protocol":"Protokol","upload":"Odoslať","uploadSubmit":"Odoslať na server","image":"Obrázok","flash":"Flash","form":"Formulár","checkbox":"Zaškrtávacie pole","radio":"Prepínač","textField":"Textové pole","textarea":"Textová oblasť","hiddenField":"Skryté pole","button":"Tlačidlo","select":"Rozbaľovací zoznam","imageButton":"Obrázkové tlačidlo","notSet":"<nenastavené>","id":"Id","name":"Meno","langDir":"Orientácia jazyka","langDirLtr":"Zľava doprava (LTR)","langDirRtl":"Sprava doľava (RTL)","langCode":"Kód jazyka","longDescr":"Dlhý popis URL","cssClass":"Trieda štýlu","advisoryTitle":"Pomocný titulok","cssStyle":"Štýl","ok":"OK","cancel":"Zrušiť","close":"Zatvoriť","preview":"Náhľad","resize":"Zmeniť veľkosť","generalTab":"Hlavné","advancedTab":"Rozšírené","validateNumberFailed":"Hodnota nie je číslo.","confirmNewPage":"Prajete si načítat novú stránku? Všetky neuložené zmeny budú stratené. ","confirmCancel":"Niektore možnosti boli zmenené. Naozaj chcete zavrieť okno?","options":"Možnosti","target":"Cieľ","targetNew":"Nové okno (_blank)","targetTop":"Najvrchnejšie okno (_top)","targetSelf":"To isté okno (_self)","targetParent":"Rodičovské okno (_parent)","langDirLTR":"Zľava doprava (LTR)","langDirRTL":"Sprava doľava (RTL)","styles":"Štýl","cssClasses":"Triedy štýlu","width":"Šírka","height":"Výška","align":"Zarovnanie","left":"Vľavo","right":"Vpravo","center":"Na stred","justify":"Do bloku","alignLeft":"Zarovnať vľavo","alignRight":"Zarovnať vpravo","alignCenter":"Zarovnať na stred","alignTop":"Nahor","alignMiddle":"Na stred","alignBottom":"Dole","alignNone":"Žiadne","invalidValue":"Neplatná hodnota.","invalidHeight":"Výška musí byť číslo.","invalidWidth":"Šírka musí byť číslo.","invalidLength":"Hodnota uvedená v poli \"%1\" musí byť kladné číslo a s platnou mernou jednotkou (%2), alebo bez nej.","invalidCssLength":"Špecifikovaná hodnota pre pole \"%1\" musí byť kladné číslo s alebo bez platnej CSS mernej jednotky (px, %, in, cm, mm, em, ex, pt alebo pc).","invalidHtmlLength":"Špecifikovaná hodnota pre pole \"%1\" musí byť kladné číslo s alebo bez platnej HTML mernej jednotky (px alebo %).","invalidInlineStyle":"Zadaná hodnota pre inline štýl musí pozostávať s jedného, alebo viac dvojíc formátu \"názov: hodnota\", oddelených bodkočiarkou.","cssLengthTooltip":"Vložte číslo pre hodnotu v pixeloch alebo číslo so správnou CSS jednotou (px, %, in, cm, mm, em, ex, pt alebo pc).","unavailable":"%1<span class=\"cke_accessibility\">, nedostupný</span>","keyboard":{"8":"Backspace","13":"Enter","16":"Shift","17":"Ctrl","18":"Alt","32":"Medzerník","35":"End","36":"Home","46":"Delete","112":"F1","113":"F2","114":"F3","115":"F4","116":"F5","117":"F6","118":"F7","119":"F8","120":"F9","121":"F10","122":"F11","123":"F12","124":"F13","125":"F14","126":"F15","127":"F16","128":"F17","129":"F18","130":"F19","131":"F20","132":"F21","133":"F22","134":"F23","135":"F24","224":"Command"},"keyboardShortcut":"Klávesová skratka","optionDefault":"Predvolený"}};
\ No newline at end of file
diff --git a/web/core/assets/vendor/ckeditor/lang/sl.js b/web/core/assets/vendor/ckeditor/lang/sl.js
index 16c6c0947c..ba31ad786b 100644
--- a/web/core/assets/vendor/ckeditor/lang/sl.js
+++ b/web/core/assets/vendor/ckeditor/lang/sl.js
@@ -1,5 +1,5 @@
 /*
-Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2020, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */
 CKEDITOR.lang['sl']={"widget":{"move":"Kliknite in povlecite, da premaknete","label":"%1 widget"},"undo":{"redo":"Uveljavi","undo":"Razveljavi"},"toolbar":{"toolbarCollapse":"Skrči orodno vrstico","toolbarExpand":"Razširi orodno vrstico","toolbarGroups":{"document":"Dokument","clipboard":"Odložišče/Razveljavi","editing":"Urejanje","forms":"Obrazci","basicstyles":"Osnovni slogi","paragraph":"Odstavek","links":"Povezave","insert":"Vstavi","styles":"Slogi","colors":"Barve","tools":"Orodja"},"toolbars":"Orodne vrstice urejevalnika"},"table":{"border":"Velikost obrobe","caption":"Napis","cell":{"menu":"Celica","insertBefore":"Vstavi celico pred","insertAfter":"Vstavi celico za","deleteCell":"Izbriši celice","merge":"Združi celice","mergeRight":"Združi desno","mergeDown":"Združi navzdol","splitHorizontal":"Razdeli celico vodoravno","splitVertical":"Razdeli celico navpično","title":"Lastnosti celice","cellType":"Vrsta celice","rowSpan":"Razpon vrstic","colSpan":"Razpon stolpcev","wordWrap":"Prelom besedila","hAlign":"Vodoravna poravnava","vAlign":"Navpična poravnava","alignBaseline":"Osnovnica","bgColor":"Barva ozadja","borderColor":"Barva obrobe","data":"Podatki","header":"Glava","yes":"Da","no":"Ne","invalidWidth":"Širina celice mora biti število.","invalidHeight":"Višina celice mora biti število.","invalidRowSpan":"Razpon vrstic mora biti celo število.","invalidColSpan":"Razpon stolpcev mora biti celo število.","chooseColor":"Izberi"},"cellPad":"Odmik znotraj celic","cellSpace":"Razmik med celicami","column":{"menu":"Stolpec","insertBefore":"Vstavi stolpec pred","insertAfter":"Vstavi stolpec za","deleteColumn":"Izbriši stolpce"},"columns":"Stolpci","deleteTable":"Izbriši tabelo","headers":"Glave","headersBoth":"Oboje","headersColumn":"Prvi stolpec","headersNone":"Brez","headersRow":"Prva vrstica","heightUnit":"height unit","invalidBorder":"Širina obrobe mora biti število.","invalidCellPadding":"Odmik znotraj celic mora biti pozitivno število.","invalidCellSpacing":"Razmik med celicami mora biti pozitivno število.","invalidCols":"Število stolpcev mora biti večje od 0.","invalidHeight":"Višina tabele mora biti število.","invalidRows":"Število vrstic mora biti večje od 0.","invalidWidth":"Širina tabele mora biti število.","menu":"Lastnosti tabele","row":{"menu":"Vrstica","insertBefore":"Vstavi vrstico pred","insertAfter":"Vstavi vrstico za","deleteRow":"Izbriši vrstice"},"rows":"Vrstice","summary":"Povzetek","title":"Lastnosti tabele","toolbar":"Tabela","widthPc":"odstotkov","widthPx":"pik","widthUnit":"enota širine"},"stylescombo":{"label":"Slog","panelTitle":"Oblikovalni Stili","panelTitle1":"Slogi odstavkov","panelTitle2":"Slogi besedila","panelTitle3":"Slogi objektov"},"specialchar":{"options":"Možnosti posebnih znakov","title":"Izberi posebni znak","toolbar":"Vstavi posebni znak"},"sourcedialog":{"toolbar":"Izvorna koda","title":"Izvorna koda"},"sourcearea":{"toolbar":"Izvorna koda"},"showblocks":{"toolbar":"Prikaži ograde"},"removeformat":{"toolbar":"Odstrani oblikovanje"},"pastetext":{"button":"Prilepi kot golo besedilo","pasteNotification":"Press %1 to paste. Your browser doesn‘t support pasting with the toolbar button or context menu option.","title":"Prilepi kot golo besedilo"},"pastefromword":{"confirmCleanup":"Besedilo, ki ga želite prilepiti, je kopirano iz Worda. Ali ga želite očistiti, preden ga prilepite?","error":"Ni bilo mogoče očistiti prilepljenih podatkov zaradi notranje napake","title":"Prilepi iz Worda","toolbar":"Prilepi iz Worda"},"notification":{"closed":"Notification closed."},"maximize":{"maximize":"Maksimiraj","minimize":"Minimiraj"},"magicline":{"title":"Vstavite odstavek tukaj"},"list":{"bulletedlist":"Vstavi/odstrani neoštevilčen seznam","numberedlist":"Vstavi/odstrani oštevilčen seznam"},"language":{"button":"Nastavi jezik","remove":"Odstrani jezik"},"indent":{"indent":"Povečaj zamik","outdent":"Zmanjšaj zamik"},"image2":{"alt":"Nadomestno besedilo","btnUpload":"Pošlji na strežnik","captioned":"Slika z napisom","captionPlaceholder":"Napis","infoTab":"Podatki o sliki","lockRatio":"Zakleni razmerje","menu":"Lastnosti slike","pathName":"slika","pathNameCaption":"napis","resetSize":"Ponastavi velikost","resizer":"Kliknite in povlecite, da spremenite velikost","title":"Lastnosti slike","uploadTab":"Naloži","urlMissing":"Manjka vir (URL) slike.","altMissing":"Alternative text is missing."},"horizontalrule":{"toolbar":"Vstavi vodoravno črto"},"format":{"label":"Oblika","panelTitle":"Oblika odstavka","tag_address":"Napis","tag_div":"Navaden (DIV)","tag_h1":"Naslov 1","tag_h2":"Naslov 2","tag_h3":"Naslov 3","tag_h4":"Naslov 4","tag_h5":"Naslov 5","tag_h6":"Naslov 6","tag_p":"Navaden","tag_pre":"Oblikovan"},"filetools":{"loadError":"Error occurred during file read.","networkError":"Network error occurred during file upload.","httpError404":"HTTP error occurred during file upload (404: File not found).","httpError403":"HTTP error occurred during file upload (403: Forbidden).","httpError":"HTTP error occurred during file upload (error status: %1).","noUrlError":"Upload URL is not defined.","responseError":"Incorrect server response."},"elementspath":{"eleLabel":"Pot elementov","eleTitle":"Element %1"},"contextmenu":{"options":"Možnosti kontekstnega menija"},"clipboard":{"copy":"Kopiraj","copyError":"Varnostne nastavitve brskalnika ne dopuščajo samodejnega kopiranja. Uporabite kombinacijo tipk na tipkovnici (Ctrl/Cmd+C).","cut":"Izreži","cutError":"Varnostne nastavitve brskalnika ne dopuščajo samodejnega izrezovanja. Uporabite kombinacijo tipk na tipkovnici (Ctrl/Cmd+X).","paste":"Prilepi","pasteNotification":"Press %1 to paste. Your browser doesn‘t support pasting with the toolbar button or context menu option.","pasteArea":"Prilepi območje","pasteMsg":"Paste your content inside the area below and press OK."},"blockquote":{"toolbar":"Citat"},"basicstyles":{"bold":"Krepko","italic":"Ležeče","strike":"Prečrtano","subscript":"Podpisano","superscript":"Nadpisano","underline":"Podčrtano"},"about":{"copy":"Copyright &copy; $1. Vse pravice pridržane.","dlgTitle":"O programu CKEditor 4","moreInfo":"Za informacije o licenciranju prosimo obiščite našo spletno stran:"},"editor":"Urejevalnik obogatenega besedila","editorPanel":"Plošča urejevalnika obogatenega besedila","common":{"editorHelp":"Pritisnite ALT 0 za pomoč","browseServer":"Prebrskaj na strežniku","url":"URL","protocol":"Protokol","upload":"Naloži","uploadSubmit":"Pošlji na strežnik","image":"Slika","flash":"Flash","form":"Obrazec","checkbox":"Potrditveno polje","radio":"Izbirno polje","textField":"Besedilno polje","textarea":"Besedilno območje","hiddenField":"Skrito polje","button":"Gumb","select":"Spustno polje","imageButton":"Slikovni gumb","notSet":"<ni določen>","id":"Id","name":"Ime","langDir":"Smer jezika","langDirLtr":"Od leve proti desni (LTR)","langDirRtl":"Od desne proti levi (RTL)","langCode":"Koda jezika","longDescr":"Dolg opis URL-ja","cssClass":"Razredi slogovne predloge","advisoryTitle":"Predlagani naslov","cssStyle":"Slog","ok":"V redu","cancel":"Prekliči","close":"Zapri","preview":"Predogled","resize":"Potegni za spremembo velikosti","generalTab":"Splošno","advancedTab":"Napredno","validateNumberFailed":"Vrednost ni število.","confirmNewPage":"Vse neshranjene spremembe vsebine bodo izgubljene. Ali res želite naložiti novo stran?","confirmCancel":"Spremenili ste nekaj možnosti. Ali res želite zapreti okno?","options":"Možnosti","target":"Cilj","targetNew":"Novo okno (_blank)","targetTop":"Vrhovno okno (_top)","targetSelf":"Isto okno (_self)","targetParent":"Starševsko okno (_parent)","langDirLTR":"Od leve proti desni (LTR)","langDirRTL":"Od desne proti levi (RTL)","styles":"Slog","cssClasses":"Razredi slogovne predloge","width":"Širina","height":"Višina","align":"Poravnava","left":"Levo","right":"Desno","center":"Sredinsko","justify":"Obojestranska poravnava","alignLeft":"Leva poravnava","alignRight":"Desna poravnava","alignCenter":"Align Center","alignTop":"Na vrh","alignMiddle":"V sredino","alignBottom":"Na dno","alignNone":"Brez poravnave","invalidValue":"Neveljavna vrednost.","invalidHeight":"Višina mora biti število.","invalidWidth":"Širina mora biti število.","invalidLength":"Value specified for the \"%1\" field must be a positive number with or without a valid measurement unit (%2).","invalidCssLength":"Vrednost, določena za polje »%1«, mora biti pozitivno število z ali brez veljavne CSS-enote za merjenje (px, %, in, cm, mm, em, ex, pt ali pc).","invalidHtmlLength":"Vrednost, določena za polje »%1«, mora biti pozitivno število z ali brez veljavne HTML-enote za merjenje (px ali %).","invalidInlineStyle":"Vrednost, določena za slog v vrstici, mora biti sestavljena iz ene ali več dvojic oblike »ime : vrednost«, ločenih s podpičji.","cssLengthTooltip":"Vnesite število za vrednost v slikovnih pikah ali število z veljavno CSS-enoto (px, %, in, cm, mm, em, ex, pt ali pc).","unavailable":"%1<span class=\"cke_accessibility\">, nedosegljiv</span>","keyboard":{"8":"Backspace","13":"Enter","16":"Shift","17":"Ctrl","18":"Alt","32":"Space","35":"End","36":"Home","46":"Delete","112":"F1","113":"F2","114":"F3","115":"F4","116":"F5","117":"F6","118":"F7","119":"F8","120":"F9","121":"F10","122":"F11","123":"F12","124":"F13","125":"F14","126":"F15","127":"F16","128":"F17","129":"F18","130":"F19","131":"F20","132":"F21","133":"F22","134":"F23","135":"F24","224":"Command"},"keyboardShortcut":"Keyboard shortcut","optionDefault":"Default"}};
\ No newline at end of file
diff --git a/web/core/assets/vendor/ckeditor/lang/sq.js b/web/core/assets/vendor/ckeditor/lang/sq.js
index d18952dc7f..6ba13016c3 100644
--- a/web/core/assets/vendor/ckeditor/lang/sq.js
+++ b/web/core/assets/vendor/ckeditor/lang/sq.js
@@ -1,5 +1,5 @@
 /*
-Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2020, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */
 CKEDITOR.lang['sq']={"widget":{"move":"Kliko dhe tërhiqe për ta lëvizur","label":"%1 vegël"},"undo":{"redo":"Ribëje","undo":"Rizhbëje"},"toolbar":{"toolbarCollapse":"Zvogëlo Shiritin","toolbarExpand":"Zgjero Shiritin","toolbarGroups":{"document":"Dokumenti","clipboard":"Tabela Punës/Ribëje","editing":"Duke Redaktuar","forms":"Formularët","basicstyles":"Stilet Bazë","paragraph":"Paragrafi","links":"Nyjat","insert":"Shto","styles":"Stilet","colors":"Ngjyrat","tools":"Mjetet"},"toolbars":"Shiritat e Redaktuesit"},"table":{"border":"Madhësia e kornizave","caption":"Titull","cell":{"menu":"Qeli","insertBefore":"Shto Qeli Para","insertAfter":"Shto Qeli Prapa","deleteCell":"Gris Qelitë","merge":"Bashko Qelitë","mergeRight":"Bashko Djathtas","mergeDown":"Bashko Poshtë","splitHorizontal":"Ndaj Qelinë Horizontalisht","splitVertical":"Ndaj Qelinë Vertikalisht","title":"Rekuizitat e Qelisë","cellType":"Lloji i Qelisë","rowSpan":"Bashko Rreshtat","colSpan":"Bashko Kolonat","wordWrap":"Fund i Fjalës","hAlign":"Bashkimi Horizontal","vAlign":"Bashkimi Vertikal","alignBaseline":"Baza","bgColor":"Ngjyra e Prapavijës","borderColor":"Ngjyra e Kornizave","data":"Të dhënat","header":"Koka","yes":"Po","no":"Jo","invalidWidth":"Gjerësia e qelisë duhet të jetë numër.","invalidHeight":"Lartësia e qelisë duhet të jetë numër.","invalidRowSpan":"Hapësira e rreshtave duhet të jetë numër i plotë.","invalidColSpan":"Hapësira e kolonave duhet të jetë numër i plotë.","chooseColor":"Përzgjidh"},"cellPad":"Mbushja e qelisë","cellSpace":"Hapësira e qelisë","column":{"menu":"Kolona","insertBefore":"Vendos Kolonë Para","insertAfter":"Vendos Kolonë Pas","deleteColumn":"Gris Kolonat"},"columns":"Kolonat","deleteTable":"Gris Tabelën","headers":"Kokat","headersBoth":"Së bashku","headersColumn":"Kolona e parë","headersNone":"Asnjë","headersRow":"Rreshti i Parë","heightUnit":"height unit","invalidBorder":"Madhësia e kufinjve duhet të jetë numër.","invalidCellPadding":"Mbushja e qelisë duhet të jetë numër pozitiv.","invalidCellSpacing":"Hapësira e qelisë duhet të jetë numër pozitiv.","invalidCols":"Numri i kolonave duhet të jetë numër më i madh se 0.","invalidHeight":"Lartësia e tabelës duhet të jetë numër.","invalidRows":"Numri i rreshtave duhet të jetë numër më i madh se 0.","invalidWidth":"Gjerësia e tabelës duhet të jetë numër.","menu":"Karakteristikat e Tabelës","row":{"menu":"Rreshti","insertBefore":"Shto Rresht Para","insertAfter":"Shto Rresht Prapa","deleteRow":"Gris Rreshtat"},"rows":"Rreshtat","summary":"Përmbledhje","title":"Karakteristikat e Tabelës","toolbar":"Tabela","widthPc":"përqind","widthPx":"piksell","widthUnit":"njësia e gjerësisë"},"stylescombo":{"label":"Stilet","panelTitle":"Formatimi i Stileve","panelTitle1":"Stilet e Bllokut","panelTitle2":"Stilet e Brendshme","panelTitle3":"Stilet e Objektit"},"specialchar":{"options":"Mundësitë për Karaktere Speciale","title":"Përzgjidh Karakter Special","toolbar":"Vendos Karakter Special"},"sourcedialog":{"toolbar":"Burimi","title":"Burimi"},"sourcearea":{"toolbar":"Burimi"},"showblocks":{"toolbar":"Shfaq Blloqet"},"removeformat":{"toolbar":"Largo Formatin"},"pastetext":{"button":"Hidhe si tekst të thjeshtë","pasteNotification":"Shtyp %1 për të hedhur tekstin. Shfletuesi juaj nuk mbështetë hedhjen me pullë shiriti ose alternativën e menysë kontekstuale.","title":"Hidhe si Tekst të Thjeshtë"},"pastefromword":{"confirmCleanup":"Teksti që dëshironi të e hidhni siç duket është kopjuar nga Word-i. Dëshironi të e pastroni para se të e hidhni?","error":"Nuk ishte e mundur të fshiheshin të dhënat e hedhura për shkak të një gabimi të brendshëm","title":"Hidhe nga Word-i","toolbar":"Hidhe nga Word-i"},"notification":{"closed":"Njoftimi është mbyllur."},"maximize":{"maximize":"Zmadho","minimize":"Zvogëlo"},"magicline":{"title":"Shto paragrafin këtu"},"list":{"bulletedlist":"Vendos/Largo Listën me Pika","numberedlist":"Vendos/Largo Listën me Numra"},"language":{"button":"Përzgjidhni gjuhën","remove":"Largoni gjuhën"},"indent":{"indent":"Rrite Identin","outdent":"Zvogëlo Identin"},"image2":{"alt":"Tekst Alternativ","btnUpload":"Dërgo në server","captioned":"Foto e titulluar","captionPlaceholder":"Titulli","infoTab":"Informacione mbi Fotografinë","lockRatio":"Mbyll Racionin","menu":"Karakteristikat e Fotografisë","pathName":"foto","pathNameCaption":"titull","resetSize":"Rikthe Madhësinë","resizer":"Kliko dhe tërhiqe për ndryshim të madhësisë","title":"Karakteristikat e Fotografisë","uploadTab":"Ngarko","urlMissing":"Mungon URL e burimit të fotografisë.","altMissing":"Teksti alternativ mungon."},"horizontalrule":{"toolbar":"Shto Vijë Horizontale"},"format":{"label":"Formati","panelTitle":"Formati i Paragrafit","tag_address":"Adresa","tag_div":"Normal (DIV)","tag_h1":"Titulli 1","tag_h2":"Titulli 2","tag_h3":"Titulli 3","tag_h4":"Titulli 4","tag_h5":"Titulli 5","tag_h6":"Titulli 6","tag_p":"Normal","tag_pre":"Formatuar"},"filetools":{"loadError":"Gabimi u paraqit gjatë leximit të skedës.","networkError":"Gabimi në rrjetë u paraqitë gjatë ngarkimit të skedës.","httpError404":"Gabimi në HTTP u paraqit gjatë ngarkimit të skedës (404: Skeda nuk u gjetë).","httpError403":"Gabimi në HTTP u paraqitë gjatë ngarkimit të skedës (403: E ndaluar).","httpError":"Gabimi në HTTP u paraqit gjatë ngarkimit të skedës (gjendja e gabimit: %1).","noUrlError":"URL e ngarkimit nuk është vendosur.","responseError":"Përgjigje e gabuar e serverit."},"elementspath":{"eleLabel":"Rruga e elementeve","eleTitle":"%1 element"},"contextmenu":{"options":"Mundësitë e Menysë së Kontekstit"},"clipboard":{"copy":"Kopjo","copyError":"Të dhënat e sigurisë së shfletuesit tuaj nuk lejojnë që redaktuesi automatikisht të kryej veprimin e kopjimit. Ju lutemi shfrytëzoni tastierën për këtë veprim (Ctrl/Cmd+C).","cut":"Preje","cutError":"Të dhënat e sigurisë së shfletuesit tuaj nuk lejojnë që redaktuesi automatikisht të kryej veprimin e prerjes. Ju lutemi shfrytëzoni tastierën për këtë veprim (Ctrl/Cmd+X).","paste":"Hidhe","pasteNotification":"Shtyp %1 për të hedhur tekstin. Shfletuesi juaj nuk mbështetë hedhjen me pullë shiriti ose alternativën e menysë kontekstuale.","pasteArea":"Hapësira e Hedhjes","pasteMsg":"Hidh përmbajtjen brenda hapësirës më poshtë dhe shtyp MIRË."},"blockquote":{"toolbar":"Thonjëzat"},"basicstyles":{"bold":"Trash","italic":"Pjerrët","strike":"Nëpërmes","subscript":"Nën-skriptë","superscript":"Super-skriptë","underline":"Nënvijëzuar"},"about":{"copy":"Të drejtat  e autorit &copy; $1. Të gjitha të drejtat e rezervuara.","dlgTitle":"Rreth CKEditor 4","moreInfo":"Për informacione rreth licencave shih faqen tonë:"},"editor":"Redaktues i Pasur Teksti","editorPanel":"Paneli i redaktuesit të tekstit të plotë","common":{"editorHelp":"Shtyp ALT 0 për ndihmë","browseServer":"Shfleto në Server","url":"URL","protocol":"Protokolli","upload":"Ngarko","uploadSubmit":"E dërgo në server","image":"Foto","flash":"Objekt flash","form":"Formulari","checkbox":"Kuti përzgjedhjeje","radio":"Pullë përzgjedhjeje","textField":"Fushë teksti","textarea":"Hapësirë teksti","hiddenField":"Fushë e fshehur","button":"Pullë","select":"Fusha e përzgjedhjeve","imageButton":"Pullë fotografie","notSet":"<not set>","id":"Id","name":"Emri","langDir":"Drejtim gjuhe","langDirLtr":"Nga e majta në të djathtë (LTR)","langDirRtl":"Nga e djathta në të majtë (RTL)","langCode":"Kodi i Gjuhës","longDescr":"URL e përshkrimit të hollësishëm","cssClass":"CSS Klasat","advisoryTitle":"Titulli Konsultativ","cssStyle":"Stili","ok":"Mirë","cancel":"Anulo","close":"Mbyll","preview":"Parashih","resize":"Ndrysho madhësinë","generalTab":"Të përgjithshme","advancedTab":"Të përparuara","validateNumberFailed":"Kjo vlerë nuk është numër.","confirmNewPage":"Çdo ndryshim që nuk është ruajtur do humbasë. Je i sigurt që dëshiron të hapsh faqe të re?","confirmCancel":"Ke ndryshuar ca mundësi. Je i sigurt që dëshiron ta mbyllësh dritaren?","options":"Mundësitë","target":"Objektivi","targetNew":"Dritare e re (_blank)","targetTop":"Dritare në plan të parë (_top)","targetSelf":"E njëjta dritare (_self)","targetParent":"Dritarja prind (_parent)","langDirLTR":"Nga e majta në të djathë (LTR)","langDirRTL":"Nga e djathta në të majtë (RTL)","styles":"Stili","cssClasses":"CSS Klasat","width":"Gjerësia","height":"Lartësia","align":"Rreshtimi","left":"Majtas","right":"Djathtas","center":"Në mes","justify":"Zgjero","alignLeft":"Rreshto majtas","alignRight":"Rreshto Djathtas","alignCenter":"Rreshto në mes","alignTop":"Lart","alignMiddle":"Në mes","alignBottom":"Poshtë","alignNone":"Asnjë","invalidValue":"Vlerë e pavlefshme","invalidHeight":"Lartësia duhet të jetë një numër","invalidWidth":"Gjerësia duhet të jetë një numër","invalidLength":"Vlera e përcaktuar për fushën \"%1\" duhet të jetë pozitive me ose pa njësi matëse me vlerë (%2).","invalidCssLength":"Vlera e fushës \"%1\" duhet të jetë një numër pozitiv me apo pa njësi matëse të vlefshme CSS (px, %, in, cm, mm, em, ex, pt ose pc).","invalidHtmlLength":"Vlera e fushës \"%1\" duhet të jetë një numër pozitiv me apo pa njësi matëse të vlefshme HTML (px ose %)","invalidInlineStyle":"Vlera e përcaktuar për stilin e vijëzuar duhet përmbajtur një ose më shumë vlera me format \"emër : vlerë\", të ndara me pikëpresje.","cssLengthTooltip":"Shto një numër për vlerën në piksel ose një numër me njësi të vlefshme CSS (px, %, in, cm, mm, em, ex, pt, or pc).","unavailable":"%1<span class=\"cke_accessibility\">, i padisponueshëm</span>","keyboard":{"8":"Prapa","13":"Enter","16":"Shift","17":"Ctrl","18":"Alt","32":"Hapësirë","35":"End","36":"Home","46":"Delete","112":"F1","113":"F2","114":"F3","115":"F4","116":"F5","117":"F6","118":"F7","119":"F8","120":"F9","121":"F10","122":"F11","123":"F12","124":"F13","125":"F14","126":"F15","127":"F16","128":"F17","129":"F18","130":"F19","131":"F20","132":"F21","133":"F22","134":"F23","135":"F24","224":"Urdhri"},"keyboardShortcut":"Shkurtesat e tastierës","optionDefault":"Parazgjedhur"}};
\ No newline at end of file
diff --git a/web/core/assets/vendor/ckeditor/lang/sr-latn.js b/web/core/assets/vendor/ckeditor/lang/sr-latn.js
index 20b3142494..d965e75f2a 100644
--- a/web/core/assets/vendor/ckeditor/lang/sr-latn.js
+++ b/web/core/assets/vendor/ckeditor/lang/sr-latn.js
@@ -1,5 +1,5 @@
 /*
-Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2020, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */
 CKEDITOR.lang['sr-latn']={"widget":{"move":"Kliknite i povucite da bi pomerali","label":"%1 modul"},"undo":{"redo":"Ponovi ","undo":"Vrati"},"toolbar":{"toolbarCollapse":"Zatvori alatnu traku","toolbarExpand":"Otvori alatnu traku","toolbarGroups":{"document":"Dokument","clipboard":"Clipboard/Vrati","editing":"Uredi","forms":"Obrasci","basicstyles":"Osnovni stilovi","paragraph":"Pasus","links":"Linkovi","insert":"Dodaj","styles":"Stilovi","colors":"Boje","tools":"Alatke"},"toolbars":"Uredjivač alatne trake"},"table":{"border":"Veličina okvira","caption":"Naslov tabele","cell":{"menu":"Ćelija","insertBefore":"Ubaci levo","insertAfter":"Ubaci desno","deleteCell":"Obriši ćelije","merge":"Spoj ćelije","mergeRight":"Spolj ćelije desno","mergeDown":"Spolj čelije na dole","splitHorizontal":"Razdvoji ćelije vodoravno","splitVertical":"Razdvoji ćelije uspravno","title":"Karakteristike ćelija","cellType":"Tip ćelija","rowSpan":"Spoj uzdužno","colSpan":"Spoj vodoravno","wordWrap":"Brisanje dugačkih redova","hAlign":"Ravnanje vodoravno","vAlign":"Ravnanje uspravno","alignBaseline":"Bazna linija","bgColor":"Boja pozadine","borderColor":"Boja okvira","data":"Podatak","header":"Zaglavlje","yes":"Da","no":"Nе","invalidWidth":"U polje širina možete upisati samo brojeve. ","invalidHeight":"U polje visina možete upisati samo brojeve.","invalidRowSpan":"U polje spoj uspravno  možete upistai samo brojeve.","invalidColSpan":"U polje spoj vodoravno možete upistai samo brojeve.","chooseColor":"Izaberi"},"cellPad":"Razmak ćelija","cellSpace":"Ćelijski prostor","column":{"menu":"Kolona","insertBefore":"Ubaci levo","insertAfter":"Ubaci desno","deleteColumn":"Obriši kolone"},"columns":"Kolona","deleteTable":"Izbriši tabelu","headers":"Zaglavlja","headersBoth":"Oba","headersColumn":"Prva kolona","headersNone":"Nema","headersRow":"Prvi red","heightUnit":"height unit","invalidBorder":"Veličina okvira mora biti broj.","invalidCellPadding":"Padding polja mora biti pozitivan broj.","invalidCellSpacing":"Razmak između ćelija mora biti pozitivan broj.","invalidCols":"Broj kolona mora biti broj veći od 0.","invalidHeight":"Visina tabele mora biti broj.","invalidRows":"Broj redova mora biti veći od 0.","invalidWidth":"Širina tabele mora biti broj.","menu":"Osobine tabele","row":{"menu":"Red","insertBefore":"Ubaci iznad","insertAfter":"Ubaci ispod","deleteRow":"Obriši redove"},"rows":"Redovi","summary":"Opis","title":"Karakteristike tabele","toolbar":"Tabela","widthPc":"procenata","widthPx":"piksela","widthUnit":"jedinica za širinu"},"stylescombo":{"label":"Stil","panelTitle":"Stilovi formatiranja","panelTitle1":"Blok stilovi","panelTitle2":"Inline stilovi","panelTitle3":"Stilovi objekta"},"specialchar":{"options":"Opcije specijalnog karaktera","title":"Odaberite specijalni karakter","toolbar":"Unesi specijalni karakter"},"sourcedialog":{"toolbar":"Izvorni kod","title":"Izvorni kod"},"sourcearea":{"toolbar":"Izvorni kod"},"showblocks":{"toolbar":"Prikaži blokove"},"removeformat":{"toolbar":"Ukloni formatiranje"},"pastetext":{"button":"Zalepi kao neformiran tekst","pasteNotification":"Pritisnite taster % 1 da bi ste nalepili. Pretraživač ne podržava lepljenje pomoću tastera na traci sa alatkama ili iz menija.","title":"Zalepi kao neformiran tekst"},"pastefromword":{"confirmCleanup":"Kopirani tekst je iz Word-a. Želite ga očistiti? ","error":"Zbog interne greške tekst nije očišćen.","title":"Zalepi iz Worda","toolbar":"Zalepi iz Worda"},"notification":{"closed":"Obaveštenje zatvoreno"},"maximize":{"maximize":"Maksimalna veličina","minimize":"Minimalna veličina"},"magicline":{"title":"Umetnite pasus ovde."},"list":{"bulletedlist":"Nаbrajanje","numberedlist":"Numerisanje"},"language":{"button":"Podesi jezik","remove":"Odstrani jezik"},"indent":{"indent":"Uvećaj marginu","outdent":"Smanji marginu"},"image2":{"alt":"Alternativni tekst","btnUpload":"Pošalji na server","captioned":"Slika sa natpisom","captionPlaceholder":"Natpis","infoTab":"Osnovne karakteristike","lockRatio":"Zadrži odnos","menu":"Osobine slike","pathName":"Slika","pathNameCaption":"Natpis","resetSize":"Original  veličina","resizer":"Kliknite i povucite da bi ste promenili veličinu","title":"Osobine slika","uploadTab":"Postavi","urlMissing":"Nedostaje URL slike","altMissing":"Nedostaje alternativni tekst"},"horizontalrule":{"toolbar":"Unesi horizontalnu liniju"},"format":{"label":"Format","panelTitle":"Format pasusa","tag_address":"Adresa","tag_div":"Normalno (DIV)","tag_h1":"Naslov 1","tag_h2":"Naslov 2","tag_h3":"Naslov 3","tag_h4":"Naslov 4","tag_h5":"Naslov 5","tag_h6":"Naslov 6","tag_p":"Normalno","tag_pre":"Formatirano"},"filetools":{"loadError":"Došlo je do greške pri čitanju datoteke.","networkError":"Tokom postavljanja datoteke došlo je do mrežne greške","httpError404":"Tokom postavljanja datoteke došlo je do HTTP greške (404: Datoteka nije pronadjena).","httpError403":"Tokom postavljanja datoteke došlo je do HTTP greške (403: Zabranjena).","httpError":"Tokom postavljanja datoteke došlo je do HTTP greške (status greške: %1).","noUrlError":"URL adresa za postavljanje nije navedena.","responseError":"Neispravan odgovor servera."},"elementspath":{"eleLabel":"Put do elemenata","eleTitle":"%1 element"},"contextmenu":{"options":"Opcije menija"},"clipboard":{"copy":"Kopiraj","copyError":"Sigurnosna podešavanja Vašeg pretraživača ne dozvoljavaju operacije automatskog kopiranja teksta. Molimo Vas da koristite prečicu sa tastature (Ctrl/Cmd+C).","cut":"Iseci","cutError":"Sigurnosna podešavanja Vašeg pretraživača ne dozvoljavaju operacije automatskog isecanja teksta. Molimo Vas da koristite prečicu sa tastature (Ctrl/Cmd+X).","paste":"Zalepi","pasteNotification":"\"Pritisnite taster %1 za lepljenje. Vaš pretraživač ne dozvoljava lepljenje iz alatne trake ili menia.","pasteArea":"Prostor za lepljenje","pasteMsg":"Nalepite sadržaj u sledeći prostor i pritisnite taster OK."},"blockquote":{"toolbar":"Blok citat"},"basicstyles":{"bold":"Podebljano","italic":"Kurziv","strike":"Precrtano","subscript":"Indeks","superscript":"Stepen","underline":"Podvučeno"},"about":{"copy":"Copyright &copy; $1. Sva prava zadržana.","dlgTitle":"O CKEditor 4","moreInfo":"Za informacije o licenci posetite našu web stranicu:"},"editor":"Bogati uređivač teksta","editorPanel":"Bogati uređivač panel","common":{"editorHelp":"Za pomoć pritisnite ALT 0","browseServer":"Pretraži na serveru","url":"URL","protocol":"Protokol","upload":"Pošalji","uploadSubmit":"Pošalji na server","image":"Slika","flash":"Fleš","form":"Formular","checkbox":"Polje za potvrdu","radio":"Radio-dugme","textField":"Tekstualno polje","textarea":"Zona teksta","hiddenField":"Skriveno polje","button":"Dugme","select":"Padajuća lista","imageButton":"Dugme sa slikom","notSet":"<nije postavljeno> ","id":"Id","name":"Naziv","langDir":"Smer pisanja","langDirLtr":"S leva na desno (LTR)","langDirRtl":"S desna na levo (RTL)","langCode":"Kôd jezika","longDescr":"Detaljan opis URL","cssClass":"CSS klase","advisoryTitle":"Advisory naslov","cssStyle":"Stil","ok":"OK","cancel":"Otkaži","close":"Zatvori","preview":"Izgled stranice","resize":"Promena veličine","generalTab":"Opšti","advancedTab":"Dalje opcije","validateNumberFailed":"Ova vrednost nije broj.","confirmNewPage":"Nesačuvane promene ovog sadržaja će biti izgubljene. Jeste li sigurni da želita da učitate novu stranu?","confirmCancel":"Neka podešavanja su promenjena.Sigurno želite zatvoriti prozor?","options":"Podešavanja","target":"Cilj","targetNew":"Novi prozor (_blank)","targetTop":"Prozor na vrhu stranice(_top)","targetSelf":"Isti prozor (_self)","targetParent":"Matični prozor (_parent)","langDirLTR":"S leva na desno (LTR)","langDirRTL":"S desna na levo (RTL)","styles":"Stil","cssClasses":"CSS klase","width":"Širina","height":"Visina","align":"Ravnanje","left":"Levo","right":"Desno","center":"Sredina","justify":"Obostrano ravnanje","alignLeft":"Levo ravnanje","alignRight":"Desno ravnanje","alignCenter":"Centralno ravnanje","alignTop":"Vrh","alignMiddle":"Sredina","alignBottom":"Dole","alignNone":"Ništa","invalidValue":"Nevažeća vrednost.","invalidHeight":"U polje visina mogu se upisati samo brojevi.","invalidWidth":"U polje širina mogu se upisati samo brojevi.","invalidLength":"U \"%1\" polju data vrednos treba da bude pozitivan broj, sa validnom mernom jedinicom ili bez (%2).","invalidCssLength":"Za \"%1\" data vrednost mora biti pozitivan broj, moguće označiti sa validnim CSS vrednosću (px, %, in, cm, mm, em, ex, pt, or pc).","invalidHtmlLength":"Za \"%1\" data vrednost mora biti potitivan broj, moguće označiti sa validnim HTML vrednošću (px or %).","invalidInlineStyle":"Vrednost u inline styleu mora da sadrži barem jedan rekord u formatu \"name : value\", razdeljeni sa tačkazapetom.","cssLengthTooltip":"Odredite broj u pixeima ili u validnim CSS vrednostima (px, %, in, cm, mm, em, ex, pt, or pc).","unavailable":"%1<span class=\"cke_accessibility\">, unavailable</span>","keyboard":{"8":"Backspace","13":"Enter","16":"Shift","17":"Ctrl","18":"Alt","32":"Space","35":"End","36":"Home","46":"Delete","112":"F1","113":"F2","114":"F3","115":"F4","116":"F5","117":"F6","118":"F7","119":"F8","120":"F9","121":"F10","122":"F11","123":"F12","124":"F13","125":"F14","126":"F15","127":"F16","128":"F17","129":"F18","130":"F19","131":"F20","132":"F21","133":"F22","134":"F23","135":"F24","224":"Command"},"keyboardShortcut":"Taster za prečicu","optionDefault":"Оsnovni"}};
\ No newline at end of file
diff --git a/web/core/assets/vendor/ckeditor/lang/sr.js b/web/core/assets/vendor/ckeditor/lang/sr.js
index 0d353180b4..e9a782ca1b 100644
--- a/web/core/assets/vendor/ckeditor/lang/sr.js
+++ b/web/core/assets/vendor/ckeditor/lang/sr.js
@@ -1,5 +1,5 @@
 /*
-Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2020, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */
 CKEDITOR.lang['sr']={"widget":{"move":"Кликните и повуците да би померали","label":"%1 модул"},"undo":{"redo":"Понови ","undo":"Врати"},"toolbar":{"toolbarCollapse":"Затвори алатну траку","toolbarExpand":"Отвори алатну траку","toolbarGroups":{"document":"Документ","clipboard":"Clipboard/Врати","editing":"Уреди","forms":"Обрасци","basicstyles":"Основни стилови","paragraph":"Пасус","links":"Линкови","insert":"Додај","styles":"Стилови","colors":"Боје","tools":"Алатке"},"toolbars":"Уређивач алатне траке"},"table":{"border":"Величина оквира","caption":"Наслов табеле","cell":{"menu":"Ћелија","insertBefore":"Убаци лево","insertAfter":"Убаци десно","deleteCell":"Обриши ћелије","merge":"Спој ћелије","mergeRight":"Спој ћелије на десно","mergeDown":"Спој ћелије на доле","splitHorizontal":"Раздвој ћелије водоравно","splitVertical":"Раздвој ћелије усправно","title":"Карактеристика ћелија","cellType":"Тип ћелија","rowSpan":"Спој уздужно","colSpan":"Спој водоравно","wordWrap":"Брисање дугачких редова","hAlign":"Равнање водоравно","vAlign":"Равнање усправно","alignBaseline":"Базна линија","bgColor":"Боја позадине","borderColor":"Боја оквира","data":"Податак","header":"Наслов","yes":"Да","no":"Не","invalidWidth":"У поље ширина можете уписати само бројеве.","invalidHeight":"У поље висина можете уписати само бројеве.","invalidRowSpan":"У поље спој усправно можете уписати само бројеве.","invalidColSpan":"У поље спој водоравно можете уписати само бројеве.","chooseColor":"Изабери"},"cellPad":"Размак ћелија","cellSpace":"Ћелијски простор","column":{"menu":"Колона","insertBefore":"Убаци лево","insertAfter":"Убаци десно","deleteColumn":"Обриши колоне"},"columns":"Kолона","deleteTable":"Обриши таблу","headers":"Поглавља","headersBoth":"Оба","headersColumn":"Прва колона","headersNone":"Нема","headersRow":"Први ред","heightUnit":"height unit","invalidBorder":"Величина ивице треба да буде цифра.","invalidCellPadding":"Пуњење ћелије треба да буде позитивна цифра.","invalidCellSpacing":"Размак ћелије треба да буде позитивна цифра.","invalidCols":"Број колона треба да буде цифра већа од 0.","invalidHeight":"Висина табеле треба да буде цифра.","invalidRows":"Број реда треба да буде цифра већа од 0.","invalidWidth":"Ширина табеле треба да буде цифра.","menu":"Карактеристике табеле","row":{"menu":"Ред","insertBefore":"Убаци изнад","insertAfter":"Убаци испод","deleteRow":"Обриши редове"},"rows":"Редови","summary":"Oпис","title":"Карактеристике табеле","toolbar":"Табела","widthPc":"процената","widthPx":"пиксела","widthUnit":"јединица ширине"},"stylescombo":{"label":"Стил","panelTitle":"Стилови форматирања","panelTitle1":"Блок стилови","panelTitle2":"Инлине стилови","panelTitle3":"Стилови објекта"},"specialchar":{"options":"Опције специјалног карактера","title":"Одаберите специјални карактер","toolbar":"Унеси специјални карактер"},"sourcedialog":{"toolbar":"Изворни код","title":"Изворни код"},"sourcearea":{"toolbar":"Изворни код"},"showblocks":{"toolbar":"Прикажи блокове"},"removeformat":{"toolbar":"Уклони форматирање"},"pastetext":{"button":"Залепи као неформиран текст","pasteNotification":"Притисните% 1 да бисте налепили. Претраживач не подржава лепљење помоћу тастера на траци са алаткама или из менија.","title":"Залепи као неформиран текст"},"pastefromword":{"confirmCleanup":"Уметнути текст је копиран из Word-а.  Желите га очитити? ","error":"Због интерне грешке текст није очишћен.","title":"Залепи из Worda","toolbar":"Залепи из Worda"},"notification":{"closed":"Обавештење затворено"},"maximize":{"maximize":"Максимална величина","minimize":"Минимлна величина"},"magicline":{"title":"Уметните пасус овде."},"list":{"bulletedlist":"Набрајање","numberedlist":"Нумерисање"},"language":{"button":"Подеси језик","remove":"Одстрани језик"},"indent":{"indent":"Увећај леву маргину","outdent":"Смањи маргину"},"image2":{"alt":"Алтернативни текст","btnUpload":"Пошаљи на сервер","captioned":"Слика са натписом","captionPlaceholder":"Натпис","infoTab":"Основне карактеристике","lockRatio":"Задржи однос","menu":"Особине слика","pathName":"Слика","pathNameCaption":"Натпис","resetSize":"Оригинална величина","resizer":"Кликните и повуците да би сте променили величину","title":"Карактеристике слике","uploadTab":"Постави","urlMissing":"Недостаје УРЛ слике.","altMissing":"Недостаје алтернативни текст."},"horizontalrule":{"toolbar":"Унеси хоризонталну линију"},"format":{"label":"Формат","panelTitle":"Формат пасуса","tag_address":"Адреса","tag_div":"Нормално (DIV)","tag_h1":"Наслов 1","tag_h2":"Наслов 2","tag_h3":" Наслов 3","tag_h4":"Наслов 4","tag_h5":"Наслов 5","tag_h6":"Наслов 6","tag_p":"Нормално","tag_pre":"Форматирано"},"filetools":{"loadError":"Дошло је до грешке при читању датотеке.","networkError":"Током постављања датотеке дошло је до мрежне грешке.","httpError404":"Током постављања датотеке дошло је до ХТТП грешке (404: Датотека није пронађена).","httpError403":"Током постављања датотеке дошло је до ХТТП грешке (403: Забрањена).","httpError":"Током постављања датотеке дошло је до ХТТП грешке (статус грешке: %1).","noUrlError":"УРЛ адреса за постављање није наведена.","responseError":"Неисправан одговор сервера."},"elementspath":{"eleLabel":"Пут до елемената","eleTitle":"%1 eлемент"},"contextmenu":{"options":"Опције менија"},"clipboard":{"copy":"Копирај","copyError":"Сигурносна подешавања Вашег претраживача не дозвољавају операције аутоматског копирања текста. Молимо Вас да користите пречицу са тастатуре (Ctrl/Cmd+C).","cut":"Исеци","cutError":"Сигурносна подешавања Вашег претраживача не дозвољавају операције аутоматског исецања текста. Молимо Вас да користите пречицу са тастатуре (Ctrl/Cmd+X).","paste":"Залепи","pasteNotification":"Притисните тастер %1 за лепљење. Ваш ретраживач не дозвољаба лепљење из алатне траке или мениа.","pasteArea":"Залепи зону","pasteMsg":"Налепите садржај у следећи простор и притисните тастер OK."},"blockquote":{"toolbar":"Блок цитат"},"basicstyles":{"bold":"Подебљано","italic":"Курзив","strike":"Прецртано","subscript":"Индекс","superscript":"Степен","underline":"Подвучено"},"about":{"copy":"Copyright &copy; $1. Сва права задржана.","dlgTitle":"О CKEditor 4","moreInfo":"За информације о лиценци посетите нашу веб страницу:"},"editor":"ХТМЛ уређивач текста","editorPanel":"ХТМЛ уређивач панел","common":{"editorHelp":"За помоћ притисните АЛТ 0","browseServer":"Претражи на серверу","url":"УРЛ","protocol":"Протокол","upload":"Пошаљи","uploadSubmit":"Пошаљи на сервер","image":"Слика","flash":"Флеш елемент","form":"Формулар","checkbox":"Поље за потврду","radio":"Радио-дугме","textField":"Текстуално поље","textarea":"Зона текста","hiddenField":"Скривено поље","button":"Дугме","select":"Падајућа листа","imageButton":"Дугме са сликом","notSet":"<није постављено>","id":"Ид","name":"Назив","langDir":"Смер писања","langDirLtr":"С лева на десно (LTR)","langDirRtl":"С десна на лево (RTL)","langCode":"Kôд језика","longDescr":"Пун опис УРЛ","cssClass":"ЦСС класе","advisoryTitle":"Advisory наслов","cssStyle":"Стил","ok":"OK","cancel":"Oткажи","close":"Затвори","preview":"Изглед странице","resize":"Промена величине","generalTab":"Општи","advancedTab":"Далје опције","validateNumberFailed":"Ова вредност није број.","confirmNewPage":"Несачуване промене овог садржаја ће бити изгублјене. Јесте ли сигурни да желите да учитате нову страну","confirmCancel":"Нека подешавања су променјена. Сигурмо желите затворити обај прозор?","options":"Подешавања","target":"Циљ","targetNew":"Ноби прозор (_blank)","targetTop":"Прозор на врху странице (_top)","targetSelf":"Исти прозор (_self)","targetParent":"Матични прозор(_parent)","langDirLTR":"С лева на десно (LTR)","langDirRTL":"С десна на лево (RTL)","styles":"Стил","cssClasses":"ЦСС класе","width":"Ширина","height":"Висина","align":"Равнање","left":"Лево","right":"Десно","center":"Средина","justify":"Обострано равнање","alignLeft":"Лево равнање","alignRight":"Десно равнање","alignCenter":"Централно равнанје","alignTop":"Врх","alignMiddle":"Средина","alignBottom":"Доле","alignNone":"Ништа","invalidValue":"Неважећа вредност.","invalidHeight":"У поље висина могу се уписати само бројеви.","invalidWidth":"У поље ширина могу се уписати само бројеви.","invalidLength":"У \"%1\" полју дата вредност треба да будепозитиван број са валидном мерном јединицом или без ње (%2).","invalidCssLength":"За \"%1\" дата вредност мора бити позитиван број, могуће означити са валидним ЦСС вредошћу (px, %, in, cm, mm, em, ex, pt, or pc).","invalidHtmlLength":"Зa \"%1\" дата вредност мора бити позитиван број, могуће означити са валидним ХТМЛ вредношћу (px or %).","invalidInlineStyle":"Вреднодст у инлине стилу мора да садржи барем један рекорд у формату \"name : value\", раздељени са тачказапетом.","cssLengthTooltip":"Одредите број у пикселима или у валидним ЦСС вредностима (px, %, in, cm, mm, em, ex, pt, or pc).","unavailable":"%1<span class=\"cke_accessibility\">, unavailable</span>","keyboard":{"8":"Backspace","13":"Enter","16":"Shift","17":"Ctrl","18":"Alt","32":"Space","35":"End","36":"Home","46":"Delete","112":"F1","113":"F2","114":"F3","115":"F4","116":"F5","117":"F6","118":"F7","119":"F8","120":"F9","121":"F10","122":"F11","123":"F12","124":"F13","125":"F14","126":"F15","127":"F16","128":"F17","129":"F18","130":"F19","131":"F20","132":"F21","133":"F22","134":"F23","135":"F24","224":"Command"},"keyboardShortcut":"Tастер за пречицу","optionDefault":"Основни"}};
\ No newline at end of file
diff --git a/web/core/assets/vendor/ckeditor/lang/sv.js b/web/core/assets/vendor/ckeditor/lang/sv.js
index 28421f541a..61ba21c5d6 100644
--- a/web/core/assets/vendor/ckeditor/lang/sv.js
+++ b/web/core/assets/vendor/ckeditor/lang/sv.js
@@ -1,5 +1,5 @@
 /*
-Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2020, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */
 CKEDITOR.lang['sv']={"widget":{"move":"Klicka och drag för att flytta","label":"%1-widget"},"undo":{"redo":"Gör om","undo":"Ångra"},"toolbar":{"toolbarCollapse":"Dölj verktygsfält","toolbarExpand":"Visa verktygsfält","toolbarGroups":{"document":"Dokument","clipboard":"Urklipp/ångra","editing":"Redigering","forms":"Formulär","basicstyles":"Basstilar","paragraph":"Paragraf","links":"Länkar","insert":"Infoga","styles":"Stilar","colors":"Färger","tools":"Verktyg"},"toolbars":"Editorns verktygsfält"},"table":{"border":"Kantstorlek","caption":"Rubrik","cell":{"menu":"Cell","insertBefore":"Lägg till cell före","insertAfter":"Lägg till cell efter","deleteCell":"Radera celler","merge":"Sammanfoga celler","mergeRight":"Sammanfoga höger","mergeDown":"Sammanfoga ner","splitHorizontal":"Dela cell horisontellt","splitVertical":"Dela cell vertikalt","title":"Egenskaper för cell","cellType":"Celltyp","rowSpan":"Rad spann","colSpan":"Kolumnen spann","wordWrap":"Radbrytning","hAlign":"Horisontell justering","vAlign":"Vertikal justering","alignBaseline":"Baslinje","bgColor":"Bakgrundsfärg","borderColor":"Ramfärg","data":"Data","header":"Rubrik","yes":"Ja","no":"Nej","invalidWidth":"Cellens bredd måste vara ett nummer.","invalidHeight":"Cellens höjd måste vara ett nummer.","invalidRowSpan":"Radutvidgning måste vara ett heltal.","invalidColSpan":"Kolumn måste vara ett heltal.","chooseColor":"Välj"},"cellPad":"Cellutfyllnad","cellSpace":"Cellavstånd","column":{"menu":"Kolumn","insertBefore":"Lägg till kolumn före","insertAfter":"Lägg till kolumn efter","deleteColumn":"Radera kolumn"},"columns":"Kolumner","deleteTable":"Radera tabell","headers":"Rubriker","headersBoth":"Båda","headersColumn":"Första kolumnen","headersNone":"Ingen","headersRow":"Första raden","heightUnit":"height unit","invalidBorder":"Ram måste vara ett nummer.","invalidCellPadding":"Luft i cell måste vara ett nummer.","invalidCellSpacing":"Luft i cell måste vara ett nummer.","invalidCols":"Antal kolumner måste vara ett nummer större än 0.","invalidHeight":"Tabellens höjd måste vara ett nummer.","invalidRows":"Antal rader måste vara större än 0.","invalidWidth":"Tabell måste vara ett nummer.","menu":"Tabellegenskaper","row":{"menu":"Rad","insertBefore":"Lägg till rad före","insertAfter":"Lägg till rad efter","deleteRow":"Radera rad"},"rows":"Rader","summary":"Sammanfattning","title":"Tabellegenskaper","toolbar":"Tabell","widthPc":"procent","widthPx":"pixlar","widthUnit":"enhet bredd"},"stylescombo":{"label":"Stilar","panelTitle":"Formateringsstilar","panelTitle1":"Blockstilar","panelTitle2":"Inbäddade stilar","panelTitle3":"Objektstilar"},"specialchar":{"options":"Alternativ för utökade tecken","title":"Välj utökat tecken","toolbar":"Klistra in utökat tecken"},"sourcedialog":{"toolbar":"Källa","title":"Källa"},"sourcearea":{"toolbar":"Källa"},"showblocks":{"toolbar":"Visa block"},"removeformat":{"toolbar":"Radera formatering"},"pastetext":{"button":"Klistra in som vanlig text","pasteNotification":"Press %1 to paste. Your browser doesn‘t support pasting with the toolbar button or context menu option.","title":"Klistra in som vanlig text"},"pastefromword":{"confirmCleanup":"Texten du vill klistra in verkar vara kopierad från Word. Vill du rensa den innan du klistrar in den?","error":"Det var inte möjligt att städa upp den inklistrade data på grund av ett internt fel","title":"Klistra in från Word","toolbar":"Klistra in från Word"},"notification":{"closed":"Notifiering stängd."},"maximize":{"maximize":"Maximera","minimize":"Minimera"},"magicline":{"title":"Infoga paragraf här"},"list":{"bulletedlist":"Infoga/ta bort punktlista","numberedlist":"Infoga/ta bort numrerad lista"},"language":{"button":"Sätt språk","remove":"Ta bort språk"},"indent":{"indent":"Öka indrag","outdent":"Minska indrag"},"image2":{"alt":"Alternativ text","btnUpload":"Skicka till server","captioned":"Rubricerad bild","captionPlaceholder":"Bildtext","infoTab":"Bildinformation","lockRatio":"Lås höjd/bredd förhållanden","menu":"Bildegenskaper","pathName":"bild","pathNameCaption":"rubrik","resetSize":"Återställ storlek","resizer":"Klicka och drag för att ändra storlek","title":"Bildegenskaper","uploadTab":"Ladda upp","urlMissing":"Bildkällans URL saknas.","altMissing":"Alternativ text saknas"},"horizontalrule":{"toolbar":"Infoga horisontal linje"},"format":{"label":"Teckenformat","panelTitle":"Teckenformat","tag_address":"Adress","tag_div":"Normal (DIV)","tag_h1":"Rubrik 1","tag_h2":"Rubrik 2","tag_h3":"Rubrik 3","tag_h4":"Rubrik 4","tag_h5":"Rubrik 5","tag_h6":"Rubrik 6","tag_p":"Normal","tag_pre":"Formaterad"},"filetools":{"loadError":"Fel uppstod vid filläsning","networkError":"Nätverksfel uppstod vid filuppladdning.","httpError404":"HTTP-fel uppstod vid filuppladdning (404: Fil hittades inte).","httpError403":"HTTP-fel uppstod vid filuppladdning (403: Förbjuden).","httpError":"HTTP-fel uppstod vid filuppladdning (felstatus: %1).","noUrlError":"URL för uppladdning inte definierad.","responseError":"Felaktigt serversvar."},"elementspath":{"eleLabel":"Elementets sökväg","eleTitle":"%1 element"},"contextmenu":{"options":"Context Menu Options"},"clipboard":{"copy":"Kopiera","copyError":"Säkerhetsinställningar i din webbläsare tillåter inte åtgärden kopiera. Använd (Ctrl/Cmd+C) istället.","cut":"Klipp ut","cutError":"Säkerhetsinställningar i din webbläsare tillåter inte åtgärden klipp ut. Använd (Ctrl/Cmd+X) istället.","paste":"Klistra in","pasteNotification":"Tryck på %1 för att klistra in. Din webbläsare stödjer inte inklistring via verktygsfältet eller snabbmenyn.","pasteArea":"Inklistringsområde","pasteMsg":"Klistra in ditt innehåll i området nedan och tryck på OK."},"blockquote":{"toolbar":"Blockcitat"},"basicstyles":{"bold":"Fet","italic":"Kursiv","strike":"Genomstruken","subscript":"Nedsänkta tecken","superscript":"Upphöjda tecken","underline":"Understruken"},"about":{"copy":"Copyright &copy; $1. Alla rättigheter reserverade.","dlgTitle":"Om CKEditor 4","moreInfo":"För information om licensiering besök vår hemsida:"},"editor":"Rich Text-editor","editorPanel":"Panel till Rich Text-editor","common":{"editorHelp":"Tryck ALT 0 för hjälp","browseServer":"Bläddra på server","url":"URL","protocol":"Protokoll","upload":"Ladda upp","uploadSubmit":"Skicka till server","image":"Bild","flash":"Flash","form":"Formulär","checkbox":"Kryssruta","radio":"Alternativknapp","textField":"Textfält","textarea":"Textruta","hiddenField":"Dolt fält","button":"Knapp","select":"Flervalslista","imageButton":"Bildknapp","notSet":"<ej angivet>","id":"Id","name":"Namn","langDir":"Språkriktning","langDirLtr":"Vänster till Höger (VTH)","langDirRtl":"Höger till Vänster (HTV)","langCode":"Språkkod","longDescr":"URL-beskrivning","cssClass":"Stilmall","advisoryTitle":"Titel","cssStyle":"Stilmall","ok":"OK","cancel":"Avbryt","close":"Stäng","preview":"Förhandsgranska","resize":"Dra för att ändra storlek","generalTab":"Allmänt","advancedTab":"Avancerad","validateNumberFailed":"Värdet är inte ett nummer.","confirmNewPage":"Alla ändringar i innehållet kommer att förloras. Är du säker på att du vill ladda en ny sida?","confirmCancel":"Några av alternativen har ändrats. Är du säker på att du vill stänga dialogrutan?","options":"Alternativ","target":"Mål","targetNew":"Nytt fönster (_blank)","targetTop":"Översta fönstret (_top)","targetSelf":"Samma fönster (_self)","targetParent":"Föregående fönster (_parent)","langDirLTR":"Vänster till höger (LTR)","langDirRTL":"Höger till vänster (RTL)","styles":"Stil","cssClasses":"Stilmallar","width":"Bredd","height":"Höjd","align":"Justering","left":"Vänster","right":"Höger","center":"Centrerad","justify":"Justera till marginaler","alignLeft":"Vänsterjustera","alignRight":"Högerjustera","alignCenter":"Centrera","alignTop":"Överkant","alignMiddle":"Mitten","alignBottom":"Nederkant","alignNone":"Ingen","invalidValue":"Felaktigt värde.","invalidHeight":"Höjd måste vara ett nummer.","invalidWidth":"Bredd måste vara ett nummer.","invalidLength":"Värdet för fältet \"%1\" måste vara ett positivt nummer med eller utan en giltig mätenhet (%2).","invalidCssLength":"Värdet för fältet \"%1\" måste vara ett positivt nummer med eller utan CSS-mätenheter (px, %, in, cm, mm, em, ex, pt, eller pc).","invalidHtmlLength":"Värdet för fältet \"%1\" måste vara ett positivt nummer med eller utan godkända HTML-mätenheter (px eller %).","invalidInlineStyle":"Det angivna värdet för style måste innehålla en eller flera tupler separerade med semikolon i följande format: \"name : value\"","cssLengthTooltip":"Ange ett nummer i pixlar eller ett nummer men godkänd CSS-mätenhet (px, %, in, cm, mm, em, ex, pt, eller pc).","unavailable":"%1<span class=\"cke_accessibility\">, Ej tillgänglig</span>","keyboard":{"8":"Backsteg","13":"Retur","16":"Skift","17":"Ctrl","18":"Alt","32":"Mellanslag","35":"Slut","36":"Hem","46":"Radera","112":"F1","113":"F2","114":"F3","115":"F4","116":"F5","117":"F6","118":"F7","119":"F8","120":"F9","121":"F10","122":"F11","123":"F12","124":"F13","125":"F14","126":"F15","127":"F16","128":"F17","129":"F18","130":"F19","131":"F20","132":"F21","133":"F22","134":"F23","135":"F24","224":"Kommando"},"keyboardShortcut":"Kortkommando","optionDefault":"Standard"}};
\ No newline at end of file
diff --git a/web/core/assets/vendor/ckeditor/lang/th.js b/web/core/assets/vendor/ckeditor/lang/th.js
index 4359385abf..b7e48b642e 100644
--- a/web/core/assets/vendor/ckeditor/lang/th.js
+++ b/web/core/assets/vendor/ckeditor/lang/th.js
@@ -1,5 +1,5 @@
 /*
-Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2020, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */
 CKEDITOR.lang['th']={"widget":{"move":"Click and drag to move","label":"%1 widget"},"undo":{"redo":"ทำซ้ำคำสั่ง","undo":"ยกเลิกคำสั่ง"},"toolbar":{"toolbarCollapse":"ซ่อนแถบเครื่องมือ","toolbarExpand":"เปิดแถบเครื่องมือ","toolbarGroups":{"document":"Document","clipboard":"Clipboard/Undo","editing":"Editing","forms":"Forms","basicstyles":"Basic Styles","paragraph":"Paragraph","links":"Links","insert":"Insert","styles":"Styles","colors":"Colors","tools":"Tools"},"toolbars":"แถบเครื่องมือช่วยพิมพ์ข้อความ"},"table":{"border":"ขนาดเส้นขอบ","caption":"หัวเรื่องของตาราง","cell":{"menu":"ช่องตาราง","insertBefore":"Insert Cell Before","insertAfter":"Insert Cell After","deleteCell":"ลบช่อง","merge":"ผสานช่อง","mergeRight":"Merge Right","mergeDown":"Merge Down","splitHorizontal":"Split Cell Horizontally","splitVertical":"Split Cell Vertically","title":"Cell Properties","cellType":"Cell Type","rowSpan":"Rows Span","colSpan":"Columns Span","wordWrap":"Word Wrap","hAlign":"Horizontal Alignment","vAlign":"Vertical Alignment","alignBaseline":"Baseline","bgColor":"Background Color","borderColor":"Border Color","data":"Data","header":"Header","yes":"Yes","no":"No","invalidWidth":"Cell width must be a number.","invalidHeight":"Cell height must be a number.","invalidRowSpan":"Rows span must be a whole number.","invalidColSpan":"Columns span must be a whole number.","chooseColor":"Choose"},"cellPad":"ระยะแนวตั้ง","cellSpace":"ระยะแนวนอนน","column":{"menu":"คอลัมน์","insertBefore":"Insert Column Before","insertAfter":"Insert Column After","deleteColumn":"ลบสดมน์"},"columns":"สดมน์","deleteTable":"ลบตาราง","headers":"ส่วนหัว","headersBoth":"ทั้งสองอย่าง","headersColumn":"คอลัมน์แรก","headersNone":"None","headersRow":"แถวแรก","heightUnit":"height unit","invalidBorder":"ขนาดเส้นกรอบต้องเป็นจำนวนตัวเลข","invalidCellPadding":"ช่องว่างภายในเซลล์ต้องเลขจำนวนบวก","invalidCellSpacing":"ช่องว่างภายในเซลล์ต้องเป็นเลขจำนวนบวก","invalidCols":"จำนวนคอลัมน์ต้องเป็นจำนวนมากกว่า 0","invalidHeight":"ส่วนสูงของตารางต้องเป็นตัวเลข","invalidRows":"จำนวนของแถวต้องเป็นจำนวนมากกว่า 0","invalidWidth":"ความกว้างตารางต้องเป็นตัวเลข","menu":"คุณสมบัติของ ตาราง","row":{"menu":"แถว","insertBefore":"Insert Row Before","insertAfter":"Insert Row After","deleteRow":"ลบแถว"},"rows":"แถว","summary":"สรุปความ","title":"คุณสมบัติของ ตาราง","toolbar":"ตาราง","widthPc":"เปอร์เซ็น","widthPx":"จุดสี","widthUnit":"หน่วยความกว้าง"},"stylescombo":{"label":"ลักษณะ","panelTitle":"Formatting Styles","panelTitle1":"Block Styles","panelTitle2":"Inline Styles","panelTitle3":"Object Styles"},"specialchar":{"options":"Special Character Options","title":"แทรกตัวอักษรพิเศษ","toolbar":"แทรกตัวอักษรพิเศษ"},"sourcedialog":{"toolbar":"ดูรหัส HTML","title":"ดูรหัส HTML"},"sourcearea":{"toolbar":"ดูรหัส HTML"},"showblocks":{"toolbar":"แสดงบล็อคข้อมูล"},"removeformat":{"toolbar":"ล้างรูปแบบ"},"pastetext":{"button":"วางแบบตัวอักษรธรรมดา","pasteNotification":"Press %1 to paste. Your browser doesn‘t support pasting with the toolbar button or context menu option.","title":"วางแบบตัวอักษรธรรมดา"},"pastefromword":{"confirmCleanup":"ข้อความที่คุณต้องการวางลงไปเป็นข้อความที่คัดลอกมาจากโปรแกรมไมโครซอฟท์เวิร์ด คุณต้องการล้างค่าข้อความดังกล่าวก่อนวางลงไปหรือไม่?","error":"ไม่สามารถล้างข้อมูลที่ต้องการวางได้เนื่องจากเกิดข้อผิดพลาดภายในระบบ","title":"วางสำเนาจากตัวอักษรเวิร์ด","toolbar":"วางสำเนาจากตัวอักษรเวิร์ด"},"notification":{"closed":"Notification closed."},"maximize":{"maximize":"ขยายใหญ่","minimize":"ย่อขนาด"},"magicline":{"title":"Insert paragraph here"},"list":{"bulletedlist":"ลำดับรายการแบบสัญลักษณ์","numberedlist":"ลำดับรายการแบบตัวเลข"},"language":{"button":"Set language","remove":"Remove language"},"indent":{"indent":"เพิ่มระยะย่อหน้า","outdent":"ลดระยะย่อหน้า"},"image2":{"alt":"คำประกอบรูปภาพ","btnUpload":"อัพโหลดไฟล์ไปเก็บไว้ที่เครื่องแม่ข่าย (เซิร์ฟเวอร์)","captioned":"Captioned image","captionPlaceholder":"Caption","infoTab":"ข้อมูลของรูปภาพ","lockRatio":"กำหนดอัตราส่วน กว้าง-สูง แบบคงที่","menu":"คุณสมบัติของ รูปภาพ","pathName":"image","pathNameCaption":"caption","resetSize":"กำหนดรูปเท่าขนาดจริง","resizer":"Click and drag to resize","title":"คุณสมบัติของ รูปภาพ","uploadTab":"อัพโหลดไฟล์","urlMissing":"Image source URL is missing.","altMissing":"Alternative text is missing."},"horizontalrule":{"toolbar":"แทรกเส้นคั่นบรรทัด"},"format":{"label":"รูปแบบ","panelTitle":"รูปแบบ","tag_address":"Address","tag_div":"Paragraph (DIV)","tag_h1":"Heading 1","tag_h2":"Heading 2","tag_h3":"Heading 3","tag_h4":"Heading 4","tag_h5":"Heading 5","tag_h6":"Heading 6","tag_p":"Normal","tag_pre":"Formatted"},"filetools":{"loadError":"Error occurred during file read.","networkError":"Network error occurred during file upload.","httpError404":"HTTP error occurred during file upload (404: File not found).","httpError403":"HTTP error occurred during file upload (403: Forbidden).","httpError":"HTTP error occurred during file upload (error status: %1).","noUrlError":"Upload URL is not defined.","responseError":"Incorrect server response."},"elementspath":{"eleLabel":"Elements path","eleTitle":"%1 element"},"contextmenu":{"options":"Context Menu Options"},"clipboard":{"copy":"สำเนา","copyError":"ไม่สามารถสำเนาข้อความที่เลือกไว้ได้เนื่องจากการกำหนดค่าระดับความปลอดภัย. กรุณาใช้ปุ่มลัดเพื่อวางข้อความแทน (กดปุ่ม Ctrl/Cmd และตัว C พร้อมกัน).","cut":"ตัด","cutError":"ไม่สามารถตัดข้อความที่เลือกไว้ได้เนื่องจากการกำหนดค่าระดับความปลอดภัย. กรุณาใช้ปุ่มลัดเพื่อวางข้อความแทน (กดปุ่ม Ctrl/Cmd และตัว X พร้อมกัน).","paste":"วาง","pasteNotification":"Press %1 to paste. Your browser doesn‘t support pasting with the toolbar button or context menu option.","pasteArea":"Paste Area","pasteMsg":"Paste your content inside the area below and press OK."},"blockquote":{"toolbar":"Block Quote"},"basicstyles":{"bold":"ตัวหนา","italic":"ตัวเอียง","strike":"ตัวขีดเส้นทับ","subscript":"ตัวห้อย","superscript":"ตัวยก","underline":"ตัวขีดเส้นใต้"},"about":{"copy":"Copyright &copy; $1. All rights reserved.","dlgTitle":"About CKEditor 4","moreInfo":"For licensing information please visit our web site:"},"editor":"Rich Text Editor","editorPanel":"Rich Text Editor panel","common":{"editorHelp":"กด ALT 0 หากต้องการความช่วยเหลือ","browseServer":"เปิดหน้าต่างจัดการไฟล์อัพโหลด","url":"ที่อยู่อ้างอิง URL","protocol":"โปรโตคอล","upload":"อัพโหลดไฟล์","uploadSubmit":"อัพโหลดไฟล์ไปเก็บไว้ที่เครื่องแม่ข่าย (เซิร์ฟเวอร์)","image":"รูปภาพ","flash":"ไฟล์ Flash","form":"แบบฟอร์ม","checkbox":"เช็คบ๊อก","radio":"เรดิโอบัตตอน","textField":"เท็กซ์ฟิลด์","textarea":"เท็กซ์แอเรีย","hiddenField":"ฮิดเดนฟิลด์","button":"ปุ่ม","select":"แถบตัวเลือก","imageButton":"ปุ่มแบบรูปภาพ","notSet":"<ไม่ระบุ>","id":"ไอดี","name":"ชื่อ","langDir":"การเขียน-อ่านภาษา","langDirLtr":"จากซ้ายไปขวา (LTR)","langDirRtl":"จากขวามาซ้าย (RTL)","langCode":"รหัสภาษา","longDescr":"คำอธิบายประกอบ URL","cssClass":"คลาสของไฟล์กำหนดลักษณะการแสดงผล","advisoryTitle":"คำเกริ่นนำ","cssStyle":"ลักษณะการแสดงผล","ok":"ตกลง","cancel":"ยกเลิก","close":"ปิด","preview":"ดูหน้าเอกสารตัวอย่าง","resize":"ปรับขนาด","generalTab":"ทั่วไป","advancedTab":"ขั้นสูง","validateNumberFailed":"ค่านี้ไม่ใช่ตัวเลข","confirmNewPage":"การเปลี่ยนแปลงใดๆ ในเนื้อหานี้ ที่ไม่ได้ถูกบันทึกไว้ จะสูญหายทั้งหมด คุณแน่ใจว่าจะเรียกหน้าใหม่?","confirmCancel":"ตัวเลือกบางตัวมีการเปลี่ยนแปลง คุณแน่ใจว่าจะปิดกล่องโต้ตอบนี้?","options":"ตัวเลือก","target":"การเปิดหน้าลิงค์","targetNew":"หน้าต่างใหม่ (_blank)","targetTop":"Topmost Window (_top)","targetSelf":"หน้าต่างเดียวกัน (_self)","targetParent":"Parent Window (_parent)","langDirLTR":"จากซ้ายไปขวา (LTR)","langDirRTL":"จากขวามาซ้าย (RTL)","styles":"ลักษณะการแสดงผล","cssClasses":"คลาสของไฟล์กำหนดลักษณะการแสดงผล","width":"ความกว้าง","height":"ความสูง","align":"การจัดวาง","left":"ชิดซ้าย","right":"ชิดขวา","center":"กึ่งกลาง","justify":"நியாயப்படுத்தவும்","alignLeft":"จัดชิดซ้าย","alignRight":"จัดชิดขวา","alignCenter":"Align Center","alignTop":"บนสุด","alignMiddle":"กึ่งกลางแนวตั้ง","alignBottom":"ชิดด้านล่าง","alignNone":"None","invalidValue":"ค่าไม่ถูกต้อง","invalidHeight":"ความสูงต้องเป็นตัวเลข","invalidWidth":"ความกว้างต้องเป็นตัวเลข","invalidLength":"Value specified for the \"%1\" field must be a positive number with or without a valid measurement unit (%2).","invalidCssLength":"Value specified for the \"%1\" field must be a positive number with or without a valid CSS measurement unit (px, %, in, cm, mm, em, ex, pt, or pc).","invalidHtmlLength":"Value specified for the \"%1\" field must be a positive number with or without a valid HTML measurement unit (px or %).","invalidInlineStyle":"Value specified for the inline style must consist of one or more tuples with the format of \"name : value\", separated by semi-colons.","cssLengthTooltip":"Enter a number for a value in pixels or a number with a valid CSS unit (px, %, in, cm, mm, em, ex, pt, or pc).","unavailable":"%1<span class=\"cke_accessibility\">, unavailable</span>","keyboard":{"8":"Backspace","13":"Enter","16":"Shift","17":"Ctrl","18":"Alt","32":"Space","35":"End","36":"Home","46":"Delete","112":"F1","113":"F2","114":"F3","115":"F4","116":"F5","117":"F6","118":"F7","119":"F8","120":"F9","121":"F10","122":"F11","123":"F12","124":"F13","125":"F14","126":"F15","127":"F16","128":"F17","129":"F18","130":"F19","131":"F20","132":"F21","133":"F22","134":"F23","135":"F24","224":"Command"},"keyboardShortcut":"Keyboard shortcut","optionDefault":"Default"}};
\ No newline at end of file
diff --git a/web/core/assets/vendor/ckeditor/lang/tr.js b/web/core/assets/vendor/ckeditor/lang/tr.js
index 1a2bbc5924..6c9d42444a 100644
--- a/web/core/assets/vendor/ckeditor/lang/tr.js
+++ b/web/core/assets/vendor/ckeditor/lang/tr.js
@@ -1,5 +1,5 @@
 /*
-Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2020, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */
 CKEDITOR.lang['tr']={"widget":{"move":"Taşımak için, tıklayın ve sürükleyin","label":"%1 Grafik Beleşeni"},"undo":{"redo":"Tekrarla","undo":"Geri Al"},"toolbar":{"toolbarCollapse":"Araç çubuklarını topla","toolbarExpand":"Araç çubuklarını aç","toolbarGroups":{"document":"Belge","clipboard":"Pano/Geri al","editing":"Düzenleme","forms":"Formlar","basicstyles":"Temel Stiller","paragraph":"Paragraf","links":"Bağlantılar","insert":"Ekle","styles":"Stiller","colors":"Renkler","tools":"Araçlar"},"toolbars":"Araç çubukları Editörü"},"table":{"border":"Kenar Kalınlığı","caption":"Başlık","cell":{"menu":"Hücre","insertBefore":"Hücre Ekle - Önce","insertAfter":"Hücre Ekle - Sonra","deleteCell":"Hücre Sil","merge":"Hücreleri Birleştir","mergeRight":"Birleştir - Sağdaki İle ","mergeDown":"Birleştir - Aşağıdaki İle ","splitHorizontal":"Hücreyi Yatay Böl","splitVertical":"Hücreyi Dikey Böl","title":"Hücre Özellikleri","cellType":"Hücre Tipi","rowSpan":"Satırlar Mesafesi (Span)","colSpan":"Sütünlar Mesafesi (Span)","wordWrap":"Kelime Kaydırma","hAlign":"Düşey Hizalama","vAlign":"Yataş Hizalama","alignBaseline":"Tabana","bgColor":"Arkaplan Rengi","borderColor":"Çerçeve Rengi","data":"Veri","header":"Başlık","yes":"Evet","no":"Hayır","invalidWidth":"Hücre genişliği sayı olmalıdır.","invalidHeight":"Hücre yüksekliği sayı olmalıdır.","invalidRowSpan":"Satırların mesafesi tam sayı olmalıdır.","invalidColSpan":"Sütünların mesafesi tam sayı olmalıdır.","chooseColor":"Seçiniz"},"cellPad":"Izgara yazı arası","cellSpace":"Izgara kalınlığı","column":{"menu":"Sütun","insertBefore":"Kolon Ekle - Önce","insertAfter":"Kolon Ekle - Sonra","deleteColumn":"Sütun Sil"},"columns":"Sütunlar","deleteTable":"Tabloyu Sil","headers":"Başlıklar","headersBoth":"Her İkisi","headersColumn":"İlk Sütun","headersNone":"Yok","headersRow":"İlk Satır","heightUnit":"height unit","invalidBorder":"Çerceve büyüklüklüğü sayı olmalıdır.","invalidCellPadding":"Hücre aralığı (padding) sayı olmalıdır.","invalidCellSpacing":"Hücre boşluğu (spacing) sayı olmalıdır.","invalidCols":"Sütün sayısı 0 sayısından büyük olmalıdır.","invalidHeight":"Tablo yüksekliği sayı olmalıdır.","invalidRows":"Satır sayısı 0 sayısından büyük olmalıdır.","invalidWidth":"Tablo genişliği sayı olmalıdır.","menu":"Tablo Özellikleri","row":{"menu":"Satır","insertBefore":"Satır Ekle - Önce","insertAfter":"Satır Ekle - Sonra","deleteRow":"Satır Sil"},"rows":"Satırlar","summary":"Özet","title":"Tablo Özellikleri","toolbar":"Tablo","widthPc":"yüzde","widthPx":"piksel","widthUnit":"genişlik birimi"},"stylescombo":{"label":"Biçem","panelTitle":"Stilleri Düzenliyor","panelTitle1":"Blok Stilleri","panelTitle2":"Inline Stilleri","panelTitle3":"Nesne Stilleri"},"specialchar":{"options":"Özel Karakter Seçenekleri","title":"Özel Karakter Seç","toolbar":"Özel Karakter Ekle"},"sourcedialog":{"toolbar":"Kaynak","title":"Kaynak"},"sourcearea":{"toolbar":"Kaynak"},"showblocks":{"toolbar":"Blokları Göster"},"removeformat":{"toolbar":"Biçimi Kaldır"},"pastetext":{"button":"Düz metin olarak yapıştır","pasteNotification":"%1 tuşuna yapıştırmak için tıklayın. Tarayıcınız, Araç Çubuğu yada İçerik Menüsünü kullanarak yapıştırmayı desteklemiyor.","title":"Düz metin olarak yapıştır"},"pastefromword":{"confirmCleanup":"Yapıştırmaya çalıştığınız metin Word'den kopyalanmıştır. Yapıştırmadan önce silmek istermisiniz?","error":"Yapıştırmadaki veri bilgisi hata düzelene kadar silinmeyecektir","title":"Word'den Yapıştır","toolbar":"Word'den Yapıştır"},"notification":{"closed":"Uyarılar kapatıldı."},"maximize":{"maximize":"Büyült","minimize":"Küçült"},"magicline":{"title":"Parağrafı buraya ekle"},"list":{"bulletedlist":"Simgeli Liste","numberedlist":"Numaralı Liste"},"language":{"button":"Dili seç","remove":"Dili kaldır"},"indent":{"indent":"Sekme Arttır","outdent":"Sekme Azalt"},"image2":{"alt":"Alternatif Yazı","btnUpload":"Sunucuya Yolla","captioned":"Başlıklı resim","captionPlaceholder":"Başlık","infoTab":"Resim Bilgisi","lockRatio":"Oranı Kilitle","menu":"Resim Özellikleri","pathName":"Resim","pathNameCaption":"başlık","resetSize":"Boyutu Başa Döndür","resizer":"Boyutlandırmak için, tıklayın ve sürükleyin","title":"Resim Özellikleri","uploadTab":"Karşıya Yükle","urlMissing":"Resmin URL kaynağı bulunamadı.","altMissing":"Alternatif yazı eksik."},"horizontalrule":{"toolbar":"Yatay Satır Ekle"},"format":{"label":"Biçim","panelTitle":"Biçim","tag_address":"Adres","tag_div":"Paragraf (DIV)","tag_h1":"Başlık 1","tag_h2":"Başlık 2","tag_h3":"Başlık 3","tag_h4":"Başlık 4","tag_h5":"Başlık 5","tag_h6":"Başlık 6","tag_p":"Normal","tag_pre":"Biçimli"},"filetools":{"loadError":"Dosya okunurken hata oluştu.","networkError":"Dosya gönderilirken ağ hatası oluştu.","httpError404":"Dosya gönderilirken HTTP hatası oluştu (404: Dosya bulunamadı).","httpError403":"Dosya gönderilirken HTTP hatası oluştu (403: Yasaklı).","httpError":"Dosya gönderilirken HTTP hatası oluştu (hata durumu: %1).","noUrlError":"Gönderilecek URL belirtilmedi.","responseError":"Sunucu cevap veremedi."},"elementspath":{"eleLabel":"Elementlerin yolu","eleTitle":"%1 elementi"},"contextmenu":{"options":"İçerik Menüsü Seçenekleri"},"clipboard":{"copy":"Kopyala","copyError":"Tarayıcı yazılımınızın güvenlik ayarları düzenleyicinin otomatik kopyalama işlemine izin vermiyor. İşlem için (Ctrl/Cmd+C) tuşlarını kullanın.","cut":"Kes","cutError":"Tarayıcı yazılımınızın güvenlik ayarları düzenleyicinin otomatik kesme işlemine izin vermiyor. İşlem için (Ctrl/Cmd+X) tuşlarını kullanın.","paste":"Yapıştır","pasteNotification":"%1 tuşuna yapıştırmak için tıklayın. Tarayıcınız, Araç Çubuğu yada İçerik Menüsünü kullanarak yapıştırmayı desteklemiyor.","pasteArea":"Yapıştırma Alanı","pasteMsg":"İçeriğinizi alttaki bulunan alana yapıştırın ve TAMAM butonuna tıklayın"},"blockquote":{"toolbar":"Blok Oluştur"},"basicstyles":{"bold":"Kalın","italic":"İtalik","strike":"Üstü Çizgili","subscript":"Alt Simge","superscript":"Üst Simge","underline":"Altı Çizgili"},"about":{"copy":"Copyright &copy; $1. Tüm hakları saklıdır.","dlgTitle":"CKEditor Hakkında","moreInfo":"Lisanslama hakkında daha fazla bilgi almak için lütfen sitemizi ziyaret edin:"},"editor":"Zengin Metin Editörü","editorPanel":"Zengin Metin Editör Paneli","common":{"editorHelp":"Yardım için ALT 0 tuşlarına basın","browseServer":"Sunucuya Gözat","url":"URL","protocol":"Protokol","upload":"Karşıya Yükle","uploadSubmit":"Sunucuya Gönder","image":"Resim","flash":"Flash","form":"Form","checkbox":"Seçim Kutusu","radio":"Seçenek Düğmesi","textField":"Metin Kutusu","textarea":"Metin Alanı","hiddenField":"Gizli Alan","button":"Düğme","select":"Seçme Alanı","imageButton":"Resim Düğmesi","notSet":"<tanımlanmamış>","id":"Kimlik","name":"İsim","langDir":"Dil Yönü","langDirLtr":"Soldan Sağa (LTR)","langDirRtl":"Sağdan Sola (RTL)","langCode":" Dil Kodu","longDescr":"Uzun Açıklamalı URL","cssClass":"Stil Sınıfları","advisoryTitle":"Öneri Başlığı","cssStyle":"Stil","ok":"Tamam","cancel":"İptal","close":"Kapat","preview":"Önizleme","resize":"Yeniden Boyutlandır","generalTab":"Genel","advancedTab":"Gelişmiş","validateNumberFailed":"Bu değer bir sayı değildir.","confirmNewPage":"Bu içerikle ilgili kaydedilmemiş tüm bilgiler kaybolacaktır. Yeni bir sayfa yüklemek istediğinizden emin misiniz?","confirmCancel":"Bazı seçenekleri değiştirdiniz. İletişim penceresini kapatmak istediğinizden emin misiniz?","options":"Seçenekler","target":"Hedef","targetNew":"Yeni Pencere (_blank)","targetTop":"En Üstteki Pencere (_top)","targetSelf":"Aynı Pencere (_self)","targetParent":"Üst Pencere (_parent)","langDirLTR":"Soldan Sağa (LTR)","langDirRTL":"Sağdan Sola (RTL)","styles":"Stil","cssClasses":"Stil Sınıfları","width":"Genişlik","height":"Yükseklik","align":"Hizalama","left":"Sol","right":"Sağ","center":"Ortala","justify":"İki Kenara Yaslanmış","alignLeft":"Sola Dayalı","alignRight":"Sağa Dayalı","alignCenter":"Ortaya Hizala","alignTop":"Üst","alignMiddle":"Orta","alignBottom":"Alt","alignNone":"Hiçbiri","invalidValue":"Geçersiz değer.","invalidHeight":"Yükseklik değeri bir sayı olmalıdır.","invalidWidth":"Genişlik değeri bir sayı olmalıdır.","invalidLength":"\"%1\" alanı için belirtilen değer, geçerli bir ölçü birimi olsun veya olmasın (%2) pozitif bir sayı olmalıdır.","invalidCssLength":"\"%1\" alanı için verilen değer, geçerli bir CSS ölçü birimi (px, %, in, cm, mm, em, ex, pt, veya pc) içeren veya içermeyen pozitif bir sayı olmalıdır.","invalidHtmlLength":"\"%1\" alanı için belirttiğiniz sayı, HTML (px veya %) birimi olsun yada olmasın pozitif bir değeri olmalıdır.","invalidInlineStyle":"Satıriçi stil için verilen değer, \"isim : değer\" biçiminde birbirinden noktalı virgüllerle ayrılan bir veya daha fazla değişkenler grubundan oluşmalıdır.","cssLengthTooltip":"Piksel türünde bir sayı veya geçerli bir CSS ölçü birimi (px, %, in, cm, mm, em, ex, pt veya pc) içeren bir sayı girin.","unavailable":"%1<span class=\"cke_accessibility\">, kullanılamaz</span>","keyboard":{"8":"Silme Tuşu","13":"Giriş Tuşu","16":"Üst Karater Tuşu","17":"Kontrol Tuşu","18":"Alt Tuşu","32":"Boşluk Tuşu","35":"En Sona Tuşu","36":"En Başa Tuşu","46":"Silme Tuşu","112":"F1","113":"F2","114":"F3","115":"F4","116":"F5","117":"F6","118":"F7","119":"F8","120":"F9","121":"F10","122":"F11","123":"F12","124":"F13","125":"F14","126":"F15","127":"F16","128":"F17","129":"F18","130":"F19","131":"F20","132":"F21","133":"F22","134":"F23","135":"F24","224":"Komut Tuşu"},"keyboardShortcut":"Klavye Kısayolu","optionDefault":"Varsayılan"}};
\ No newline at end of file
diff --git a/web/core/assets/vendor/ckeditor/lang/tt.js b/web/core/assets/vendor/ckeditor/lang/tt.js
index 211b47439c..664f348c38 100644
--- a/web/core/assets/vendor/ckeditor/lang/tt.js
+++ b/web/core/assets/vendor/ckeditor/lang/tt.js
@@ -1,5 +1,5 @@
 /*
-Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2020, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */
 CKEDITOR.lang['tt']={"widget":{"move":"Күчереп куер өчен басып шудырыгыз","label":"%1 widget"},"undo":{"redo":"Кабатлау","undo":"Кайтару"},"toolbar":{"toolbarCollapse":"Collapse Toolbar","toolbarExpand":"Expand Toolbar","toolbarGroups":{"document":"Документ","clipboard":"Алмашу буферы/Кайтару","editing":"Төзәтү","forms":"Формалар","basicstyles":"Төп стильләр","paragraph":"Параграф","links":"Сылталамалар","insert":"Өстәү","styles":"Стильләр","colors":"Төсләр","tools":"Кораллар"},"toolbars":"Editor toolbars"},"table":{"border":"Чик калынлыгы","caption":"Исем","cell":{"menu":"Күзәнәк","insertBefore":"Алдына күзәнәк өстәү","insertAfter":"Артына күзәнәк өстәү","deleteCell":"Күзәнәкләрне бетерү","merge":"Күзәнәкләрне берләштерү","mergeRight":"Уң яктагы белән берләштерү","mergeDown":"Астагы белән берләштерү","splitHorizontal":"Күзәнәкне юлларга бүлү","splitVertical":"Күзәнәкне баганаларга бүлү","title":"Күзәнәк үзлекләре","cellType":"Күзәнәк төре","rowSpan":"Юлларны берләштерү","colSpan":"Баганаларны берләштерү","wordWrap":"Текстны күчерү","hAlign":"Ятма тигезләү","vAlign":"Асма тигезләү","alignBaseline":"Таяныч сызыгы","bgColor":"Фон төсе","borderColor":"Чик төсе","data":"Мәгълүмат","header":"Башлык","yes":"Әйе","no":"Юк","invalidWidth":"Cell width must be a number.","invalidHeight":"Cell height must be a number.","invalidRowSpan":"Rows span must be a whole number.","invalidColSpan":"Columns span must be a whole number.","chooseColor":"Сайлау"},"cellPad":"Cell padding","cellSpace":"Cell spacing","column":{"menu":"Багана","insertBefore":"Сулдан баганалар өстәү","insertAfter":"Уңнан баганалар өстәү","deleteColumn":"Баганаларны бетерү"},"columns":"Баганалар","deleteTable":"Таблицаны бетерү","headers":"Башлыклар","headersBoth":"Икесе дә","headersColumn":"Беренче багана","headersNone":"Һичбер","headersRow":"Беренче юл","heightUnit":"height unit","invalidBorder":"Чик киңлеге сан булырга тиеш.","invalidCellPadding":"Cell padding must be a positive number.","invalidCellSpacing":"Күзәнәкләр аралары уңай сан булырга тиеш.","invalidCols":"Number of columns must be a number greater than 0.","invalidHeight":"Таблица биеклеге сан булырга тиеш.","invalidRows":"Number of rows must be a number greater than 0.","invalidWidth":"Таблица киңлеге сан булырга тиеш","menu":"Таблица үзлекләре","row":{"menu":"Юл","insertBefore":"Өстән юллар өстәү","insertAfter":"Астан юллар өстәү","deleteRow":"Юлларны бетерү"},"rows":"Юллар","summary":"Йомгаклау","title":"Таблица үзлекләре","toolbar":"Таблица","widthPc":"процент","widthPx":"Нокталар","widthUnit":"киңлек берәмлеге"},"stylescombo":{"label":"Стильләр","panelTitle":"Форматлау стильләре","panelTitle1":"Блоклар стильләре","panelTitle2":"Эчке стильләр","panelTitle3":"Объектлар стильләре"},"specialchar":{"options":"Махсус символ үзлекләре","title":"Махсус символ сайлау","toolbar":"Махсус символ өстәү"},"sourcedialog":{"toolbar":"Чыганак","title":"Чыганак"},"sourcearea":{"toolbar":"Чыганак"},"showblocks":{"toolbar":"Блокларны күрсәтү"},"removeformat":{"toolbar":"Форматлауны бетерү"},"pastetext":{"button":"Форматлаусыз текст өстәү","pasteNotification":"Press %1 to paste. Your browser doesn‘t support pasting with the toolbar button or context menu option.","title":"Форматлаусыз текст өстәү"},"pastefromword":{"confirmCleanup":"The text you want to paste seems to be copied from Word. Do you want to clean it before pasting?","error":"It was not possible to clean up the pasted data due to an internal error","title":"Word'тан өстәү","toolbar":"Word'тан өстәү"},"notification":{"closed":"Notification closed."},"maximize":{"maximize":"Зурайту","minimize":"Кечерәйтү"},"magicline":{"title":"Бирегә параграф өстәү"},"list":{"bulletedlist":"Маркерлы тезмә өстәү/бетерү","numberedlist":" Номерланган тезмә өстәү/бетерү"},"language":{"button":"Тел сайлау","remove":"Телне бетерү"},"indent":{"indent":"Отступны арттыру","outdent":"Отступны кечерәйтү"},"image2":{"alt":"Альтернатив текст","btnUpload":"Серверга җибәрү","captioned":"Исеме куелган рәсем","captionPlaceholder":"Исем","infoTab":"Рәсем тасвирламасы","lockRatio":"Lock Ratio","menu":"Рәсем үзлекләре","pathName":"рәсем","pathNameCaption":"исем","resetSize":"Баштагы зурлык","resizer":"Күчереп куер өчен басып шудырыгыз","title":"Рәсем үзлекләре","uploadTab":"Йөкләү","urlMissing":"Image source URL is missing.","altMissing":"Alternative text is missing."},"horizontalrule":{"toolbar":"Ятма сызык өстәү"},"format":{"label":"Форматлау","panelTitle":"Параграф форматлавы","tag_address":"Адрес","tag_div":"Гади (DIV)","tag_h1":"Башлам 1","tag_h2":"Башлам 2","tag_h3":"Башлам 3","tag_h4":"Башлам 4","tag_h5":"Башлам 5","tag_h6":"Башлам 6","tag_p":"Гади","tag_pre":"Форматлаулы"},"filetools":{"loadError":"Error occurred during file read.","networkError":"Network error occurred during file upload.","httpError404":"HTTP error occurred during file upload (404: File not found).","httpError403":"HTTP error occurred during file upload (403: Forbidden).","httpError":"HTTP error occurred during file upload (error status: %1).","noUrlError":"Upload URL is not defined.","responseError":"Incorrect server response."},"elementspath":{"eleLabel":"Elements path","eleTitle":"%1 элемент"},"contextmenu":{"options":"Контекст меню үзлекләре"},"clipboard":{"copy":"Күчермәләү","copyError":"Браузерыгызның иминлек үзлекләре автоматик рәвештә күчермәләү үтәүне тыя. Тиз төймәләрне (Ctrl/Cmd+C) кулланыгыз.","cut":"Кисеп алу","cutError":"Браузерыгызның иминлек үзлекләре автоматик рәвештә күчермәләү үтәүне тыя. Тиз төймәләрне (Ctrl/Cmd+C) кулланыгыз.","paste":"Өстәү","pasteNotification":"Press %1 to paste. Your browser doesn‘t support pasting with the toolbar button or context menu option.","pasteArea":"Өстәү мәйданы","pasteMsg":"Paste your content inside the area below and press OK."},"blockquote":{"toolbar":"Өземтә блогы"},"basicstyles":{"bold":"Калын","italic":"Курсив","strike":"Сызылган","subscript":"Аскы индекс","superscript":"Өске индекс","underline":"Астына сызылган"},"about":{"copy":"Copyright &copy; $1. Бар хокуклар сакланган","dlgTitle":"CKEditor турында","moreInfo":"For licensing information please visit our web site:"},"editor":"Форматлаулы текст өлкәсе","editorPanel":"Rich Text Editor panel","common":{"editorHelp":"Ярдәм өчен ALT 0 басыгыз","browseServer":"Сервер карап чыгу","url":"Сылталама","protocol":"Протокол","upload":"Йөкләү","uploadSubmit":"Серверга җибәрү","image":"Рәсем","flash":"Флеш","form":"Форма","checkbox":"Чекбокс","radio":"Радио төймә","textField":"Текст кыры","textarea":"Текст мәйданы","hiddenField":"Яшерен кыр","button":"Төймə","select":"Сайлау кыры","imageButton":"Рәсемле төймə","notSet":"<билгеләнмәгән>","id":"Id","name":"Исем","langDir":"Язылыш юнəлеше","langDirLtr":"Сулдан уңга язылыш (LTR)","langDirRtl":"Уңнан сулга язылыш (RTL)","langCode":"Тел коды","longDescr":"Җентекле тасвирламага сылталама","cssClass":"Стильләр класслары","advisoryTitle":"Киңәш исем","cssStyle":"Стиль","ok":"Тәмам","cancel":"Баш тарту","close":"Чыгу","preview":"Карап алу","resize":"Зурлыкны үзгәртү","generalTab":"Төп","advancedTab":"Киңәйтелгән көйләүләр","validateNumberFailed":"Әлеге кыйммәт сан түгел.","confirmNewPage":"Any unsaved changes to this content will be lost. Are you sure you want to load new page?","confirmCancel":"You have changed some options. Are you sure you want to close the dialog window?","options":"Үзлекләр","target":"Максат","targetNew":"Яңа тәрәзә (_blank)","targetTop":"Өске тәрәзә (_top)","targetSelf":"Шул үк тәрәзә (_self)","targetParent":"Ана тәрәзә (_parent)","langDirLTR":"Сулдан уңга язылыш (LTR)","langDirRTL":"Уңнан сулга язылыш (RTL)","styles":"Стиль","cssClasses":"Стильләр класслары","width":"Киңлек","height":"Биеклек","align":"Тигезләү","left":"Сул якка","right":"Уң якка","center":"Үзәккә","justify":"Киңлеккә карап тигезләү","alignLeft":"Сул як кырыйдан тигезләү","alignRight":"Уң як кырыйдан тигезләү","alignCenter":"Align Center","alignTop":"Өскә","alignMiddle":"Уртага","alignBottom":"Аска","alignNone":"Һичбер","invalidValue":"Дөрес булмаган кыйммәт.","invalidHeight":"Биеклек сан булырга тиеш.","invalidWidth":"Киңлек сан булырга тиеш.","invalidLength":"Value specified for the \"%1\" field must be a positive number with or without a valid measurement unit (%2).","invalidCssLength":"Value specified for the \"%1\" field must be a positive number with or without a valid CSS measurement unit (px, %, in, cm, mm, em, ex, pt, or pc).","invalidHtmlLength":"Value specified for the \"%1\" field must be a positive number with or without a valid HTML measurement unit (px or %).","invalidInlineStyle":"Value specified for the inline style must consist of one or more tuples with the format of \"name : value\", separated by semi-colons.","cssLengthTooltip":"Enter a number for a value in pixels or a number with a valid CSS unit (px, %, in, cm, mm, em, ex, pt, or pc).","unavailable":"%1<span class=\"cke_accessibility\">, unavailable</span>","keyboard":{"8":"Кайтару","13":"Enter","16":"Shift","17":"Ctrl","18":"Alt","32":"Space","35":"End","36":"Home","46":"Бетерү","112":"F1","113":"F2","114":"F3","115":"F4","116":"F5","117":"F6","118":"F7","119":"F8","120":"F9","121":"F10","122":"F11","123":"F12","124":"F13","125":"F14","126":"F15","127":"F16","128":"F17","129":"F18","130":"F19","131":"F20","132":"F21","133":"F22","134":"F23","135":"F24","224":"Command"},"keyboardShortcut":"Keyboard shortcut","optionDefault":"Default"}};
\ No newline at end of file
diff --git a/web/core/assets/vendor/ckeditor/lang/ug.js b/web/core/assets/vendor/ckeditor/lang/ug.js
index 47c448318e..4c4ec2ea29 100644
--- a/web/core/assets/vendor/ckeditor/lang/ug.js
+++ b/web/core/assets/vendor/ckeditor/lang/ug.js
@@ -1,5 +1,5 @@
 /*
-Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2020, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */
 CKEDITOR.lang['ug']={"widget":{"move":"يۆتكەشتە چېكىپ سۆرەڭ","label":"%1 widget"},"undo":{"redo":"قايتىلا ","undo":"يېنىۋال"},"toolbar":{"toolbarCollapse":"قورال بالداقنى قاتلا","toolbarExpand":"قورال بالداقنى ياي","toolbarGroups":{"document":"پۈتۈك","clipboard":"چاپلاش تاختىسى/يېنىۋال","editing":"تەھرىر","forms":"جەدۋەل","basicstyles":"ئاساسىي ئۇسلۇب","paragraph":"ئابزاس","links":"ئۇلانما","insert":"قىستۇر","styles":"ئۇسلۇب","colors":"رەڭ","tools":"قورال"},"toolbars":"قورال بالداق"},"table":{"border":"گىرۋەك","caption":"ماۋزۇ","cell":{"menu":"كاتەكچە","insertBefore":"سولغا كاتەكچە قىستۇر","insertAfter":"ئوڭغا كاتەكچە قىستۇر","deleteCell":"كەتەكچە ئۆچۈر","merge":"كاتەكچە بىرلەشتۈر","mergeRight":"كاتەكچىنى ئوڭغا بىرلەشتۈر","mergeDown":"كاتەكچىنى ئاستىغا بىرلەشتۈر","splitHorizontal":"كاتەكچىنى توغرىسىغا بىرلەشتۈر","splitVertical":"كاتەكچىنى بويىغا بىرلەشتۈر","title":"كاتەكچە خاسلىقى","cellType":"كاتەكچە تىپى","rowSpan":"بويىغا چات ئارىسى قۇر سانى","colSpan":"توغرىسىغا چات ئارىسى ئىستون سانى","wordWrap":"ئۆزلۈكىدىن قۇر قاتلا","hAlign":"توغرىسىغا توغرىلا","vAlign":"بويىغا توغرىلا","alignBaseline":"ئاساسىي سىزىق","bgColor":"تەگلىك رەڭگى","borderColor":"گىرۋەك رەڭگى","data":"سانلىق مەلۇمات","header":"جەدۋەل باشى","yes":"ھەئە","no":"ياق","invalidWidth":"كاتەكچە كەڭلىكى چوقۇم سان بولىدۇ","invalidHeight":"كاتەكچە ئېگىزلىكى چوقۇم سان بولىدۇ","invalidRowSpan":"قۇر چات ئارىسى چوقۇم پۈتۈن سان بولىدۇ ","invalidColSpan":"ئىستون چات ئارىسى چوقۇم پۈتۈن سان بولىدۇ","chooseColor":"تاللاڭ"},"cellPad":"يان ئارىلىق","cellSpace":"ئارىلىق","column":{"menu":"ئىستون","insertBefore":"سولغا ئىستون قىستۇر","insertAfter":"ئوڭغا ئىستون قىستۇر","deleteColumn":"ئىستون ئۆچۈر"},"columns":"ئىستون سانى","deleteTable":"جەدۋەل ئۆچۈر","headers":"ماۋزۇ كاتەكچە","headersBoth":"بىرىنچى ئىستون ۋە بىرىنچى قۇر","headersColumn":"بىرىنچى ئىستون","headersNone":"يوق","headersRow":"بىرىنچى قۇر","heightUnit":"height unit","invalidBorder":"گىرۋەك توملۇقى چوقۇم سان بولىدۇ","invalidCellPadding":"كاتەكچىگە چوقۇم سان تولدۇرۇلىدۇ","invalidCellSpacing":"كاتەكچە ئارىلىقى چوقۇم سان بولىدۇ","invalidCols":"بەلگىلەنگەن قۇر سانى چوقۇم نۆلدىن چوڭ بولىدۇ","invalidHeight":"جەدۋەل ئېگىزلىكى چوقۇم سان بولىدۇ","invalidRows":"بەلگىلەنگەن ئىستون سانى چوقۇم نۆلدىن چوڭ بولىدۇ","invalidWidth":"جەدۋەل كەڭلىكى چوقۇم سان بولىدۇ","menu":"جەدۋەل خاسلىقى","row":{"menu":"قۇر","insertBefore":"ئۈستىگە قۇر قىستۇر","insertAfter":"ئاستىغا قۇر قىستۇر","deleteRow":"قۇر ئۆچۈر"},"rows":"قۇر سانى","summary":"ئۈزۈندە","title":"جەدۋەل خاسلىقى","toolbar":"جەدۋەل","widthPc":"پىرسەنت","widthPx":"پىكسېل","widthUnit":"كەڭلىك بىرلىكى"},"stylescombo":{"label":"ئۇسلۇب","panelTitle":"ئۇسلۇب","panelTitle1":"بۆلەك دەرىجىسىدىكى ئېلېمېنت ئۇسلۇبى","panelTitle2":"ئىچكى باغلانما ئېلېمېنت ئۇسلۇبى","panelTitle3":"نەڭ (Object) ئېلېمېنت ئۇسلۇبى"},"specialchar":{"options":"ئالاھىدە ھەرپ تاللانمىسى","title":"ئالاھىدە ھەرپ تاللاڭ","toolbar":"ئالاھىدە ھەرپ قىستۇر"},"sourcedialog":{"toolbar":"مەنبە","title":"مەنبە"},"sourcearea":{"toolbar":"مەنبە"},"showblocks":{"toolbar":"بۆلەكنى كۆرسەت"},"removeformat":{"toolbar":"پىچىمنى چىقىرىۋەت"},"pastetext":{"button":"پىچىمى يوق تېكىست سۈپىتىدە چاپلا","pasteNotification":"چاپلانغىنى 1% . سىزنىڭ تور كۆرگۈچىڭىز قۇرال تەكچىسى ۋە سىيرىلما تاللاپ چاپلاش ئىقتىدارىنى قوللىمايدىكەن .","title":"پىچىمى يوق تېكىست سۈپىتىدە چاپلا"},"pastefromword":{"confirmCleanup":"سىز چاپلىماقچى بولغان مەزمۇن MS Word تىن كەلگەندەك قىلىدۇ، MS Word پىچىمىنى تازىلىۋەتكەندىن كېيىن ئاندىن چاپلامدۇ؟","error":"ئىچكى خاتالىق سەۋەبىدىن چاپلايدىغان سانلىق مەلۇماتنى تازىلىيالمايدۇ","title":"MS Word تىن چاپلا","toolbar":"MS Word تىن چاپلا"},"notification":{"closed":"ئوقتۇرۇش تاقالدى."},"maximize":{"maximize":"چوڭايت","minimize":"كىچىكلەت"},"magicline":{"title":"بۇ جايغا ئابزاس قىستۇر"},"list":{"bulletedlist":"تۈر بەلگە تىزىمى","numberedlist":"تەرتىپ نومۇر تىزىمى"},"language":{"button":"تىل تەڭشەك","remove":"تىلنى چىقىرىۋەت"},"indent":{"indent":"تارايت","outdent":"كەڭەيت"},"image2":{"alt":"تېكىست ئالماشتۇر","btnUpload":"مۇلازىمېتىرغا يۈكلە","captioned":"ماۋزۇلۇق سۈرەت","captionPlaceholder":"ماۋزۇ","infoTab":"سۈرەت","lockRatio":"نىسبەتنى قۇلۇپلا","menu":"سۈرەت خاسلىقى","pathName":"رەسىم","pathNameCaption":"ماۋزۇ","resetSize":"ئەسلى چوڭلۇق","resizer":"چېكىپ تۇرۇپ سۆرەپ چوڭ كىچىكلىكىنى تەڭشىگىلى بولىدۇ","title":"سۈرەت خاسلىقى","uploadTab":"يۈكلە","urlMissing":"سۈرەتنىڭ ئەسلى ھۆججەت ئادرېسى كەم","altMissing":"باشقا تېكىست كەمچىل"},"horizontalrule":{"toolbar":"توغرا سىزىق قىستۇر"},"format":{"label":"پىچىم","panelTitle":"پىچىم","tag_address":"ئادرېس","tag_div":"ئابزاس (DIV)","tag_h1":"ماۋزۇ 1","tag_h2":"ماۋزۇ 2","tag_h3":"ماۋزۇ 3","tag_h4":"ماۋزۇ 4","tag_h5":"ماۋزۇ 5","tag_h6":"ماۋزۇ 6","tag_p":"ئادەتتىكى","tag_pre":"تىزىلغان پىچىم"},"filetools":{"loadError":"ھۆججەت ئوقۇشتا خاتالىق كۆرۈلدى","networkError":"ھۆججەت يۈكلەشتە تور خاتالىقى كۆرۈلدى.","httpError404":"ھۆججەت يۈكلىگەندە HTTP خاتالىقى كۆرۈلدى (404: ھۆججەت تېپىلمىدى).","httpError403":"ھۆججەت يۈكلىگەندە HTTP خاتالىقى كۆرۈلدى (403: چەكلەنگەن).","httpError":"ھۆججەت يۈكلىگەندە HTTP خاتالىقى كۆرۈلدى (404: خاتالىق نىسپىتى: 1%).","noUrlError":"چىقىردىغان ئۇلانما تەڭشەلمىگەن .","responseError":"مۇلازىمىتىردا ئىنكاس يوق ."},"elementspath":{"eleLabel":"ئېلېمېنت يولى","eleTitle":"%1 ئېلېمېنت"},"contextmenu":{"options":"قىسقا يول تىزىملىك تاللانمىسى"},"clipboard":{"copy":"كۆچۈر","copyError":"تور كۆرگۈڭىزنىڭ بىخەتەرلىك تەڭشىكى تەھرىرلىگۈچنىڭ كۆچۈر مەشغۇلاتىنى ئۆزلۈكىدىن ئىجرا قىلىشىغا يول قويمايدۇ، ھەرپتاختا تېز كۇنۇپكا (Ctrl/Cmd+C) ئارقىلىق تاماملاڭ","cut":"كەس","cutError":"تور كۆرگۈڭىزنىڭ بىخەتەرلىك تەڭشىكى تەھرىرلىگۈچنىڭ كەس مەشغۇلاتىنى ئۆزلۈكىدىن ئىجرا قىلىشىغا يول قويمايدۇ، ھەرپتاختا تېز كۇنۇپكا (Ctrl/Cmd+X) ئارقىلىق تاماملاڭ","paste":"چاپلا","pasteNotification":"چاپلانغىنى 1% . سىزنىڭ تور كۆرگۈچىڭىز قۇرال تەكچىسى ۋە سىيرىلما تاللاپ چاپلاش ئىقتىدارىنى قوللىمايدىكەن .","pasteArea":"چاپلاش دائىرىسى","pasteMsg":"مەزمۇنىڭىزنى تۆۋەندىكى رايونغا چاپلاپ ئاندىن OK نى بېسىڭ ."},"blockquote":{"toolbar":"بۆلەك نەقىل"},"basicstyles":{"bold":"توم","italic":"يانتۇ","strike":"ئۆچۈرۈش سىزىقى","subscript":"تۆۋەن ئىندېكس","superscript":"يۇقىرى ئىندېكس","underline":"ئاستى سىزىق"},"about":{"copy":"Copyright &copy; $1. نەشر ھوقۇقىغا ئىگە","dlgTitle":"CKEditor تەھرىرلىگۈچى 4 ھەقىدە","moreInfo":"تور تۇرايىمىزنى زىيارەت قىلىپ كېلىشىمگە ئائىت تېخىمۇ كۆپ ئۇچۇرغا ئېرىشىڭ"},"editor":"تەھرىرلىگۈچ","editorPanel":"مول تېكست تەھرىرلىگۈچ تاختىسى","common":{"editorHelp":"ALT+0 نى بېسىپ ياردەمنى كۆرۈڭ","browseServer":"كۆرسىتىش مۇلازىمېتىر","url":"ئەسلى ھۆججەت","protocol":"كېلىشىم","upload":"يۈكلە","uploadSubmit":"مۇلازىمېتىرغا يۈكلە","image":"سۈرەت","flash":"چاقماق","form":"جەدۋەل","checkbox":"كۆپ تاللاش رامكىسى","radio":"يەككە تاللاش توپچىسى","textField":"يەككە قۇر تېكىست","textarea":"كۆپ قۇر تېكىست","hiddenField":"يوشۇرۇن دائىرە","button":"توپچا","select":"تىزىم/تىزىملىك","imageButton":"سۈرەت دائىرە","notSet":"‹تەڭشەلمىگەن›","id":"ID","name":"ئات","langDir":"تىل يۆنىلىشى","langDirLtr":"سولدىن ئوڭغا (LTR)","langDirRtl":"ئوڭدىن سولغا (RTL)","langCode":"تىل كودى","longDescr":"تەپسىلىي چۈشەندۈرۈش ئادرېسى","cssClass":"ئۇسلۇب خىلىنىڭ ئاتى","advisoryTitle":"ماۋزۇ","cssStyle":"قۇر ئىچىدىكى ئۇسلۇبى","ok":"جەزملە","cancel":"ۋاز كەچ","close":"تاقا","preview":"ئالدىن كۆزەت","resize":"چوڭلۇقىنى ئۆزگەرت","generalTab":"ئادەتتىكى","advancedTab":"ئالىي","validateNumberFailed":"سان پىچىمىدا كىرگۈزۈش زۆرۈر","confirmNewPage":"نۆۋەتتىكى پۈتۈك مەزمۇنى ساقلانمىدى، يېڭى پۈتۈك قۇرامسىز؟","confirmCancel":"قىسمەن ئۆزگەرتىش ساقلانمىدى، بۇ سۆزلەشكۈنى تاقامسىز؟","options":"تاللانما","target":"نىشان كۆزنەك","targetNew":"يېڭى كۆزنەك (_blank)","targetTop":"پۈتۈن بەت (_top)","targetSelf":"مەزكۇر كۆزنەك (_self)","targetParent":"ئاتا كۆزنەك (_parent)","langDirLTR":"سولدىن ئوڭغا (LTR)","langDirRTL":"ئوڭدىن سولغا (RTL)","styles":"ئۇسلۇبلار","cssClasses":"ئۇسلۇب خىللىرى","width":"كەڭلىك","height":"ئېگىزلىك","align":"توغرىلىنىشى","left":"سول","right":"ئوڭ","center":"ئوتتۇرا","justify":"ئىككى تەرەپتىن توغرىلا","alignLeft":"سولغا توغرىلا","alignRight":"ئوڭغا توغرىلا","alignCenter":"Align Center","alignTop":"ئۈستى","alignMiddle":"ئوتتۇرا","alignBottom":"ئاستى","alignNone":"يوق","invalidValue":"ئىناۋەتسىز قىممەت.","invalidHeight":"ئېگىزلىك چوقۇم رەقەم پىچىمىدا بولۇشى زۆرۈر","invalidWidth":"كەڭلىك چوقۇم رەقەم پىچىمىدا بولۇشى زۆرۈر","invalidLength":"بەلگىلەنگەن قىممەت \"1%\" سۆز بۆلىكىدىكى ئېنىقسىز ماتىريال ياكى مۇسبەت سانلار (2%).","invalidCssLength":"بۇ سۆز بۆلىكى چوقۇم مۇۋاپىق بولغان CSS ئۇزۇنلۇق قىممىتى بولۇشى زۆرۈر، بىرلىكى (px, %, in, cm, mm, em, ex, pt ياكى pc)","invalidHtmlLength":"بۇ سۆز بۆلىكى چوقۇم بىرىكمە HTML ئۇزۇنلۇق قىممىتى بولۇشى كېرەك. ئۆز ئىچىگە ئالىدىغان بىرلىك (px ياكى %)","invalidInlineStyle":"ئىچكى باغلانما ئۇسلۇبى چوقۇم چېكىتلىك پەش بىلەن ئايرىلغان بىر ياكى كۆپ «خاسلىق ئاتى:خاسلىق قىممىتى» پىچىمىدا بولۇشى لازىم","cssLengthTooltip":"بۇ سۆز بۆلىكى بىرىكمە CSS ئۇزۇنلۇق قىممىتى بولۇشى كېرەك. ئۆز ئىچىگە ئالىدىغان بىرلىك (px, %, in, cm, mm, em, ex, pt ياكى pc)","unavailable":"%1<span class=\\\\\"cke_accessibility\\\\\">، ئىشلەتكىلى بولمايدۇ</span>","keyboard":{"8":"Backspace","13":"Enter","16":"Shift","17":"Ctrl","18":"Alt","32":"Space","35":"End","36":"Home","46":"ئۆچۈر","112":"F1","113":"F2","114":"F3","115":"F4","116":"F5","117":"F6","118":"F7","119":"F8","120":"F9","121":"F10","122":"F11","123":"F12","124":"F13","125":"F14","126":"F15","127":"F16","128":"F17","129":"F18","130":"F19","131":"F20","132":"F21","133":"F22","134":"F23","135":"F24","224":"Command"},"keyboardShortcut":"تېزلەتمە كونۇپكا","optionDefault":"سۈكۈتتىكى"}};
\ No newline at end of file
diff --git a/web/core/assets/vendor/ckeditor/lang/uk.js b/web/core/assets/vendor/ckeditor/lang/uk.js
index b25b31ce96..cd5d21f753 100644
--- a/web/core/assets/vendor/ckeditor/lang/uk.js
+++ b/web/core/assets/vendor/ckeditor/lang/uk.js
@@ -1,5 +1,5 @@
 /*
-Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2020, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */
 CKEDITOR.lang['uk']={"widget":{"move":"Клікніть і потягніть для переміщення","label":"%1 віджет"},"undo":{"redo":"Повторити","undo":"Повернути"},"toolbar":{"toolbarCollapse":"Згорнути панель інструментів","toolbarExpand":"Розгорнути панель інструментів","toolbarGroups":{"document":"Документ","clipboard":"Буфер обміну / Скасувати","editing":"Редагування","forms":"Форми","basicstyles":"Основний Стиль","paragraph":"Параграф","links":"Посилання","insert":"Вставити","styles":"Стилі","colors":"Кольори","tools":"Інструменти"},"toolbars":"Панель інструментів редактора"},"table":{"border":"Розмір рамки","caption":"Заголовок таблиці","cell":{"menu":"Комірки","insertBefore":"Вставити комірку перед","insertAfter":"Вставити комірку після","deleteCell":"Видалити комірки","merge":"Об'єднати комірки","mergeRight":"Об'єднати справа","mergeDown":"Об'єднати донизу","splitHorizontal":"Розділити комірку по горизонталі","splitVertical":"Розділити комірку по вертикалі","title":"Властивості комірки","cellType":"Тип комірки","rowSpan":"Об'єднання рядків","colSpan":"Об'єднання стовпців","wordWrap":"Автоперенесення тексту","hAlign":"Гориз. вирівнювання","vAlign":"Верт. вирівнювання","alignBaseline":"По базовій лінії","bgColor":"Колір фону","borderColor":"Колір рамки","data":"Дані","header":"Заголовок","yes":"Так","no":"Ні","invalidWidth":"Ширина комірки повинна бути цілим числом.","invalidHeight":"Висота комірки повинна бути цілим числом.","invalidRowSpan":"Кількість об'єднуваних рядків повинна бути цілим числом.","invalidColSpan":"Кількість об'єднуваних стовбців повинна бути цілим числом.","chooseColor":"Обрати"},"cellPad":"Внутр. відступ","cellSpace":"Проміжок","column":{"menu":"Стовбці","insertBefore":"Вставити стовбець перед","insertAfter":"Вставити стовбець після","deleteColumn":"Видалити стовбці"},"columns":"Стовбці","deleteTable":"Видалити таблицю","headers":"Заголовки стовбців/рядків","headersBoth":"Стовбці і рядки","headersColumn":"Стовбці","headersNone":"Без заголовків","headersRow":"Рядки","heightUnit":"height unit","invalidBorder":"Розмір рамки повинен бути цілим числом.","invalidCellPadding":"Внутр. відступ комірки повинен бути цілим числом.","invalidCellSpacing":"Проміжок між комірками повинен бути цілим числом.","invalidCols":"Кількість стовбців повинна бути більшою 0.","invalidHeight":"Висота таблиці повинна бути цілим числом.","invalidRows":"Кількість рядків повинна бути більшою 0.","invalidWidth":"Ширина таблиці повинна бути цілим числом.","menu":"Властивості таблиці","row":{"menu":"Рядки","insertBefore":"Вставити рядок перед","insertAfter":"Вставити рядок після","deleteRow":"Видалити рядки"},"rows":"Рядки","summary":"Детальний опис заголовку таблиці","title":"Властивості таблиці","toolbar":"Таблиця","widthPc":"відсотків","widthPx":"пікселів","widthUnit":"Одиниці вимір."},"stylescombo":{"label":"Стиль","panelTitle":"Стилі форматування","panelTitle1":"Блочні стилі","panelTitle2":"Рядкові стилі","panelTitle3":"Об'єктні стилі"},"specialchar":{"options":"Опції","title":"Оберіть спеціальний символ","toolbar":"Спеціальний символ"},"sourcedialog":{"toolbar":"Джерело","title":"Джерело"},"sourcearea":{"toolbar":"Джерело"},"showblocks":{"toolbar":"Показувати блоки"},"removeformat":{"toolbar":"Видалити форматування"},"pastetext":{"button":"Вставити тільки текст","pasteNotification":"Натисніть %1, щоб вставити. Ваш браузер не підтримує вставку за допомогою кнопки панелі інструментів або пункту контекстного меню.","title":"Вставити тільки текст"},"pastefromword":{"confirmCleanup":"Текст, що Ви намагаєтесь вставити, схожий на скопійований з Word. Бажаєте очистити його форматування перед вставлянням?","error":"Неможливо очистити форматування через внутрішню помилку.","title":"Вставити з Word","toolbar":"Вставити з Word"},"notification":{"closed":"Сповіщення закрито."},"maximize":{"maximize":"Максимізувати","minimize":"Мінімізувати"},"magicline":{"title":"Вставити абзац"},"list":{"bulletedlist":"Маркірований список","numberedlist":"Нумерований список"},"language":{"button":"Установити мову","remove":"Вилучити мову"},"indent":{"indent":"Збільшити відступ","outdent":"Зменшити відступ"},"image2":{"alt":"Альтернативний текст","btnUpload":"Надіслати на сервер","captioned":"Підписане зображення","captionPlaceholder":"Заголовок","infoTab":"Інформація про зображення","lockRatio":"Зберегти пропорції","menu":"Властивості зображення","pathName":"Зображення","pathNameCaption":"заголовок","resetSize":"Очистити поля розмірів","resizer":"Клікніть та потягніть для зміни розмірів","title":"Властивості зображення","uploadTab":"Надіслати","urlMissing":"Вкажіть URL зображення.","altMissing":"Альтернативний текст відсутній."},"horizontalrule":{"toolbar":"Горизонтальна лінія"},"format":{"label":"Форматування","panelTitle":"Форматування параграфа","tag_address":"Адреса","tag_div":"Нормальний (div)","tag_h1":"Заголовок 1","tag_h2":"Заголовок 2","tag_h3":"Заголовок 3","tag_h4":"Заголовок 4","tag_h5":"Заголовок 5","tag_h6":"Заголовок 6","tag_p":"Нормальний","tag_pre":"Форматований"},"filetools":{"loadError":"Виникла помилка під час читання файлу","networkError":"Під час завантаження файлу виникла помилка мережі.","httpError404":"Під час завантаження файлу виникла помилка HTTP (404: Файл не знайдено).","httpError403":"Під час завантаження файлу виникла помилка HTTP (403: Доступ заборонено).","httpError":"Під час завантаження файлу виникла помилка (статус помилки: %1).","noUrlError":"URL завантаження не визначений.","responseError":"Невірна відповідь сервера."},"elementspath":{"eleLabel":"Шлях","eleTitle":"%1 елемент"},"contextmenu":{"options":"Опції контекстного меню"},"clipboard":{"copy":"Копіювати","copyError":"Налаштування безпеки Вашого браузера не дозволяють редактору автоматично виконувати операції копіювання. Будь ласка, використовуйте клавіатуру для цього (Ctrl/Cmd+C).","cut":"Вирізати","cutError":"Налаштування безпеки Вашого браузера не дозволяють редактору автоматично виконувати операції вирізування. Будь ласка, використовуйте клавіатуру для цього (Ctrl/Cmd+X)","paste":"Вставити","pasteNotification":"Натисніть %1, щоб вставити. Ваш браузер не підтримує вставку за допомогою кнопки панелі інструментів або пункту контекстного меню.","pasteArea":"Область вставки","pasteMsg":"Вставте вміст у область нижче та натисніть OK."},"blockquote":{"toolbar":"Цитата"},"basicstyles":{"bold":"Жирний","italic":"Курсив","strike":"Закреслений","subscript":"Нижній індекс","superscript":"Верхній індекс","underline":"Підкреслений"},"about":{"copy":"Copyright &copy; $1. Всі права застережено.","dlgTitle":"Про CKEditor 4","moreInfo":"Щодо інформації з ліцензування завітайте на наш сайт:"},"editor":"Текстовий редактор","editorPanel":"Панель розширеного текстового редактора","common":{"editorHelp":"натисніть ALT 0 для довідки","browseServer":"Огляд Сервера","url":"URL","protocol":"Протокол","upload":"Надіслати","uploadSubmit":"Надіслати на сервер","image":"Зображення","flash":"Flash","form":"Форма","checkbox":"Галочка","radio":"Кнопка вибору","textField":"Текстове поле","textarea":"Текстова область","hiddenField":"Приховане поле","button":"Кнопка","select":"Список","imageButton":"Кнопка із зображенням","notSet":"<не визначено>","id":"Ідентифікатор","name":"Ім'я","langDir":"Напрямок мови","langDirLtr":"Зліва направо (LTR)","langDirRtl":"Справа наліво (RTL)","langCode":"Код мови","longDescr":"Довгий опис URL","cssClass":"Клас CSS","advisoryTitle":"Заголовок","cssStyle":"Стиль CSS","ok":"ОК","cancel":"Скасувати","close":"Закрити","preview":"Попередній перегляд","resize":"Потягніть для зміни розмірів","generalTab":"Основне","advancedTab":"Додаткове","validateNumberFailed":"Значення не є цілим числом.","confirmNewPage":"Всі незбережені зміни будуть втрачені. Ви впевнені, що хочете завантажити нову сторінку?","confirmCancel":"Деякі опції змінено. Закрити вікно без збереження змін?","options":"Опції","target":"Ціль","targetNew":"Нове вікно (_blank)","targetTop":"Поточне вікно (_top)","targetSelf":"Поточний фрейм/вікно (_self)","targetParent":"Батьківський фрейм/вікно (_parent)","langDirLTR":"Зліва направо (LTR)","langDirRTL":"Справа наліво (RTL)","styles":"Стиль CSS","cssClasses":"Клас CSS","width":"Ширина","height":"Висота","align":"Вирівнювання","left":"По лівому краю","right":"По правому краю","center":"По центру","justify":"По ширині","alignLeft":"По лівому краю","alignRight":"По правому краю","alignCenter":"По центру","alignTop":"По верхньому краю","alignMiddle":"По середині","alignBottom":"По нижньому краю","alignNone":"Нема","invalidValue":"Невірне значення.","invalidHeight":"Висота повинна бути цілим числом.","invalidWidth":"Ширина повинна бути цілим числом.","invalidLength":"Вказане значення для поля \"%1\" має бути позитивним числом без або з коректним символом одиниці виміру (%2).","invalidCssLength":"Значення, вказане для \"%1\" в полі повинно бути позитивним числом або без дійсного виміру CSS блоку (px, %, in, cm, mm, em, ex, pt або pc).","invalidHtmlLength":"Значення, вказане для \"%1\" в полі повинно бути позитивним числом або без дійсного виміру HTML блоку (px або %).","invalidInlineStyle":"Значення, вказане для вбудованого стилю повинне складатися з одного чи кількох кортежів у форматі \"ім'я : значення\", розділених крапкою з комою.","cssLengthTooltip":"Введіть номер значення в пікселях або число з дійсною одиниці CSS (px, %, in, cm, mm, em, ex, pt або pc).","unavailable":"%1<span class=\"cke_accessibility\">, не доступне</span>","keyboard":{"8":"Backspace","13":"Enter","16":"Shift","17":"Ctrl","18":"Alt","32":"Пробіл","35":"End","36":"Home","46":"Видалити","112":"F1","113":"F2","114":"F3","115":"F4","116":"F5","117":"F6","118":"F7","119":"F8","120":"F9","121":"F10","122":"F11","123":"F12","124":"F13","125":"F14","126":"F15","127":"F16","128":"F17","129":"F18","130":"F19","131":"F20","132":"F21","133":"F22","134":"F23","135":"F24","224":"Command"},"keyboardShortcut":"Сполучення клавіш","optionDefault":"Типово"}};
\ No newline at end of file
diff --git a/web/core/assets/vendor/ckeditor/lang/vi.js b/web/core/assets/vendor/ckeditor/lang/vi.js
index 56473731e0..0257adb5aa 100644
--- a/web/core/assets/vendor/ckeditor/lang/vi.js
+++ b/web/core/assets/vendor/ckeditor/lang/vi.js
@@ -1,5 +1,5 @@
 /*
-Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2020, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */
-CKEDITOR.lang['vi']={"widget":{"move":"Nhấp chuột và kéo để di chuyển","label":"%1 widget"},"undo":{"redo":"Làm lại thao tác","undo":"Khôi phục thao tác"},"toolbar":{"toolbarCollapse":"Thu gọn thanh công cụ","toolbarExpand":"Mở rộng thnah công cụ","toolbarGroups":{"document":"Tài liệu","clipboard":"Clipboard/Undo","editing":"Chỉnh sửa","forms":"Bảng biểu","basicstyles":"Kiểu cơ bản","paragraph":"Đoạn","links":"Liên kết","insert":"Chèn","styles":"Kiểu","colors":"Màu sắc","tools":"Công cụ"},"toolbars":"Thanh công cụ"},"table":{"border":"Kích thước đường viền","caption":"Đầu đề","cell":{"menu":"Ô","insertBefore":"Chèn ô Phía trước","insertAfter":"Chèn ô Phía sau","deleteCell":"Xoá ô","merge":"Kết hợp ô","mergeRight":"Kết hợp sang phải","mergeDown":"Kết hợp xuống dưới","splitHorizontal":"Phân tách ô theo chiều ngang","splitVertical":"Phân tách ô theo chiều dọc","title":"Thuộc tính của ô","cellType":"Kiểu của ô","rowSpan":"Kết hợp hàng","colSpan":"Kết hợp cột","wordWrap":"Chữ liền hàng","hAlign":"Canh lề ngang","vAlign":"Canh lề dọc","alignBaseline":"Đường cơ sở","bgColor":"Màu nền","borderColor":"Màu viền","data":"Dữ liệu","header":"Đầu đề","yes":"Có","no":"Không","invalidWidth":"Chiều rộng của ô phải là một số nguyên.","invalidHeight":"Chiều cao của ô phải là một số nguyên.","invalidRowSpan":"Số hàng kết hợp phải là một số nguyên.","invalidColSpan":"Số cột kết hợp phải là một số nguyên.","chooseColor":"Chọn màu"},"cellPad":"Khoảng đệm giữ ô và nội dung","cellSpace":"Khoảng cách giữa các ô","column":{"menu":"Cột","insertBefore":"Chèn cột phía trước","insertAfter":"Chèn cột phía sau","deleteColumn":"Xoá cột"},"columns":"Số cột","deleteTable":"Xóa bảng","headers":"Đầu đề","headersBoth":"Cả hai","headersColumn":"Cột đầu tiên","headersNone":"Không có","headersRow":"Hàng đầu tiên","heightUnit":"height unit","invalidBorder":"Kích cỡ của đường biên phải là một số nguyên.","invalidCellPadding":"Khoảng đệm giữa ô và nội dung phải là một số nguyên.","invalidCellSpacing":"Khoảng cách giữa các ô phải là một số nguyên.","invalidCols":"Số lượng cột phải là một số lớn hơn 0.","invalidHeight":"Chiều cao của bảng phải là một số nguyên.","invalidRows":"Số lượng hàng phải là một số lớn hơn 0.","invalidWidth":"Chiều rộng của bảng phải là một số nguyên.","menu":"Thuộc tính bảng","row":{"menu":"Hàng","insertBefore":"Chèn hàng phía trước","insertAfter":"Chèn hàng phía sau","deleteRow":"Xoá hàng"},"rows":"Số hàng","summary":"Tóm lược","title":"Thuộc tính bảng","toolbar":"Bảng","widthPc":"Phần trăm (%)","widthPx":"Điểm ảnh (px)","widthUnit":"Đơn vị"},"stylescombo":{"label":"Kiểu","panelTitle":"Phong cách định dạng","panelTitle1":"Kiểu khối","panelTitle2":"Kiểu trực tiếp","panelTitle3":"Kiểu đối tượng"},"specialchar":{"options":"Tùy chọn các ký tự đặc biệt","title":"Hãy chọn ký tự đặc biệt","toolbar":"Chèn ký tự đặc biệt"},"sourcedialog":{"toolbar":"Mã HTML","title":"Mã HTML"},"sourcearea":{"toolbar":"Mã HTML"},"showblocks":{"toolbar":"Hiển thị các khối"},"removeformat":{"toolbar":"Xoá định dạng"},"pastetext":{"button":"Dán theo định dạng văn bản thuần","pasteNotification":"Press %1 to paste. Your browser doesn‘t support pasting with the toolbar button or context menu option.","title":"Dán theo định dạng văn bản thuần"},"pastefromword":{"confirmCleanup":"Văn bản bạn muốn dán có kèm định dạng của Word. Bạn có muốn loại bỏ định dạng Word trước khi dán?","error":"Không thể để làm sạch các dữ liệu dán do một lỗi nội bộ","title":"Dán với định dạng Word","toolbar":"Dán với định dạng Word"},"notification":{"closed":"Notification closed."},"maximize":{"maximize":"Phóng to tối đa","minimize":"Thu nhỏ"},"magicline":{"title":"Chèn đoạn vào đây"},"list":{"bulletedlist":"Chèn/Xoá Danh sách không thứ tự","numberedlist":"Chèn/Xoá Danh sách có thứ tự"},"language":{"button":"Thiết lập ngôn ngữ","remove":"Loại bỏ ngôn ngữ"},"indent":{"indent":"Dịch vào trong","outdent":"Dịch ra ngoài"},"image2":{"alt":"Chú thích ảnh","btnUpload":"Tải lên máy chủ","captioned":"Ảnh có chú thích","captionPlaceholder":"Nhãn","infoTab":"Thông tin của ảnh","lockRatio":"Giữ nguyên tỷ lệ","menu":"Thuộc tính của ảnh","pathName":"ảnh","pathNameCaption":"chú thích","resetSize":"Kích thước gốc","resizer":"Kéo rê để thay đổi kích cỡ","title":"Thuộc tính của ảnh","uploadTab":"Tải lên","urlMissing":"Thiếu đường dẫn hình ảnh","altMissing":"Alternative text is missing."},"horizontalrule":{"toolbar":"Chèn đường phân cách ngang"},"format":{"label":"Định dạng","panelTitle":"Định dạng","tag_address":"Address","tag_div":"Bình thường (DIV)","tag_h1":"Heading 1","tag_h2":"Heading 2","tag_h3":"Heading 3","tag_h4":"Heading 4","tag_h5":"Heading 5","tag_h6":"Heading 6","tag_p":"Bình thường (P)","tag_pre":"Đã thiết lập"},"filetools":{"loadError":"Error occurred during file read.","networkError":"Network error occurred during file upload.","httpError404":"HTTP error occurred during file upload (404: File not found).","httpError403":"HTTP error occurred during file upload (403: Forbidden).","httpError":"HTTP error occurred during file upload (error status: %1).","noUrlError":"Upload URL is not defined.","responseError":"Incorrect server response."},"elementspath":{"eleLabel":"Nhãn thành phần","eleTitle":"%1 thành phần"},"contextmenu":{"options":"Tùy chọn menu bổ xung"},"clipboard":{"copy":"Sao chép","copyError":"Các thiết lập bảo mật của trình duyệt không cho phép trình biên tập tự động thực thi lệnh sao chép. Hãy sử dụng bàn phím cho lệnh này (Ctrl/Cmd+C).","cut":"Cắt","cutError":"Các thiết lập bảo mật của trình duyệt không cho phép trình biên tập tự động thực thi lệnh cắt. Hãy sử dụng bàn phím cho lệnh này (Ctrl/Cmd+X).","paste":"Dán","pasteNotification":"Press %1 to paste. Your browser doesn‘t support pasting with the toolbar button or context menu option.","pasteArea":"Khu vực dán","pasteMsg":"Paste your content inside the area below and press OK."},"blockquote":{"toolbar":"Khối trích dẫn"},"basicstyles":{"bold":"Đậm","italic":"Nghiêng","strike":"Gạch xuyên ngang","subscript":"Chỉ số dưới","superscript":"Chỉ số trên","underline":"Gạch chân"},"about":{"copy":"Bản quyền &copy; $1. Giữ toàn quyền.","dlgTitle":"Thông tin về CKEditor 4","moreInfo":"Vui lòng ghé thăm trang web của chúng tôi để có thông tin về giấy phép:"},"editor":"Bộ soạn thảo văn bản có định dạng","editorPanel":"Bảng điều khiển Rich Text Editor","common":{"editorHelp":"Nhấn ALT + 0 để được giúp đỡ","browseServer":"Duyệt máy chủ","url":"URL","protocol":"Giao thức","upload":"Tải lên","uploadSubmit":"Tải lên máy chủ","image":"Hình ảnh","flash":"Flash","form":"Biểu mẫu","checkbox":"Nút kiểm","radio":"Nút chọn","textField":"Trường văn bản","textarea":"Vùng văn bản","hiddenField":"Trường ẩn","button":"Nút","select":"Ô chọn","imageButton":"Nút hình ảnh","notSet":"<không thiết lập>","id":"Định danh","name":"Tên","langDir":"Hướng ngôn ngữ","langDirLtr":"Trái sang phải (LTR)","langDirRtl":"Phải sang trái (RTL)","langCode":"Mã ngôn ngữ","longDescr":"Mô tả URL","cssClass":"Lớp Stylesheet","advisoryTitle":"Nhan đề hướng dẫn","cssStyle":"Kiểu ","ok":"Đồng ý","cancel":"Bỏ qua","close":"Đóng","preview":"Xem trước","resize":"Kéo rê để thay đổi kích cỡ","generalTab":"Tab chung","advancedTab":"Tab mở rộng","validateNumberFailed":"Giá trị này không phải là số.","confirmNewPage":"Mọi thay đổi không được lưu lại, nội dung này sẽ bị mất. Bạn có chắc chắn muốn tải một trang mới?","confirmCancel":"Một vài tùy chọn đã bị thay đổi. Bạn có chắc chắn muốn đóng hộp thoại?","options":"Tùy chọn","target":"Đích đến","targetNew":"Cửa sổ mới (_blank)","targetTop":"Cửa sổ trên cùng (_top)","targetSelf":"Tại trang (_self)","targetParent":"Cửa sổ cha (_parent)","langDirLTR":"Trái sang phải (LTR)","langDirRTL":"Phải sang trái (RTL)","styles":"Kiểu","cssClasses":"Lớp CSS","width":"Chiều rộng","height":"Chiều cao","align":"Vị trí","left":"Trái","right":"Phải","center":"Giữa","justify":"Sắp chữ","alignLeft":"Canh trái","alignRight":"Canh phải","alignCenter":"Align Center","alignTop":"Trên","alignMiddle":"Giữa","alignBottom":"Dưới","alignNone":"Không","invalidValue":"Giá trị không hợp lệ.","invalidHeight":"Chiều cao phải là số nguyên.","invalidWidth":"Chiều rộng phải là số nguyên.","invalidLength":"Value specified for the \"%1\" field must be a positive number with or without a valid measurement unit (%2).","invalidCssLength":"Giá trị quy định cho trường \"%1\" phải là một số dương có hoặc không có một đơn vị đo CSS hợp lệ (px, %, in, cm, mm, em, ex, pt, hoặc pc).","invalidHtmlLength":"Giá trị quy định cho trường \"%1\" phải là một số dương có hoặc không có một đơn vị đo HTML hợp lệ (px hoặc %).","invalidInlineStyle":"Giá trị quy định cho kiểu nội tuyến phải bao gồm một hoặc nhiều dữ liệu với định dạng \"tên:giá trị\", cách nhau bằng dấu chấm phẩy.","cssLengthTooltip":"Nhập một giá trị theo pixel hoặc một số với một đơn vị CSS hợp lệ (px, %, in, cm, mm, em, ex, pt, hoặc pc).","unavailable":"%1<span class=\"cke_accessibility\">, không có</span>","keyboard":{"8":"Phím Backspace","13":"Enter","16":"Shift","17":"Ctrl","18":"Alt","32":"Space","35":"End","36":"Home","46":"Xóa","112":"F1","113":"F2","114":"F3","115":"F4","116":"F5","117":"F6","118":"F7","119":"F8","120":"F9","121":"F10","122":"F11","123":"F12","124":"F13","125":"F14","126":"F15","127":"F16","128":"F17","129":"F18","130":"F19","131":"F20","132":"F21","133":"F22","134":"F23","135":"F24","224":"Command"},"keyboardShortcut":"Keyboard shortcut","optionDefault":"Default"}};
\ No newline at end of file
+CKEDITOR.lang['vi']={"widget":{"move":"Nhấp chuột và kéo để di chuyển","label":"%1 widget"},"undo":{"redo":"Làm lại thao tác","undo":"Khôi phục thao tác"},"toolbar":{"toolbarCollapse":"Thu gọn thanh công cụ","toolbarExpand":"Mở rộng thnah công cụ","toolbarGroups":{"document":"Tài liệu","clipboard":"Clipboard/Undo","editing":"Chỉnh sửa","forms":"Bảng biểu","basicstyles":"Kiểu cơ bản","paragraph":"Đoạn","links":"Liên kết","insert":"Chèn","styles":"Kiểu","colors":"Màu sắc","tools":"Công cụ"},"toolbars":"Thanh công cụ"},"table":{"border":"Kích thước đường viền","caption":"Đầu đề","cell":{"menu":"Ô","insertBefore":"Chèn ô Phía trước","insertAfter":"Chèn ô Phía sau","deleteCell":"Xoá ô","merge":"Kết hợp ô","mergeRight":"Kết hợp sang phải","mergeDown":"Kết hợp xuống dưới","splitHorizontal":"Phân tách ô theo chiều ngang","splitVertical":"Phân tách ô theo chiều dọc","title":"Thuộc tính của ô","cellType":"Kiểu của ô","rowSpan":"Kết hợp hàng","colSpan":"Kết hợp cột","wordWrap":"Chữ liền hàng","hAlign":"Canh lề ngang","vAlign":"Canh lề dọc","alignBaseline":"Đường cơ sở","bgColor":"Màu nền","borderColor":"Màu viền","data":"Dữ liệu","header":"Đầu đề","yes":"Có","no":"Không","invalidWidth":"Chiều rộng của ô phải là một số nguyên.","invalidHeight":"Chiều cao của ô phải là một số nguyên.","invalidRowSpan":"Số hàng kết hợp phải là một số nguyên.","invalidColSpan":"Số cột kết hợp phải là một số nguyên.","chooseColor":"Chọn màu"},"cellPad":"Khoảng đệm giữ ô và nội dung","cellSpace":"Khoảng cách giữa các ô","column":{"menu":"Cột","insertBefore":"Chèn cột phía trước","insertAfter":"Chèn cột phía sau","deleteColumn":"Xoá cột"},"columns":"Số cột","deleteTable":"Xóa bảng","headers":"Đầu đề","headersBoth":"Cả hai","headersColumn":"Cột đầu tiên","headersNone":"Không có","headersRow":"Hàng đầu tiên","heightUnit":"height unit","invalidBorder":"Kích cỡ của đường biên phải là một số nguyên.","invalidCellPadding":"Khoảng đệm giữa ô và nội dung phải là một số nguyên.","invalidCellSpacing":"Khoảng cách giữa các ô phải là một số nguyên.","invalidCols":"Số lượng cột phải là một số lớn hơn 0.","invalidHeight":"Chiều cao của bảng phải là một số nguyên.","invalidRows":"Số lượng hàng phải là một số lớn hơn 0.","invalidWidth":"Chiều rộng của bảng phải là một số nguyên.","menu":"Thuộc tính bảng","row":{"menu":"Hàng","insertBefore":"Chèn hàng phía trước","insertAfter":"Chèn hàng phía sau","deleteRow":"Xoá hàng"},"rows":"Số hàng","summary":"Tóm lược","title":"Thuộc tính bảng","toolbar":"Bảng","widthPc":"Phần trăm (%)","widthPx":"Điểm ảnh (px)","widthUnit":"Đơn vị"},"stylescombo":{"label":"Kiểu","panelTitle":"Phong cách định dạng","panelTitle1":"Kiểu khối","panelTitle2":"Kiểu trực tiếp","panelTitle3":"Kiểu đối tượng"},"specialchar":{"options":"Tùy chọn các ký tự đặc biệt","title":"Hãy chọn ký tự đặc biệt","toolbar":"Chèn ký tự đặc biệt"},"sourcedialog":{"toolbar":"Mã HTML","title":"Mã HTML"},"sourcearea":{"toolbar":"Mã HTML"},"showblocks":{"toolbar":"Hiển thị các khối"},"removeformat":{"toolbar":"Xoá định dạng"},"pastetext":{"button":"Dán theo định dạng văn bản thuần","pasteNotification":"Press %1 to paste. Your browser doesn‘t support pasting with the toolbar button or context menu option.","title":"Dán theo định dạng văn bản thuần"},"pastefromword":{"confirmCleanup":"Văn bản bạn muốn dán có kèm định dạng của Word. Bạn có muốn loại bỏ định dạng Word trước khi dán?","error":"Không thể để làm sạch các dữ liệu dán do một lỗi nội bộ","title":"Dán với định dạng Word","toolbar":"Dán với định dạng Word"},"notification":{"closed":"Notification closed."},"maximize":{"maximize":"Phóng to tối đa","minimize":"Thu nhỏ"},"magicline":{"title":"Chèn đoạn vào đây"},"list":{"bulletedlist":"Chèn/Xoá Danh sách không thứ tự","numberedlist":"Chèn/Xoá Danh sách có thứ tự"},"language":{"button":"Thiết lập ngôn ngữ","remove":"Loại bỏ ngôn ngữ"},"indent":{"indent":"Dịch vào trong","outdent":"Dịch ra ngoài"},"image2":{"alt":"Chú thích ảnh","btnUpload":"Tải lên máy chủ","captioned":"Ảnh có chú thích","captionPlaceholder":"Nhãn","infoTab":"Thông tin của ảnh","lockRatio":"Giữ nguyên tỷ lệ","menu":"Thuộc tính của ảnh","pathName":"ảnh","pathNameCaption":"chú thích","resetSize":"Kích thước gốc","resizer":"Kéo rê để thay đổi kích cỡ","title":"Thuộc tính của ảnh","uploadTab":"Tải lên","urlMissing":"Thiếu đường dẫn hình ảnh","altMissing":"Alternative text is missing."},"horizontalrule":{"toolbar":"Chèn đường phân cách ngang"},"format":{"label":"Định dạng","panelTitle":"Định dạng","tag_address":"Address","tag_div":"Bình thường (DIV)","tag_h1":"Heading 1","tag_h2":"Heading 2","tag_h3":"Heading 3","tag_h4":"Heading 4","tag_h5":"Heading 5","tag_h6":"Heading 6","tag_p":"Bình thường (P)","tag_pre":"Đã thiết lập"},"filetools":{"loadError":"Error occurred during file read.","networkError":"Network error occurred during file upload.","httpError404":"HTTP error occurred during file upload (404: File not found).","httpError403":"HTTP error occurred during file upload (403: Forbidden).","httpError":"HTTP error occurred during file upload (error status: %1).","noUrlError":"Upload URL is not defined.","responseError":"Incorrect server response."},"elementspath":{"eleLabel":"Nhãn thành phần","eleTitle":"%1 thành phần"},"contextmenu":{"options":"Tùy chọn menu bổ xung"},"clipboard":{"copy":"Sao chép","copyError":"Các thiết lập bảo mật của trình duyệt không cho phép trình biên tập tự động thực thi lệnh sao chép. Hãy sử dụng bàn phím cho lệnh này (Ctrl/Cmd+C).","cut":"Cắt","cutError":"Các thiết lập bảo mật của trình duyệt không cho phép trình biên tập tự động thực thi lệnh cắt. Hãy sử dụng bàn phím cho lệnh này (Ctrl/Cmd+X).","paste":"Dán","pasteNotification":"Press %1 to paste. Your browser doesn‘t support pasting with the toolbar button or context menu option.","pasteArea":"Khu vực dán","pasteMsg":"Paste your content inside the area below and press OK."},"blockquote":{"toolbar":"Khối trích dẫn"},"basicstyles":{"bold":"Đậm","italic":"Nghiêng","strike":"Gạch xuyên ngang","subscript":"Chỉ số dưới","superscript":"Chỉ số trên","underline":"Gạch chân"},"about":{"copy":"Bản quyền &copy; $1. Giữ toàn quyền.","dlgTitle":"Thông tin về CKEditor 4","moreInfo":"Vui lòng ghé thăm trang web của chúng tôi để có thông tin về giấy phép:"},"editor":"Bộ soạn thảo văn bản có định dạng","editorPanel":"Bảng điều khiển Rich Text Editor","common":{"editorHelp":"Nhấn ALT + 0 để được giúp đỡ","browseServer":"Duyệt máy chủ","url":"URL","protocol":"Giao thức","upload":"Tải lên","uploadSubmit":"Tải lên máy chủ","image":"Hình ảnh","flash":"Flash","form":"Biểu mẫu","checkbox":"Nút kiểm","radio":"Nút chọn","textField":"Trường văn bản","textarea":"Vùng văn bản","hiddenField":"Trường ẩn","button":"Nút","select":"Ô chọn","imageButton":"Nút hình ảnh","notSet":"<không thiết lập>","id":"Định danh","name":"Tên","langDir":"Hướng ngôn ngữ","langDirLtr":"Trái sang phải (LTR)","langDirRtl":"Phải sang trái (RTL)","langCode":"Mã ngôn ngữ","longDescr":"Mô tả URL","cssClass":"Lớp Stylesheet","advisoryTitle":"Nhan đề hướng dẫn","cssStyle":"Kiểu ","ok":"Đồng ý","cancel":"Bỏ qua","close":"Đóng","preview":"Xem trước","resize":"Kéo rê để thay đổi kích cỡ","generalTab":"Tab chung","advancedTab":"Tab mở rộng","validateNumberFailed":"Giá trị này không phải là số.","confirmNewPage":"Mọi thay đổi không được lưu lại, nội dung này sẽ bị mất. Bạn có chắc chắn muốn tải một trang mới?","confirmCancel":"Một vài tùy chọn đã bị thay đổi. Bạn có chắc chắn muốn đóng hộp thoại?","options":"Tùy chọn","target":"Đích đến","targetNew":"Cửa sổ mới (_blank)","targetTop":"Cửa sổ trên cùng (_top)","targetSelf":"Tại trang (_self)","targetParent":"Cửa sổ cha (_parent)","langDirLTR":"Trái sang phải (LTR)","langDirRTL":"Phải sang trái (RTL)","styles":"Kiểu","cssClasses":"Lớp CSS","width":"Chiều rộng","height":"Chiều cao","align":"Vị trí","left":"Trái","right":"Phải","center":"Giữa","justify":"Sắp chữ","alignLeft":"Canh trái","alignRight":"Canh phải","alignCenter":"Canh giữa","alignTop":"Trên","alignMiddle":"Giữa","alignBottom":"Dưới","alignNone":"Không","invalidValue":"Giá trị không hợp lệ.","invalidHeight":"Chiều cao phải là số nguyên.","invalidWidth":"Chiều rộng phải là số nguyên.","invalidLength":"Giá trị cho trường \"%1\" phải là một số dương có hoặc không có đơn vị đo lường hợp lệ (%2)","invalidCssLength":"Giá trị quy định cho trường \"%1\" phải là một số dương có hoặc không có một đơn vị đo CSS hợp lệ (px, %, in, cm, mm, em, ex, pt, hoặc pc).","invalidHtmlLength":"Giá trị quy định cho trường \"%1\" phải là một số dương có hoặc không có một đơn vị đo HTML hợp lệ (px hoặc %).","invalidInlineStyle":"Giá trị quy định cho kiểu nội tuyến phải bao gồm một hoặc nhiều dữ liệu với định dạng \"tên:giá trị\", cách nhau bằng dấu chấm phẩy.","cssLengthTooltip":"Nhập một giá trị theo pixel hoặc một số với một đơn vị CSS hợp lệ (px, %, in, cm, mm, em, ex, pt, hoặc pc).","unavailable":"%1<span class=\"cke_accessibility\">, không có</span>","keyboard":{"8":"Phím Backspace","13":"Enter","16":"Shift","17":"Ctrl","18":"Alt","32":"Cách","35":"End","36":"Home","46":"Xóa","112":"F1","113":"F2","114":"F3","115":"F4","116":"F5","117":"F6","118":"F7","119":"F8","120":"F9","121":"F10","122":"F11","123":"F12","124":"F13","125":"F14","126":"F15","127":"F16","128":"F17","129":"F18","130":"F19","131":"F20","132":"F21","133":"F22","134":"F23","135":"F24","224":"Command"},"keyboardShortcut":"Phím tắt","optionDefault":"Mặc định"}};
\ No newline at end of file
diff --git a/web/core/assets/vendor/ckeditor/lang/zh-cn.js b/web/core/assets/vendor/ckeditor/lang/zh-cn.js
index 93fea24029..5eb4726916 100644
--- a/web/core/assets/vendor/ckeditor/lang/zh-cn.js
+++ b/web/core/assets/vendor/ckeditor/lang/zh-cn.js
@@ -1,5 +1,5 @@
 /*
-Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2020, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */
 CKEDITOR.lang['zh-cn']={"widget":{"move":"点击并拖拽以移动","label":"%1 小部件"},"undo":{"redo":"重做","undo":"撤消"},"toolbar":{"toolbarCollapse":"折叠工具栏","toolbarExpand":"展开工具栏","toolbarGroups":{"document":"文档","clipboard":"剪贴板/撤销","editing":"编辑","forms":"表单","basicstyles":"基本格式","paragraph":"段落","links":"链接","insert":"插入","styles":"样式","colors":"颜色","tools":"工具"},"toolbars":"工具栏"},"table":{"border":"边框","caption":"标题","cell":{"menu":"单元格","insertBefore":"在左侧插入单元格","insertAfter":"在右侧插入单元格","deleteCell":"删除单元格","merge":"合并单元格","mergeRight":"向右合并单元格","mergeDown":"向下合并单元格","splitHorizontal":"水平拆分单元格","splitVertical":"垂直拆分单元格","title":"单元格属性","cellType":"单元格类型","rowSpan":"纵跨行数","colSpan":"横跨列数","wordWrap":"自动换行","hAlign":"水平对齐","vAlign":"垂直对齐","alignBaseline":"基线","bgColor":"背景颜色","borderColor":"边框颜色","data":"数据","header":"表头","yes":"是","no":"否","invalidWidth":"单元格宽度必须为数字格式","invalidHeight":"单元格高度必须为数字格式","invalidRowSpan":"行跨度必须为整数格式","invalidColSpan":"列跨度必须为整数格式","chooseColor":"选择"},"cellPad":"边距","cellSpace":"间距","column":{"menu":"列","insertBefore":"在左侧插入列","insertAfter":"在右侧插入列","deleteColumn":"删除列"},"columns":"列数","deleteTable":"删除表格","headers":"标题单元格","headersBoth":"第一列和第一行","headersColumn":"第一列","headersNone":"无","headersRow":"第一行","heightUnit":"height unit","invalidBorder":"边框粗细必须为数字格式","invalidCellPadding":"单元格填充必须为数字格式","invalidCellSpacing":"单元格间距必须为数字格式","invalidCols":"指定的行数必须大于零","invalidHeight":"表格高度必须为数字格式","invalidRows":"指定的列数必须大于零","invalidWidth":"表格宽度必须为数字格式","menu":"表格属性","row":{"menu":"行","insertBefore":"在上方插入行","insertAfter":"在下方插入行","deleteRow":"删除行"},"rows":"行数","summary":"摘要","title":"表格属性","toolbar":"表格","widthPc":"百分比","widthPx":"像素","widthUnit":"宽度单位"},"stylescombo":{"label":"样式","panelTitle":"样式","panelTitle1":"块级元素样式","panelTitle2":"内联元素样式","panelTitle3":"对象元素样式"},"specialchar":{"options":"特殊符号选项","title":"选择特殊符号","toolbar":"插入特殊符号"},"sourcedialog":{"toolbar":"源码","title":"源码"},"sourcearea":{"toolbar":"源码"},"showblocks":{"toolbar":"显示区块"},"removeformat":{"toolbar":"清除格式"},"pastetext":{"button":"粘贴为无格式文本","pasteNotification":"您的浏览器不支持通过工具栏或右键菜单进行粘贴,请按 %1 进行粘贴。","title":"粘贴为无格式文本"},"pastefromword":{"confirmCleanup":"您要粘贴的内容好像是来自 MS Word,是否要清除 MS Word 格式后再粘贴?","error":"由于内部错误无法清理要粘贴的数据","title":"从 MS Word 粘贴","toolbar":"从 MS Word 粘贴"},"notification":{"closed":"通知已关闭"},"maximize":{"maximize":"全屏","minimize":"最小化"},"magicline":{"title":"在这插入段落"},"list":{"bulletedlist":"项目列表","numberedlist":"编号列表"},"language":{"button":"设置语言","remove":"移除语言"},"indent":{"indent":"增加缩进量","outdent":"减少缩进量"},"image2":{"alt":"替换文本","btnUpload":"上传到服务器","captioned":"带标题图像","captionPlaceholder":"标题","infoTab":"图像信息","lockRatio":"锁定比例","menu":"图像属性","pathName":"图像","pathNameCaption":"标题","resetSize":"原始尺寸","resizer":"点击并拖拽以改变尺寸","title":"图像属性","uploadTab":"上传","urlMissing":"缺少图像源文件地址","altMissing":"缺少替换文本"},"horizontalrule":{"toolbar":"插入水平线"},"format":{"label":"格式","panelTitle":"格式","tag_address":"地址","tag_div":"段落(DIV)","tag_h1":"标题 1","tag_h2":"标题 2","tag_h3":"标题 3","tag_h4":"标题 4","tag_h5":"标题 5","tag_h6":"标题 6","tag_p":"普通","tag_pre":"已编排格式"},"filetools":{"loadError":"读取文件时发生错误","networkError":"上传文件时发生网络错误","httpError404":"上传文件时发生 HTTP 错误(404:无法找到文件)","httpError403":"上传文件时发生 HTTP 错误(403:禁止访问)","httpError":"上传文件时发生 HTTP 错误(错误代码:%1)","noUrlError":"上传的 URL 未定义","responseError":"不正确的服务器响应"},"elementspath":{"eleLabel":"元素路径","eleTitle":"%1 元素"},"contextmenu":{"options":"快捷菜单选项"},"clipboard":{"copy":"复制","copyError":"您的浏览器安全设置不允许编辑器自动执行复制操作,请使用键盘快捷键(Ctrl/Cmd+C)来完成。","cut":"剪切","cutError":"您的浏览器安全设置不允许编辑器自动执行剪切操作,请使用键盘快捷键(Ctrl/Cmd+X)来完成。","paste":"粘贴","pasteNotification":"您的浏览器不支持通过工具栏或右键菜单进行粘贴,请按 %1 进行粘贴。","pasteArea":"粘贴区域","pasteMsg":"将您的内容粘贴到下方区域,然后按确定。"},"blockquote":{"toolbar":"块引用"},"basicstyles":{"bold":"加粗","italic":"倾斜","strike":"删除线","subscript":"下标","superscript":"上标","underline":"下划线"},"about":{"copy":"版权所有 &copy; $1。<br />保留所有权利。","dlgTitle":"关于 CKEditor 4","moreInfo":"相关授权许可信息请访问我们的网站:"},"editor":"所见即所得编辑器","editorPanel":"所见即所得编辑器面板","common":{"editorHelp":"按 ALT+0 获得帮助","browseServer":"浏览服务器","url":"URL","protocol":"协议","upload":"上传","uploadSubmit":"上传到服务器","image":"图像","flash":"Flash","form":"表单","checkbox":"复选框","radio":"单选按钮","textField":"单行文本","textarea":"多行文本","hiddenField":"隐藏域","button":"按钮","select":"列表/菜单","imageButton":"图像按钮","notSet":"<没有设置>","id":"ID","name":"名称","langDir":"语言方向","langDirLtr":"从左到右 (LTR)","langDirRtl":"从右到左 (RTL)","langCode":"语言代码","longDescr":"详细说明 URL","cssClass":"样式类名称","advisoryTitle":"标题","cssStyle":"行内样式","ok":"确定","cancel":"取消","close":"关闭","preview":"预览","resize":"拖拽以改变大小","generalTab":"常规","advancedTab":"高级","validateNumberFailed":"需要输入数字格式","confirmNewPage":"当前文档内容未保存,是否确认新建文档?","confirmCancel":"部分修改尚未保存,是否确认关闭对话框?","options":"选项","target":"目标窗口","targetNew":"新窗口 (_blank)","targetTop":"整页 (_top)","targetSelf":"本窗口 (_self)","targetParent":"父窗口 (_parent)","langDirLTR":"从左到右 (LTR)","langDirRTL":"从右到左 (RTL)","styles":"样式","cssClasses":"样式类","width":"宽度","height":"高度","align":"对齐方式","left":"左对齐","right":"右对齐","center":"居中","justify":"两端对齐","alignLeft":"左对齐","alignRight":"右对齐","alignCenter":"居中","alignTop":"顶端","alignMiddle":"居中","alignBottom":"底部","alignNone":"无","invalidValue":"无效的值。","invalidHeight":"高度必须为数字格式","invalidWidth":"宽度必须为数字格式","invalidLength":"为 \"%1\" 字段设置的值必须是一个正数或者没有一个有效的度量单位 (%2)。","invalidCssLength":"此“%1”字段的值必须为正数,可以包含或不包含一个有效的 CSS 长度单位(px, %, in, cm, mm, em, ex, pt 或 pc)","invalidHtmlLength":"此“%1”字段的值必须为正数,可以包含或不包含一个有效的 HTML 长度单位(px 或 %)","invalidInlineStyle":"内联样式必须为格式是以分号分隔的一个或多个“属性名 : 属性值”。","cssLengthTooltip":"输入一个表示像素值的数字,或加上一个有效的 CSS 长度单位(px, %, in, cm, mm, em, ex, pt 或 pc)。","unavailable":"%1<span class=\"cke_accessibility\">,不可用</span>","keyboard":{"8":"退格键","13":"回车键","16":"Shift","17":"Ctrl","18":"Alt","32":"空格键","35":"行尾键","36":"行首键","46":"删除键","112":"F1","113":"F2","114":"F3","115":"F4","116":"F5","117":"F6","118":"F7","119":"F8","120":"F9","121":"F10","122":"F11","123":"F12","124":"F13","125":"F14","126":"F15","127":"F16","128":"F17","129":"F18","130":"F19","131":"F20","132":"F21","133":"F22","134":"F23","135":"F24","224":"Command"},"keyboardShortcut":"快捷键","optionDefault":"默认"}};
\ No newline at end of file
diff --git a/web/core/assets/vendor/ckeditor/lang/zh.js b/web/core/assets/vendor/ckeditor/lang/zh.js
index a44d41b325..1c1f68650c 100644
--- a/web/core/assets/vendor/ckeditor/lang/zh.js
+++ b/web/core/assets/vendor/ckeditor/lang/zh.js
@@ -1,5 +1,5 @@
 /*
-Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2020, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */
 CKEDITOR.lang['zh']={"widget":{"move":"拖曳以移動","label":"%1 小工具"},"undo":{"redo":"取消復原","undo":"復原"},"toolbar":{"toolbarCollapse":"摺疊工具列","toolbarExpand":"展開工具列","toolbarGroups":{"document":"文件","clipboard":"剪貼簿/復原","editing":"編輯選項","forms":"格式","basicstyles":"基本樣式","paragraph":"段落","links":"連結","insert":"插入","styles":"樣式","colors":"顏色","tools":"工具"},"toolbars":"編輯器工具列"},"table":{"border":"框線大小","caption":"標題","cell":{"menu":"儲存格","insertBefore":"前方插入儲存格","insertAfter":"後方插入儲存格","deleteCell":"刪除儲存格","merge":"合併儲存格","mergeRight":"向右合併","mergeDown":"向下合併","splitHorizontal":"水平分割儲存格","splitVertical":"垂直分割儲存格","title":"儲存格屬性","cellType":"儲存格類型","rowSpan":"列全長","colSpan":"行全長","wordWrap":"自動斷行","hAlign":"水平對齊","vAlign":"垂直對齊","alignBaseline":"基準線","bgColor":"背景顏色","borderColor":"框線顏色","data":"資料","header":"頁首","yes":"是","no":"否","invalidWidth":"儲存格寬度必須為數字。","invalidHeight":"儲存格高度必須為數字。","invalidRowSpan":"列全長必須是整數。","invalidColSpan":"行全長必須是整數。","chooseColor":"選擇"},"cellPad":"儲存格邊距","cellSpace":"儲存格間距","column":{"menu":"行","insertBefore":"左方插入行","insertAfter":"右方插入行","deleteColumn":"刪除行"},"columns":"行","deleteTable":"刪除表格","headers":"頁首","headersBoth":"同時","headersColumn":"第一行","headersNone":"無","headersRow":"第一列","heightUnit":"height unit","invalidBorder":"框線大小必須是整數。","invalidCellPadding":"儲存格邊距必須為正數。","invalidCellSpacing":"儲存格間距必須為正數。","invalidCols":"行數須為大於 0 的正整數。","invalidHeight":"表格高度必須為數字。","invalidRows":"列數須為大於 0 的正整數。","invalidWidth":"表格寬度必須為數字。","menu":"表格屬性","row":{"menu":"列","insertBefore":"上方插入列","insertAfter":"下方插入列","deleteRow":"刪除列"},"rows":"列","summary":"總結","title":"表格屬性","toolbar":"表格","widthPc":"百分比","widthPx":"像素","widthUnit":"寬度單位"},"stylescombo":{"label":"樣式","panelTitle":"格式化樣式","panelTitle1":"區塊樣式","panelTitle2":"內嵌樣式","panelTitle3":"物件樣式"},"specialchar":{"options":"特殊字元選項","title":"選取特殊字元","toolbar":"插入特殊字元"},"sourcedialog":{"toolbar":"原始碼","title":"原始碼"},"sourcearea":{"toolbar":"原始碼"},"showblocks":{"toolbar":"顯示區塊"},"removeformat":{"toolbar":"移除格式"},"pastetext":{"button":"貼成純文字","pasteNotification":"請按下「%1」貼上。您的瀏覽器不支援工具列按鈕或是內容功能表選項。 ","title":"貼成純文字"},"pastefromword":{"confirmCleanup":"您想貼上的文字似乎是自 Word 複製而來,請問您是否要先清除 Word 的格式後再行貼上?","error":"由於發生內部錯誤,無法清除清除 Word 的格式。","title":"自 Word 貼上","toolbar":"自 Word 貼上"},"notification":{"closed":"通知已關閉。"},"maximize":{"maximize":"最大化","minimize":"最小化"},"magicline":{"title":"在此插入段落"},"list":{"bulletedlist":"插入/移除項目符號清單","numberedlist":"插入/移除編號清單清單"},"language":{"button":"設定語言","remove":"移除語言"},"indent":{"indent":"增加縮排","outdent":"減少縮排"},"image2":{"alt":"替代文字","btnUpload":"傳送至伺服器","captioned":"已加標題之圖片","captionPlaceholder":"標題","infoTab":"影像資訊","lockRatio":"固定比例","menu":"影像屬性","pathName":"圖片","pathNameCaption":"標題","resetSize":"重設大小","resizer":"拖曳以改變大小","title":"影像屬性","uploadTab":"上傳","urlMissing":"遺失圖片來源之 URL ","altMissing":"替代文字遺失。"},"horizontalrule":{"toolbar":"插入水平線"},"format":{"label":"格式","panelTitle":"段落格式","tag_address":"地址","tag_div":"標準 (DIV)","tag_h1":"標題 1","tag_h2":"標題 2","tag_h3":"標題 3","tag_h4":"標題 4","tag_h5":"標題 5","tag_h6":"標題 6","tag_p":"標準","tag_pre":"格式設定"},"filetools":{"loadError":"在讀取檔案時發生錯誤。","networkError":"在上傳檔案時發生網路錯誤。","httpError404":"在上傳檔案時發生 HTTP 錯誤(404:檔案找不到)。","httpError403":"在上傳檔案時發生 HTTP 錯誤(403:禁止)。","httpError":"在上傳檔案時發生 HTTP 錯誤(錯誤狀態:%1)。","noUrlError":"上傳的 URL 未被定義。","responseError":"不正確的伺服器回應。"},"elementspath":{"eleLabel":"元件路徑","eleTitle":"%1 個元件"},"contextmenu":{"options":"內容功能表選項"},"clipboard":{"copy":"複製","copyError":"瀏覽器的安全性設定不允許編輯器自動執行複製動作。請使用鍵盤快捷鍵 (Ctrl/Cmd+C) 複製。","cut":"剪下","cutError":"瀏覽器的安全性設定不允許編輯器自動執行剪下動作。請使用鏐盤快捷鍵 (Ctrl/Cmd+X) 剪下。","paste":"貼上","pasteNotification":"請按下「%1」貼上。您的瀏覽器不支援工具列按鈕或是內容功能表選項。","pasteArea":"貼上區","pasteMsg":"請將您的內容貼於下方區域中並按下「OK」。"},"blockquote":{"toolbar":"引用段落"},"basicstyles":{"bold":"粗體","italic":"斜體","strike":"刪除線","subscript":"下標","superscript":"上標","underline":"底線"},"about":{"copy":"Copyright &copy; $1. All rights reserved.","dlgTitle":"關於 CKEditor 4","moreInfo":"關於授權資訊,請參閱我們的網站:"},"editor":"RTF 編輯器","editorPanel":"RTF 編輯器面板","common":{"editorHelp":"按下 ALT 0 取得說明。","browseServer":"瀏覽伺服器","url":"URL","protocol":"通訊協定","upload":"上傳","uploadSubmit":"傳送至伺服器","image":"圖像","flash":"Flash","form":"表格","checkbox":"核取方塊","radio":"選項按鈕","textField":"文字欄位","textarea":"文字區域","hiddenField":"隱藏欄位","button":"按鈕","select":"選取欄位","imageButton":"影像按鈕","notSet":"<未設定>","id":"ID","name":"名稱","langDir":"語言方向","langDirLtr":"由左至右 (LTR)","langDirRtl":"由右至左 (RTL)","langCode":"語言代碼","longDescr":"完整描述 URL","cssClass":"樣式表類別","advisoryTitle":"標題","cssStyle":"樣式","ok":"確定","cancel":"取消","close":"關閉","preview":"預覽","resize":"調整大小","generalTab":"一般","advancedTab":"進階","validateNumberFailed":"此值不是數值。","confirmNewPage":"現存的修改尚未儲存,要開新檔案?","confirmCancel":"部份選項尚未儲存,要關閉對話框?","options":"選項","target":"目標","targetNew":"開新視窗 (_blank)","targetTop":"最上層視窗 (_top)","targetSelf":"相同視窗 (_self)","targetParent":"父視窗 (_parent)","langDirLTR":"由左至右 (LTR)","langDirRTL":"由右至左 (RTL)","styles":"樣式","cssClasses":"樣式表類別","width":"寬度","height":"高度","align":"對齊方式","left":"靠左對齊","right":"靠右對齊","center":"置中對齊","justify":"左右對齊","alignLeft":"靠左對齊","alignRight":"靠右對齊","alignCenter":"置中對齊","alignTop":"頂端","alignMiddle":"中間對齊","alignBottom":"底端","alignNone":"無","invalidValue":"無效值。","invalidHeight":"高度必須為數字。","invalidWidth":"寬度必須為數字。","invalidLength":"為「%1」欄位指定的值必須為正值,可包含或不包含測量單位(%2)。","invalidCssLength":"「%1」的值應為正數,並可包含有效的 CSS 單位 (px, %, in, cm, mm, em, ex, pt, 或 pc)。","invalidHtmlLength":"「%1」的值應為正數,並可包含有效的 HTML 單位 (px 或 %)。","invalidInlineStyle":"行內樣式的值應包含一個以上的變數值組,其格式如「名稱:值」,並以分號區隔之。","cssLengthTooltip":"請輸入數值,單位是像素或有效的 CSS 單位 (px, %, in, cm, mm, em, ex, pt, 或 pc)。","unavailable":"%1<span class=\"cke_accessibility\">,無法使用</span>","keyboard":{"8":"退格鍵","13":"Enter","16":"Shift","17":"Ctrl","18":"Alt","32":"空白鍵","35":"End","36":"Home","46":"刪除","112":"F1","113":"F2","114":"F3","115":"F4","116":"F5","117":"F6","118":"F7","119":"F8","120":"F9","121":"F10","122":"F11","123":"F12","124":"F13","125":"F14","126":"F15","127":"F16","128":"F17","129":"F18","130":"F19","131":"F20","132":"F21","133":"F22","134":"F23","135":"F24","224":"Command 鍵"},"keyboardShortcut":"鍵盤快捷鍵","optionDefault":"預設"}};
\ No newline at end of file
diff --git a/web/core/assets/vendor/ckeditor/plugins/specialchar/dialogs/specialchar.js b/web/core/assets/vendor/ckeditor/plugins/specialchar/dialogs/specialchar.js
index 2f19c85604..316a7deff0 100644
--- a/web/core/assets/vendor/ckeditor/plugins/specialchar/dialogs/specialchar.js
+++ b/web/core/assets/vendor/ckeditor/plugins/specialchar/dialogs/specialchar.js
@@ -2,13 +2,13 @@
  Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
  For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */
-CKEDITOR.dialog.add("specialchar",function(k){var e,n=k.lang.specialchar,m=function(c){var b;c=c.data?c.data.getTarget():new CKEDITOR.dom.element(c);"a"==c.getName()&&(b=c.getChild(0).getHtml())&&(c.removeClass("cke_light_background"),e.hide(),c=k.document.createElement("span"),c.setHtml(b),k.insertText(c.getText()))},p=CKEDITOR.tools.addFunction(m),l,g=function(c,b){var a;b=b||c.data.getTarget();"span"==b.getName()&&(b=b.getParent());if("a"==b.getName()&&(a=b.getChild(0).getHtml())){l&&d(null,l);
-var f=e.getContentElement("info","htmlPreview").getElement();e.getContentElement("info","charPreview").getElement().setHtml(a);f.setHtml(CKEDITOR.tools.htmlEncode(a));b.getParent().addClass("cke_light_background");l=b}},d=function(c,b){b=b||c.data.getTarget();"span"==b.getName()&&(b=b.getParent());"a"==b.getName()&&(e.getContentElement("info","charPreview").getElement().setHtml("\x26nbsp;"),e.getContentElement("info","htmlPreview").getElement().setHtml("\x26nbsp;"),b.getParent().removeClass("cke_light_background"),
-l=void 0)},q=CKEDITOR.tools.addFunction(function(c){c=new CKEDITOR.dom.event(c);var b=c.getTarget(),a;a=c.getKeystroke();var f="rtl"==k.lang.dir;switch(a){case 38:if(a=b.getParent().getParent().getPrevious())a=a.getChild([b.getParent().getIndex(),0]),a.focus(),d(null,b),g(null,a);c.preventDefault();break;case 40:(a=b.getParent().getParent().getNext())&&(a=a.getChild([b.getParent().getIndex(),0]))&&1==a.type&&(a.focus(),d(null,b),g(null,a));c.preventDefault();break;case 32:m({data:c});c.preventDefault();
-break;case f?37:39:if(a=b.getParent().getNext())a=a.getChild(0),1==a.type?(a.focus(),d(null,b),g(null,a),c.preventDefault(!0)):d(null,b);else if(a=b.getParent().getParent().getNext())(a=a.getChild([0,0]))&&1==a.type?(a.focus(),d(null,b),g(null,a),c.preventDefault(!0)):d(null,b);break;case f?39:37:(a=b.getParent().getPrevious())?(a=a.getChild(0),a.focus(),d(null,b),g(null,a),c.preventDefault(!0)):(a=b.getParent().getParent().getPrevious())?(a=a.getLast().getChild(0),a.focus(),d(null,b),g(null,a),c.preventDefault(!0)):
-d(null,b)}});return{title:n.title,minWidth:430,minHeight:280,buttons:[CKEDITOR.dialog.cancelButton],charColumns:17,onLoad:function(){for(var c=this.definition.charColumns,b=k.config.specialChars,a=CKEDITOR.tools.getNextId()+"_specialchar_table_label",f=['\x3ctable role\x3d"listbox" aria-labelledby\x3d"'+a+'" style\x3d"width: 320px; height: 100%; border-collapse: separate;" align\x3d"center" cellspacing\x3d"2" cellpadding\x3d"2" border\x3d"0"\x3e'],d=0,g=b.length,h,e;d<g;){f.push('\x3ctr role\x3d"presentation"\x3e');
-for(var l=0;l<c;l++,d++){if(h=b[d]){h instanceof Array?(e=h[1],h=h[0]):(e=h.replace("\x26","").replace(";","").replace("#",""),e=n[e]||h);var m="cke_specialchar_label_"+d+"_"+CKEDITOR.tools.getNextNumber();f.push('\x3ctd class\x3d"cke_dark_background" style\x3d"cursor: default" role\x3d"presentation"\x3e\x3ca href\x3d"javascript: void(0);" role\x3d"option" aria-posinset\x3d"'+(d+1)+'"',' aria-setsize\x3d"'+g+'"',' aria-labelledby\x3d"'+m+'"',' class\x3d"cke_specialchar" title\x3d"',CKEDITOR.tools.htmlEncode(e),
-'" onkeydown\x3d"CKEDITOR.tools.callFunction( '+q+', event, this )" onclick\x3d"CKEDITOR.tools.callFunction('+p+', this); return false;" tabindex\x3d"-1"\x3e\x3cspan style\x3d"margin: 0 auto;cursor: inherit"\x3e'+h+'\x3c/span\x3e\x3cspan class\x3d"cke_voice_label" id\x3d"'+m+'"\x3e'+e+"\x3c/span\x3e\x3c/a\x3e")}else f.push('\x3ctd class\x3d"cke_dark_background"\x3e\x26nbsp;');f.push("\x3c/td\x3e")}f.push("\x3c/tr\x3e")}f.push("\x3c/tbody\x3e\x3c/table\x3e",'\x3cspan id\x3d"'+a+'" class\x3d"cke_voice_label"\x3e'+
-n.options+"\x3c/span\x3e");this.getContentElement("info","charContainer").getElement().setHtml(f.join(""))},contents:[{id:"info",label:k.lang.common.generalTab,title:k.lang.common.generalTab,padding:0,align:"top",elements:[{type:"hbox",align:"top",widths:["320px","90px"],children:[{type:"html",id:"charContainer",html:"",onMouseover:g,onMouseout:d,focus:function(){var c=this.getElement().getElementsByTag("a").getItem(0);setTimeout(function(){c.focus();g(null,c)},0)},onShow:function(){var c=this.getElement().getChild([0,
-0,0,0,0]);setTimeout(function(){c.focus();g(null,c)},0)},onLoad:function(c){e=c.sender}},{type:"hbox",align:"top",widths:["100%"],children:[{type:"vbox",align:"top",children:[{type:"html",html:"\x3cdiv\x3e\x3c/div\x3e"},{type:"html",id:"charPreview",className:"cke_dark_background",style:"border:1px solid #eeeeee;font-size:28px;height:40px;width:70px;padding-top:9px;font-family:'Microsoft Sans Serif',Arial,Helvetica,Verdana;text-align:center;",html:"\x3cdiv\x3e\x26nbsp;\x3c/div\x3e"},{type:"html",
-id:"htmlPreview",className:"cke_dark_background",style:"border:1px solid #eeeeee;font-size:14px;height:20px;width:70px;padding-top:2px;font-family:'Microsoft Sans Serif',Arial,Helvetica,Verdana;text-align:center;",html:"\x3cdiv\x3e\x26nbsp;\x3c/div\x3e"}]}]}]}]}]}});
\ No newline at end of file
+CKEDITOR.dialog.add("specialchar",function(h){var f,n=h.lang.specialchar,k,l,p,d,e,q;l=function(c){var b;c=c.data?c.data.getTarget():new CKEDITOR.dom.element(c);"a"==c.getName()&&(b=c.getChild(0).getHtml())&&(c.removeClass("cke_light_background"),f.hide(),c=h.document.createElement("span"),c.setHtml(b),h.insertText(c.getText()))};p=CKEDITOR.tools.addFunction(l);e=function(c,b){var a;b=b||c.data.getTarget();"span"==b.getName()&&(b=b.getParent());if("a"==b.getName()&&(a=b.getChild(0).getHtml())){k&&
+d(null,k);var e=f.getContentElement("info","htmlPreview").getElement();f.getContentElement("info","charPreview").getElement().setHtml(a);e.setHtml(CKEDITOR.tools.htmlEncode(a));b.getParent().addClass("cke_light_background");k=b}};d=function(c,b){b=b||c.data.getTarget();"span"==b.getName()&&(b=b.getParent());"a"==b.getName()&&(f.getContentElement("info","charPreview").getElement().setHtml("\x26nbsp;"),f.getContentElement("info","htmlPreview").getElement().setHtml("\x26nbsp;"),b.getParent().removeClass("cke_light_background"),
+k=void 0)};q=CKEDITOR.tools.addFunction(function(c){c=new CKEDITOR.dom.event(c);var b=c.getTarget(),a;a=c.getKeystroke();var r="rtl"==h.lang.dir;switch(a){case 38:if(a=b.getParent().getParent().getPrevious())a=a.getChild([b.getParent().getIndex(),0]),a.focus(),d(null,b),e(null,a);c.preventDefault();break;case 40:(a=b.getParent().getParent().getNext())&&(a=a.getChild([b.getParent().getIndex(),0]))&&1==a.type&&(a.focus(),d(null,b),e(null,a));c.preventDefault();break;case 32:l({data:c});c.preventDefault();
+break;case r?37:39:if(a=b.getParent().getNext())a=a.getChild(0),1==a.type?(a.focus(),d(null,b),e(null,a),c.preventDefault(!0)):d(null,b);else if(a=b.getParent().getParent().getNext())(a=a.getChild([0,0]))&&1==a.type?(a.focus(),d(null,b),e(null,a),c.preventDefault(!0)):d(null,b);break;case r?39:37:(a=b.getParent().getPrevious())?(a=a.getChild(0),a.focus(),d(null,b),e(null,a),c.preventDefault(!0)):(a=b.getParent().getParent().getPrevious())?(a=a.getLast().getChild(0),a.focus(),d(null,b),e(null,a),c.preventDefault(!0)):
+d(null,b)}});return{title:n.title,minWidth:430,minHeight:280,buttons:[CKEDITOR.dialog.cancelButton],charColumns:17,onLoad:function(){for(var c=this.definition.charColumns,b=h.config.specialChars,a=CKEDITOR.tools.getNextId()+"_specialchar_table_label",d=['\x3ctable role\x3d"listbox" aria-labelledby\x3d"'+a+'" style\x3d"width: 320px; height: 100%; border-collapse: separate;" align\x3d"center" cellspacing\x3d"2" cellpadding\x3d"2" border\x3d"0"\x3e'],e=0,f=b.length,g,m;e<f;){d.push('\x3ctr role\x3d"presentation"\x3e');
+for(var k=0;k<c;k++,e++)if(g=b[e]){g instanceof Array?(m=g[1],g=g[0]):(m=g.replace("\x26","").replace(";","").replace("#",""),m=n[m]||g);var l="cke_specialchar_label_"+e+"_"+CKEDITOR.tools.getNextNumber();d.push('\x3ctd class\x3d"cke_dark_background" style\x3d"cursor: default" role\x3d"presentation"\x3e\x3ca href\x3d"javascript: void(0);" role\x3d"option" aria-posinset\x3d"'+(e+1)+'"',' aria-setsize\x3d"'+f+'"',' aria-labelledby\x3d"'+l+'"',' class\x3d"cke_specialchar" title\x3d"',CKEDITOR.tools.htmlEncode(m),
+'" onkeydown\x3d"CKEDITOR.tools.callFunction( '+q+', event, this )" onclick\x3d"CKEDITOR.tools.callFunction('+p+', this); return false;" tabindex\x3d"-1"\x3e\x3cspan style\x3d"margin: 0 auto;cursor: inherit"\x3e'+g+'\x3c/span\x3e\x3cspan class\x3d"cke_voice_label" id\x3d"'+l+'"\x3e'+m+"\x3c/span\x3e\x3c/a\x3e\x3c/td\x3e")}d.push("\x3c/tr\x3e")}d.push("\x3c/tbody\x3e\x3c/table\x3e",'\x3cspan id\x3d"'+a+'" class\x3d"cke_voice_label"\x3e'+n.options+"\x3c/span\x3e");this.getContentElement("info","charContainer").getElement().setHtml(d.join(""))},
+contents:[{id:"info",label:h.lang.common.generalTab,title:h.lang.common.generalTab,padding:0,align:"top",elements:[{type:"hbox",align:"top",widths:["320px","90px"],children:[{type:"html",id:"charContainer",html:"",onMouseover:e,onMouseout:d,focus:function(){var c=this.getElement().getElementsByTag("a").getItem(0);setTimeout(function(){c.focus();e(null,c)},0)},onShow:function(){var c=this.getElement().getChild([0,0,0,0,0]);setTimeout(function(){c.focus();e(null,c)},0)},onLoad:function(c){f=c.sender}},
+{type:"hbox",align:"top",widths:["100%"],children:[{type:"vbox",align:"top",children:[{type:"html",html:"\x3cdiv\x3e\x3c/div\x3e"},{type:"html",id:"charPreview",className:"cke_dark_background",style:"border:1px solid #eeeeee;font-size:28px;height:40px;width:70px;padding-top:9px;font-family:'Microsoft Sans Serif',Arial,Helvetica,Verdana;text-align:center;",html:"\x3cdiv\x3e\x26nbsp;\x3c/div\x3e"},{type:"html",id:"htmlPreview",className:"cke_dark_background",style:"border:1px solid #eeeeee;font-size:14px;height:20px;width:70px;padding-top:2px;font-family:'Microsoft Sans Serif',Arial,Helvetica,Verdana;text-align:center;",
+html:"\x3cdiv\x3e\x26nbsp;\x3c/div\x3e"}]}]}]}]}]}});
\ No newline at end of file
diff --git a/web/core/assets/vendor/ckeditor/plugins/tabletools/dialogs/tableCell.js b/web/core/assets/vendor/ckeditor/plugins/tabletools/dialogs/tableCell.js
index 28f9b3262c..9ded9bc680 100644
--- a/web/core/assets/vendor/ckeditor/plugins/tabletools/dialogs/tableCell.js
+++ b/web/core/assets/vendor/ckeditor/plugins/tabletools/dialogs/tableCell.js
@@ -2,17 +2,17 @@
  Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
  For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */
-CKEDITOR.dialog.add("cellProperties",function(g){function k(a){return{isSpacer:!0,type:"html",html:"\x26nbsp;",requiredContent:a?a:void 0}}function r(){return{type:"vbox",padding:0,children:[]}}function t(a){return{requiredContent:"td{"+a+"}",type:"hbox",widths:["70%","30%"],children:[{type:"text",id:a,width:"100px",label:e[a],validate:n.number(c["invalid"+CKEDITOR.tools.capitalize(a)]),onLoad:function(){var b=this.getDialog().getContentElement("info",a+"Type").getElement(),d=this.getInputElement(),
-c=d.getAttribute("aria-labelledby");d.setAttribute("aria-labelledby",[c,b.$.id].join(" "))},setup:f(function(b){var d=parseFloat(b.getAttribute(a),10);b=parseFloat(b.getStyle(a),10);if(!isNaN(b))return b;if(!isNaN(d))return d}),commit:function(b){var d=parseFloat(this.getValue(),10),c=this.getDialog().getValueOf("info",a+"Type")||u(b,a);isNaN(d)?b.removeStyle(a):b.setStyle(a,d+c);b.removeAttribute(a)},"default":""},{type:"select",id:a+"Type",label:g.lang.table[a+"Unit"],labelStyle:"visibility:hidden;display:block;width:0;overflow:hidden",
-"default":"px",items:[[p.widthPx,"px"],[p.widthPc,"%"]],setup:f(function(b){return u(b,a)})}]}}function f(a){return function(b){for(var d=a(b[0]),c=1;c<b.length;c++)if(a(b[c])!==d){d=null;break}"undefined"!=typeof d&&(this.setValue(d),CKEDITOR.env.gecko&&"select"==this.type&&!d&&(this.getInputElement().$.selectedIndex=-1))}}function u(a,b){var d=/^(\d+(?:\.\d+)?)(px|%)$/.exec(a.getStyle(b)||a.getAttribute(b));if(d)return d[2]}var p=g.lang.table,c=p.cell,e=g.lang.common,n=CKEDITOR.dialog.validate,
-w="rtl"==g.lang.dir,l=g.plugins.colordialog,q=[t("width"),t("height"),k(["td{width}","td{height}"]),{type:"select",id:"wordWrap",requiredContent:"td{white-space}",label:c.wordWrap,"default":"yes",items:[[c.yes,"yes"],[c.no,"no"]],setup:f(function(a){var b=a.getAttribute("noWrap");if("nowrap"==a.getStyle("white-space")||b)return"no"}),commit:function(a){"no"==this.getValue()?a.setStyle("white-space","nowrap"):a.removeStyle("white-space");a.removeAttribute("noWrap")}},k("td{white-space}"),{type:"select",
-id:"hAlign",requiredContent:"td{text-align}",label:c.hAlign,"default":"",items:[[e.notSet,""],[e.left,"left"],[e.center,"center"],[e.right,"right"],[e.justify,"justify"]],setup:f(function(a){var b=a.getAttribute("align");return a.getStyle("text-align")||b||""}),commit:function(a){var b=this.getValue();b?a.setStyle("text-align",b):a.removeStyle("text-align");a.removeAttribute("align")}},{type:"select",id:"vAlign",requiredContent:"td{vertical-align}",label:c.vAlign,"default":"",items:[[e.notSet,""],
-[e.alignTop,"top"],[e.alignMiddle,"middle"],[e.alignBottom,"bottom"],[c.alignBaseline,"baseline"]],setup:f(function(a){var b=a.getAttribute("vAlign");a=a.getStyle("vertical-align");switch(a){case "top":case "middle":case "bottom":case "baseline":break;default:a=""}return a||b||""}),commit:function(a){var b=this.getValue();b?a.setStyle("vertical-align",b):a.removeStyle("vertical-align");a.removeAttribute("vAlign")}},k(["td{text-align}","td{vertical-align}"]),{type:"select",id:"cellType",requiredContent:"th",
-label:c.cellType,"default":"td",items:[[c.data,"td"],[c.header,"th"]],setup:f(function(a){return a.getName()}),commit:function(a){a.renameNode(this.getValue())}},k("th"),{type:"text",id:"rowSpan",requiredContent:"td[rowspan]",label:c.rowSpan,"default":"",validate:n.integer(c.invalidRowSpan),setup:f(function(a){if((a=parseInt(a.getAttribute("rowSpan"),10))&&1!=a)return a}),commit:function(a){var b=parseInt(this.getValue(),10);b&&1!=b?a.setAttribute("rowSpan",this.getValue()):a.removeAttribute("rowSpan")}},
-{type:"text",id:"colSpan",requiredContent:"td[colspan]",label:c.colSpan,"default":"",validate:n.integer(c.invalidColSpan),setup:f(function(a){if((a=parseInt(a.getAttribute("colSpan"),10))&&1!=a)return a}),commit:function(a){var b=parseInt(this.getValue(),10);b&&1!=b?a.setAttribute("colSpan",this.getValue()):a.removeAttribute("colSpan")}},k(["td[colspan]","td[rowspan]"]),{type:"hbox",padding:0,widths:l?["60%","40%"]:["100%"],requiredContent:"td{background-color}",children:function(){var a=[{type:"text",
-id:"bgColor",label:c.bgColor,"default":"",setup:f(function(a){var d=a.getAttribute("bgColor");return a.getStyle("background-color")||d}),commit:function(a){this.getValue()?a.setStyle("background-color",this.getValue()):a.removeStyle("background-color");a.removeAttribute("bgColor")}}];l&&a.push({type:"button",id:"bgColorChoose","class":"colorChooser",label:c.chooseColor,onLoad:function(){this.getElement().getParent().setStyle("vertical-align","bottom")},onClick:function(){g.getColorFromDialog(function(a){a&&
-this.getDialog().getContentElement("info","bgColor").setValue(a);this.focus()},this)}});return a}()},{type:"hbox",padding:0,widths:l?["60%","40%"]:["100%"],requiredContent:"td{border-color}",children:function(){var a=[{type:"text",id:"borderColor",label:c.borderColor,"default":"",setup:f(function(a){var d=a.getAttribute("borderColor");return a.getStyle("border-color")||d}),commit:function(a){this.getValue()?a.setStyle("border-color",this.getValue()):a.removeStyle("border-color");a.removeAttribute("borderColor")}}];
-l&&a.push({type:"button",id:"borderColorChoose","class":"colorChooser",label:c.chooseColor,style:(w?"margin-right":"margin-left")+": 10px",onLoad:function(){this.getElement().getParent().setStyle("vertical-align","bottom")},onClick:function(){g.getColorFromDialog(function(a){a&&this.getDialog().getContentElement("info","borderColor").setValue(a);this.focus()},this)}});return a}()}],m=0,v=-1,h=[r()],q=CKEDITOR.tools.array.filter(q,function(a){var b=a.requiredContent;delete a.requiredContent;(b=g.filter.check(b))&&
-!a.isSpacer&&m++;return b});5<m&&(h=h.concat([k(),r()]));CKEDITOR.tools.array.forEach(q,function(a){a.isSpacer||v++;5<m&&v>=m/2?h[2].children.push(a):h[0].children.push(a)});CKEDITOR.tools.array.forEach(h,function(a){a.isSpacer||(a=a.children,a[a.length-1].isSpacer&&a.pop())});return{title:c.title,minWidth:1===h.length?205:410,minHeight:50,contents:[{id:"info",label:c.title,accessKey:"I",elements:[{type:"hbox",widths:1===h.length?["100%"]:["40%","5%","40%"],children:h}]}],getModel:function(a){return CKEDITOR.plugins.tabletools.getSelectedCells(a.getSelection())},
-onShow:function(){var a=this.getModel(this.getParentEditor());this.setupContent(a)},onOk:function(){for(var a=this._.editor.getSelection(),b=a.createBookmarks(),d=this.getParentEditor(),c=this.getModel(d),e=0;e<c.length;e++)this.commitContent(c[e]);d.forceNextSelectionCheck();a.selectBookmarks(b);d.selectionChange()},onLoad:function(){var a={};this.foreach(function(b){b.setup&&b.commit&&(b.setup=CKEDITOR.tools.override(b.setup,function(c){return function(){c.apply(this,arguments);a[b.id]=b.getValue()}}),
-b.commit=CKEDITOR.tools.override(b.commit,function(c){return function(){a[b.id]!==b.getValue()&&c.apply(this,arguments)}}))})}}});
\ No newline at end of file
+CKEDITOR.dialog.add("cellProperties",function(h){function k(a){return{isSpacer:!0,type:"html",html:"\x26nbsp;",requiredContent:a?a:void 0}}function r(){return{type:"vbox",padding:0,children:[]}}function t(a){return{requiredContent:"td{"+a+"}",type:"hbox",widths:["70%","30%"],children:[{type:"text",id:a,width:"100px",label:e[a],validate:n.number(d["invalid"+CKEDITOR.tools.capitalize(a)]),onLoad:function(){var b=this.getDialog().getContentElement("info",a+"Type").getElement(),c=this.getInputElement(),
+d=c.getAttribute("aria-labelledby");c.setAttribute("aria-labelledby",[d,b.$.id].join(" "))},setup:f(function(b){var c=parseFloat(b.getAttribute(a),10);b=parseFloat(b.getStyle(a),10);if(!isNaN(b))return b;if(!isNaN(c))return c}),commit:function(b){var c=parseFloat(this.getValue(),10),d=this.getDialog().getValueOf("info",a+"Type")||u(b,a);isNaN(c)?b.removeStyle(a):b.setStyle(a,c+d);b.removeAttribute(a)},"default":""},{type:"select",id:a+"Type",label:h.lang.table[a+"Unit"],labelStyle:"visibility:hidden;display:block;width:0;overflow:hidden",
+"default":"px",items:[[p.widthPx,"px"],[p.widthPc,"%"]],setup:f(function(b){return u(b,a)})}]}}function f(a){return function(b){for(var c=a(b[0]),d=1;d<b.length;d++)if(a(b[d])!==c){c=null;break}"undefined"!=typeof c&&(this.setValue(c),CKEDITOR.env.gecko&&"select"==this.type&&!c&&(this.getInputElement().$.selectedIndex=-1))}}function u(a,b){var c=/^(\d+(?:\.\d+)?)(px|%)$/.exec(a.getStyle(b)||a.getAttribute(b));if(c)return c[2]}function v(a,b){h.getColorFromDialog(function(c){c&&a.getDialog().getContentElement("info",
+b).setValue(c);a.focus()},a)}function w(a,b,c){(a=a.getValue())?b.setStyle(c,a):b.removeStyle(c);"background-color"==c?b.removeAttribute("bgColor"):"border-color"==c&&b.removeAttribute("borderColor")}var p=h.lang.table,d=p.cell,e=h.lang.common,n=CKEDITOR.dialog.validate,y="rtl"==h.lang.dir,l=h.plugins.colordialog,q=[t("width"),t("height"),k(["td{width}","td{height}"]),{type:"select",id:"wordWrap",requiredContent:"td{white-space}",label:d.wordWrap,"default":"yes",items:[[d.yes,"yes"],[d.no,"no"]],
+setup:f(function(a){var b=a.getAttribute("noWrap");if("nowrap"==a.getStyle("white-space")||b)return"no"}),commit:function(a){"no"==this.getValue()?a.setStyle("white-space","nowrap"):a.removeStyle("white-space");a.removeAttribute("noWrap")}},k("td{white-space}"),{type:"select",id:"hAlign",requiredContent:"td{text-align}",label:d.hAlign,"default":"",items:[[e.notSet,""],[e.left,"left"],[e.center,"center"],[e.right,"right"],[e.justify,"justify"]],setup:f(function(a){var b=a.getAttribute("align");return a.getStyle("text-align")||
+b||""}),commit:function(a){var b=this.getValue();b?a.setStyle("text-align",b):a.removeStyle("text-align");a.removeAttribute("align")}},{type:"select",id:"vAlign",requiredContent:"td{vertical-align}",label:d.vAlign,"default":"",items:[[e.notSet,""],[e.alignTop,"top"],[e.alignMiddle,"middle"],[e.alignBottom,"bottom"],[d.alignBaseline,"baseline"]],setup:f(function(a){var b=a.getAttribute("vAlign");a=a.getStyle("vertical-align");switch(a){case "top":case "middle":case "bottom":case "baseline":break;default:a=
+""}return a||b||""}),commit:function(a){var b=this.getValue();b?a.setStyle("vertical-align",b):a.removeStyle("vertical-align");a.removeAttribute("vAlign")}},k(["td{text-align}","td{vertical-align}"]),{type:"select",id:"cellType",requiredContent:"th",label:d.cellType,"default":"td",items:[[d.data,"td"],[d.header,"th"]],setup:f(function(a){return a.getName()}),commit:function(a){a.renameNode(this.getValue())}},k("th"),{type:"text",id:"rowSpan",requiredContent:"td[rowspan]",label:d.rowSpan,"default":"",
+validate:n.integer(d.invalidRowSpan),setup:f(function(a){if((a=parseInt(a.getAttribute("rowSpan"),10))&&1!=a)return a}),commit:function(a){var b=parseInt(this.getValue(),10);b&&1!=b?a.setAttribute("rowSpan",this.getValue()):a.removeAttribute("rowSpan")}},{type:"text",id:"colSpan",requiredContent:"td[colspan]",label:d.colSpan,"default":"",validate:n.integer(d.invalidColSpan),setup:f(function(a){if((a=parseInt(a.getAttribute("colSpan"),10))&&1!=a)return a}),commit:function(a){var b=parseInt(this.getValue(),
+10);b&&1!=b?a.setAttribute("colSpan",this.getValue()):a.removeAttribute("colSpan")}},k(["td[colspan]","td[rowspan]"]),{type:"hbox",padding:0,widths:l?["60%","40%"]:["100%"],requiredContent:"td{background-color}",children:function(){var a=[{type:"text",id:"bgColor",label:d.bgColor,"default":"",setup:f(function(a){var c=a.getAttribute("bgColor");return a.getStyle("background-color")||c}),commit:function(a){w(this,a,"background-color")}}];l&&a.push({type:"button",id:"bgColorChoose","class":"colorChooser",
+label:d.chooseColor,onLoad:function(){this.getElement().getParent().setStyle("vertical-align","bottom")},onClick:function(){v(this,"bgColor")}});return a}()},{type:"hbox",padding:0,widths:l?["60%","40%"]:["100%"],requiredContent:"td{border-color}",children:function(){var a=[{type:"text",id:"borderColor",label:d.borderColor,"default":"",setup:f(function(a){var c=a.getAttribute("borderColor");return a.getStyle("border-color")||c}),commit:function(a){w(this,a,"border-color")}}];l&&a.push({type:"button",
+id:"borderColorChoose","class":"colorChooser",label:d.chooseColor,style:(y?"margin-right":"margin-left")+": 10px",onLoad:function(){this.getElement().getParent().setStyle("vertical-align","bottom")},onClick:function(){v(this,"borderColor")}});return a}()}],m=0,x=-1,g=[r()],q=CKEDITOR.tools.array.filter(q,function(a){var b=a.requiredContent;delete a.requiredContent;(b=h.filter.check(b))&&!a.isSpacer&&m++;return b});5<m&&(g=g.concat([k(),r()]));CKEDITOR.tools.array.forEach(q,function(a){a.isSpacer||
+x++;5<m&&x>=m/2?g[2].children.push(a):g[0].children.push(a)});CKEDITOR.tools.array.forEach(g,function(a){a.isSpacer||(a=a.children,a[a.length-1].isSpacer&&a.pop())});return{title:d.title,minWidth:1===g.length?205:410,minHeight:50,contents:[{id:"info",label:d.title,accessKey:"I",elements:[{type:"hbox",widths:1===g.length?["100%"]:["40%","5%","40%"],children:g}]}],getModel:function(a){return CKEDITOR.plugins.tabletools.getSelectedCells(a.getSelection())},onShow:function(){var a=this.getModel(this.getParentEditor());
+this.setupContent(a)},onOk:function(){for(var a=this._.editor.getSelection(),b=a.createBookmarks(),c=this.getParentEditor(),d=this.getModel(c),e=0;e<d.length;e++)this.commitContent(d[e]);c.forceNextSelectionCheck();a.selectBookmarks(b);c.selectionChange()},onLoad:function(){var a={};this.foreach(function(b){b.setup&&b.commit&&(b.setup=CKEDITOR.tools.override(b.setup,function(c){return function(){c.apply(this,arguments);a[b.id]=b.getValue()}}),b.commit=CKEDITOR.tools.override(b.commit,function(c){return function(){a[b.id]!==
+b.getValue()&&c.apply(this,arguments)}}))})}}});
\ No newline at end of file
diff --git a/web/core/assets/vendor/ckeditor/skins/moono-lisa/editor.css b/web/core/assets/vendor/ckeditor/skins/moono-lisa/editor.css
index 5c4c0424ce..ead026a069 100644
--- a/web/core/assets/vendor/ckeditor/skins/moono-lisa/editor.css
+++ b/web/core/assets/vendor/ckeditor/skins/moono-lisa/editor.css
@@ -2,4 +2,4 @@
 Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */
-.cke_reset{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;position:static;transition:none}.cke_reset_all,.cke_reset_all *,.cke_reset_all a,.cke_reset_all textarea{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;position:static;transition:none;border-collapse:collapse;font:normal normal normal 12px Arial,Helvetica,Tahoma,Verdana,Sans-Serif;color:#000;text-align:left;white-space:nowrap;cursor:auto;float:none}.cke_reset_all .cke_rtl *{text-align:right}.cke_reset_all iframe{vertical-align:inherit}.cke_reset_all textarea{white-space:pre-wrap}.cke_reset_all textarea,.cke_reset_all input[type="text"],.cke_reset_all input[type="password"]{cursor:text}.cke_reset_all textarea[disabled],.cke_reset_all input[type="text"][disabled],.cke_reset_all input[type="password"][disabled]{cursor:default}.cke_reset_all fieldset{padding:10px;border:2px groove #e0dfe3}.cke_reset_all select{box-sizing:border-box}.cke_reset_all table{table-layout:auto}.cke_chrome{display:block;border:1px solid #d1d1d1;padding:0}.cke_inner{display:block;background:#fff;padding:0;-webkit-touch-callout:none}.cke_float{border:0}.cke_float .cke_inner{padding-bottom:0}.cke_top,.cke_contents,.cke_bottom{display:block;overflow:hidden}.cke_top{border-bottom:1px solid #d1d1d1;background:#f8f8f8;padding:6px 8px 2px;white-space:normal}.cke_float .cke_top{border:1px solid #d1d1d1}.cke_bottom{padding:6px 8px 2px;position:relative;border-top:1px solid #d1d1d1;background:#f8f8f8}.cke_browser_ios .cke_contents{overflow-y:auto;-webkit-overflow-scrolling:touch}.cke_resizer{width:0;height:0;overflow:hidden;border-width:10px 10px 0 0;border-color:transparent #bcbcbc transparent transparent;border-style:dashed solid dashed dashed;font-size:0;vertical-align:bottom;margin-top:6px;margin-bottom:2px}.cke_hc .cke_resizer{font-size:15px;width:auto;height:auto;border-width:0}.cke_resizer_ltr{cursor:se-resize;float:right;margin-right:-4px}.cke_resizer_rtl{border-width:10px 0 0 10px;border-color:transparent transparent transparent #bcbcbc;border-style:dashed dashed dashed solid;cursor:sw-resize;float:left;margin-left:-4px;right:auto}.cke_wysiwyg_div{display:block;height:100%;overflow:auto;padding:0 8px;outline-style:none;box-sizing:border-box}.cke_panel{visibility:visible;width:120px;height:100px;overflow:hidden;background-color:#fff;border:1px solid #d1d1d1}.cke_menu_panel{padding:0;margin:0}.cke_combopanel{width:150px;height:170px}.cke_panel_frame{width:100%;height:100%;font-size:12px;overflow:auto;overflow-x:hidden}.cke_panel_container{overflow-y:auto;overflow-x:hidden}.cke_panel_block:focus{outline:0}.cke_panel_list{margin:0;padding:0;list-style-type:none;white-space:nowrap}.cke_panel_listItem{margin:0;padding:0}.cke_panel_listItem a{padding:6px 7px;display:block;color:inherit!important;text-decoration:none;overflow:hidden;text-overflow:ellipsis}.cke_hc .cke_panel_listItem a{border-style:none}.cke_panel_listItem.cke_selected a,.cke_panel_listItem a:hover,.cke_panel_listItem a:focus,.cke_panel_listItem a:active{background-color:#e9e9e9}.cke_panel_listItem a:focus{outline:1px dotted #000}.cke_hc .cke_panel_listItem a:hover,.cke_hc .cke_panel_listItem a:focus,.cke_hc .cke_panel_listItem a:active{border:2px solid;padding:4px 5px}.cke_panel_listItem p,.cke_panel_listItem h1,.cke_panel_listItem h2,.cke_panel_listItem h3,.cke_panel_listItem h4,.cke_panel_listItem h5,.cke_panel_listItem h6,.cke_panel_listItem pre{margin-top:0;margin-bottom:0}.cke_panel_grouptitle{cursor:default;font-size:11px;font-weight:bold;white-space:nowrap;margin:0;padding:6px 6px 7px 6px;color:#484848;border-bottom:1px solid #d1d1d1;background:#f8f8f8}.cke_colorblock{padding:10px;font-size:11px;font-family:'Microsoft Sans Serif',Tahoma,Arial,Verdana,Sans-Serif}.cke_colorblock,.cke_colorblock a{text-decoration:none;color:#000}a.cke_colorbox{padding:2px;float:left;width:20px;height:20px}.cke_rtl a.cke_colorbox{float:right}a:hover.cke_colorbox,a:focus.cke_colorbox,a:active.cke_colorbox{outline:0;padding:0;border:2px solid #139ff7}a:hover.cke_colorbox{border-color:#bcbcbc}span.cke_colorbox{width:20px;height:20px;float:left}.cke_rtl span.cke_colorbox{float:right}a.cke_colorauto,a.cke_colormore{border:#fff 1px solid;padding:3px;display:block;cursor:pointer}a.cke_colorauto{padding:0;border:1px solid transparent;margin-bottom:6px;height:26px;line-height:26px}a.cke_colormore{margin-top:10px;height:20px;line-height:19px}a:hover.cke_colorauto,a:hover.cke_colormore,a:focus.cke_colorauto,a:focus.cke_colormore,a:active.cke_colorauto,a:active.cke_colormore{outline:0;border:#139ff7 1px solid;background-color:#f8f8f8}a:hover.cke_colorauto,a:hover.cke_colormore{border-color:#bcbcbc}.cke_colorauto span.cke_colorbox{width:18px;height:18px;border:1px solid #808080;margin-left:1px;margin-top:3px}.cke_rtl .cke_colorauto span.cke_colorbox{margin-left:0;margin-right:1px}span.cke_colorbox[style*="#ffffff"],span.cke_colorbox[style*="#FFFFFF"],span.cke_colorbox[style="background-color:#fff"],span.cke_colorbox[style="background-color:#FFF"],span.cke_colorbox[style*="rgb(255,255,255)"],span.cke_colorbox[style*="rgb(255, 255, 255)"]{border:1px solid #808080;width:18px;height:18px}.cke_toolbar{float:left}.cke_rtl .cke_toolbar{float:right}.cke_toolgroup{border:0;float:left;margin:1px 2px 6px 0;padding-right:3px}.cke_rtl .cke_toolgroup{float:right;margin:1px 0 6px 2px;padding-left:3px;padding-right:0}.cke_hc .cke_toolgroup{margin-right:5px;margin-bottom:5px}.cke_hc.cke_rtl .cke_toolgroup{margin-right:0;margin-left:5px}a.cke_button{display:inline-block;height:18px;padding:4px 6px;outline:0;cursor:default;float:left;border:0;position:relative}a.cke_button_expandable{padding:4px 5px}.cke_rtl a.cke_button{float:right}.cke_hc a.cke_button{border:1px solid black;padding:3px 5px;margin:0 3px 5px 0}.cke_hc.cke_rtl a.cke_button{margin:0 0 5px 3px}a.cke_button_on{background:#fff;border:1px #bcbcbc solid;padding:3px 5px}a.cke_button_expandable.cke_button_on{padding:3px 4px}a.cke_button_off:hover,a.cke_button_off:focus,a.cke_button_off:active{background:#e5e5e5;border:1px #bcbcbc solid;padding:3px 5px}a.cke_button_expandable.cke_button_off:hover,a.cke_button_expandable.cke_button_off:focus,a.cke_button_expandable.cke_button_off:active{padding:3px 4px}.cke_hc a.cke_button_on,.cke_hc a.cke_button_off:hover,.cke_hc a.cke_button_off:focus,.cke_hc a.cke_button_off:active{background:#e5e5e5;border:3px solid #000;padding:1px 3px}a.cke_button_disabled:hover,a.cke_button_disabled:focus,a.cke_button_disabled:active{border:0;padding:4px 6px;background-color:transparent}a.cke_button_expandable.cke_button_disabled:hover,a.cke_button_expandable.cke_button_disabled:active{padding:4px 5px}a.cke_button_disabled:focus{border:1px #bcbcbc solid;padding:3px 5px}a.cke_button_expandable.cke_button_disabled:focus{padding:3px 4px}.cke_hc a.cke_button_disabled:hover,.cke_hc a.cke_button_disabled:focus,.cke_hc a.cke_button_disabled:active{border:1px solid #acacac;padding:3px 5px;margin:0 3px 5px 0}.cke_hc a.cke_button_disabled:focus{border:3px solid #000;padding:1px 3px}.cke_hc.cke_rtl a.cke_button_disabled:hover,.cke_hc.cke_rtl a.cke_button_disabled:focus,.cke_hc.cke_rtl a.cke_button_disabled:active{margin:0 0 5px 3px}a.cke_button_disabled .cke_button_icon,a.cke_button_disabled .cke_button_arrow{opacity:.3}.cke_hc a.cke_button_disabled{border-color:#acacac}.cke_hc a.cke_button_disabled .cke_button_icon,.cke_hc a.cke_button_disabled .cke_button_label{opacity:.5}.cke_toolgroup a.cke_button:last-child:after,.cke_toolgroup a.cke_button.cke_button_disabled:hover:last-child:after{content:"";position:absolute;height:18px;width:0;border-right:1px solid #bcbcbc;margin-top:4px;top:0;right:-3px}.cke_rtl .cke_toolgroup a.cke_button:last-child:after,.cke_rtl .cke_toolgroup a.cke_button.cke_button_disabled:hover:last-child:after{border-right:0;right:auto;border-left:1px solid #bcbcbc;top:0;left:-3px}.cke_hc .cke_toolgroup a.cke_button:last-child:after,.cke_hc .cke_toolgroup a.cke_button.cke_button_disabled:last-child:after,.cke_hc .cke_toolgroup a.cke_button.cke_button_disabled:hover:last-child:after{border-color:#000;top:0;right:-7px}.cke_hc.cke_rtl .cke_toolgroup a.cke_button:last-child:after,.cke_hc.cke_rtl .cke_toolgroup a.cke_button.cke_button_disabled:last-child:after,.cke_hc.cke_rtl .cke_toolgroup a.cke_button.cke_button_disabled:hover:last-child:after{top:0;right:auto;left:-7px}.cke_toolgroup a.cke_button:hover:last-child:after,.cke_toolgroup a.cke_button:focus:last-child:after,.cke_toolgroup a.cke_button.cke_button_on:last-child:after{top:-1px;right:-4px}.cke_rtl .cke_toolgroup a.cke_button:hover:last-child:after,.cke_rtl .cke_toolgroup a.cke_button:focus:last-child:after,.cke_rtl .cke_toolgroup a.cke_button.cke_button_on:last-child:after{top:-1px;right:auto;left:-4px}.cke_hc .cke_toolgroup a.cke_button:hover:last-child:after,.cke_hc .cke_toolgroup a.cke_button.cke_button_on:last-child:after{top:-2px;right:-9px}.cke_hc.cke_rtl .cke_toolgroup a.cke_button:hover:last-child:after,.cke_hc.cke_rtl .cke_toolgroup a.cke_button.cke_button_on:last-child:after{top:-2px;right:auto;left:-9px}.cke_toolbar.cke_toolbar_last .cke_toolgroup a.cke_button:last-child:after{content:none;border:0;width:0;height:0}.cke_button_icon{cursor:inherit;background-repeat:no-repeat;margin-top:1px;width:16px;height:16px;float:left;display:inline-block}.cke_rtl .cke_button_icon{float:right}.cke_hc .cke_button_icon{display:none}.cke_button_label{display:none;padding-left:3px;margin-top:1px;line-height:17px;vertical-align:middle;float:left;cursor:default;color:#484848}.cke_rtl .cke_button_label{padding-right:3px;padding-left:0;float:right}.cke_hc .cke_button_label{padding:0;display:inline-block;font-size:12px}.cke_button_arrow{display:inline-block;margin:8px 0 0 3px;width:0;height:0;cursor:default;vertical-align:top;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #484848}.cke_rtl .cke_button_arrow{margin-right:5px;margin-left:0}.cke_hc .cke_button_arrow{font-size:10px;margin:3px 0 0 3px;width:auto;border:0}.cke_toolbar_separator{float:left;background-color:#bcbcbc;margin:4px 2px 0 2px;height:18px;width:1px}.cke_rtl .cke_toolbar_separator{float:right}.cke_hc .cke_toolbar_separator{background-color:#000;margin-left:2px;margin-right:5px;margin-bottom:9px}.cke_hc.cke_rtl .cke_toolbar_separator{margin-left:5px;margin-right:2px}.cke_toolbar_break{display:block;clear:left}.cke_rtl .cke_toolbar_break{clear:right}a.cke_toolbox_collapser{width:12px;height:11px;float:right;margin:11px 0 0;font-size:0;cursor:default;text-align:center;border:1px solid #bcbcbc}.cke_rtl .cke_toolbox_collapser{float:left}.cke_toolbox_collapser:hover{background:#e5e5e5}.cke_toolbox_collapser.cke_toolbox_collapser_min{margin:0 2px 4px}.cke_toolbox_collapser .cke_arrow{display:inline-block;height:0;width:0;font-size:0;margin-top:1px;border:3px solid transparent;border-bottom-color:#484848}.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow{margin-top:4px;border-bottom-color:transparent;border-top-color:#484848}.cke_hc .cke_toolbox_collapser .cke_arrow{font-size:8px;width:auto;border:0;margin-top:0}.cke_menuitem span{cursor:default}.cke_menubutton{display:block}.cke_hc .cke_menubutton{padding:2px}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#e9e9e9;display:block;outline:1px dotted}.cke_menubutton:hover{outline:0}.cke_hc .cke_menubutton:hover,.cke_hc .cke_menubutton:focus,.cke_hc .cke_menubutton:active{border:2px solid;padding:0}.cke_menubutton_disabled:hover,.cke_menubutton_disabled:focus,.cke_menubutton_disabled:active{background-color:transparent;outline:0}.cke_menubutton_inner{display:table-row}.cke_menubutton_icon,.cke_menubutton_label,.cke_menuarrow{display:table-cell}.cke_menubutton_icon{background-color:#f8f8f8;padding:6px 4px}.cke_hc .cke_menubutton_icon{height:16px;width:0;padding:4px 0}.cke_menubutton:hover .cke_menubutton_icon,.cke_menubutton:focus .cke_menubutton_icon,.cke_menubutton:active .cke_menubutton_icon{background-color:#e9e9e9}.cke_menubutton_disabled:hover .cke_menubutton_icon,.cke_menubutton_disabled:focus .cke_menubutton_icon,.cke_menubutton_disabled:active .cke_menubutton_icon{background-color:#f8f8f8;outline:0}.cke_menuitem .cke_menubutton_on{background-color:#e9e9e9;border:1px solid #dedede;outline:0}.cke_menubutton_on .cke_menubutton_icon{padding-right:3px;background-color:#e9e9e9}.cke_menubutton_label{padding:0 5px;background-color:transparent;width:100%;vertical-align:middle}.cke_menubutton_shortcut{color:#979797}.cke_menubutton_disabled .cke_menubutton_label{opacity:.3;filter:alpha(opacity=30)}.cke_panel_frame .cke_menubutton_label{display:none}.cke_menuseparator{background-color:#d1d1d1;height:1px}.cke_menuarrow{background:transparent url(images/arrow.png) no-repeat 0 10px;padding:0 5px}.cke_rtl .cke_menuarrow{background-position:5px -13px;background-repeat:no-repeat}.cke_hc .cke_menuarrow{background-image:none}.cke_menuarrow span{display:none}.cke_hc .cke_menuarrow span{vertical-align:middle;display:inline}.cke_combo{display:inline-block;float:left;position:relative;margin-bottom:5px}.cke_rtl .cke_combo{float:right}.cke_hc .cke_combo{margin-top:1px;margin-bottom:10px}.cke_combo:after{content:"";position:absolute;height:18px;width:0;border-right:1px solid #bcbcbc;margin-top:5px;top:0;right:0}.cke_rtl .cke_combo:after{border-right:0;border-left:1px solid #bcbcbc;right:auto;left:0}.cke_hc .cke_combo:after{border-color:#000}a.cke_combo_button{cursor:default;display:inline-block;float:left;margin:0;padding:1px}.cke_rtl a.cke_combo_button{float:right}.cke_hc a.cke_combo_button{padding:4px}.cke_combo_on a.cke_combo_button,.cke_combo_off a.cke_combo_button:hover,.cke_combo_off a.cke_combo_button:focus,.cke_combo_off a.cke_combo_button:active{background:#e5e5e5;border:1px solid #bcbcbc;padding:0 0 0 1px;margin-left:-1px}.cke_combo_off a.cke_combo_button:focus{outline:0}.cke_combo_on a.cke_combo_button,.cke_combo_off a.cke_combo_button:active{background:#fff}.cke_rtl .cke_combo_on a.cke_combo_button,.cke_rtl .cke_combo_off a.cke_combo_button:hover,.cke_rtl .cke_combo_off a.cke_combo_button:focus,.cke_rtl .cke_combo_off a.cke_combo_button:active{padding:0 1px 0 0;margin-left:0;margin-right:-1px}.cke_hc .cke_combo_on a.cke_combo_button,.cke_hc .cke_combo_off a.cke_combo_button:hover,.cke_hc .cke_combo_off a.cke_combo_button:focus,.cke_hc .cke_combo_off a.cke_combo_button:active{border:3px solid #000;padding:1px 1px 1px 2px}.cke_hc.cke_rtl .cke_combo_on a.cke_combo_button,.cke_hc.cke_rtl .cke_combo_off a.cke_combo_button:hover,.cke_hc.cke_rtl .cke_combo_off a.cke_combo_button:focus,.cke_hc.cke_rtl .cke_combo_off a.cke_combo_button:active{padding:1px 2px 1px 1px}.cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_toolbar_start+.cke_combo_off a.cke_combo_button:active{padding:0 0 0 3px;margin-left:-3px}.cke_rtl .cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_rtl .cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_rtl .cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_rtl .cke_toolbar_start+.cke_combo_off a.cke_combo_button:active{padding:0 3px 0 0;margin-left:0;margin-right:-3px}.cke_hc .cke_toolbar>.cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_hc .cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_hc .cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_hc .cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:active{padding:1px 1px 1px 7px;margin-left:-6px}.cke_hc.cke_rtl .cke_toolbar>.cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_hc.cke_rtl .cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_hc.cke_rtl .cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_hc.cke_rtl .cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:active{padding:1px 7px 1px 1px;margin-left:0;margin-right:-6px}.cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:active,.cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:active{padding:0;margin:0}.cke_hc .cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_hc .cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_hc .cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_hc .cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:active,.cke_hc .cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_hc .cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_hc .cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_hc .cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:active{padding:1px;margin:0}.cke_toolbar .cke_combo+.cke_toolbar_end,.cke_toolbar .cke_combo+.cke_toolgroup{margin-right:0;margin-left:2px}.cke_rtl .cke_toolbar .cke_combo+.cke_toolbar_end,.cke_rtl .cke_toolbar .cke_combo+.cke_toolgroup{margin-left:0;margin-right:2px}.cke_hc .cke_toolbar .cke_combo+.cke_toolbar_end,.cke_hc .cke_toolbar .cke_combo+.cke_toolgroup{margin-left:5px}.cke_hc.cke_rtl .cke_toolbar .cke_combo+.cke_toolbar_end,.cke_hc.cke_rtl .cke_toolbar .cke_combo+.cke_toolgroup{margin-left:0;margin-right:5px}.cke_toolbar.cke_toolbar_last .cke_combo:nth-last-child(-n+2):after{content:none;border:0;width:0;height:0}.cke_combo_text{line-height:26px;padding-left:10px;text-overflow:ellipsis;overflow:hidden;float:left;cursor:default;color:#484848;width:60px}.cke_rtl .cke_combo_text{float:right;text-align:right;padding-left:0;padding-right:10px}.cke_hc .cke_combo_text{line-height:18px;font-size:12px}.cke_combo_open{cursor:default;display:inline-block;font-size:0;height:19px;line-height:17px;margin:1px 10px 1px;width:5px}.cke_hc .cke_combo_open{height:12px}.cke_combo_arrow{cursor:default;margin:11px 0 0;float:left;height:0;width:0;font-size:0;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #484848}.cke_hc .cke_combo_arrow{font-size:10px;width:auto;border:0;margin-top:3px}.cke_combo_label{display:none;float:left;line-height:26px;vertical-align:top;margin-right:5px}.cke_rtl .cke_combo_label{float:right;margin-left:5px;margin-right:0}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{opacity:.3}.cke_path{float:left;margin:-2px 0 2px}a.cke_path_item,span.cke_path_empty{display:inline-block;float:left;padding:3px 4px;margin-right:2px;cursor:default;text-decoration:none;outline:0;border:0;color:#484848;font-weight:bold;font-size:11px}.cke_rtl .cke_path,.cke_rtl .cke_path_item,.cke_rtl .cke_path_empty{float:right}a.cke_path_item:hover,a.cke_path_item:focus,a.cke_path_item:active{background-color:#e5e5e5}.cke_hc a.cke_path_item:hover,.cke_hc a.cke_path_item:focus,.cke_hc a.cke_path_item:active{border:2px solid;padding:1px 2px}.cke_button__source_label,.cke_button__sourcedialog_label{display:inline}.cke_combopanel__fontsize{width:135px}textarea.cke_source{font-family:'Courier New',Monospace;font-size:small;background-color:#fff;white-space:pre-wrap;border:0;padding:0;margin:0;display:block}.cke_wysiwyg_frame,.cke_wysiwyg_div{background-color:#fff}.cke_notifications_area{pointer-events:none}.cke_notification{pointer-events:auto;position:relative;margin:10px;width:300px;color:white;text-align:center;opacity:.95;filter:alpha(opacity = 95);-webkit-animation:fadeIn .7s;animation:fadeIn .7s}.cke_notification_message a{color:#12306f}@-webkit-keyframes fadeIn{from{opacity:.4}to{opacity:.95}}@keyframes fadeIn{from{opacity:.4}to{opacity:.95}}.cke_notification_success{background:#72b572;border:1px solid #63a563}.cke_notification_warning{background:#c83939;border:1px solid #902b2b}.cke_notification_info{background:#2e9ad0;border:1px solid #0f74a8}.cke_notification_info span.cke_notification_progress{background-color:#0f74a8;display:block;padding:0;margin:0;height:100%;overflow:hidden;position:absolute;z-index:1}.cke_notification_message{position:relative;margin:4px 23px 3px;font-family:Arial,Helvetica,sans-serif;font-size:12px;line-height:18px;z-index:4;text-overflow:ellipsis;overflow:hidden}.cke_notification_close{background-image:url(images/close.png);background-repeat:no-repeat;background-position:50%;position:absolute;cursor:pointer;text-align:center;height:20px;width:20px;top:1px;right:1px;padding:0;margin:0;z-index:5;opacity:.6;filter:alpha(opacity = 60)}.cke_notification_close:hover{opacity:1;filter:alpha(opacity = 100)}.cke_notification_close span{display:none}.cke_notification_warning a.cke_notification_close{opacity:.8;filter:alpha(opacity = 80)}.cke_notification_warning a.cke_notification_close:hover{opacity:1;filter:alpha(opacity = 100)}.cke_chrome{visibility:inherit}.cke_voice_label{display:none}legend.cke_voice_label{display:none}.cke_button__about_icon{background:url(icons.png?t=JA5A) no-repeat 0 -0px!important}.cke_button__bold_icon{background:url(icons.png?t=JA5A) no-repeat 0 -24px!important}.cke_button__italic_icon{background:url(icons.png?t=JA5A) no-repeat 0 -48px!important}.cke_button__strike_icon{background:url(icons.png?t=JA5A) no-repeat 0 -72px!important}.cke_button__subscript_icon{background:url(icons.png?t=JA5A) no-repeat 0 -96px!important}.cke_button__superscript_icon{background:url(icons.png?t=JA5A) no-repeat 0 -120px!important}.cke_button__underline_icon{background:url(icons.png?t=JA5A) no-repeat 0 -144px!important}.cke_button__blockquote_icon{background:url(icons.png?t=JA5A) no-repeat 0 -168px!important}.cke_rtl .cke_button__copy_icon,.cke_mixed_dir_content .cke_rtl .cke_button__copy_icon{background:url(icons.png?t=JA5A) no-repeat 0 -192px!important}.cke_ltr .cke_button__copy_icon{background:url(icons.png?t=JA5A) no-repeat 0 -216px!important}.cke_rtl .cke_button__cut_icon,.cke_mixed_dir_content .cke_rtl .cke_button__cut_icon{background:url(icons.png?t=JA5A) no-repeat 0 -240px!important}.cke_ltr .cke_button__cut_icon{background:url(icons.png?t=JA5A) no-repeat 0 -264px!important}.cke_rtl .cke_button__paste_icon,.cke_mixed_dir_content .cke_rtl .cke_button__paste_icon{background:url(icons.png?t=JA5A) no-repeat 0 -288px!important}.cke_ltr .cke_button__paste_icon{background:url(icons.png?t=JA5A) no-repeat 0 -312px!important}.cke_button__horizontalrule_icon{background:url(icons.png?t=JA5A) no-repeat 0 -336px!important}.cke_button__image_icon{background:url(icons.png?t=JA5A) no-repeat 0 -360px!important}.cke_rtl .cke_button__indent_icon,.cke_mixed_dir_content .cke_rtl .cke_button__indent_icon{background:url(icons.png?t=JA5A) no-repeat 0 -384px!important}.cke_ltr .cke_button__indent_icon{background:url(icons.png?t=JA5A) no-repeat 0 -408px!important}.cke_rtl .cke_button__outdent_icon,.cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon{background:url(icons.png?t=JA5A) no-repeat 0 -432px!important}.cke_ltr .cke_button__outdent_icon{background:url(icons.png?t=JA5A) no-repeat 0 -456px!important}.cke_button__justifyblock_icon{background:url(icons.png?t=JA5A) no-repeat 0 -480px!important}.cke_button__justifycenter_icon{background:url(icons.png?t=JA5A) no-repeat 0 -504px!important}.cke_button__justifyleft_icon{background:url(icons.png?t=JA5A) no-repeat 0 -528px!important}.cke_button__justifyright_icon{background:url(icons.png?t=JA5A) no-repeat 0 -552px!important}.cke_button__language_icon{background:url(icons.png?t=JA5A) no-repeat 0 -576px!important}.cke_rtl .cke_button__bulletedlist_icon,.cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon{background:url(icons.png?t=JA5A) no-repeat 0 -600px!important}.cke_ltr .cke_button__bulletedlist_icon{background:url(icons.png?t=JA5A) no-repeat 0 -624px!important}.cke_rtl .cke_button__numberedlist_icon,.cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon{background:url(icons.png?t=JA5A) no-repeat 0 -648px!important}.cke_ltr .cke_button__numberedlist_icon{background:url(icons.png?t=JA5A) no-repeat 0 -672px!important}.cke_button__maximize_icon{background:url(icons.png?t=JA5A) no-repeat 0 -696px!important}.cke_rtl .cke_button__pastefromword_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon{background:url(icons.png?t=JA5A) no-repeat 0 -720px!important}.cke_ltr .cke_button__pastefromword_icon{background:url(icons.png?t=JA5A) no-repeat 0 -744px!important}.cke_rtl .cke_button__pastetext_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon{background:url(icons.png?t=JA5A) no-repeat 0 -768px!important}.cke_ltr .cke_button__pastetext_icon{background:url(icons.png?t=JA5A) no-repeat 0 -792px!important}.cke_button__removeformat_icon{background:url(icons.png?t=JA5A) no-repeat 0 -816px!important}.cke_rtl .cke_button__showblocks_icon,.cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon{background:url(icons.png?t=JA5A) no-repeat 0 -840px!important}.cke_ltr .cke_button__showblocks_icon{background:url(icons.png?t=JA5A) no-repeat 0 -864px!important}.cke_rtl .cke_button__source_icon,.cke_mixed_dir_content .cke_rtl .cke_button__source_icon{background:url(icons.png?t=JA5A) no-repeat 0 -888px!important}.cke_ltr .cke_button__source_icon{background:url(icons.png?t=JA5A) no-repeat 0 -912px!important}.cke_rtl .cke_button__sourcedialog_icon,.cke_mixed_dir_content .cke_rtl .cke_button__sourcedialog_icon{background:url(icons.png?t=JA5A) no-repeat 0 -936px!important}.cke_ltr .cke_button__sourcedialog_icon{background:url(icons.png?t=JA5A) no-repeat 0 -960px!important}.cke_button__specialchar_icon{background:url(icons.png?t=JA5A) no-repeat 0 -984px!important}.cke_button__table_icon{background:url(icons.png?t=JA5A) no-repeat 0 -1008px!important}.cke_rtl .cke_button__redo_icon,.cke_mixed_dir_content .cke_rtl .cke_button__redo_icon{background:url(icons.png?t=JA5A) no-repeat 0 -1032px!important}.cke_ltr .cke_button__redo_icon{background:url(icons.png?t=JA5A) no-repeat 0 -1056px!important}.cke_rtl .cke_button__undo_icon,.cke_mixed_dir_content .cke_rtl .cke_button__undo_icon{background:url(icons.png?t=JA5A) no-repeat 0 -1080px!important}.cke_ltr .cke_button__undo_icon{background:url(icons.png?t=JA5A) no-repeat 0 -1104px!important}.cke_button__simplebox_icon{background:url(icons.png?t=JA5A) no-repeat 0 -1128px!important}.cke_hidpi .cke_button__about_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -0px!important;background-size:16px!important}.cke_hidpi .cke_button__bold_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -24px!important;background-size:16px!important}.cke_hidpi .cke_button__italic_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -48px!important;background-size:16px!important}.cke_hidpi .cke_button__strike_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -72px!important;background-size:16px!important}.cke_hidpi .cke_button__subscript_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -96px!important;background-size:16px!important}.cke_hidpi .cke_button__superscript_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -120px!important;background-size:16px!important}.cke_hidpi .cke_button__underline_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -144px!important;background-size:16px!important}.cke_hidpi .cke_button__blockquote_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -168px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__copy_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__copy_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -192px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__copy_icon,.cke_ltr.cke_hidpi .cke_button__copy_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -216px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__cut_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__cut_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -240px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__cut_icon,.cke_ltr.cke_hidpi .cke_button__cut_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -264px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__paste_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__paste_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -288px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__paste_icon,.cke_ltr.cke_hidpi .cke_button__paste_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -312px!important;background-size:16px!important}.cke_hidpi .cke_button__horizontalrule_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -336px!important;background-size:16px!important}.cke_hidpi .cke_button__image_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -360px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__indent_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -384px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__indent_icon,.cke_ltr.cke_hidpi .cke_button__indent_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -408px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__outdent_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -432px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__outdent_icon,.cke_ltr.cke_hidpi .cke_button__outdent_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -456px!important;background-size:16px!important}.cke_hidpi .cke_button__justifyblock_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -480px!important;background-size:16px!important}.cke_hidpi .cke_button__justifycenter_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -504px!important;background-size:16px!important}.cke_hidpi .cke_button__justifyleft_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -528px!important;background-size:16px!important}.cke_hidpi .cke_button__justifyright_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -552px!important;background-size:16px!important}.cke_hidpi .cke_button__language_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -576px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__bulletedlist_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -600px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__bulletedlist_icon,.cke_ltr.cke_hidpi .cke_button__bulletedlist_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -624px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__numberedlist_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -648px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__numberedlist_icon,.cke_ltr.cke_hidpi .cke_button__numberedlist_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -672px!important;background-size:16px!important}.cke_hidpi .cke_button__maximize_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -696px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__pastefromword_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -720px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__pastefromword_icon,.cke_ltr.cke_hidpi .cke_button__pastefromword_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -744px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__pastetext_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -768px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__pastetext_icon,.cke_ltr.cke_hidpi .cke_button__pastetext_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -792px!important;background-size:16px!important}.cke_hidpi .cke_button__removeformat_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -816px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__showblocks_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -840px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__showblocks_icon,.cke_ltr.cke_hidpi .cke_button__showblocks_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -864px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__source_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__source_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -888px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__source_icon,.cke_ltr.cke_hidpi .cke_button__source_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -912px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__sourcedialog_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__sourcedialog_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -936px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__sourcedialog_icon,.cke_ltr.cke_hidpi .cke_button__sourcedialog_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -960px!important;background-size:16px!important}.cke_hidpi .cke_button__specialchar_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -984px!important;background-size:16px!important}.cke_hidpi .cke_button__table_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -1008px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__redo_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__redo_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -1032px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__redo_icon,.cke_ltr.cke_hidpi .cke_button__redo_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -1056px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__undo_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__undo_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -1080px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__undo_icon,.cke_ltr.cke_hidpi .cke_button__undo_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -1104px!important;background-size:16px!important}.cke_hidpi .cke_button__simplebox_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -2256px!important}
\ No newline at end of file
+.cke_reset{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;position:static;transition:none}.cke_reset_all,.cke_reset_all *,.cke_reset_all a,.cke_reset_all textarea{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;position:static;transition:none;border-collapse:collapse;font:normal normal normal 12px Arial,Helvetica,Tahoma,Verdana,Sans-Serif;color:#000;text-align:left;white-space:nowrap;cursor:auto;float:none}.cke_reset_all .cke_rtl *{text-align:right}.cke_reset_all iframe{vertical-align:inherit}.cke_reset_all textarea{white-space:pre-wrap}.cke_reset_all textarea,.cke_reset_all input[type="text"],.cke_reset_all input[type="password"]{cursor:text}.cke_reset_all textarea[disabled],.cke_reset_all input[type="text"][disabled],.cke_reset_all input[type="password"][disabled]{cursor:default}.cke_reset_all fieldset{padding:10px;border:2px groove #e0dfe3}.cke_reset_all select{box-sizing:border-box}.cke_reset_all table{table-layout:auto}.cke_chrome{display:block;border:1px solid #d1d1d1;padding:0}.cke_inner{display:block;background:#fff;padding:0;-webkit-touch-callout:none}.cke_float{border:0}.cke_float .cke_inner{padding-bottom:0}.cke_top,.cke_contents,.cke_bottom{display:block;overflow:hidden}.cke_top{border-bottom:1px solid #d1d1d1;background:#f8f8f8;padding:6px 8px 2px;white-space:normal}.cke_float .cke_top{border:1px solid #d1d1d1}.cke_bottom{padding:6px 8px 2px;position:relative;border-top:1px solid #d1d1d1;background:#f8f8f8}.cke_browser_ios .cke_contents{overflow-y:auto;-webkit-overflow-scrolling:touch}.cke_resizer{width:0;height:0;overflow:hidden;border-width:10px 10px 0 0;border-color:transparent #bcbcbc transparent transparent;border-style:dashed solid dashed dashed;font-size:0;vertical-align:bottom;margin-top:6px;margin-bottom:2px}.cke_hc .cke_resizer{font-size:15px;width:auto;height:auto;border-width:0}.cke_resizer_ltr{cursor:se-resize;float:right;margin-right:-4px}.cke_resizer_rtl{border-width:10px 0 0 10px;border-color:transparent transparent transparent #bcbcbc;border-style:dashed dashed dashed solid;cursor:sw-resize;float:left;margin-left:-4px;right:auto}.cke_wysiwyg_div{display:block;height:100%;overflow:auto;padding:0 8px;outline-style:none;box-sizing:border-box}.cke_panel{visibility:visible;width:120px;height:100px;overflow:hidden;background-color:#fff;border:1px solid #d1d1d1}.cke_menu_panel{padding:0;margin:0}.cke_combopanel{width:150px;height:170px}.cke_panel_frame{width:100%;height:100%;font-size:12px;overflow:auto;overflow-x:hidden}.cke_panel_container{overflow-y:auto;overflow-x:hidden}.cke_panel_block:focus{outline:0}.cke_panel_list{margin:0;padding:0;list-style-type:none;white-space:nowrap}.cke_panel_listItem{margin:0;padding:0}.cke_panel_listItem a{padding:6px 7px;display:block;color:inherit!important;text-decoration:none;overflow:hidden;text-overflow:ellipsis}.cke_hc .cke_panel_listItem a{border-style:none}.cke_panel_listItem.cke_selected a,.cke_panel_listItem a:hover,.cke_panel_listItem a:focus,.cke_panel_listItem a:active{background-color:#e9e9e9}.cke_panel_listItem a:focus{outline:1px dotted #000}.cke_hc .cke_panel_listItem a:hover,.cke_hc .cke_panel_listItem a:focus,.cke_hc .cke_panel_listItem a:active{border:2px solid;padding:4px 5px}.cke_panel_listItem p,.cke_panel_listItem h1,.cke_panel_listItem h2,.cke_panel_listItem h3,.cke_panel_listItem h4,.cke_panel_listItem h5,.cke_panel_listItem h6,.cke_panel_listItem pre{margin-top:0;margin-bottom:0}.cke_panel_grouptitle{cursor:default;font-size:11px;font-weight:bold;white-space:nowrap;margin:0;padding:6px 6px 7px 6px;color:#484848;border-bottom:1px solid #d1d1d1;background:#f8f8f8}.cke_colorblock{padding:10px;font-size:11px;font-family:'Microsoft Sans Serif',Tahoma,Arial,Verdana,Sans-Serif}.cke_colorblock,.cke_colorblock a{text-decoration:none;color:#000}a.cke_colorbox{padding:2px;float:left;width:20px;height:20px}.cke_rtl a.cke_colorbox{float:right}a:hover.cke_colorbox,a:focus.cke_colorbox,a:active.cke_colorbox{outline:0;padding:0;border:2px solid #139ff7}a:hover.cke_colorbox{border-color:#bcbcbc}span.cke_colorbox{width:20px;height:20px;float:left}.cke_rtl span.cke_colorbox{float:right}a.cke_colorauto,a.cke_colormore{border:#fff 1px solid;padding:3px;display:block;cursor:pointer}a.cke_colorauto{padding:0;border:1px solid transparent;margin-bottom:6px;height:26px;line-height:26px}a.cke_colormore{margin-top:10px;height:20px;line-height:19px}a:hover.cke_colorauto,a:hover.cke_colormore,a:focus.cke_colorauto,a:focus.cke_colormore,a:active.cke_colorauto,a:active.cke_colormore{outline:0;border:#139ff7 1px solid;background-color:#f8f8f8}a:hover.cke_colorauto,a:hover.cke_colormore{border-color:#bcbcbc}.cke_colorauto span.cke_colorbox{width:18px;height:18px;border:1px solid #808080;margin-left:1px;margin-top:3px}.cke_rtl .cke_colorauto span.cke_colorbox{margin-left:0;margin-right:1px}span.cke_colorbox[style*="#ffffff"],span.cke_colorbox[style*="#FFFFFF"],span.cke_colorbox[style="background-color:#fff"],span.cke_colorbox[style="background-color:#FFF"],span.cke_colorbox[style*="rgb(255,255,255)"],span.cke_colorbox[style*="rgb(255, 255, 255)"]{border:1px solid #808080;width:18px;height:18px}.cke_toolbar{float:left}.cke_rtl .cke_toolbar{float:right}.cke_toolgroup{border:0;float:left;margin:1px 2px 6px 0;padding-right:3px}.cke_rtl .cke_toolgroup{float:right;margin:1px 0 6px 2px;padding-left:3px;padding-right:0}.cke_hc .cke_toolgroup{margin-right:5px;margin-bottom:5px}.cke_hc.cke_rtl .cke_toolgroup{margin-right:0;margin-left:5px}a.cke_button{display:inline-block;height:18px;padding:4px 6px;outline:0;cursor:default;float:left;border:0;position:relative}a.cke_button_expandable{padding:4px 5px}.cke_rtl a.cke_button{float:right}.cke_hc a.cke_button{border:1px solid black;padding:3px 5px;margin:0 3px 5px 0}.cke_hc.cke_rtl a.cke_button{margin:0 0 5px 3px}a.cke_button_on{background:#fff;border:1px #bcbcbc solid;padding:3px 5px}a.cke_button_expandable.cke_button_on{padding:3px 4px}a.cke_button_off:hover,a.cke_button_off:focus,a.cke_button_off:active{background:#e5e5e5;border:1px #bcbcbc solid;padding:3px 5px}a.cke_button_expandable.cke_button_off:hover,a.cke_button_expandable.cke_button_off:focus,a.cke_button_expandable.cke_button_off:active{padding:3px 4px}.cke_hc a.cke_button_on,.cke_hc a.cke_button_off:hover,.cke_hc a.cke_button_off:focus,.cke_hc a.cke_button_off:active{background:#e5e5e5;border:3px solid #000;padding:1px 3px}a.cke_button_disabled:hover,a.cke_button_disabled:focus,a.cke_button_disabled:active{border:0;padding:4px 6px;background-color:transparent}a.cke_button_expandable.cke_button_disabled:hover,a.cke_button_expandable.cke_button_disabled:active{padding:4px 5px}a.cke_button_disabled:focus{border:1px #bcbcbc solid;padding:3px 5px}a.cke_button_expandable.cke_button_disabled:focus{padding:3px 4px}.cke_hc a.cke_button_disabled:hover,.cke_hc a.cke_button_disabled:focus,.cke_hc a.cke_button_disabled:active{border:1px solid #acacac;padding:3px 5px;margin:0 3px 5px 0}.cke_hc a.cke_button_disabled:focus{border:3px solid #000;padding:1px 3px}.cke_hc.cke_rtl a.cke_button_disabled:hover,.cke_hc.cke_rtl a.cke_button_disabled:focus,.cke_hc.cke_rtl a.cke_button_disabled:active{margin:0 0 5px 3px}a.cke_button_disabled .cke_button_icon,a.cke_button_disabled .cke_button_arrow{opacity:.3}.cke_hc a.cke_button_disabled{border-color:#acacac}.cke_hc a.cke_button_disabled .cke_button_icon,.cke_hc a.cke_button_disabled .cke_button_label{opacity:.5}.cke_toolgroup a.cke_button:last-child:after,.cke_toolgroup a.cke_button.cke_button_disabled:hover:last-child:after{content:"";position:absolute;height:18px;width:0;border-right:1px solid #bcbcbc;margin-top:4px;top:0;right:-3px}.cke_rtl .cke_toolgroup a.cke_button:last-child:after,.cke_rtl .cke_toolgroup a.cke_button.cke_button_disabled:hover:last-child:after{border-right:0;right:auto;border-left:1px solid #bcbcbc;top:0;left:-3px}.cke_hc .cke_toolgroup a.cke_button:last-child:after,.cke_hc .cke_toolgroup a.cke_button.cke_button_disabled:last-child:after,.cke_hc .cke_toolgroup a.cke_button.cke_button_disabled:hover:last-child:after{border-color:#000;top:0;right:-7px}.cke_hc.cke_rtl .cke_toolgroup a.cke_button:last-child:after,.cke_hc.cke_rtl .cke_toolgroup a.cke_button.cke_button_disabled:last-child:after,.cke_hc.cke_rtl .cke_toolgroup a.cke_button.cke_button_disabled:hover:last-child:after{top:0;right:auto;left:-7px}.cke_toolgroup a.cke_button:hover:last-child:after,.cke_toolgroup a.cke_button:focus:last-child:after,.cke_toolgroup a.cke_button.cke_button_on:last-child:after{top:-1px;right:-4px}.cke_rtl .cke_toolgroup a.cke_button:hover:last-child:after,.cke_rtl .cke_toolgroup a.cke_button:focus:last-child:after,.cke_rtl .cke_toolgroup a.cke_button.cke_button_on:last-child:after{top:-1px;right:auto;left:-4px}.cke_hc .cke_toolgroup a.cke_button:hover:last-child:after,.cke_hc .cke_toolgroup a.cke_button.cke_button_on:last-child:after{top:-2px;right:-9px}.cke_hc.cke_rtl .cke_toolgroup a.cke_button:hover:last-child:after,.cke_hc.cke_rtl .cke_toolgroup a.cke_button.cke_button_on:last-child:after{top:-2px;right:auto;left:-9px}.cke_toolbar.cke_toolbar_last .cke_toolgroup a.cke_button:last-child:after{content:none;border:0;width:0;height:0}.cke_button_icon{cursor:inherit;background-repeat:no-repeat;margin-top:1px;width:16px;height:16px;float:left;display:inline-block}.cke_rtl .cke_button_icon{float:right}.cke_hc .cke_button_icon{display:none}.cke_button_label{display:none;padding-left:3px;margin-top:1px;line-height:17px;vertical-align:middle;float:left;cursor:default;color:#484848}.cke_rtl .cke_button_label{padding-right:3px;padding-left:0;float:right}.cke_hc .cke_button_label{padding:0;display:inline-block;font-size:12px}.cke_button_arrow{display:inline-block;margin:8px 0 0 3px;width:0;height:0;cursor:default;vertical-align:top;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #484848}.cke_rtl .cke_button_arrow{margin-right:5px;margin-left:0}.cke_hc .cke_button_arrow{font-size:10px;margin:3px 0 0 3px;width:auto;border:0}.cke_toolbar_separator{float:left;background-color:#bcbcbc;margin:4px 2px 0 2px;height:18px;width:1px}.cke_rtl .cke_toolbar_separator{float:right}.cke_hc .cke_toolbar_separator{background-color:#000;margin-left:2px;margin-right:5px;margin-bottom:9px}.cke_hc.cke_rtl .cke_toolbar_separator{margin-left:5px;margin-right:2px}.cke_toolbar_break{display:block;clear:left}.cke_rtl .cke_toolbar_break{clear:right}a.cke_toolbox_collapser{width:12px;height:11px;float:right;margin:11px 0 0;font-size:0;cursor:default;text-align:center;border:1px solid #bcbcbc}.cke_rtl .cke_toolbox_collapser{float:left}.cke_toolbox_collapser:hover{background:#e5e5e5}.cke_toolbox_collapser.cke_toolbox_collapser_min{margin:0 2px 4px}.cke_toolbox_collapser .cke_arrow{display:inline-block;height:0;width:0;font-size:0;margin-top:1px;border:3px solid transparent;border-bottom-color:#484848}.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow{margin-top:4px;border-bottom-color:transparent;border-top-color:#484848}.cke_hc .cke_toolbox_collapser .cke_arrow{font-size:8px;width:auto;border:0;margin-top:0}.cke_menuitem span{cursor:default}.cke_menubutton{display:block}.cke_hc .cke_menubutton{padding:2px}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#e9e9e9;display:block;outline:1px dotted}.cke_menubutton:hover{outline:0}.cke_hc .cke_menubutton:hover,.cke_hc .cke_menubutton:focus,.cke_hc .cke_menubutton:active{border:2px solid;padding:0}.cke_menubutton_disabled:hover,.cke_menubutton_disabled:focus,.cke_menubutton_disabled:active{background-color:transparent;outline:0}.cke_menubutton_inner{display:table-row}.cke_menubutton_icon,.cke_menubutton_label,.cke_menuarrow{display:table-cell}.cke_menubutton_icon{background-color:#f8f8f8;padding:6px 4px}.cke_hc .cke_menubutton_icon{height:16px;width:0;padding:4px 0}.cke_menubutton:hover .cke_menubutton_icon,.cke_menubutton:focus .cke_menubutton_icon,.cke_menubutton:active .cke_menubutton_icon{background-color:#e9e9e9}.cke_menubutton_disabled:hover .cke_menubutton_icon,.cke_menubutton_disabled:focus .cke_menubutton_icon,.cke_menubutton_disabled:active .cke_menubutton_icon{background-color:#f8f8f8;outline:0}.cke_menuitem .cke_menubutton_on{background-color:#e9e9e9;border:1px solid #dedede;outline:0}.cke_menubutton_on .cke_menubutton_icon{padding-right:3px;background-color:#e9e9e9}.cke_menubutton_label{padding:0 5px;background-color:transparent;width:100%;vertical-align:middle}.cke_menubutton_shortcut{color:#979797}.cke_menubutton_disabled .cke_menubutton_label{opacity:.3;filter:alpha(opacity=30)}.cke_panel_frame .cke_menubutton_label{display:none}.cke_menuseparator{background-color:#d1d1d1;height:1px}.cke_menuarrow{background:transparent url(images/arrow.png) no-repeat 0 10px;padding:0 5px}.cke_rtl .cke_menuarrow{background-position:5px -13px;background-repeat:no-repeat}.cke_hc .cke_menuarrow{background-image:none}.cke_menuarrow span{display:none}.cke_hc .cke_menuarrow span{vertical-align:middle;display:inline}.cke_combo{display:inline-block;float:left;position:relative;margin-bottom:5px}.cke_rtl .cke_combo{float:right}.cke_hc .cke_combo{margin-top:1px;margin-bottom:10px}.cke_combo:after{content:"";position:absolute;height:18px;width:0;border-right:1px solid #bcbcbc;margin-top:5px;top:0;right:0}.cke_rtl .cke_combo:after{border-right:0;border-left:1px solid #bcbcbc;right:auto;left:0}.cke_hc .cke_combo:after{border-color:#000}a.cke_combo_button{cursor:default;display:inline-block;float:left;margin:0;padding:1px}.cke_rtl a.cke_combo_button{float:right}.cke_hc a.cke_combo_button{padding:4px}.cke_combo_on a.cke_combo_button,.cke_combo_off a.cke_combo_button:hover,.cke_combo_off a.cke_combo_button:focus,.cke_combo_off a.cke_combo_button:active{background:#e5e5e5;border:1px solid #bcbcbc;padding:0 0 0 1px;margin-left:-1px}.cke_combo_off a.cke_combo_button:focus{outline:0}.cke_combo_on a.cke_combo_button,.cke_combo_off a.cke_combo_button:active{background:#fff}.cke_rtl .cke_combo_on a.cke_combo_button,.cke_rtl .cke_combo_off a.cke_combo_button:hover,.cke_rtl .cke_combo_off a.cke_combo_button:focus,.cke_rtl .cke_combo_off a.cke_combo_button:active{padding:0 1px 0 0;margin-left:0;margin-right:-1px}.cke_hc .cke_combo_on a.cke_combo_button,.cke_hc .cke_combo_off a.cke_combo_button:hover,.cke_hc .cke_combo_off a.cke_combo_button:focus,.cke_hc .cke_combo_off a.cke_combo_button:active{border:3px solid #000;padding:1px 1px 1px 2px}.cke_hc.cke_rtl .cke_combo_on a.cke_combo_button,.cke_hc.cke_rtl .cke_combo_off a.cke_combo_button:hover,.cke_hc.cke_rtl .cke_combo_off a.cke_combo_button:focus,.cke_hc.cke_rtl .cke_combo_off a.cke_combo_button:active{padding:1px 2px 1px 1px}.cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_toolbar_start+.cke_combo_off a.cke_combo_button:active{padding:0 0 0 3px;margin-left:-3px}.cke_rtl .cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_rtl .cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_rtl .cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_rtl .cke_toolbar_start+.cke_combo_off a.cke_combo_button:active{padding:0 3px 0 0;margin-left:0;margin-right:-3px}.cke_hc .cke_toolbar>.cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_hc .cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_hc .cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_hc .cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:active{padding:1px 1px 1px 7px;margin-left:-6px}.cke_hc.cke_rtl .cke_toolbar>.cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_hc.cke_rtl .cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_hc.cke_rtl .cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_hc.cke_rtl .cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:active{padding:1px 7px 1px 1px;margin-left:0;margin-right:-6px}.cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:active,.cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:active{padding:0;margin:0}.cke_hc .cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_hc .cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_hc .cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_hc .cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:active,.cke_hc .cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_hc .cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_hc .cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_hc .cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:active{padding:1px;margin:0}.cke_toolbar .cke_combo+.cke_toolbar_end,.cke_toolbar .cke_combo+.cke_toolgroup{margin-right:0;margin-left:2px}.cke_rtl .cke_toolbar .cke_combo+.cke_toolbar_end,.cke_rtl .cke_toolbar .cke_combo+.cke_toolgroup{margin-left:0;margin-right:2px}.cke_hc .cke_toolbar .cke_combo+.cke_toolbar_end,.cke_hc .cke_toolbar .cke_combo+.cke_toolgroup{margin-left:5px}.cke_hc.cke_rtl .cke_toolbar .cke_combo+.cke_toolbar_end,.cke_hc.cke_rtl .cke_toolbar .cke_combo+.cke_toolgroup{margin-left:0;margin-right:5px}.cke_toolbar.cke_toolbar_last .cke_combo:nth-last-child(-n+2):after{content:none;border:0;width:0;height:0}.cke_combo_text{line-height:26px;padding-left:10px;text-overflow:ellipsis;overflow:hidden;float:left;cursor:default;color:#484848;width:60px}.cke_rtl .cke_combo_text{float:right;text-align:right;padding-left:0;padding-right:10px}.cke_hc .cke_combo_text{line-height:18px;font-size:12px}.cke_combo_open{cursor:default;display:inline-block;font-size:0;height:19px;line-height:17px;margin:1px 10px 1px;width:5px}.cke_hc .cke_combo_open{height:12px}.cke_combo_arrow{cursor:default;margin:11px 0 0;float:left;height:0;width:0;font-size:0;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #484848}.cke_hc .cke_combo_arrow{font-size:10px;width:auto;border:0;margin-top:3px}.cke_combo_label{display:none;float:left;line-height:26px;vertical-align:top;margin-right:5px}.cke_rtl .cke_combo_label{float:right;margin-left:5px;margin-right:0}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{opacity:.3}.cke_path{float:left;margin:-2px 0 2px}a.cke_path_item,span.cke_path_empty{display:inline-block;float:left;padding:3px 4px;margin-right:2px;cursor:default;text-decoration:none;outline:0;border:0;color:#484848;font-weight:bold;font-size:11px}.cke_rtl .cke_path,.cke_rtl .cke_path_item,.cke_rtl .cke_path_empty{float:right}a.cke_path_item:hover,a.cke_path_item:focus,a.cke_path_item:active{background-color:#e5e5e5}.cke_hc a.cke_path_item:hover,.cke_hc a.cke_path_item:focus,.cke_hc a.cke_path_item:active{border:2px solid;padding:1px 2px}.cke_button__source_label,.cke_button__sourcedialog_label{display:inline}.cke_combopanel__fontsize{width:135px}textarea.cke_source{font-family:'Courier New',Monospace;font-size:small;background-color:#fff;white-space:pre-wrap;border:0;padding:0;margin:0;display:block}.cke_wysiwyg_frame,.cke_wysiwyg_div{background-color:#fff}.cke_notifications_area{pointer-events:none}.cke_notification{pointer-events:auto;position:relative;margin:10px;width:300px;color:white;text-align:center;opacity:.95;filter:alpha(opacity = 95);-webkit-animation:fadeIn .7s;animation:fadeIn .7s}.cke_notification_message a{color:#12306f}@-webkit-keyframes fadeIn{from{opacity:.4}to{opacity:.95}}@keyframes fadeIn{from{opacity:.4}to{opacity:.95}}.cke_notification_success{background:#72b572;border:1px solid #63a563}.cke_notification_warning{background:#c83939;border:1px solid #902b2b}.cke_notification_info{background:#2e9ad0;border:1px solid #0f74a8}.cke_notification_info span.cke_notification_progress{background-color:#0f74a8;display:block;padding:0;margin:0;height:100%;overflow:hidden;position:absolute;z-index:1}.cke_notification_message{position:relative;margin:4px 23px 3px;font-family:Arial,Helvetica,sans-serif;font-size:12px;line-height:18px;z-index:4;text-overflow:ellipsis;overflow:hidden}.cke_notification_close{background-image:url(images/close.png);background-repeat:no-repeat;background-position:50%;position:absolute;cursor:pointer;text-align:center;height:20px;width:20px;top:1px;right:1px;padding:0;margin:0;z-index:5;opacity:.6;filter:alpha(opacity = 60)}.cke_notification_close:hover{opacity:1;filter:alpha(opacity = 100)}.cke_notification_close span{display:none}.cke_notification_warning a.cke_notification_close{opacity:.8;filter:alpha(opacity = 80)}.cke_notification_warning a.cke_notification_close:hover{opacity:1;filter:alpha(opacity = 100)}.cke_chrome{visibility:inherit}.cke_voice_label{display:none}legend.cke_voice_label{display:none}.cke_button__about_icon{background:url(icons.png?t=K1SC) no-repeat 0 -0px!important}.cke_button__bold_icon{background:url(icons.png?t=K1SC) no-repeat 0 -24px!important}.cke_button__italic_icon{background:url(icons.png?t=K1SC) no-repeat 0 -48px!important}.cke_button__strike_icon{background:url(icons.png?t=K1SC) no-repeat 0 -72px!important}.cke_button__subscript_icon{background:url(icons.png?t=K1SC) no-repeat 0 -96px!important}.cke_button__superscript_icon{background:url(icons.png?t=K1SC) no-repeat 0 -120px!important}.cke_button__underline_icon{background:url(icons.png?t=K1SC) no-repeat 0 -144px!important}.cke_button__blockquote_icon{background:url(icons.png?t=K1SC) no-repeat 0 -168px!important}.cke_rtl .cke_button__copy_icon,.cke_mixed_dir_content .cke_rtl .cke_button__copy_icon{background:url(icons.png?t=K1SC) no-repeat 0 -192px!important}.cke_ltr .cke_button__copy_icon{background:url(icons.png?t=K1SC) no-repeat 0 -216px!important}.cke_rtl .cke_button__cut_icon,.cke_mixed_dir_content .cke_rtl .cke_button__cut_icon{background:url(icons.png?t=K1SC) no-repeat 0 -240px!important}.cke_ltr .cke_button__cut_icon{background:url(icons.png?t=K1SC) no-repeat 0 -264px!important}.cke_rtl .cke_button__paste_icon,.cke_mixed_dir_content .cke_rtl .cke_button__paste_icon{background:url(icons.png?t=K1SC) no-repeat 0 -288px!important}.cke_ltr .cke_button__paste_icon{background:url(icons.png?t=K1SC) no-repeat 0 -312px!important}.cke_button__horizontalrule_icon{background:url(icons.png?t=K1SC) no-repeat 0 -336px!important}.cke_button__image_icon{background:url(icons.png?t=K1SC) no-repeat 0 -360px!important}.cke_rtl .cke_button__indent_icon,.cke_mixed_dir_content .cke_rtl .cke_button__indent_icon{background:url(icons.png?t=K1SC) no-repeat 0 -384px!important}.cke_ltr .cke_button__indent_icon{background:url(icons.png?t=K1SC) no-repeat 0 -408px!important}.cke_rtl .cke_button__outdent_icon,.cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon{background:url(icons.png?t=K1SC) no-repeat 0 -432px!important}.cke_ltr .cke_button__outdent_icon{background:url(icons.png?t=K1SC) no-repeat 0 -456px!important}.cke_button__justifyblock_icon{background:url(icons.png?t=K1SC) no-repeat 0 -480px!important}.cke_button__justifycenter_icon{background:url(icons.png?t=K1SC) no-repeat 0 -504px!important}.cke_button__justifyleft_icon{background:url(icons.png?t=K1SC) no-repeat 0 -528px!important}.cke_button__justifyright_icon{background:url(icons.png?t=K1SC) no-repeat 0 -552px!important}.cke_button__language_icon{background:url(icons.png?t=K1SC) no-repeat 0 -576px!important}.cke_rtl .cke_button__bulletedlist_icon,.cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon{background:url(icons.png?t=K1SC) no-repeat 0 -600px!important}.cke_ltr .cke_button__bulletedlist_icon{background:url(icons.png?t=K1SC) no-repeat 0 -624px!important}.cke_rtl .cke_button__numberedlist_icon,.cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon{background:url(icons.png?t=K1SC) no-repeat 0 -648px!important}.cke_ltr .cke_button__numberedlist_icon{background:url(icons.png?t=K1SC) no-repeat 0 -672px!important}.cke_button__maximize_icon{background:url(icons.png?t=K1SC) no-repeat 0 -696px!important}.cke_rtl .cke_button__pastefromword_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon{background:url(icons.png?t=K1SC) no-repeat 0 -720px!important}.cke_ltr .cke_button__pastefromword_icon{background:url(icons.png?t=K1SC) no-repeat 0 -744px!important}.cke_rtl .cke_button__pastetext_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon{background:url(icons.png?t=K1SC) no-repeat 0 -768px!important}.cke_ltr .cke_button__pastetext_icon{background:url(icons.png?t=K1SC) no-repeat 0 -792px!important}.cke_button__removeformat_icon{background:url(icons.png?t=K1SC) no-repeat 0 -816px!important}.cke_rtl .cke_button__showblocks_icon,.cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon{background:url(icons.png?t=K1SC) no-repeat 0 -840px!important}.cke_ltr .cke_button__showblocks_icon{background:url(icons.png?t=K1SC) no-repeat 0 -864px!important}.cke_rtl .cke_button__source_icon,.cke_mixed_dir_content .cke_rtl .cke_button__source_icon{background:url(icons.png?t=K1SC) no-repeat 0 -888px!important}.cke_ltr .cke_button__source_icon{background:url(icons.png?t=K1SC) no-repeat 0 -912px!important}.cke_rtl .cke_button__sourcedialog_icon,.cke_mixed_dir_content .cke_rtl .cke_button__sourcedialog_icon{background:url(icons.png?t=K1SC) no-repeat 0 -936px!important}.cke_ltr .cke_button__sourcedialog_icon{background:url(icons.png?t=K1SC) no-repeat 0 -960px!important}.cke_button__specialchar_icon{background:url(icons.png?t=K1SC) no-repeat 0 -984px!important}.cke_button__table_icon{background:url(icons.png?t=K1SC) no-repeat 0 -1008px!important}.cke_rtl .cke_button__redo_icon,.cke_mixed_dir_content .cke_rtl .cke_button__redo_icon{background:url(icons.png?t=K1SC) no-repeat 0 -1032px!important}.cke_ltr .cke_button__redo_icon{background:url(icons.png?t=K1SC) no-repeat 0 -1056px!important}.cke_rtl .cke_button__undo_icon,.cke_mixed_dir_content .cke_rtl .cke_button__undo_icon{background:url(icons.png?t=K1SC) no-repeat 0 -1080px!important}.cke_ltr .cke_button__undo_icon{background:url(icons.png?t=K1SC) no-repeat 0 -1104px!important}.cke_button__simplebox_icon{background:url(icons.png?t=K1SC) no-repeat 0 -1128px!important}.cke_hidpi .cke_button__about_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -0px!important;background-size:16px!important}.cke_hidpi .cke_button__bold_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -24px!important;background-size:16px!important}.cke_hidpi .cke_button__italic_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -48px!important;background-size:16px!important}.cke_hidpi .cke_button__strike_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -72px!important;background-size:16px!important}.cke_hidpi .cke_button__subscript_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -96px!important;background-size:16px!important}.cke_hidpi .cke_button__superscript_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -120px!important;background-size:16px!important}.cke_hidpi .cke_button__underline_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -144px!important;background-size:16px!important}.cke_hidpi .cke_button__blockquote_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -168px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__copy_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__copy_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -192px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__copy_icon,.cke_ltr.cke_hidpi .cke_button__copy_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -216px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__cut_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__cut_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -240px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__cut_icon,.cke_ltr.cke_hidpi .cke_button__cut_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -264px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__paste_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__paste_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -288px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__paste_icon,.cke_ltr.cke_hidpi .cke_button__paste_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -312px!important;background-size:16px!important}.cke_hidpi .cke_button__horizontalrule_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -336px!important;background-size:16px!important}.cke_hidpi .cke_button__image_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -360px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__indent_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -384px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__indent_icon,.cke_ltr.cke_hidpi .cke_button__indent_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -408px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__outdent_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -432px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__outdent_icon,.cke_ltr.cke_hidpi .cke_button__outdent_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -456px!important;background-size:16px!important}.cke_hidpi .cke_button__justifyblock_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -480px!important;background-size:16px!important}.cke_hidpi .cke_button__justifycenter_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -504px!important;background-size:16px!important}.cke_hidpi .cke_button__justifyleft_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -528px!important;background-size:16px!important}.cke_hidpi .cke_button__justifyright_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -552px!important;background-size:16px!important}.cke_hidpi .cke_button__language_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -576px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__bulletedlist_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -600px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__bulletedlist_icon,.cke_ltr.cke_hidpi .cke_button__bulletedlist_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -624px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__numberedlist_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -648px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__numberedlist_icon,.cke_ltr.cke_hidpi .cke_button__numberedlist_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -672px!important;background-size:16px!important}.cke_hidpi .cke_button__maximize_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -696px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__pastefromword_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -720px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__pastefromword_icon,.cke_ltr.cke_hidpi .cke_button__pastefromword_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -744px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__pastetext_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -768px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__pastetext_icon,.cke_ltr.cke_hidpi .cke_button__pastetext_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -792px!important;background-size:16px!important}.cke_hidpi .cke_button__removeformat_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -816px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__showblocks_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -840px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__showblocks_icon,.cke_ltr.cke_hidpi .cke_button__showblocks_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -864px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__source_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__source_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -888px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__source_icon,.cke_ltr.cke_hidpi .cke_button__source_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -912px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__sourcedialog_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__sourcedialog_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -936px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__sourcedialog_icon,.cke_ltr.cke_hidpi .cke_button__sourcedialog_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -960px!important;background-size:16px!important}.cke_hidpi .cke_button__specialchar_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -984px!important;background-size:16px!important}.cke_hidpi .cke_button__table_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -1008px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__redo_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__redo_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -1032px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__redo_icon,.cke_ltr.cke_hidpi .cke_button__redo_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -1056px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__undo_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__undo_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -1080px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__undo_icon,.cke_ltr.cke_hidpi .cke_button__undo_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -1104px!important;background-size:16px!important}.cke_hidpi .cke_button__simplebox_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -2256px!important}
\ No newline at end of file
diff --git a/web/core/assets/vendor/ckeditor/skins/moono-lisa/editor_gecko.css b/web/core/assets/vendor/ckeditor/skins/moono-lisa/editor_gecko.css
index 9f06cc4b19..c28f3b0820 100644
--- a/web/core/assets/vendor/ckeditor/skins/moono-lisa/editor_gecko.css
+++ b/web/core/assets/vendor/ckeditor/skins/moono-lisa/editor_gecko.css
@@ -2,4 +2,4 @@
 Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */
-.cke_reset{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;position:static;transition:none}.cke_reset_all,.cke_reset_all *,.cke_reset_all a,.cke_reset_all textarea{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;position:static;transition:none;border-collapse:collapse;font:normal normal normal 12px Arial,Helvetica,Tahoma,Verdana,Sans-Serif;color:#000;text-align:left;white-space:nowrap;cursor:auto;float:none}.cke_reset_all .cke_rtl *{text-align:right}.cke_reset_all iframe{vertical-align:inherit}.cke_reset_all textarea{white-space:pre-wrap}.cke_reset_all textarea,.cke_reset_all input[type="text"],.cke_reset_all input[type="password"]{cursor:text}.cke_reset_all textarea[disabled],.cke_reset_all input[type="text"][disabled],.cke_reset_all input[type="password"][disabled]{cursor:default}.cke_reset_all fieldset{padding:10px;border:2px groove #e0dfe3}.cke_reset_all select{box-sizing:border-box}.cke_reset_all table{table-layout:auto}.cke_chrome{display:block;border:1px solid #d1d1d1;padding:0}.cke_inner{display:block;background:#fff;padding:0;-webkit-touch-callout:none}.cke_float{border:0}.cke_float .cke_inner{padding-bottom:0}.cke_top,.cke_contents,.cke_bottom{display:block;overflow:hidden}.cke_top{border-bottom:1px solid #d1d1d1;background:#f8f8f8;padding:6px 8px 2px;white-space:normal}.cke_float .cke_top{border:1px solid #d1d1d1}.cke_bottom{padding:6px 8px 2px;position:relative;border-top:1px solid #d1d1d1;background:#f8f8f8}.cke_browser_ios .cke_contents{overflow-y:auto;-webkit-overflow-scrolling:touch}.cke_resizer{width:0;height:0;overflow:hidden;border-width:10px 10px 0 0;border-color:transparent #bcbcbc transparent transparent;border-style:dashed solid dashed dashed;font-size:0;vertical-align:bottom;margin-top:6px;margin-bottom:2px}.cke_hc .cke_resizer{font-size:15px;width:auto;height:auto;border-width:0}.cke_resizer_ltr{cursor:se-resize;float:right;margin-right:-4px}.cke_resizer_rtl{border-width:10px 0 0 10px;border-color:transparent transparent transparent #bcbcbc;border-style:dashed dashed dashed solid;cursor:sw-resize;float:left;margin-left:-4px;right:auto}.cke_wysiwyg_div{display:block;height:100%;overflow:auto;padding:0 8px;outline-style:none;box-sizing:border-box}.cke_panel{visibility:visible;width:120px;height:100px;overflow:hidden;background-color:#fff;border:1px solid #d1d1d1}.cke_menu_panel{padding:0;margin:0}.cke_combopanel{width:150px;height:170px}.cke_panel_frame{width:100%;height:100%;font-size:12px;overflow:auto;overflow-x:hidden}.cke_panel_container{overflow-y:auto;overflow-x:hidden}.cke_panel_block:focus{outline:0}.cke_panel_list{margin:0;padding:0;list-style-type:none;white-space:nowrap}.cke_panel_listItem{margin:0;padding:0}.cke_panel_listItem a{padding:6px 7px;display:block;color:inherit!important;text-decoration:none;overflow:hidden;text-overflow:ellipsis}.cke_hc .cke_panel_listItem a{border-style:none}.cke_panel_listItem.cke_selected a,.cke_panel_listItem a:hover,.cke_panel_listItem a:focus,.cke_panel_listItem a:active{background-color:#e9e9e9}.cke_panel_listItem a:focus{outline:1px dotted #000}.cke_hc .cke_panel_listItem a:hover,.cke_hc .cke_panel_listItem a:focus,.cke_hc .cke_panel_listItem a:active{border:2px solid;padding:4px 5px}.cke_panel_listItem p,.cke_panel_listItem h1,.cke_panel_listItem h2,.cke_panel_listItem h3,.cke_panel_listItem h4,.cke_panel_listItem h5,.cke_panel_listItem h6,.cke_panel_listItem pre{margin-top:0;margin-bottom:0}.cke_panel_grouptitle{cursor:default;font-size:11px;font-weight:bold;white-space:nowrap;margin:0;padding:6px 6px 7px 6px;color:#484848;border-bottom:1px solid #d1d1d1;background:#f8f8f8}.cke_colorblock{padding:10px;font-size:11px;font-family:'Microsoft Sans Serif',Tahoma,Arial,Verdana,Sans-Serif}.cke_colorblock,.cke_colorblock a{text-decoration:none;color:#000}a.cke_colorbox{padding:2px;float:left;width:20px;height:20px}.cke_rtl a.cke_colorbox{float:right}a:hover.cke_colorbox,a:focus.cke_colorbox,a:active.cke_colorbox{outline:0;padding:0;border:2px solid #139ff7}a:hover.cke_colorbox{border-color:#bcbcbc}span.cke_colorbox{width:20px;height:20px;float:left}.cke_rtl span.cke_colorbox{float:right}a.cke_colorauto,a.cke_colormore{border:#fff 1px solid;padding:3px;display:block;cursor:pointer}a.cke_colorauto{padding:0;border:1px solid transparent;margin-bottom:6px;height:26px;line-height:26px}a.cke_colormore{margin-top:10px;height:20px;line-height:19px}a:hover.cke_colorauto,a:hover.cke_colormore,a:focus.cke_colorauto,a:focus.cke_colormore,a:active.cke_colorauto,a:active.cke_colormore{outline:0;border:#139ff7 1px solid;background-color:#f8f8f8}a:hover.cke_colorauto,a:hover.cke_colormore{border-color:#bcbcbc}.cke_colorauto span.cke_colorbox{width:18px;height:18px;border:1px solid #808080;margin-left:1px;margin-top:3px}.cke_rtl .cke_colorauto span.cke_colorbox{margin-left:0;margin-right:1px}span.cke_colorbox[style*="#ffffff"],span.cke_colorbox[style*="#FFFFFF"],span.cke_colorbox[style="background-color:#fff"],span.cke_colorbox[style="background-color:#FFF"],span.cke_colorbox[style*="rgb(255,255,255)"],span.cke_colorbox[style*="rgb(255, 255, 255)"]{border:1px solid #808080;width:18px;height:18px}.cke_toolbar{float:left}.cke_rtl .cke_toolbar{float:right}.cke_toolgroup{border:0;float:left;margin:1px 2px 6px 0;padding-right:3px}.cke_rtl .cke_toolgroup{float:right;margin:1px 0 6px 2px;padding-left:3px;padding-right:0}.cke_hc .cke_toolgroup{margin-right:5px;margin-bottom:5px}.cke_hc.cke_rtl .cke_toolgroup{margin-right:0;margin-left:5px}a.cke_button{display:inline-block;height:18px;padding:4px 6px;outline:0;cursor:default;float:left;border:0;position:relative}a.cke_button_expandable{padding:4px 5px}.cke_rtl a.cke_button{float:right}.cke_hc a.cke_button{border:1px solid black;padding:3px 5px;margin:0 3px 5px 0}.cke_hc.cke_rtl a.cke_button{margin:0 0 5px 3px}a.cke_button_on{background:#fff;border:1px #bcbcbc solid;padding:3px 5px}a.cke_button_expandable.cke_button_on{padding:3px 4px}a.cke_button_off:hover,a.cke_button_off:focus,a.cke_button_off:active{background:#e5e5e5;border:1px #bcbcbc solid;padding:3px 5px}a.cke_button_expandable.cke_button_off:hover,a.cke_button_expandable.cke_button_off:focus,a.cke_button_expandable.cke_button_off:active{padding:3px 4px}.cke_hc a.cke_button_on,.cke_hc a.cke_button_off:hover,.cke_hc a.cke_button_off:focus,.cke_hc a.cke_button_off:active{background:#e5e5e5;border:3px solid #000;padding:1px 3px}a.cke_button_disabled:hover,a.cke_button_disabled:focus,a.cke_button_disabled:active{border:0;padding:4px 6px;background-color:transparent}a.cke_button_expandable.cke_button_disabled:hover,a.cke_button_expandable.cke_button_disabled:active{padding:4px 5px}a.cke_button_disabled:focus{border:1px #bcbcbc solid;padding:3px 5px}a.cke_button_expandable.cke_button_disabled:focus{padding:3px 4px}.cke_hc a.cke_button_disabled:hover,.cke_hc a.cke_button_disabled:focus,.cke_hc a.cke_button_disabled:active{border:1px solid #acacac;padding:3px 5px;margin:0 3px 5px 0}.cke_hc a.cke_button_disabled:focus{border:3px solid #000;padding:1px 3px}.cke_hc.cke_rtl a.cke_button_disabled:hover,.cke_hc.cke_rtl a.cke_button_disabled:focus,.cke_hc.cke_rtl a.cke_button_disabled:active{margin:0 0 5px 3px}a.cke_button_disabled .cke_button_icon,a.cke_button_disabled .cke_button_arrow{opacity:.3}.cke_hc a.cke_button_disabled{border-color:#acacac}.cke_hc a.cke_button_disabled .cke_button_icon,.cke_hc a.cke_button_disabled .cke_button_label{opacity:.5}.cke_toolgroup a.cke_button:last-child:after,.cke_toolgroup a.cke_button.cke_button_disabled:hover:last-child:after{content:"";position:absolute;height:18px;width:0;border-right:1px solid #bcbcbc;margin-top:4px;top:0;right:-3px}.cke_rtl .cke_toolgroup a.cke_button:last-child:after,.cke_rtl .cke_toolgroup a.cke_button.cke_button_disabled:hover:last-child:after{border-right:0;right:auto;border-left:1px solid #bcbcbc;top:0;left:-3px}.cke_hc .cke_toolgroup a.cke_button:last-child:after,.cke_hc .cke_toolgroup a.cke_button.cke_button_disabled:last-child:after,.cke_hc .cke_toolgroup a.cke_button.cke_button_disabled:hover:last-child:after{border-color:#000;top:0;right:-7px}.cke_hc.cke_rtl .cke_toolgroup a.cke_button:last-child:after,.cke_hc.cke_rtl .cke_toolgroup a.cke_button.cke_button_disabled:last-child:after,.cke_hc.cke_rtl .cke_toolgroup a.cke_button.cke_button_disabled:hover:last-child:after{top:0;right:auto;left:-7px}.cke_toolgroup a.cke_button:hover:last-child:after,.cke_toolgroup a.cke_button:focus:last-child:after,.cke_toolgroup a.cke_button.cke_button_on:last-child:after{top:-1px;right:-4px}.cke_rtl .cke_toolgroup a.cke_button:hover:last-child:after,.cke_rtl .cke_toolgroup a.cke_button:focus:last-child:after,.cke_rtl .cke_toolgroup a.cke_button.cke_button_on:last-child:after{top:-1px;right:auto;left:-4px}.cke_hc .cke_toolgroup a.cke_button:hover:last-child:after,.cke_hc .cke_toolgroup a.cke_button.cke_button_on:last-child:after{top:-2px;right:-9px}.cke_hc.cke_rtl .cke_toolgroup a.cke_button:hover:last-child:after,.cke_hc.cke_rtl .cke_toolgroup a.cke_button.cke_button_on:last-child:after{top:-2px;right:auto;left:-9px}.cke_toolbar.cke_toolbar_last .cke_toolgroup a.cke_button:last-child:after{content:none;border:0;width:0;height:0}.cke_button_icon{cursor:inherit;background-repeat:no-repeat;margin-top:1px;width:16px;height:16px;float:left;display:inline-block}.cke_rtl .cke_button_icon{float:right}.cke_hc .cke_button_icon{display:none}.cke_button_label{display:none;padding-left:3px;margin-top:1px;line-height:17px;vertical-align:middle;float:left;cursor:default;color:#484848}.cke_rtl .cke_button_label{padding-right:3px;padding-left:0;float:right}.cke_hc .cke_button_label{padding:0;display:inline-block;font-size:12px}.cke_button_arrow{display:inline-block;margin:8px 0 0 3px;width:0;height:0;cursor:default;vertical-align:top;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #484848}.cke_rtl .cke_button_arrow{margin-right:5px;margin-left:0}.cke_hc .cke_button_arrow{font-size:10px;margin:3px 0 0 3px;width:auto;border:0}.cke_toolbar_separator{float:left;background-color:#bcbcbc;margin:4px 2px 0 2px;height:18px;width:1px}.cke_rtl .cke_toolbar_separator{float:right}.cke_hc .cke_toolbar_separator{background-color:#000;margin-left:2px;margin-right:5px;margin-bottom:9px}.cke_hc.cke_rtl .cke_toolbar_separator{margin-left:5px;margin-right:2px}.cke_toolbar_break{display:block;clear:left}.cke_rtl .cke_toolbar_break{clear:right}a.cke_toolbox_collapser{width:12px;height:11px;float:right;margin:11px 0 0;font-size:0;cursor:default;text-align:center;border:1px solid #bcbcbc}.cke_rtl .cke_toolbox_collapser{float:left}.cke_toolbox_collapser:hover{background:#e5e5e5}.cke_toolbox_collapser.cke_toolbox_collapser_min{margin:0 2px 4px}.cke_toolbox_collapser .cke_arrow{display:inline-block;height:0;width:0;font-size:0;margin-top:1px;border:3px solid transparent;border-bottom-color:#484848}.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow{margin-top:4px;border-bottom-color:transparent;border-top-color:#484848}.cke_hc .cke_toolbox_collapser .cke_arrow{font-size:8px;width:auto;border:0;margin-top:0}.cke_menuitem span{cursor:default}.cke_menubutton{display:block}.cke_hc .cke_menubutton{padding:2px}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#e9e9e9;display:block;outline:1px dotted}.cke_menubutton:hover{outline:0}.cke_hc .cke_menubutton:hover,.cke_hc .cke_menubutton:focus,.cke_hc .cke_menubutton:active{border:2px solid;padding:0}.cke_menubutton_disabled:hover,.cke_menubutton_disabled:focus,.cke_menubutton_disabled:active{background-color:transparent;outline:0}.cke_menubutton_inner{display:table-row}.cke_menubutton_icon,.cke_menubutton_label,.cke_menuarrow{display:table-cell}.cke_menubutton_icon{background-color:#f8f8f8;padding:6px 4px}.cke_hc .cke_menubutton_icon{height:16px;width:0;padding:4px 0}.cke_menubutton:hover .cke_menubutton_icon,.cke_menubutton:focus .cke_menubutton_icon,.cke_menubutton:active .cke_menubutton_icon{background-color:#e9e9e9}.cke_menubutton_disabled:hover .cke_menubutton_icon,.cke_menubutton_disabled:focus .cke_menubutton_icon,.cke_menubutton_disabled:active .cke_menubutton_icon{background-color:#f8f8f8;outline:0}.cke_menuitem .cke_menubutton_on{background-color:#e9e9e9;border:1px solid #dedede;outline:0}.cke_menubutton_on .cke_menubutton_icon{padding-right:3px;background-color:#e9e9e9}.cke_menubutton_label{padding:0 5px;background-color:transparent;width:100%;vertical-align:middle}.cke_menubutton_shortcut{color:#979797}.cke_menubutton_disabled .cke_menubutton_label{opacity:.3;filter:alpha(opacity=30)}.cke_panel_frame .cke_menubutton_label{display:none}.cke_menuseparator{background-color:#d1d1d1;height:1px}.cke_menuarrow{background:transparent url(images/arrow.png) no-repeat 0 10px;padding:0 5px}.cke_rtl .cke_menuarrow{background-position:5px -13px;background-repeat:no-repeat}.cke_hc .cke_menuarrow{background-image:none}.cke_menuarrow span{display:none}.cke_hc .cke_menuarrow span{vertical-align:middle;display:inline}.cke_combo{display:inline-block;float:left;position:relative;margin-bottom:5px}.cke_rtl .cke_combo{float:right}.cke_hc .cke_combo{margin-top:1px;margin-bottom:10px}.cke_combo:after{content:"";position:absolute;height:18px;width:0;border-right:1px solid #bcbcbc;margin-top:5px;top:0;right:0}.cke_rtl .cke_combo:after{border-right:0;border-left:1px solid #bcbcbc;right:auto;left:0}.cke_hc .cke_combo:after{border-color:#000}a.cke_combo_button{cursor:default;display:inline-block;float:left;margin:0;padding:1px}.cke_rtl a.cke_combo_button{float:right}.cke_hc a.cke_combo_button{padding:4px}.cke_combo_on a.cke_combo_button,.cke_combo_off a.cke_combo_button:hover,.cke_combo_off a.cke_combo_button:focus,.cke_combo_off a.cke_combo_button:active{background:#e5e5e5;border:1px solid #bcbcbc;padding:0 0 0 1px;margin-left:-1px}.cke_combo_off a.cke_combo_button:focus{outline:0}.cke_combo_on a.cke_combo_button,.cke_combo_off a.cke_combo_button:active{background:#fff}.cke_rtl .cke_combo_on a.cke_combo_button,.cke_rtl .cke_combo_off a.cke_combo_button:hover,.cke_rtl .cke_combo_off a.cke_combo_button:focus,.cke_rtl .cke_combo_off a.cke_combo_button:active{padding:0 1px 0 0;margin-left:0;margin-right:-1px}.cke_hc .cke_combo_on a.cke_combo_button,.cke_hc .cke_combo_off a.cke_combo_button:hover,.cke_hc .cke_combo_off a.cke_combo_button:focus,.cke_hc .cke_combo_off a.cke_combo_button:active{border:3px solid #000;padding:1px 1px 1px 2px}.cke_hc.cke_rtl .cke_combo_on a.cke_combo_button,.cke_hc.cke_rtl .cke_combo_off a.cke_combo_button:hover,.cke_hc.cke_rtl .cke_combo_off a.cke_combo_button:focus,.cke_hc.cke_rtl .cke_combo_off a.cke_combo_button:active{padding:1px 2px 1px 1px}.cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_toolbar_start+.cke_combo_off a.cke_combo_button:active{padding:0 0 0 3px;margin-left:-3px}.cke_rtl .cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_rtl .cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_rtl .cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_rtl .cke_toolbar_start+.cke_combo_off a.cke_combo_button:active{padding:0 3px 0 0;margin-left:0;margin-right:-3px}.cke_hc .cke_toolbar>.cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_hc .cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_hc .cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_hc .cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:active{padding:1px 1px 1px 7px;margin-left:-6px}.cke_hc.cke_rtl .cke_toolbar>.cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_hc.cke_rtl .cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_hc.cke_rtl .cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_hc.cke_rtl .cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:active{padding:1px 7px 1px 1px;margin-left:0;margin-right:-6px}.cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:active,.cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:active{padding:0;margin:0}.cke_hc .cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_hc .cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_hc .cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_hc .cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:active,.cke_hc .cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_hc .cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_hc .cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_hc .cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:active{padding:1px;margin:0}.cke_toolbar .cke_combo+.cke_toolbar_end,.cke_toolbar .cke_combo+.cke_toolgroup{margin-right:0;margin-left:2px}.cke_rtl .cke_toolbar .cke_combo+.cke_toolbar_end,.cke_rtl .cke_toolbar .cke_combo+.cke_toolgroup{margin-left:0;margin-right:2px}.cke_hc .cke_toolbar .cke_combo+.cke_toolbar_end,.cke_hc .cke_toolbar .cke_combo+.cke_toolgroup{margin-left:5px}.cke_hc.cke_rtl .cke_toolbar .cke_combo+.cke_toolbar_end,.cke_hc.cke_rtl .cke_toolbar .cke_combo+.cke_toolgroup{margin-left:0;margin-right:5px}.cke_toolbar.cke_toolbar_last .cke_combo:nth-last-child(-n+2):after{content:none;border:0;width:0;height:0}.cke_combo_text{line-height:26px;padding-left:10px;text-overflow:ellipsis;overflow:hidden;float:left;cursor:default;color:#484848;width:60px}.cke_rtl .cke_combo_text{float:right;text-align:right;padding-left:0;padding-right:10px}.cke_hc .cke_combo_text{line-height:18px;font-size:12px}.cke_combo_open{cursor:default;display:inline-block;font-size:0;height:19px;line-height:17px;margin:1px 10px 1px;width:5px}.cke_hc .cke_combo_open{height:12px}.cke_combo_arrow{cursor:default;margin:11px 0 0;float:left;height:0;width:0;font-size:0;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #484848}.cke_hc .cke_combo_arrow{font-size:10px;width:auto;border:0;margin-top:3px}.cke_combo_label{display:none;float:left;line-height:26px;vertical-align:top;margin-right:5px}.cke_rtl .cke_combo_label{float:right;margin-left:5px;margin-right:0}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{opacity:.3}.cke_path{float:left;margin:-2px 0 2px}a.cke_path_item,span.cke_path_empty{display:inline-block;float:left;padding:3px 4px;margin-right:2px;cursor:default;text-decoration:none;outline:0;border:0;color:#484848;font-weight:bold;font-size:11px}.cke_rtl .cke_path,.cke_rtl .cke_path_item,.cke_rtl .cke_path_empty{float:right}a.cke_path_item:hover,a.cke_path_item:focus,a.cke_path_item:active{background-color:#e5e5e5}.cke_hc a.cke_path_item:hover,.cke_hc a.cke_path_item:focus,.cke_hc a.cke_path_item:active{border:2px solid;padding:1px 2px}.cke_button__source_label,.cke_button__sourcedialog_label{display:inline}.cke_combopanel__fontsize{width:135px}textarea.cke_source{font-family:'Courier New',Monospace;font-size:small;background-color:#fff;white-space:pre-wrap;border:0;padding:0;margin:0;display:block}.cke_wysiwyg_frame,.cke_wysiwyg_div{background-color:#fff}.cke_notifications_area{pointer-events:none}.cke_notification{pointer-events:auto;position:relative;margin:10px;width:300px;color:white;text-align:center;opacity:.95;filter:alpha(opacity = 95);-webkit-animation:fadeIn .7s;animation:fadeIn .7s}.cke_notification_message a{color:#12306f}@-webkit-keyframes fadeIn{from{opacity:.4}to{opacity:.95}}@keyframes fadeIn{from{opacity:.4}to{opacity:.95}}.cke_notification_success{background:#72b572;border:1px solid #63a563}.cke_notification_warning{background:#c83939;border:1px solid #902b2b}.cke_notification_info{background:#2e9ad0;border:1px solid #0f74a8}.cke_notification_info span.cke_notification_progress{background-color:#0f74a8;display:block;padding:0;margin:0;height:100%;overflow:hidden;position:absolute;z-index:1}.cke_notification_message{position:relative;margin:4px 23px 3px;font-family:Arial,Helvetica,sans-serif;font-size:12px;line-height:18px;z-index:4;text-overflow:ellipsis;overflow:hidden}.cke_notification_close{background-image:url(images/close.png);background-repeat:no-repeat;background-position:50%;position:absolute;cursor:pointer;text-align:center;height:20px;width:20px;top:1px;right:1px;padding:0;margin:0;z-index:5;opacity:.6;filter:alpha(opacity = 60)}.cke_notification_close:hover{opacity:1;filter:alpha(opacity = 100)}.cke_notification_close span{display:none}.cke_notification_warning a.cke_notification_close{opacity:.8;filter:alpha(opacity = 80)}.cke_notification_warning a.cke_notification_close:hover{opacity:1;filter:alpha(opacity = 100)}.cke_chrome{visibility:inherit}.cke_voice_label{display:none}legend.cke_voice_label{display:none}.cke_button__about_icon{background:url(icons.png?t=JA5A) no-repeat 0 -0px!important}.cke_button__bold_icon{background:url(icons.png?t=JA5A) no-repeat 0 -24px!important}.cke_button__italic_icon{background:url(icons.png?t=JA5A) no-repeat 0 -48px!important}.cke_button__strike_icon{background:url(icons.png?t=JA5A) no-repeat 0 -72px!important}.cke_button__subscript_icon{background:url(icons.png?t=JA5A) no-repeat 0 -96px!important}.cke_button__superscript_icon{background:url(icons.png?t=JA5A) no-repeat 0 -120px!important}.cke_button__underline_icon{background:url(icons.png?t=JA5A) no-repeat 0 -144px!important}.cke_button__blockquote_icon{background:url(icons.png?t=JA5A) no-repeat 0 -168px!important}.cke_rtl .cke_button__copy_icon,.cke_mixed_dir_content .cke_rtl .cke_button__copy_icon{background:url(icons.png?t=JA5A) no-repeat 0 -192px!important}.cke_ltr .cke_button__copy_icon{background:url(icons.png?t=JA5A) no-repeat 0 -216px!important}.cke_rtl .cke_button__cut_icon,.cke_mixed_dir_content .cke_rtl .cke_button__cut_icon{background:url(icons.png?t=JA5A) no-repeat 0 -240px!important}.cke_ltr .cke_button__cut_icon{background:url(icons.png?t=JA5A) no-repeat 0 -264px!important}.cke_rtl .cke_button__paste_icon,.cke_mixed_dir_content .cke_rtl .cke_button__paste_icon{background:url(icons.png?t=JA5A) no-repeat 0 -288px!important}.cke_ltr .cke_button__paste_icon{background:url(icons.png?t=JA5A) no-repeat 0 -312px!important}.cke_button__horizontalrule_icon{background:url(icons.png?t=JA5A) no-repeat 0 -336px!important}.cke_button__image_icon{background:url(icons.png?t=JA5A) no-repeat 0 -360px!important}.cke_rtl .cke_button__indent_icon,.cke_mixed_dir_content .cke_rtl .cke_button__indent_icon{background:url(icons.png?t=JA5A) no-repeat 0 -384px!important}.cke_ltr .cke_button__indent_icon{background:url(icons.png?t=JA5A) no-repeat 0 -408px!important}.cke_rtl .cke_button__outdent_icon,.cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon{background:url(icons.png?t=JA5A) no-repeat 0 -432px!important}.cke_ltr .cke_button__outdent_icon{background:url(icons.png?t=JA5A) no-repeat 0 -456px!important}.cke_button__justifyblock_icon{background:url(icons.png?t=JA5A) no-repeat 0 -480px!important}.cke_button__justifycenter_icon{background:url(icons.png?t=JA5A) no-repeat 0 -504px!important}.cke_button__justifyleft_icon{background:url(icons.png?t=JA5A) no-repeat 0 -528px!important}.cke_button__justifyright_icon{background:url(icons.png?t=JA5A) no-repeat 0 -552px!important}.cke_button__language_icon{background:url(icons.png?t=JA5A) no-repeat 0 -576px!important}.cke_rtl .cke_button__bulletedlist_icon,.cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon{background:url(icons.png?t=JA5A) no-repeat 0 -600px!important}.cke_ltr .cke_button__bulletedlist_icon{background:url(icons.png?t=JA5A) no-repeat 0 -624px!important}.cke_rtl .cke_button__numberedlist_icon,.cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon{background:url(icons.png?t=JA5A) no-repeat 0 -648px!important}.cke_ltr .cke_button__numberedlist_icon{background:url(icons.png?t=JA5A) no-repeat 0 -672px!important}.cke_button__maximize_icon{background:url(icons.png?t=JA5A) no-repeat 0 -696px!important}.cke_rtl .cke_button__pastefromword_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon{background:url(icons.png?t=JA5A) no-repeat 0 -720px!important}.cke_ltr .cke_button__pastefromword_icon{background:url(icons.png?t=JA5A) no-repeat 0 -744px!important}.cke_rtl .cke_button__pastetext_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon{background:url(icons.png?t=JA5A) no-repeat 0 -768px!important}.cke_ltr .cke_button__pastetext_icon{background:url(icons.png?t=JA5A) no-repeat 0 -792px!important}.cke_button__removeformat_icon{background:url(icons.png?t=JA5A) no-repeat 0 -816px!important}.cke_rtl .cke_button__showblocks_icon,.cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon{background:url(icons.png?t=JA5A) no-repeat 0 -840px!important}.cke_ltr .cke_button__showblocks_icon{background:url(icons.png?t=JA5A) no-repeat 0 -864px!important}.cke_rtl .cke_button__source_icon,.cke_mixed_dir_content .cke_rtl .cke_button__source_icon{background:url(icons.png?t=JA5A) no-repeat 0 -888px!important}.cke_ltr .cke_button__source_icon{background:url(icons.png?t=JA5A) no-repeat 0 -912px!important}.cke_rtl .cke_button__sourcedialog_icon,.cke_mixed_dir_content .cke_rtl .cke_button__sourcedialog_icon{background:url(icons.png?t=JA5A) no-repeat 0 -936px!important}.cke_ltr .cke_button__sourcedialog_icon{background:url(icons.png?t=JA5A) no-repeat 0 -960px!important}.cke_button__specialchar_icon{background:url(icons.png?t=JA5A) no-repeat 0 -984px!important}.cke_button__table_icon{background:url(icons.png?t=JA5A) no-repeat 0 -1008px!important}.cke_rtl .cke_button__redo_icon,.cke_mixed_dir_content .cke_rtl .cke_button__redo_icon{background:url(icons.png?t=JA5A) no-repeat 0 -1032px!important}.cke_ltr .cke_button__redo_icon{background:url(icons.png?t=JA5A) no-repeat 0 -1056px!important}.cke_rtl .cke_button__undo_icon,.cke_mixed_dir_content .cke_rtl .cke_button__undo_icon{background:url(icons.png?t=JA5A) no-repeat 0 -1080px!important}.cke_ltr .cke_button__undo_icon{background:url(icons.png?t=JA5A) no-repeat 0 -1104px!important}.cke_button__simplebox_icon{background:url(icons.png?t=JA5A) no-repeat 0 -1128px!important}.cke_hidpi .cke_button__about_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -0px!important;background-size:16px!important}.cke_hidpi .cke_button__bold_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -24px!important;background-size:16px!important}.cke_hidpi .cke_button__italic_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -48px!important;background-size:16px!important}.cke_hidpi .cke_button__strike_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -72px!important;background-size:16px!important}.cke_hidpi .cke_button__subscript_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -96px!important;background-size:16px!important}.cke_hidpi .cke_button__superscript_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -120px!important;background-size:16px!important}.cke_hidpi .cke_button__underline_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -144px!important;background-size:16px!important}.cke_hidpi .cke_button__blockquote_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -168px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__copy_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__copy_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -192px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__copy_icon,.cke_ltr.cke_hidpi .cke_button__copy_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -216px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__cut_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__cut_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -240px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__cut_icon,.cke_ltr.cke_hidpi .cke_button__cut_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -264px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__paste_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__paste_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -288px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__paste_icon,.cke_ltr.cke_hidpi .cke_button__paste_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -312px!important;background-size:16px!important}.cke_hidpi .cke_button__horizontalrule_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -336px!important;background-size:16px!important}.cke_hidpi .cke_button__image_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -360px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__indent_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -384px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__indent_icon,.cke_ltr.cke_hidpi .cke_button__indent_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -408px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__outdent_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -432px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__outdent_icon,.cke_ltr.cke_hidpi .cke_button__outdent_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -456px!important;background-size:16px!important}.cke_hidpi .cke_button__justifyblock_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -480px!important;background-size:16px!important}.cke_hidpi .cke_button__justifycenter_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -504px!important;background-size:16px!important}.cke_hidpi .cke_button__justifyleft_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -528px!important;background-size:16px!important}.cke_hidpi .cke_button__justifyright_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -552px!important;background-size:16px!important}.cke_hidpi .cke_button__language_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -576px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__bulletedlist_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -600px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__bulletedlist_icon,.cke_ltr.cke_hidpi .cke_button__bulletedlist_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -624px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__numberedlist_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -648px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__numberedlist_icon,.cke_ltr.cke_hidpi .cke_button__numberedlist_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -672px!important;background-size:16px!important}.cke_hidpi .cke_button__maximize_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -696px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__pastefromword_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -720px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__pastefromword_icon,.cke_ltr.cke_hidpi .cke_button__pastefromword_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -744px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__pastetext_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -768px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__pastetext_icon,.cke_ltr.cke_hidpi .cke_button__pastetext_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -792px!important;background-size:16px!important}.cke_hidpi .cke_button__removeformat_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -816px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__showblocks_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -840px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__showblocks_icon,.cke_ltr.cke_hidpi .cke_button__showblocks_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -864px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__source_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__source_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -888px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__source_icon,.cke_ltr.cke_hidpi .cke_button__source_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -912px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__sourcedialog_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__sourcedialog_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -936px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__sourcedialog_icon,.cke_ltr.cke_hidpi .cke_button__sourcedialog_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -960px!important;background-size:16px!important}.cke_hidpi .cke_button__specialchar_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -984px!important;background-size:16px!important}.cke_hidpi .cke_button__table_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -1008px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__redo_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__redo_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -1032px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__redo_icon,.cke_ltr.cke_hidpi .cke_button__redo_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -1056px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__undo_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__undo_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -1080px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__undo_icon,.cke_ltr.cke_hidpi .cke_button__undo_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -1104px!important;background-size:16px!important}.cke_hidpi .cke_button__simplebox_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -2256px!important}.cke_bottom{padding-bottom:3px}.cke_combo_text{margin-bottom:-1px;margin-top:1px}
\ No newline at end of file
+.cke_reset{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;position:static;transition:none}.cke_reset_all,.cke_reset_all *,.cke_reset_all a,.cke_reset_all textarea{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;position:static;transition:none;border-collapse:collapse;font:normal normal normal 12px Arial,Helvetica,Tahoma,Verdana,Sans-Serif;color:#000;text-align:left;white-space:nowrap;cursor:auto;float:none}.cke_reset_all .cke_rtl *{text-align:right}.cke_reset_all iframe{vertical-align:inherit}.cke_reset_all textarea{white-space:pre-wrap}.cke_reset_all textarea,.cke_reset_all input[type="text"],.cke_reset_all input[type="password"]{cursor:text}.cke_reset_all textarea[disabled],.cke_reset_all input[type="text"][disabled],.cke_reset_all input[type="password"][disabled]{cursor:default}.cke_reset_all fieldset{padding:10px;border:2px groove #e0dfe3}.cke_reset_all select{box-sizing:border-box}.cke_reset_all table{table-layout:auto}.cke_chrome{display:block;border:1px solid #d1d1d1;padding:0}.cke_inner{display:block;background:#fff;padding:0;-webkit-touch-callout:none}.cke_float{border:0}.cke_float .cke_inner{padding-bottom:0}.cke_top,.cke_contents,.cke_bottom{display:block;overflow:hidden}.cke_top{border-bottom:1px solid #d1d1d1;background:#f8f8f8;padding:6px 8px 2px;white-space:normal}.cke_float .cke_top{border:1px solid #d1d1d1}.cke_bottom{padding:6px 8px 2px;position:relative;border-top:1px solid #d1d1d1;background:#f8f8f8}.cke_browser_ios .cke_contents{overflow-y:auto;-webkit-overflow-scrolling:touch}.cke_resizer{width:0;height:0;overflow:hidden;border-width:10px 10px 0 0;border-color:transparent #bcbcbc transparent transparent;border-style:dashed solid dashed dashed;font-size:0;vertical-align:bottom;margin-top:6px;margin-bottom:2px}.cke_hc .cke_resizer{font-size:15px;width:auto;height:auto;border-width:0}.cke_resizer_ltr{cursor:se-resize;float:right;margin-right:-4px}.cke_resizer_rtl{border-width:10px 0 0 10px;border-color:transparent transparent transparent #bcbcbc;border-style:dashed dashed dashed solid;cursor:sw-resize;float:left;margin-left:-4px;right:auto}.cke_wysiwyg_div{display:block;height:100%;overflow:auto;padding:0 8px;outline-style:none;box-sizing:border-box}.cke_panel{visibility:visible;width:120px;height:100px;overflow:hidden;background-color:#fff;border:1px solid #d1d1d1}.cke_menu_panel{padding:0;margin:0}.cke_combopanel{width:150px;height:170px}.cke_panel_frame{width:100%;height:100%;font-size:12px;overflow:auto;overflow-x:hidden}.cke_panel_container{overflow-y:auto;overflow-x:hidden}.cke_panel_block:focus{outline:0}.cke_panel_list{margin:0;padding:0;list-style-type:none;white-space:nowrap}.cke_panel_listItem{margin:0;padding:0}.cke_panel_listItem a{padding:6px 7px;display:block;color:inherit!important;text-decoration:none;overflow:hidden;text-overflow:ellipsis}.cke_hc .cke_panel_listItem a{border-style:none}.cke_panel_listItem.cke_selected a,.cke_panel_listItem a:hover,.cke_panel_listItem a:focus,.cke_panel_listItem a:active{background-color:#e9e9e9}.cke_panel_listItem a:focus{outline:1px dotted #000}.cke_hc .cke_panel_listItem a:hover,.cke_hc .cke_panel_listItem a:focus,.cke_hc .cke_panel_listItem a:active{border:2px solid;padding:4px 5px}.cke_panel_listItem p,.cke_panel_listItem h1,.cke_panel_listItem h2,.cke_panel_listItem h3,.cke_panel_listItem h4,.cke_panel_listItem h5,.cke_panel_listItem h6,.cke_panel_listItem pre{margin-top:0;margin-bottom:0}.cke_panel_grouptitle{cursor:default;font-size:11px;font-weight:bold;white-space:nowrap;margin:0;padding:6px 6px 7px 6px;color:#484848;border-bottom:1px solid #d1d1d1;background:#f8f8f8}.cke_colorblock{padding:10px;font-size:11px;font-family:'Microsoft Sans Serif',Tahoma,Arial,Verdana,Sans-Serif}.cke_colorblock,.cke_colorblock a{text-decoration:none;color:#000}a.cke_colorbox{padding:2px;float:left;width:20px;height:20px}.cke_rtl a.cke_colorbox{float:right}a:hover.cke_colorbox,a:focus.cke_colorbox,a:active.cke_colorbox{outline:0;padding:0;border:2px solid #139ff7}a:hover.cke_colorbox{border-color:#bcbcbc}span.cke_colorbox{width:20px;height:20px;float:left}.cke_rtl span.cke_colorbox{float:right}a.cke_colorauto,a.cke_colormore{border:#fff 1px solid;padding:3px;display:block;cursor:pointer}a.cke_colorauto{padding:0;border:1px solid transparent;margin-bottom:6px;height:26px;line-height:26px}a.cke_colormore{margin-top:10px;height:20px;line-height:19px}a:hover.cke_colorauto,a:hover.cke_colormore,a:focus.cke_colorauto,a:focus.cke_colormore,a:active.cke_colorauto,a:active.cke_colormore{outline:0;border:#139ff7 1px solid;background-color:#f8f8f8}a:hover.cke_colorauto,a:hover.cke_colormore{border-color:#bcbcbc}.cke_colorauto span.cke_colorbox{width:18px;height:18px;border:1px solid #808080;margin-left:1px;margin-top:3px}.cke_rtl .cke_colorauto span.cke_colorbox{margin-left:0;margin-right:1px}span.cke_colorbox[style*="#ffffff"],span.cke_colorbox[style*="#FFFFFF"],span.cke_colorbox[style="background-color:#fff"],span.cke_colorbox[style="background-color:#FFF"],span.cke_colorbox[style*="rgb(255,255,255)"],span.cke_colorbox[style*="rgb(255, 255, 255)"]{border:1px solid #808080;width:18px;height:18px}.cke_toolbar{float:left}.cke_rtl .cke_toolbar{float:right}.cke_toolgroup{border:0;float:left;margin:1px 2px 6px 0;padding-right:3px}.cke_rtl .cke_toolgroup{float:right;margin:1px 0 6px 2px;padding-left:3px;padding-right:0}.cke_hc .cke_toolgroup{margin-right:5px;margin-bottom:5px}.cke_hc.cke_rtl .cke_toolgroup{margin-right:0;margin-left:5px}a.cke_button{display:inline-block;height:18px;padding:4px 6px;outline:0;cursor:default;float:left;border:0;position:relative}a.cke_button_expandable{padding:4px 5px}.cke_rtl a.cke_button{float:right}.cke_hc a.cke_button{border:1px solid black;padding:3px 5px;margin:0 3px 5px 0}.cke_hc.cke_rtl a.cke_button{margin:0 0 5px 3px}a.cke_button_on{background:#fff;border:1px #bcbcbc solid;padding:3px 5px}a.cke_button_expandable.cke_button_on{padding:3px 4px}a.cke_button_off:hover,a.cke_button_off:focus,a.cke_button_off:active{background:#e5e5e5;border:1px #bcbcbc solid;padding:3px 5px}a.cke_button_expandable.cke_button_off:hover,a.cke_button_expandable.cke_button_off:focus,a.cke_button_expandable.cke_button_off:active{padding:3px 4px}.cke_hc a.cke_button_on,.cke_hc a.cke_button_off:hover,.cke_hc a.cke_button_off:focus,.cke_hc a.cke_button_off:active{background:#e5e5e5;border:3px solid #000;padding:1px 3px}a.cke_button_disabled:hover,a.cke_button_disabled:focus,a.cke_button_disabled:active{border:0;padding:4px 6px;background-color:transparent}a.cke_button_expandable.cke_button_disabled:hover,a.cke_button_expandable.cke_button_disabled:active{padding:4px 5px}a.cke_button_disabled:focus{border:1px #bcbcbc solid;padding:3px 5px}a.cke_button_expandable.cke_button_disabled:focus{padding:3px 4px}.cke_hc a.cke_button_disabled:hover,.cke_hc a.cke_button_disabled:focus,.cke_hc a.cke_button_disabled:active{border:1px solid #acacac;padding:3px 5px;margin:0 3px 5px 0}.cke_hc a.cke_button_disabled:focus{border:3px solid #000;padding:1px 3px}.cke_hc.cke_rtl a.cke_button_disabled:hover,.cke_hc.cke_rtl a.cke_button_disabled:focus,.cke_hc.cke_rtl a.cke_button_disabled:active{margin:0 0 5px 3px}a.cke_button_disabled .cke_button_icon,a.cke_button_disabled .cke_button_arrow{opacity:.3}.cke_hc a.cke_button_disabled{border-color:#acacac}.cke_hc a.cke_button_disabled .cke_button_icon,.cke_hc a.cke_button_disabled .cke_button_label{opacity:.5}.cke_toolgroup a.cke_button:last-child:after,.cke_toolgroup a.cke_button.cke_button_disabled:hover:last-child:after{content:"";position:absolute;height:18px;width:0;border-right:1px solid #bcbcbc;margin-top:4px;top:0;right:-3px}.cke_rtl .cke_toolgroup a.cke_button:last-child:after,.cke_rtl .cke_toolgroup a.cke_button.cke_button_disabled:hover:last-child:after{border-right:0;right:auto;border-left:1px solid #bcbcbc;top:0;left:-3px}.cke_hc .cke_toolgroup a.cke_button:last-child:after,.cke_hc .cke_toolgroup a.cke_button.cke_button_disabled:last-child:after,.cke_hc .cke_toolgroup a.cke_button.cke_button_disabled:hover:last-child:after{border-color:#000;top:0;right:-7px}.cke_hc.cke_rtl .cke_toolgroup a.cke_button:last-child:after,.cke_hc.cke_rtl .cke_toolgroup a.cke_button.cke_button_disabled:last-child:after,.cke_hc.cke_rtl .cke_toolgroup a.cke_button.cke_button_disabled:hover:last-child:after{top:0;right:auto;left:-7px}.cke_toolgroup a.cke_button:hover:last-child:after,.cke_toolgroup a.cke_button:focus:last-child:after,.cke_toolgroup a.cke_button.cke_button_on:last-child:after{top:-1px;right:-4px}.cke_rtl .cke_toolgroup a.cke_button:hover:last-child:after,.cke_rtl .cke_toolgroup a.cke_button:focus:last-child:after,.cke_rtl .cke_toolgroup a.cke_button.cke_button_on:last-child:after{top:-1px;right:auto;left:-4px}.cke_hc .cke_toolgroup a.cke_button:hover:last-child:after,.cke_hc .cke_toolgroup a.cke_button.cke_button_on:last-child:after{top:-2px;right:-9px}.cke_hc.cke_rtl .cke_toolgroup a.cke_button:hover:last-child:after,.cke_hc.cke_rtl .cke_toolgroup a.cke_button.cke_button_on:last-child:after{top:-2px;right:auto;left:-9px}.cke_toolbar.cke_toolbar_last .cke_toolgroup a.cke_button:last-child:after{content:none;border:0;width:0;height:0}.cke_button_icon{cursor:inherit;background-repeat:no-repeat;margin-top:1px;width:16px;height:16px;float:left;display:inline-block}.cke_rtl .cke_button_icon{float:right}.cke_hc .cke_button_icon{display:none}.cke_button_label{display:none;padding-left:3px;margin-top:1px;line-height:17px;vertical-align:middle;float:left;cursor:default;color:#484848}.cke_rtl .cke_button_label{padding-right:3px;padding-left:0;float:right}.cke_hc .cke_button_label{padding:0;display:inline-block;font-size:12px}.cke_button_arrow{display:inline-block;margin:8px 0 0 3px;width:0;height:0;cursor:default;vertical-align:top;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #484848}.cke_rtl .cke_button_arrow{margin-right:5px;margin-left:0}.cke_hc .cke_button_arrow{font-size:10px;margin:3px 0 0 3px;width:auto;border:0}.cke_toolbar_separator{float:left;background-color:#bcbcbc;margin:4px 2px 0 2px;height:18px;width:1px}.cke_rtl .cke_toolbar_separator{float:right}.cke_hc .cke_toolbar_separator{background-color:#000;margin-left:2px;margin-right:5px;margin-bottom:9px}.cke_hc.cke_rtl .cke_toolbar_separator{margin-left:5px;margin-right:2px}.cke_toolbar_break{display:block;clear:left}.cke_rtl .cke_toolbar_break{clear:right}a.cke_toolbox_collapser{width:12px;height:11px;float:right;margin:11px 0 0;font-size:0;cursor:default;text-align:center;border:1px solid #bcbcbc}.cke_rtl .cke_toolbox_collapser{float:left}.cke_toolbox_collapser:hover{background:#e5e5e5}.cke_toolbox_collapser.cke_toolbox_collapser_min{margin:0 2px 4px}.cke_toolbox_collapser .cke_arrow{display:inline-block;height:0;width:0;font-size:0;margin-top:1px;border:3px solid transparent;border-bottom-color:#484848}.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow{margin-top:4px;border-bottom-color:transparent;border-top-color:#484848}.cke_hc .cke_toolbox_collapser .cke_arrow{font-size:8px;width:auto;border:0;margin-top:0}.cke_menuitem span{cursor:default}.cke_menubutton{display:block}.cke_hc .cke_menubutton{padding:2px}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#e9e9e9;display:block;outline:1px dotted}.cke_menubutton:hover{outline:0}.cke_hc .cke_menubutton:hover,.cke_hc .cke_menubutton:focus,.cke_hc .cke_menubutton:active{border:2px solid;padding:0}.cke_menubutton_disabled:hover,.cke_menubutton_disabled:focus,.cke_menubutton_disabled:active{background-color:transparent;outline:0}.cke_menubutton_inner{display:table-row}.cke_menubutton_icon,.cke_menubutton_label,.cke_menuarrow{display:table-cell}.cke_menubutton_icon{background-color:#f8f8f8;padding:6px 4px}.cke_hc .cke_menubutton_icon{height:16px;width:0;padding:4px 0}.cke_menubutton:hover .cke_menubutton_icon,.cke_menubutton:focus .cke_menubutton_icon,.cke_menubutton:active .cke_menubutton_icon{background-color:#e9e9e9}.cke_menubutton_disabled:hover .cke_menubutton_icon,.cke_menubutton_disabled:focus .cke_menubutton_icon,.cke_menubutton_disabled:active .cke_menubutton_icon{background-color:#f8f8f8;outline:0}.cke_menuitem .cke_menubutton_on{background-color:#e9e9e9;border:1px solid #dedede;outline:0}.cke_menubutton_on .cke_menubutton_icon{padding-right:3px;background-color:#e9e9e9}.cke_menubutton_label{padding:0 5px;background-color:transparent;width:100%;vertical-align:middle}.cke_menubutton_shortcut{color:#979797}.cke_menubutton_disabled .cke_menubutton_label{opacity:.3;filter:alpha(opacity=30)}.cke_panel_frame .cke_menubutton_label{display:none}.cke_menuseparator{background-color:#d1d1d1;height:1px}.cke_menuarrow{background:transparent url(images/arrow.png) no-repeat 0 10px;padding:0 5px}.cke_rtl .cke_menuarrow{background-position:5px -13px;background-repeat:no-repeat}.cke_hc .cke_menuarrow{background-image:none}.cke_menuarrow span{display:none}.cke_hc .cke_menuarrow span{vertical-align:middle;display:inline}.cke_combo{display:inline-block;float:left;position:relative;margin-bottom:5px}.cke_rtl .cke_combo{float:right}.cke_hc .cke_combo{margin-top:1px;margin-bottom:10px}.cke_combo:after{content:"";position:absolute;height:18px;width:0;border-right:1px solid #bcbcbc;margin-top:5px;top:0;right:0}.cke_rtl .cke_combo:after{border-right:0;border-left:1px solid #bcbcbc;right:auto;left:0}.cke_hc .cke_combo:after{border-color:#000}a.cke_combo_button{cursor:default;display:inline-block;float:left;margin:0;padding:1px}.cke_rtl a.cke_combo_button{float:right}.cke_hc a.cke_combo_button{padding:4px}.cke_combo_on a.cke_combo_button,.cke_combo_off a.cke_combo_button:hover,.cke_combo_off a.cke_combo_button:focus,.cke_combo_off a.cke_combo_button:active{background:#e5e5e5;border:1px solid #bcbcbc;padding:0 0 0 1px;margin-left:-1px}.cke_combo_off a.cke_combo_button:focus{outline:0}.cke_combo_on a.cke_combo_button,.cke_combo_off a.cke_combo_button:active{background:#fff}.cke_rtl .cke_combo_on a.cke_combo_button,.cke_rtl .cke_combo_off a.cke_combo_button:hover,.cke_rtl .cke_combo_off a.cke_combo_button:focus,.cke_rtl .cke_combo_off a.cke_combo_button:active{padding:0 1px 0 0;margin-left:0;margin-right:-1px}.cke_hc .cke_combo_on a.cke_combo_button,.cke_hc .cke_combo_off a.cke_combo_button:hover,.cke_hc .cke_combo_off a.cke_combo_button:focus,.cke_hc .cke_combo_off a.cke_combo_button:active{border:3px solid #000;padding:1px 1px 1px 2px}.cke_hc.cke_rtl .cke_combo_on a.cke_combo_button,.cke_hc.cke_rtl .cke_combo_off a.cke_combo_button:hover,.cke_hc.cke_rtl .cke_combo_off a.cke_combo_button:focus,.cke_hc.cke_rtl .cke_combo_off a.cke_combo_button:active{padding:1px 2px 1px 1px}.cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_toolbar_start+.cke_combo_off a.cke_combo_button:active{padding:0 0 0 3px;margin-left:-3px}.cke_rtl .cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_rtl .cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_rtl .cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_rtl .cke_toolbar_start+.cke_combo_off a.cke_combo_button:active{padding:0 3px 0 0;margin-left:0;margin-right:-3px}.cke_hc .cke_toolbar>.cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_hc .cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_hc .cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_hc .cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:active{padding:1px 1px 1px 7px;margin-left:-6px}.cke_hc.cke_rtl .cke_toolbar>.cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_hc.cke_rtl .cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_hc.cke_rtl .cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_hc.cke_rtl .cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:active{padding:1px 7px 1px 1px;margin-left:0;margin-right:-6px}.cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:active,.cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:active{padding:0;margin:0}.cke_hc .cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_hc .cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_hc .cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_hc .cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:active,.cke_hc .cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_hc .cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_hc .cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_hc .cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:active{padding:1px;margin:0}.cke_toolbar .cke_combo+.cke_toolbar_end,.cke_toolbar .cke_combo+.cke_toolgroup{margin-right:0;margin-left:2px}.cke_rtl .cke_toolbar .cke_combo+.cke_toolbar_end,.cke_rtl .cke_toolbar .cke_combo+.cke_toolgroup{margin-left:0;margin-right:2px}.cke_hc .cke_toolbar .cke_combo+.cke_toolbar_end,.cke_hc .cke_toolbar .cke_combo+.cke_toolgroup{margin-left:5px}.cke_hc.cke_rtl .cke_toolbar .cke_combo+.cke_toolbar_end,.cke_hc.cke_rtl .cke_toolbar .cke_combo+.cke_toolgroup{margin-left:0;margin-right:5px}.cke_toolbar.cke_toolbar_last .cke_combo:nth-last-child(-n+2):after{content:none;border:0;width:0;height:0}.cke_combo_text{line-height:26px;padding-left:10px;text-overflow:ellipsis;overflow:hidden;float:left;cursor:default;color:#484848;width:60px}.cke_rtl .cke_combo_text{float:right;text-align:right;padding-left:0;padding-right:10px}.cke_hc .cke_combo_text{line-height:18px;font-size:12px}.cke_combo_open{cursor:default;display:inline-block;font-size:0;height:19px;line-height:17px;margin:1px 10px 1px;width:5px}.cke_hc .cke_combo_open{height:12px}.cke_combo_arrow{cursor:default;margin:11px 0 0;float:left;height:0;width:0;font-size:0;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #484848}.cke_hc .cke_combo_arrow{font-size:10px;width:auto;border:0;margin-top:3px}.cke_combo_label{display:none;float:left;line-height:26px;vertical-align:top;margin-right:5px}.cke_rtl .cke_combo_label{float:right;margin-left:5px;margin-right:0}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{opacity:.3}.cke_path{float:left;margin:-2px 0 2px}a.cke_path_item,span.cke_path_empty{display:inline-block;float:left;padding:3px 4px;margin-right:2px;cursor:default;text-decoration:none;outline:0;border:0;color:#484848;font-weight:bold;font-size:11px}.cke_rtl .cke_path,.cke_rtl .cke_path_item,.cke_rtl .cke_path_empty{float:right}a.cke_path_item:hover,a.cke_path_item:focus,a.cke_path_item:active{background-color:#e5e5e5}.cke_hc a.cke_path_item:hover,.cke_hc a.cke_path_item:focus,.cke_hc a.cke_path_item:active{border:2px solid;padding:1px 2px}.cke_button__source_label,.cke_button__sourcedialog_label{display:inline}.cke_combopanel__fontsize{width:135px}textarea.cke_source{font-family:'Courier New',Monospace;font-size:small;background-color:#fff;white-space:pre-wrap;border:0;padding:0;margin:0;display:block}.cke_wysiwyg_frame,.cke_wysiwyg_div{background-color:#fff}.cke_notifications_area{pointer-events:none}.cke_notification{pointer-events:auto;position:relative;margin:10px;width:300px;color:white;text-align:center;opacity:.95;filter:alpha(opacity = 95);-webkit-animation:fadeIn .7s;animation:fadeIn .7s}.cke_notification_message a{color:#12306f}@-webkit-keyframes fadeIn{from{opacity:.4}to{opacity:.95}}@keyframes fadeIn{from{opacity:.4}to{opacity:.95}}.cke_notification_success{background:#72b572;border:1px solid #63a563}.cke_notification_warning{background:#c83939;border:1px solid #902b2b}.cke_notification_info{background:#2e9ad0;border:1px solid #0f74a8}.cke_notification_info span.cke_notification_progress{background-color:#0f74a8;display:block;padding:0;margin:0;height:100%;overflow:hidden;position:absolute;z-index:1}.cke_notification_message{position:relative;margin:4px 23px 3px;font-family:Arial,Helvetica,sans-serif;font-size:12px;line-height:18px;z-index:4;text-overflow:ellipsis;overflow:hidden}.cke_notification_close{background-image:url(images/close.png);background-repeat:no-repeat;background-position:50%;position:absolute;cursor:pointer;text-align:center;height:20px;width:20px;top:1px;right:1px;padding:0;margin:0;z-index:5;opacity:.6;filter:alpha(opacity = 60)}.cke_notification_close:hover{opacity:1;filter:alpha(opacity = 100)}.cke_notification_close span{display:none}.cke_notification_warning a.cke_notification_close{opacity:.8;filter:alpha(opacity = 80)}.cke_notification_warning a.cke_notification_close:hover{opacity:1;filter:alpha(opacity = 100)}.cke_chrome{visibility:inherit}.cke_voice_label{display:none}legend.cke_voice_label{display:none}.cke_button__about_icon{background:url(icons.png?t=K1SC) no-repeat 0 -0px!important}.cke_button__bold_icon{background:url(icons.png?t=K1SC) no-repeat 0 -24px!important}.cke_button__italic_icon{background:url(icons.png?t=K1SC) no-repeat 0 -48px!important}.cke_button__strike_icon{background:url(icons.png?t=K1SC) no-repeat 0 -72px!important}.cke_button__subscript_icon{background:url(icons.png?t=K1SC) no-repeat 0 -96px!important}.cke_button__superscript_icon{background:url(icons.png?t=K1SC) no-repeat 0 -120px!important}.cke_button__underline_icon{background:url(icons.png?t=K1SC) no-repeat 0 -144px!important}.cke_button__blockquote_icon{background:url(icons.png?t=K1SC) no-repeat 0 -168px!important}.cke_rtl .cke_button__copy_icon,.cke_mixed_dir_content .cke_rtl .cke_button__copy_icon{background:url(icons.png?t=K1SC) no-repeat 0 -192px!important}.cke_ltr .cke_button__copy_icon{background:url(icons.png?t=K1SC) no-repeat 0 -216px!important}.cke_rtl .cke_button__cut_icon,.cke_mixed_dir_content .cke_rtl .cke_button__cut_icon{background:url(icons.png?t=K1SC) no-repeat 0 -240px!important}.cke_ltr .cke_button__cut_icon{background:url(icons.png?t=K1SC) no-repeat 0 -264px!important}.cke_rtl .cke_button__paste_icon,.cke_mixed_dir_content .cke_rtl .cke_button__paste_icon{background:url(icons.png?t=K1SC) no-repeat 0 -288px!important}.cke_ltr .cke_button__paste_icon{background:url(icons.png?t=K1SC) no-repeat 0 -312px!important}.cke_button__horizontalrule_icon{background:url(icons.png?t=K1SC) no-repeat 0 -336px!important}.cke_button__image_icon{background:url(icons.png?t=K1SC) no-repeat 0 -360px!important}.cke_rtl .cke_button__indent_icon,.cke_mixed_dir_content .cke_rtl .cke_button__indent_icon{background:url(icons.png?t=K1SC) no-repeat 0 -384px!important}.cke_ltr .cke_button__indent_icon{background:url(icons.png?t=K1SC) no-repeat 0 -408px!important}.cke_rtl .cke_button__outdent_icon,.cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon{background:url(icons.png?t=K1SC) no-repeat 0 -432px!important}.cke_ltr .cke_button__outdent_icon{background:url(icons.png?t=K1SC) no-repeat 0 -456px!important}.cke_button__justifyblock_icon{background:url(icons.png?t=K1SC) no-repeat 0 -480px!important}.cke_button__justifycenter_icon{background:url(icons.png?t=K1SC) no-repeat 0 -504px!important}.cke_button__justifyleft_icon{background:url(icons.png?t=K1SC) no-repeat 0 -528px!important}.cke_button__justifyright_icon{background:url(icons.png?t=K1SC) no-repeat 0 -552px!important}.cke_button__language_icon{background:url(icons.png?t=K1SC) no-repeat 0 -576px!important}.cke_rtl .cke_button__bulletedlist_icon,.cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon{background:url(icons.png?t=K1SC) no-repeat 0 -600px!important}.cke_ltr .cke_button__bulletedlist_icon{background:url(icons.png?t=K1SC) no-repeat 0 -624px!important}.cke_rtl .cke_button__numberedlist_icon,.cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon{background:url(icons.png?t=K1SC) no-repeat 0 -648px!important}.cke_ltr .cke_button__numberedlist_icon{background:url(icons.png?t=K1SC) no-repeat 0 -672px!important}.cke_button__maximize_icon{background:url(icons.png?t=K1SC) no-repeat 0 -696px!important}.cke_rtl .cke_button__pastefromword_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon{background:url(icons.png?t=K1SC) no-repeat 0 -720px!important}.cke_ltr .cke_button__pastefromword_icon{background:url(icons.png?t=K1SC) no-repeat 0 -744px!important}.cke_rtl .cke_button__pastetext_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon{background:url(icons.png?t=K1SC) no-repeat 0 -768px!important}.cke_ltr .cke_button__pastetext_icon{background:url(icons.png?t=K1SC) no-repeat 0 -792px!important}.cke_button__removeformat_icon{background:url(icons.png?t=K1SC) no-repeat 0 -816px!important}.cke_rtl .cke_button__showblocks_icon,.cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon{background:url(icons.png?t=K1SC) no-repeat 0 -840px!important}.cke_ltr .cke_button__showblocks_icon{background:url(icons.png?t=K1SC) no-repeat 0 -864px!important}.cke_rtl .cke_button__source_icon,.cke_mixed_dir_content .cke_rtl .cke_button__source_icon{background:url(icons.png?t=K1SC) no-repeat 0 -888px!important}.cke_ltr .cke_button__source_icon{background:url(icons.png?t=K1SC) no-repeat 0 -912px!important}.cke_rtl .cke_button__sourcedialog_icon,.cke_mixed_dir_content .cke_rtl .cke_button__sourcedialog_icon{background:url(icons.png?t=K1SC) no-repeat 0 -936px!important}.cke_ltr .cke_button__sourcedialog_icon{background:url(icons.png?t=K1SC) no-repeat 0 -960px!important}.cke_button__specialchar_icon{background:url(icons.png?t=K1SC) no-repeat 0 -984px!important}.cke_button__table_icon{background:url(icons.png?t=K1SC) no-repeat 0 -1008px!important}.cke_rtl .cke_button__redo_icon,.cke_mixed_dir_content .cke_rtl .cke_button__redo_icon{background:url(icons.png?t=K1SC) no-repeat 0 -1032px!important}.cke_ltr .cke_button__redo_icon{background:url(icons.png?t=K1SC) no-repeat 0 -1056px!important}.cke_rtl .cke_button__undo_icon,.cke_mixed_dir_content .cke_rtl .cke_button__undo_icon{background:url(icons.png?t=K1SC) no-repeat 0 -1080px!important}.cke_ltr .cke_button__undo_icon{background:url(icons.png?t=K1SC) no-repeat 0 -1104px!important}.cke_button__simplebox_icon{background:url(icons.png?t=K1SC) no-repeat 0 -1128px!important}.cke_hidpi .cke_button__about_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -0px!important;background-size:16px!important}.cke_hidpi .cke_button__bold_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -24px!important;background-size:16px!important}.cke_hidpi .cke_button__italic_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -48px!important;background-size:16px!important}.cke_hidpi .cke_button__strike_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -72px!important;background-size:16px!important}.cke_hidpi .cke_button__subscript_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -96px!important;background-size:16px!important}.cke_hidpi .cke_button__superscript_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -120px!important;background-size:16px!important}.cke_hidpi .cke_button__underline_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -144px!important;background-size:16px!important}.cke_hidpi .cke_button__blockquote_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -168px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__copy_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__copy_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -192px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__copy_icon,.cke_ltr.cke_hidpi .cke_button__copy_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -216px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__cut_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__cut_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -240px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__cut_icon,.cke_ltr.cke_hidpi .cke_button__cut_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -264px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__paste_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__paste_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -288px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__paste_icon,.cke_ltr.cke_hidpi .cke_button__paste_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -312px!important;background-size:16px!important}.cke_hidpi .cke_button__horizontalrule_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -336px!important;background-size:16px!important}.cke_hidpi .cke_button__image_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -360px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__indent_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -384px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__indent_icon,.cke_ltr.cke_hidpi .cke_button__indent_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -408px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__outdent_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -432px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__outdent_icon,.cke_ltr.cke_hidpi .cke_button__outdent_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -456px!important;background-size:16px!important}.cke_hidpi .cke_button__justifyblock_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -480px!important;background-size:16px!important}.cke_hidpi .cke_button__justifycenter_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -504px!important;background-size:16px!important}.cke_hidpi .cke_button__justifyleft_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -528px!important;background-size:16px!important}.cke_hidpi .cke_button__justifyright_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -552px!important;background-size:16px!important}.cke_hidpi .cke_button__language_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -576px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__bulletedlist_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -600px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__bulletedlist_icon,.cke_ltr.cke_hidpi .cke_button__bulletedlist_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -624px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__numberedlist_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -648px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__numberedlist_icon,.cke_ltr.cke_hidpi .cke_button__numberedlist_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -672px!important;background-size:16px!important}.cke_hidpi .cke_button__maximize_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -696px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__pastefromword_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -720px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__pastefromword_icon,.cke_ltr.cke_hidpi .cke_button__pastefromword_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -744px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__pastetext_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -768px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__pastetext_icon,.cke_ltr.cke_hidpi .cke_button__pastetext_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -792px!important;background-size:16px!important}.cke_hidpi .cke_button__removeformat_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -816px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__showblocks_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -840px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__showblocks_icon,.cke_ltr.cke_hidpi .cke_button__showblocks_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -864px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__source_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__source_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -888px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__source_icon,.cke_ltr.cke_hidpi .cke_button__source_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -912px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__sourcedialog_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__sourcedialog_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -936px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__sourcedialog_icon,.cke_ltr.cke_hidpi .cke_button__sourcedialog_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -960px!important;background-size:16px!important}.cke_hidpi .cke_button__specialchar_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -984px!important;background-size:16px!important}.cke_hidpi .cke_button__table_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -1008px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__redo_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__redo_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -1032px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__redo_icon,.cke_ltr.cke_hidpi .cke_button__redo_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -1056px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__undo_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__undo_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -1080px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__undo_icon,.cke_ltr.cke_hidpi .cke_button__undo_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -1104px!important;background-size:16px!important}.cke_hidpi .cke_button__simplebox_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -2256px!important}.cke_bottom{padding-bottom:3px}.cke_combo_text{margin-bottom:-1px;margin-top:1px}
\ No newline at end of file
diff --git a/web/core/assets/vendor/ckeditor/skins/moono-lisa/editor_ie.css b/web/core/assets/vendor/ckeditor/skins/moono-lisa/editor_ie.css
index 05ee1c9e6f..1cdd7c6d9c 100644
--- a/web/core/assets/vendor/ckeditor/skins/moono-lisa/editor_ie.css
+++ b/web/core/assets/vendor/ckeditor/skins/moono-lisa/editor_ie.css
@@ -2,4 +2,4 @@
 Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */
-.cke_reset{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;position:static;transition:none}.cke_reset_all,.cke_reset_all *,.cke_reset_all a,.cke_reset_all textarea{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;position:static;transition:none;border-collapse:collapse;font:normal normal normal 12px Arial,Helvetica,Tahoma,Verdana,Sans-Serif;color:#000;text-align:left;white-space:nowrap;cursor:auto;float:none}.cke_reset_all .cke_rtl *{text-align:right}.cke_reset_all iframe{vertical-align:inherit}.cke_reset_all textarea{white-space:pre-wrap}.cke_reset_all textarea,.cke_reset_all input[type="text"],.cke_reset_all input[type="password"]{cursor:text}.cke_reset_all textarea[disabled],.cke_reset_all input[type="text"][disabled],.cke_reset_all input[type="password"][disabled]{cursor:default}.cke_reset_all fieldset{padding:10px;border:2px groove #e0dfe3}.cke_reset_all select{box-sizing:border-box}.cke_reset_all table{table-layout:auto}.cke_chrome{display:block;border:1px solid #d1d1d1;padding:0}.cke_inner{display:block;background:#fff;padding:0;-webkit-touch-callout:none}.cke_float{border:0}.cke_float .cke_inner{padding-bottom:0}.cke_top,.cke_contents,.cke_bottom{display:block;overflow:hidden}.cke_top{border-bottom:1px solid #d1d1d1;background:#f8f8f8;padding:6px 8px 2px;white-space:normal}.cke_float .cke_top{border:1px solid #d1d1d1}.cke_bottom{padding:6px 8px 2px;position:relative;border-top:1px solid #d1d1d1;background:#f8f8f8}.cke_browser_ios .cke_contents{overflow-y:auto;-webkit-overflow-scrolling:touch}.cke_resizer{width:0;height:0;overflow:hidden;border-width:10px 10px 0 0;border-color:transparent #bcbcbc transparent transparent;border-style:dashed solid dashed dashed;font-size:0;vertical-align:bottom;margin-top:6px;margin-bottom:2px}.cke_hc .cke_resizer{font-size:15px;width:auto;height:auto;border-width:0}.cke_resizer_ltr{cursor:se-resize;float:right;margin-right:-4px}.cke_resizer_rtl{border-width:10px 0 0 10px;border-color:transparent transparent transparent #bcbcbc;border-style:dashed dashed dashed solid;cursor:sw-resize;float:left;margin-left:-4px;right:auto}.cke_wysiwyg_div{display:block;height:100%;overflow:auto;padding:0 8px;outline-style:none;box-sizing:border-box}.cke_panel{visibility:visible;width:120px;height:100px;overflow:hidden;background-color:#fff;border:1px solid #d1d1d1}.cke_menu_panel{padding:0;margin:0}.cke_combopanel{width:150px;height:170px}.cke_panel_frame{width:100%;height:100%;font-size:12px;overflow:auto;overflow-x:hidden}.cke_panel_container{overflow-y:auto;overflow-x:hidden}.cke_panel_block:focus{outline:0}.cke_panel_list{margin:0;padding:0;list-style-type:none;white-space:nowrap}.cke_panel_listItem{margin:0;padding:0}.cke_panel_listItem a{padding:6px 7px;display:block;color:inherit!important;text-decoration:none;overflow:hidden;text-overflow:ellipsis}.cke_hc .cke_panel_listItem a{border-style:none}.cke_panel_listItem.cke_selected a,.cke_panel_listItem a:hover,.cke_panel_listItem a:focus,.cke_panel_listItem a:active{background-color:#e9e9e9}.cke_panel_listItem a:focus{outline:1px dotted #000}.cke_hc .cke_panel_listItem a:hover,.cke_hc .cke_panel_listItem a:focus,.cke_hc .cke_panel_listItem a:active{border:2px solid;padding:4px 5px}.cke_panel_listItem p,.cke_panel_listItem h1,.cke_panel_listItem h2,.cke_panel_listItem h3,.cke_panel_listItem h4,.cke_panel_listItem h5,.cke_panel_listItem h6,.cke_panel_listItem pre{margin-top:0;margin-bottom:0}.cke_panel_grouptitle{cursor:default;font-size:11px;font-weight:bold;white-space:nowrap;margin:0;padding:6px 6px 7px 6px;color:#484848;border-bottom:1px solid #d1d1d1;background:#f8f8f8}.cke_colorblock{padding:10px;font-size:11px;font-family:'Microsoft Sans Serif',Tahoma,Arial,Verdana,Sans-Serif}.cke_colorblock,.cke_colorblock a{text-decoration:none;color:#000}a.cke_colorbox{padding:2px;float:left;width:20px;height:20px}.cke_rtl a.cke_colorbox{float:right}a:hover.cke_colorbox,a:focus.cke_colorbox,a:active.cke_colorbox{outline:0;padding:0;border:2px solid #139ff7}a:hover.cke_colorbox{border-color:#bcbcbc}span.cke_colorbox{width:20px;height:20px;float:left}.cke_rtl span.cke_colorbox{float:right}a.cke_colorauto,a.cke_colormore{border:#fff 1px solid;padding:3px;display:block;cursor:pointer}a.cke_colorauto{padding:0;border:1px solid transparent;margin-bottom:6px;height:26px;line-height:26px}a.cke_colormore{margin-top:10px;height:20px;line-height:19px}a:hover.cke_colorauto,a:hover.cke_colormore,a:focus.cke_colorauto,a:focus.cke_colormore,a:active.cke_colorauto,a:active.cke_colormore{outline:0;border:#139ff7 1px solid;background-color:#f8f8f8}a:hover.cke_colorauto,a:hover.cke_colormore{border-color:#bcbcbc}.cke_colorauto span.cke_colorbox{width:18px;height:18px;border:1px solid #808080;margin-left:1px;margin-top:3px}.cke_rtl .cke_colorauto span.cke_colorbox{margin-left:0;margin-right:1px}span.cke_colorbox[style*="#ffffff"],span.cke_colorbox[style*="#FFFFFF"],span.cke_colorbox[style="background-color:#fff"],span.cke_colorbox[style="background-color:#FFF"],span.cke_colorbox[style*="rgb(255,255,255)"],span.cke_colorbox[style*="rgb(255, 255, 255)"]{border:1px solid #808080;width:18px;height:18px}.cke_toolbar{float:left}.cke_rtl .cke_toolbar{float:right}.cke_toolgroup{border:0;float:left;margin:1px 2px 6px 0;padding-right:3px}.cke_rtl .cke_toolgroup{float:right;margin:1px 0 6px 2px;padding-left:3px;padding-right:0}.cke_hc .cke_toolgroup{margin-right:5px;margin-bottom:5px}.cke_hc.cke_rtl .cke_toolgroup{margin-right:0;margin-left:5px}a.cke_button{display:inline-block;height:18px;padding:4px 6px;outline:0;cursor:default;float:left;border:0;position:relative}a.cke_button_expandable{padding:4px 5px}.cke_rtl a.cke_button{float:right}.cke_hc a.cke_button{border:1px solid black;padding:3px 5px;margin:0 3px 5px 0}.cke_hc.cke_rtl a.cke_button{margin:0 0 5px 3px}a.cke_button_on{background:#fff;border:1px #bcbcbc solid;padding:3px 5px}a.cke_button_expandable.cke_button_on{padding:3px 4px}a.cke_button_off:hover,a.cke_button_off:focus,a.cke_button_off:active{background:#e5e5e5;border:1px #bcbcbc solid;padding:3px 5px}a.cke_button_expandable.cke_button_off:hover,a.cke_button_expandable.cke_button_off:focus,a.cke_button_expandable.cke_button_off:active{padding:3px 4px}.cke_hc a.cke_button_on,.cke_hc a.cke_button_off:hover,.cke_hc a.cke_button_off:focus,.cke_hc a.cke_button_off:active{background:#e5e5e5;border:3px solid #000;padding:1px 3px}a.cke_button_disabled:hover,a.cke_button_disabled:focus,a.cke_button_disabled:active{border:0;padding:4px 6px;background-color:transparent}a.cke_button_expandable.cke_button_disabled:hover,a.cke_button_expandable.cke_button_disabled:active{padding:4px 5px}a.cke_button_disabled:focus{border:1px #bcbcbc solid;padding:3px 5px}a.cke_button_expandable.cke_button_disabled:focus{padding:3px 4px}.cke_hc a.cke_button_disabled:hover,.cke_hc a.cke_button_disabled:focus,.cke_hc a.cke_button_disabled:active{border:1px solid #acacac;padding:3px 5px;margin:0 3px 5px 0}.cke_hc a.cke_button_disabled:focus{border:3px solid #000;padding:1px 3px}.cke_hc.cke_rtl a.cke_button_disabled:hover,.cke_hc.cke_rtl a.cke_button_disabled:focus,.cke_hc.cke_rtl a.cke_button_disabled:active{margin:0 0 5px 3px}a.cke_button_disabled .cke_button_icon,a.cke_button_disabled .cke_button_arrow{opacity:.3}.cke_hc a.cke_button_disabled{border-color:#acacac}.cke_hc a.cke_button_disabled .cke_button_icon,.cke_hc a.cke_button_disabled .cke_button_label{opacity:.5}.cke_toolgroup a.cke_button:last-child:after,.cke_toolgroup a.cke_button.cke_button_disabled:hover:last-child:after{content:"";position:absolute;height:18px;width:0;border-right:1px solid #bcbcbc;margin-top:4px;top:0;right:-3px}.cke_rtl .cke_toolgroup a.cke_button:last-child:after,.cke_rtl .cke_toolgroup a.cke_button.cke_button_disabled:hover:last-child:after{border-right:0;right:auto;border-left:1px solid #bcbcbc;top:0;left:-3px}.cke_hc .cke_toolgroup a.cke_button:last-child:after,.cke_hc .cke_toolgroup a.cke_button.cke_button_disabled:last-child:after,.cke_hc .cke_toolgroup a.cke_button.cke_button_disabled:hover:last-child:after{border-color:#000;top:0;right:-7px}.cke_hc.cke_rtl .cke_toolgroup a.cke_button:last-child:after,.cke_hc.cke_rtl .cke_toolgroup a.cke_button.cke_button_disabled:last-child:after,.cke_hc.cke_rtl .cke_toolgroup a.cke_button.cke_button_disabled:hover:last-child:after{top:0;right:auto;left:-7px}.cke_toolgroup a.cke_button:hover:last-child:after,.cke_toolgroup a.cke_button:focus:last-child:after,.cke_toolgroup a.cke_button.cke_button_on:last-child:after{top:-1px;right:-4px}.cke_rtl .cke_toolgroup a.cke_button:hover:last-child:after,.cke_rtl .cke_toolgroup a.cke_button:focus:last-child:after,.cke_rtl .cke_toolgroup a.cke_button.cke_button_on:last-child:after{top:-1px;right:auto;left:-4px}.cke_hc .cke_toolgroup a.cke_button:hover:last-child:after,.cke_hc .cke_toolgroup a.cke_button.cke_button_on:last-child:after{top:-2px;right:-9px}.cke_hc.cke_rtl .cke_toolgroup a.cke_button:hover:last-child:after,.cke_hc.cke_rtl .cke_toolgroup a.cke_button.cke_button_on:last-child:after{top:-2px;right:auto;left:-9px}.cke_toolbar.cke_toolbar_last .cke_toolgroup a.cke_button:last-child:after{content:none;border:0;width:0;height:0}.cke_button_icon{cursor:inherit;background-repeat:no-repeat;margin-top:1px;width:16px;height:16px;float:left;display:inline-block}.cke_rtl .cke_button_icon{float:right}.cke_hc .cke_button_icon{display:none}.cke_button_label{display:none;padding-left:3px;margin-top:1px;line-height:17px;vertical-align:middle;float:left;cursor:default;color:#484848}.cke_rtl .cke_button_label{padding-right:3px;padding-left:0;float:right}.cke_hc .cke_button_label{padding:0;display:inline-block;font-size:12px}.cke_button_arrow{display:inline-block;margin:8px 0 0 3px;width:0;height:0;cursor:default;vertical-align:top;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #484848}.cke_rtl .cke_button_arrow{margin-right:5px;margin-left:0}.cke_hc .cke_button_arrow{font-size:10px;margin:3px 0 0 3px;width:auto;border:0}.cke_toolbar_separator{float:left;background-color:#bcbcbc;margin:4px 2px 0 2px;height:18px;width:1px}.cke_rtl .cke_toolbar_separator{float:right}.cke_hc .cke_toolbar_separator{background-color:#000;margin-left:2px;margin-right:5px;margin-bottom:9px}.cke_hc.cke_rtl .cke_toolbar_separator{margin-left:5px;margin-right:2px}.cke_toolbar_break{display:block;clear:left}.cke_rtl .cke_toolbar_break{clear:right}a.cke_toolbox_collapser{width:12px;height:11px;float:right;margin:11px 0 0;font-size:0;cursor:default;text-align:center;border:1px solid #bcbcbc}.cke_rtl .cke_toolbox_collapser{float:left}.cke_toolbox_collapser:hover{background:#e5e5e5}.cke_toolbox_collapser.cke_toolbox_collapser_min{margin:0 2px 4px}.cke_toolbox_collapser .cke_arrow{display:inline-block;height:0;width:0;font-size:0;margin-top:1px;border:3px solid transparent;border-bottom-color:#484848}.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow{margin-top:4px;border-bottom-color:transparent;border-top-color:#484848}.cke_hc .cke_toolbox_collapser .cke_arrow{font-size:8px;width:auto;border:0;margin-top:0}.cke_menuitem span{cursor:default}.cke_menubutton{display:block}.cke_hc .cke_menubutton{padding:2px}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#e9e9e9;display:block;outline:1px dotted}.cke_menubutton:hover{outline:0}.cke_hc .cke_menubutton:hover,.cke_hc .cke_menubutton:focus,.cke_hc .cke_menubutton:active{border:2px solid;padding:0}.cke_menubutton_disabled:hover,.cke_menubutton_disabled:focus,.cke_menubutton_disabled:active{background-color:transparent;outline:0}.cke_menubutton_inner{display:table-row}.cke_menubutton_icon,.cke_menubutton_label,.cke_menuarrow{display:table-cell}.cke_menubutton_icon{background-color:#f8f8f8;padding:6px 4px}.cke_hc .cke_menubutton_icon{height:16px;width:0;padding:4px 0}.cke_menubutton:hover .cke_menubutton_icon,.cke_menubutton:focus .cke_menubutton_icon,.cke_menubutton:active .cke_menubutton_icon{background-color:#e9e9e9}.cke_menubutton_disabled:hover .cke_menubutton_icon,.cke_menubutton_disabled:focus .cke_menubutton_icon,.cke_menubutton_disabled:active .cke_menubutton_icon{background-color:#f8f8f8;outline:0}.cke_menuitem .cke_menubutton_on{background-color:#e9e9e9;border:1px solid #dedede;outline:0}.cke_menubutton_on .cke_menubutton_icon{padding-right:3px;background-color:#e9e9e9}.cke_menubutton_label{padding:0 5px;background-color:transparent;width:100%;vertical-align:middle}.cke_menubutton_shortcut{color:#979797}.cke_menubutton_disabled .cke_menubutton_label{opacity:.3;filter:alpha(opacity=30)}.cke_panel_frame .cke_menubutton_label{display:none}.cke_menuseparator{background-color:#d1d1d1;height:1px}.cke_menuarrow{background:transparent url(images/arrow.png) no-repeat 0 10px;padding:0 5px}.cke_rtl .cke_menuarrow{background-position:5px -13px;background-repeat:no-repeat}.cke_hc .cke_menuarrow{background-image:none}.cke_menuarrow span{display:none}.cke_hc .cke_menuarrow span{vertical-align:middle;display:inline}.cke_combo{display:inline-block;float:left;position:relative;margin-bottom:5px}.cke_rtl .cke_combo{float:right}.cke_hc .cke_combo{margin-top:1px;margin-bottom:10px}.cke_combo:after{content:"";position:absolute;height:18px;width:0;border-right:1px solid #bcbcbc;margin-top:5px;top:0;right:0}.cke_rtl .cke_combo:after{border-right:0;border-left:1px solid #bcbcbc;right:auto;left:0}.cke_hc .cke_combo:after{border-color:#000}a.cke_combo_button{cursor:default;display:inline-block;float:left;margin:0;padding:1px}.cke_rtl a.cke_combo_button{float:right}.cke_hc a.cke_combo_button{padding:4px}.cke_combo_on a.cke_combo_button,.cke_combo_off a.cke_combo_button:hover,.cke_combo_off a.cke_combo_button:focus,.cke_combo_off a.cke_combo_button:active{background:#e5e5e5;border:1px solid #bcbcbc;padding:0 0 0 1px;margin-left:-1px}.cke_combo_off a.cke_combo_button:focus{outline:0}.cke_combo_on a.cke_combo_button,.cke_combo_off a.cke_combo_button:active{background:#fff}.cke_rtl .cke_combo_on a.cke_combo_button,.cke_rtl .cke_combo_off a.cke_combo_button:hover,.cke_rtl .cke_combo_off a.cke_combo_button:focus,.cke_rtl .cke_combo_off a.cke_combo_button:active{padding:0 1px 0 0;margin-left:0;margin-right:-1px}.cke_hc .cke_combo_on a.cke_combo_button,.cke_hc .cke_combo_off a.cke_combo_button:hover,.cke_hc .cke_combo_off a.cke_combo_button:focus,.cke_hc .cke_combo_off a.cke_combo_button:active{border:3px solid #000;padding:1px 1px 1px 2px}.cke_hc.cke_rtl .cke_combo_on a.cke_combo_button,.cke_hc.cke_rtl .cke_combo_off a.cke_combo_button:hover,.cke_hc.cke_rtl .cke_combo_off a.cke_combo_button:focus,.cke_hc.cke_rtl .cke_combo_off a.cke_combo_button:active{padding:1px 2px 1px 1px}.cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_toolbar_start+.cke_combo_off a.cke_combo_button:active{padding:0 0 0 3px;margin-left:-3px}.cke_rtl .cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_rtl .cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_rtl .cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_rtl .cke_toolbar_start+.cke_combo_off a.cke_combo_button:active{padding:0 3px 0 0;margin-left:0;margin-right:-3px}.cke_hc .cke_toolbar>.cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_hc .cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_hc .cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_hc .cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:active{padding:1px 1px 1px 7px;margin-left:-6px}.cke_hc.cke_rtl .cke_toolbar>.cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_hc.cke_rtl .cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_hc.cke_rtl .cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_hc.cke_rtl .cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:active{padding:1px 7px 1px 1px;margin-left:0;margin-right:-6px}.cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:active,.cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:active{padding:0;margin:0}.cke_hc .cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_hc .cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_hc .cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_hc .cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:active,.cke_hc .cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_hc .cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_hc .cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_hc .cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:active{padding:1px;margin:0}.cke_toolbar .cke_combo+.cke_toolbar_end,.cke_toolbar .cke_combo+.cke_toolgroup{margin-right:0;margin-left:2px}.cke_rtl .cke_toolbar .cke_combo+.cke_toolbar_end,.cke_rtl .cke_toolbar .cke_combo+.cke_toolgroup{margin-left:0;margin-right:2px}.cke_hc .cke_toolbar .cke_combo+.cke_toolbar_end,.cke_hc .cke_toolbar .cke_combo+.cke_toolgroup{margin-left:5px}.cke_hc.cke_rtl .cke_toolbar .cke_combo+.cke_toolbar_end,.cke_hc.cke_rtl .cke_toolbar .cke_combo+.cke_toolgroup{margin-left:0;margin-right:5px}.cke_toolbar.cke_toolbar_last .cke_combo:nth-last-child(-n+2):after{content:none;border:0;width:0;height:0}.cke_combo_text{line-height:26px;padding-left:10px;text-overflow:ellipsis;overflow:hidden;float:left;cursor:default;color:#484848;width:60px}.cke_rtl .cke_combo_text{float:right;text-align:right;padding-left:0;padding-right:10px}.cke_hc .cke_combo_text{line-height:18px;font-size:12px}.cke_combo_open{cursor:default;display:inline-block;font-size:0;height:19px;line-height:17px;margin:1px 10px 1px;width:5px}.cke_hc .cke_combo_open{height:12px}.cke_combo_arrow{cursor:default;margin:11px 0 0;float:left;height:0;width:0;font-size:0;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #484848}.cke_hc .cke_combo_arrow{font-size:10px;width:auto;border:0;margin-top:3px}.cke_combo_label{display:none;float:left;line-height:26px;vertical-align:top;margin-right:5px}.cke_rtl .cke_combo_label{float:right;margin-left:5px;margin-right:0}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{opacity:.3}.cke_path{float:left;margin:-2px 0 2px}a.cke_path_item,span.cke_path_empty{display:inline-block;float:left;padding:3px 4px;margin-right:2px;cursor:default;text-decoration:none;outline:0;border:0;color:#484848;font-weight:bold;font-size:11px}.cke_rtl .cke_path,.cke_rtl .cke_path_item,.cke_rtl .cke_path_empty{float:right}a.cke_path_item:hover,a.cke_path_item:focus,a.cke_path_item:active{background-color:#e5e5e5}.cke_hc a.cke_path_item:hover,.cke_hc a.cke_path_item:focus,.cke_hc a.cke_path_item:active{border:2px solid;padding:1px 2px}.cke_button__source_label,.cke_button__sourcedialog_label{display:inline}.cke_combopanel__fontsize{width:135px}textarea.cke_source{font-family:'Courier New',Monospace;font-size:small;background-color:#fff;white-space:pre-wrap;border:0;padding:0;margin:0;display:block}.cke_wysiwyg_frame,.cke_wysiwyg_div{background-color:#fff}.cke_notifications_area{pointer-events:none}.cke_notification{pointer-events:auto;position:relative;margin:10px;width:300px;color:white;text-align:center;opacity:.95;filter:alpha(opacity = 95);-webkit-animation:fadeIn .7s;animation:fadeIn .7s}.cke_notification_message a{color:#12306f}@-webkit-keyframes fadeIn{from{opacity:.4}to{opacity:.95}}@keyframes fadeIn{from{opacity:.4}to{opacity:.95}}.cke_notification_success{background:#72b572;border:1px solid #63a563}.cke_notification_warning{background:#c83939;border:1px solid #902b2b}.cke_notification_info{background:#2e9ad0;border:1px solid #0f74a8}.cke_notification_info span.cke_notification_progress{background-color:#0f74a8;display:block;padding:0;margin:0;height:100%;overflow:hidden;position:absolute;z-index:1}.cke_notification_message{position:relative;margin:4px 23px 3px;font-family:Arial,Helvetica,sans-serif;font-size:12px;line-height:18px;z-index:4;text-overflow:ellipsis;overflow:hidden}.cke_notification_close{background-image:url(images/close.png);background-repeat:no-repeat;background-position:50%;position:absolute;cursor:pointer;text-align:center;height:20px;width:20px;top:1px;right:1px;padding:0;margin:0;z-index:5;opacity:.6;filter:alpha(opacity = 60)}.cke_notification_close:hover{opacity:1;filter:alpha(opacity = 100)}.cke_notification_close span{display:none}.cke_notification_warning a.cke_notification_close{opacity:.8;filter:alpha(opacity = 80)}.cke_notification_warning a.cke_notification_close:hover{opacity:1;filter:alpha(opacity = 100)}.cke_chrome{visibility:inherit}.cke_voice_label{display:none}legend.cke_voice_label{display:none}.cke_button__about_icon{background:url(icons.png?t=JA5A) no-repeat 0 -0px!important}.cke_button__bold_icon{background:url(icons.png?t=JA5A) no-repeat 0 -24px!important}.cke_button__italic_icon{background:url(icons.png?t=JA5A) no-repeat 0 -48px!important}.cke_button__strike_icon{background:url(icons.png?t=JA5A) no-repeat 0 -72px!important}.cke_button__subscript_icon{background:url(icons.png?t=JA5A) no-repeat 0 -96px!important}.cke_button__superscript_icon{background:url(icons.png?t=JA5A) no-repeat 0 -120px!important}.cke_button__underline_icon{background:url(icons.png?t=JA5A) no-repeat 0 -144px!important}.cke_button__blockquote_icon{background:url(icons.png?t=JA5A) no-repeat 0 -168px!important}.cke_rtl .cke_button__copy_icon,.cke_mixed_dir_content .cke_rtl .cke_button__copy_icon{background:url(icons.png?t=JA5A) no-repeat 0 -192px!important}.cke_ltr .cke_button__copy_icon{background:url(icons.png?t=JA5A) no-repeat 0 -216px!important}.cke_rtl .cke_button__cut_icon,.cke_mixed_dir_content .cke_rtl .cke_button__cut_icon{background:url(icons.png?t=JA5A) no-repeat 0 -240px!important}.cke_ltr .cke_button__cut_icon{background:url(icons.png?t=JA5A) no-repeat 0 -264px!important}.cke_rtl .cke_button__paste_icon,.cke_mixed_dir_content .cke_rtl .cke_button__paste_icon{background:url(icons.png?t=JA5A) no-repeat 0 -288px!important}.cke_ltr .cke_button__paste_icon{background:url(icons.png?t=JA5A) no-repeat 0 -312px!important}.cke_button__horizontalrule_icon{background:url(icons.png?t=JA5A) no-repeat 0 -336px!important}.cke_button__image_icon{background:url(icons.png?t=JA5A) no-repeat 0 -360px!important}.cke_rtl .cke_button__indent_icon,.cke_mixed_dir_content .cke_rtl .cke_button__indent_icon{background:url(icons.png?t=JA5A) no-repeat 0 -384px!important}.cke_ltr .cke_button__indent_icon{background:url(icons.png?t=JA5A) no-repeat 0 -408px!important}.cke_rtl .cke_button__outdent_icon,.cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon{background:url(icons.png?t=JA5A) no-repeat 0 -432px!important}.cke_ltr .cke_button__outdent_icon{background:url(icons.png?t=JA5A) no-repeat 0 -456px!important}.cke_button__justifyblock_icon{background:url(icons.png?t=JA5A) no-repeat 0 -480px!important}.cke_button__justifycenter_icon{background:url(icons.png?t=JA5A) no-repeat 0 -504px!important}.cke_button__justifyleft_icon{background:url(icons.png?t=JA5A) no-repeat 0 -528px!important}.cke_button__justifyright_icon{background:url(icons.png?t=JA5A) no-repeat 0 -552px!important}.cke_button__language_icon{background:url(icons.png?t=JA5A) no-repeat 0 -576px!important}.cke_rtl .cke_button__bulletedlist_icon,.cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon{background:url(icons.png?t=JA5A) no-repeat 0 -600px!important}.cke_ltr .cke_button__bulletedlist_icon{background:url(icons.png?t=JA5A) no-repeat 0 -624px!important}.cke_rtl .cke_button__numberedlist_icon,.cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon{background:url(icons.png?t=JA5A) no-repeat 0 -648px!important}.cke_ltr .cke_button__numberedlist_icon{background:url(icons.png?t=JA5A) no-repeat 0 -672px!important}.cke_button__maximize_icon{background:url(icons.png?t=JA5A) no-repeat 0 -696px!important}.cke_rtl .cke_button__pastefromword_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon{background:url(icons.png?t=JA5A) no-repeat 0 -720px!important}.cke_ltr .cke_button__pastefromword_icon{background:url(icons.png?t=JA5A) no-repeat 0 -744px!important}.cke_rtl .cke_button__pastetext_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon{background:url(icons.png?t=JA5A) no-repeat 0 -768px!important}.cke_ltr .cke_button__pastetext_icon{background:url(icons.png?t=JA5A) no-repeat 0 -792px!important}.cke_button__removeformat_icon{background:url(icons.png?t=JA5A) no-repeat 0 -816px!important}.cke_rtl .cke_button__showblocks_icon,.cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon{background:url(icons.png?t=JA5A) no-repeat 0 -840px!important}.cke_ltr .cke_button__showblocks_icon{background:url(icons.png?t=JA5A) no-repeat 0 -864px!important}.cke_rtl .cke_button__source_icon,.cke_mixed_dir_content .cke_rtl .cke_button__source_icon{background:url(icons.png?t=JA5A) no-repeat 0 -888px!important}.cke_ltr .cke_button__source_icon{background:url(icons.png?t=JA5A) no-repeat 0 -912px!important}.cke_rtl .cke_button__sourcedialog_icon,.cke_mixed_dir_content .cke_rtl .cke_button__sourcedialog_icon{background:url(icons.png?t=JA5A) no-repeat 0 -936px!important}.cke_ltr .cke_button__sourcedialog_icon{background:url(icons.png?t=JA5A) no-repeat 0 -960px!important}.cke_button__specialchar_icon{background:url(icons.png?t=JA5A) no-repeat 0 -984px!important}.cke_button__table_icon{background:url(icons.png?t=JA5A) no-repeat 0 -1008px!important}.cke_rtl .cke_button__redo_icon,.cke_mixed_dir_content .cke_rtl .cke_button__redo_icon{background:url(icons.png?t=JA5A) no-repeat 0 -1032px!important}.cke_ltr .cke_button__redo_icon{background:url(icons.png?t=JA5A) no-repeat 0 -1056px!important}.cke_rtl .cke_button__undo_icon,.cke_mixed_dir_content .cke_rtl .cke_button__undo_icon{background:url(icons.png?t=JA5A) no-repeat 0 -1080px!important}.cke_ltr .cke_button__undo_icon{background:url(icons.png?t=JA5A) no-repeat 0 -1104px!important}.cke_button__simplebox_icon{background:url(icons.png?t=JA5A) no-repeat 0 -1128px!important}.cke_hidpi .cke_button__about_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -0px!important;background-size:16px!important}.cke_hidpi .cke_button__bold_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -24px!important;background-size:16px!important}.cke_hidpi .cke_button__italic_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -48px!important;background-size:16px!important}.cke_hidpi .cke_button__strike_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -72px!important;background-size:16px!important}.cke_hidpi .cke_button__subscript_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -96px!important;background-size:16px!important}.cke_hidpi .cke_button__superscript_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -120px!important;background-size:16px!important}.cke_hidpi .cke_button__underline_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -144px!important;background-size:16px!important}.cke_hidpi .cke_button__blockquote_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -168px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__copy_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__copy_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -192px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__copy_icon,.cke_ltr.cke_hidpi .cke_button__copy_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -216px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__cut_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__cut_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -240px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__cut_icon,.cke_ltr.cke_hidpi .cke_button__cut_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -264px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__paste_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__paste_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -288px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__paste_icon,.cke_ltr.cke_hidpi .cke_button__paste_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -312px!important;background-size:16px!important}.cke_hidpi .cke_button__horizontalrule_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -336px!important;background-size:16px!important}.cke_hidpi .cke_button__image_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -360px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__indent_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -384px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__indent_icon,.cke_ltr.cke_hidpi .cke_button__indent_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -408px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__outdent_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -432px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__outdent_icon,.cke_ltr.cke_hidpi .cke_button__outdent_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -456px!important;background-size:16px!important}.cke_hidpi .cke_button__justifyblock_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -480px!important;background-size:16px!important}.cke_hidpi .cke_button__justifycenter_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -504px!important;background-size:16px!important}.cke_hidpi .cke_button__justifyleft_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -528px!important;background-size:16px!important}.cke_hidpi .cke_button__justifyright_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -552px!important;background-size:16px!important}.cke_hidpi .cke_button__language_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -576px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__bulletedlist_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -600px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__bulletedlist_icon,.cke_ltr.cke_hidpi .cke_button__bulletedlist_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -624px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__numberedlist_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -648px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__numberedlist_icon,.cke_ltr.cke_hidpi .cke_button__numberedlist_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -672px!important;background-size:16px!important}.cke_hidpi .cke_button__maximize_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -696px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__pastefromword_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -720px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__pastefromword_icon,.cke_ltr.cke_hidpi .cke_button__pastefromword_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -744px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__pastetext_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -768px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__pastetext_icon,.cke_ltr.cke_hidpi .cke_button__pastetext_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -792px!important;background-size:16px!important}.cke_hidpi .cke_button__removeformat_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -816px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__showblocks_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -840px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__showblocks_icon,.cke_ltr.cke_hidpi .cke_button__showblocks_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -864px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__source_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__source_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -888px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__source_icon,.cke_ltr.cke_hidpi .cke_button__source_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -912px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__sourcedialog_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__sourcedialog_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -936px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__sourcedialog_icon,.cke_ltr.cke_hidpi .cke_button__sourcedialog_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -960px!important;background-size:16px!important}.cke_hidpi .cke_button__specialchar_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -984px!important;background-size:16px!important}.cke_hidpi .cke_button__table_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -1008px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__redo_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__redo_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -1032px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__redo_icon,.cke_ltr.cke_hidpi .cke_button__redo_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -1056px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__undo_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__undo_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -1080px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__undo_icon,.cke_ltr.cke_hidpi .cke_button__undo_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -1104px!important;background-size:16px!important}.cke_hidpi .cke_button__simplebox_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -2256px!important}a.cke_button_disabled,a.cke_button_disabled:hover,a.cke_button_disabled:focus,a.cke_button_disabled:active{filter:alpha(opacity = 30)}.cke_button_disabled .cke_button_icon{filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#00ffffff,endColorstr=#00ffffff)}.cke_button_off:hover,.cke_button_off:focus,.cke_button_off:active{filter:alpha(opacity = 100)}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{filter:alpha(opacity = 30)}.cke_toolbox_collapser{border:1px solid #a6a6a6}.cke_toolbox_collapser .cke_arrow{margin-top:1px}.cke_hc .cke_top,.cke_hc .cke_bottom,.cke_hc .cke_combo_button,.cke_hc a.cke_combo_button:hover,.cke_hc a.cke_combo_button:focus,.cke_hc .cke_toolgroup,.cke_hc .cke_button_on,.cke_hc a.cke_button_off:hover,.cke_hc a.cke_button_off:focus,.cke_hc a.cke_button_off:active,.cke_hc .cke_toolbox_collapser,.cke_hc .cke_toolbox_collapser:hover,.cke_hc .cke_panel_grouptitle{filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}
\ No newline at end of file
+.cke_reset{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;position:static;transition:none}.cke_reset_all,.cke_reset_all *,.cke_reset_all a,.cke_reset_all textarea{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;position:static;transition:none;border-collapse:collapse;font:normal normal normal 12px Arial,Helvetica,Tahoma,Verdana,Sans-Serif;color:#000;text-align:left;white-space:nowrap;cursor:auto;float:none}.cke_reset_all .cke_rtl *{text-align:right}.cke_reset_all iframe{vertical-align:inherit}.cke_reset_all textarea{white-space:pre-wrap}.cke_reset_all textarea,.cke_reset_all input[type="text"],.cke_reset_all input[type="password"]{cursor:text}.cke_reset_all textarea[disabled],.cke_reset_all input[type="text"][disabled],.cke_reset_all input[type="password"][disabled]{cursor:default}.cke_reset_all fieldset{padding:10px;border:2px groove #e0dfe3}.cke_reset_all select{box-sizing:border-box}.cke_reset_all table{table-layout:auto}.cke_chrome{display:block;border:1px solid #d1d1d1;padding:0}.cke_inner{display:block;background:#fff;padding:0;-webkit-touch-callout:none}.cke_float{border:0}.cke_float .cke_inner{padding-bottom:0}.cke_top,.cke_contents,.cke_bottom{display:block;overflow:hidden}.cke_top{border-bottom:1px solid #d1d1d1;background:#f8f8f8;padding:6px 8px 2px;white-space:normal}.cke_float .cke_top{border:1px solid #d1d1d1}.cke_bottom{padding:6px 8px 2px;position:relative;border-top:1px solid #d1d1d1;background:#f8f8f8}.cke_browser_ios .cke_contents{overflow-y:auto;-webkit-overflow-scrolling:touch}.cke_resizer{width:0;height:0;overflow:hidden;border-width:10px 10px 0 0;border-color:transparent #bcbcbc transparent transparent;border-style:dashed solid dashed dashed;font-size:0;vertical-align:bottom;margin-top:6px;margin-bottom:2px}.cke_hc .cke_resizer{font-size:15px;width:auto;height:auto;border-width:0}.cke_resizer_ltr{cursor:se-resize;float:right;margin-right:-4px}.cke_resizer_rtl{border-width:10px 0 0 10px;border-color:transparent transparent transparent #bcbcbc;border-style:dashed dashed dashed solid;cursor:sw-resize;float:left;margin-left:-4px;right:auto}.cke_wysiwyg_div{display:block;height:100%;overflow:auto;padding:0 8px;outline-style:none;box-sizing:border-box}.cke_panel{visibility:visible;width:120px;height:100px;overflow:hidden;background-color:#fff;border:1px solid #d1d1d1}.cke_menu_panel{padding:0;margin:0}.cke_combopanel{width:150px;height:170px}.cke_panel_frame{width:100%;height:100%;font-size:12px;overflow:auto;overflow-x:hidden}.cke_panel_container{overflow-y:auto;overflow-x:hidden}.cke_panel_block:focus{outline:0}.cke_panel_list{margin:0;padding:0;list-style-type:none;white-space:nowrap}.cke_panel_listItem{margin:0;padding:0}.cke_panel_listItem a{padding:6px 7px;display:block;color:inherit!important;text-decoration:none;overflow:hidden;text-overflow:ellipsis}.cke_hc .cke_panel_listItem a{border-style:none}.cke_panel_listItem.cke_selected a,.cke_panel_listItem a:hover,.cke_panel_listItem a:focus,.cke_panel_listItem a:active{background-color:#e9e9e9}.cke_panel_listItem a:focus{outline:1px dotted #000}.cke_hc .cke_panel_listItem a:hover,.cke_hc .cke_panel_listItem a:focus,.cke_hc .cke_panel_listItem a:active{border:2px solid;padding:4px 5px}.cke_panel_listItem p,.cke_panel_listItem h1,.cke_panel_listItem h2,.cke_panel_listItem h3,.cke_panel_listItem h4,.cke_panel_listItem h5,.cke_panel_listItem h6,.cke_panel_listItem pre{margin-top:0;margin-bottom:0}.cke_panel_grouptitle{cursor:default;font-size:11px;font-weight:bold;white-space:nowrap;margin:0;padding:6px 6px 7px 6px;color:#484848;border-bottom:1px solid #d1d1d1;background:#f8f8f8}.cke_colorblock{padding:10px;font-size:11px;font-family:'Microsoft Sans Serif',Tahoma,Arial,Verdana,Sans-Serif}.cke_colorblock,.cke_colorblock a{text-decoration:none;color:#000}a.cke_colorbox{padding:2px;float:left;width:20px;height:20px}.cke_rtl a.cke_colorbox{float:right}a:hover.cke_colorbox,a:focus.cke_colorbox,a:active.cke_colorbox{outline:0;padding:0;border:2px solid #139ff7}a:hover.cke_colorbox{border-color:#bcbcbc}span.cke_colorbox{width:20px;height:20px;float:left}.cke_rtl span.cke_colorbox{float:right}a.cke_colorauto,a.cke_colormore{border:#fff 1px solid;padding:3px;display:block;cursor:pointer}a.cke_colorauto{padding:0;border:1px solid transparent;margin-bottom:6px;height:26px;line-height:26px}a.cke_colormore{margin-top:10px;height:20px;line-height:19px}a:hover.cke_colorauto,a:hover.cke_colormore,a:focus.cke_colorauto,a:focus.cke_colormore,a:active.cke_colorauto,a:active.cke_colormore{outline:0;border:#139ff7 1px solid;background-color:#f8f8f8}a:hover.cke_colorauto,a:hover.cke_colormore{border-color:#bcbcbc}.cke_colorauto span.cke_colorbox{width:18px;height:18px;border:1px solid #808080;margin-left:1px;margin-top:3px}.cke_rtl .cke_colorauto span.cke_colorbox{margin-left:0;margin-right:1px}span.cke_colorbox[style*="#ffffff"],span.cke_colorbox[style*="#FFFFFF"],span.cke_colorbox[style="background-color:#fff"],span.cke_colorbox[style="background-color:#FFF"],span.cke_colorbox[style*="rgb(255,255,255)"],span.cke_colorbox[style*="rgb(255, 255, 255)"]{border:1px solid #808080;width:18px;height:18px}.cke_toolbar{float:left}.cke_rtl .cke_toolbar{float:right}.cke_toolgroup{border:0;float:left;margin:1px 2px 6px 0;padding-right:3px}.cke_rtl .cke_toolgroup{float:right;margin:1px 0 6px 2px;padding-left:3px;padding-right:0}.cke_hc .cke_toolgroup{margin-right:5px;margin-bottom:5px}.cke_hc.cke_rtl .cke_toolgroup{margin-right:0;margin-left:5px}a.cke_button{display:inline-block;height:18px;padding:4px 6px;outline:0;cursor:default;float:left;border:0;position:relative}a.cke_button_expandable{padding:4px 5px}.cke_rtl a.cke_button{float:right}.cke_hc a.cke_button{border:1px solid black;padding:3px 5px;margin:0 3px 5px 0}.cke_hc.cke_rtl a.cke_button{margin:0 0 5px 3px}a.cke_button_on{background:#fff;border:1px #bcbcbc solid;padding:3px 5px}a.cke_button_expandable.cke_button_on{padding:3px 4px}a.cke_button_off:hover,a.cke_button_off:focus,a.cke_button_off:active{background:#e5e5e5;border:1px #bcbcbc solid;padding:3px 5px}a.cke_button_expandable.cke_button_off:hover,a.cke_button_expandable.cke_button_off:focus,a.cke_button_expandable.cke_button_off:active{padding:3px 4px}.cke_hc a.cke_button_on,.cke_hc a.cke_button_off:hover,.cke_hc a.cke_button_off:focus,.cke_hc a.cke_button_off:active{background:#e5e5e5;border:3px solid #000;padding:1px 3px}a.cke_button_disabled:hover,a.cke_button_disabled:focus,a.cke_button_disabled:active{border:0;padding:4px 6px;background-color:transparent}a.cke_button_expandable.cke_button_disabled:hover,a.cke_button_expandable.cke_button_disabled:active{padding:4px 5px}a.cke_button_disabled:focus{border:1px #bcbcbc solid;padding:3px 5px}a.cke_button_expandable.cke_button_disabled:focus{padding:3px 4px}.cke_hc a.cke_button_disabled:hover,.cke_hc a.cke_button_disabled:focus,.cke_hc a.cke_button_disabled:active{border:1px solid #acacac;padding:3px 5px;margin:0 3px 5px 0}.cke_hc a.cke_button_disabled:focus{border:3px solid #000;padding:1px 3px}.cke_hc.cke_rtl a.cke_button_disabled:hover,.cke_hc.cke_rtl a.cke_button_disabled:focus,.cke_hc.cke_rtl a.cke_button_disabled:active{margin:0 0 5px 3px}a.cke_button_disabled .cke_button_icon,a.cke_button_disabled .cke_button_arrow{opacity:.3}.cke_hc a.cke_button_disabled{border-color:#acacac}.cke_hc a.cke_button_disabled .cke_button_icon,.cke_hc a.cke_button_disabled .cke_button_label{opacity:.5}.cke_toolgroup a.cke_button:last-child:after,.cke_toolgroup a.cke_button.cke_button_disabled:hover:last-child:after{content:"";position:absolute;height:18px;width:0;border-right:1px solid #bcbcbc;margin-top:4px;top:0;right:-3px}.cke_rtl .cke_toolgroup a.cke_button:last-child:after,.cke_rtl .cke_toolgroup a.cke_button.cke_button_disabled:hover:last-child:after{border-right:0;right:auto;border-left:1px solid #bcbcbc;top:0;left:-3px}.cke_hc .cke_toolgroup a.cke_button:last-child:after,.cke_hc .cke_toolgroup a.cke_button.cke_button_disabled:last-child:after,.cke_hc .cke_toolgroup a.cke_button.cke_button_disabled:hover:last-child:after{border-color:#000;top:0;right:-7px}.cke_hc.cke_rtl .cke_toolgroup a.cke_button:last-child:after,.cke_hc.cke_rtl .cke_toolgroup a.cke_button.cke_button_disabled:last-child:after,.cke_hc.cke_rtl .cke_toolgroup a.cke_button.cke_button_disabled:hover:last-child:after{top:0;right:auto;left:-7px}.cke_toolgroup a.cke_button:hover:last-child:after,.cke_toolgroup a.cke_button:focus:last-child:after,.cke_toolgroup a.cke_button.cke_button_on:last-child:after{top:-1px;right:-4px}.cke_rtl .cke_toolgroup a.cke_button:hover:last-child:after,.cke_rtl .cke_toolgroup a.cke_button:focus:last-child:after,.cke_rtl .cke_toolgroup a.cke_button.cke_button_on:last-child:after{top:-1px;right:auto;left:-4px}.cke_hc .cke_toolgroup a.cke_button:hover:last-child:after,.cke_hc .cke_toolgroup a.cke_button.cke_button_on:last-child:after{top:-2px;right:-9px}.cke_hc.cke_rtl .cke_toolgroup a.cke_button:hover:last-child:after,.cke_hc.cke_rtl .cke_toolgroup a.cke_button.cke_button_on:last-child:after{top:-2px;right:auto;left:-9px}.cke_toolbar.cke_toolbar_last .cke_toolgroup a.cke_button:last-child:after{content:none;border:0;width:0;height:0}.cke_button_icon{cursor:inherit;background-repeat:no-repeat;margin-top:1px;width:16px;height:16px;float:left;display:inline-block}.cke_rtl .cke_button_icon{float:right}.cke_hc .cke_button_icon{display:none}.cke_button_label{display:none;padding-left:3px;margin-top:1px;line-height:17px;vertical-align:middle;float:left;cursor:default;color:#484848}.cke_rtl .cke_button_label{padding-right:3px;padding-left:0;float:right}.cke_hc .cke_button_label{padding:0;display:inline-block;font-size:12px}.cke_button_arrow{display:inline-block;margin:8px 0 0 3px;width:0;height:0;cursor:default;vertical-align:top;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #484848}.cke_rtl .cke_button_arrow{margin-right:5px;margin-left:0}.cke_hc .cke_button_arrow{font-size:10px;margin:3px 0 0 3px;width:auto;border:0}.cke_toolbar_separator{float:left;background-color:#bcbcbc;margin:4px 2px 0 2px;height:18px;width:1px}.cke_rtl .cke_toolbar_separator{float:right}.cke_hc .cke_toolbar_separator{background-color:#000;margin-left:2px;margin-right:5px;margin-bottom:9px}.cke_hc.cke_rtl .cke_toolbar_separator{margin-left:5px;margin-right:2px}.cke_toolbar_break{display:block;clear:left}.cke_rtl .cke_toolbar_break{clear:right}a.cke_toolbox_collapser{width:12px;height:11px;float:right;margin:11px 0 0;font-size:0;cursor:default;text-align:center;border:1px solid #bcbcbc}.cke_rtl .cke_toolbox_collapser{float:left}.cke_toolbox_collapser:hover{background:#e5e5e5}.cke_toolbox_collapser.cke_toolbox_collapser_min{margin:0 2px 4px}.cke_toolbox_collapser .cke_arrow{display:inline-block;height:0;width:0;font-size:0;margin-top:1px;border:3px solid transparent;border-bottom-color:#484848}.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow{margin-top:4px;border-bottom-color:transparent;border-top-color:#484848}.cke_hc .cke_toolbox_collapser .cke_arrow{font-size:8px;width:auto;border:0;margin-top:0}.cke_menuitem span{cursor:default}.cke_menubutton{display:block}.cke_hc .cke_menubutton{padding:2px}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#e9e9e9;display:block;outline:1px dotted}.cke_menubutton:hover{outline:0}.cke_hc .cke_menubutton:hover,.cke_hc .cke_menubutton:focus,.cke_hc .cke_menubutton:active{border:2px solid;padding:0}.cke_menubutton_disabled:hover,.cke_menubutton_disabled:focus,.cke_menubutton_disabled:active{background-color:transparent;outline:0}.cke_menubutton_inner{display:table-row}.cke_menubutton_icon,.cke_menubutton_label,.cke_menuarrow{display:table-cell}.cke_menubutton_icon{background-color:#f8f8f8;padding:6px 4px}.cke_hc .cke_menubutton_icon{height:16px;width:0;padding:4px 0}.cke_menubutton:hover .cke_menubutton_icon,.cke_menubutton:focus .cke_menubutton_icon,.cke_menubutton:active .cke_menubutton_icon{background-color:#e9e9e9}.cke_menubutton_disabled:hover .cke_menubutton_icon,.cke_menubutton_disabled:focus .cke_menubutton_icon,.cke_menubutton_disabled:active .cke_menubutton_icon{background-color:#f8f8f8;outline:0}.cke_menuitem .cke_menubutton_on{background-color:#e9e9e9;border:1px solid #dedede;outline:0}.cke_menubutton_on .cke_menubutton_icon{padding-right:3px;background-color:#e9e9e9}.cke_menubutton_label{padding:0 5px;background-color:transparent;width:100%;vertical-align:middle}.cke_menubutton_shortcut{color:#979797}.cke_menubutton_disabled .cke_menubutton_label{opacity:.3;filter:alpha(opacity=30)}.cke_panel_frame .cke_menubutton_label{display:none}.cke_menuseparator{background-color:#d1d1d1;height:1px}.cke_menuarrow{background:transparent url(images/arrow.png) no-repeat 0 10px;padding:0 5px}.cke_rtl .cke_menuarrow{background-position:5px -13px;background-repeat:no-repeat}.cke_hc .cke_menuarrow{background-image:none}.cke_menuarrow span{display:none}.cke_hc .cke_menuarrow span{vertical-align:middle;display:inline}.cke_combo{display:inline-block;float:left;position:relative;margin-bottom:5px}.cke_rtl .cke_combo{float:right}.cke_hc .cke_combo{margin-top:1px;margin-bottom:10px}.cke_combo:after{content:"";position:absolute;height:18px;width:0;border-right:1px solid #bcbcbc;margin-top:5px;top:0;right:0}.cke_rtl .cke_combo:after{border-right:0;border-left:1px solid #bcbcbc;right:auto;left:0}.cke_hc .cke_combo:after{border-color:#000}a.cke_combo_button{cursor:default;display:inline-block;float:left;margin:0;padding:1px}.cke_rtl a.cke_combo_button{float:right}.cke_hc a.cke_combo_button{padding:4px}.cke_combo_on a.cke_combo_button,.cke_combo_off a.cke_combo_button:hover,.cke_combo_off a.cke_combo_button:focus,.cke_combo_off a.cke_combo_button:active{background:#e5e5e5;border:1px solid #bcbcbc;padding:0 0 0 1px;margin-left:-1px}.cke_combo_off a.cke_combo_button:focus{outline:0}.cke_combo_on a.cke_combo_button,.cke_combo_off a.cke_combo_button:active{background:#fff}.cke_rtl .cke_combo_on a.cke_combo_button,.cke_rtl .cke_combo_off a.cke_combo_button:hover,.cke_rtl .cke_combo_off a.cke_combo_button:focus,.cke_rtl .cke_combo_off a.cke_combo_button:active{padding:0 1px 0 0;margin-left:0;margin-right:-1px}.cke_hc .cke_combo_on a.cke_combo_button,.cke_hc .cke_combo_off a.cke_combo_button:hover,.cke_hc .cke_combo_off a.cke_combo_button:focus,.cke_hc .cke_combo_off a.cke_combo_button:active{border:3px solid #000;padding:1px 1px 1px 2px}.cke_hc.cke_rtl .cke_combo_on a.cke_combo_button,.cke_hc.cke_rtl .cke_combo_off a.cke_combo_button:hover,.cke_hc.cke_rtl .cke_combo_off a.cke_combo_button:focus,.cke_hc.cke_rtl .cke_combo_off a.cke_combo_button:active{padding:1px 2px 1px 1px}.cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_toolbar_start+.cke_combo_off a.cke_combo_button:active{padding:0 0 0 3px;margin-left:-3px}.cke_rtl .cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_rtl .cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_rtl .cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_rtl .cke_toolbar_start+.cke_combo_off a.cke_combo_button:active{padding:0 3px 0 0;margin-left:0;margin-right:-3px}.cke_hc .cke_toolbar>.cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_hc .cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_hc .cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_hc .cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:active{padding:1px 1px 1px 7px;margin-left:-6px}.cke_hc.cke_rtl .cke_toolbar>.cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_hc.cke_rtl .cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_hc.cke_rtl .cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_hc.cke_rtl .cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:active{padding:1px 7px 1px 1px;margin-left:0;margin-right:-6px}.cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:active,.cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:active{padding:0;margin:0}.cke_hc .cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_hc .cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_hc .cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_hc .cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:active,.cke_hc .cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_hc .cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_hc .cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_hc .cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:active{padding:1px;margin:0}.cke_toolbar .cke_combo+.cke_toolbar_end,.cke_toolbar .cke_combo+.cke_toolgroup{margin-right:0;margin-left:2px}.cke_rtl .cke_toolbar .cke_combo+.cke_toolbar_end,.cke_rtl .cke_toolbar .cke_combo+.cke_toolgroup{margin-left:0;margin-right:2px}.cke_hc .cke_toolbar .cke_combo+.cke_toolbar_end,.cke_hc .cke_toolbar .cke_combo+.cke_toolgroup{margin-left:5px}.cke_hc.cke_rtl .cke_toolbar .cke_combo+.cke_toolbar_end,.cke_hc.cke_rtl .cke_toolbar .cke_combo+.cke_toolgroup{margin-left:0;margin-right:5px}.cke_toolbar.cke_toolbar_last .cke_combo:nth-last-child(-n+2):after{content:none;border:0;width:0;height:0}.cke_combo_text{line-height:26px;padding-left:10px;text-overflow:ellipsis;overflow:hidden;float:left;cursor:default;color:#484848;width:60px}.cke_rtl .cke_combo_text{float:right;text-align:right;padding-left:0;padding-right:10px}.cke_hc .cke_combo_text{line-height:18px;font-size:12px}.cke_combo_open{cursor:default;display:inline-block;font-size:0;height:19px;line-height:17px;margin:1px 10px 1px;width:5px}.cke_hc .cke_combo_open{height:12px}.cke_combo_arrow{cursor:default;margin:11px 0 0;float:left;height:0;width:0;font-size:0;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #484848}.cke_hc .cke_combo_arrow{font-size:10px;width:auto;border:0;margin-top:3px}.cke_combo_label{display:none;float:left;line-height:26px;vertical-align:top;margin-right:5px}.cke_rtl .cke_combo_label{float:right;margin-left:5px;margin-right:0}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{opacity:.3}.cke_path{float:left;margin:-2px 0 2px}a.cke_path_item,span.cke_path_empty{display:inline-block;float:left;padding:3px 4px;margin-right:2px;cursor:default;text-decoration:none;outline:0;border:0;color:#484848;font-weight:bold;font-size:11px}.cke_rtl .cke_path,.cke_rtl .cke_path_item,.cke_rtl .cke_path_empty{float:right}a.cke_path_item:hover,a.cke_path_item:focus,a.cke_path_item:active{background-color:#e5e5e5}.cke_hc a.cke_path_item:hover,.cke_hc a.cke_path_item:focus,.cke_hc a.cke_path_item:active{border:2px solid;padding:1px 2px}.cke_button__source_label,.cke_button__sourcedialog_label{display:inline}.cke_combopanel__fontsize{width:135px}textarea.cke_source{font-family:'Courier New',Monospace;font-size:small;background-color:#fff;white-space:pre-wrap;border:0;padding:0;margin:0;display:block}.cke_wysiwyg_frame,.cke_wysiwyg_div{background-color:#fff}.cke_notifications_area{pointer-events:none}.cke_notification{pointer-events:auto;position:relative;margin:10px;width:300px;color:white;text-align:center;opacity:.95;filter:alpha(opacity = 95);-webkit-animation:fadeIn .7s;animation:fadeIn .7s}.cke_notification_message a{color:#12306f}@-webkit-keyframes fadeIn{from{opacity:.4}to{opacity:.95}}@keyframes fadeIn{from{opacity:.4}to{opacity:.95}}.cke_notification_success{background:#72b572;border:1px solid #63a563}.cke_notification_warning{background:#c83939;border:1px solid #902b2b}.cke_notification_info{background:#2e9ad0;border:1px solid #0f74a8}.cke_notification_info span.cke_notification_progress{background-color:#0f74a8;display:block;padding:0;margin:0;height:100%;overflow:hidden;position:absolute;z-index:1}.cke_notification_message{position:relative;margin:4px 23px 3px;font-family:Arial,Helvetica,sans-serif;font-size:12px;line-height:18px;z-index:4;text-overflow:ellipsis;overflow:hidden}.cke_notification_close{background-image:url(images/close.png);background-repeat:no-repeat;background-position:50%;position:absolute;cursor:pointer;text-align:center;height:20px;width:20px;top:1px;right:1px;padding:0;margin:0;z-index:5;opacity:.6;filter:alpha(opacity = 60)}.cke_notification_close:hover{opacity:1;filter:alpha(opacity = 100)}.cke_notification_close span{display:none}.cke_notification_warning a.cke_notification_close{opacity:.8;filter:alpha(opacity = 80)}.cke_notification_warning a.cke_notification_close:hover{opacity:1;filter:alpha(opacity = 100)}.cke_chrome{visibility:inherit}.cke_voice_label{display:none}legend.cke_voice_label{display:none}.cke_button__about_icon{background:url(icons.png?t=K1SC) no-repeat 0 -0px!important}.cke_button__bold_icon{background:url(icons.png?t=K1SC) no-repeat 0 -24px!important}.cke_button__italic_icon{background:url(icons.png?t=K1SC) no-repeat 0 -48px!important}.cke_button__strike_icon{background:url(icons.png?t=K1SC) no-repeat 0 -72px!important}.cke_button__subscript_icon{background:url(icons.png?t=K1SC) no-repeat 0 -96px!important}.cke_button__superscript_icon{background:url(icons.png?t=K1SC) no-repeat 0 -120px!important}.cke_button__underline_icon{background:url(icons.png?t=K1SC) no-repeat 0 -144px!important}.cke_button__blockquote_icon{background:url(icons.png?t=K1SC) no-repeat 0 -168px!important}.cke_rtl .cke_button__copy_icon,.cke_mixed_dir_content .cke_rtl .cke_button__copy_icon{background:url(icons.png?t=K1SC) no-repeat 0 -192px!important}.cke_ltr .cke_button__copy_icon{background:url(icons.png?t=K1SC) no-repeat 0 -216px!important}.cke_rtl .cke_button__cut_icon,.cke_mixed_dir_content .cke_rtl .cke_button__cut_icon{background:url(icons.png?t=K1SC) no-repeat 0 -240px!important}.cke_ltr .cke_button__cut_icon{background:url(icons.png?t=K1SC) no-repeat 0 -264px!important}.cke_rtl .cke_button__paste_icon,.cke_mixed_dir_content .cke_rtl .cke_button__paste_icon{background:url(icons.png?t=K1SC) no-repeat 0 -288px!important}.cke_ltr .cke_button__paste_icon{background:url(icons.png?t=K1SC) no-repeat 0 -312px!important}.cke_button__horizontalrule_icon{background:url(icons.png?t=K1SC) no-repeat 0 -336px!important}.cke_button__image_icon{background:url(icons.png?t=K1SC) no-repeat 0 -360px!important}.cke_rtl .cke_button__indent_icon,.cke_mixed_dir_content .cke_rtl .cke_button__indent_icon{background:url(icons.png?t=K1SC) no-repeat 0 -384px!important}.cke_ltr .cke_button__indent_icon{background:url(icons.png?t=K1SC) no-repeat 0 -408px!important}.cke_rtl .cke_button__outdent_icon,.cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon{background:url(icons.png?t=K1SC) no-repeat 0 -432px!important}.cke_ltr .cke_button__outdent_icon{background:url(icons.png?t=K1SC) no-repeat 0 -456px!important}.cke_button__justifyblock_icon{background:url(icons.png?t=K1SC) no-repeat 0 -480px!important}.cke_button__justifycenter_icon{background:url(icons.png?t=K1SC) no-repeat 0 -504px!important}.cke_button__justifyleft_icon{background:url(icons.png?t=K1SC) no-repeat 0 -528px!important}.cke_button__justifyright_icon{background:url(icons.png?t=K1SC) no-repeat 0 -552px!important}.cke_button__language_icon{background:url(icons.png?t=K1SC) no-repeat 0 -576px!important}.cke_rtl .cke_button__bulletedlist_icon,.cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon{background:url(icons.png?t=K1SC) no-repeat 0 -600px!important}.cke_ltr .cke_button__bulletedlist_icon{background:url(icons.png?t=K1SC) no-repeat 0 -624px!important}.cke_rtl .cke_button__numberedlist_icon,.cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon{background:url(icons.png?t=K1SC) no-repeat 0 -648px!important}.cke_ltr .cke_button__numberedlist_icon{background:url(icons.png?t=K1SC) no-repeat 0 -672px!important}.cke_button__maximize_icon{background:url(icons.png?t=K1SC) no-repeat 0 -696px!important}.cke_rtl .cke_button__pastefromword_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon{background:url(icons.png?t=K1SC) no-repeat 0 -720px!important}.cke_ltr .cke_button__pastefromword_icon{background:url(icons.png?t=K1SC) no-repeat 0 -744px!important}.cke_rtl .cke_button__pastetext_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon{background:url(icons.png?t=K1SC) no-repeat 0 -768px!important}.cke_ltr .cke_button__pastetext_icon{background:url(icons.png?t=K1SC) no-repeat 0 -792px!important}.cke_button__removeformat_icon{background:url(icons.png?t=K1SC) no-repeat 0 -816px!important}.cke_rtl .cke_button__showblocks_icon,.cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon{background:url(icons.png?t=K1SC) no-repeat 0 -840px!important}.cke_ltr .cke_button__showblocks_icon{background:url(icons.png?t=K1SC) no-repeat 0 -864px!important}.cke_rtl .cke_button__source_icon,.cke_mixed_dir_content .cke_rtl .cke_button__source_icon{background:url(icons.png?t=K1SC) no-repeat 0 -888px!important}.cke_ltr .cke_button__source_icon{background:url(icons.png?t=K1SC) no-repeat 0 -912px!important}.cke_rtl .cke_button__sourcedialog_icon,.cke_mixed_dir_content .cke_rtl .cke_button__sourcedialog_icon{background:url(icons.png?t=K1SC) no-repeat 0 -936px!important}.cke_ltr .cke_button__sourcedialog_icon{background:url(icons.png?t=K1SC) no-repeat 0 -960px!important}.cke_button__specialchar_icon{background:url(icons.png?t=K1SC) no-repeat 0 -984px!important}.cke_button__table_icon{background:url(icons.png?t=K1SC) no-repeat 0 -1008px!important}.cke_rtl .cke_button__redo_icon,.cke_mixed_dir_content .cke_rtl .cke_button__redo_icon{background:url(icons.png?t=K1SC) no-repeat 0 -1032px!important}.cke_ltr .cke_button__redo_icon{background:url(icons.png?t=K1SC) no-repeat 0 -1056px!important}.cke_rtl .cke_button__undo_icon,.cke_mixed_dir_content .cke_rtl .cke_button__undo_icon{background:url(icons.png?t=K1SC) no-repeat 0 -1080px!important}.cke_ltr .cke_button__undo_icon{background:url(icons.png?t=K1SC) no-repeat 0 -1104px!important}.cke_button__simplebox_icon{background:url(icons.png?t=K1SC) no-repeat 0 -1128px!important}.cke_hidpi .cke_button__about_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -0px!important;background-size:16px!important}.cke_hidpi .cke_button__bold_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -24px!important;background-size:16px!important}.cke_hidpi .cke_button__italic_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -48px!important;background-size:16px!important}.cke_hidpi .cke_button__strike_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -72px!important;background-size:16px!important}.cke_hidpi .cke_button__subscript_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -96px!important;background-size:16px!important}.cke_hidpi .cke_button__superscript_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -120px!important;background-size:16px!important}.cke_hidpi .cke_button__underline_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -144px!important;background-size:16px!important}.cke_hidpi .cke_button__blockquote_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -168px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__copy_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__copy_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -192px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__copy_icon,.cke_ltr.cke_hidpi .cke_button__copy_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -216px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__cut_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__cut_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -240px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__cut_icon,.cke_ltr.cke_hidpi .cke_button__cut_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -264px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__paste_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__paste_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -288px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__paste_icon,.cke_ltr.cke_hidpi .cke_button__paste_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -312px!important;background-size:16px!important}.cke_hidpi .cke_button__horizontalrule_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -336px!important;background-size:16px!important}.cke_hidpi .cke_button__image_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -360px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__indent_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -384px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__indent_icon,.cke_ltr.cke_hidpi .cke_button__indent_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -408px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__outdent_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -432px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__outdent_icon,.cke_ltr.cke_hidpi .cke_button__outdent_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -456px!important;background-size:16px!important}.cke_hidpi .cke_button__justifyblock_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -480px!important;background-size:16px!important}.cke_hidpi .cke_button__justifycenter_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -504px!important;background-size:16px!important}.cke_hidpi .cke_button__justifyleft_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -528px!important;background-size:16px!important}.cke_hidpi .cke_button__justifyright_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -552px!important;background-size:16px!important}.cke_hidpi .cke_button__language_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -576px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__bulletedlist_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -600px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__bulletedlist_icon,.cke_ltr.cke_hidpi .cke_button__bulletedlist_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -624px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__numberedlist_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -648px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__numberedlist_icon,.cke_ltr.cke_hidpi .cke_button__numberedlist_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -672px!important;background-size:16px!important}.cke_hidpi .cke_button__maximize_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -696px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__pastefromword_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -720px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__pastefromword_icon,.cke_ltr.cke_hidpi .cke_button__pastefromword_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -744px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__pastetext_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -768px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__pastetext_icon,.cke_ltr.cke_hidpi .cke_button__pastetext_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -792px!important;background-size:16px!important}.cke_hidpi .cke_button__removeformat_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -816px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__showblocks_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -840px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__showblocks_icon,.cke_ltr.cke_hidpi .cke_button__showblocks_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -864px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__source_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__source_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -888px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__source_icon,.cke_ltr.cke_hidpi .cke_button__source_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -912px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__sourcedialog_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__sourcedialog_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -936px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__sourcedialog_icon,.cke_ltr.cke_hidpi .cke_button__sourcedialog_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -960px!important;background-size:16px!important}.cke_hidpi .cke_button__specialchar_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -984px!important;background-size:16px!important}.cke_hidpi .cke_button__table_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -1008px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__redo_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__redo_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -1032px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__redo_icon,.cke_ltr.cke_hidpi .cke_button__redo_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -1056px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__undo_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__undo_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -1080px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__undo_icon,.cke_ltr.cke_hidpi .cke_button__undo_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -1104px!important;background-size:16px!important}.cke_hidpi .cke_button__simplebox_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -2256px!important}a.cke_button_disabled,a.cke_button_disabled:hover,a.cke_button_disabled:focus,a.cke_button_disabled:active{filter:alpha(opacity = 30)}.cke_button_disabled .cke_button_icon{filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#00ffffff,endColorstr=#00ffffff)}.cke_button_off:hover,.cke_button_off:focus,.cke_button_off:active{filter:alpha(opacity = 100)}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{filter:alpha(opacity = 30)}.cke_toolbox_collapser{border:1px solid #a6a6a6}.cke_toolbox_collapser .cke_arrow{margin-top:1px}.cke_hc .cke_top,.cke_hc .cke_bottom,.cke_hc .cke_combo_button,.cke_hc a.cke_combo_button:hover,.cke_hc a.cke_combo_button:focus,.cke_hc .cke_toolgroup,.cke_hc .cke_button_on,.cke_hc a.cke_button_off:hover,.cke_hc a.cke_button_off:focus,.cke_hc a.cke_button_off:active,.cke_hc .cke_toolbox_collapser,.cke_hc .cke_toolbox_collapser:hover,.cke_hc .cke_panel_grouptitle{filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}
\ No newline at end of file
diff --git a/web/core/assets/vendor/ckeditor/skins/moono-lisa/editor_ie8.css b/web/core/assets/vendor/ckeditor/skins/moono-lisa/editor_ie8.css
index d1309ff21f..a8b404b1e6 100644
--- a/web/core/assets/vendor/ckeditor/skins/moono-lisa/editor_ie8.css
+++ b/web/core/assets/vendor/ckeditor/skins/moono-lisa/editor_ie8.css
@@ -2,4 +2,4 @@
 Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */
-.cke_reset{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;position:static;transition:none}.cke_reset_all,.cke_reset_all *,.cke_reset_all a,.cke_reset_all textarea{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;position:static;transition:none;border-collapse:collapse;font:normal normal normal 12px Arial,Helvetica,Tahoma,Verdana,Sans-Serif;color:#000;text-align:left;white-space:nowrap;cursor:auto;float:none}.cke_reset_all .cke_rtl *{text-align:right}.cke_reset_all iframe{vertical-align:inherit}.cke_reset_all textarea{white-space:pre-wrap}.cke_reset_all textarea,.cke_reset_all input[type="text"],.cke_reset_all input[type="password"]{cursor:text}.cke_reset_all textarea[disabled],.cke_reset_all input[type="text"][disabled],.cke_reset_all input[type="password"][disabled]{cursor:default}.cke_reset_all fieldset{padding:10px;border:2px groove #e0dfe3}.cke_reset_all select{box-sizing:border-box}.cke_reset_all table{table-layout:auto}.cke_chrome{display:block;border:1px solid #d1d1d1;padding:0}.cke_inner{display:block;background:#fff;padding:0;-webkit-touch-callout:none}.cke_float{border:0}.cke_float .cke_inner{padding-bottom:0}.cke_top,.cke_contents,.cke_bottom{display:block;overflow:hidden}.cke_top{border-bottom:1px solid #d1d1d1;background:#f8f8f8;padding:6px 8px 2px;white-space:normal}.cke_float .cke_top{border:1px solid #d1d1d1}.cke_bottom{padding:6px 8px 2px;position:relative;border-top:1px solid #d1d1d1;background:#f8f8f8}.cke_browser_ios .cke_contents{overflow-y:auto;-webkit-overflow-scrolling:touch}.cke_resizer{width:0;height:0;overflow:hidden;border-width:10px 10px 0 0;border-color:transparent #bcbcbc transparent transparent;border-style:dashed solid dashed dashed;font-size:0;vertical-align:bottom;margin-top:6px;margin-bottom:2px}.cke_hc .cke_resizer{font-size:15px;width:auto;height:auto;border-width:0}.cke_resizer_ltr{cursor:se-resize;float:right;margin-right:-4px}.cke_resizer_rtl{border-width:10px 0 0 10px;border-color:transparent transparent transparent #bcbcbc;border-style:dashed dashed dashed solid;cursor:sw-resize;float:left;margin-left:-4px;right:auto}.cke_wysiwyg_div{display:block;height:100%;overflow:auto;padding:0 8px;outline-style:none;box-sizing:border-box}.cke_panel{visibility:visible;width:120px;height:100px;overflow:hidden;background-color:#fff;border:1px solid #d1d1d1}.cke_menu_panel{padding:0;margin:0}.cke_combopanel{width:150px;height:170px}.cke_panel_frame{width:100%;height:100%;font-size:12px;overflow:auto;overflow-x:hidden}.cke_panel_container{overflow-y:auto;overflow-x:hidden}.cke_panel_block:focus{outline:0}.cke_panel_list{margin:0;padding:0;list-style-type:none;white-space:nowrap}.cke_panel_listItem{margin:0;padding:0}.cke_panel_listItem a{padding:6px 7px;display:block;color:inherit!important;text-decoration:none;overflow:hidden;text-overflow:ellipsis}.cke_hc .cke_panel_listItem a{border-style:none}.cke_panel_listItem.cke_selected a,.cke_panel_listItem a:hover,.cke_panel_listItem a:focus,.cke_panel_listItem a:active{background-color:#e9e9e9}.cke_panel_listItem a:focus{outline:1px dotted #000}.cke_hc .cke_panel_listItem a:hover,.cke_hc .cke_panel_listItem a:focus,.cke_hc .cke_panel_listItem a:active{border:2px solid;padding:4px 5px}.cke_panel_listItem p,.cke_panel_listItem h1,.cke_panel_listItem h2,.cke_panel_listItem h3,.cke_panel_listItem h4,.cke_panel_listItem h5,.cke_panel_listItem h6,.cke_panel_listItem pre{margin-top:0;margin-bottom:0}.cke_panel_grouptitle{cursor:default;font-size:11px;font-weight:bold;white-space:nowrap;margin:0;padding:6px 6px 7px 6px;color:#484848;border-bottom:1px solid #d1d1d1;background:#f8f8f8}.cke_colorblock{padding:10px;font-size:11px;font-family:'Microsoft Sans Serif',Tahoma,Arial,Verdana,Sans-Serif}.cke_colorblock,.cke_colorblock a{text-decoration:none;color:#000}a.cke_colorbox{padding:2px;float:left;width:20px;height:20px}.cke_rtl a.cke_colorbox{float:right}a:hover.cke_colorbox,a:focus.cke_colorbox,a:active.cke_colorbox{outline:0;padding:0;border:2px solid #139ff7}a:hover.cke_colorbox{border-color:#bcbcbc}span.cke_colorbox{width:20px;height:20px;float:left}.cke_rtl span.cke_colorbox{float:right}a.cke_colorauto,a.cke_colormore{border:#fff 1px solid;padding:3px;display:block;cursor:pointer}a.cke_colorauto{padding:0;border:1px solid transparent;margin-bottom:6px;height:26px;line-height:26px}a.cke_colormore{margin-top:10px;height:20px;line-height:19px}a:hover.cke_colorauto,a:hover.cke_colormore,a:focus.cke_colorauto,a:focus.cke_colormore,a:active.cke_colorauto,a:active.cke_colormore{outline:0;border:#139ff7 1px solid;background-color:#f8f8f8}a:hover.cke_colorauto,a:hover.cke_colormore{border-color:#bcbcbc}.cke_colorauto span.cke_colorbox{width:18px;height:18px;border:1px solid #808080;margin-left:1px;margin-top:3px}.cke_rtl .cke_colorauto span.cke_colorbox{margin-left:0;margin-right:1px}span.cke_colorbox[style*="#ffffff"],span.cke_colorbox[style*="#FFFFFF"],span.cke_colorbox[style="background-color:#fff"],span.cke_colorbox[style="background-color:#FFF"],span.cke_colorbox[style*="rgb(255,255,255)"],span.cke_colorbox[style*="rgb(255, 255, 255)"]{border:1px solid #808080;width:18px;height:18px}.cke_toolbar{float:left}.cke_rtl .cke_toolbar{float:right}.cke_toolgroup{border:0;float:left;margin:1px 2px 6px 0;padding-right:3px}.cke_rtl .cke_toolgroup{float:right;margin:1px 0 6px 2px;padding-left:3px;padding-right:0}.cke_hc .cke_toolgroup{margin-right:5px;margin-bottom:5px}.cke_hc.cke_rtl .cke_toolgroup{margin-right:0;margin-left:5px}a.cke_button{display:inline-block;height:18px;padding:4px 6px;outline:0;cursor:default;float:left;border:0;position:relative}a.cke_button_expandable{padding:4px 5px}.cke_rtl a.cke_button{float:right}.cke_hc a.cke_button{border:1px solid black;padding:3px 5px;margin:0 3px 5px 0}.cke_hc.cke_rtl a.cke_button{margin:0 0 5px 3px}a.cke_button_on{background:#fff;border:1px #bcbcbc solid;padding:3px 5px}a.cke_button_expandable.cke_button_on{padding:3px 4px}a.cke_button_off:hover,a.cke_button_off:focus,a.cke_button_off:active{background:#e5e5e5;border:1px #bcbcbc solid;padding:3px 5px}a.cke_button_expandable.cke_button_off:hover,a.cke_button_expandable.cke_button_off:focus,a.cke_button_expandable.cke_button_off:active{padding:3px 4px}.cke_hc a.cke_button_on,.cke_hc a.cke_button_off:hover,.cke_hc a.cke_button_off:focus,.cke_hc a.cke_button_off:active{background:#e5e5e5;border:3px solid #000;padding:1px 3px}a.cke_button_disabled:hover,a.cke_button_disabled:focus,a.cke_button_disabled:active{border:0;padding:4px 6px;background-color:transparent}a.cke_button_expandable.cke_button_disabled:hover,a.cke_button_expandable.cke_button_disabled:active{padding:4px 5px}a.cke_button_disabled:focus{border:1px #bcbcbc solid;padding:3px 5px}a.cke_button_expandable.cke_button_disabled:focus{padding:3px 4px}.cke_hc a.cke_button_disabled:hover,.cke_hc a.cke_button_disabled:focus,.cke_hc a.cke_button_disabled:active{border:1px solid #acacac;padding:3px 5px;margin:0 3px 5px 0}.cke_hc a.cke_button_disabled:focus{border:3px solid #000;padding:1px 3px}.cke_hc.cke_rtl a.cke_button_disabled:hover,.cke_hc.cke_rtl a.cke_button_disabled:focus,.cke_hc.cke_rtl a.cke_button_disabled:active{margin:0 0 5px 3px}a.cke_button_disabled .cke_button_icon,a.cke_button_disabled .cke_button_arrow{opacity:.3}.cke_hc a.cke_button_disabled{border-color:#acacac}.cke_hc a.cke_button_disabled .cke_button_icon,.cke_hc a.cke_button_disabled .cke_button_label{opacity:.5}.cke_toolgroup a.cke_button:last-child:after,.cke_toolgroup a.cke_button.cke_button_disabled:hover:last-child:after{content:"";position:absolute;height:18px;width:0;border-right:1px solid #bcbcbc;margin-top:4px;top:0;right:-3px}.cke_rtl .cke_toolgroup a.cke_button:last-child:after,.cke_rtl .cke_toolgroup a.cke_button.cke_button_disabled:hover:last-child:after{border-right:0;right:auto;border-left:1px solid #bcbcbc;top:0;left:-3px}.cke_hc .cke_toolgroup a.cke_button:last-child:after,.cke_hc .cke_toolgroup a.cke_button.cke_button_disabled:last-child:after,.cke_hc .cke_toolgroup a.cke_button.cke_button_disabled:hover:last-child:after{border-color:#000;top:0;right:-7px}.cke_hc.cke_rtl .cke_toolgroup a.cke_button:last-child:after,.cke_hc.cke_rtl .cke_toolgroup a.cke_button.cke_button_disabled:last-child:after,.cke_hc.cke_rtl .cke_toolgroup a.cke_button.cke_button_disabled:hover:last-child:after{top:0;right:auto;left:-7px}.cke_toolgroup a.cke_button:hover:last-child:after,.cke_toolgroup a.cke_button:focus:last-child:after,.cke_toolgroup a.cke_button.cke_button_on:last-child:after{top:-1px;right:-4px}.cke_rtl .cke_toolgroup a.cke_button:hover:last-child:after,.cke_rtl .cke_toolgroup a.cke_button:focus:last-child:after,.cke_rtl .cke_toolgroup a.cke_button.cke_button_on:last-child:after{top:-1px;right:auto;left:-4px}.cke_hc .cke_toolgroup a.cke_button:hover:last-child:after,.cke_hc .cke_toolgroup a.cke_button.cke_button_on:last-child:after{top:-2px;right:-9px}.cke_hc.cke_rtl .cke_toolgroup a.cke_button:hover:last-child:after,.cke_hc.cke_rtl .cke_toolgroup a.cke_button.cke_button_on:last-child:after{top:-2px;right:auto;left:-9px}.cke_toolbar.cke_toolbar_last .cke_toolgroup a.cke_button:last-child:after{content:none;border:0;width:0;height:0}.cke_button_icon{cursor:inherit;background-repeat:no-repeat;margin-top:1px;width:16px;height:16px;float:left;display:inline-block}.cke_rtl .cke_button_icon{float:right}.cke_hc .cke_button_icon{display:none}.cke_button_label{display:none;padding-left:3px;margin-top:1px;line-height:17px;vertical-align:middle;float:left;cursor:default;color:#484848}.cke_rtl .cke_button_label{padding-right:3px;padding-left:0;float:right}.cke_hc .cke_button_label{padding:0;display:inline-block;font-size:12px}.cke_button_arrow{display:inline-block;margin:8px 0 0 3px;width:0;height:0;cursor:default;vertical-align:top;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #484848}.cke_rtl .cke_button_arrow{margin-right:5px;margin-left:0}.cke_hc .cke_button_arrow{font-size:10px;margin:3px 0 0 3px;width:auto;border:0}.cke_toolbar_separator{float:left;background-color:#bcbcbc;margin:4px 2px 0 2px;height:18px;width:1px}.cke_rtl .cke_toolbar_separator{float:right}.cke_hc .cke_toolbar_separator{background-color:#000;margin-left:2px;margin-right:5px;margin-bottom:9px}.cke_hc.cke_rtl .cke_toolbar_separator{margin-left:5px;margin-right:2px}.cke_toolbar_break{display:block;clear:left}.cke_rtl .cke_toolbar_break{clear:right}a.cke_toolbox_collapser{width:12px;height:11px;float:right;margin:11px 0 0;font-size:0;cursor:default;text-align:center;border:1px solid #bcbcbc}.cke_rtl .cke_toolbox_collapser{float:left}.cke_toolbox_collapser:hover{background:#e5e5e5}.cke_toolbox_collapser.cke_toolbox_collapser_min{margin:0 2px 4px}.cke_toolbox_collapser .cke_arrow{display:inline-block;height:0;width:0;font-size:0;margin-top:1px;border:3px solid transparent;border-bottom-color:#484848}.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow{margin-top:4px;border-bottom-color:transparent;border-top-color:#484848}.cke_hc .cke_toolbox_collapser .cke_arrow{font-size:8px;width:auto;border:0;margin-top:0}.cke_menuitem span{cursor:default}.cke_menubutton{display:block}.cke_hc .cke_menubutton{padding:2px}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#e9e9e9;display:block;outline:1px dotted}.cke_menubutton:hover{outline:0}.cke_hc .cke_menubutton:hover,.cke_hc .cke_menubutton:focus,.cke_hc .cke_menubutton:active{border:2px solid;padding:0}.cke_menubutton_disabled:hover,.cke_menubutton_disabled:focus,.cke_menubutton_disabled:active{background-color:transparent;outline:0}.cke_menubutton_inner{display:table-row}.cke_menubutton_icon,.cke_menubutton_label,.cke_menuarrow{display:table-cell}.cke_menubutton_icon{background-color:#f8f8f8;padding:6px 4px}.cke_hc .cke_menubutton_icon{height:16px;width:0;padding:4px 0}.cke_menubutton:hover .cke_menubutton_icon,.cke_menubutton:focus .cke_menubutton_icon,.cke_menubutton:active .cke_menubutton_icon{background-color:#e9e9e9}.cke_menubutton_disabled:hover .cke_menubutton_icon,.cke_menubutton_disabled:focus .cke_menubutton_icon,.cke_menubutton_disabled:active .cke_menubutton_icon{background-color:#f8f8f8;outline:0}.cke_menuitem .cke_menubutton_on{background-color:#e9e9e9;border:1px solid #dedede;outline:0}.cke_menubutton_on .cke_menubutton_icon{padding-right:3px;background-color:#e9e9e9}.cke_menubutton_label{padding:0 5px;background-color:transparent;width:100%;vertical-align:middle}.cke_menubutton_shortcut{color:#979797}.cke_menubutton_disabled .cke_menubutton_label{opacity:.3;filter:alpha(opacity=30)}.cke_panel_frame .cke_menubutton_label{display:none}.cke_menuseparator{background-color:#d1d1d1;height:1px}.cke_menuarrow{background:transparent url(images/arrow.png) no-repeat 0 10px;padding:0 5px}.cke_rtl .cke_menuarrow{background-position:5px -13px;background-repeat:no-repeat}.cke_hc .cke_menuarrow{background-image:none}.cke_menuarrow span{display:none}.cke_hc .cke_menuarrow span{vertical-align:middle;display:inline}.cke_combo{display:inline-block;float:left;position:relative;margin-bottom:5px}.cke_rtl .cke_combo{float:right}.cke_hc .cke_combo{margin-top:1px;margin-bottom:10px}.cke_combo:after{content:"";position:absolute;height:18px;width:0;border-right:1px solid #bcbcbc;margin-top:5px;top:0;right:0}.cke_rtl .cke_combo:after{border-right:0;border-left:1px solid #bcbcbc;right:auto;left:0}.cke_hc .cke_combo:after{border-color:#000}a.cke_combo_button{cursor:default;display:inline-block;float:left;margin:0;padding:1px}.cke_rtl a.cke_combo_button{float:right}.cke_hc a.cke_combo_button{padding:4px}.cke_combo_on a.cke_combo_button,.cke_combo_off a.cke_combo_button:hover,.cke_combo_off a.cke_combo_button:focus,.cke_combo_off a.cke_combo_button:active{background:#e5e5e5;border:1px solid #bcbcbc;padding:0 0 0 1px;margin-left:-1px}.cke_combo_off a.cke_combo_button:focus{outline:0}.cke_combo_on a.cke_combo_button,.cke_combo_off a.cke_combo_button:active{background:#fff}.cke_rtl .cke_combo_on a.cke_combo_button,.cke_rtl .cke_combo_off a.cke_combo_button:hover,.cke_rtl .cke_combo_off a.cke_combo_button:focus,.cke_rtl .cke_combo_off a.cke_combo_button:active{padding:0 1px 0 0;margin-left:0;margin-right:-1px}.cke_hc .cke_combo_on a.cke_combo_button,.cke_hc .cke_combo_off a.cke_combo_button:hover,.cke_hc .cke_combo_off a.cke_combo_button:focus,.cke_hc .cke_combo_off a.cke_combo_button:active{border:3px solid #000;padding:1px 1px 1px 2px}.cke_hc.cke_rtl .cke_combo_on a.cke_combo_button,.cke_hc.cke_rtl .cke_combo_off a.cke_combo_button:hover,.cke_hc.cke_rtl .cke_combo_off a.cke_combo_button:focus,.cke_hc.cke_rtl .cke_combo_off a.cke_combo_button:active{padding:1px 2px 1px 1px}.cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_toolbar_start+.cke_combo_off a.cke_combo_button:active{padding:0 0 0 3px;margin-left:-3px}.cke_rtl .cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_rtl .cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_rtl .cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_rtl .cke_toolbar_start+.cke_combo_off a.cke_combo_button:active{padding:0 3px 0 0;margin-left:0;margin-right:-3px}.cke_hc .cke_toolbar>.cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_hc .cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_hc .cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_hc .cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:active{padding:1px 1px 1px 7px;margin-left:-6px}.cke_hc.cke_rtl .cke_toolbar>.cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_hc.cke_rtl .cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_hc.cke_rtl .cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_hc.cke_rtl .cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:active{padding:1px 7px 1px 1px;margin-left:0;margin-right:-6px}.cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:active,.cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:active{padding:0;margin:0}.cke_hc .cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_hc .cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_hc .cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_hc .cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:active,.cke_hc .cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_hc .cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_hc .cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_hc .cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:active{padding:1px;margin:0}.cke_toolbar .cke_combo+.cke_toolbar_end,.cke_toolbar .cke_combo+.cke_toolgroup{margin-right:0;margin-left:2px}.cke_rtl .cke_toolbar .cke_combo+.cke_toolbar_end,.cke_rtl .cke_toolbar .cke_combo+.cke_toolgroup{margin-left:0;margin-right:2px}.cke_hc .cke_toolbar .cke_combo+.cke_toolbar_end,.cke_hc .cke_toolbar .cke_combo+.cke_toolgroup{margin-left:5px}.cke_hc.cke_rtl .cke_toolbar .cke_combo+.cke_toolbar_end,.cke_hc.cke_rtl .cke_toolbar .cke_combo+.cke_toolgroup{margin-left:0;margin-right:5px}.cke_toolbar.cke_toolbar_last .cke_combo:nth-last-child(-n+2):after{content:none;border:0;width:0;height:0}.cke_combo_text{line-height:26px;padding-left:10px;text-overflow:ellipsis;overflow:hidden;float:left;cursor:default;color:#484848;width:60px}.cke_rtl .cke_combo_text{float:right;text-align:right;padding-left:0;padding-right:10px}.cke_hc .cke_combo_text{line-height:18px;font-size:12px}.cke_combo_open{cursor:default;display:inline-block;font-size:0;height:19px;line-height:17px;margin:1px 10px 1px;width:5px}.cke_hc .cke_combo_open{height:12px}.cke_combo_arrow{cursor:default;margin:11px 0 0;float:left;height:0;width:0;font-size:0;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #484848}.cke_hc .cke_combo_arrow{font-size:10px;width:auto;border:0;margin-top:3px}.cke_combo_label{display:none;float:left;line-height:26px;vertical-align:top;margin-right:5px}.cke_rtl .cke_combo_label{float:right;margin-left:5px;margin-right:0}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{opacity:.3}.cke_path{float:left;margin:-2px 0 2px}a.cke_path_item,span.cke_path_empty{display:inline-block;float:left;padding:3px 4px;margin-right:2px;cursor:default;text-decoration:none;outline:0;border:0;color:#484848;font-weight:bold;font-size:11px}.cke_rtl .cke_path,.cke_rtl .cke_path_item,.cke_rtl .cke_path_empty{float:right}a.cke_path_item:hover,a.cke_path_item:focus,a.cke_path_item:active{background-color:#e5e5e5}.cke_hc a.cke_path_item:hover,.cke_hc a.cke_path_item:focus,.cke_hc a.cke_path_item:active{border:2px solid;padding:1px 2px}.cke_button__source_label,.cke_button__sourcedialog_label{display:inline}.cke_combopanel__fontsize{width:135px}textarea.cke_source{font-family:'Courier New',Monospace;font-size:small;background-color:#fff;white-space:pre-wrap;border:0;padding:0;margin:0;display:block}.cke_wysiwyg_frame,.cke_wysiwyg_div{background-color:#fff}.cke_notifications_area{pointer-events:none}.cke_notification{pointer-events:auto;position:relative;margin:10px;width:300px;color:white;text-align:center;opacity:.95;filter:alpha(opacity = 95);-webkit-animation:fadeIn .7s;animation:fadeIn .7s}.cke_notification_message a{color:#12306f}@-webkit-keyframes fadeIn{from{opacity:.4}to{opacity:.95}}@keyframes fadeIn{from{opacity:.4}to{opacity:.95}}.cke_notification_success{background:#72b572;border:1px solid #63a563}.cke_notification_warning{background:#c83939;border:1px solid #902b2b}.cke_notification_info{background:#2e9ad0;border:1px solid #0f74a8}.cke_notification_info span.cke_notification_progress{background-color:#0f74a8;display:block;padding:0;margin:0;height:100%;overflow:hidden;position:absolute;z-index:1}.cke_notification_message{position:relative;margin:4px 23px 3px;font-family:Arial,Helvetica,sans-serif;font-size:12px;line-height:18px;z-index:4;text-overflow:ellipsis;overflow:hidden}.cke_notification_close{background-image:url(images/close.png);background-repeat:no-repeat;background-position:50%;position:absolute;cursor:pointer;text-align:center;height:20px;width:20px;top:1px;right:1px;padding:0;margin:0;z-index:5;opacity:.6;filter:alpha(opacity = 60)}.cke_notification_close:hover{opacity:1;filter:alpha(opacity = 100)}.cke_notification_close span{display:none}.cke_notification_warning a.cke_notification_close{opacity:.8;filter:alpha(opacity = 80)}.cke_notification_warning a.cke_notification_close:hover{opacity:1;filter:alpha(opacity = 100)}.cke_chrome{visibility:inherit}.cke_voice_label{display:none}legend.cke_voice_label{display:none}.cke_button__about_icon{background:url(icons.png?t=JA5A) no-repeat 0 -0px!important}.cke_button__bold_icon{background:url(icons.png?t=JA5A) no-repeat 0 -24px!important}.cke_button__italic_icon{background:url(icons.png?t=JA5A) no-repeat 0 -48px!important}.cke_button__strike_icon{background:url(icons.png?t=JA5A) no-repeat 0 -72px!important}.cke_button__subscript_icon{background:url(icons.png?t=JA5A) no-repeat 0 -96px!important}.cke_button__superscript_icon{background:url(icons.png?t=JA5A) no-repeat 0 -120px!important}.cke_button__underline_icon{background:url(icons.png?t=JA5A) no-repeat 0 -144px!important}.cke_button__blockquote_icon{background:url(icons.png?t=JA5A) no-repeat 0 -168px!important}.cke_rtl .cke_button__copy_icon,.cke_mixed_dir_content .cke_rtl .cke_button__copy_icon{background:url(icons.png?t=JA5A) no-repeat 0 -192px!important}.cke_ltr .cke_button__copy_icon{background:url(icons.png?t=JA5A) no-repeat 0 -216px!important}.cke_rtl .cke_button__cut_icon,.cke_mixed_dir_content .cke_rtl .cke_button__cut_icon{background:url(icons.png?t=JA5A) no-repeat 0 -240px!important}.cke_ltr .cke_button__cut_icon{background:url(icons.png?t=JA5A) no-repeat 0 -264px!important}.cke_rtl .cke_button__paste_icon,.cke_mixed_dir_content .cke_rtl .cke_button__paste_icon{background:url(icons.png?t=JA5A) no-repeat 0 -288px!important}.cke_ltr .cke_button__paste_icon{background:url(icons.png?t=JA5A) no-repeat 0 -312px!important}.cke_button__horizontalrule_icon{background:url(icons.png?t=JA5A) no-repeat 0 -336px!important}.cke_button__image_icon{background:url(icons.png?t=JA5A) no-repeat 0 -360px!important}.cke_rtl .cke_button__indent_icon,.cke_mixed_dir_content .cke_rtl .cke_button__indent_icon{background:url(icons.png?t=JA5A) no-repeat 0 -384px!important}.cke_ltr .cke_button__indent_icon{background:url(icons.png?t=JA5A) no-repeat 0 -408px!important}.cke_rtl .cke_button__outdent_icon,.cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon{background:url(icons.png?t=JA5A) no-repeat 0 -432px!important}.cke_ltr .cke_button__outdent_icon{background:url(icons.png?t=JA5A) no-repeat 0 -456px!important}.cke_button__justifyblock_icon{background:url(icons.png?t=JA5A) no-repeat 0 -480px!important}.cke_button__justifycenter_icon{background:url(icons.png?t=JA5A) no-repeat 0 -504px!important}.cke_button__justifyleft_icon{background:url(icons.png?t=JA5A) no-repeat 0 -528px!important}.cke_button__justifyright_icon{background:url(icons.png?t=JA5A) no-repeat 0 -552px!important}.cke_button__language_icon{background:url(icons.png?t=JA5A) no-repeat 0 -576px!important}.cke_rtl .cke_button__bulletedlist_icon,.cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon{background:url(icons.png?t=JA5A) no-repeat 0 -600px!important}.cke_ltr .cke_button__bulletedlist_icon{background:url(icons.png?t=JA5A) no-repeat 0 -624px!important}.cke_rtl .cke_button__numberedlist_icon,.cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon{background:url(icons.png?t=JA5A) no-repeat 0 -648px!important}.cke_ltr .cke_button__numberedlist_icon{background:url(icons.png?t=JA5A) no-repeat 0 -672px!important}.cke_button__maximize_icon{background:url(icons.png?t=JA5A) no-repeat 0 -696px!important}.cke_rtl .cke_button__pastefromword_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon{background:url(icons.png?t=JA5A) no-repeat 0 -720px!important}.cke_ltr .cke_button__pastefromword_icon{background:url(icons.png?t=JA5A) no-repeat 0 -744px!important}.cke_rtl .cke_button__pastetext_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon{background:url(icons.png?t=JA5A) no-repeat 0 -768px!important}.cke_ltr .cke_button__pastetext_icon{background:url(icons.png?t=JA5A) no-repeat 0 -792px!important}.cke_button__removeformat_icon{background:url(icons.png?t=JA5A) no-repeat 0 -816px!important}.cke_rtl .cke_button__showblocks_icon,.cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon{background:url(icons.png?t=JA5A) no-repeat 0 -840px!important}.cke_ltr .cke_button__showblocks_icon{background:url(icons.png?t=JA5A) no-repeat 0 -864px!important}.cke_rtl .cke_button__source_icon,.cke_mixed_dir_content .cke_rtl .cke_button__source_icon{background:url(icons.png?t=JA5A) no-repeat 0 -888px!important}.cke_ltr .cke_button__source_icon{background:url(icons.png?t=JA5A) no-repeat 0 -912px!important}.cke_rtl .cke_button__sourcedialog_icon,.cke_mixed_dir_content .cke_rtl .cke_button__sourcedialog_icon{background:url(icons.png?t=JA5A) no-repeat 0 -936px!important}.cke_ltr .cke_button__sourcedialog_icon{background:url(icons.png?t=JA5A) no-repeat 0 -960px!important}.cke_button__specialchar_icon{background:url(icons.png?t=JA5A) no-repeat 0 -984px!important}.cke_button__table_icon{background:url(icons.png?t=JA5A) no-repeat 0 -1008px!important}.cke_rtl .cke_button__redo_icon,.cke_mixed_dir_content .cke_rtl .cke_button__redo_icon{background:url(icons.png?t=JA5A) no-repeat 0 -1032px!important}.cke_ltr .cke_button__redo_icon{background:url(icons.png?t=JA5A) no-repeat 0 -1056px!important}.cke_rtl .cke_button__undo_icon,.cke_mixed_dir_content .cke_rtl .cke_button__undo_icon{background:url(icons.png?t=JA5A) no-repeat 0 -1080px!important}.cke_ltr .cke_button__undo_icon{background:url(icons.png?t=JA5A) no-repeat 0 -1104px!important}.cke_button__simplebox_icon{background:url(icons.png?t=JA5A) no-repeat 0 -1128px!important}.cke_hidpi .cke_button__about_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -0px!important;background-size:16px!important}.cke_hidpi .cke_button__bold_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -24px!important;background-size:16px!important}.cke_hidpi .cke_button__italic_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -48px!important;background-size:16px!important}.cke_hidpi .cke_button__strike_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -72px!important;background-size:16px!important}.cke_hidpi .cke_button__subscript_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -96px!important;background-size:16px!important}.cke_hidpi .cke_button__superscript_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -120px!important;background-size:16px!important}.cke_hidpi .cke_button__underline_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -144px!important;background-size:16px!important}.cke_hidpi .cke_button__blockquote_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -168px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__copy_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__copy_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -192px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__copy_icon,.cke_ltr.cke_hidpi .cke_button__copy_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -216px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__cut_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__cut_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -240px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__cut_icon,.cke_ltr.cke_hidpi .cke_button__cut_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -264px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__paste_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__paste_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -288px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__paste_icon,.cke_ltr.cke_hidpi .cke_button__paste_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -312px!important;background-size:16px!important}.cke_hidpi .cke_button__horizontalrule_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -336px!important;background-size:16px!important}.cke_hidpi .cke_button__image_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -360px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__indent_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -384px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__indent_icon,.cke_ltr.cke_hidpi .cke_button__indent_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -408px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__outdent_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -432px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__outdent_icon,.cke_ltr.cke_hidpi .cke_button__outdent_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -456px!important;background-size:16px!important}.cke_hidpi .cke_button__justifyblock_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -480px!important;background-size:16px!important}.cke_hidpi .cke_button__justifycenter_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -504px!important;background-size:16px!important}.cke_hidpi .cke_button__justifyleft_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -528px!important;background-size:16px!important}.cke_hidpi .cke_button__justifyright_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -552px!important;background-size:16px!important}.cke_hidpi .cke_button__language_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -576px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__bulletedlist_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -600px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__bulletedlist_icon,.cke_ltr.cke_hidpi .cke_button__bulletedlist_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -624px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__numberedlist_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -648px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__numberedlist_icon,.cke_ltr.cke_hidpi .cke_button__numberedlist_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -672px!important;background-size:16px!important}.cke_hidpi .cke_button__maximize_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -696px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__pastefromword_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -720px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__pastefromword_icon,.cke_ltr.cke_hidpi .cke_button__pastefromword_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -744px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__pastetext_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -768px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__pastetext_icon,.cke_ltr.cke_hidpi .cke_button__pastetext_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -792px!important;background-size:16px!important}.cke_hidpi .cke_button__removeformat_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -816px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__showblocks_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -840px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__showblocks_icon,.cke_ltr.cke_hidpi .cke_button__showblocks_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -864px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__source_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__source_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -888px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__source_icon,.cke_ltr.cke_hidpi .cke_button__source_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -912px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__sourcedialog_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__sourcedialog_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -936px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__sourcedialog_icon,.cke_ltr.cke_hidpi .cke_button__sourcedialog_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -960px!important;background-size:16px!important}.cke_hidpi .cke_button__specialchar_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -984px!important;background-size:16px!important}.cke_hidpi .cke_button__table_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -1008px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__redo_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__redo_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -1032px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__redo_icon,.cke_ltr.cke_hidpi .cke_button__redo_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -1056px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__undo_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__undo_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -1080px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__undo_icon,.cke_ltr.cke_hidpi .cke_button__undo_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -1104px!important;background-size:16px!important}.cke_hidpi .cke_button__simplebox_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -2256px!important}a.cke_button_disabled,a.cke_button_disabled:hover,a.cke_button_disabled:focus,a.cke_button_disabled:active{filter:alpha(opacity = 30)}.cke_button_disabled .cke_button_icon{filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#00ffffff,endColorstr=#00ffffff)}.cke_button_off:hover,.cke_button_off:focus,.cke_button_off:active{filter:alpha(opacity = 100)}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{filter:alpha(opacity = 30)}.cke_toolbox_collapser{border:1px solid #a6a6a6}.cke_toolbox_collapser .cke_arrow{margin-top:1px}.cke_hc .cke_top,.cke_hc .cke_bottom,.cke_hc .cke_combo_button,.cke_hc a.cke_combo_button:hover,.cke_hc a.cke_combo_button:focus,.cke_hc .cke_toolgroup,.cke_hc .cke_button_on,.cke_hc a.cke_button_off:hover,.cke_hc a.cke_button_off:focus,.cke_hc a.cke_button_off:active,.cke_hc .cke_toolbox_collapser,.cke_hc .cke_toolbox_collapser:hover,.cke_hc .cke_panel_grouptitle{filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.cke_toolbox_collapser .cke_arrow{border-width:4px}.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow{border-width:3px}.cke_toolbox_collapser .cke_arrow{margin-top:0}.cke_toolbar{position:relative}.cke_rtl .cke_toolbar_end{right:auto;left:0}.cke_toolbar_end:after{content:"";position:absolute;height:18px;width:0;border-right:1px solid #bcbcbc;margin-top:4px;top:1px;right:2px}.cke_rtl .cke_toolbar_end:after{right:auto;left:2px}.cke_hc .cke_toolbar_end:after{top:2px;right:5px;border-color:#000}.cke_hc.cke_rtl .cke_toolbar_end:after{right:auto;left:5px}.cke_combo+.cke_toolbar_end:after,.cke_toolbar.cke_toolbar_last .cke_toolbar_end:after{content:none;border:0}.cke_combo+.cke_toolgroup+.cke_toolbar_end:after{right:0}.cke_rtl .cke_combo+.cke_toolgroup+.cke_toolbar_end:after{right:auto;left:0}
\ No newline at end of file
+.cke_reset{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;position:static;transition:none}.cke_reset_all,.cke_reset_all *,.cke_reset_all a,.cke_reset_all textarea{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;position:static;transition:none;border-collapse:collapse;font:normal normal normal 12px Arial,Helvetica,Tahoma,Verdana,Sans-Serif;color:#000;text-align:left;white-space:nowrap;cursor:auto;float:none}.cke_reset_all .cke_rtl *{text-align:right}.cke_reset_all iframe{vertical-align:inherit}.cke_reset_all textarea{white-space:pre-wrap}.cke_reset_all textarea,.cke_reset_all input[type="text"],.cke_reset_all input[type="password"]{cursor:text}.cke_reset_all textarea[disabled],.cke_reset_all input[type="text"][disabled],.cke_reset_all input[type="password"][disabled]{cursor:default}.cke_reset_all fieldset{padding:10px;border:2px groove #e0dfe3}.cke_reset_all select{box-sizing:border-box}.cke_reset_all table{table-layout:auto}.cke_chrome{display:block;border:1px solid #d1d1d1;padding:0}.cke_inner{display:block;background:#fff;padding:0;-webkit-touch-callout:none}.cke_float{border:0}.cke_float .cke_inner{padding-bottom:0}.cke_top,.cke_contents,.cke_bottom{display:block;overflow:hidden}.cke_top{border-bottom:1px solid #d1d1d1;background:#f8f8f8;padding:6px 8px 2px;white-space:normal}.cke_float .cke_top{border:1px solid #d1d1d1}.cke_bottom{padding:6px 8px 2px;position:relative;border-top:1px solid #d1d1d1;background:#f8f8f8}.cke_browser_ios .cke_contents{overflow-y:auto;-webkit-overflow-scrolling:touch}.cke_resizer{width:0;height:0;overflow:hidden;border-width:10px 10px 0 0;border-color:transparent #bcbcbc transparent transparent;border-style:dashed solid dashed dashed;font-size:0;vertical-align:bottom;margin-top:6px;margin-bottom:2px}.cke_hc .cke_resizer{font-size:15px;width:auto;height:auto;border-width:0}.cke_resizer_ltr{cursor:se-resize;float:right;margin-right:-4px}.cke_resizer_rtl{border-width:10px 0 0 10px;border-color:transparent transparent transparent #bcbcbc;border-style:dashed dashed dashed solid;cursor:sw-resize;float:left;margin-left:-4px;right:auto}.cke_wysiwyg_div{display:block;height:100%;overflow:auto;padding:0 8px;outline-style:none;box-sizing:border-box}.cke_panel{visibility:visible;width:120px;height:100px;overflow:hidden;background-color:#fff;border:1px solid #d1d1d1}.cke_menu_panel{padding:0;margin:0}.cke_combopanel{width:150px;height:170px}.cke_panel_frame{width:100%;height:100%;font-size:12px;overflow:auto;overflow-x:hidden}.cke_panel_container{overflow-y:auto;overflow-x:hidden}.cke_panel_block:focus{outline:0}.cke_panel_list{margin:0;padding:0;list-style-type:none;white-space:nowrap}.cke_panel_listItem{margin:0;padding:0}.cke_panel_listItem a{padding:6px 7px;display:block;color:inherit!important;text-decoration:none;overflow:hidden;text-overflow:ellipsis}.cke_hc .cke_panel_listItem a{border-style:none}.cke_panel_listItem.cke_selected a,.cke_panel_listItem a:hover,.cke_panel_listItem a:focus,.cke_panel_listItem a:active{background-color:#e9e9e9}.cke_panel_listItem a:focus{outline:1px dotted #000}.cke_hc .cke_panel_listItem a:hover,.cke_hc .cke_panel_listItem a:focus,.cke_hc .cke_panel_listItem a:active{border:2px solid;padding:4px 5px}.cke_panel_listItem p,.cke_panel_listItem h1,.cke_panel_listItem h2,.cke_panel_listItem h3,.cke_panel_listItem h4,.cke_panel_listItem h5,.cke_panel_listItem h6,.cke_panel_listItem pre{margin-top:0;margin-bottom:0}.cke_panel_grouptitle{cursor:default;font-size:11px;font-weight:bold;white-space:nowrap;margin:0;padding:6px 6px 7px 6px;color:#484848;border-bottom:1px solid #d1d1d1;background:#f8f8f8}.cke_colorblock{padding:10px;font-size:11px;font-family:'Microsoft Sans Serif',Tahoma,Arial,Verdana,Sans-Serif}.cke_colorblock,.cke_colorblock a{text-decoration:none;color:#000}a.cke_colorbox{padding:2px;float:left;width:20px;height:20px}.cke_rtl a.cke_colorbox{float:right}a:hover.cke_colorbox,a:focus.cke_colorbox,a:active.cke_colorbox{outline:0;padding:0;border:2px solid #139ff7}a:hover.cke_colorbox{border-color:#bcbcbc}span.cke_colorbox{width:20px;height:20px;float:left}.cke_rtl span.cke_colorbox{float:right}a.cke_colorauto,a.cke_colormore{border:#fff 1px solid;padding:3px;display:block;cursor:pointer}a.cke_colorauto{padding:0;border:1px solid transparent;margin-bottom:6px;height:26px;line-height:26px}a.cke_colormore{margin-top:10px;height:20px;line-height:19px}a:hover.cke_colorauto,a:hover.cke_colormore,a:focus.cke_colorauto,a:focus.cke_colormore,a:active.cke_colorauto,a:active.cke_colormore{outline:0;border:#139ff7 1px solid;background-color:#f8f8f8}a:hover.cke_colorauto,a:hover.cke_colormore{border-color:#bcbcbc}.cke_colorauto span.cke_colorbox{width:18px;height:18px;border:1px solid #808080;margin-left:1px;margin-top:3px}.cke_rtl .cke_colorauto span.cke_colorbox{margin-left:0;margin-right:1px}span.cke_colorbox[style*="#ffffff"],span.cke_colorbox[style*="#FFFFFF"],span.cke_colorbox[style="background-color:#fff"],span.cke_colorbox[style="background-color:#FFF"],span.cke_colorbox[style*="rgb(255,255,255)"],span.cke_colorbox[style*="rgb(255, 255, 255)"]{border:1px solid #808080;width:18px;height:18px}.cke_toolbar{float:left}.cke_rtl .cke_toolbar{float:right}.cke_toolgroup{border:0;float:left;margin:1px 2px 6px 0;padding-right:3px}.cke_rtl .cke_toolgroup{float:right;margin:1px 0 6px 2px;padding-left:3px;padding-right:0}.cke_hc .cke_toolgroup{margin-right:5px;margin-bottom:5px}.cke_hc.cke_rtl .cke_toolgroup{margin-right:0;margin-left:5px}a.cke_button{display:inline-block;height:18px;padding:4px 6px;outline:0;cursor:default;float:left;border:0;position:relative}a.cke_button_expandable{padding:4px 5px}.cke_rtl a.cke_button{float:right}.cke_hc a.cke_button{border:1px solid black;padding:3px 5px;margin:0 3px 5px 0}.cke_hc.cke_rtl a.cke_button{margin:0 0 5px 3px}a.cke_button_on{background:#fff;border:1px #bcbcbc solid;padding:3px 5px}a.cke_button_expandable.cke_button_on{padding:3px 4px}a.cke_button_off:hover,a.cke_button_off:focus,a.cke_button_off:active{background:#e5e5e5;border:1px #bcbcbc solid;padding:3px 5px}a.cke_button_expandable.cke_button_off:hover,a.cke_button_expandable.cke_button_off:focus,a.cke_button_expandable.cke_button_off:active{padding:3px 4px}.cke_hc a.cke_button_on,.cke_hc a.cke_button_off:hover,.cke_hc a.cke_button_off:focus,.cke_hc a.cke_button_off:active{background:#e5e5e5;border:3px solid #000;padding:1px 3px}a.cke_button_disabled:hover,a.cke_button_disabled:focus,a.cke_button_disabled:active{border:0;padding:4px 6px;background-color:transparent}a.cke_button_expandable.cke_button_disabled:hover,a.cke_button_expandable.cke_button_disabled:active{padding:4px 5px}a.cke_button_disabled:focus{border:1px #bcbcbc solid;padding:3px 5px}a.cke_button_expandable.cke_button_disabled:focus{padding:3px 4px}.cke_hc a.cke_button_disabled:hover,.cke_hc a.cke_button_disabled:focus,.cke_hc a.cke_button_disabled:active{border:1px solid #acacac;padding:3px 5px;margin:0 3px 5px 0}.cke_hc a.cke_button_disabled:focus{border:3px solid #000;padding:1px 3px}.cke_hc.cke_rtl a.cke_button_disabled:hover,.cke_hc.cke_rtl a.cke_button_disabled:focus,.cke_hc.cke_rtl a.cke_button_disabled:active{margin:0 0 5px 3px}a.cke_button_disabled .cke_button_icon,a.cke_button_disabled .cke_button_arrow{opacity:.3}.cke_hc a.cke_button_disabled{border-color:#acacac}.cke_hc a.cke_button_disabled .cke_button_icon,.cke_hc a.cke_button_disabled .cke_button_label{opacity:.5}.cke_toolgroup a.cke_button:last-child:after,.cke_toolgroup a.cke_button.cke_button_disabled:hover:last-child:after{content:"";position:absolute;height:18px;width:0;border-right:1px solid #bcbcbc;margin-top:4px;top:0;right:-3px}.cke_rtl .cke_toolgroup a.cke_button:last-child:after,.cke_rtl .cke_toolgroup a.cke_button.cke_button_disabled:hover:last-child:after{border-right:0;right:auto;border-left:1px solid #bcbcbc;top:0;left:-3px}.cke_hc .cke_toolgroup a.cke_button:last-child:after,.cke_hc .cke_toolgroup a.cke_button.cke_button_disabled:last-child:after,.cke_hc .cke_toolgroup a.cke_button.cke_button_disabled:hover:last-child:after{border-color:#000;top:0;right:-7px}.cke_hc.cke_rtl .cke_toolgroup a.cke_button:last-child:after,.cke_hc.cke_rtl .cke_toolgroup a.cke_button.cke_button_disabled:last-child:after,.cke_hc.cke_rtl .cke_toolgroup a.cke_button.cke_button_disabled:hover:last-child:after{top:0;right:auto;left:-7px}.cke_toolgroup a.cke_button:hover:last-child:after,.cke_toolgroup a.cke_button:focus:last-child:after,.cke_toolgroup a.cke_button.cke_button_on:last-child:after{top:-1px;right:-4px}.cke_rtl .cke_toolgroup a.cke_button:hover:last-child:after,.cke_rtl .cke_toolgroup a.cke_button:focus:last-child:after,.cke_rtl .cke_toolgroup a.cke_button.cke_button_on:last-child:after{top:-1px;right:auto;left:-4px}.cke_hc .cke_toolgroup a.cke_button:hover:last-child:after,.cke_hc .cke_toolgroup a.cke_button.cke_button_on:last-child:after{top:-2px;right:-9px}.cke_hc.cke_rtl .cke_toolgroup a.cke_button:hover:last-child:after,.cke_hc.cke_rtl .cke_toolgroup a.cke_button.cke_button_on:last-child:after{top:-2px;right:auto;left:-9px}.cke_toolbar.cke_toolbar_last .cke_toolgroup a.cke_button:last-child:after{content:none;border:0;width:0;height:0}.cke_button_icon{cursor:inherit;background-repeat:no-repeat;margin-top:1px;width:16px;height:16px;float:left;display:inline-block}.cke_rtl .cke_button_icon{float:right}.cke_hc .cke_button_icon{display:none}.cke_button_label{display:none;padding-left:3px;margin-top:1px;line-height:17px;vertical-align:middle;float:left;cursor:default;color:#484848}.cke_rtl .cke_button_label{padding-right:3px;padding-left:0;float:right}.cke_hc .cke_button_label{padding:0;display:inline-block;font-size:12px}.cke_button_arrow{display:inline-block;margin:8px 0 0 3px;width:0;height:0;cursor:default;vertical-align:top;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #484848}.cke_rtl .cke_button_arrow{margin-right:5px;margin-left:0}.cke_hc .cke_button_arrow{font-size:10px;margin:3px 0 0 3px;width:auto;border:0}.cke_toolbar_separator{float:left;background-color:#bcbcbc;margin:4px 2px 0 2px;height:18px;width:1px}.cke_rtl .cke_toolbar_separator{float:right}.cke_hc .cke_toolbar_separator{background-color:#000;margin-left:2px;margin-right:5px;margin-bottom:9px}.cke_hc.cke_rtl .cke_toolbar_separator{margin-left:5px;margin-right:2px}.cke_toolbar_break{display:block;clear:left}.cke_rtl .cke_toolbar_break{clear:right}a.cke_toolbox_collapser{width:12px;height:11px;float:right;margin:11px 0 0;font-size:0;cursor:default;text-align:center;border:1px solid #bcbcbc}.cke_rtl .cke_toolbox_collapser{float:left}.cke_toolbox_collapser:hover{background:#e5e5e5}.cke_toolbox_collapser.cke_toolbox_collapser_min{margin:0 2px 4px}.cke_toolbox_collapser .cke_arrow{display:inline-block;height:0;width:0;font-size:0;margin-top:1px;border:3px solid transparent;border-bottom-color:#484848}.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow{margin-top:4px;border-bottom-color:transparent;border-top-color:#484848}.cke_hc .cke_toolbox_collapser .cke_arrow{font-size:8px;width:auto;border:0;margin-top:0}.cke_menuitem span{cursor:default}.cke_menubutton{display:block}.cke_hc .cke_menubutton{padding:2px}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#e9e9e9;display:block;outline:1px dotted}.cke_menubutton:hover{outline:0}.cke_hc .cke_menubutton:hover,.cke_hc .cke_menubutton:focus,.cke_hc .cke_menubutton:active{border:2px solid;padding:0}.cke_menubutton_disabled:hover,.cke_menubutton_disabled:focus,.cke_menubutton_disabled:active{background-color:transparent;outline:0}.cke_menubutton_inner{display:table-row}.cke_menubutton_icon,.cke_menubutton_label,.cke_menuarrow{display:table-cell}.cke_menubutton_icon{background-color:#f8f8f8;padding:6px 4px}.cke_hc .cke_menubutton_icon{height:16px;width:0;padding:4px 0}.cke_menubutton:hover .cke_menubutton_icon,.cke_menubutton:focus .cke_menubutton_icon,.cke_menubutton:active .cke_menubutton_icon{background-color:#e9e9e9}.cke_menubutton_disabled:hover .cke_menubutton_icon,.cke_menubutton_disabled:focus .cke_menubutton_icon,.cke_menubutton_disabled:active .cke_menubutton_icon{background-color:#f8f8f8;outline:0}.cke_menuitem .cke_menubutton_on{background-color:#e9e9e9;border:1px solid #dedede;outline:0}.cke_menubutton_on .cke_menubutton_icon{padding-right:3px;background-color:#e9e9e9}.cke_menubutton_label{padding:0 5px;background-color:transparent;width:100%;vertical-align:middle}.cke_menubutton_shortcut{color:#979797}.cke_menubutton_disabled .cke_menubutton_label{opacity:.3;filter:alpha(opacity=30)}.cke_panel_frame .cke_menubutton_label{display:none}.cke_menuseparator{background-color:#d1d1d1;height:1px}.cke_menuarrow{background:transparent url(images/arrow.png) no-repeat 0 10px;padding:0 5px}.cke_rtl .cke_menuarrow{background-position:5px -13px;background-repeat:no-repeat}.cke_hc .cke_menuarrow{background-image:none}.cke_menuarrow span{display:none}.cke_hc .cke_menuarrow span{vertical-align:middle;display:inline}.cke_combo{display:inline-block;float:left;position:relative;margin-bottom:5px}.cke_rtl .cke_combo{float:right}.cke_hc .cke_combo{margin-top:1px;margin-bottom:10px}.cke_combo:after{content:"";position:absolute;height:18px;width:0;border-right:1px solid #bcbcbc;margin-top:5px;top:0;right:0}.cke_rtl .cke_combo:after{border-right:0;border-left:1px solid #bcbcbc;right:auto;left:0}.cke_hc .cke_combo:after{border-color:#000}a.cke_combo_button{cursor:default;display:inline-block;float:left;margin:0;padding:1px}.cke_rtl a.cke_combo_button{float:right}.cke_hc a.cke_combo_button{padding:4px}.cke_combo_on a.cke_combo_button,.cke_combo_off a.cke_combo_button:hover,.cke_combo_off a.cke_combo_button:focus,.cke_combo_off a.cke_combo_button:active{background:#e5e5e5;border:1px solid #bcbcbc;padding:0 0 0 1px;margin-left:-1px}.cke_combo_off a.cke_combo_button:focus{outline:0}.cke_combo_on a.cke_combo_button,.cke_combo_off a.cke_combo_button:active{background:#fff}.cke_rtl .cke_combo_on a.cke_combo_button,.cke_rtl .cke_combo_off a.cke_combo_button:hover,.cke_rtl .cke_combo_off a.cke_combo_button:focus,.cke_rtl .cke_combo_off a.cke_combo_button:active{padding:0 1px 0 0;margin-left:0;margin-right:-1px}.cke_hc .cke_combo_on a.cke_combo_button,.cke_hc .cke_combo_off a.cke_combo_button:hover,.cke_hc .cke_combo_off a.cke_combo_button:focus,.cke_hc .cke_combo_off a.cke_combo_button:active{border:3px solid #000;padding:1px 1px 1px 2px}.cke_hc.cke_rtl .cke_combo_on a.cke_combo_button,.cke_hc.cke_rtl .cke_combo_off a.cke_combo_button:hover,.cke_hc.cke_rtl .cke_combo_off a.cke_combo_button:focus,.cke_hc.cke_rtl .cke_combo_off a.cke_combo_button:active{padding:1px 2px 1px 1px}.cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_toolbar_start+.cke_combo_off a.cke_combo_button:active{padding:0 0 0 3px;margin-left:-3px}.cke_rtl .cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_rtl .cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_rtl .cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_rtl .cke_toolbar_start+.cke_combo_off a.cke_combo_button:active{padding:0 3px 0 0;margin-left:0;margin-right:-3px}.cke_hc .cke_toolbar>.cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_hc .cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_hc .cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_hc .cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:active{padding:1px 1px 1px 7px;margin-left:-6px}.cke_hc.cke_rtl .cke_toolbar>.cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_hc.cke_rtl .cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_hc.cke_rtl .cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_hc.cke_rtl .cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:active{padding:1px 7px 1px 1px;margin-left:0;margin-right:-6px}.cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:active,.cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:active{padding:0;margin:0}.cke_hc .cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_hc .cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_hc .cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_hc .cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:active,.cke_hc .cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_hc .cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_hc .cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_hc .cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:active{padding:1px;margin:0}.cke_toolbar .cke_combo+.cke_toolbar_end,.cke_toolbar .cke_combo+.cke_toolgroup{margin-right:0;margin-left:2px}.cke_rtl .cke_toolbar .cke_combo+.cke_toolbar_end,.cke_rtl .cke_toolbar .cke_combo+.cke_toolgroup{margin-left:0;margin-right:2px}.cke_hc .cke_toolbar .cke_combo+.cke_toolbar_end,.cke_hc .cke_toolbar .cke_combo+.cke_toolgroup{margin-left:5px}.cke_hc.cke_rtl .cke_toolbar .cke_combo+.cke_toolbar_end,.cke_hc.cke_rtl .cke_toolbar .cke_combo+.cke_toolgroup{margin-left:0;margin-right:5px}.cke_toolbar.cke_toolbar_last .cke_combo:nth-last-child(-n+2):after{content:none;border:0;width:0;height:0}.cke_combo_text{line-height:26px;padding-left:10px;text-overflow:ellipsis;overflow:hidden;float:left;cursor:default;color:#484848;width:60px}.cke_rtl .cke_combo_text{float:right;text-align:right;padding-left:0;padding-right:10px}.cke_hc .cke_combo_text{line-height:18px;font-size:12px}.cke_combo_open{cursor:default;display:inline-block;font-size:0;height:19px;line-height:17px;margin:1px 10px 1px;width:5px}.cke_hc .cke_combo_open{height:12px}.cke_combo_arrow{cursor:default;margin:11px 0 0;float:left;height:0;width:0;font-size:0;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #484848}.cke_hc .cke_combo_arrow{font-size:10px;width:auto;border:0;margin-top:3px}.cke_combo_label{display:none;float:left;line-height:26px;vertical-align:top;margin-right:5px}.cke_rtl .cke_combo_label{float:right;margin-left:5px;margin-right:0}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{opacity:.3}.cke_path{float:left;margin:-2px 0 2px}a.cke_path_item,span.cke_path_empty{display:inline-block;float:left;padding:3px 4px;margin-right:2px;cursor:default;text-decoration:none;outline:0;border:0;color:#484848;font-weight:bold;font-size:11px}.cke_rtl .cke_path,.cke_rtl .cke_path_item,.cke_rtl .cke_path_empty{float:right}a.cke_path_item:hover,a.cke_path_item:focus,a.cke_path_item:active{background-color:#e5e5e5}.cke_hc a.cke_path_item:hover,.cke_hc a.cke_path_item:focus,.cke_hc a.cke_path_item:active{border:2px solid;padding:1px 2px}.cke_button__source_label,.cke_button__sourcedialog_label{display:inline}.cke_combopanel__fontsize{width:135px}textarea.cke_source{font-family:'Courier New',Monospace;font-size:small;background-color:#fff;white-space:pre-wrap;border:0;padding:0;margin:0;display:block}.cke_wysiwyg_frame,.cke_wysiwyg_div{background-color:#fff}.cke_notifications_area{pointer-events:none}.cke_notification{pointer-events:auto;position:relative;margin:10px;width:300px;color:white;text-align:center;opacity:.95;filter:alpha(opacity = 95);-webkit-animation:fadeIn .7s;animation:fadeIn .7s}.cke_notification_message a{color:#12306f}@-webkit-keyframes fadeIn{from{opacity:.4}to{opacity:.95}}@keyframes fadeIn{from{opacity:.4}to{opacity:.95}}.cke_notification_success{background:#72b572;border:1px solid #63a563}.cke_notification_warning{background:#c83939;border:1px solid #902b2b}.cke_notification_info{background:#2e9ad0;border:1px solid #0f74a8}.cke_notification_info span.cke_notification_progress{background-color:#0f74a8;display:block;padding:0;margin:0;height:100%;overflow:hidden;position:absolute;z-index:1}.cke_notification_message{position:relative;margin:4px 23px 3px;font-family:Arial,Helvetica,sans-serif;font-size:12px;line-height:18px;z-index:4;text-overflow:ellipsis;overflow:hidden}.cke_notification_close{background-image:url(images/close.png);background-repeat:no-repeat;background-position:50%;position:absolute;cursor:pointer;text-align:center;height:20px;width:20px;top:1px;right:1px;padding:0;margin:0;z-index:5;opacity:.6;filter:alpha(opacity = 60)}.cke_notification_close:hover{opacity:1;filter:alpha(opacity = 100)}.cke_notification_close span{display:none}.cke_notification_warning a.cke_notification_close{opacity:.8;filter:alpha(opacity = 80)}.cke_notification_warning a.cke_notification_close:hover{opacity:1;filter:alpha(opacity = 100)}.cke_chrome{visibility:inherit}.cke_voice_label{display:none}legend.cke_voice_label{display:none}.cke_button__about_icon{background:url(icons.png?t=K1SC) no-repeat 0 -0px!important}.cke_button__bold_icon{background:url(icons.png?t=K1SC) no-repeat 0 -24px!important}.cke_button__italic_icon{background:url(icons.png?t=K1SC) no-repeat 0 -48px!important}.cke_button__strike_icon{background:url(icons.png?t=K1SC) no-repeat 0 -72px!important}.cke_button__subscript_icon{background:url(icons.png?t=K1SC) no-repeat 0 -96px!important}.cke_button__superscript_icon{background:url(icons.png?t=K1SC) no-repeat 0 -120px!important}.cke_button__underline_icon{background:url(icons.png?t=K1SC) no-repeat 0 -144px!important}.cke_button__blockquote_icon{background:url(icons.png?t=K1SC) no-repeat 0 -168px!important}.cke_rtl .cke_button__copy_icon,.cke_mixed_dir_content .cke_rtl .cke_button__copy_icon{background:url(icons.png?t=K1SC) no-repeat 0 -192px!important}.cke_ltr .cke_button__copy_icon{background:url(icons.png?t=K1SC) no-repeat 0 -216px!important}.cke_rtl .cke_button__cut_icon,.cke_mixed_dir_content .cke_rtl .cke_button__cut_icon{background:url(icons.png?t=K1SC) no-repeat 0 -240px!important}.cke_ltr .cke_button__cut_icon{background:url(icons.png?t=K1SC) no-repeat 0 -264px!important}.cke_rtl .cke_button__paste_icon,.cke_mixed_dir_content .cke_rtl .cke_button__paste_icon{background:url(icons.png?t=K1SC) no-repeat 0 -288px!important}.cke_ltr .cke_button__paste_icon{background:url(icons.png?t=K1SC) no-repeat 0 -312px!important}.cke_button__horizontalrule_icon{background:url(icons.png?t=K1SC) no-repeat 0 -336px!important}.cke_button__image_icon{background:url(icons.png?t=K1SC) no-repeat 0 -360px!important}.cke_rtl .cke_button__indent_icon,.cke_mixed_dir_content .cke_rtl .cke_button__indent_icon{background:url(icons.png?t=K1SC) no-repeat 0 -384px!important}.cke_ltr .cke_button__indent_icon{background:url(icons.png?t=K1SC) no-repeat 0 -408px!important}.cke_rtl .cke_button__outdent_icon,.cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon{background:url(icons.png?t=K1SC) no-repeat 0 -432px!important}.cke_ltr .cke_button__outdent_icon{background:url(icons.png?t=K1SC) no-repeat 0 -456px!important}.cke_button__justifyblock_icon{background:url(icons.png?t=K1SC) no-repeat 0 -480px!important}.cke_button__justifycenter_icon{background:url(icons.png?t=K1SC) no-repeat 0 -504px!important}.cke_button__justifyleft_icon{background:url(icons.png?t=K1SC) no-repeat 0 -528px!important}.cke_button__justifyright_icon{background:url(icons.png?t=K1SC) no-repeat 0 -552px!important}.cke_button__language_icon{background:url(icons.png?t=K1SC) no-repeat 0 -576px!important}.cke_rtl .cke_button__bulletedlist_icon,.cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon{background:url(icons.png?t=K1SC) no-repeat 0 -600px!important}.cke_ltr .cke_button__bulletedlist_icon{background:url(icons.png?t=K1SC) no-repeat 0 -624px!important}.cke_rtl .cke_button__numberedlist_icon,.cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon{background:url(icons.png?t=K1SC) no-repeat 0 -648px!important}.cke_ltr .cke_button__numberedlist_icon{background:url(icons.png?t=K1SC) no-repeat 0 -672px!important}.cke_button__maximize_icon{background:url(icons.png?t=K1SC) no-repeat 0 -696px!important}.cke_rtl .cke_button__pastefromword_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon{background:url(icons.png?t=K1SC) no-repeat 0 -720px!important}.cke_ltr .cke_button__pastefromword_icon{background:url(icons.png?t=K1SC) no-repeat 0 -744px!important}.cke_rtl .cke_button__pastetext_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon{background:url(icons.png?t=K1SC) no-repeat 0 -768px!important}.cke_ltr .cke_button__pastetext_icon{background:url(icons.png?t=K1SC) no-repeat 0 -792px!important}.cke_button__removeformat_icon{background:url(icons.png?t=K1SC) no-repeat 0 -816px!important}.cke_rtl .cke_button__showblocks_icon,.cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon{background:url(icons.png?t=K1SC) no-repeat 0 -840px!important}.cke_ltr .cke_button__showblocks_icon{background:url(icons.png?t=K1SC) no-repeat 0 -864px!important}.cke_rtl .cke_button__source_icon,.cke_mixed_dir_content .cke_rtl .cke_button__source_icon{background:url(icons.png?t=K1SC) no-repeat 0 -888px!important}.cke_ltr .cke_button__source_icon{background:url(icons.png?t=K1SC) no-repeat 0 -912px!important}.cke_rtl .cke_button__sourcedialog_icon,.cke_mixed_dir_content .cke_rtl .cke_button__sourcedialog_icon{background:url(icons.png?t=K1SC) no-repeat 0 -936px!important}.cke_ltr .cke_button__sourcedialog_icon{background:url(icons.png?t=K1SC) no-repeat 0 -960px!important}.cke_button__specialchar_icon{background:url(icons.png?t=K1SC) no-repeat 0 -984px!important}.cke_button__table_icon{background:url(icons.png?t=K1SC) no-repeat 0 -1008px!important}.cke_rtl .cke_button__redo_icon,.cke_mixed_dir_content .cke_rtl .cke_button__redo_icon{background:url(icons.png?t=K1SC) no-repeat 0 -1032px!important}.cke_ltr .cke_button__redo_icon{background:url(icons.png?t=K1SC) no-repeat 0 -1056px!important}.cke_rtl .cke_button__undo_icon,.cke_mixed_dir_content .cke_rtl .cke_button__undo_icon{background:url(icons.png?t=K1SC) no-repeat 0 -1080px!important}.cke_ltr .cke_button__undo_icon{background:url(icons.png?t=K1SC) no-repeat 0 -1104px!important}.cke_button__simplebox_icon{background:url(icons.png?t=K1SC) no-repeat 0 -1128px!important}.cke_hidpi .cke_button__about_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -0px!important;background-size:16px!important}.cke_hidpi .cke_button__bold_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -24px!important;background-size:16px!important}.cke_hidpi .cke_button__italic_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -48px!important;background-size:16px!important}.cke_hidpi .cke_button__strike_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -72px!important;background-size:16px!important}.cke_hidpi .cke_button__subscript_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -96px!important;background-size:16px!important}.cke_hidpi .cke_button__superscript_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -120px!important;background-size:16px!important}.cke_hidpi .cke_button__underline_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -144px!important;background-size:16px!important}.cke_hidpi .cke_button__blockquote_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -168px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__copy_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__copy_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -192px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__copy_icon,.cke_ltr.cke_hidpi .cke_button__copy_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -216px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__cut_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__cut_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -240px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__cut_icon,.cke_ltr.cke_hidpi .cke_button__cut_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -264px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__paste_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__paste_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -288px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__paste_icon,.cke_ltr.cke_hidpi .cke_button__paste_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -312px!important;background-size:16px!important}.cke_hidpi .cke_button__horizontalrule_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -336px!important;background-size:16px!important}.cke_hidpi .cke_button__image_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -360px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__indent_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -384px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__indent_icon,.cke_ltr.cke_hidpi .cke_button__indent_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -408px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__outdent_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -432px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__outdent_icon,.cke_ltr.cke_hidpi .cke_button__outdent_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -456px!important;background-size:16px!important}.cke_hidpi .cke_button__justifyblock_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -480px!important;background-size:16px!important}.cke_hidpi .cke_button__justifycenter_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -504px!important;background-size:16px!important}.cke_hidpi .cke_button__justifyleft_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -528px!important;background-size:16px!important}.cke_hidpi .cke_button__justifyright_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -552px!important;background-size:16px!important}.cke_hidpi .cke_button__language_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -576px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__bulletedlist_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -600px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__bulletedlist_icon,.cke_ltr.cke_hidpi .cke_button__bulletedlist_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -624px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__numberedlist_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -648px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__numberedlist_icon,.cke_ltr.cke_hidpi .cke_button__numberedlist_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -672px!important;background-size:16px!important}.cke_hidpi .cke_button__maximize_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -696px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__pastefromword_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -720px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__pastefromword_icon,.cke_ltr.cke_hidpi .cke_button__pastefromword_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -744px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__pastetext_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -768px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__pastetext_icon,.cke_ltr.cke_hidpi .cke_button__pastetext_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -792px!important;background-size:16px!important}.cke_hidpi .cke_button__removeformat_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -816px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__showblocks_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -840px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__showblocks_icon,.cke_ltr.cke_hidpi .cke_button__showblocks_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -864px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__source_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__source_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -888px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__source_icon,.cke_ltr.cke_hidpi .cke_button__source_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -912px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__sourcedialog_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__sourcedialog_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -936px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__sourcedialog_icon,.cke_ltr.cke_hidpi .cke_button__sourcedialog_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -960px!important;background-size:16px!important}.cke_hidpi .cke_button__specialchar_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -984px!important;background-size:16px!important}.cke_hidpi .cke_button__table_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -1008px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__redo_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__redo_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -1032px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__redo_icon,.cke_ltr.cke_hidpi .cke_button__redo_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -1056px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__undo_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__undo_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -1080px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__undo_icon,.cke_ltr.cke_hidpi .cke_button__undo_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -1104px!important;background-size:16px!important}.cke_hidpi .cke_button__simplebox_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -2256px!important}a.cke_button_disabled,a.cke_button_disabled:hover,a.cke_button_disabled:focus,a.cke_button_disabled:active{filter:alpha(opacity = 30)}.cke_button_disabled .cke_button_icon{filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#00ffffff,endColorstr=#00ffffff)}.cke_button_off:hover,.cke_button_off:focus,.cke_button_off:active{filter:alpha(opacity = 100)}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{filter:alpha(opacity = 30)}.cke_toolbox_collapser{border:1px solid #a6a6a6}.cke_toolbox_collapser .cke_arrow{margin-top:1px}.cke_hc .cke_top,.cke_hc .cke_bottom,.cke_hc .cke_combo_button,.cke_hc a.cke_combo_button:hover,.cke_hc a.cke_combo_button:focus,.cke_hc .cke_toolgroup,.cke_hc .cke_button_on,.cke_hc a.cke_button_off:hover,.cke_hc a.cke_button_off:focus,.cke_hc a.cke_button_off:active,.cke_hc .cke_toolbox_collapser,.cke_hc .cke_toolbox_collapser:hover,.cke_hc .cke_panel_grouptitle{filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.cke_toolbox_collapser .cke_arrow{border-width:4px}.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow{border-width:3px}.cke_toolbox_collapser .cke_arrow{margin-top:0}.cke_toolbar{position:relative}.cke_rtl .cke_toolbar_end{right:auto;left:0}.cke_toolbar_end:after{content:"";position:absolute;height:18px;width:0;border-right:1px solid #bcbcbc;margin-top:4px;top:1px;right:2px}.cke_rtl .cke_toolbar_end:after{right:auto;left:2px}.cke_hc .cke_toolbar_end:after{top:2px;right:5px;border-color:#000}.cke_hc.cke_rtl .cke_toolbar_end:after{right:auto;left:5px}.cke_combo+.cke_toolbar_end:after,.cke_toolbar.cke_toolbar_last .cke_toolbar_end:after{content:none;border:0}.cke_combo+.cke_toolgroup+.cke_toolbar_end:after{right:0}.cke_rtl .cke_combo+.cke_toolgroup+.cke_toolbar_end:after{right:auto;left:0}
\ No newline at end of file
diff --git a/web/core/assets/vendor/ckeditor/skins/moono-lisa/editor_iequirks.css b/web/core/assets/vendor/ckeditor/skins/moono-lisa/editor_iequirks.css
index 4f7896b40c..638cace18f 100644
--- a/web/core/assets/vendor/ckeditor/skins/moono-lisa/editor_iequirks.css
+++ b/web/core/assets/vendor/ckeditor/skins/moono-lisa/editor_iequirks.css
@@ -2,4 +2,4 @@
 Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */
-.cke_reset{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;position:static;transition:none}.cke_reset_all,.cke_reset_all *,.cke_reset_all a,.cke_reset_all textarea{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;position:static;transition:none;border-collapse:collapse;font:normal normal normal 12px Arial,Helvetica,Tahoma,Verdana,Sans-Serif;color:#000;text-align:left;white-space:nowrap;cursor:auto;float:none}.cke_reset_all .cke_rtl *{text-align:right}.cke_reset_all iframe{vertical-align:inherit}.cke_reset_all textarea{white-space:pre-wrap}.cke_reset_all textarea,.cke_reset_all input[type="text"],.cke_reset_all input[type="password"]{cursor:text}.cke_reset_all textarea[disabled],.cke_reset_all input[type="text"][disabled],.cke_reset_all input[type="password"][disabled]{cursor:default}.cke_reset_all fieldset{padding:10px;border:2px groove #e0dfe3}.cke_reset_all select{box-sizing:border-box}.cke_reset_all table{table-layout:auto}.cke_chrome{display:block;border:1px solid #d1d1d1;padding:0}.cke_inner{display:block;background:#fff;padding:0;-webkit-touch-callout:none}.cke_float{border:0}.cke_float .cke_inner{padding-bottom:0}.cke_top,.cke_contents,.cke_bottom{display:block;overflow:hidden}.cke_top{border-bottom:1px solid #d1d1d1;background:#f8f8f8;padding:6px 8px 2px;white-space:normal}.cke_float .cke_top{border:1px solid #d1d1d1}.cke_bottom{padding:6px 8px 2px;position:relative;border-top:1px solid #d1d1d1;background:#f8f8f8}.cke_browser_ios .cke_contents{overflow-y:auto;-webkit-overflow-scrolling:touch}.cke_resizer{width:0;height:0;overflow:hidden;border-width:10px 10px 0 0;border-color:transparent #bcbcbc transparent transparent;border-style:dashed solid dashed dashed;font-size:0;vertical-align:bottom;margin-top:6px;margin-bottom:2px}.cke_hc .cke_resizer{font-size:15px;width:auto;height:auto;border-width:0}.cke_resizer_ltr{cursor:se-resize;float:right;margin-right:-4px}.cke_resizer_rtl{border-width:10px 0 0 10px;border-color:transparent transparent transparent #bcbcbc;border-style:dashed dashed dashed solid;cursor:sw-resize;float:left;margin-left:-4px;right:auto}.cke_wysiwyg_div{display:block;height:100%;overflow:auto;padding:0 8px;outline-style:none;box-sizing:border-box}.cke_panel{visibility:visible;width:120px;height:100px;overflow:hidden;background-color:#fff;border:1px solid #d1d1d1}.cke_menu_panel{padding:0;margin:0}.cke_combopanel{width:150px;height:170px}.cke_panel_frame{width:100%;height:100%;font-size:12px;overflow:auto;overflow-x:hidden}.cke_panel_container{overflow-y:auto;overflow-x:hidden}.cke_panel_block:focus{outline:0}.cke_panel_list{margin:0;padding:0;list-style-type:none;white-space:nowrap}.cke_panel_listItem{margin:0;padding:0}.cke_panel_listItem a{padding:6px 7px;display:block;color:inherit!important;text-decoration:none;overflow:hidden;text-overflow:ellipsis}.cke_hc .cke_panel_listItem a{border-style:none}.cke_panel_listItem.cke_selected a,.cke_panel_listItem a:hover,.cke_panel_listItem a:focus,.cke_panel_listItem a:active{background-color:#e9e9e9}.cke_panel_listItem a:focus{outline:1px dotted #000}.cke_hc .cke_panel_listItem a:hover,.cke_hc .cke_panel_listItem a:focus,.cke_hc .cke_panel_listItem a:active{border:2px solid;padding:4px 5px}.cke_panel_listItem p,.cke_panel_listItem h1,.cke_panel_listItem h2,.cke_panel_listItem h3,.cke_panel_listItem h4,.cke_panel_listItem h5,.cke_panel_listItem h6,.cke_panel_listItem pre{margin-top:0;margin-bottom:0}.cke_panel_grouptitle{cursor:default;font-size:11px;font-weight:bold;white-space:nowrap;margin:0;padding:6px 6px 7px 6px;color:#484848;border-bottom:1px solid #d1d1d1;background:#f8f8f8}.cke_colorblock{padding:10px;font-size:11px;font-family:'Microsoft Sans Serif',Tahoma,Arial,Verdana,Sans-Serif}.cke_colorblock,.cke_colorblock a{text-decoration:none;color:#000}a.cke_colorbox{padding:2px;float:left;width:20px;height:20px}.cke_rtl a.cke_colorbox{float:right}a:hover.cke_colorbox,a:focus.cke_colorbox,a:active.cke_colorbox{outline:0;padding:0;border:2px solid #139ff7}a:hover.cke_colorbox{border-color:#bcbcbc}span.cke_colorbox{width:20px;height:20px;float:left}.cke_rtl span.cke_colorbox{float:right}a.cke_colorauto,a.cke_colormore{border:#fff 1px solid;padding:3px;display:block;cursor:pointer}a.cke_colorauto{padding:0;border:1px solid transparent;margin-bottom:6px;height:26px;line-height:26px}a.cke_colormore{margin-top:10px;height:20px;line-height:19px}a:hover.cke_colorauto,a:hover.cke_colormore,a:focus.cke_colorauto,a:focus.cke_colormore,a:active.cke_colorauto,a:active.cke_colormore{outline:0;border:#139ff7 1px solid;background-color:#f8f8f8}a:hover.cke_colorauto,a:hover.cke_colormore{border-color:#bcbcbc}.cke_colorauto span.cke_colorbox{width:18px;height:18px;border:1px solid #808080;margin-left:1px;margin-top:3px}.cke_rtl .cke_colorauto span.cke_colorbox{margin-left:0;margin-right:1px}span.cke_colorbox[style*="#ffffff"],span.cke_colorbox[style*="#FFFFFF"],span.cke_colorbox[style="background-color:#fff"],span.cke_colorbox[style="background-color:#FFF"],span.cke_colorbox[style*="rgb(255,255,255)"],span.cke_colorbox[style*="rgb(255, 255, 255)"]{border:1px solid #808080;width:18px;height:18px}.cke_toolbar{float:left}.cke_rtl .cke_toolbar{float:right}.cke_toolgroup{border:0;float:left;margin:1px 2px 6px 0;padding-right:3px}.cke_rtl .cke_toolgroup{float:right;margin:1px 0 6px 2px;padding-left:3px;padding-right:0}.cke_hc .cke_toolgroup{margin-right:5px;margin-bottom:5px}.cke_hc.cke_rtl .cke_toolgroup{margin-right:0;margin-left:5px}a.cke_button{display:inline-block;height:18px;padding:4px 6px;outline:0;cursor:default;float:left;border:0;position:relative}a.cke_button_expandable{padding:4px 5px}.cke_rtl a.cke_button{float:right}.cke_hc a.cke_button{border:1px solid black;padding:3px 5px;margin:0 3px 5px 0}.cke_hc.cke_rtl a.cke_button{margin:0 0 5px 3px}a.cke_button_on{background:#fff;border:1px #bcbcbc solid;padding:3px 5px}a.cke_button_expandable.cke_button_on{padding:3px 4px}a.cke_button_off:hover,a.cke_button_off:focus,a.cke_button_off:active{background:#e5e5e5;border:1px #bcbcbc solid;padding:3px 5px}a.cke_button_expandable.cke_button_off:hover,a.cke_button_expandable.cke_button_off:focus,a.cke_button_expandable.cke_button_off:active{padding:3px 4px}.cke_hc a.cke_button_on,.cke_hc a.cke_button_off:hover,.cke_hc a.cke_button_off:focus,.cke_hc a.cke_button_off:active{background:#e5e5e5;border:3px solid #000;padding:1px 3px}a.cke_button_disabled:hover,a.cke_button_disabled:focus,a.cke_button_disabled:active{border:0;padding:4px 6px;background-color:transparent}a.cke_button_expandable.cke_button_disabled:hover,a.cke_button_expandable.cke_button_disabled:active{padding:4px 5px}a.cke_button_disabled:focus{border:1px #bcbcbc solid;padding:3px 5px}a.cke_button_expandable.cke_button_disabled:focus{padding:3px 4px}.cke_hc a.cke_button_disabled:hover,.cke_hc a.cke_button_disabled:focus,.cke_hc a.cke_button_disabled:active{border:1px solid #acacac;padding:3px 5px;margin:0 3px 5px 0}.cke_hc a.cke_button_disabled:focus{border:3px solid #000;padding:1px 3px}.cke_hc.cke_rtl a.cke_button_disabled:hover,.cke_hc.cke_rtl a.cke_button_disabled:focus,.cke_hc.cke_rtl a.cke_button_disabled:active{margin:0 0 5px 3px}a.cke_button_disabled .cke_button_icon,a.cke_button_disabled .cke_button_arrow{opacity:.3}.cke_hc a.cke_button_disabled{border-color:#acacac}.cke_hc a.cke_button_disabled .cke_button_icon,.cke_hc a.cke_button_disabled .cke_button_label{opacity:.5}.cke_toolgroup a.cke_button:last-child:after,.cke_toolgroup a.cke_button.cke_button_disabled:hover:last-child:after{content:"";position:absolute;height:18px;width:0;border-right:1px solid #bcbcbc;margin-top:4px;top:0;right:-3px}.cke_rtl .cke_toolgroup a.cke_button:last-child:after,.cke_rtl .cke_toolgroup a.cke_button.cke_button_disabled:hover:last-child:after{border-right:0;right:auto;border-left:1px solid #bcbcbc;top:0;left:-3px}.cke_hc .cke_toolgroup a.cke_button:last-child:after,.cke_hc .cke_toolgroup a.cke_button.cke_button_disabled:last-child:after,.cke_hc .cke_toolgroup a.cke_button.cke_button_disabled:hover:last-child:after{border-color:#000;top:0;right:-7px}.cke_hc.cke_rtl .cke_toolgroup a.cke_button:last-child:after,.cke_hc.cke_rtl .cke_toolgroup a.cke_button.cke_button_disabled:last-child:after,.cke_hc.cke_rtl .cke_toolgroup a.cke_button.cke_button_disabled:hover:last-child:after{top:0;right:auto;left:-7px}.cke_toolgroup a.cke_button:hover:last-child:after,.cke_toolgroup a.cke_button:focus:last-child:after,.cke_toolgroup a.cke_button.cke_button_on:last-child:after{top:-1px;right:-4px}.cke_rtl .cke_toolgroup a.cke_button:hover:last-child:after,.cke_rtl .cke_toolgroup a.cke_button:focus:last-child:after,.cke_rtl .cke_toolgroup a.cke_button.cke_button_on:last-child:after{top:-1px;right:auto;left:-4px}.cke_hc .cke_toolgroup a.cke_button:hover:last-child:after,.cke_hc .cke_toolgroup a.cke_button.cke_button_on:last-child:after{top:-2px;right:-9px}.cke_hc.cke_rtl .cke_toolgroup a.cke_button:hover:last-child:after,.cke_hc.cke_rtl .cke_toolgroup a.cke_button.cke_button_on:last-child:after{top:-2px;right:auto;left:-9px}.cke_toolbar.cke_toolbar_last .cke_toolgroup a.cke_button:last-child:after{content:none;border:0;width:0;height:0}.cke_button_icon{cursor:inherit;background-repeat:no-repeat;margin-top:1px;width:16px;height:16px;float:left;display:inline-block}.cke_rtl .cke_button_icon{float:right}.cke_hc .cke_button_icon{display:none}.cke_button_label{display:none;padding-left:3px;margin-top:1px;line-height:17px;vertical-align:middle;float:left;cursor:default;color:#484848}.cke_rtl .cke_button_label{padding-right:3px;padding-left:0;float:right}.cke_hc .cke_button_label{padding:0;display:inline-block;font-size:12px}.cke_button_arrow{display:inline-block;margin:8px 0 0 3px;width:0;height:0;cursor:default;vertical-align:top;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #484848}.cke_rtl .cke_button_arrow{margin-right:5px;margin-left:0}.cke_hc .cke_button_arrow{font-size:10px;margin:3px 0 0 3px;width:auto;border:0}.cke_toolbar_separator{float:left;background-color:#bcbcbc;margin:4px 2px 0 2px;height:18px;width:1px}.cke_rtl .cke_toolbar_separator{float:right}.cke_hc .cke_toolbar_separator{background-color:#000;margin-left:2px;margin-right:5px;margin-bottom:9px}.cke_hc.cke_rtl .cke_toolbar_separator{margin-left:5px;margin-right:2px}.cke_toolbar_break{display:block;clear:left}.cke_rtl .cke_toolbar_break{clear:right}a.cke_toolbox_collapser{width:12px;height:11px;float:right;margin:11px 0 0;font-size:0;cursor:default;text-align:center;border:1px solid #bcbcbc}.cke_rtl .cke_toolbox_collapser{float:left}.cke_toolbox_collapser:hover{background:#e5e5e5}.cke_toolbox_collapser.cke_toolbox_collapser_min{margin:0 2px 4px}.cke_toolbox_collapser .cke_arrow{display:inline-block;height:0;width:0;font-size:0;margin-top:1px;border:3px solid transparent;border-bottom-color:#484848}.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow{margin-top:4px;border-bottom-color:transparent;border-top-color:#484848}.cke_hc .cke_toolbox_collapser .cke_arrow{font-size:8px;width:auto;border:0;margin-top:0}.cke_menuitem span{cursor:default}.cke_menubutton{display:block}.cke_hc .cke_menubutton{padding:2px}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#e9e9e9;display:block;outline:1px dotted}.cke_menubutton:hover{outline:0}.cke_hc .cke_menubutton:hover,.cke_hc .cke_menubutton:focus,.cke_hc .cke_menubutton:active{border:2px solid;padding:0}.cke_menubutton_disabled:hover,.cke_menubutton_disabled:focus,.cke_menubutton_disabled:active{background-color:transparent;outline:0}.cke_menubutton_inner{display:table-row}.cke_menubutton_icon,.cke_menubutton_label,.cke_menuarrow{display:table-cell}.cke_menubutton_icon{background-color:#f8f8f8;padding:6px 4px}.cke_hc .cke_menubutton_icon{height:16px;width:0;padding:4px 0}.cke_menubutton:hover .cke_menubutton_icon,.cke_menubutton:focus .cke_menubutton_icon,.cke_menubutton:active .cke_menubutton_icon{background-color:#e9e9e9}.cke_menubutton_disabled:hover .cke_menubutton_icon,.cke_menubutton_disabled:focus .cke_menubutton_icon,.cke_menubutton_disabled:active .cke_menubutton_icon{background-color:#f8f8f8;outline:0}.cke_menuitem .cke_menubutton_on{background-color:#e9e9e9;border:1px solid #dedede;outline:0}.cke_menubutton_on .cke_menubutton_icon{padding-right:3px;background-color:#e9e9e9}.cke_menubutton_label{padding:0 5px;background-color:transparent;width:100%;vertical-align:middle}.cke_menubutton_shortcut{color:#979797}.cke_menubutton_disabled .cke_menubutton_label{opacity:.3;filter:alpha(opacity=30)}.cke_panel_frame .cke_menubutton_label{display:none}.cke_menuseparator{background-color:#d1d1d1;height:1px}.cke_menuarrow{background:transparent url(images/arrow.png) no-repeat 0 10px;padding:0 5px}.cke_rtl .cke_menuarrow{background-position:5px -13px;background-repeat:no-repeat}.cke_hc .cke_menuarrow{background-image:none}.cke_menuarrow span{display:none}.cke_hc .cke_menuarrow span{vertical-align:middle;display:inline}.cke_combo{display:inline-block;float:left;position:relative;margin-bottom:5px}.cke_rtl .cke_combo{float:right}.cke_hc .cke_combo{margin-top:1px;margin-bottom:10px}.cke_combo:after{content:"";position:absolute;height:18px;width:0;border-right:1px solid #bcbcbc;margin-top:5px;top:0;right:0}.cke_rtl .cke_combo:after{border-right:0;border-left:1px solid #bcbcbc;right:auto;left:0}.cke_hc .cke_combo:after{border-color:#000}a.cke_combo_button{cursor:default;display:inline-block;float:left;margin:0;padding:1px}.cke_rtl a.cke_combo_button{float:right}.cke_hc a.cke_combo_button{padding:4px}.cke_combo_on a.cke_combo_button,.cke_combo_off a.cke_combo_button:hover,.cke_combo_off a.cke_combo_button:focus,.cke_combo_off a.cke_combo_button:active{background:#e5e5e5;border:1px solid #bcbcbc;padding:0 0 0 1px;margin-left:-1px}.cke_combo_off a.cke_combo_button:focus{outline:0}.cke_combo_on a.cke_combo_button,.cke_combo_off a.cke_combo_button:active{background:#fff}.cke_rtl .cke_combo_on a.cke_combo_button,.cke_rtl .cke_combo_off a.cke_combo_button:hover,.cke_rtl .cke_combo_off a.cke_combo_button:focus,.cke_rtl .cke_combo_off a.cke_combo_button:active{padding:0 1px 0 0;margin-left:0;margin-right:-1px}.cke_hc .cke_combo_on a.cke_combo_button,.cke_hc .cke_combo_off a.cke_combo_button:hover,.cke_hc .cke_combo_off a.cke_combo_button:focus,.cke_hc .cke_combo_off a.cke_combo_button:active{border:3px solid #000;padding:1px 1px 1px 2px}.cke_hc.cke_rtl .cke_combo_on a.cke_combo_button,.cke_hc.cke_rtl .cke_combo_off a.cke_combo_button:hover,.cke_hc.cke_rtl .cke_combo_off a.cke_combo_button:focus,.cke_hc.cke_rtl .cke_combo_off a.cke_combo_button:active{padding:1px 2px 1px 1px}.cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_toolbar_start+.cke_combo_off a.cke_combo_button:active{padding:0 0 0 3px;margin-left:-3px}.cke_rtl .cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_rtl .cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_rtl .cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_rtl .cke_toolbar_start+.cke_combo_off a.cke_combo_button:active{padding:0 3px 0 0;margin-left:0;margin-right:-3px}.cke_hc .cke_toolbar>.cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_hc .cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_hc .cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_hc .cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:active{padding:1px 1px 1px 7px;margin-left:-6px}.cke_hc.cke_rtl .cke_toolbar>.cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_hc.cke_rtl .cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_hc.cke_rtl .cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_hc.cke_rtl .cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:active{padding:1px 7px 1px 1px;margin-left:0;margin-right:-6px}.cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:active,.cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:active{padding:0;margin:0}.cke_hc .cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_hc .cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_hc .cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_hc .cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:active,.cke_hc .cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_hc .cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_hc .cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_hc .cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:active{padding:1px;margin:0}.cke_toolbar .cke_combo+.cke_toolbar_end,.cke_toolbar .cke_combo+.cke_toolgroup{margin-right:0;margin-left:2px}.cke_rtl .cke_toolbar .cke_combo+.cke_toolbar_end,.cke_rtl .cke_toolbar .cke_combo+.cke_toolgroup{margin-left:0;margin-right:2px}.cke_hc .cke_toolbar .cke_combo+.cke_toolbar_end,.cke_hc .cke_toolbar .cke_combo+.cke_toolgroup{margin-left:5px}.cke_hc.cke_rtl .cke_toolbar .cke_combo+.cke_toolbar_end,.cke_hc.cke_rtl .cke_toolbar .cke_combo+.cke_toolgroup{margin-left:0;margin-right:5px}.cke_toolbar.cke_toolbar_last .cke_combo:nth-last-child(-n+2):after{content:none;border:0;width:0;height:0}.cke_combo_text{line-height:26px;padding-left:10px;text-overflow:ellipsis;overflow:hidden;float:left;cursor:default;color:#484848;width:60px}.cke_rtl .cke_combo_text{float:right;text-align:right;padding-left:0;padding-right:10px}.cke_hc .cke_combo_text{line-height:18px;font-size:12px}.cke_combo_open{cursor:default;display:inline-block;font-size:0;height:19px;line-height:17px;margin:1px 10px 1px;width:5px}.cke_hc .cke_combo_open{height:12px}.cke_combo_arrow{cursor:default;margin:11px 0 0;float:left;height:0;width:0;font-size:0;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #484848}.cke_hc .cke_combo_arrow{font-size:10px;width:auto;border:0;margin-top:3px}.cke_combo_label{display:none;float:left;line-height:26px;vertical-align:top;margin-right:5px}.cke_rtl .cke_combo_label{float:right;margin-left:5px;margin-right:0}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{opacity:.3}.cke_path{float:left;margin:-2px 0 2px}a.cke_path_item,span.cke_path_empty{display:inline-block;float:left;padding:3px 4px;margin-right:2px;cursor:default;text-decoration:none;outline:0;border:0;color:#484848;font-weight:bold;font-size:11px}.cke_rtl .cke_path,.cke_rtl .cke_path_item,.cke_rtl .cke_path_empty{float:right}a.cke_path_item:hover,a.cke_path_item:focus,a.cke_path_item:active{background-color:#e5e5e5}.cke_hc a.cke_path_item:hover,.cke_hc a.cke_path_item:focus,.cke_hc a.cke_path_item:active{border:2px solid;padding:1px 2px}.cke_button__source_label,.cke_button__sourcedialog_label{display:inline}.cke_combopanel__fontsize{width:135px}textarea.cke_source{font-family:'Courier New',Monospace;font-size:small;background-color:#fff;white-space:pre-wrap;border:0;padding:0;margin:0;display:block}.cke_wysiwyg_frame,.cke_wysiwyg_div{background-color:#fff}.cke_notifications_area{pointer-events:none}.cke_notification{pointer-events:auto;position:relative;margin:10px;width:300px;color:white;text-align:center;opacity:.95;filter:alpha(opacity = 95);-webkit-animation:fadeIn .7s;animation:fadeIn .7s}.cke_notification_message a{color:#12306f}@-webkit-keyframes fadeIn{from{opacity:.4}to{opacity:.95}}@keyframes fadeIn{from{opacity:.4}to{opacity:.95}}.cke_notification_success{background:#72b572;border:1px solid #63a563}.cke_notification_warning{background:#c83939;border:1px solid #902b2b}.cke_notification_info{background:#2e9ad0;border:1px solid #0f74a8}.cke_notification_info span.cke_notification_progress{background-color:#0f74a8;display:block;padding:0;margin:0;height:100%;overflow:hidden;position:absolute;z-index:1}.cke_notification_message{position:relative;margin:4px 23px 3px;font-family:Arial,Helvetica,sans-serif;font-size:12px;line-height:18px;z-index:4;text-overflow:ellipsis;overflow:hidden}.cke_notification_close{background-image:url(images/close.png);background-repeat:no-repeat;background-position:50%;position:absolute;cursor:pointer;text-align:center;height:20px;width:20px;top:1px;right:1px;padding:0;margin:0;z-index:5;opacity:.6;filter:alpha(opacity = 60)}.cke_notification_close:hover{opacity:1;filter:alpha(opacity = 100)}.cke_notification_close span{display:none}.cke_notification_warning a.cke_notification_close{opacity:.8;filter:alpha(opacity = 80)}.cke_notification_warning a.cke_notification_close:hover{opacity:1;filter:alpha(opacity = 100)}.cke_chrome{visibility:inherit}.cke_voice_label{display:none}legend.cke_voice_label{display:none}.cke_button__about_icon{background:url(icons.png?t=JA5A) no-repeat 0 -0px!important}.cke_button__bold_icon{background:url(icons.png?t=JA5A) no-repeat 0 -24px!important}.cke_button__italic_icon{background:url(icons.png?t=JA5A) no-repeat 0 -48px!important}.cke_button__strike_icon{background:url(icons.png?t=JA5A) no-repeat 0 -72px!important}.cke_button__subscript_icon{background:url(icons.png?t=JA5A) no-repeat 0 -96px!important}.cke_button__superscript_icon{background:url(icons.png?t=JA5A) no-repeat 0 -120px!important}.cke_button__underline_icon{background:url(icons.png?t=JA5A) no-repeat 0 -144px!important}.cke_button__blockquote_icon{background:url(icons.png?t=JA5A) no-repeat 0 -168px!important}.cke_rtl .cke_button__copy_icon,.cke_mixed_dir_content .cke_rtl .cke_button__copy_icon{background:url(icons.png?t=JA5A) no-repeat 0 -192px!important}.cke_ltr .cke_button__copy_icon{background:url(icons.png?t=JA5A) no-repeat 0 -216px!important}.cke_rtl .cke_button__cut_icon,.cke_mixed_dir_content .cke_rtl .cke_button__cut_icon{background:url(icons.png?t=JA5A) no-repeat 0 -240px!important}.cke_ltr .cke_button__cut_icon{background:url(icons.png?t=JA5A) no-repeat 0 -264px!important}.cke_rtl .cke_button__paste_icon,.cke_mixed_dir_content .cke_rtl .cke_button__paste_icon{background:url(icons.png?t=JA5A) no-repeat 0 -288px!important}.cke_ltr .cke_button__paste_icon{background:url(icons.png?t=JA5A) no-repeat 0 -312px!important}.cke_button__horizontalrule_icon{background:url(icons.png?t=JA5A) no-repeat 0 -336px!important}.cke_button__image_icon{background:url(icons.png?t=JA5A) no-repeat 0 -360px!important}.cke_rtl .cke_button__indent_icon,.cke_mixed_dir_content .cke_rtl .cke_button__indent_icon{background:url(icons.png?t=JA5A) no-repeat 0 -384px!important}.cke_ltr .cke_button__indent_icon{background:url(icons.png?t=JA5A) no-repeat 0 -408px!important}.cke_rtl .cke_button__outdent_icon,.cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon{background:url(icons.png?t=JA5A) no-repeat 0 -432px!important}.cke_ltr .cke_button__outdent_icon{background:url(icons.png?t=JA5A) no-repeat 0 -456px!important}.cke_button__justifyblock_icon{background:url(icons.png?t=JA5A) no-repeat 0 -480px!important}.cke_button__justifycenter_icon{background:url(icons.png?t=JA5A) no-repeat 0 -504px!important}.cke_button__justifyleft_icon{background:url(icons.png?t=JA5A) no-repeat 0 -528px!important}.cke_button__justifyright_icon{background:url(icons.png?t=JA5A) no-repeat 0 -552px!important}.cke_button__language_icon{background:url(icons.png?t=JA5A) no-repeat 0 -576px!important}.cke_rtl .cke_button__bulletedlist_icon,.cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon{background:url(icons.png?t=JA5A) no-repeat 0 -600px!important}.cke_ltr .cke_button__bulletedlist_icon{background:url(icons.png?t=JA5A) no-repeat 0 -624px!important}.cke_rtl .cke_button__numberedlist_icon,.cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon{background:url(icons.png?t=JA5A) no-repeat 0 -648px!important}.cke_ltr .cke_button__numberedlist_icon{background:url(icons.png?t=JA5A) no-repeat 0 -672px!important}.cke_button__maximize_icon{background:url(icons.png?t=JA5A) no-repeat 0 -696px!important}.cke_rtl .cke_button__pastefromword_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon{background:url(icons.png?t=JA5A) no-repeat 0 -720px!important}.cke_ltr .cke_button__pastefromword_icon{background:url(icons.png?t=JA5A) no-repeat 0 -744px!important}.cke_rtl .cke_button__pastetext_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon{background:url(icons.png?t=JA5A) no-repeat 0 -768px!important}.cke_ltr .cke_button__pastetext_icon{background:url(icons.png?t=JA5A) no-repeat 0 -792px!important}.cke_button__removeformat_icon{background:url(icons.png?t=JA5A) no-repeat 0 -816px!important}.cke_rtl .cke_button__showblocks_icon,.cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon{background:url(icons.png?t=JA5A) no-repeat 0 -840px!important}.cke_ltr .cke_button__showblocks_icon{background:url(icons.png?t=JA5A) no-repeat 0 -864px!important}.cke_rtl .cke_button__source_icon,.cke_mixed_dir_content .cke_rtl .cke_button__source_icon{background:url(icons.png?t=JA5A) no-repeat 0 -888px!important}.cke_ltr .cke_button__source_icon{background:url(icons.png?t=JA5A) no-repeat 0 -912px!important}.cke_rtl .cke_button__sourcedialog_icon,.cke_mixed_dir_content .cke_rtl .cke_button__sourcedialog_icon{background:url(icons.png?t=JA5A) no-repeat 0 -936px!important}.cke_ltr .cke_button__sourcedialog_icon{background:url(icons.png?t=JA5A) no-repeat 0 -960px!important}.cke_button__specialchar_icon{background:url(icons.png?t=JA5A) no-repeat 0 -984px!important}.cke_button__table_icon{background:url(icons.png?t=JA5A) no-repeat 0 -1008px!important}.cke_rtl .cke_button__redo_icon,.cke_mixed_dir_content .cke_rtl .cke_button__redo_icon{background:url(icons.png?t=JA5A) no-repeat 0 -1032px!important}.cke_ltr .cke_button__redo_icon{background:url(icons.png?t=JA5A) no-repeat 0 -1056px!important}.cke_rtl .cke_button__undo_icon,.cke_mixed_dir_content .cke_rtl .cke_button__undo_icon{background:url(icons.png?t=JA5A) no-repeat 0 -1080px!important}.cke_ltr .cke_button__undo_icon{background:url(icons.png?t=JA5A) no-repeat 0 -1104px!important}.cke_button__simplebox_icon{background:url(icons.png?t=JA5A) no-repeat 0 -1128px!important}.cke_hidpi .cke_button__about_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -0px!important;background-size:16px!important}.cke_hidpi .cke_button__bold_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -24px!important;background-size:16px!important}.cke_hidpi .cke_button__italic_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -48px!important;background-size:16px!important}.cke_hidpi .cke_button__strike_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -72px!important;background-size:16px!important}.cke_hidpi .cke_button__subscript_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -96px!important;background-size:16px!important}.cke_hidpi .cke_button__superscript_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -120px!important;background-size:16px!important}.cke_hidpi .cke_button__underline_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -144px!important;background-size:16px!important}.cke_hidpi .cke_button__blockquote_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -168px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__copy_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__copy_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -192px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__copy_icon,.cke_ltr.cke_hidpi .cke_button__copy_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -216px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__cut_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__cut_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -240px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__cut_icon,.cke_ltr.cke_hidpi .cke_button__cut_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -264px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__paste_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__paste_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -288px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__paste_icon,.cke_ltr.cke_hidpi .cke_button__paste_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -312px!important;background-size:16px!important}.cke_hidpi .cke_button__horizontalrule_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -336px!important;background-size:16px!important}.cke_hidpi .cke_button__image_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -360px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__indent_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -384px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__indent_icon,.cke_ltr.cke_hidpi .cke_button__indent_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -408px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__outdent_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -432px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__outdent_icon,.cke_ltr.cke_hidpi .cke_button__outdent_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -456px!important;background-size:16px!important}.cke_hidpi .cke_button__justifyblock_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -480px!important;background-size:16px!important}.cke_hidpi .cke_button__justifycenter_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -504px!important;background-size:16px!important}.cke_hidpi .cke_button__justifyleft_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -528px!important;background-size:16px!important}.cke_hidpi .cke_button__justifyright_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -552px!important;background-size:16px!important}.cke_hidpi .cke_button__language_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -576px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__bulletedlist_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -600px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__bulletedlist_icon,.cke_ltr.cke_hidpi .cke_button__bulletedlist_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -624px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__numberedlist_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -648px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__numberedlist_icon,.cke_ltr.cke_hidpi .cke_button__numberedlist_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -672px!important;background-size:16px!important}.cke_hidpi .cke_button__maximize_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -696px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__pastefromword_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -720px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__pastefromword_icon,.cke_ltr.cke_hidpi .cke_button__pastefromword_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -744px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__pastetext_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -768px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__pastetext_icon,.cke_ltr.cke_hidpi .cke_button__pastetext_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -792px!important;background-size:16px!important}.cke_hidpi .cke_button__removeformat_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -816px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__showblocks_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -840px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__showblocks_icon,.cke_ltr.cke_hidpi .cke_button__showblocks_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -864px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__source_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__source_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -888px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__source_icon,.cke_ltr.cke_hidpi .cke_button__source_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -912px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__sourcedialog_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__sourcedialog_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -936px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__sourcedialog_icon,.cke_ltr.cke_hidpi .cke_button__sourcedialog_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -960px!important;background-size:16px!important}.cke_hidpi .cke_button__specialchar_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -984px!important;background-size:16px!important}.cke_hidpi .cke_button__table_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -1008px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__redo_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__redo_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -1032px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__redo_icon,.cke_ltr.cke_hidpi .cke_button__redo_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -1056px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__undo_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__undo_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -1080px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__undo_icon,.cke_ltr.cke_hidpi .cke_button__undo_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -1104px!important;background-size:16px!important}.cke_hidpi .cke_button__simplebox_icon{background:url(icons_hidpi.png?t=JA5A) no-repeat 0 -2256px!important}a.cke_button_disabled,a.cke_button_disabled:hover,a.cke_button_disabled:focus,a.cke_button_disabled:active{filter:alpha(opacity = 30)}.cke_button_disabled .cke_button_icon{filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#00ffffff,endColorstr=#00ffffff)}.cke_button_off:hover,.cke_button_off:focus,.cke_button_off:active{filter:alpha(opacity = 100)}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{filter:alpha(opacity = 30)}.cke_toolbox_collapser{border:1px solid #a6a6a6}.cke_toolbox_collapser .cke_arrow{margin-top:1px}.cke_hc .cke_top,.cke_hc .cke_bottom,.cke_hc .cke_combo_button,.cke_hc a.cke_combo_button:hover,.cke_hc a.cke_combo_button:focus,.cke_hc .cke_toolgroup,.cke_hc .cke_button_on,.cke_hc a.cke_button_off:hover,.cke_hc a.cke_button_off:focus,.cke_hc a.cke_button_off:active,.cke_hc .cke_toolbox_collapser,.cke_hc .cke_toolbox_collapser:hover,.cke_hc .cke_panel_grouptitle{filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.cke_top,.cke_contents,.cke_bottom{width:100%}.cke_button_arrow{font-size:0}.cke_rtl .cke_toolgroup,.cke_rtl .cke_toolbar_separator,.cke_rtl .cke_button,.cke_rtl .cke_button *,.cke_rtl .cke_combo,.cke_rtl .cke_combo *,.cke_rtl .cke_path_item,.cke_rtl .cke_path_item *,.cke_rtl .cke_path_empty{float:none}.cke_rtl .cke_toolgroup,.cke_rtl .cke_toolbar_separator,.cke_rtl .cke_combo_button,.cke_rtl .cke_combo_button *,.cke_rtl .cke_button,.cke_rtl .cke_button_icon{display:inline-block;vertical-align:top}.cke_rtl .cke_button_icon{float:none}.cke_resizer{width:10px}.cke_source{white-space:normal}.cke_bottom{position:static}.cke_colorbox{font-size:0}
\ No newline at end of file
+.cke_reset{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;position:static;transition:none}.cke_reset_all,.cke_reset_all *,.cke_reset_all a,.cke_reset_all textarea{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;position:static;transition:none;border-collapse:collapse;font:normal normal normal 12px Arial,Helvetica,Tahoma,Verdana,Sans-Serif;color:#000;text-align:left;white-space:nowrap;cursor:auto;float:none}.cke_reset_all .cke_rtl *{text-align:right}.cke_reset_all iframe{vertical-align:inherit}.cke_reset_all textarea{white-space:pre-wrap}.cke_reset_all textarea,.cke_reset_all input[type="text"],.cke_reset_all input[type="password"]{cursor:text}.cke_reset_all textarea[disabled],.cke_reset_all input[type="text"][disabled],.cke_reset_all input[type="password"][disabled]{cursor:default}.cke_reset_all fieldset{padding:10px;border:2px groove #e0dfe3}.cke_reset_all select{box-sizing:border-box}.cke_reset_all table{table-layout:auto}.cke_chrome{display:block;border:1px solid #d1d1d1;padding:0}.cke_inner{display:block;background:#fff;padding:0;-webkit-touch-callout:none}.cke_float{border:0}.cke_float .cke_inner{padding-bottom:0}.cke_top,.cke_contents,.cke_bottom{display:block;overflow:hidden}.cke_top{border-bottom:1px solid #d1d1d1;background:#f8f8f8;padding:6px 8px 2px;white-space:normal}.cke_float .cke_top{border:1px solid #d1d1d1}.cke_bottom{padding:6px 8px 2px;position:relative;border-top:1px solid #d1d1d1;background:#f8f8f8}.cke_browser_ios .cke_contents{overflow-y:auto;-webkit-overflow-scrolling:touch}.cke_resizer{width:0;height:0;overflow:hidden;border-width:10px 10px 0 0;border-color:transparent #bcbcbc transparent transparent;border-style:dashed solid dashed dashed;font-size:0;vertical-align:bottom;margin-top:6px;margin-bottom:2px}.cke_hc .cke_resizer{font-size:15px;width:auto;height:auto;border-width:0}.cke_resizer_ltr{cursor:se-resize;float:right;margin-right:-4px}.cke_resizer_rtl{border-width:10px 0 0 10px;border-color:transparent transparent transparent #bcbcbc;border-style:dashed dashed dashed solid;cursor:sw-resize;float:left;margin-left:-4px;right:auto}.cke_wysiwyg_div{display:block;height:100%;overflow:auto;padding:0 8px;outline-style:none;box-sizing:border-box}.cke_panel{visibility:visible;width:120px;height:100px;overflow:hidden;background-color:#fff;border:1px solid #d1d1d1}.cke_menu_panel{padding:0;margin:0}.cke_combopanel{width:150px;height:170px}.cke_panel_frame{width:100%;height:100%;font-size:12px;overflow:auto;overflow-x:hidden}.cke_panel_container{overflow-y:auto;overflow-x:hidden}.cke_panel_block:focus{outline:0}.cke_panel_list{margin:0;padding:0;list-style-type:none;white-space:nowrap}.cke_panel_listItem{margin:0;padding:0}.cke_panel_listItem a{padding:6px 7px;display:block;color:inherit!important;text-decoration:none;overflow:hidden;text-overflow:ellipsis}.cke_hc .cke_panel_listItem a{border-style:none}.cke_panel_listItem.cke_selected a,.cke_panel_listItem a:hover,.cke_panel_listItem a:focus,.cke_panel_listItem a:active{background-color:#e9e9e9}.cke_panel_listItem a:focus{outline:1px dotted #000}.cke_hc .cke_panel_listItem a:hover,.cke_hc .cke_panel_listItem a:focus,.cke_hc .cke_panel_listItem a:active{border:2px solid;padding:4px 5px}.cke_panel_listItem p,.cke_panel_listItem h1,.cke_panel_listItem h2,.cke_panel_listItem h3,.cke_panel_listItem h4,.cke_panel_listItem h5,.cke_panel_listItem h6,.cke_panel_listItem pre{margin-top:0;margin-bottom:0}.cke_panel_grouptitle{cursor:default;font-size:11px;font-weight:bold;white-space:nowrap;margin:0;padding:6px 6px 7px 6px;color:#484848;border-bottom:1px solid #d1d1d1;background:#f8f8f8}.cke_colorblock{padding:10px;font-size:11px;font-family:'Microsoft Sans Serif',Tahoma,Arial,Verdana,Sans-Serif}.cke_colorblock,.cke_colorblock a{text-decoration:none;color:#000}a.cke_colorbox{padding:2px;float:left;width:20px;height:20px}.cke_rtl a.cke_colorbox{float:right}a:hover.cke_colorbox,a:focus.cke_colorbox,a:active.cke_colorbox{outline:0;padding:0;border:2px solid #139ff7}a:hover.cke_colorbox{border-color:#bcbcbc}span.cke_colorbox{width:20px;height:20px;float:left}.cke_rtl span.cke_colorbox{float:right}a.cke_colorauto,a.cke_colormore{border:#fff 1px solid;padding:3px;display:block;cursor:pointer}a.cke_colorauto{padding:0;border:1px solid transparent;margin-bottom:6px;height:26px;line-height:26px}a.cke_colormore{margin-top:10px;height:20px;line-height:19px}a:hover.cke_colorauto,a:hover.cke_colormore,a:focus.cke_colorauto,a:focus.cke_colormore,a:active.cke_colorauto,a:active.cke_colormore{outline:0;border:#139ff7 1px solid;background-color:#f8f8f8}a:hover.cke_colorauto,a:hover.cke_colormore{border-color:#bcbcbc}.cke_colorauto span.cke_colorbox{width:18px;height:18px;border:1px solid #808080;margin-left:1px;margin-top:3px}.cke_rtl .cke_colorauto span.cke_colorbox{margin-left:0;margin-right:1px}span.cke_colorbox[style*="#ffffff"],span.cke_colorbox[style*="#FFFFFF"],span.cke_colorbox[style="background-color:#fff"],span.cke_colorbox[style="background-color:#FFF"],span.cke_colorbox[style*="rgb(255,255,255)"],span.cke_colorbox[style*="rgb(255, 255, 255)"]{border:1px solid #808080;width:18px;height:18px}.cke_toolbar{float:left}.cke_rtl .cke_toolbar{float:right}.cke_toolgroup{border:0;float:left;margin:1px 2px 6px 0;padding-right:3px}.cke_rtl .cke_toolgroup{float:right;margin:1px 0 6px 2px;padding-left:3px;padding-right:0}.cke_hc .cke_toolgroup{margin-right:5px;margin-bottom:5px}.cke_hc.cke_rtl .cke_toolgroup{margin-right:0;margin-left:5px}a.cke_button{display:inline-block;height:18px;padding:4px 6px;outline:0;cursor:default;float:left;border:0;position:relative}a.cke_button_expandable{padding:4px 5px}.cke_rtl a.cke_button{float:right}.cke_hc a.cke_button{border:1px solid black;padding:3px 5px;margin:0 3px 5px 0}.cke_hc.cke_rtl a.cke_button{margin:0 0 5px 3px}a.cke_button_on{background:#fff;border:1px #bcbcbc solid;padding:3px 5px}a.cke_button_expandable.cke_button_on{padding:3px 4px}a.cke_button_off:hover,a.cke_button_off:focus,a.cke_button_off:active{background:#e5e5e5;border:1px #bcbcbc solid;padding:3px 5px}a.cke_button_expandable.cke_button_off:hover,a.cke_button_expandable.cke_button_off:focus,a.cke_button_expandable.cke_button_off:active{padding:3px 4px}.cke_hc a.cke_button_on,.cke_hc a.cke_button_off:hover,.cke_hc a.cke_button_off:focus,.cke_hc a.cke_button_off:active{background:#e5e5e5;border:3px solid #000;padding:1px 3px}a.cke_button_disabled:hover,a.cke_button_disabled:focus,a.cke_button_disabled:active{border:0;padding:4px 6px;background-color:transparent}a.cke_button_expandable.cke_button_disabled:hover,a.cke_button_expandable.cke_button_disabled:active{padding:4px 5px}a.cke_button_disabled:focus{border:1px #bcbcbc solid;padding:3px 5px}a.cke_button_expandable.cke_button_disabled:focus{padding:3px 4px}.cke_hc a.cke_button_disabled:hover,.cke_hc a.cke_button_disabled:focus,.cke_hc a.cke_button_disabled:active{border:1px solid #acacac;padding:3px 5px;margin:0 3px 5px 0}.cke_hc a.cke_button_disabled:focus{border:3px solid #000;padding:1px 3px}.cke_hc.cke_rtl a.cke_button_disabled:hover,.cke_hc.cke_rtl a.cke_button_disabled:focus,.cke_hc.cke_rtl a.cke_button_disabled:active{margin:0 0 5px 3px}a.cke_button_disabled .cke_button_icon,a.cke_button_disabled .cke_button_arrow{opacity:.3}.cke_hc a.cke_button_disabled{border-color:#acacac}.cke_hc a.cke_button_disabled .cke_button_icon,.cke_hc a.cke_button_disabled .cke_button_label{opacity:.5}.cke_toolgroup a.cke_button:last-child:after,.cke_toolgroup a.cke_button.cke_button_disabled:hover:last-child:after{content:"";position:absolute;height:18px;width:0;border-right:1px solid #bcbcbc;margin-top:4px;top:0;right:-3px}.cke_rtl .cke_toolgroup a.cke_button:last-child:after,.cke_rtl .cke_toolgroup a.cke_button.cke_button_disabled:hover:last-child:after{border-right:0;right:auto;border-left:1px solid #bcbcbc;top:0;left:-3px}.cke_hc .cke_toolgroup a.cke_button:last-child:after,.cke_hc .cke_toolgroup a.cke_button.cke_button_disabled:last-child:after,.cke_hc .cke_toolgroup a.cke_button.cke_button_disabled:hover:last-child:after{border-color:#000;top:0;right:-7px}.cke_hc.cke_rtl .cke_toolgroup a.cke_button:last-child:after,.cke_hc.cke_rtl .cke_toolgroup a.cke_button.cke_button_disabled:last-child:after,.cke_hc.cke_rtl .cke_toolgroup a.cke_button.cke_button_disabled:hover:last-child:after{top:0;right:auto;left:-7px}.cke_toolgroup a.cke_button:hover:last-child:after,.cke_toolgroup a.cke_button:focus:last-child:after,.cke_toolgroup a.cke_button.cke_button_on:last-child:after{top:-1px;right:-4px}.cke_rtl .cke_toolgroup a.cke_button:hover:last-child:after,.cke_rtl .cke_toolgroup a.cke_button:focus:last-child:after,.cke_rtl .cke_toolgroup a.cke_button.cke_button_on:last-child:after{top:-1px;right:auto;left:-4px}.cke_hc .cke_toolgroup a.cke_button:hover:last-child:after,.cke_hc .cke_toolgroup a.cke_button.cke_button_on:last-child:after{top:-2px;right:-9px}.cke_hc.cke_rtl .cke_toolgroup a.cke_button:hover:last-child:after,.cke_hc.cke_rtl .cke_toolgroup a.cke_button.cke_button_on:last-child:after{top:-2px;right:auto;left:-9px}.cke_toolbar.cke_toolbar_last .cke_toolgroup a.cke_button:last-child:after{content:none;border:0;width:0;height:0}.cke_button_icon{cursor:inherit;background-repeat:no-repeat;margin-top:1px;width:16px;height:16px;float:left;display:inline-block}.cke_rtl .cke_button_icon{float:right}.cke_hc .cke_button_icon{display:none}.cke_button_label{display:none;padding-left:3px;margin-top:1px;line-height:17px;vertical-align:middle;float:left;cursor:default;color:#484848}.cke_rtl .cke_button_label{padding-right:3px;padding-left:0;float:right}.cke_hc .cke_button_label{padding:0;display:inline-block;font-size:12px}.cke_button_arrow{display:inline-block;margin:8px 0 0 3px;width:0;height:0;cursor:default;vertical-align:top;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #484848}.cke_rtl .cke_button_arrow{margin-right:5px;margin-left:0}.cke_hc .cke_button_arrow{font-size:10px;margin:3px 0 0 3px;width:auto;border:0}.cke_toolbar_separator{float:left;background-color:#bcbcbc;margin:4px 2px 0 2px;height:18px;width:1px}.cke_rtl .cke_toolbar_separator{float:right}.cke_hc .cke_toolbar_separator{background-color:#000;margin-left:2px;margin-right:5px;margin-bottom:9px}.cke_hc.cke_rtl .cke_toolbar_separator{margin-left:5px;margin-right:2px}.cke_toolbar_break{display:block;clear:left}.cke_rtl .cke_toolbar_break{clear:right}a.cke_toolbox_collapser{width:12px;height:11px;float:right;margin:11px 0 0;font-size:0;cursor:default;text-align:center;border:1px solid #bcbcbc}.cke_rtl .cke_toolbox_collapser{float:left}.cke_toolbox_collapser:hover{background:#e5e5e5}.cke_toolbox_collapser.cke_toolbox_collapser_min{margin:0 2px 4px}.cke_toolbox_collapser .cke_arrow{display:inline-block;height:0;width:0;font-size:0;margin-top:1px;border:3px solid transparent;border-bottom-color:#484848}.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow{margin-top:4px;border-bottom-color:transparent;border-top-color:#484848}.cke_hc .cke_toolbox_collapser .cke_arrow{font-size:8px;width:auto;border:0;margin-top:0}.cke_menuitem span{cursor:default}.cke_menubutton{display:block}.cke_hc .cke_menubutton{padding:2px}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#e9e9e9;display:block;outline:1px dotted}.cke_menubutton:hover{outline:0}.cke_hc .cke_menubutton:hover,.cke_hc .cke_menubutton:focus,.cke_hc .cke_menubutton:active{border:2px solid;padding:0}.cke_menubutton_disabled:hover,.cke_menubutton_disabled:focus,.cke_menubutton_disabled:active{background-color:transparent;outline:0}.cke_menubutton_inner{display:table-row}.cke_menubutton_icon,.cke_menubutton_label,.cke_menuarrow{display:table-cell}.cke_menubutton_icon{background-color:#f8f8f8;padding:6px 4px}.cke_hc .cke_menubutton_icon{height:16px;width:0;padding:4px 0}.cke_menubutton:hover .cke_menubutton_icon,.cke_menubutton:focus .cke_menubutton_icon,.cke_menubutton:active .cke_menubutton_icon{background-color:#e9e9e9}.cke_menubutton_disabled:hover .cke_menubutton_icon,.cke_menubutton_disabled:focus .cke_menubutton_icon,.cke_menubutton_disabled:active .cke_menubutton_icon{background-color:#f8f8f8;outline:0}.cke_menuitem .cke_menubutton_on{background-color:#e9e9e9;border:1px solid #dedede;outline:0}.cke_menubutton_on .cke_menubutton_icon{padding-right:3px;background-color:#e9e9e9}.cke_menubutton_label{padding:0 5px;background-color:transparent;width:100%;vertical-align:middle}.cke_menubutton_shortcut{color:#979797}.cke_menubutton_disabled .cke_menubutton_label{opacity:.3;filter:alpha(opacity=30)}.cke_panel_frame .cke_menubutton_label{display:none}.cke_menuseparator{background-color:#d1d1d1;height:1px}.cke_menuarrow{background:transparent url(images/arrow.png) no-repeat 0 10px;padding:0 5px}.cke_rtl .cke_menuarrow{background-position:5px -13px;background-repeat:no-repeat}.cke_hc .cke_menuarrow{background-image:none}.cke_menuarrow span{display:none}.cke_hc .cke_menuarrow span{vertical-align:middle;display:inline}.cke_combo{display:inline-block;float:left;position:relative;margin-bottom:5px}.cke_rtl .cke_combo{float:right}.cke_hc .cke_combo{margin-top:1px;margin-bottom:10px}.cke_combo:after{content:"";position:absolute;height:18px;width:0;border-right:1px solid #bcbcbc;margin-top:5px;top:0;right:0}.cke_rtl .cke_combo:after{border-right:0;border-left:1px solid #bcbcbc;right:auto;left:0}.cke_hc .cke_combo:after{border-color:#000}a.cke_combo_button{cursor:default;display:inline-block;float:left;margin:0;padding:1px}.cke_rtl a.cke_combo_button{float:right}.cke_hc a.cke_combo_button{padding:4px}.cke_combo_on a.cke_combo_button,.cke_combo_off a.cke_combo_button:hover,.cke_combo_off a.cke_combo_button:focus,.cke_combo_off a.cke_combo_button:active{background:#e5e5e5;border:1px solid #bcbcbc;padding:0 0 0 1px;margin-left:-1px}.cke_combo_off a.cke_combo_button:focus{outline:0}.cke_combo_on a.cke_combo_button,.cke_combo_off a.cke_combo_button:active{background:#fff}.cke_rtl .cke_combo_on a.cke_combo_button,.cke_rtl .cke_combo_off a.cke_combo_button:hover,.cke_rtl .cke_combo_off a.cke_combo_button:focus,.cke_rtl .cke_combo_off a.cke_combo_button:active{padding:0 1px 0 0;margin-left:0;margin-right:-1px}.cke_hc .cke_combo_on a.cke_combo_button,.cke_hc .cke_combo_off a.cke_combo_button:hover,.cke_hc .cke_combo_off a.cke_combo_button:focus,.cke_hc .cke_combo_off a.cke_combo_button:active{border:3px solid #000;padding:1px 1px 1px 2px}.cke_hc.cke_rtl .cke_combo_on a.cke_combo_button,.cke_hc.cke_rtl .cke_combo_off a.cke_combo_button:hover,.cke_hc.cke_rtl .cke_combo_off a.cke_combo_button:focus,.cke_hc.cke_rtl .cke_combo_off a.cke_combo_button:active{padding:1px 2px 1px 1px}.cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_toolbar_start+.cke_combo_off a.cke_combo_button:active{padding:0 0 0 3px;margin-left:-3px}.cke_rtl .cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_rtl .cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_rtl .cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_rtl .cke_toolbar_start+.cke_combo_off a.cke_combo_button:active{padding:0 3px 0 0;margin-left:0;margin-right:-3px}.cke_hc .cke_toolbar>.cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_hc .cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_hc .cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_hc .cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:active{padding:1px 1px 1px 7px;margin-left:-6px}.cke_hc.cke_rtl .cke_toolbar>.cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_hc.cke_rtl .cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_hc.cke_rtl .cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_hc.cke_rtl .cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:active{padding:1px 7px 1px 1px;margin-left:0;margin-right:-6px}.cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:active,.cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:active{padding:0;margin:0}.cke_hc .cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_hc .cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_hc .cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_hc .cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:active,.cke_hc .cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_hc .cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_hc .cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_hc .cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:active{padding:1px;margin:0}.cke_toolbar .cke_combo+.cke_toolbar_end,.cke_toolbar .cke_combo+.cke_toolgroup{margin-right:0;margin-left:2px}.cke_rtl .cke_toolbar .cke_combo+.cke_toolbar_end,.cke_rtl .cke_toolbar .cke_combo+.cke_toolgroup{margin-left:0;margin-right:2px}.cke_hc .cke_toolbar .cke_combo+.cke_toolbar_end,.cke_hc .cke_toolbar .cke_combo+.cke_toolgroup{margin-left:5px}.cke_hc.cke_rtl .cke_toolbar .cke_combo+.cke_toolbar_end,.cke_hc.cke_rtl .cke_toolbar .cke_combo+.cke_toolgroup{margin-left:0;margin-right:5px}.cke_toolbar.cke_toolbar_last .cke_combo:nth-last-child(-n+2):after{content:none;border:0;width:0;height:0}.cke_combo_text{line-height:26px;padding-left:10px;text-overflow:ellipsis;overflow:hidden;float:left;cursor:default;color:#484848;width:60px}.cke_rtl .cke_combo_text{float:right;text-align:right;padding-left:0;padding-right:10px}.cke_hc .cke_combo_text{line-height:18px;font-size:12px}.cke_combo_open{cursor:default;display:inline-block;font-size:0;height:19px;line-height:17px;margin:1px 10px 1px;width:5px}.cke_hc .cke_combo_open{height:12px}.cke_combo_arrow{cursor:default;margin:11px 0 0;float:left;height:0;width:0;font-size:0;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #484848}.cke_hc .cke_combo_arrow{font-size:10px;width:auto;border:0;margin-top:3px}.cke_combo_label{display:none;float:left;line-height:26px;vertical-align:top;margin-right:5px}.cke_rtl .cke_combo_label{float:right;margin-left:5px;margin-right:0}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{opacity:.3}.cke_path{float:left;margin:-2px 0 2px}a.cke_path_item,span.cke_path_empty{display:inline-block;float:left;padding:3px 4px;margin-right:2px;cursor:default;text-decoration:none;outline:0;border:0;color:#484848;font-weight:bold;font-size:11px}.cke_rtl .cke_path,.cke_rtl .cke_path_item,.cke_rtl .cke_path_empty{float:right}a.cke_path_item:hover,a.cke_path_item:focus,a.cke_path_item:active{background-color:#e5e5e5}.cke_hc a.cke_path_item:hover,.cke_hc a.cke_path_item:focus,.cke_hc a.cke_path_item:active{border:2px solid;padding:1px 2px}.cke_button__source_label,.cke_button__sourcedialog_label{display:inline}.cke_combopanel__fontsize{width:135px}textarea.cke_source{font-family:'Courier New',Monospace;font-size:small;background-color:#fff;white-space:pre-wrap;border:0;padding:0;margin:0;display:block}.cke_wysiwyg_frame,.cke_wysiwyg_div{background-color:#fff}.cke_notifications_area{pointer-events:none}.cke_notification{pointer-events:auto;position:relative;margin:10px;width:300px;color:white;text-align:center;opacity:.95;filter:alpha(opacity = 95);-webkit-animation:fadeIn .7s;animation:fadeIn .7s}.cke_notification_message a{color:#12306f}@-webkit-keyframes fadeIn{from{opacity:.4}to{opacity:.95}}@keyframes fadeIn{from{opacity:.4}to{opacity:.95}}.cke_notification_success{background:#72b572;border:1px solid #63a563}.cke_notification_warning{background:#c83939;border:1px solid #902b2b}.cke_notification_info{background:#2e9ad0;border:1px solid #0f74a8}.cke_notification_info span.cke_notification_progress{background-color:#0f74a8;display:block;padding:0;margin:0;height:100%;overflow:hidden;position:absolute;z-index:1}.cke_notification_message{position:relative;margin:4px 23px 3px;font-family:Arial,Helvetica,sans-serif;font-size:12px;line-height:18px;z-index:4;text-overflow:ellipsis;overflow:hidden}.cke_notification_close{background-image:url(images/close.png);background-repeat:no-repeat;background-position:50%;position:absolute;cursor:pointer;text-align:center;height:20px;width:20px;top:1px;right:1px;padding:0;margin:0;z-index:5;opacity:.6;filter:alpha(opacity = 60)}.cke_notification_close:hover{opacity:1;filter:alpha(opacity = 100)}.cke_notification_close span{display:none}.cke_notification_warning a.cke_notification_close{opacity:.8;filter:alpha(opacity = 80)}.cke_notification_warning a.cke_notification_close:hover{opacity:1;filter:alpha(opacity = 100)}.cke_chrome{visibility:inherit}.cke_voice_label{display:none}legend.cke_voice_label{display:none}.cke_button__about_icon{background:url(icons.png?t=K1SC) no-repeat 0 -0px!important}.cke_button__bold_icon{background:url(icons.png?t=K1SC) no-repeat 0 -24px!important}.cke_button__italic_icon{background:url(icons.png?t=K1SC) no-repeat 0 -48px!important}.cke_button__strike_icon{background:url(icons.png?t=K1SC) no-repeat 0 -72px!important}.cke_button__subscript_icon{background:url(icons.png?t=K1SC) no-repeat 0 -96px!important}.cke_button__superscript_icon{background:url(icons.png?t=K1SC) no-repeat 0 -120px!important}.cke_button__underline_icon{background:url(icons.png?t=K1SC) no-repeat 0 -144px!important}.cke_button__blockquote_icon{background:url(icons.png?t=K1SC) no-repeat 0 -168px!important}.cke_rtl .cke_button__copy_icon,.cke_mixed_dir_content .cke_rtl .cke_button__copy_icon{background:url(icons.png?t=K1SC) no-repeat 0 -192px!important}.cke_ltr .cke_button__copy_icon{background:url(icons.png?t=K1SC) no-repeat 0 -216px!important}.cke_rtl .cke_button__cut_icon,.cke_mixed_dir_content .cke_rtl .cke_button__cut_icon{background:url(icons.png?t=K1SC) no-repeat 0 -240px!important}.cke_ltr .cke_button__cut_icon{background:url(icons.png?t=K1SC) no-repeat 0 -264px!important}.cke_rtl .cke_button__paste_icon,.cke_mixed_dir_content .cke_rtl .cke_button__paste_icon{background:url(icons.png?t=K1SC) no-repeat 0 -288px!important}.cke_ltr .cke_button__paste_icon{background:url(icons.png?t=K1SC) no-repeat 0 -312px!important}.cke_button__horizontalrule_icon{background:url(icons.png?t=K1SC) no-repeat 0 -336px!important}.cke_button__image_icon{background:url(icons.png?t=K1SC) no-repeat 0 -360px!important}.cke_rtl .cke_button__indent_icon,.cke_mixed_dir_content .cke_rtl .cke_button__indent_icon{background:url(icons.png?t=K1SC) no-repeat 0 -384px!important}.cke_ltr .cke_button__indent_icon{background:url(icons.png?t=K1SC) no-repeat 0 -408px!important}.cke_rtl .cke_button__outdent_icon,.cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon{background:url(icons.png?t=K1SC) no-repeat 0 -432px!important}.cke_ltr .cke_button__outdent_icon{background:url(icons.png?t=K1SC) no-repeat 0 -456px!important}.cke_button__justifyblock_icon{background:url(icons.png?t=K1SC) no-repeat 0 -480px!important}.cke_button__justifycenter_icon{background:url(icons.png?t=K1SC) no-repeat 0 -504px!important}.cke_button__justifyleft_icon{background:url(icons.png?t=K1SC) no-repeat 0 -528px!important}.cke_button__justifyright_icon{background:url(icons.png?t=K1SC) no-repeat 0 -552px!important}.cke_button__language_icon{background:url(icons.png?t=K1SC) no-repeat 0 -576px!important}.cke_rtl .cke_button__bulletedlist_icon,.cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon{background:url(icons.png?t=K1SC) no-repeat 0 -600px!important}.cke_ltr .cke_button__bulletedlist_icon{background:url(icons.png?t=K1SC) no-repeat 0 -624px!important}.cke_rtl .cke_button__numberedlist_icon,.cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon{background:url(icons.png?t=K1SC) no-repeat 0 -648px!important}.cke_ltr .cke_button__numberedlist_icon{background:url(icons.png?t=K1SC) no-repeat 0 -672px!important}.cke_button__maximize_icon{background:url(icons.png?t=K1SC) no-repeat 0 -696px!important}.cke_rtl .cke_button__pastefromword_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon{background:url(icons.png?t=K1SC) no-repeat 0 -720px!important}.cke_ltr .cke_button__pastefromword_icon{background:url(icons.png?t=K1SC) no-repeat 0 -744px!important}.cke_rtl .cke_button__pastetext_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon{background:url(icons.png?t=K1SC) no-repeat 0 -768px!important}.cke_ltr .cke_button__pastetext_icon{background:url(icons.png?t=K1SC) no-repeat 0 -792px!important}.cke_button__removeformat_icon{background:url(icons.png?t=K1SC) no-repeat 0 -816px!important}.cke_rtl .cke_button__showblocks_icon,.cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon{background:url(icons.png?t=K1SC) no-repeat 0 -840px!important}.cke_ltr .cke_button__showblocks_icon{background:url(icons.png?t=K1SC) no-repeat 0 -864px!important}.cke_rtl .cke_button__source_icon,.cke_mixed_dir_content .cke_rtl .cke_button__source_icon{background:url(icons.png?t=K1SC) no-repeat 0 -888px!important}.cke_ltr .cke_button__source_icon{background:url(icons.png?t=K1SC) no-repeat 0 -912px!important}.cke_rtl .cke_button__sourcedialog_icon,.cke_mixed_dir_content .cke_rtl .cke_button__sourcedialog_icon{background:url(icons.png?t=K1SC) no-repeat 0 -936px!important}.cke_ltr .cke_button__sourcedialog_icon{background:url(icons.png?t=K1SC) no-repeat 0 -960px!important}.cke_button__specialchar_icon{background:url(icons.png?t=K1SC) no-repeat 0 -984px!important}.cke_button__table_icon{background:url(icons.png?t=K1SC) no-repeat 0 -1008px!important}.cke_rtl .cke_button__redo_icon,.cke_mixed_dir_content .cke_rtl .cke_button__redo_icon{background:url(icons.png?t=K1SC) no-repeat 0 -1032px!important}.cke_ltr .cke_button__redo_icon{background:url(icons.png?t=K1SC) no-repeat 0 -1056px!important}.cke_rtl .cke_button__undo_icon,.cke_mixed_dir_content .cke_rtl .cke_button__undo_icon{background:url(icons.png?t=K1SC) no-repeat 0 -1080px!important}.cke_ltr .cke_button__undo_icon{background:url(icons.png?t=K1SC) no-repeat 0 -1104px!important}.cke_button__simplebox_icon{background:url(icons.png?t=K1SC) no-repeat 0 -1128px!important}.cke_hidpi .cke_button__about_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -0px!important;background-size:16px!important}.cke_hidpi .cke_button__bold_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -24px!important;background-size:16px!important}.cke_hidpi .cke_button__italic_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -48px!important;background-size:16px!important}.cke_hidpi .cke_button__strike_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -72px!important;background-size:16px!important}.cke_hidpi .cke_button__subscript_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -96px!important;background-size:16px!important}.cke_hidpi .cke_button__superscript_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -120px!important;background-size:16px!important}.cke_hidpi .cke_button__underline_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -144px!important;background-size:16px!important}.cke_hidpi .cke_button__blockquote_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -168px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__copy_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__copy_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -192px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__copy_icon,.cke_ltr.cke_hidpi .cke_button__copy_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -216px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__cut_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__cut_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -240px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__cut_icon,.cke_ltr.cke_hidpi .cke_button__cut_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -264px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__paste_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__paste_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -288px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__paste_icon,.cke_ltr.cke_hidpi .cke_button__paste_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -312px!important;background-size:16px!important}.cke_hidpi .cke_button__horizontalrule_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -336px!important;background-size:16px!important}.cke_hidpi .cke_button__image_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -360px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__indent_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -384px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__indent_icon,.cke_ltr.cke_hidpi .cke_button__indent_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -408px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__outdent_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -432px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__outdent_icon,.cke_ltr.cke_hidpi .cke_button__outdent_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -456px!important;background-size:16px!important}.cke_hidpi .cke_button__justifyblock_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -480px!important;background-size:16px!important}.cke_hidpi .cke_button__justifycenter_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -504px!important;background-size:16px!important}.cke_hidpi .cke_button__justifyleft_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -528px!important;background-size:16px!important}.cke_hidpi .cke_button__justifyright_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -552px!important;background-size:16px!important}.cke_hidpi .cke_button__language_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -576px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__bulletedlist_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -600px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__bulletedlist_icon,.cke_ltr.cke_hidpi .cke_button__bulletedlist_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -624px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__numberedlist_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -648px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__numberedlist_icon,.cke_ltr.cke_hidpi .cke_button__numberedlist_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -672px!important;background-size:16px!important}.cke_hidpi .cke_button__maximize_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -696px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__pastefromword_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -720px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__pastefromword_icon,.cke_ltr.cke_hidpi .cke_button__pastefromword_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -744px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__pastetext_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -768px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__pastetext_icon,.cke_ltr.cke_hidpi .cke_button__pastetext_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -792px!important;background-size:16px!important}.cke_hidpi .cke_button__removeformat_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -816px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__showblocks_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -840px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__showblocks_icon,.cke_ltr.cke_hidpi .cke_button__showblocks_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -864px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__source_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__source_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -888px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__source_icon,.cke_ltr.cke_hidpi .cke_button__source_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -912px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__sourcedialog_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__sourcedialog_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -936px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__sourcedialog_icon,.cke_ltr.cke_hidpi .cke_button__sourcedialog_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -960px!important;background-size:16px!important}.cke_hidpi .cke_button__specialchar_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -984px!important;background-size:16px!important}.cke_hidpi .cke_button__table_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -1008px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__redo_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__redo_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -1032px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__redo_icon,.cke_ltr.cke_hidpi .cke_button__redo_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -1056px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__undo_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__undo_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -1080px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__undo_icon,.cke_ltr.cke_hidpi .cke_button__undo_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -1104px!important;background-size:16px!important}.cke_hidpi .cke_button__simplebox_icon{background:url(icons_hidpi.png?t=K1SC) no-repeat 0 -2256px!important}a.cke_button_disabled,a.cke_button_disabled:hover,a.cke_button_disabled:focus,a.cke_button_disabled:active{filter:alpha(opacity = 30)}.cke_button_disabled .cke_button_icon{filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#00ffffff,endColorstr=#00ffffff)}.cke_button_off:hover,.cke_button_off:focus,.cke_button_off:active{filter:alpha(opacity = 100)}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{filter:alpha(opacity = 30)}.cke_toolbox_collapser{border:1px solid #a6a6a6}.cke_toolbox_collapser .cke_arrow{margin-top:1px}.cke_hc .cke_top,.cke_hc .cke_bottom,.cke_hc .cke_combo_button,.cke_hc a.cke_combo_button:hover,.cke_hc a.cke_combo_button:focus,.cke_hc .cke_toolgroup,.cke_hc .cke_button_on,.cke_hc a.cke_button_off:hover,.cke_hc a.cke_button_off:focus,.cke_hc a.cke_button_off:active,.cke_hc .cke_toolbox_collapser,.cke_hc .cke_toolbox_collapser:hover,.cke_hc .cke_panel_grouptitle{filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.cke_top,.cke_contents,.cke_bottom{width:100%}.cke_button_arrow{font-size:0}.cke_rtl .cke_toolgroup,.cke_rtl .cke_toolbar_separator,.cke_rtl .cke_button,.cke_rtl .cke_button *,.cke_rtl .cke_combo,.cke_rtl .cke_combo *,.cke_rtl .cke_path_item,.cke_rtl .cke_path_item *,.cke_rtl .cke_path_empty{float:none}.cke_rtl .cke_toolgroup,.cke_rtl .cke_toolbar_separator,.cke_rtl .cke_combo_button,.cke_rtl .cke_combo_button *,.cke_rtl .cke_button,.cke_rtl .cke_button_icon{display:inline-block;vertical-align:top}.cke_rtl .cke_button_icon{float:none}.cke_resizer{width:10px}.cke_source{white-space:normal}.cke_bottom{position:static}.cke_colorbox{font-size:0}
\ No newline at end of file
diff --git a/web/core/core.libraries.yml b/web/core/core.libraries.yml
index 0ff5fb09ec..6d0f0e4658 100644
--- a/web/core/core.libraries.yml
+++ b/web/core/core.libraries.yml
@@ -25,10 +25,10 @@ classList:
 
 ckeditor:
   remote: https://github.com/ckeditor/ckeditor-dev
-  version: "4.13.0"
+  version: "4.13.1"
   license:
     name: GNU-GPL-2.0-or-later
-    url: https://github.com/ckeditor/ckeditor-dev/blob/4.13/LICENSE.md
+    url: https://github.com/ckeditor/ckeditor4/blob/4.13.1/LICENSE.md
     gpl-compatible: true
   js:
     assets/vendor/ckeditor/ckeditor.js: { preprocess: false, minified: true }
diff --git a/web/core/core.services.yml b/web/core/core.services.yml
index 93e57d0fb4..98c0aac61a 100644
--- a/web/core/core.services.yml
+++ b/web/core/core.services.yml
@@ -641,6 +641,7 @@ services:
   plugin.manager.archiver:
     class: Drupal\Core\Archiver\ArchiverManager
     parent: default_plugin_manager
+    arguments: ['@file_system']
   plugin.manager.action:
     class: Drupal\Core\Action\ActionManager
     arguments: ['@container.namespaces', '@cache.discovery', '@module_handler']
diff --git a/web/core/drupalci.yml b/web/core/drupalci.yml
index ed02d43c63..6c388ae328 100644
--- a/web/core/drupalci.yml
+++ b/web/core/drupalci.yml
@@ -53,7 +53,3 @@ build:
       # Run nightwatch testing.
       # @see https://www.drupal.org/project/drupal/issues/2869825
       nightwatchjs:
-#      container_command.drupal_project_templates:
-#        commands:
-#          - "sudo -u www-data ${SOURCE_DIR}/core/tests/scripts/test_composer_project_templates.sh"
-#        halt-on-fail: true
diff --git a/web/core/includes/bootstrap.inc b/web/core/includes/bootstrap.inc
index f35f104311..73b947f13e 100644
--- a/web/core/includes/bootstrap.inc
+++ b/web/core/includes/bootstrap.inc
@@ -131,7 +131,7 @@
  * @see http://php.net/manual/reserved.variables.server.php
  * @see http://php.net/manual/function.time.php
  *
- * @deprecated in drupal:8.3.0 and is removed from drupal:9.0.0.
+ * @deprecated in drupal:8.3.0 and is removed from drupal:10.0.0.
  *   Use \Drupal::time()->getRequestTime();
  *
  * @see https://www.drupal.org/node/2785211
diff --git a/web/core/includes/database.inc b/web/core/includes/database.inc
index 4f2c3c5292..76d9261914 100644
--- a/web/core/includes/database.inc
+++ b/web/core/includes/database.inc
@@ -1016,7 +1016,7 @@ function db_drop_unique_key($table, $name) {
  * @see \Drupal\Core\Database\Schema::addIndex()
  */
 function db_add_index($table, $name, $fields, array $spec) {
-  @trigger_error('db_add_index() is deprecated in Drupal 8.0.x and will be removed in Drupal 9.0.0. Instead, get a database connection injected into your service from the container, get its schema driver, and call addIndex() on it. For example, $injected_database->schema()->addIndex($table, $name, $fields, $spec). See https://www.drupal.org/node/2993033', E_USER_DEPRECATED);
+  @trigger_error('db_add_index() is deprecated in drupal:8.0.x and will be removed in drupal:9.0.0. Instead, get a database connection injected into your service from the container, get its schema driver, and call addIndex() on it. For example, $injected_database->schema()->addIndex($table, $name, $fields, $spec). See https://www.drupal.org/node/2993033', E_USER_DEPRECATED);
   Database::getConnection()->schema()->addIndex($table, $name, $fields, $spec);
 }
 
diff --git a/web/core/includes/install.core.inc b/web/core/includes/install.core.inc
index 55c9e7773b..cfab412904 100644
--- a/web/core/includes/install.core.inc
+++ b/web/core/includes/install.core.inc
@@ -2322,7 +2322,13 @@ function install_config_import_batch() {
   // Match up the site UUIDs, the install_base_system install task will have
   // installed the system module and created a new UUID.
   $system_site = $sync->read('system.site');
-  \Drupal::configFactory()->getEditable('system.site')->set('uuid', $system_site['uuid'])->save();
+  // When installing from configuration it is possible that system.site
+  // configuration is not present. If this occurs a ConfigImporterException will
+  // by thrown when $config_importer->initialize() is called below and the error
+  // will be reported to the user.
+  if ($system_site !== FALSE) {
+    \Drupal::configFactory()->getEditable('system.site')->set('uuid', $system_site['uuid'])->save();
+  }
 
   // Create the storage comparer and the config importer.
   $storage_comparer = new StorageComparer($sync, \Drupal::service('config.storage'));
diff --git a/web/core/includes/schema.inc b/web/core/includes/schema.inc
index 5c024a89d8..99576b0d2b 100644
--- a/web/core/includes/schema.inc
+++ b/web/core/includes/schema.inc
@@ -83,9 +83,10 @@ function drupal_get_installed_schema_version($module, $reset = FALSE, $array = F
   }
 
   if (!$versions) {
-    if (!$versions = \Drupal::keyValue('system.schema')->getAll()) {
-      $versions = [];
-    }
+    $versions = \Drupal::keyValue('system.schema')->getAll();
+    $enabled_modules = \Drupal::moduleHandler()->getModuleList();
+    $enabled_modules = array_fill_keys(array_keys($enabled_modules), \Drupal::CORE_MINIMUM_SCHEMA_VERSION);
+    $versions = array_merge($enabled_modules, $versions);
   }
 
   if ($array) {
diff --git a/web/core/includes/theme.inc b/web/core/includes/theme.inc
index 713983c679..18916b2c54 100644
--- a/web/core/includes/theme.inc
+++ b/web/core/includes/theme.inc
@@ -20,8 +20,8 @@
 use Drupal\Core\Render\BubbleableMetadata;
 use Drupal\Core\Render\RenderableInterface;
 use Drupal\Core\Template\Attribute;
+use Drupal\Core\Template\AttributeHelper;
 use Drupal\Core\Theme\ThemeSettings;
-use Drupal\Component\Utility\NestedArray;
 use Drupal\Core\Render\Element;
 use Drupal\Core\Render\Markup;
 use Drupal\Core\Utility\TableSort;
@@ -821,7 +821,7 @@ function template_preprocess_image(&$variables) {
     if (isset($variables[$key])) {
       // If the property has already been defined in the attributes,
       // do not override, including NULL.
-      if (array_key_exists($key, $variables['attributes'])) {
+      if (AttributeHelper::attributeExists($key, $variables['attributes'])) {
         continue;
       }
       $variables['attributes'][$key] = $variables[$key];
@@ -1130,7 +1130,7 @@ function template_preprocess_item_list(&$variables) {
             // \Drupal\Core\Render\Element::children(), which cannot be used
             // here, since it triggers an error on string values.
             foreach ($child as $child_key => $child_value) {
-              if ($child_key[0] !== '#') {
+              if (is_int($child_key) || $child_key === '' || $child_key[0] !== '#') {
                 $child['#items'][$child_key] = $child_value;
                 unset($child[$child_key]);
               }
@@ -1243,7 +1243,7 @@ function template_preprocess(&$variables, $hook, $info) {
   if (isset($info['render element'])) {
     $key = $info['render element'];
     if (isset($variables[$key]['#attributes'])) {
-      $variables['attributes'] = NestedArray::mergeDeep($variables['attributes'], $variables[$key]['#attributes']);
+      $variables['attributes'] = AttributeHelper::mergeCollections($variables['attributes'], $variables[$key]['#attributes']);
     }
   }
 }
@@ -1578,7 +1578,7 @@ function template_preprocess_field(&$variables, $hook) {
 
   // Merge attributes when a single-value field has a hidden label.
   if ($element['#label_display'] == 'hidden' && !$variables['multiple'] && !empty($element['#items'][0]->_attributes)) {
-    $variables['attributes'] = NestedArray::mergeDeep($variables['attributes'], (array) $element['#items'][0]->_attributes);
+    $variables['attributes'] = AttributeHelper::mergeCollections($variables['attributes'], (array) $element['#items'][0]->_attributes);
   }
 
   // We want other preprocess functions and the theme implementation to have
diff --git a/web/core/includes/update.inc b/web/core/includes/update.inc
index 792e94c286..9e3a7a4e34 100644
--- a/web/core/includes/update.inc
+++ b/web/core/includes/update.inc
@@ -607,7 +607,7 @@ function update_retrieve_dependencies() {
   $return = [];
   // Get a list of installed modules, arranged so that we invoke their hooks in
   // the same order that \Drupal::moduleHandler()->invokeAll() does.
-  foreach (\Drupal::keyValue('system.schema')->getAll() as $module => $schema) {
+  foreach (drupal_get_installed_schema_version(NULL, FALSE, TRUE) as $module => $schema) {
     if ($schema == SCHEMA_UNINSTALLED) {
       // Nothing to upgrade.
       continue;
diff --git a/web/core/lib/Drupal.php b/web/core/lib/Drupal.php
index d5b238bfd7..21b955b75a 100644
--- a/web/core/lib/Drupal.php
+++ b/web/core/lib/Drupal.php
@@ -82,7 +82,7 @@ class Drupal {
   /**
    * The current system version.
    */
-  const VERSION = '8.8.2';
+  const VERSION = '8.8.3';
 
   /**
    * Core API compatibility.
diff --git a/web/core/lib/Drupal/Component/Annotation/Doctrine/DocParser.php b/web/core/lib/Drupal/Component/Annotation/Doctrine/DocParser.php
index 1d8cf2fbc3..3c0e82e882 100644
--- a/web/core/lib/Drupal/Component/Annotation/Doctrine/DocParser.php
+++ b/web/core/lib/Drupal/Component/Annotation/Doctrine/DocParser.php
@@ -966,9 +966,11 @@ private function Identifier()
 
         $className = $this->lexer->token['value'];
 
-        while ($this->lexer->lookahead['position'] === ($this->lexer->token['position'] + strlen($this->lexer->token['value']))
-                && $this->lexer->isNextToken(DocLexer::T_NAMESPACE_SEPARATOR)) {
-
+        while (
+            null !== $this->lexer->lookahead &&
+            $this->lexer->lookahead['position'] === ($this->lexer->token['position'] + strlen($this->lexer->token['value'])) &&
+            $this->lexer->isNextToken(DocLexer::T_NAMESPACE_SEPARATOR)
+        ) {
             $this->match(DocLexer::T_NAMESPACE_SEPARATOR);
             $this->matchAny(self::$classIdentifiers);
 
diff --git a/web/core/lib/Drupal/Component/Datetime/Time.php b/web/core/lib/Drupal/Component/Datetime/Time.php
index 77da2e2c1f..566debba04 100644
--- a/web/core/lib/Drupal/Component/Datetime/Time.php
+++ b/web/core/lib/Drupal/Component/Datetime/Time.php
@@ -30,14 +30,26 @@ public function __construct(RequestStack $request_stack) {
    * {@inheritdoc}
    */
   public function getRequestTime() {
-    return $this->requestStack->getCurrentRequest()->server->get('REQUEST_TIME');
+    $request = $this->requestStack->getCurrentRequest();
+    if ($request) {
+      return $request->server->get('REQUEST_TIME');
+    }
+    // If this is called prior to the request being pushed to the stack fallback
+    // to built-in globals (if available) or the system time.
+    return $_SERVER['REQUEST_TIME'] ?? $this->getCurrentTime();
   }
 
   /**
    * {@inheritdoc}
    */
   public function getRequestMicroTime() {
-    return $this->requestStack->getCurrentRequest()->server->get('REQUEST_TIME_FLOAT');
+    $request = $this->requestStack->getCurrentRequest();
+    if ($request) {
+      return $request->server->get('REQUEST_TIME_FLOAT');
+    }
+    // If this is called prior to the request being pushed to the stack fallback
+    // to built-in globals (if available) or the system time.
+    return $_SERVER['REQUEST_TIME_FLOAT'] ?? $this->getCurrentMicroTime();
   }
 
   /**
diff --git a/web/core/lib/Drupal/Component/Datetime/TimeInterface.php b/web/core/lib/Drupal/Component/Datetime/TimeInterface.php
index 0c81575c73..cedea4fe80 100644
--- a/web/core/lib/Drupal/Component/Datetime/TimeInterface.php
+++ b/web/core/lib/Drupal/Component/Datetime/TimeInterface.php
@@ -14,6 +14,9 @@ interface TimeInterface {
    * of the request. It will be the same value for the life of the request
    * (even for long execution times).
    *
+   * If the request is not available it will fallback to the current system
+   * time.
+   *
    * This method can replace instances of
    * @code
    * $request_time = $_SERVER['REQUEST_TIME'];
@@ -50,6 +53,9 @@ public function getRequestTime();
    * microsecond precision, at the start of the request. It will be the same
    * value for the life of the request (even for long execution times).
    *
+   * If the request is not available it will fallback to the current system
+   * time with microsecond precision.
+   *
    * This method can replace instances of
    * @code
    * $request_time_float = $_SERVER['REQUEST_TIME_FLOAT'];
diff --git a/web/core/lib/Drupal/Core/Access/AccessResult.php b/web/core/lib/Drupal/Core/Access/AccessResult.php
index 959a93978e..4a29a6848e 100644
--- a/web/core/lib/Drupal/Core/Access/AccessResult.php
+++ b/web/core/lib/Drupal/Core/Access/AccessResult.php
@@ -290,6 +290,7 @@ public function cachePerUser() {
    *   ::addCacheableDependency() instead.
    */
   public function cacheUntilEntityChanges(EntityInterface $entity) {
+    @trigger_error(__METHOD__ . ' is deprecated in drupal:8.0.0 and is removed in drupal:9.0.0. Use \Drupal\Core\Access\AccessResult::addCacheableDependency() instead.', E_USER_DEPRECATED);
     return $this->addCacheableDependency($entity);
   }
 
diff --git a/web/core/lib/Drupal/Core/Archiver/ArchiverManager.php b/web/core/lib/Drupal/Core/Archiver/ArchiverManager.php
index 2ae021d739..e5545d74d7 100644
--- a/web/core/lib/Drupal/Core/Archiver/ArchiverManager.php
+++ b/web/core/lib/Drupal/Core/Archiver/ArchiverManager.php
@@ -5,6 +5,7 @@
 use Drupal\Component\Plugin\Factory\DefaultFactory;
 use Drupal\Core\Cache\CacheBackendInterface;
 use Drupal\Core\Extension\ModuleHandlerInterface;
+use Drupal\Core\File\FileSystemInterface;
 use Drupal\Core\Plugin\DefaultPluginManager;
 
 /**
@@ -16,6 +17,13 @@
  */
 class ArchiverManager extends DefaultPluginManager {
 
+  /**
+   * The file system service.
+   *
+   * @var \Drupal\Core\File\FileSystemInterface
+   */
+  protected $fileSystem;
+
   /**
    * Constructs a ArchiverManager object.
    *
@@ -26,11 +34,18 @@ class ArchiverManager extends DefaultPluginManager {
    *   Cache backend instance to use.
    * @param \Drupal\Core\Extension\ModuleHandlerInterface $module_handler
    *   The module handler to invoke the alter hook with.
+   * @param \Drupal\Core\File\FileSystemInterface $file_system
+   *   The file handler.
    */
-  public function __construct(\Traversable $namespaces, CacheBackendInterface $cache_backend, ModuleHandlerInterface $module_handler) {
+  public function __construct(\Traversable $namespaces, CacheBackendInterface $cache_backend, ModuleHandlerInterface $module_handler, FileSystemInterface $file_system = NULL) {
     parent::__construct('Plugin/Archiver', $namespaces, $module_handler, 'Drupal\Core\Archiver\ArchiverInterface', 'Drupal\Core\Archiver\Annotation\Archiver');
     $this->alterInfo('archiver_info');
     $this->setCacheBackend($cache_backend, 'archiver_info_plugins');
+    if (!isset($file_system)) {
+      @trigger_error('Not defining the final $file_system argument to ' . __METHOD__ . ' is deprecated in drupal:8.8.3 and will throw an error in drupal:10.0.0.', E_USER_DEPRECATED);
+      $file_system = \Drupal::service('file_system');
+    }
+    $this->fileSystem = $file_system;
   }
 
   /**
@@ -39,7 +54,7 @@ public function __construct(\Traversable $namespaces, CacheBackendInterface $cac
   public function createInstance($plugin_id, array $configuration = []) {
     $plugin_definition = $this->getDefinition($plugin_id);
     $plugin_class = DefaultFactory::getPluginClass($plugin_id, $plugin_definition, 'Drupal\Core\Archiver\ArchiverInterface');
-    return new $plugin_class($configuration['filepath']);
+    return new $plugin_class($this->fileSystem->realpath($configuration['filepath']));
   }
 
   /**
diff --git a/web/core/lib/Drupal/Core/Asset/LibraryDiscoveryParser.php b/web/core/lib/Drupal/Core/Asset/LibraryDiscoveryParser.php
index 9c99bdc53d..86c22c1837 100644
--- a/web/core/lib/Drupal/Core/Asset/LibraryDiscoveryParser.php
+++ b/web/core/lib/Drupal/Core/Asset/LibraryDiscoveryParser.php
@@ -117,7 +117,7 @@ public function buildByExtension($extension) {
           $library['version'] = \Drupal::VERSION;
         }
         // Remove 'v' prefix from external library versions.
-        elseif ($library['version'][0] === 'v') {
+        elseif (is_string($library['version']) && $library['version'][0] === 'v') {
           $library['version'] = substr($library['version'], 1);
         }
       }
diff --git a/web/core/lib/Drupal/Core/Config/StorageComparer.php b/web/core/lib/Drupal/Core/Config/StorageComparer.php
index e362493ac3..5110111aad 100644
--- a/web/core/lib/Drupal/Core/Config/StorageComparer.php
+++ b/web/core/lib/Drupal/Core/Config/StorageComparer.php
@@ -388,7 +388,9 @@ public function hasChanges() {
   public function validateSiteUuid() {
     $source = $this->sourceStorage->read('system.site');
     $target = $this->targetStorage->read('system.site');
-    return $source['uuid'] === $target['uuid'];
+    // It is possible that the storage does not contain system.site
+    // configuration. In such cases the site UUID cannot be valid.
+    return $source && $target && $source['uuid'] === $target['uuid'];
   }
 
   /**
diff --git a/web/core/lib/Drupal/Core/Database/Connection.php b/web/core/lib/Drupal/Core/Database/Connection.php
index 47532fa78b..94ba8bed4e 100644
--- a/web/core/lib/Drupal/Core/Database/Connection.php
+++ b/web/core/lib/Drupal/Core/Database/Connection.php
@@ -607,7 +607,7 @@ public function query($query, array $args = [], $options = []) {
     // Use default values if not already set.
     $options += $this->defaultOptions();
     if (isset($options['target'])) {
-      @trigger_error('Passing a \'target\' key to \\Drupal\\Core\\Database\\Connection::query $options argument is deprecated in Drupal 8.0.x and will be removed before Drupal 9.0.0. Instead, use \\Drupal\\Core\\Database\\Database::getConnection($target)->query(). See https://www.drupal.org/node/2993033.', E_USER_DEPRECATED);
+      @trigger_error('Passing a \'target\' key to \\Drupal\\Core\\Database\\Connection::query $options argument is deprecated in drupal:8.0.x and will be removed before drupal:9.0.0. Instead, use \\Drupal\\Core\\Database\\Database::getConnection($target)->query(). See https://www.drupal.org/node/2993033', E_USER_DEPRECATED);
     }
 
     try {
diff --git a/web/core/lib/Drupal/Core/Database/Driver/mysql/Schema.php b/web/core/lib/Drupal/Core/Database/Driver/mysql/Schema.php
index dbbafe70c0..64612cb0f1 100644
--- a/web/core/lib/Drupal/Core/Database/Driver/mysql/Schema.php
+++ b/web/core/lib/Drupal/Core/Database/Driver/mysql/Schema.php
@@ -490,7 +490,7 @@ public function dropField($table, $field) {
    * {@inheritdoc}
    */
   public function fieldSetDefault($table, $field, $default) {
-    @trigger_error('fieldSetDefault() is deprecated in Drupal 8.7.0 and will be removed before Drupal 9.0.0. Instead, call ::changeField() passing a full field specification. See https://www.drupal.org/node/2999035', E_USER_DEPRECATED);
+    @trigger_error('fieldSetDefault() is deprecated in drupal:8.7.0 and will be removed before drupal:9.0.0. Instead, call ::changeField() passing a full field specification. See https://www.drupal.org/node/2999035', E_USER_DEPRECATED);
     if (!$this->fieldExists($table, $field)) {
       throw new SchemaObjectDoesNotExistException(t("Cannot set default value of field @table.@field: field doesn't exist.", ['@table' => $table, '@field' => $field]));
     }
@@ -502,7 +502,7 @@ public function fieldSetDefault($table, $field, $default) {
    * {@inheritdoc}
    */
   public function fieldSetNoDefault($table, $field) {
-    @trigger_error('fieldSetNoDefault() is deprecated in Drupal 8.7.0 and will be removed before Drupal 9.0.0. Instead, call ::changeField() passing a full field specification. See https://www.drupal.org/node/2999035', E_USER_DEPRECATED);
+    @trigger_error('fieldSetNoDefault() is deprecated in drupal:8.7.0 and will be removed before drupal:9.0.0. Instead, call ::changeField() passing a full field specification. See https://www.drupal.org/node/2999035', E_USER_DEPRECATED);
     if (!$this->fieldExists($table, $field)) {
       throw new SchemaObjectDoesNotExistException(t("Cannot remove default value of field @table.@field: field doesn't exist.", ['@table' => $table, '@field' => $field]));
     }
diff --git a/web/core/lib/Drupal/Core/Database/Driver/pgsql/Schema.php b/web/core/lib/Drupal/Core/Database/Driver/pgsql/Schema.php
index 38abcb6b50..9b4663006c 100644
--- a/web/core/lib/Drupal/Core/Database/Driver/pgsql/Schema.php
+++ b/web/core/lib/Drupal/Core/Database/Driver/pgsql/Schema.php
@@ -700,7 +700,7 @@ public function dropField($table, $field) {
    * {@inheritdoc}
    */
   public function fieldSetDefault($table, $field, $default) {
-    @trigger_error('fieldSetDefault() is deprecated in Drupal 8.7.0 and will be removed before Drupal 9.0.0. Instead, call ::changeField() passing a full field specification. See https://www.drupal.org/node/2999035', E_USER_DEPRECATED);
+    @trigger_error('fieldSetDefault() is deprecated in drupal:8.7.0 and will be removed before drupal:9.0.0. Instead, call ::changeField() passing a full field specification. See https://www.drupal.org/node/2999035', E_USER_DEPRECATED);
     if (!$this->fieldExists($table, $field)) {
       throw new SchemaObjectDoesNotExistException(t("Cannot set default value of field @table.@field: field doesn't exist.", ['@table' => $table, '@field' => $field]));
     }
@@ -714,7 +714,7 @@ public function fieldSetDefault($table, $field, $default) {
    * {@inheritdoc}
    */
   public function fieldSetNoDefault($table, $field) {
-    @trigger_error('fieldSetNoDefault() is deprecated in Drupal 8.7.0 and will be removed before Drupal 9.0.0. Instead, call ::changeField() passing a full field specification. See https://www.drupal.org/node/2999035', E_USER_DEPRECATED);
+    @trigger_error('fieldSetNoDefault() is deprecated in drupal:8.7.0 and will be removed before drupal:9.0.0. Instead, call ::changeField() passing a full field specification. See https://www.drupal.org/node/2999035', E_USER_DEPRECATED);
     if (!$this->fieldExists($table, $field)) {
       throw new SchemaObjectDoesNotExistException(t("Cannot remove default value of field @table.@field: field doesn't exist.", ['@table' => $table, '@field' => $field]));
     }
diff --git a/web/core/lib/Drupal/Core/Database/Driver/sqlite/Schema.php b/web/core/lib/Drupal/Core/Database/Driver/sqlite/Schema.php
index c6f34c5c24..96441bc9fc 100644
--- a/web/core/lib/Drupal/Core/Database/Driver/sqlite/Schema.php
+++ b/web/core/lib/Drupal/Core/Database/Driver/sqlite/Schema.php
@@ -790,7 +790,7 @@ protected function introspectIndexSchema($table) {
    * {@inheritdoc}
    */
   public function fieldSetDefault($table, $field, $default) {
-    @trigger_error('fieldSetDefault() is deprecated in Drupal 8.7.0 and will be removed before Drupal 9.0.0. Instead, call ::changeField() passing a full field specification. See https://www.drupal.org/node/2999035', E_USER_DEPRECATED);
+    @trigger_error('fieldSetDefault() is deprecated in drupal:8.7.0 and will be removed before drupal:9.0.0. Instead, call ::changeField() passing a full field specification. See https://www.drupal.org/node/2999035', E_USER_DEPRECATED);
     if (!$this->fieldExists($table, $field)) {
       throw new SchemaObjectDoesNotExistException(t("Cannot set default value of field @table.@field: field doesn't exist.", ['@table' => $table, '@field' => $field]));
     }
@@ -806,7 +806,7 @@ public function fieldSetDefault($table, $field, $default) {
    * {@inheritdoc}
    */
   public function fieldSetNoDefault($table, $field) {
-    @trigger_error('fieldSetNoDefault() is deprecated in Drupal 8.7.0 and will be removed before Drupal 9.0.0. Instead, call ::changeField() passing a full field specification. See https://www.drupal.org/node/2999035', E_USER_DEPRECATED);
+    @trigger_error('fieldSetNoDefault() is deprecated in drupal:8.7.0 and will be removed before drupal:9.0.0. Instead, call ::changeField() passing a full field specification. See https://www.drupal.org/node/2999035', E_USER_DEPRECATED);
     if (!$this->fieldExists($table, $field)) {
       throw new SchemaObjectDoesNotExistException(t("Cannot remove default value of field @table.@field: field doesn't exist.", ['@table' => $table, '@field' => $field]));
     }
diff --git a/web/core/lib/Drupal/Core/Database/Install/Tasks.php b/web/core/lib/Drupal/Core/Database/Install/Tasks.php
index 7dfe5d0288..6ba3ba733c 100644
--- a/web/core/lib/Drupal/Core/Database/Install/Tasks.php
+++ b/web/core/lib/Drupal/Core/Database/Install/Tasks.php
@@ -243,7 +243,9 @@ public function getFormOptions(array $database) {
     ];
 
     global $install_state;
-    $profile = $install_state['parameters']['profile'];
+    // @todo https://www.drupal.org/project/drupal/issues/3110839 remove PHP 7.4
+    //   work around and add a better message for the migrate UI.
+    $profile = $install_state['parameters']['profile'] ?? NULL;
     $db_prefix = ($profile == 'standard') ? 'drupal_' : $profile . '_';
     $form['advanced_options']['prefix'] = [
       '#type' => 'textfield',
diff --git a/web/core/lib/Drupal/Core/Datetime/DrupalDateTime.php b/web/core/lib/Drupal/Core/Datetime/DrupalDateTime.php
index 9f9edc4739..49aff3f8fa 100644
--- a/web/core/lib/Drupal/Core/Datetime/DrupalDateTime.php
+++ b/web/core/lib/Drupal/Core/Datetime/DrupalDateTime.php
@@ -23,9 +23,34 @@ class DrupalDateTime extends DateTimePlus {
   use StringTranslationTrait;
 
   /**
-   * Format string translation cache.
+   * Formatted strings translation cache.
    *
-   * @var string
+   * Translation cache represents an instance storage for formatted date
+   * strings. It contains a multidimensional array where:
+   * - first level keys - are drupal language codes;
+   * - second level keys - are each symbols of given format string (like 'F');
+   * - third level keys - are original matched strings related to the symbol;
+   * - values - are translated or not-translated original strings (depends on
+   *   if a particular symbol represents translatable value according to PHP's
+   *   date() format character).
+   *
+   * For example:
+   * @code
+   *   [
+   *     'en' => [
+   *       'F' => [
+   *         'November' => t('November'),
+   *         'December' => t('December'),
+   *       ],
+   *       'd' => [
+   *         '10' => '10',
+   *         '31' => '31',
+   *       ],
+   *     ],
+   *   ]
+   * @endcode
+   *
+   * @var array
    */
   protected $formatTranslationCache;
 
diff --git a/web/core/lib/Drupal/Core/Entity/ContentEntityType.php b/web/core/lib/Drupal/Core/Entity/ContentEntityType.php
index 66b1a06a8a..d94f1c8101 100644
--- a/web/core/lib/Drupal/Core/Entity/ContentEntityType.php
+++ b/web/core/lib/Drupal/Core/Entity/ContentEntityType.php
@@ -17,11 +17,6 @@ class ContentEntityType extends EntityType implements ContentEntityTypeInterface
   /**
    * The required revision metadata keys.
    *
-   * This property should only be filled in the constructor. This ensures that
-   * only new instances get newly added required revision metadata keys.
-   * Unserialized objects will only retrieve the keys that they already have
-   * been cached with.
-   *
    * @var array
    */
   protected $requiredRevisionMetadataKeys = [];
@@ -119,4 +114,25 @@ public function hasRevisionMetadataKey($key) {
     return isset($keys[$key]);
   }
 
+  /**
+   * {@inheritdoc}
+   */
+  public function setRevisionMetadataKey($key, $field_name) {
+    if ($field_name !== NULL) {
+      // Update the property holding the required revision metadata keys,
+      // which is used by the BC layer for retrieving the revision metadata
+      // keys.
+      // @see \Drupal\Core\Entity\ContentEntityType::getRevisionMetadataKeys()
+      $this->requiredRevisionMetadataKeys[$key] = $field_name;
+
+      // Add the new revision metadata key.
+      $this->revision_metadata_keys[$key] = $field_name;
+    }
+    else {
+      unset($this->requiredRevisionMetadataKeys[$key], $this->revision_metadata_keys[$key]);
+    }
+
+    return $this;
+  }
+
 }
diff --git a/web/core/lib/Drupal/Core/Entity/ContentEntityTypeInterface.php b/web/core/lib/Drupal/Core/Entity/ContentEntityTypeInterface.php
index 4c9e890147..12640d5db5 100644
--- a/web/core/lib/Drupal/Core/Entity/ContentEntityTypeInterface.php
+++ b/web/core/lib/Drupal/Core/Entity/ContentEntityTypeInterface.php
@@ -52,4 +52,17 @@ public function getRevisionMetadataKey($key);
    */
   public function hasRevisionMetadataKey($key);
 
+  /**
+   * Sets a revision metadata key.
+   *
+   * @param string $key
+   *   The name of the entity revision metadata key to set.
+   * @param string|null $field_name
+   *   The name of the entity field key to use for the revision metadata key. If
+   *   NULL is passed, the value of the revision metadata key is unset.
+   *
+   * @return $this
+   */
+  public function setRevisionMetadataKey($key, $field_name);
+
 }
diff --git a/web/core/lib/Drupal/Core/Entity/Sql/SqlContentEntityStorageSchema.php b/web/core/lib/Drupal/Core/Entity/Sql/SqlContentEntityStorageSchema.php
index 68c63e809f..3ca43fb71f 100644
--- a/web/core/lib/Drupal/Core/Entity/Sql/SqlContentEntityStorageSchema.php
+++ b/web/core/lib/Drupal/Core/Entity/Sql/SqlContentEntityStorageSchema.php
@@ -397,7 +397,8 @@ public function onEntityTypeDelete(EntityTypeInterface $entity_type) {
     $schema_handler = $this->database->schema();
 
     // Delete entity and field tables.
-    foreach ($this->getTableMapping($entity_type)->getTableNames() as $table_name) {
+    $table_names = $this->getTableNames($entity_type, $this->fieldStorageDefinitions, $this->getTableMapping($entity_type));
+    foreach ($table_names as $table_name) {
       if ($schema_handler->tableExists($table_name)) {
         $schema_handler->dropTable($table_name);
       }
@@ -472,7 +473,10 @@ protected function preUpdateEntityTypeSchema(EntityTypeInterface $entity_type, E
 
     // Create temporary tables based on the new entity type and field storage
     // definitions.
-    $temporary_table_names = array_combine($sandbox['new_table_mapping']->getTableNames(), $sandbox['temporary_table_mapping']->getTableNames());
+    $temporary_table_names = array_combine(
+      $this->getTableNames($entity_type, $field_storage_definitions, $sandbox['new_table_mapping']),
+      $this->getTableNames($entity_type, $field_storage_definitions, $sandbox['temporary_table_mapping'])
+    );
     $this->entityType = $entity_type;
     $this->fieldStorageDefinitions = $field_storage_definitions;
 
@@ -512,14 +516,15 @@ protected function preUpdateEntityTypeSchema(EntityTypeInterface $entity_type, E
     $this->storage->setEntityType($original);
     $this->storage->setFieldStorageDefinitions($original_field_storage_definitions);
     $this->storage->setTableMapping($sandbox['original_table_mapping']);
+
+    // Store the temporary table name mappings for later reuse.
+    $sandbox['temporary_table_names'] = $temporary_table_names;
   }
 
   /**
    * {@inheritdoc}
    */
   protected function postUpdateEntityTypeSchema(EntityTypeInterface $entity_type, EntityTypeInterface $original, array $field_storage_definitions, array $original_field_storage_definitions, array &$sandbox = NULL) {
-    /** @var \Drupal\Core\Entity\Sql\TableMappingInterface $temporary_table_mapping */
-    $temporary_table_mapping = $sandbox['temporary_table_mapping'];
     /** @var \Drupal\Core\Entity\Sql\TableMappingInterface $original_table_mapping */
     $original_table_mapping = $sandbox['original_table_mapping'];
     /** @var \Drupal\Core\Entity\Sql\TableMappingInterface $new_table_mapping */
@@ -529,7 +534,10 @@ protected function postUpdateEntityTypeSchema(EntityTypeInterface $entity_type,
 
     // Rename the original tables so we can put them back in place in case
     // anything goes wrong.
-    $backup_table_names = array_combine($original_table_mapping->getTableNames(), $backup_table_mapping->getTableNames());
+    $backup_table_names = array_combine(
+      $this->getTableNames($original, $original_field_storage_definitions, $original_table_mapping),
+      $this->getTableNames($original, $original_field_storage_definitions, $backup_table_mapping)
+    );
     $renamed_tables = [];
     try {
       foreach ($backup_table_names as $original_table_name => $backup_table_name) {
@@ -549,8 +557,7 @@ protected function postUpdateEntityTypeSchema(EntityTypeInterface $entity_type,
     // Put the new tables in place and update the entity type and field storage
     // definitions.
     try {
-      $table_name_mapping = array_combine($temporary_table_mapping->getTableNames(), $new_table_mapping->getTableNames());
-      foreach ($table_name_mapping as $temp_table_name => $current_table_name) {
+      foreach ($sandbox['temporary_table_names'] as $current_table_name => $temp_table_name) {
         $this->database->schema()->renameTable($temp_table_name, $current_table_name);
       }
 
@@ -609,15 +616,50 @@ protected function postUpdateEntityTypeSchema(EntityTypeInterface $entity_type,
     }
   }
 
+  /**
+   * Gets a list of table names for this entity type, field storage and mapping.
+   *
+   * The default table mapping does not return dedicated revision table names
+   * for non-revisionable fields attached to revisionable entity types. Since
+   * both the storage and the storage handlers expect them to be existing, the
+   * missing table names need to be manually restored.
+   *
+   * @param \Drupal\Core\Entity\EntityTypeInterface $entity_type
+   *   An entity type definition.
+   * @param \Drupal\Core\Field\FieldStorageDefinitionInterface[] $field_storage_definitions
+   *   An array of field storage definitions.
+   * @param \Drupal\Core\Entity\Sql\TableMappingInterface $table_mapping
+   *   A table mapping.
+   *
+   * @return string[]
+   *   An array of field table names.
+   *
+   * @todo Remove this once the behavior of the default table mapping, the
+   *    storage handler, and the storage schema handler are reconciled in
+   *    https://www.drupal.org/node/3113639.
+   */
+  private function getTableNames(EntityTypeInterface $entity_type, array $field_storage_definitions, TableMappingInterface $table_mapping) {
+    $table_names = $table_mapping->getTableNames();
+    if ($table_mapping instanceof DefaultTableMapping && $entity_type->isRevisionable()) {
+      foreach ($field_storage_definitions as $storage_definition) {
+        if ($table_mapping->requiresDedicatedTableStorage($storage_definition)) {
+          $dedicated_revision_table_name = $table_mapping->getDedicatedRevisionTableName($storage_definition);
+          if (!$storage_definition->isRevisionable() && !in_array($dedicated_revision_table_name, $table_names)) {
+            $table_names[] = $dedicated_revision_table_name;
+          }
+        }
+      }
+    }
+    return $table_names;
+  }
+
   /**
    * {@inheritdoc}
    */
   protected function handleEntityTypeSchemaUpdateExceptionOnDataCopy(EntityTypeInterface $entity_type, EntityTypeInterface $original, array &$sandbox) {
     // In case of an error during the save process, we need to clean up the
     // temporary tables.
-    /** @var \Drupal\Core\Entity\Sql\TableMappingInterface $temporary_table_mapping */
-    $temporary_table_mapping = $sandbox['temporary_table_mapping'];
-    foreach ($temporary_table_mapping->getTableNames() as $table_name) {
+    foreach ($sandbox['temporary_table_names'] as $table_name) {
       $this->database->schema()->dropTable($table_name);
     }
   }
diff --git a/web/core/lib/Drupal/Core/Entity/entity.api.php b/web/core/lib/Drupal/Core/Entity/entity.api.php
index d2ffcc4cae..6c1d38387e 100644
--- a/web/core/lib/Drupal/Core/Entity/entity.api.php
+++ b/web/core/lib/Drupal/Core/Entity/entity.api.php
@@ -1828,6 +1828,11 @@ function hook_entity_form_display_alter(\Drupal\Core\Entity\Display\EntityFormDi
 /**
  * Provides custom base field definitions for a content entity type.
  *
+ * Field (storage) definitions returned by this hook must run through the
+ * regular field storage life-cycle operations: they need to be properly
+ * installed, updated, and uninstalled. This would typically be done through the
+ * Entity Update API provided by the entity definition update manager.
+ *
  * @param \Drupal\Core\Entity\EntityTypeInterface $entity_type
  *   The entity type definition.
  *
@@ -1839,6 +1844,8 @@ function hook_entity_form_display_alter(\Drupal\Core\Entity\Display\EntityFormDi
  * @see hook_entity_bundle_field_info_alter()
  * @see \Drupal\Core\Field\FieldDefinitionInterface
  * @see \Drupal\Core\Entity\EntityFieldManagerInterface::getFieldDefinitions()
+ * @see \Drupal\Core\Entity\EntityDefinitionUpdateManagerInterface
+ * @see https://www.drupal.org/node/3034742
  */
 function hook_entity_base_field_info(\Drupal\Core\Entity\EntityTypeInterface $entity_type) {
   if ($entity_type->id() == 'node') {
@@ -1943,6 +1950,11 @@ function hook_entity_bundle_field_info_alter(&$fields, \Drupal\Core\Entity\Entit
 /**
  * Provides field storage definitions for a content entity type.
  *
+ * Field storage definitions returned by this hook must run through the regular
+ * field storage life-cycle operations: they need to be properly installed,
+ * updated, and uninstalled. This would typically be done through the Entity
+ * Update API provided by the entity definition update manager.
+ *
  * @param \Drupal\Core\Entity\EntityTypeInterface $entity_type
  *   The entity type definition.
  *
@@ -1952,6 +1964,8 @@ function hook_entity_bundle_field_info_alter(&$fields, \Drupal\Core\Entity\Entit
  * @see hook_entity_field_storage_info_alter()
  * @see \Drupal\Core\Field\FieldStorageDefinitionInterface
  * @see \Drupal\Core\Entity\EntityFieldManagerInterface::getFieldStorageDefinitions()
+ * @see \Drupal\Core\Entity\EntityDefinitionUpdateManagerInterface
+ * @see https://www.drupal.org/node/3034742
  */
 function hook_entity_field_storage_info(\Drupal\Core\Entity\EntityTypeInterface $entity_type) {
   if (\Drupal::entityTypeManager()->getStorage($entity_type->id()) instanceof DynamicallyFieldableEntityStorageInterface) {
diff --git a/web/core/lib/Drupal/Core/Field/AllowedTagsXssTrait.php b/web/core/lib/Drupal/Core/Field/AllowedTagsXssTrait.php
index c356cc3d0c..d893e1b3bd 100644
--- a/web/core/lib/Drupal/Core/Field/AllowedTagsXssTrait.php
+++ b/web/core/lib/Drupal/Core/Field/AllowedTagsXssTrait.php
@@ -30,6 +30,7 @@ trait AllowedTagsXssTrait {
    *   valid UTF-8.
    */
   public function fieldFilterXss($string) {
+    @trigger_error(__METHOD__ . ' is deprecated in drupal:8.0.0 and is removed in drupal:9.0.0. Use \Drupal\Core\Field\FieldFilteredMarkup::create() instead.', E_USER_DEPRECATED);
     return FieldFilteredMarkup::create($string);
   }
 
@@ -37,6 +38,7 @@ public function fieldFilterXss($string) {
    * Returns a list of tags allowed by AllowedTagsXssTrait::fieldFilterXss().
    */
   public function allowedTags() {
+    @trigger_error(__METHOD__ . ' is deprecated in drupal:8.0.0 and is removed in drupal:9.0.0. Use \Drupal\Core\Field\FieldFilteredMarkup::allowedTags() instead.', E_USER_DEPRECATED);
     return FieldFilteredMarkup::allowedTags();
   }
 
@@ -44,6 +46,7 @@ public function allowedTags() {
    * Returns a human-readable list of allowed tags for display in help texts.
    */
   public function displayAllowedTags() {
+    @trigger_error(__METHOD__ . ' is deprecated in drupal:8.0.0 and is removed in drupal:9.0.0. Use \Drupal\Core\Field\FieldFilteredMarkup::displayAllowedTags() instead.', E_USER_DEPRECATED);
     return FieldFilteredMarkup::displayAllowedTags();
   }
 
diff --git a/web/core/lib/Drupal/Core/Field/PluginSettingsInterface.php b/web/core/lib/Drupal/Core/Field/PluginSettingsInterface.php
index 3a70e4f4b3..b06a8769ec 100644
--- a/web/core/lib/Drupal/Core/Field/PluginSettingsInterface.php
+++ b/web/core/lib/Drupal/Core/Field/PluginSettingsInterface.php
@@ -8,8 +8,8 @@
 /**
  * Interface definition for plugin with settings.
  *
- * @deprecated in drupal:8.1.0 and is removed from drupal:9.0.0. Use
- *   \Drupal\Component\Plugin\ConfigurableInterface instead.
+ * @todo Merge into \Drupal\Component\Plugin\ConfigurableInterface. See
+ *   https://www.drupal.org/project/drupal/issues/1764380
  */
 interface PluginSettingsInterface extends PluginInspectionInterface, ThirdPartySettingsInterface {
 
diff --git a/web/core/lib/Drupal/Core/Form/FormSubmitter.php b/web/core/lib/Drupal/Core/Form/FormSubmitter.php
index 8591edaa2b..4a6a34c807 100644
--- a/web/core/lib/Drupal/Core/Form/FormSubmitter.php
+++ b/web/core/lib/Drupal/Core/Form/FormSubmitter.php
@@ -61,7 +61,9 @@ public function doSubmitForm(&$form, FormStateInterface &$form_state) {
 
       $batch['progressive'] = !$form_state->isProgrammed();
       $response = batch_process();
-      if ($batch['progressive']) {
+      // If the batch has been completed and _batch_finished() called then
+      // $batch will be NULL.
+      if ($batch && $batch['progressive']) {
         return $response;
       }
 
diff --git a/web/core/lib/Drupal/Core/Render/Element.php b/web/core/lib/Drupal/Core/Render/Element.php
index 682f236163..f27304cde8 100644
--- a/web/core/lib/Drupal/Core/Render/Element.php
+++ b/web/core/lib/Drupal/Core/Render/Element.php
@@ -78,7 +78,7 @@ public static function children(array &$elements, $sort = FALSE) {
     $i = 0;
     $sortable = FALSE;
     foreach ($elements as $key => $value) {
-      if ($key === '' || $key[0] !== '#') {
+      if (is_int($key) || $key === '' || $key[0] !== '#') {
         if (is_array($value)) {
           if (isset($value['#weight'])) {
             $weight = $value['#weight'];
diff --git a/web/core/lib/Drupal/Core/Render/ElementInfoManagerInterface.php b/web/core/lib/Drupal/Core/Render/ElementInfoManagerInterface.php
index 99b7dacc5f..403bd4b73f 100644
--- a/web/core/lib/Drupal/Core/Render/ElementInfoManagerInterface.php
+++ b/web/core/lib/Drupal/Core/Render/ElementInfoManagerInterface.php
@@ -57,7 +57,7 @@ public function getInfo($type);
    *   (Optional) The value to return if the element type does not specify a
    *   value for the property. Defaults to NULL.
    *
-   * @return string
+   * @return mixed
    *   The property value of the defined element type. Or the provided
    *   default value, which can be NULL.
    */
diff --git a/web/core/lib/Drupal/Core/Routing/RouteProvider.php b/web/core/lib/Drupal/Core/Routing/RouteProvider.php
index 627aa506cd..c372b7bdac 100644
--- a/web/core/lib/Drupal/Core/Routing/RouteProvider.php
+++ b/web/core/lib/Drupal/Core/Routing/RouteProvider.php
@@ -191,7 +191,7 @@ public function getRouteCollectionForRequest(Request $request) {
   }
 
   /**
-   * Find the route using the provided route name (and parameters).
+   * Find the route using the provided route name.
    *
    * @param string $name
    *   The route name to fetch
diff --git a/web/core/lib/Drupal/Core/Security/RequestSanitizer.php b/web/core/lib/Drupal/Core/Security/RequestSanitizer.php
index e1626ed383..a778e4be4e 100644
--- a/web/core/lib/Drupal/Core/Security/RequestSanitizer.php
+++ b/web/core/lib/Drupal/Core/Security/RequestSanitizer.php
@@ -153,7 +153,7 @@ protected static function checkDestination($destination, array $whitelist) {
   protected static function stripDangerousValues($input, array $whitelist, array &$sanitized_keys) {
     if (is_array($input)) {
       foreach ($input as $key => $value) {
-        if ($key !== '' && $key[0] === '#' && !in_array($key, $whitelist, TRUE)) {
+        if ($key !== '' && ((string) $key)[0] === '#' && !in_array($key, $whitelist, TRUE)) {
           unset($input[$key]);
           $sanitized_keys[] = $key;
         }
diff --git a/web/core/lib/Drupal/Core/Template/Attribute.php b/web/core/lib/Drupal/Core/Template/Attribute.php
index 99546ef1be..fe9aace1f0 100644
--- a/web/core/lib/Drupal/Core/Template/Attribute.php
+++ b/web/core/lib/Drupal/Core/Template/Attribute.php
@@ -4,6 +4,7 @@
 
 use Drupal\Component\Render\PlainTextOutput;
 use Drupal\Component\Render\MarkupInterface;
+use Drupal\Component\Utility\NestedArray;
 
 /**
  * Collects, sanitizes, and renders HTML attributes.
@@ -208,6 +209,19 @@ public function setAttribute($attribute, $value) {
     return $this;
   }
 
+  /**
+   * Checks if the storage has an attribute with the given name.
+   *
+   * @param string $name
+   *   The name of the attribute to check for.
+   *
+   * @return bool
+   *   Returns TRUE if the attribute exists, or FALSE otherwise.
+   */
+  public function hasAttribute($name) {
+    return array_key_exists($name, $this->storage);
+  }
+
   /**
    * Removes an attribute from an Attribute object.
    *
@@ -356,4 +370,20 @@ public function jsonSerialize() {
     return (string) $this;
   }
 
+  /**
+   * Merges an Attribute object into the current storage.
+   *
+   * @param \Drupal\Core\Template\Attribute $collection
+   *   The Attribute object to merge.
+   *
+   * @return $this
+   */
+  public function merge(Attribute $collection) {
+    $merged_attributes = NestedArray::mergeDeep($this->toArray(), $collection->toArray());
+    foreach ($merged_attributes as $name => $value) {
+      $this->storage[$name] = $this->createAttributeValue($name, $value);
+    }
+    return $this;
+  }
+
 }
diff --git a/web/core/lib/Drupal/Core/Template/AttributeHelper.php b/web/core/lib/Drupal/Core/Template/AttributeHelper.php
new file mode 100644
index 0000000000..4beb5208cd
--- /dev/null
+++ b/web/core/lib/Drupal/Core/Template/AttributeHelper.php
@@ -0,0 +1,76 @@
+<?php
+
+namespace Drupal\Core\Template;
+
+use Drupal\Component\Utility\NestedArray;
+
+/**
+ * Helper class to deal with mixed array and Attribute operations.
+ *
+ * This class contains static methods only and is not meant to be instantiated.
+ */
+class AttributeHelper {
+
+  /**
+   * This class should not be instantiated.
+   */
+  private function __construct() {
+  }
+
+  /**
+   * Checks if the given attribute collection has an attribute.
+   *
+   * @param string $name
+   *   The name of the attribute to check for.
+   * @param \Drupal\Core\Template\Attribute|array $collection
+   *   An Attribute object or an array of attributes.
+   *
+   * @return bool
+   *   TRUE if the attibute exists, FALSE otherwise.
+   *
+   * @throws \InvalidArgumentException
+   *   When the input $collection is neither an Attribute object nor an array.
+   */
+  public static function attributeExists($name, $collection) {
+    if ($collection instanceof Attribute) {
+      return $collection->hasAttribute($name);
+    }
+    elseif (is_array($collection)) {
+      return array_key_exists($name, $collection);
+    }
+    throw new \InvalidArgumentException('Invalid collection argument');
+  }
+
+  /**
+   * Merges two attribute collections.
+   *
+   * @param \Drupal\Core\Template\Attribute|array $a
+   *   First Attribute object or array to merge. The returned value type will
+   *   be the same as the type of this argument.
+   * @param \Drupal\Core\Template\Attribute|array $b
+   *   Second Attribute object or array to merge.
+   *
+   * @return \Drupal\Core\Template\Attribute|array
+   *   The merged attributes, as an Attribute object or an array.
+   *
+   * @throws \InvalidArgumentException
+   *   If at least one collection argument is neither an Attribute object nor an
+   *   array.
+   */
+  public static function mergeCollections($a, $b) {
+    if (!($a instanceof Attribute || is_array($a)) || !($b instanceof Attribute || is_array($b))) {
+      throw new \InvalidArgumentException('Invalid collection argument');
+    }
+    // If both collections are arrays, just merge them.
+    if (is_array($a) && is_array($b)) {
+      return NestedArray::mergeDeep($a, $b);
+    }
+    // If at least one collections is an Attribute object, merge through
+    // Attribute::merge.
+    $merge_a = $a instanceof Attribute ? $a : new Attribute($a);
+    $merge_b = $b instanceof Attribute ? $b : new Attribute($b);
+    $merge_a->merge($merge_b);
+    return $a instanceof Attribute ? $merge_a : $merge_a->toArray();
+  }
+
+}
diff --git a/web/core/misc/ajax.es6.js b/web/core/misc/ajax.es6.js
index 905559c921..fdf000adca 100644
--- a/web/core/misc/ajax.es6.js
+++ b/web/core/misc/ajax.es6.js
@@ -419,8 +419,10 @@
     this.element = element;
 
     /**
-     * @deprecated in Drupal 8.5.0 and will be removed before Drupal 9.0.0.
-     * Use elementSettings.
+     * @deprecated in drupal:8.5.0 and is removed from drupal:10.0.0.
+     *   Use elementSettings.
+     *
+     * @see https://www.drupal.org/node/2928117
      *
      * @type {Drupal.Ajax~elementSettings}
      */
@@ -1117,13 +1119,13 @@
    * @param {object} response
    *   The response from the Ajax request.
    *
-   * @deprecated in Drupal 8.6.x and will be removed before Drupal 9.0.0.
-   *   Use data with desired wrapper. See https://www.drupal.org/node/2974880.
+   * @deprecated in drupal:8.6.0 and is removed from drupal:10.0.0.
+   *   Use data with desired wrapper.
+   *
+   * @see https://www.drupal.org/node/2940704
    *
    * @todo Add deprecation warning after it is possible. For more information
    *   see: https://www.drupal.org/project/drupal/issues/2973400
-   *
-   * @see https://www.drupal.org/node/2940704
    */
   Drupal.theme.ajaxWrapperNewContent = ($newContent, ajax, response) =>
     (response.effect || ajax.effect) !== 'none' &&
@@ -1146,13 +1148,13 @@
    * @param {jQuery} $elements
    *   Response elements after parsing.
    *
-   * @deprecated in Drupal 8.6.x and will be removed before Drupal 9.0.0.
-   *   Use data with desired wrapper. See https://www.drupal.org/node/2974880.
+   * @deprecated in drupal:8.6.0 and is removed from drupal:10.0.0.
+   *   Use data with desired wrapper.
+   *
+   * @see https://www.drupal.org/node/2940704
    *
    * @todo Add deprecation warning after it is possible. For more information
    *   see: https://www.drupal.org/project/drupal/issues/2973400
-   *
-   * @see https://www.drupal.org/node/2940704
    */
   Drupal.theme.ajaxWrapperMultipleRootElements = $elements =>
     $('<div></div>').append($elements);
diff --git a/web/core/misc/dialog/off-canvas.tabledrag.css b/web/core/misc/dialog/off-canvas.tabledrag.css
index 1cce13b097..ba2e5e9826 100644
--- a/web/core/misc/dialog/off-canvas.tabledrag.css
+++ b/web/core/misc/dialog/off-canvas.tabledrag.css
@@ -41,8 +41,8 @@
   height: auto;
   margin: 0;
   padding: 0;
-  /* Use lighter drag icon against dark background. */
   background-color: transparent;
+  /* Use lighter drag icon against dark background. */
   background-image: url(../icons/bebebe/move.svg);
   background-repeat: no-repeat;
   background-position: center;
diff --git a/web/core/modules/color/color.module b/web/core/modules/color/color.module
index 6b70035e74..3ae1030203 100644
--- a/web/core/modules/color/color.module
+++ b/web/core/modules/color/color.module
@@ -764,8 +764,9 @@ function _color_blend($img, $hex1, $hex2, $alpha) {
  * Converts a hex color into an RGB triplet.
  */
 function _color_unpack($hex, $normalize = FALSE) {
-  if (strlen($hex) == 4) {
-    $hex = $hex[1] . $hex[1] . $hex[2] . $hex[2] . $hex[3] . $hex[3];
+  $hex = substr($hex, 1);
+  if (strlen($hex) == 3) {
+    $hex = $hex[0] . $hex[0] . $hex[1] . $hex[1] . $hex[2] . $hex[2];
   }
   $c = hexdec($hex);
   for ($i = 16; $i >= 0; $i -= 8) {
diff --git a/web/core/modules/comment/migrations/d7_comment.yml b/web/core/modules/comment/migrations/d7_comment.yml
index 3db0890899..eafa8e36ec 100644
--- a/web/core/modules/comment/migrations/d7_comment.yml
+++ b/web/core/modules/comment/migrations/d7_comment.yml
@@ -40,7 +40,11 @@ process:
     -
       plugin: skip_on_empty
       method: row
-  langcode: language
+  # Comments migrated from Drupal 6 to Drupal 7 may not have a language.
+  langcode:
+    plugin: default_value
+    source: language
+    default_value: und
   field_name: '@comment_type'
   subject: subject
   uid: uid
diff --git a/web/core/modules/comment/tests/src/Kernel/Migrate/d7/MigrateCommentTest.php b/web/core/modules/comment/tests/src/Kernel/Migrate/d7/MigrateCommentTest.php
index b5b873abb4..c51529b689 100644
--- a/web/core/modules/comment/tests/src/Kernel/Migrate/d7/MigrateCommentTest.php
+++ b/web/core/modules/comment/tests/src/Kernel/Migrate/d7/MigrateCommentTest.php
@@ -105,6 +105,26 @@ public function testMigration() {
     $node = $comment->getCommentedEntity();
     $this->assertInstanceOf(NodeInterface::class, $node);
     $this->assertSame('2', $node->id());
+
+    // Tests a comment migrated from Drupal 6 to Drupal 7 that did not have a
+    // language.
+    $comment = Comment::load(4);
+    $this->assertInstanceOf(Comment::class, $comment);
+    $this->assertSame('Comment without language', $comment->getSubject());
+    $this->assertSame('1426781880', $comment->getCreatedTime());
+    $this->assertSame('1426781880', $comment->getChangedTime());
+    $this->assertTrue($comment->isPublished());
+    $this->assertSame('Bob', $comment->getAuthorName());
+    $this->assertSame('bob@local.host', $comment->getAuthorEmail());
+    $this->assertSame('A comment without language (migrated from Drupal 6)', $comment->comment_body->value);
+    $this->assertSame('filtered_html', $comment->comment_body->format);
+    $this->assertSame('drupal7.local', $comment->getHostname());
+    $this->assertSame('und', $comment->language()->getId());
+    $this->assertSame('10', $comment->field_integer->value);
+
+    $node = $comment->getCommentedEntity();
+    $this->assertInstanceOf(NodeInterface::class, $node);
+    $this->assertSame('1', $node->id());
   }
 
   /**
diff --git a/web/core/modules/editor/editor.module b/web/core/modules/editor/editor.module
index ef11c3cbf4..4ccea91890 100644
--- a/web/core/modules/editor/editor.module
+++ b/web/core/modules/editor/editor.module
@@ -68,8 +68,6 @@ function editor_element_info_alter(&$types) {
 }
 
 /**
- * Implements hook_form_FORM_ID_alter() for \Drupal\filter\FilterFormatListBuilder.
- *
  * Implements hook_field_formatter_info_alter().
  *
  * @see quickedit_field_formatter_info_alter()
diff --git a/web/core/modules/field/field.module b/web/core/modules/field/field.module
index e7c48b8fa6..3a8a8e16b1 100644
--- a/web/core/modules/field/field.module
+++ b/web/core/modules/field/field.module
@@ -301,7 +301,7 @@ function field_config_import_steps_alter(&$sync_steps, ConfigImporter $config_im
     // to purge field data where the module that provides the field is being
     // uninstalled.
     array_unshift($sync_steps, ['\Drupal\field\ConfigImporterFieldPurger', 'process']);
-  };
+  }
 }
 
 /**
diff --git a/web/core/modules/field/src/Plugin/migrate/process/d7/FieldInstanceSettings.php b/web/core/modules/field/src/Plugin/migrate/process/d7/FieldInstanceSettings.php
index a695760dfc..ed7a026b79 100644
--- a/web/core/modules/field/src/Plugin/migrate/process/d7/FieldInstanceSettings.php
+++ b/web/core/modules/field/src/Plugin/migrate/process/d7/FieldInstanceSettings.php
@@ -21,7 +21,6 @@ public function transform($value, MigrateExecutableInterface $migrate_executable
     $widget_type = $widget_settings['type'];
 
     $field_data = unserialize($field_definition['data']);
-    $field_settings = $field_data['settings'];
 
     // Get taxonomy term reference handler settings from allowed values.
     if ($row->getSourceProperty('type') == 'taxonomy_term_reference') {
@@ -38,6 +37,7 @@ public function transform($value, MigrateExecutableInterface $migrate_executable
 
     // Get entityreference handler settings from source field configuration.
     if ($row->getSourceProperty('type') == "entityreference") {
+      $field_settings = $field_data['settings'];
       $instance_settings['handler'] = 'default:' . $field_settings['target_type'];
       // Transform the sort settings to D8 structure.
       $sort = [
diff --git a/web/core/modules/field/src/Plugin/migrate/source/d7/FieldInstance.php b/web/core/modules/field/src/Plugin/migrate/source/d7/FieldInstance.php
index 74340884d2..e15fe7bdc6 100644
--- a/web/core/modules/field/src/Plugin/migrate/source/d7/FieldInstance.php
+++ b/web/core/modules/field/src/Plugin/migrate/source/d7/FieldInstance.php
@@ -180,9 +180,6 @@ public function prepareRow(Row $row) {
       }
     }
 
-    $field_data = unserialize($row->getSourceProperty('field_data'));
-    $row->setSourceProperty('field_settings', $field_data['settings']);
-
     return parent::prepareRow($row);
   }
 
diff --git a/web/core/modules/field/src/Plugin/migrate/source/d7/FieldOptionTranslation.php b/web/core/modules/field/src/Plugin/migrate/source/d7/FieldOptionTranslation.php
index 0fb577899e..f1a90303cc 100644
--- a/web/core/modules/field/src/Plugin/migrate/source/d7/FieldOptionTranslation.php
+++ b/web/core/modules/field/src/Plugin/migrate/source/d7/FieldOptionTranslation.php
@@ -23,9 +23,16 @@ public function query() {
       ->condition('objectid', '#allowed_values');
     // Add all i18n and locales_target fields.
     $query
-      ->fields('i18n')
+      ->fields('i18n', [
+        // All table fields except lid and type.
+        'textgroup',
+        'context',
+        'objectid',
+        'property',
+        'objectindex',
+        'format',
+      ])
       ->fields('lt');
-    $query->addField('fc', 'type');
     $query->addField('fci', 'bundle');
     $query->addField('i18n', 'lid', 'i18n_lid');
     $query->addField('i18n', 'type', 'i18n_type');
diff --git a/web/core/modules/field/tests/src/Kernel/Migrate/d7/MigrateFieldOptionTranslationTest.php b/web/core/modules/field/tests/src/Kernel/Migrate/d7/MigrateFieldOptionTranslationTest.php
index e4b7406645..7fa7b57b51 100644
--- a/web/core/modules/field/tests/src/Kernel/Migrate/d7/MigrateFieldOptionTranslationTest.php
+++ b/web/core/modules/field/tests/src/Kernel/Migrate/d7/MigrateFieldOptionTranslationTest.php
@@ -105,6 +105,9 @@ public function testFieldOptionTranslation() {
       ],
     ];
     $this->assertSame($allowed_values, $config_translation->get('settings.allowed_values'));
+
+    // Ensure that the count query works as expected.
+    $this->assertCount(16, $this->getMigration('d7_field_option_translation')->getSourcePlugin());
   }
 
 }
diff --git a/web/core/modules/field_ui/templates/field-ui-table.html.twig b/web/core/modules/field_ui/templates/field-ui-table.html.twig
index 68c8c8ec92..5084304b06 100644
--- a/web/core/modules/field_ui/templates/field-ui-table.html.twig
+++ b/web/core/modules/field_ui/templates/field-ui-table.html.twig
@@ -12,7 +12,7 @@
  *     https://www.drupal.org/node/893530 and
  *     http://api.drupal.org/api/drupal/includes!theme.inc/function/theme_table/7#comment-5109.
  * - header: Table header cells. Each cell contains the following properties:
- *   - tag: The HTML tag name to use; either TH or TD.
+ *   - tag: The HTML tag name to use; either 'th' or 'td'.
  *   - attributes: HTML attributes to apply to the tag.
  *   - content: A localized string for the title of the column.
  *   - field: Field name (required for column sorting).
diff --git a/web/core/modules/hal/src/Normalizer/EntityReferenceItemNormalizer.php b/web/core/modules/hal/src/Normalizer/EntityReferenceItemNormalizer.php
index 48dbb81b47..c2d65bfdbc 100644
--- a/web/core/modules/hal/src/Normalizer/EntityReferenceItemNormalizer.php
+++ b/web/core/modules/hal/src/Normalizer/EntityReferenceItemNormalizer.php
@@ -82,7 +82,10 @@ public function normalize($field_item, $format = NULL, array $context = []) {
 
     // Normalize the target entity.
     $embedded = $this->serializer->normalize($target_entity, $format, $context);
-    $link = $embedded['_links']['self'];
+    // @todo https://www.drupal.org/project/drupal/issues/3110815 $embedded will
+    //   be NULL if the target entity does not exist. Use null coalescence
+    //   operator to preserve behaviour in PHP 7.4.
+    $link = $embedded['_links']['self'] ?? NULL;
     // If the field is translatable, add the langcode to the link relation
     // object. This does not indicate the language of the target entity.
     if ($langcode) {
diff --git a/web/core/modules/help_topics/help_topics.module b/web/core/modules/help_topics/help_topics.module
index f051873bdf..6ee665a8c8 100644
--- a/web/core/modules/help_topics/help_topics.module
+++ b/web/core/modules/help_topics/help_topics.module
@@ -20,7 +20,7 @@ function help_topics_help($route_name, RouteMatchInterface $route_match) {
       $search_help = ($module_handler->moduleExists('search')) ? Url::fromRoute('help.page', ['name' => 'search'])->toString() : '#';
       $output = '';
       $output .= '<h3>' . t('About') . '</h3>';
-      $output .= '<p>' . t('The Help Topics module adds module- and theme-provided help topics to the module overviews from the core Help module. If the core Search module is enabled, these topics are also searchable. For more information, see the <a href=":online">online documentation for the Help Topics module</a>.', [':online' => 'https://www.drupal.org/modules/help_topics']) . '</p>';
+      $output .= '<p>' . t('The Help Topics module adds module- and theme-provided help topics to the module overviews from the core Help module. If the core Search module is enabled, these topics are also searchable. For more information, see the <a href=":online">online documentation for the Help Topics module</a>.', [':online' => 'https://www.drupal.org/documentation/modules/help_topics']) . '</p>';
       $output .= '<h3>' . t('Uses') . '</h3>';
       $output .= '<dl>';
       $output .= '<dt>' . t('Viewing help topics') . '</dt>';
diff --git a/web/core/modules/language/src/LanguageServiceProvider.php b/web/core/modules/language/src/LanguageServiceProvider.php
index a7e934aab6..492eda38a7 100644
--- a/web/core/modules/language/src/LanguageServiceProvider.php
+++ b/web/core/modules/language/src/LanguageServiceProvider.php
@@ -87,6 +87,12 @@ protected function isMultilingual() {
   protected function getDefaultLanguageValues() {
     $config_storage = BootstrapConfigStorageFactory::get();
     $system = $config_storage->read('system.site');
+    // In Kernel tests it's possible this code is called before system.site
+    // exists. In such cases behave as though the corresponding language
+    // configuration entity does not exist.
+    if ($system === FALSE) {
+      return FALSE;
+    }
     $default_language = $config_storage->read(static::CONFIG_PREFIX . $system['default_langcode']);
     if (is_array($default_language)) {
       return $default_language;
diff --git a/web/core/modules/layout_builder/src/EventSubscriber/BlockComponentRenderArray.php b/web/core/modules/layout_builder/src/EventSubscriber/BlockComponentRenderArray.php
index 8cde7674a1..d9218b5387 100644
--- a/web/core/modules/layout_builder/src/EventSubscriber/BlockComponentRenderArray.php
+++ b/web/core/modules/layout_builder/src/EventSubscriber/BlockComponentRenderArray.php
@@ -5,6 +5,7 @@
 use Drupal\block_content\Access\RefinableDependentAccessInterface;
 use Drupal\Core\Access\AccessResult;
 use Drupal\Core\Block\BlockPluginInterface;
+use Drupal\Core\Cache\CacheableMetadata;
 use Drupal\Core\Render\Element;
 use Drupal\Core\Render\PreviewFallbackInterface;
 use Drupal\Core\Session\AccountInterface;
@@ -102,6 +103,12 @@ public function onBuildRender(SectionComponentBuildRenderArrayEvent $event) {
       }
 
       $content = $block->build();
+
+      // We don't output the block render data if there are no render elements
+      // found, but we want to capture the cache metadata from the block
+      // regardless.
+      $event->addCacheableDependency(CacheableMetadata::createFromRenderArray($content));
+
       $is_content_empty = Element::isEmpty($content);
       $is_placeholder_ready = $event->inPreview() && $block instanceof PreviewFallbackInterface;
       // If the content is empty and no placeholder is available, return.
diff --git a/web/core/modules/layout_builder/src/Plugin/Block/FieldBlock.php b/web/core/modules/layout_builder/src/Plugin/Block/FieldBlock.php
index 493ed5dee5..80d9b97315 100644
--- a/web/core/modules/layout_builder/src/Plugin/Block/FieldBlock.php
+++ b/web/core/modules/layout_builder/src/Plugin/Block/FieldBlock.php
@@ -169,7 +169,7 @@ public function build() {
       $build = [];
       $this->logger->warning('The field "%field" failed to render with the error of "%error".', ['%field' => $this->fieldName, '%error' => $e->getMessage()]);
     }
-    CacheableMetadata::createFromObject($this)->applyTo($build);
+    CacheableMetadata::createFromRenderArray($build)->addCacheableDependency($this)->applyTo($build);
     return $build;
   }
 
diff --git a/web/core/modules/layout_builder/tests/src/Functional/LayoutBuilderFieldBlockEntityReferenceCacheTagsTest.php b/web/core/modules/layout_builder/tests/src/Functional/LayoutBuilderFieldBlockEntityReferenceCacheTagsTest.php
new file mode 100644
index 0000000000..871bbac345
--- /dev/null
+++ b/web/core/modules/layout_builder/tests/src/Functional/LayoutBuilderFieldBlockEntityReferenceCacheTagsTest.php
@@ -0,0 +1,141 @@
+<?php
+
+namespace Drupal\Tests\layout_builder\Functional;
+
+use Drupal\Component\Render\FormattableMarkup;
+use Drupal\Core\Url;
+use Drupal\Tests\BrowserTestBase;
+use Drupal\Tests\field\Traits\EntityReferenceTestTrait;
+use Drupal\Tests\node\Traits\ContentTypeCreationTrait;
+use Drupal\Tests\node\Traits\NodeCreationTrait;
+
+/**
+ * Tests cache tags on entity reference field blocks in Layout Builder.
+ *
+ * @group layout_builder
+ */
+class LayoutBuilderFieldBlockEntityReferenceCacheTagsTest extends BrowserTestBase {
+
+  use ContentTypeCreationTrait;
+  use EntityReferenceTestTrait;
+  use NodeCreationTrait;
+
+  /**
+   * {@inheritdoc}
+   */
+  protected static $modules = [
+    'node',
+    'layout_builder',
+  ];
+
+  /**
+   * {@inheritdoc}
+   */
+  protected $defaultTheme = 'stark';
+
+  /**
+   * {@inheritdoc}
+   */
+  protected function setUp() {
+    parent::setUp();
+
+    // Enable page caching.
+    $config = $this->config('system.performance');
+    $config->set('cache.page.max_age', 3600);
+    $config->save();
+
+    // Create two content types, with one content type containing a field that
+    // references entities of the second content type.
+    $this->createContentType([
+      'type' => 'bundle_with_reference_field',
+      'name' => 'bundle_with_reference_field',
+    ]);
+    $this->createContentType([
+      'type' => 'bundle_referenced',
+      'name' => 'bundle_referenced',
+    ]);
+
+    $this->createEntityReferenceField('node', 'bundle_with_reference_field', 'field_reference', 'Reference field', 'node', 'default', [
+      'target_bundles' => ['bundle_referenced'],
+    ]);
+
+    // Enable layout builder to the content type with the reference field, and
+    // add the reference field to the layout builder display.
+    $this->container->get('entity_display.repository')
+      ->getViewDisplay('node', 'bundle_with_reference_field', 'full')
+      ->enableLayoutBuilder()
+      ->setComponent('field_reference', ['type' => 'entity_reference_label'])
+      ->save();
+  }
+
+  /**
+   * Tests cache tags on field block for entity reference field.
+   */
+  public function testEntityReferenceFieldBlockCaching() {
+    $assert_session = $this->assertSession();
+
+    // Create two nodes, one of the referenced content type and one of the
+    // referencing content type, with the first node being referenced by the
+    // second. Set the referenced node to be unpublished so anonymous user will
+    // not have view access.
+    $referenced_node = $this->createNode([
+      'type' => 'bundle_referenced',
+      'title' => 'The referenced node title',
+      'status' => 0,
+    ]);
+
+    $referencing_node = $this->createNode([
+      'type' => 'bundle_with_reference_field',
+      'title' => 'The referencing node title',
+      'field_reference' => ['entity' => $referenced_node],
+    ]);
+
+    // When user does not have view access to referenced entities in entity
+    // reference field blocks, test that the cache tags of the referenced entity
+    // are still bubbled to page cache.
+    $referencing_node_url = $referencing_node->toUrl();
+    $this->verifyPageCacheContainsTags($referencing_node_url, 'MISS');
+    $this->verifyPageCacheContainsTags($referencing_node_url, 'HIT', $referenced_node->getCacheTags());
+    // Since the referenced node is inaccessible, it should not appear on the
+    // referencing node.
+    $this->drupalGet($referencing_node_url);
+    $assert_session->linkNotExists('The referenced node title');
+
+    // Publish the referenced entity.
+    $referenced_node->setPublished()
+      ->save();
+
+    // Revisit the node with the reference field without clearing cache. Now
+    // that the referenced node is published, it should appear.
+    $this->verifyPageCacheContainsTags($referencing_node_url, 'MISS');
+    $this->verifyPageCacheContainsTags($referencing_node_url, 'HIT', $referenced_node->getCacheTags());
+    $this->drupalGet($referencing_node_url);
+    $assert_session->linkExists('The referenced node title');
+  }
+
+  /**
+   * Verify that when loading a given page, it's a page cache hit or miss.
+   *
+   * @param \Drupal\Core\Url $url
+   *   The page for this URL will be loaded.
+   * @param string $hit_or_miss
+   *   'HIT' if a page cache hit is expected, 'MISS' otherwise.
+   * @param array|false $tags
+   *   When expecting a page cache hit, you may optionally specify an array of
+   *   expected cache tags. While FALSE, the cache tags will not be verified.
+   *   This tests whether all expected tags are in the page cache tags, not that
+   *   expected tags and page cache tags are identical.
+   */
+  protected function verifyPageCacheContainsTags(Url $url, $hit_or_miss, $tags = FALSE) {
+    $this->drupalGet($url);
+    $message = new FormattableMarkup('Page cache @hit_or_miss for %path.', ['@hit_or_miss' => $hit_or_miss, '%path' => $url->toString()]);
+    $this->assertEqual($this->drupalGetHeader('X-Drupal-Cache'), $hit_or_miss, $message);
+
+    if ($hit_or_miss === 'HIT' && is_array($tags)) {
+      $cache_tags = explode(' ', $this->drupalGetHeader('X-Drupal-Cache-Tags'));
+      $tags = array_unique($tags);
+      $this->assertEmpty(array_diff($tags, $cache_tags), 'Page cache tags contains all expected tags.');
+    }
+  }
+
+}
diff --git a/web/core/modules/layout_builder/tests/src/Kernel/FieldBlockTest.php b/web/core/modules/layout_builder/tests/src/Kernel/FieldBlockTest.php
index ebf19c53a4..d041e39689 100644
--- a/web/core/modules/layout_builder/tests/src/Kernel/FieldBlockTest.php
+++ b/web/core/modules/layout_builder/tests/src/Kernel/FieldBlockTest.php
@@ -281,13 +281,22 @@ public function providerTestBuild() {
       new ReturnPromise([[]]),
       '',
     ];
-    $data['exception'] = [
-      new ThrowPromise(new \Exception('The exception message')),
+    return $data;
+  }
+
+  /**
+   * @covers ::build
+   */
+  public function testBuildException() {
+    // In PHP 7.4 ReflectionClass cannot be serialized so this cannot be part of
+    // providerTestBuild().
+    $promise = new ThrowPromise(new \Exception('The exception message'));
+    $this->testBuild(
+      $promise,
       '',
       'The field "%field" failed to render with the error of "%error".',
-      ['%field' => 'the_field_name', '%error' => 'The exception message'],
-    ];
-    return $data;
+      ['%field' => 'the_field_name', '%error' => 'The exception message']
+    );
   }
 
   /**
diff --git a/web/core/modules/layout_builder/tests/src/Unit/BlockComponentRenderArrayTest.php b/web/core/modules/layout_builder/tests/src/Unit/BlockComponentRenderArrayTest.php
index 117c76f7de..1dc7693031 100644
--- a/web/core/modules/layout_builder/tests/src/Unit/BlockComponentRenderArrayTest.php
+++ b/web/core/modules/layout_builder/tests/src/Unit/BlockComponentRenderArrayTest.php
@@ -99,7 +99,10 @@ public function testOnBuildRender($refinable_dependent_access) {
     $placeholder_label = 'Placeholder Label';
     $block->getPreviewFallbackString()->willReturn($placeholder_label);
 
-    $block_content = ['#markup' => 'The block content.'];
+    $block_content = [
+      '#markup' => 'The block content.',
+      '#cache' => ['tags' => ['build-tag']],
+    ];
     $block->build()->willReturn($block_content);
     $this->blockManager->createInstance('some_block_id', ['id' => 'some_block_id'])->willReturn($block->reveal());
 
@@ -122,7 +125,10 @@ public function testOnBuildRender($refinable_dependent_access) {
     $expected_cache = $expected_build + [
       '#cache' => [
         'contexts' => [],
-        'tags' => ['test'],
+        'tags' => [
+          'build-tag',
+          'test',
+        ],
         'max-age' => -1,
       ],
     ];
@@ -410,7 +416,9 @@ public function testOnBuildRenderEmptyBuild() {
     $block->getBaseId()->willReturn('block_plugin_id');
     $block->getDerivativeId()->willReturn(NULL);
 
-    $block->build()->willReturn([]);
+    $block->build()->willReturn([
+      '#cache' => ['tags' => ['build-tag']],
+    ]);
     $this->blockManager->createInstance('some_block_id', ['id' => 'some_block_id'])->willReturn($block->reveal());
 
     $component = new SectionComponent('some-uuid', 'some-region', ['id' => 'some_block_id']);
@@ -423,7 +431,10 @@ public function testOnBuildRenderEmptyBuild() {
     $expected_cache = $expected_build + [
       '#cache' => [
         'contexts' => [],
-        'tags' => ['test'],
+        'tags' => [
+          'build-tag',
+          'test',
+        ],
         'max-age' => -1,
       ],
     ];
@@ -435,6 +446,51 @@ public function testOnBuildRenderEmptyBuild() {
     $this->assertEquals($expected_cache, $result);
   }
 
+  /**
+   * @covers ::onBuildRender
+   */
+  public function testOnBuildRenderEmptyBuildWithCacheTags() {
+    $block = $this->prophesize(BlockPluginInterface::class);
+    $access_result = AccessResult::allowed();
+    $block->access($this->account->reveal(), TRUE)->willReturn($access_result)->shouldBeCalled();
+    $block->getCacheContexts()->willReturn([]);
+    $block->getCacheTags()->willReturn(['test']);
+    $block->getCacheMaxAge()->willReturn(Cache::PERMANENT);
+    $block->getConfiguration()->willReturn([]);
+    $block->getPluginId()->willReturn('block_plugin_id');
+    $block->getBaseId()->willReturn('block_plugin_id');
+    $block->getDerivativeId()->willReturn(NULL);
+
+    $block_content = [
+      '#cache' => [
+        'tags' => ['empty_build_cache_test'],
+      ],
+    ];
+    $block->build()->willReturn($block_content);
+    $this->blockManager->createInstance('some_block_id', ['id' => 'some_block_id'])->willReturn($block->reveal());
+
+    $component = new SectionComponent('some-uuid', 'some-region', ['id' => 'some_block_id']);
+    $event = new SectionComponentBuildRenderArrayEvent($component, [], FALSE);
+
+    $subscriber = new BlockComponentRenderArray($this->account->reveal());
+
+    $expected_build = [];
+
+    $expected_cache = $expected_build + [
+        '#cache' => [
+          'contexts' => [],
+          'tags' => ['empty_build_cache_test', 'test'],
+          'max-age' => -1,
+        ],
+      ];
+
+    $subscriber->onBuildRender($event);
+    $result = $event->getBuild();
+    $this->assertEquals($expected_build, $result);
+    $event->getCacheableMetadata()->applyTo($result);
+    $this->assertEquals($expected_cache, $result);
+  }
+
   /**
    * @covers ::onBuildRender
    */
diff --git a/web/core/modules/link/src/Plugin/Field/FieldType/LinkItem.php b/web/core/modules/link/src/Plugin/Field/FieldType/LinkItem.php
index 373c3f03ad..90585a66a0 100644
--- a/web/core/modules/link/src/Plugin/Field/FieldType/LinkItem.php
+++ b/web/core/modules/link/src/Plugin/Field/FieldType/LinkItem.php
@@ -185,12 +185,12 @@ public function setValue($values, $notify = TRUE) {
       $values += [
         'options' => [],
       ];
-    }
-    // Unserialize the values, this is deprecated as the storage takes care of
-    // this, options must not be passed as a string anymore.
-    if (is_string($values['options'])) {
-      @trigger_error('Support for passing options as a serialized string is deprecated in 8.7.0 and will be removed before Drupal 9.0.0. Pass them as an array instead. See https://www.drupal.org/node/2961643.', E_USER_DEPRECATED);
-      $values['options'] = unserialize($values['options'], ['allowed_classes' => FALSE]);
+      // Unserialize the values, this is deprecated as the storage takes care of
+      // this, options must not be passed as a string anymore.
+      if (is_string($values['options'])) {
+        @trigger_error('Support for passing options as a serialized string is deprecated in 8.7.0 and will be removed before Drupal 9.0.0. Pass them as an array instead. See https://www.drupal.org/node/2961643.', E_USER_DEPRECATED);
+        $values['options'] = unserialize($values['options'], ['allowed_classes' => FALSE]);
+      }
     }
     parent::setValue($values, $notify);
   }
diff --git a/web/core/modules/locale/locale.bulk.inc b/web/core/modules/locale/locale.bulk.inc
index 37c4522092..a344a1b0e7 100644
--- a/web/core/modules/locale/locale.bulk.inc
+++ b/web/core/modules/locale/locale.bulk.inc
@@ -385,6 +385,11 @@ function locale_translate_batch_finished($success, array $results) {
       // file), simply do nothing.
       if ($results && isset($results['stats'])) {
         foreach ($results['stats'] as $filepath => $report) {
+          if ($filepath === 'config') {
+            // Ignore the config entry. It is processed in
+            // locale_config_batch_finished() below.
+            continue;
+          }
           $additions += $report['additions'];
           $updates += $report['updates'];
           $deletes += $report['deletes'];
diff --git a/web/core/modules/menu_link_content/src/Plugin/migrate/process/LinkUri.php b/web/core/modules/menu_link_content/src/Plugin/migrate/process/LinkUri.php
index 9d9e947294..3d2500a7ee 100644
--- a/web/core/modules/menu_link_content/src/Plugin/migrate/process/LinkUri.php
+++ b/web/core/modules/menu_link_content/src/Plugin/migrate/process/LinkUri.php
@@ -99,6 +99,9 @@ public function transform($value, MigrateExecutableInterface $migrate_executable
       if ($path == '<front>') {
         $path = '';
       }
+      elseif ($path == '<nolink>') {
+        return 'route:<nolink>';
+      }
       $path = 'internal:/' . $path;
 
       // Convert entity URIs to the entity scheme, if the path matches a route
diff --git a/web/core/modules/menu_link_content/tests/src/Kernel/Plugin/migrate/process/LinkUriTest.php b/web/core/modules/menu_link_content/tests/src/Kernel/Plugin/migrate/process/LinkUriTest.php
index 6b86bc080a..2c7928b172 100644
--- a/web/core/modules/menu_link_content/tests/src/Kernel/Plugin/migrate/process/LinkUriTest.php
+++ b/web/core/modules/menu_link_content/tests/src/Kernel/Plugin/migrate/process/LinkUriTest.php
@@ -85,6 +85,10 @@ public function providerTestRouted() {
     $expected = 'internal:/';
     $tests['front'] = [$value, $expected];
 
+    $value = '<nolink>';
+    $expected = 'route:<nolink>';
+    $tests['nolink'] = [$value, $expected];
+
     return $tests;
   }
 
diff --git a/web/core/modules/migrate/src/Plugin/migrate/id_map/Sql.php b/web/core/modules/migrate/src/Plugin/migrate/id_map/Sql.php
index 3e30634437..8c4f582805 100644
--- a/web/core/modules/migrate/src/Plugin/migrate/id_map/Sql.php
+++ b/web/core/modules/migrate/src/Plugin/migrate/id_map/Sql.php
@@ -975,7 +975,7 @@ public function getHighestId() {
     $keys = $this->migration->getDestinationPlugin()->getIds();
     if (reset($keys)['type'] !== 'integer') {
       throw new \LogicException('To determine the highest migrated ID the first ID must be an integer');
-    };
+    }
 
     // List of mapping tables to look in for the highest ID.
     $map_tables = [
diff --git a/web/core/modules/migrate/tests/src/Kernel/MigrateConfigRollbackTest.php b/web/core/modules/migrate/tests/src/Kernel/MigrateConfigRollbackTest.php
index 27aa45bcce..72abb0f287 100644
--- a/web/core/modules/migrate/tests/src/Kernel/MigrateConfigRollbackTest.php
+++ b/web/core/modules/migrate/tests/src/Kernel/MigrateConfigRollbackTest.php
@@ -78,8 +78,7 @@ public function testConfigRollback() {
     $this->assertSame('Some site', $config->get('name'));
     $this->assertSame('Awesome slogan', $config->get('slogan'));
     // Confirm the map row is deleted.
-    $map_row = $config_id_map->getRowBySource(['id' => $variable[0]['id']]);
-    $this->assertNull($map_row['destid1']);
+    $this->assertFalse($config_id_map->getRowBySource(['id' => $variable[0]['id']]));
 
     // We use system configuration to demonstrate importing and rolling back
     // configuration translations.
diff --git a/web/core/modules/migrate_drupal/tests/fixtures/drupal7.php b/web/core/modules/migrate_drupal/tests/fixtures/drupal7.php
index 43489f27ad..8df6422c67 100644
--- a/web/core/modules/migrate_drupal/tests/fixtures/drupal7.php
+++ b/web/core/modules/migrate_drupal/tests/fixtures/drupal7.php
@@ -2701,6 +2701,22 @@
   'homepage' => '',
   'language' => 'is',
 ))
+->values(array(
+  'cid' => '4',
+  'pid' => '0',
+  'nid' => '1',
+  'uid' => '3',
+  'subject' => 'Comment without language',
+  'hostname' => 'drupal7.local',
+  'created' => '1426781880',
+  'changed' => '1426781880',
+  'status' => '1',
+  'thread' => '02/',
+  'name' => 'Bob',
+  'mail' => '',
+  'homepage' => '',
+  'language' => '',
+))
 ->execute();
 $connection->schema()->createTable('contact', array(
   'fields' => array(
@@ -3350,6 +3366,18 @@
   'created' => '1531663925',
   'changed' => '1531663925',
 ))
+->values(array(
+  'entity_type' => 'comment',
+  'entity_id' => '4',
+  'revision_id' => '4',
+  'language' => 'en',
+  'source' => '',
+  'uid' => '1',
+  'status' => '1',
+  'translate' => '0',
+  'created' => '1426781880',
+  'changed' => '1426781880',
+))
 ->values(array(
   'entity_type' => 'taxonomy_term',
   'entity_id' => '4',
@@ -5255,6 +5283,17 @@
   'comment_body_value' => 'This is a comment to an Icelandic translation.',
   'comment_body_format' => 'filtered_html',
 ))
+->values(array(
+  'entity_type' => 'comment',
+  'bundle' => 'comment_node_test_content_type',
+  'deleted' => '0',
+  'entity_id' => '4',
+  'revision_id' => '4',
+  'language' => 'und',
+  'delta' => '0',
+  'comment_body_value' => 'A comment without language (migrated from Drupal 6)',
+  'comment_body_format' => 'filtered_html',
+))
 ->execute();
 $connection->schema()->createTable('field_data_description_field', array(
   'fields' => array(
@@ -6732,6 +6771,16 @@
   'delta' => '0',
   'field_integer_value' => '1',
 ))
+->values(array(
+  'entity_type' => 'comment',
+  'bundle' => 'comment_node_test_content_type',
+  'deleted' => '0',
+  'entity_id' => '4',
+  'revision_id' => '4',
+  'language' => 'en',
+  'delta' => '0',
+  'field_integer_value' => '10',
+))
 ->values(array(
   'entity_type' => 'taxonomy_term',
   'bundle' => 'test_vocabulary',
@@ -9888,6 +9937,17 @@
   'subject_field_value' => 'Comment to IS translation',
   'subject_field_format' => NULL,
 ))
+->values(array(
+  'entity_type' => 'comment',
+  'bundle' => 'comment_node_test_content_type',
+  'deleted' => '0',
+  'entity_id' => '4',
+  'revision_id' => '4',
+  'language' => 'en',
+  'delta' => '0',
+  'subject_field_value' => 'Comment without language',
+  'subject_field_format' => NULL,
+))
 ->execute();
 $connection->schema()->createTable('field_data_taxonomy_forums', array(
   'fields' => array(
@@ -10399,6 +10459,17 @@
   'comment_body_value' => 'This is a comment to an Icelandic translation.',
   'comment_body_format' => 'filtered_html',
 ))
+->values(array(
+  'entity_type' => 'comment',
+  'bundle' => 'comment_node_test_content_type',
+  'deleted' => '0',
+  'entity_id' => '4',
+  'revision_id' => '4',
+  'language' => 'und',
+  'delta' => '0',
+  'comment_body_value' => 'A comment without language (migrated from Drupal 6)',
+  'comment_body_format' => 'filtered_html',
+))
 ->execute();
 $connection->schema()->createTable('field_revision_description_field', array(
   'fields' => array(
@@ -11880,6 +11951,16 @@
   'delta' => '0',
   'field_integer_value' => '99',
 ))
+->values(array(
+  'entity_type' => 'comment',
+  'bundle' => 'comment_node_test_content_type',
+  'deleted' => '0',
+  'entity_id' => '4',
+  'revision_id' => '4',
+  'language' => 'en',
+  'delta' => '0',
+  'field_integer_value' => '10',
+))
 ->values(array(
   'entity_type' => 'taxonomy_term',
   'bundle' => 'test_vocabulary',
@@ -15052,6 +15133,17 @@
   'subject_field_value' => 'Comment to IS translation',
   'subject_field_format' => NULL,
 ))
+->values(array(
+  'entity_type' => 'comment',
+  'bundle' => 'comment_node_test_content_type',
+  'deleted' => '0',
+  'entity_id' => '4',
+  'revision_id' => '4',
+  'language' => 'en',
+  'delta' => '0',
+  'subject_field_value' => 'Comment without language',
+  'subject_field_format' => NULL,
+))
 ->execute();
 $connection->schema()->createTable('field_revision_taxonomy_forums', array(
   'fields' => array(
@@ -40898,11 +40990,11 @@
 ))
 ->values(array(
   'nid' => '1',
-  'cid' => '1',
-  'last_comment_timestamp' => '1421727536',
+  'cid' => '4',
+  'last_comment_timestamp' => '1426781880',
   'last_comment_name' => '',
-  'last_comment_uid' => '1',
-  'comment_count' => '1',
+  'last_comment_uid' => '3',
+  'comment_count' => '2',
 ))
 ->values(array(
   'nid' => '3',
diff --git a/web/core/modules/migrate_drupal_ui/tests/src/Functional/d7/Upgrade7Test.php b/web/core/modules/migrate_drupal_ui/tests/src/Functional/d7/Upgrade7Test.php
index e28dfda653..f5178bc545 100644
--- a/web/core/modules/migrate_drupal_ui/tests/src/Functional/d7/Upgrade7Test.php
+++ b/web/core/modules/migrate_drupal_ui/tests/src/Functional/d7/Upgrade7Test.php
@@ -64,7 +64,7 @@ protected function getEntityCounts() {
       'block' => 25,
       'block_content' => 1,
       'block_content_type' => 1,
-      'comment' => 3,
+      'comment' => 4,
       // The 'standard' profile provides the 'comment' comment type, and the
       // migration creates 6 comment types, one per node type.
       'comment_type' => 7,
@@ -111,7 +111,7 @@ protected function getEntityCounts() {
   protected function getEntityCountsIncremental() {
     $counts = $this->getEntityCounts();
     $counts['block_content'] = 2;
-    $counts['comment'] = 4;
+    $counts['comment'] = 5;
     $counts['file'] = 4;
     $counts['menu_link_content'] = 13;
     $counts['node'] = 7;
diff --git a/web/core/modules/node/node.module b/web/core/modules/node/node.module
index bb4580a587..4899ddce67 100644
--- a/web/core/modules/node/node.module
+++ b/web/core/modules/node/node.module
@@ -648,7 +648,7 @@ function template_preprocess_node(&$variables) {
     unset($variables['elements']['uid']);
   }
 
-  if (!$skip_custom_preprocessing || !$node->getFieldDefinition('title')->isDisplayConfigurable('view')) {
+  if (isset($variables['elements']['title']) && (!$skip_custom_preprocessing || !$node->getFieldDefinition('title')->isDisplayConfigurable('view'))) {
     $variables['label'] = $variables['elements']['title'];
     unset($variables['elements']['title']);
   }
diff --git a/web/core/modules/options/src/Plugin/Field/FieldType/ListFloatItem.php b/web/core/modules/options/src/Plugin/Field/FieldType/ListFloatItem.php
index 416f7dc2ec..855d5b46c3 100644
--- a/web/core/modules/options/src/Plugin/Field/FieldType/ListFloatItem.php
+++ b/web/core/modules/options/src/Plugin/Field/FieldType/ListFloatItem.php
@@ -2,6 +2,7 @@
 
 namespace Drupal\options\Plugin\Field\FieldType;
 
+use Drupal\Core\Field\FieldFilteredMarkup;
 use Drupal\Core\Field\FieldStorageDefinitionInterface;
 use Drupal\Core\TypedData\DataDefinition;
 
@@ -55,7 +56,7 @@ protected function allowedValuesDescription() {
     $description .= '<br/>' . t('The label is optional: if a line contains a single number, it will be used as key and label.');
     $description .= '<br/>' . t('Lists of labels are also accepted (one label per line), only if the field does not hold any values yet. Numeric keys will be automatically generated from the positions in the list.');
     $description .= '</p>';
-    $description .= '<p>' . t('Allowed HTML tags in labels: @tags', ['@tags' => $this->displayAllowedTags()]) . '</p>';
+    $description .= '<p>' . t('Allowed HTML tags in labels: @tags', ['@tags' => FieldFilteredMarkup::displayAllowedTags()]) . '</p>';
     return $description;
   }
 
diff --git a/web/core/modules/options/src/Plugin/Field/FieldType/ListIntegerItem.php b/web/core/modules/options/src/Plugin/Field/FieldType/ListIntegerItem.php
index b8a4204806..8a96007519 100644
--- a/web/core/modules/options/src/Plugin/Field/FieldType/ListIntegerItem.php
+++ b/web/core/modules/options/src/Plugin/Field/FieldType/ListIntegerItem.php
@@ -2,6 +2,7 @@
 
 namespace Drupal\options\Plugin\Field\FieldType;
 
+use Drupal\Core\Field\FieldFilteredMarkup;
 use Drupal\Core\Field\FieldStorageDefinitionInterface;
 use Drupal\Core\TypedData\DataDefinition;
 
@@ -55,7 +56,7 @@ protected function allowedValuesDescription() {
     $description .= '<br/>' . t('The label is optional: if a line contains a single number, it will be used as key and label.');
     $description .= '<br/>' . t('Lists of labels are also accepted (one label per line), only if the field does not hold any values yet. Numeric keys will be automatically generated from the positions in the list.');
     $description .= '</p>';
-    $description .= '<p>' . t('Allowed HTML tags in labels: @tags', ['@tags' => $this->displayAllowedTags()]) . '</p>';
+    $description .= '<p>' . t('Allowed HTML tags in labels: @tags', ['@tags' => FieldFilteredMarkup::displayAllowedTags()]) . '</p>';
     return $description;
   }
 
diff --git a/web/core/modules/options/src/Plugin/Field/FieldType/ListStringItem.php b/web/core/modules/options/src/Plugin/Field/FieldType/ListStringItem.php
index 16e8878d7a..5550307643 100644
--- a/web/core/modules/options/src/Plugin/Field/FieldType/ListStringItem.php
+++ b/web/core/modules/options/src/Plugin/Field/FieldType/ListStringItem.php
@@ -2,6 +2,7 @@
 
 namespace Drupal\options\Plugin\Field\FieldType;
 
+use Drupal\Core\Field\FieldFilteredMarkup;
 use Drupal\Core\Field\FieldStorageDefinitionInterface;
 use Drupal\Core\TypedData\DataDefinition;
 
@@ -56,7 +57,7 @@ protected function allowedValuesDescription() {
     $description .= '<br/>' . t('The key is the stored value. The label will be used in displayed values and edit forms.');
     $description .= '<br/>' . t('The label is optional: if a line contains a single string, it will be used as key and label.');
     $description .= '</p>';
-    $description .= '<p>' . t('Allowed HTML tags in labels: @tags', ['@tags' => $this->displayAllowedTags()]) . '</p>';
+    $description .= '<p>' . t('Allowed HTML tags in labels: @tags', ['@tags' => FieldFilteredMarkup::displayAllowedTags()]) . '</p>';
     return $description;
   }
 
diff --git a/web/core/modules/rdf/rdf.module b/web/core/modules/rdf/rdf.module
index 6dced6adab..56204e1dd6 100644
--- a/web/core/modules/rdf/rdf.module
+++ b/web/core/modules/rdf/rdf.module
@@ -495,7 +495,7 @@ function rdf_preprocess_comment(&$variables) {
   }
   // Adds RDFa markup for the date of the comment.
   $created_mapping = $mapping->getPreparedFieldMapping('created');
-  if (!empty($created_mapping)) {
+  if (!empty($created_mapping) && isset($comment->rdf_data)) {
     // The comment date is precomputed as part of the rdf_data so that it can be
     // cached as part of the entity.
     $date_attributes = $comment->rdf_data['date'];
@@ -567,7 +567,7 @@ function rdf_preprocess_taxonomy_term(&$variables) {
   $term = $variables['term'];
   $mapping = rdf_get_mapping('taxonomy_term', $term->bundle());
   $bundle_mapping = $mapping->getPreparedBundleMapping();
-  $variables['attributes']['about'] = $term->toUrl()->toString();
+  $variables['attributes']['about'] = $variables['url'];
   $variables['attributes']['typeof'] = empty($bundle_mapping['types']) ? NULL : $bundle_mapping['types'];
 
   // Add RDFa markup for the taxonomy term name as metadata, if present.
diff --git a/web/core/modules/rdf/tests/src/Functional/CommentAttributesTest.php b/web/core/modules/rdf/tests/src/Functional/CommentAttributesTest.php
index 2be1e85cc2..5c80dc1815 100644
--- a/web/core/modules/rdf/tests/src/Functional/CommentAttributesTest.php
+++ b/web/core/modules/rdf/tests/src/Functional/CommentAttributesTest.php
@@ -6,6 +6,7 @@
 use Drupal\comment\CommentInterface;
 use Drupal\comment\CommentManagerInterface;
 use Drupal\Tests\comment\Functional\CommentTestBase;
+use Drupal\Tests\rdf\Traits\RdfParsingTrait;
 use Drupal\user\RoleInterface;
 use Drupal\comment\Entity\Comment;
 
@@ -16,6 +17,8 @@
  */
 class CommentAttributesTest extends CommentTestBase {
 
+  use RdfParsingTrait;
+
   /**
    * Modules to enable.
    *
@@ -127,9 +130,7 @@ public function testNumberOfCommentsRdfaMarkup() {
 
     // Tests number of comments in teaser view.
     $this->drupalLogin($this->webUser);
-    $parser = new \EasyRdf_Parser_Rdfa();
-    $graph = new \EasyRdf_Graph();
-    $parser->parse($graph, $this->drupalGet('node'), 'rdfa', $this->baseUri);
+    $this->drupalGet('node');
 
     // Number of comments.
     $expected_value = [
@@ -137,13 +138,10 @@ public function testNumberOfCommentsRdfaMarkup() {
       'value' => 2,
       'datatype' => 'http://www.w3.org/2001/XMLSchema#integer',
     ];
-    $this->assertTrue($graph->hasProperty($this->nodeUri, 'http://rdfs.org/sioc/ns#num_replies', $expected_value), 'Number of comments found in RDF output of teaser view (sioc:num_replies).');
+    $this->assertTrue($this->hasRdfProperty($this->getSession()->getPage()->getContent(), $this->baseUri, $this->nodeUri, 'http://rdfs.org/sioc/ns#num_replies', $expected_value), 'Number of comments found in RDF output of teaser view (sioc:num_replies).');
 
-    // Tests number of comments in full node view, expected value is the same.
-    $parser = new \EasyRdf_Parser_Rdfa();
-    $graph = new \EasyRdf_Graph();
-    $parser->parse($graph, $this->drupalGet('node/' . $this->node->id()), 'rdfa', $this->baseUri);
-    $this->assertTrue($graph->hasProperty($this->nodeUri, 'http://rdfs.org/sioc/ns#num_replies', $expected_value), 'Number of comments found in RDF output of full node view mode (sioc:num_replies).');
+    $this->drupalGet($this->node->toUrl());
+    $this->assertTrue($this->hasRdfProperty($this->getSession()->getPage()->getContent(), $this->baseUri, $this->nodeUri, 'http://rdfs.org/sioc/ns#num_replies', $expected_value), 'Number of comments found in RDF output of full node view mode (sioc:num_replies).');
   }
 
   /**
@@ -176,17 +174,11 @@ public function testCommentRdfaMarkup() {
 
     // Tests comment #1 with access to the user profile.
     $this->drupalLogin($this->webUser);
-    $parser = new \EasyRdf_Parser_Rdfa();
-    $graph = new \EasyRdf_Graph();
-    $parser->parse($graph, $this->drupalGet('node/' . $this->node->id()), 'rdfa', $this->baseUri);
-    $this->_testBasicCommentRdfaMarkup($graph, $comment1);
+    $this->_testBasicCommentRdfaMarkup($comment1);
 
     // Tests comment #1 with no access to the user profile (as anonymous user).
     $this->drupalLogout();
-    $parser = new \EasyRdf_Parser_Rdfa();
-    $graph = new \EasyRdf_Graph();
-    $parser->parse($graph, $this->drupalGet('node/' . $this->node->id()), 'rdfa', $this->baseUri);
-    $this->_testBasicCommentRdfaMarkup($graph, $comment1);
+    $this->_testBasicCommentRdfaMarkup($comment1);
 
     // Posts comment #2 as anonymous user.
     $anonymous_user = [];
@@ -196,17 +188,11 @@ public function testCommentRdfaMarkup() {
     $comment2 = $this->saveComment($this->node->id(), 0, $anonymous_user);
 
     // Tests comment #2 as anonymous user.
-    $parser = new \EasyRdf_Parser_Rdfa();
-    $graph = new \EasyRdf_Graph();
-    $parser->parse($graph, $this->drupalGet('node/' . $this->node->id()), 'rdfa', $this->baseUri);
-    $this->_testBasicCommentRdfaMarkup($graph, $comment2, $anonymous_user);
+    $this->_testBasicCommentRdfaMarkup($comment2, $anonymous_user);
 
     // Tests comment #2 as logged in user.
     $this->drupalLogin($this->webUser);
-    $parser = new \EasyRdf_Parser_Rdfa();
-    $graph = new \EasyRdf_Graph();
-    $parser->parse($graph, $this->drupalGet('node/' . $this->node->id()), 'rdfa', $this->baseUri);
-    $this->_testBasicCommentRdfaMarkup($graph, $comment2, $anonymous_user);
+    $this->_testBasicCommentRdfaMarkup($comment2, $anonymous_user);
   }
 
   /**
@@ -223,28 +209,25 @@ public function testCommentReplyOfRdfaMarkup() {
     $comment_2 = $this->saveComment($this->node->id(), $this->webUser->id(), NULL, $comment_1->id());
     $comment_2_uri = $comment_2->toUrl('canonical', ['absolute' => TRUE])->toString();
 
-    $parser = new \EasyRdf_Parser_Rdfa();
-    $graph = new \EasyRdf_Graph();
-    $parser->parse($graph, $this->drupalGet('node/' . $this->node->id()), 'rdfa', $this->baseUri);
-
     // Tests the reply_of relationship of a first level comment.
+    $this->drupalGet($this->node->toUrl());
     $expected_value = [
       'type' => 'uri',
       'value' => $this->nodeUri,
     ];
-    $this->assertTrue($graph->hasProperty($comment_1_uri, 'http://rdfs.org/sioc/ns#reply_of', $expected_value), 'Comment relation to its node found in RDF output (sioc:reply_of).');
+    $this->assertTrue($this->hasRdfProperty($this->getSession()->getPage()->getContent(), $this->baseUri, $comment_1_uri, 'http://rdfs.org/sioc/ns#reply_of', $expected_value), 'Comment relation to its node found in RDF output (sioc:reply_of).');
 
     // Tests the reply_of relationship of a second level comment.
     $expected_value = [
       'type' => 'uri',
       'value' => $this->nodeUri,
     ];
-    $this->assertTrue($graph->hasProperty($comment_2_uri, 'http://rdfs.org/sioc/ns#reply_of', $expected_value), 'Comment relation to its node found in RDF output (sioc:reply_of).');
+    $this->assertTrue($this->hasRdfProperty($this->getSession()->getPage()->getContent(), $this->baseUri, $comment_2_uri, 'http://rdfs.org/sioc/ns#reply_of', $expected_value), 'Comment relation to its node found in RDF output (sioc:reply_of).');
     $expected_value = [
       'type' => 'uri',
       'value' => $comment_1_uri,
     ];
-    $this->assertTrue($graph->hasProperty($comment_2_uri, 'http://rdfs.org/sioc/ns#reply_of', $expected_value), 'Comment relation to its parent comment found in RDF output (sioc:reply_of).');
+    $this->assertTrue($this->hasRdfProperty($this->getSession()->getPage()->getContent(), $this->baseUri, $comment_2_uri, 'http://rdfs.org/sioc/ns#reply_of', $expected_value), 'Comment relation to its parent comment found in RDF output (sioc:reply_of).');
   }
 
   /**
@@ -257,7 +240,8 @@ public function testCommentReplyOfRdfaMarkup() {
    * @param $account
    *   An array containing information about an anonymous user.
    */
-  public function _testBasicCommentRdfaMarkup($graph, CommentInterface $comment, $account = []) {
+  public function _testBasicCommentRdfaMarkup(CommentInterface $comment, $account = []) {
+    $this->drupalGet($this->node->toUrl());
     $comment_uri = $comment->toUrl('canonical', ['absolute' => TRUE])->toString();
 
     // Comment type.
@@ -265,13 +249,13 @@ public function _testBasicCommentRdfaMarkup($graph, CommentInterface $comment, $
       'type' => 'uri',
       'value' => 'http://rdfs.org/sioc/types#Comment',
     ];
-    $this->assertTrue($graph->hasProperty($comment_uri, 'http://www.w3.org/1999/02/22-rdf-syntax-ns#type', $expected_value), 'Comment type found in RDF output (sioct:Comment).');
+    $this->assertTrue($this->hasRdfProperty($this->getSession()->getPage()->getContent(), $this->baseUri, $comment_uri, 'http://www.w3.org/1999/02/22-rdf-syntax-ns#type', $expected_value), 'Comment type found in RDF output (sioct:Comment).');
     // Comment type.
     $expected_value = [
       'type' => 'uri',
       'value' => 'http://rdfs.org/sioc/ns#Post',
     ];
-    $this->assertTrue($graph->hasProperty($comment_uri, 'http://www.w3.org/1999/02/22-rdf-syntax-ns#type', $expected_value), 'Comment type found in RDF output (sioc:Post).');
+    $this->assertTrue($this->hasRdfProperty($this->getSession()->getPage()->getContent(), $this->baseUri, $comment_uri, 'http://www.w3.org/1999/02/22-rdf-syntax-ns#type', $expected_value), 'Comment type found in RDF output (sioc:Post).');
 
     // Comment title.
     $expected_value = [
@@ -279,7 +263,7 @@ public function _testBasicCommentRdfaMarkup($graph, CommentInterface $comment, $
       'value' => $comment->getSubject(),
       'lang' => 'en',
     ];
-    $this->assertTrue($graph->hasProperty($comment_uri, 'http://purl.org/dc/terms/title', $expected_value), 'Comment subject found in RDF output (dc:title).');
+    $this->assertTrue($this->hasRdfProperty($this->getSession()->getPage()->getContent(), $this->baseUri, $comment_uri, 'http://purl.org/dc/terms/title', $expected_value), 'Comment subject found in RDF output (dc:title).');
 
     // Comment date.
     $expected_value = [
@@ -287,14 +271,14 @@ public function _testBasicCommentRdfaMarkup($graph, CommentInterface $comment, $
       'value' => $this->container->get('date.formatter')->format($comment->getCreatedTime(), 'custom', 'c', 'UTC'),
       'datatype' => 'http://www.w3.org/2001/XMLSchema#dateTime',
     ];
-    $this->assertTrue($graph->hasProperty($comment_uri, 'http://purl.org/dc/terms/date', $expected_value), 'Comment date found in RDF output (dc:date).');
+    $this->assertTrue($this->hasRdfProperty($this->getSession()->getPage()->getContent(), $this->baseUri, $comment_uri, 'http://purl.org/dc/terms/date', $expected_value), 'Comment date found in RDF output (dc:date).');
     // Comment date.
     $expected_value = [
       'type' => 'literal',
       'value' => $this->container->get('date.formatter')->format($comment->getCreatedTime(), 'custom', 'c', 'UTC'),
       'datatype' => 'http://www.w3.org/2001/XMLSchema#dateTime',
     ];
-    $this->assertTrue($graph->hasProperty($comment_uri, 'http://purl.org/dc/terms/created', $expected_value), 'Comment date found in RDF output (dc:created).');
+    $this->assertTrue($this->hasRdfProperty($this->getSession()->getPage()->getContent(), $this->baseUri, $comment_uri, 'http://purl.org/dc/terms/created', $expected_value), 'Comment date found in RDF output (dc:created).');
 
     // Comment body.
     $expected_value = [
@@ -302,27 +286,20 @@ public function _testBasicCommentRdfaMarkup($graph, CommentInterface $comment, $
       'value' => $comment->comment_body->value . "\n",
       'lang' => 'en',
     ];
-    $this->assertTrue($graph->hasProperty($comment_uri, 'http://purl.org/rss/1.0/modules/content/encoded', $expected_value), 'Comment body found in RDF output (content:encoded).');
+    $this->assertTrue($this->hasRdfProperty($this->getSession()->getPage()->getContent(), $this->baseUri, $comment_uri, 'http://purl.org/rss/1.0/modules/content/encoded', $expected_value), 'Comment body found in RDF output (content:encoded).');
 
     // The comment author can be a registered user or an anonymous user.
     if ($comment->getOwnerId() > 0) {
-      $author_uri = Url::fromRoute('entity.user.canonical', ['user' => $comment->getOwnerId()], ['absolute' => TRUE])->toString();
       // Comment relation to author.
       $expected_value = [
         'type' => 'uri',
-        'value' => $author_uri,
+        'value' => Url::fromRoute('entity.user.canonical', ['user' => $comment->getOwnerId()], ['absolute' => TRUE])->toString(),
       ];
-      $this->assertTrue($graph->hasProperty($comment_uri, 'http://rdfs.org/sioc/ns#has_creator', $expected_value), 'Comment relation to author found in RDF output (sioc:has_creator).');
+      $this->assertTrue($this->hasRdfProperty($this->getSession()->getPage()->getContent(), $this->baseUri, $comment_uri, 'http://rdfs.org/sioc/ns#has_creator', $expected_value), 'Comment relation to author found in RDF output (sioc:has_creator).');
     }
     else {
       // The author is expected to be a blank node.
-      $author_uri = $graph->get($comment_uri, '<http://rdfs.org/sioc/ns#has_creator>');
-      if ($author_uri instanceof \EasyRdf_Resource) {
-        $this->assertTrue($author_uri->isBnode(), 'Comment relation to author found in RDF output (sioc:has_creator) and author is blank node.');
-      }
-      else {
-        $this->fail('Comment relation to author found in RDF output (sioc:has_creator).');
-      }
+      $this->assertTrue($this->rdfElementIsBlankNode($this->getSession()->getPage()->getContent(), $this->baseUri, $comment_uri, '<http://rdfs.org/sioc/ns#has_creator>'));
     }
 
     // Author name.
@@ -331,7 +308,7 @@ public function _testBasicCommentRdfaMarkup($graph, CommentInterface $comment, $
       'type' => 'literal',
       'value' => $name,
     ];
-    $this->assertTrue($graph->hasProperty($author_uri, 'http://xmlns.com/foaf/0.1/name', $expected_value), 'Comment author name found in RDF output (foaf:name).');
+    $this->assertTrue($this->hasRdfChildProperty($this->getSession()->getPage()->getContent(), $this->baseUri, $comment_uri, '<http://rdfs.org/sioc/ns#has_creator>', 'http://xmlns.com/foaf/0.1/name', $expected_value), 'Comment author name found in RDF output (foaf:name).');
 
     // Comment author homepage (only for anonymous authors).
     if ($comment->getOwnerId() == 0) {
@@ -339,7 +316,7 @@ public function _testBasicCommentRdfaMarkup($graph, CommentInterface $comment, $
         'type' => 'uri',
         'value' => 'http://example.org/',
       ];
-      $this->assertTrue($graph->hasProperty($author_uri, 'http://xmlns.com/foaf/0.1/page', $expected_value), 'Comment author link found in RDF output (foaf:page).');
+      $this->assertTrue($this->hasRdfChildProperty($this->getSession()->getPage()->getContent(), $this->baseUri, $comment_uri, '<http://rdfs.org/sioc/ns#has_creator>', 'http://xmlns.com/foaf/0.1/page', $expected_value), 'Comment author link found in RDF output (foaf:page).');
     }
   }
 
diff --git a/web/core/modules/rdf/tests/src/Functional/EntityReferenceFieldAttributesTest.php b/web/core/modules/rdf/tests/src/Functional/EntityReferenceFieldAttributesTest.php
index 8c577c1e12..ce76ba3160 100644
--- a/web/core/modules/rdf/tests/src/Functional/EntityReferenceFieldAttributesTest.php
+++ b/web/core/modules/rdf/tests/src/Functional/EntityReferenceFieldAttributesTest.php
@@ -4,6 +4,7 @@
 
 use Drupal\Core\Url;
 use Drupal\Core\Field\FieldStorageDefinitionInterface;
+use Drupal\Tests\rdf\Traits\RdfParsingTrait;
 use Drupal\Tests\taxonomy\Functional\TaxonomyTestBase;
 
 /**
@@ -13,6 +14,8 @@
  */
 class EntityReferenceFieldAttributesTest extends TaxonomyTestBase {
 
+  use RdfParsingTrait;
+
   /**
    * Modules to enable.
    *
@@ -25,6 +28,13 @@ class EntityReferenceFieldAttributesTest extends TaxonomyTestBase {
    */
   protected $defaultTheme = 'stark';
 
+  /**
+   * URI of the front page of the Drupal site.
+   *
+   * @var string
+   */
+  protected $baseUri;
+
   /**
    * The name of the taxonomy term reference field used in the test.
    *
@@ -78,6 +88,9 @@ protected function setUp() {
       ->setBundleMapping(['types' => ['skos:Concept']])
       ->setFieldMapping('name', ['properties' => ['rdfs:label']])
       ->save();
+
+    // Prepares commonly used URIs.
+    $this->baseUri = Url::fromRoute('<front>', [], ['absolute' => TRUE])->toString();
   }
 
   /**
@@ -112,24 +125,18 @@ public function testNodeTeaser() {
       ->view($node, 'teaser');
     $html = \Drupal::service('renderer')->renderRoot($node_render_array);
 
-    // Parse the teaser.
-    $parser = new \EasyRdf_Parser_Rdfa();
-    $graph = new \EasyRdf_Graph();
-    $base_uri = Url::fromRoute('<front>', [], ['absolute' => TRUE])->toString();
-    $parser->parse($graph, $html, 'rdfa', $base_uri);
-
     // Node relations to taxonomy terms.
     $node_uri = $node->toUrl('canonical', ['absolute' => TRUE])->toString();
     $expected_value = [
       'type' => 'uri',
       'value' => $taxonomy_term_1_uri,
     ];
-    $this->assertTrue($graph->hasProperty($node_uri, 'http://purl.org/dc/terms/subject', $expected_value), 'Node to term relation found in RDF output (dc:subject).');
+    $this->assertTrue($this->hasRdfProperty($html, $this->baseUri, $node_uri, 'http://purl.org/dc/terms/subject', $expected_value), 'Node to term relation found in RDF output (dc:subject).');
     $expected_value = [
       'type' => 'uri',
       'value' => $taxonomy_term_2_uri,
     ];
-    $this->assertTrue($graph->hasProperty($node_uri, 'http://purl.org/dc/terms/subject', $expected_value), 'Node to term relation found in RDF output (dc:subject).');
+    $this->assertTrue($this->hasRdfProperty($html, $this->baseUri, $node_uri, 'http://purl.org/dc/terms/subject', $expected_value), 'Node to term relation found in RDF output (dc:subject).');
     // Taxonomy terms triples.
     // Term 1.
     $expected_value = [
diff --git a/web/core/modules/rdf/tests/src/Functional/FileFieldAttributesTest.php b/web/core/modules/rdf/tests/src/Functional/FileFieldAttributesTest.php
index fb8eb96c7e..e0d7da1045 100644
--- a/web/core/modules/rdf/tests/src/Functional/FileFieldAttributesTest.php
+++ b/web/core/modules/rdf/tests/src/Functional/FileFieldAttributesTest.php
@@ -5,6 +5,7 @@
 use Drupal\Core\Url;
 use Drupal\Tests\file\Functional\FileFieldTestBase;
 use Drupal\file\Entity\File;
+use Drupal\Tests\rdf\Traits\RdfParsingTrait;
 
 /**
  * Tests the RDFa markup of filefields.
@@ -13,6 +14,8 @@
  */
 class FileFieldAttributesTest extends FileFieldTestBase {
 
+  use RdfParsingTrait;
+
   /**
    * Modules to enable.
    *
@@ -25,6 +28,13 @@ class FileFieldAttributesTest extends FileFieldTestBase {
    */
   protected $defaultTheme = 'stark';
 
+  /**
+   * URI of the front page of the Drupal site.
+   *
+   * @var string
+   */
+  protected $baseUri;
+
   /**
    * The name of the file field used in the test.
    *
@@ -72,6 +82,9 @@ protected function setUp() {
     $node_storage->resetCache([$nid]);
     $this->node = $node_storage->load($nid);
     $this->file = File::load($this->node->{$this->fieldName}->target_id);
+
+    // Prepares commonly used URIs.
+    $this->baseUri = Url::fromRoute('<front>', [], ['absolute' => TRUE])->toString();
   }
 
   /**
@@ -87,12 +100,6 @@ public function testNodeTeaser() {
       ->view($this->node, 'teaser');
     $html = \Drupal::service('renderer')->renderRoot($node_render_array);
 
-    // Parses front page where the node is displayed in its teaser form.
-    $parser = new \EasyRdf_Parser_Rdfa();
-    $graph = new \EasyRdf_Graph();
-    $base_uri = Url::fromRoute('<front>', [], ['absolute' => TRUE])->toString();
-    $parser->parse($graph, $html, 'rdfa', $base_uri);
-
     $node_uri = $this->node->toUrl('canonical', ['absolute' => TRUE])->toString();
     $file_uri = file_create_url($this->file->getFileUri());
 
@@ -101,7 +108,7 @@ public function testNodeTeaser() {
       'type' => 'uri',
       'value' => $file_uri,
     ];
-    $this->assertTrue($graph->hasProperty($node_uri, 'http://www.w3.org/2000/01/rdf-schema#seeAlso', $expected_value), 'Node to file relation found in RDF output (rdfs:seeAlso).');
+    $this->assertTrue($this->hasRdfProperty($html, $this->baseUri, $node_uri, 'http://www.w3.org/2000/01/rdf-schema#seeAlso', $expected_value), 'Node to file relation found in RDF output (rdfs:seeAlso).');
     $this->drupalGet('node');
   }
 
diff --git a/web/core/modules/rdf/tests/src/Functional/ImageFieldAttributesTest.php b/web/core/modules/rdf/tests/src/Functional/ImageFieldAttributesTest.php
index bd7eab7d7e..faa55de869 100644
--- a/web/core/modules/rdf/tests/src/Functional/ImageFieldAttributesTest.php
+++ b/web/core/modules/rdf/tests/src/Functional/ImageFieldAttributesTest.php
@@ -7,6 +7,7 @@
 use Drupal\Tests\image\Functional\ImageFieldTestBase;
 use Drupal\node\Entity\Node;
 use Drupal\file\Entity\File;
+use Drupal\Tests\rdf\Traits\RdfParsingTrait;
 use Drupal\Tests\TestFileCreationTrait;
 
 /**
@@ -16,6 +17,8 @@
  */
 class ImageFieldAttributesTest extends ImageFieldTestBase {
 
+  use RdfParsingTrait;
+
   use TestFileCreationTrait {
     getTestFiles as drupalGetTestFiles;
   }
@@ -32,6 +35,13 @@ class ImageFieldAttributesTest extends ImageFieldTestBase {
    */
   protected $defaultTheme = 'stark';
 
+  /**
+   * URI of the front page of the Drupal site.
+   *
+   * @var string
+   */
+  protected $baseUri;
+
   /**
    * The name of the image field used in the test.
    *
@@ -77,6 +87,9 @@ protected function setUp() {
     $nid = $this->uploadNodeImage($image, $this->fieldName, 'article', $this->randomMachineName());
     $this->node = Node::load($nid);
     $this->file = File::load($this->node->{$this->fieldName}->target_id);
+
+    // Prepares commonly used URIs.
+    $this->baseUri = Url::fromRoute('<front>', [], ['absolute' => TRUE])->toString();
   }
 
   /**
@@ -99,12 +112,6 @@ public function testNodeTeaser() {
       ->view($this->node, 'teaser');
     $html = \Drupal::service('renderer')->renderRoot($node_render_array);
 
-    // Parse the teaser.
-    $parser = new \EasyRdf_Parser_Rdfa();
-    $graph = new \EasyRdf_Graph();
-    $base_uri = Url::fromRoute('<front>', [], ['absolute' => TRUE])->toString();
-    $parser->parse($graph, $html, 'rdfa', $base_uri);
-
     // Construct the node and image URIs for testing.
     $node_uri = $this->node->toUrl('canonical', ['absolute' => TRUE])->toString();
     $image_uri = ImageStyle::load('medium')->buildUrl($this->file->getFileUri());
@@ -114,14 +121,14 @@ public function testNodeTeaser() {
       'type' => 'uri',
       'value' => $image_uri,
     ];
-    $this->assertTrue($graph->hasProperty($node_uri, 'http://ogp.me/ns#image', $expected_value), 'Node to file relation found in RDF output (og:image).');
+    $this->assertTrue($this->hasRdfProperty($html, $this->baseUri, $node_uri, 'http://ogp.me/ns#image', $expected_value), 'Node to file relation found in RDF output (og:image).');
 
     // Test image type.
     $expected_value = [
       'type' => 'uri',
       'value' => 'http://xmlns.com/foaf/0.1/Image',
     ];
-    $this->assertTrue($graph->hasProperty($image_uri, 'http://www.w3.org/1999/02/22-rdf-syntax-ns#type', $expected_value), 'Image type found in RDF output (foaf:Image).');
+    $this->assertTrue($this->hasRdfProperty($html, $this->baseUri, $image_uri, 'http://www.w3.org/1999/02/22-rdf-syntax-ns#type', $expected_value), 'Term type found in RDF output (skos:Concept).');
   }
 
 }
diff --git a/web/core/modules/rdf/tests/src/Functional/NodeAttributesTest.php b/web/core/modules/rdf/tests/src/Functional/NodeAttributesTest.php
index 00a4a405c4..cf44699fab 100644
--- a/web/core/modules/rdf/tests/src/Functional/NodeAttributesTest.php
+++ b/web/core/modules/rdf/tests/src/Functional/NodeAttributesTest.php
@@ -4,6 +4,7 @@
 
 use Drupal\Core\Url;
 use Drupal\Tests\node\Functional\NodeTestBase;
+use Drupal\Tests\rdf\Traits\RdfParsingTrait;
 
 /**
  * Tests the RDFa markup of Nodes.
@@ -12,6 +13,8 @@
  */
 class NodeAttributesTest extends NodeTestBase {
 
+  use RdfParsingTrait;
+
   /**
    * Modules to enable.
    *
@@ -24,6 +27,13 @@ class NodeAttributesTest extends NodeTestBase {
    */
   protected $defaultTheme = 'stark';
 
+  /**
+   * URI of the front page of the Drupal site.
+   *
+   * @var string
+   */
+  protected $baseUri;
+
   protected function setUp() {
     parent::setUp();
 
@@ -40,6 +50,8 @@ protected function setUp() {
         'datatype_callback' => ['callable' => 'Drupal\rdf\CommonDataConverter::dateIso8601Value'],
       ])
       ->save();
+    // Prepares commonly used URIs.
+    $this->baseUri = Url::fromRoute('<front>', [], ['absolute' => TRUE])->toString();
   }
 
   /**
@@ -52,49 +64,43 @@ public function testNodeAttributes() {
       'type' => 'article',
       'title' => $this->randomMachineName(8) . "'",
     ]);
-
     $node_uri = $node->toUrl('canonical', ['absolute' => TRUE])->toString();
-    $base_uri = Url::fromRoute('<front>', [], ['absolute' => TRUE])->toString();
-
-    // Parses front page where the node is displayed in its teaser form.
-    $parser = new \EasyRdf_Parser_Rdfa();
-    $graph = new \EasyRdf_Graph();
-    $parser->parse($graph, $this->drupalGet('node/' . $node->id()), 'rdfa', $base_uri);
 
+    $this->drupalGet($node->toUrl());
     // Inspects RDF graph output.
     // Node type.
     $expected_value = [
       'type' => 'uri',
       'value' => 'http://rdfs.org/sioc/ns#Item',
     ];
-    $this->assertTrue($graph->hasProperty($node_uri, 'http://www.w3.org/1999/02/22-rdf-syntax-ns#type', $expected_value), 'Node type found in RDF output (sioc:Item).');
+    $this->assertTrue($this->hasRdfProperty($this->getSession()->getPage()->getContent(), $this->baseUri, $node_uri, 'http://www.w3.org/1999/02/22-rdf-syntax-ns#type', $expected_value), 'Node type found in RDF output (sioc:Item).');
     // Node type.
     $expected_value = [
       'type' => 'uri',
       'value' => 'http://xmlns.com/foaf/0.1/Document',
     ];
-    $this->assertTrue($graph->hasProperty($node_uri, 'http://www.w3.org/1999/02/22-rdf-syntax-ns#type', $expected_value), 'Node type found in RDF output (foaf:Document).');
+    $this->assertTrue($this->hasRdfProperty($this->getSession()->getPage()->getContent(), $this->baseUri, $node_uri, 'http://www.w3.org/1999/02/22-rdf-syntax-ns#type', $expected_value), 'Node type found in RDF output (foaf:Document).');
     // Node title.
     $expected_value = [
       'type' => 'literal',
       'value' => $node->getTitle(),
       'lang' => 'en',
     ];
-    $this->assertTrue($graph->hasProperty($node_uri, 'http://purl.org/dc/terms/title', $expected_value), 'Node title found in RDF output (dc:title).');
+    $this->assertTrue($this->hasRdfProperty($this->getSession()->getPage()->getContent(), $this->baseUri, $node_uri, 'http://purl.org/dc/terms/title', $expected_value), 'Node title found in RDF output (dc:title).');
     // Node date (date format must be UTC).
     $expected_value = [
       'type' => 'literal',
       'value' => \Drupal::service('date.formatter')->format($node->getCreatedTime(), 'custom', 'c', 'UTC'),
       'datatype' => 'http://www.w3.org/2001/XMLSchema#dateTime',
     ];
-    $this->assertTrue($graph->hasProperty($node_uri, 'http://purl.org/dc/terms/date', $expected_value), 'Node date found in RDF output (dc:date).');
+    $this->assertTrue($this->hasRdfProperty($this->getSession()->getPage()->getContent(), $this->baseUri, $node_uri, 'http://purl.org/dc/terms/date', $expected_value), 'Node date found in RDF output (dc:date).');
     // Node date (date format must be UTC).
     $expected_value = [
       'type' => 'literal',
       'value' => \Drupal::service('date.formatter')->format($node->getCreatedTime(), 'custom', 'c', 'UTC'),
       'datatype' => 'http://www.w3.org/2001/XMLSchema#dateTime',
     ];
-    $this->assertTrue($graph->hasProperty($node_uri, 'http://purl.org/dc/terms/created', $expected_value), 'Node date found in RDF output (dc:created).');
+    $this->assertTrue($this->hasRdfProperty($this->getSession()->getPage()->getContent(), $this->baseUri, $node_uri, 'http://purl.org/dc/terms/created', $expected_value), 'Node date found in RDF output (dc:created).');
   }
 
 }
diff --git a/web/core/modules/rdf/tests/src/Functional/StandardProfileTest.php b/web/core/modules/rdf/tests/src/Functional/StandardProfileTest.php
index 93d78a93a4..279e92f549 100644
--- a/web/core/modules/rdf/tests/src/Functional/StandardProfileTest.php
+++ b/web/core/modules/rdf/tests/src/Functional/StandardProfileTest.php
@@ -10,6 +10,7 @@
 use Drupal\Tests\BrowserTestBase;
 use Drupal\comment\Entity\Comment;
 use Drupal\taxonomy\Entity\Term;
+use Drupal\Tests\rdf\Traits\RdfParsingTrait;
 
 /**
  * Tests the RDF mappings and RDFa markup of the standard profile.
@@ -18,6 +19,8 @@
  */
 class StandardProfileTest extends BrowserTestBase {
 
+  use RdfParsingTrait;
+
   /**
    * {@inheritdoc}
    */
@@ -206,10 +209,11 @@ public function testRdfaOutput() {
    */
   protected function doFrontPageRdfaTests() {
     // Feed the HTML into the parser.
-    $graph = $this->getRdfGraph(Url::fromRoute('<front>'));
+    $this->drupalGet(Url::fromRoute('<front>'));
 
     // Ensure that both articles are listed.
-    $this->assertEqual(2, count($graph->allOfType('http://schema.org/Article')), 'Two articles found on front page.');
+    // $this->assertEqual(2, count($this->getRdfGraph(Url::fromRoute('<front>'), $this->baseUri)->allOfType('http://schema.org/Article')), 'Two articles found on front page.');
+    $this->assertEqual(2, $this->getElementByRdfTypeCount(Url::fromRoute('<front>'), $this->baseUri, 'http://schema.org/Article'), 'Two articles found on front page.');
 
     // Test interaction count.
     $expected_value = [
@@ -217,23 +221,21 @@ protected function doFrontPageRdfaTests() {
       'value' => 'UserComments:1',
       'lang' => 'en',
     ];
-    $this->assertTrue($graph->hasProperty($this->articleUri, 'http://schema.org/interactionCount', $expected_value), "Teaser comment count was found (schema:interactionCount).");
+    $this->assertTrue($this->hasRdfProperty($this->getSession()->getPage()->getContent(), $this->baseUri, $this->articleUri, 'http://schema.org/interactionCount', $expected_value), 'Teaser comment count was found (schema:interactionCount).');
 
     // Test the properties that are common between pages and articles and are
     // displayed in full and teaser mode.
-    $this->assertRdfaCommonNodeProperties($graph, $this->article, "Teaser");
+    $this->assertRdfaCommonNodeProperties($this->article, "Teaser");
     // Test properties that are displayed in both teaser and full mode.
-    $this->assertRdfaArticleProperties($graph, "Teaser");
+    $this->assertRdfaArticleProperties("Teaser");
 
     // @todo Once the image points to the original instead of the processed
     //   image, move this to testArticleProperties().
-    $image_file = $this->article->get('field_image')->entity;
-    $image_uri = ImageStyle::load('medium')->buildUrl($image_file->getFileUri());
     $expected_value = [
       'type' => 'uri',
-      'value' => $image_uri,
+      'value' => $this->imageUri,
     ];
-    $this->assertTrue($graph->hasProperty($this->articleUri, 'http://schema.org/image', $expected_value), "Teaser image was found (schema:image).");
+    $this->assertTrue($this->hasRdfProperty($this->getSession()->getPage()->getContent(), $this->baseUri, $this->articleUri, 'http://schema.org/image', $expected_value), 'Teaser image was found (schema:image).');
   }
 
   /**
@@ -245,25 +247,26 @@ protected function doFrontPageRdfaTests() {
    */
   protected function doArticleRdfaTests() {
     // Feed the HTML into the parser.
-    $graph = $this->getRdfGraph($this->article->toUrl());
+    $this->drupalGet($this->article->toUrl());
 
     // Type.
-    $this->assertEqual($graph->type($this->articleUri), 'schema:Article', 'Article type was found (schema:Article).');
+    $this->assertEqual($this->getElementRdfType($this->article->toUrl(), $this->baseUri, $this->articleUri), 'schema:Article', 'Article type was found (schema:Article).');
 
     // Test the properties that are common between pages and articles.
-    $this->assertRdfaCommonNodeProperties($graph, $this->article, "Article");
+    $this->assertRdfaCommonNodeProperties($this->article, "Article");
     // Test properties that are displayed in both teaser and full mode.
-    $this->assertRdfaArticleProperties($graph, "Article");
+    $this->assertRdfaArticleProperties("Article");
     // Test the comment properties displayed on articles.
-    $this->assertRdfaNodeCommentProperties($graph);
+    $this->assertRdfaNodeCommentProperties();
 
     // @todo Once the image points to the original instead of the processed
     //   image, move this to testArticleProperties().
+
     $expected_value = [
       'type' => 'uri',
       'value' => $this->imageUri,
     ];
-    $this->assertTrue($graph->hasProperty($this->articleUri, 'http://schema.org/image', $expected_value), "Article image was found (schema:image).");
+    $this->assertTrue($this->hasRdfProperty($this->getSession()->getPage()->getContent(), $this->baseUri, $this->articleUri, 'http://schema.org/image', $expected_value), 'Teaser image was found (schema:image).');
   }
 
   /**
@@ -281,14 +284,11 @@ protected function doPageRdfaTests() {
     $node_type->setDisplaySubmitted(TRUE);
     $node_type->save();
 
-    // Feed the HTML into the parser.
-    $graph = $this->getRdfGraph($this->page->toUrl());
-
     // Type.
-    $this->assertEqual($graph->type($this->pageUri), 'schema:WebPage', 'Page type was found (schema:WebPage).');
+    $this->assertEqual($this->getElementRdfType($this->page->toUrl(), $this->baseUri, $this->pageUri), 'schema:WebPage', 'Page type was found (schema:WebPage).');
 
     // Test the properties that are common between pages and articles.
-    $this->assertRdfaCommonNodeProperties($graph, $this->page, "Page");
+    $this->assertRdfaCommonNodeProperties($this->page, "Page");
   }
 
   /**
@@ -297,18 +297,15 @@ protected function doPageRdfaTests() {
   protected function doUserRdfaTests() {
     $this->drupalLogin($this->rootUser);
 
-    // Feed the HTML into the parser.
-    $graph = $this->getRdfGraph($this->adminUser->toUrl());
-
     // User type.
-    $this->assertEqual($graph->type($this->authorUri), 'schema:Person', "User type was found (schema:Person) on user page.");
+    $this->assertEqual($this->getElementRdfType($this->adminUser->toUrl(), $this->baseUri, $this->authorUri), 'schema:Person', 'User type was found (schema:Person) on user page.');
 
     // User name.
     $expected_value = [
       'type' => 'literal',
       'value' => $this->adminUser->label(),
     ];
-    $this->assertTrue($graph->hasProperty($this->authorUri, 'http://schema.org/name', $expected_value), "User name was found (schema:name) on user page.");
+    $this->assertTrue($this->hasRdfProperty($this->getSession()->getPage()->getContent(), $this->baseUri, $this->authorUri, 'http://schema.org/name', $expected_value), 'User name was found (schema:name) on user page.');
 
     $this->drupalLogout();
   }
@@ -317,11 +314,9 @@ protected function doUserRdfaTests() {
    * Tests that term data is exposed on term page.
    */
   protected function doTermRdfaTests() {
-    // Feed the HTML into the parser.
-    $graph = $this->getRdfGraph($this->term->toUrl());
 
     // Term type.
-    $this->assertEqual($graph->type($this->termUri), 'schema:Thing', "Term type was found (schema:Thing) on term page.");
+    $this->assertEqual($this->getElementRdfType($this->term->toUrl(), $this->baseUri, $this->termUri), 'schema:Thing', 'Term type was found (schema:Thing) on term page.');
 
     // Term name.
     $expected_value = [
@@ -329,8 +324,7 @@ protected function doTermRdfaTests() {
       'value' => $this->term->getName(),
       'lang' => 'en',
     ];
-    $this->assertTrue($graph->hasProperty($this->termUri, 'http://schema.org/name', $expected_value), "Term name was found (schema:name) on term page.");
-
+    $this->assertTrue($this->hasRdfProperty($this->getSession()->getPage()->getContent(), $this->baseUri, $this->termUri, 'http://schema.org/name', $expected_value), 'Term name was found (schema:name) on term page.');
     // @todo Add test for term description once it is a field:
     //   https://www.drupal.org/node/569434.
   }
@@ -338,14 +332,15 @@ protected function doTermRdfaTests() {
   /**
    * Tests output for properties held in common between articles and pages.
    *
-   * @param \EasyRdf_Graph $graph
-   *   The EasyRDF graph object.
    * @param \Drupal\node\NodeInterface $node
    *   The node being displayed.
    * @param string $message_prefix
    *   The word to use in the test assertion message.
+   *
+   * @throws \Drupal\Core\Entity\EntityMalformedException
    */
-  protected function assertRdfaCommonNodeProperties($graph, NodeInterface $node, $message_prefix) {
+  protected function assertRdfaCommonNodeProperties(NodeInterface $node, $message_prefix) {
+    $this->drupalGet($node->toUrl());
     $uri = $node->toUrl('canonical', ['absolute' => TRUE])->toString();
 
     // Title.
@@ -354,7 +349,7 @@ protected function assertRdfaCommonNodeProperties($graph, NodeInterface $node, $
       'value' => $node->get('title')->value,
       'lang' => 'en',
     ];
-    $this->assertTrue($graph->hasProperty($uri, 'http://schema.org/name', $expected_value), "$message_prefix title was found (schema:name).");
+    $this->assertTrue($this->hasRdfProperty($this->getSession()->getPage()->getContent(), $this->baseUri, $uri, 'http://schema.org/name', $expected_value), "$message_prefix title was found (schema:name).");
 
     // Created date.
     $expected_value = [
@@ -362,7 +357,7 @@ protected function assertRdfaCommonNodeProperties($graph, NodeInterface $node, $
       'value' => $this->container->get('date.formatter')->format($node->get('created')->value, 'custom', 'c', 'UTC'),
       'lang' => 'en',
     ];
-    $this->assertTrue($graph->hasProperty($uri, 'http://schema.org/dateCreated', $expected_value), "$message_prefix created date was found (schema:dateCreated) in teaser.");
+    $this->assertTrue($this->hasRdfProperty($this->getSession()->getPage()->getContent(), $this->baseUri, $uri, 'http://schema.org/dateCreated', $expected_value), "$message_prefix created date was found (schema:dateCreated) in teaser.");
 
     // Body.
     $expected_value = [
@@ -370,41 +365,39 @@ protected function assertRdfaCommonNodeProperties($graph, NodeInterface $node, $
       'value' => $node->get('body')->value,
       'lang' => 'en',
     ];
-    $this->assertTrue($graph->hasProperty($uri, 'http://schema.org/text', $expected_value), "$message_prefix body was found (schema:text) in teaser.");
+    $this->assertTrue($this->hasRdfProperty($this->getSession()->getPage()->getContent(), $this->baseUri, $uri, 'http://schema.org/text', $expected_value), "$message_prefix body was found (schema:text) in teaser.");
 
     // Author.
     $expected_value = [
       'type' => 'uri',
       'value' => $this->authorUri,
     ];
-    $this->assertTrue($graph->hasProperty($uri, 'http://schema.org/author', $expected_value), "$message_prefix author was found (schema:author) in teaser.");
+    $this->assertTrue($this->hasRdfProperty($this->getSession()->getPage()->getContent(), $this->baseUri, $uri, 'http://schema.org/author', $expected_value), "$message_prefix author was found (schema:author) in teaser.");
 
     // Author type.
-    $this->assertEqual($graph->type($this->authorUri), 'schema:Person', "$message_prefix author type was found (schema:Person).");
+    $this->assertEqual($this->getElementRdfType($node->toUrl(), $this->baseUri, $this->authorUri), 'schema:Person', '$message_prefix author type was found (schema:Person).');
 
     // Author name.
     $expected_value = [
       'type' => 'literal',
       'value' => $this->adminUser->label(),
     ];
-    $this->assertTrue($graph->hasProperty($this->authorUri, 'http://schema.org/name', $expected_value), "$message_prefix author name was found (schema:name).");
+    $this->assertTrue($this->hasRdfProperty($this->getSession()->getPage()->getContent(), $this->baseUri, $this->authorUri, 'http://schema.org/name', $expected_value), "$message_prefix author name was found (schema:name).");
   }
 
   /**
    * Tests output for article properties displayed in both view modes.
    *
-   * @param \EasyRdf_Graph $graph
-   *   The EasyRDF graph object.
    * @param string $message_prefix
    *   The word to use in the test assertion message.
    */
-  protected function assertRdfaArticleProperties($graph, $message_prefix) {
+  protected function assertRdfaArticleProperties($message_prefix) {
     // Tags.
     $expected_value = [
       'type' => 'uri',
       'value' => $this->termUri,
     ];
-    $this->assertTrue($graph->hasProperty($this->articleUri, 'http://schema.org/about', $expected_value), "$message_prefix tag was found (schema:about).");
+    $this->assertTrue($this->hasRdfProperty($this->getSession()->getPage()->getContent(), $this->baseUri, $this->articleUri, 'http://schema.org/about', $expected_value), "$message_prefix tag was found (schema:about).");
 
     // Tag type.
     // @todo Enable with https://www.drupal.org/node/2072791.
@@ -422,20 +415,19 @@ protected function assertRdfaArticleProperties($graph, $message_prefix) {
 
   /**
    * Tests output for comment properties on nodes in full page view mode.
-   *
-   * @param \EasyRdf_Graph $graph
-   *   The EasyRDF graph object.
    */
-  protected function assertRdfaNodeCommentProperties($graph) {
+  protected function assertRdfaNodeCommentProperties() {
+
+    $this->drupalGet($this->article->toUrl());
     // Relationship between node and comment.
     $expected_value = [
       'type' => 'uri',
       'value' => $this->articleCommentUri,
     ];
-    $this->assertTrue($graph->hasProperty($this->articleUri, 'http://schema.org/comment', $expected_value), 'Relationship between node and comment found (schema:comment).');
+    $this->assertTrue($this->hasRdfProperty($this->getSession()->getPage()->getContent(), $this->baseUri, $this->articleUri, 'http://schema.org/comment', $expected_value), "Relationship between node and comment found (schema:comment).");
 
     // Comment type.
-    $this->assertEqual($graph->type($this->articleCommentUri), 'schema:Comment', 'Comment type was found (schema:Comment).');
+    $this->assertEqual($this->getElementRdfType($this->article->toUrl(), $this->baseUri, $this->articleCommentUri), 'schema:Comment', 'Comment type was found (schema:Comment).');
 
     // Comment title.
     $expected_value = [
@@ -443,7 +435,7 @@ protected function assertRdfaNodeCommentProperties($graph) {
       'value' => $this->articleComment->get('subject')->value,
       'lang' => 'en',
     ];
-    $this->assertTrue($graph->hasProperty($this->articleCommentUri, 'http://schema.org/name', $expected_value), 'Article comment title was found (schema:name).');
+    $this->assertTrue($this->hasRdfProperty($this->getSession()->getPage()->getContent(), $this->baseUri, $this->articleCommentUri, 'http://schema.org/name', $expected_value), "Article comment title was found (schema:name).");
 
     // Comment created date.
     $expected_value = [
@@ -451,7 +443,7 @@ protected function assertRdfaNodeCommentProperties($graph) {
       'value' => $this->container->get('date.formatter')->format($this->articleComment->get('created')->value, 'custom', 'c', 'UTC'),
       'lang' => 'en',
     ];
-    $this->assertTrue($graph->hasProperty($this->articleCommentUri, 'http://schema.org/dateCreated', $expected_value), 'Article comment created date was found (schema:dateCreated).');
+    $this->assertTrue($this->hasRdfProperty($this->getSession()->getPage()->getContent(), $this->baseUri, $this->articleCommentUri, 'http://schema.org/dateCreated', $expected_value), "Article comment created date was found (schema:dateCreated).");
 
     // Comment body.
     $text = $this->articleComment->get('comment_body')->value;
@@ -463,24 +455,24 @@ protected function assertRdfaNodeCommentProperties($graph) {
 ",
       'lang' => 'en',
     ];
-    $this->assertTrue($graph->hasProperty($this->articleCommentUri, 'http://schema.org/text', $expected_value), 'Article comment body was found (schema:text).');
+    $this->assertTrue($this->hasRdfProperty($this->getSession()->getPage()->getContent(), $this->baseUri, $this->articleCommentUri, 'http://schema.org/text', $expected_value), "Article comment body was found (schema:text).");
 
     // Comment uid.
     $expected_value = [
       'type' => 'uri',
       'value' => $this->commenterUri,
     ];
-    $this->assertTrue($graph->hasProperty($this->articleCommentUri, 'http://schema.org/author', $expected_value), 'Article comment author was found (schema:author).');
+    $this->assertTrue($this->hasRdfProperty($this->getSession()->getPage()->getContent(), $this->baseUri, $this->articleCommentUri, 'http://schema.org/author', $expected_value), "Article comment author was found (schema:author).");
 
     // Comment author type.
-    $this->assertEqual($graph->type($this->commenterUri), 'schema:Person', 'Comment author type was found (schema:Person).');
+    $this->assertEqual($this->getElementRdfType($this->article->toUrl(), $this->baseUri, $this->commenterUri), 'schema:Person', 'Comment author type was found (schema:Person).');
 
     // Comment author name.
     $expected_value = [
       'type' => 'literal',
       'value' => $this->webUser->getAccountName(),
     ];
-    $this->assertTrue($graph->hasProperty($this->commenterUri, 'http://schema.org/name', $expected_value), 'Comment author name was found (schema:name).');
+    $this->assertTrue($this->hasRdfProperty($this->getSession()->getPage()->getContent(), $this->baseUri, $this->commenterUri, 'http://schema.org/name', $expected_value), "Comment author name was found (schema:name).");
   }
 
   /**
@@ -519,20 +511,4 @@ protected function saveComment($nid, $uid, $contact = NULL, $pid = 0) {
     return $comment;
   }
 
-  /**
-   * Get the EasyRdf_Graph object for a page.
-   *
-   * @param \Drupal\Core\Url $url
-   *   The URL object for the page.
-   *
-   * @return \EasyRdf_Graph
-   *   The RDF graph object.
-   */
-  protected function getRdfGraph(Url $url) {
-    $parser = new \EasyRdf_Parser_Rdfa();
-    $graph = new \EasyRdf_Graph();
-    $parser->parse($graph, $this->drupalGet($url), 'rdfa', $this->baseUri);
-    return $graph;
-  }
-
 }
diff --git a/web/core/modules/rdf/tests/src/Functional/TaxonomyAttributesTest.php b/web/core/modules/rdf/tests/src/Functional/TaxonomyAttributesTest.php
index 529c99b35a..0d0e23626d 100644
--- a/web/core/modules/rdf/tests/src/Functional/TaxonomyAttributesTest.php
+++ b/web/core/modules/rdf/tests/src/Functional/TaxonomyAttributesTest.php
@@ -4,6 +4,7 @@
 
 use Drupal\Core\Url;
 use Drupal\Tests\taxonomy\Functional\TaxonomyTestBase;
+use Drupal\Tests\rdf\Traits\RdfParsingTrait;
 
 /**
  * Tests the RDFa markup of Taxonomy terms.
@@ -12,6 +13,8 @@
  */
 class TaxonomyAttributesTest extends TaxonomyTestBase {
 
+  use RdfParsingTrait;
+
   /**
    * Modules to enable.
    *
@@ -24,6 +27,13 @@ class TaxonomyAttributesTest extends TaxonomyTestBase {
    */
   protected $defaultTheme = 'stark';
 
+  /**
+   * URI of the front page of the Drupal site.
+   *
+   * @var string
+   */
+  protected $baseUri;
+
   /**
    * Vocabulary created for testing purposes.
    *
@@ -43,6 +53,9 @@ protected function setUp() {
         'properties' => ['rdfs:label', 'skos:prefLabel'],
       ])
       ->save();
+
+    // Prepares commonly used URIs.
+    $this->baseUri = Url::fromRoute('<front>', [], ['absolute' => TRUE])->toString();
   }
 
   /**
@@ -52,11 +65,8 @@ public function testTaxonomyTermRdfaAttributes() {
     $term = $this->createTerm($this->vocabulary);
     $term_uri = $term->toUrl('canonical', ['absolute' => TRUE])->toString();
 
-    // Parses the term's page and checks that the RDF output is correct.
-    $parser = new \EasyRdf_Parser_Rdfa();
-    $graph = new \EasyRdf_Graph();
-    $base_uri = Url::fromRoute('<front>', [], ['absolute' => TRUE])->toString();
-    $parser->parse($graph, $this->drupalGet('taxonomy/term/' . $term->id()), 'rdfa', $base_uri);
+    $this->drupalGet('taxonomy/term/' . $term->id());
+    $this->drupalGet($term->toUrl());
 
     // Inspects RDF graph output.
     // Term type.
@@ -64,21 +74,22 @@ public function testTaxonomyTermRdfaAttributes() {
       'type' => 'uri',
       'value' => 'http://www.w3.org/2004/02/skos/core#Concept',
     ];
-    $this->assertTrue($graph->hasProperty($term_uri, 'http://www.w3.org/1999/02/22-rdf-syntax-ns#type', $expected_value), 'Term type found in RDF output (skos:Concept).');
+    $this->assertTrue($this->hasRdfProperty($this->getSession()->getPage()->getContent(), $this->baseUri, $term_uri, 'http://www.w3.org/1999/02/22-rdf-syntax-ns#type', $expected_value), 'Term type found in RDF output (skos:Concept).');
     // Term label.
     $expected_value = [
       'type' => 'literal',
       'value' => $term->getName(),
       'lang' => 'en',
     ];
-    $this->assertTrue($graph->hasProperty($term_uri, 'http://www.w3.org/2000/01/rdf-schema#label', $expected_value), 'Term label found in RDF output (rdfs:label).');
+    $this->assertTrue($this->hasRdfProperty($this->getSession()->getPage()->getContent(), $this->baseUri, $term_uri, 'http://www.w3.org/2000/01/rdf-schema#label', $expected_value), 'Term label found in RDF output (rdfs:label).');
+
     // Term label.
     $expected_value = [
       'type' => 'literal',
       'value' => $term->getName(),
       'lang' => 'en',
     ];
-    $this->assertTrue($graph->hasProperty($term_uri, 'http://www.w3.org/2004/02/skos/core#prefLabel', $expected_value), 'Term label found in RDF output (skos:prefLabel).');
+    $this->assertTrue($this->hasRdfProperty($this->getSession()->getPage()->getContent(), $this->baseUri, $term_uri, 'http://www.w3.org/2004/02/skos/core#prefLabel', $expected_value), 'Term label found in RDF output (skos:prefLabel).');
 
     // @todo Add test for term description once it is a field:
     //   https://www.drupal.org/node/569434.
diff --git a/web/core/modules/rdf/tests/src/Functional/UserAttributesTest.php b/web/core/modules/rdf/tests/src/Functional/UserAttributesTest.php
index 4a38c57f9d..ee5102aecb 100644
--- a/web/core/modules/rdf/tests/src/Functional/UserAttributesTest.php
+++ b/web/core/modules/rdf/tests/src/Functional/UserAttributesTest.php
@@ -4,6 +4,7 @@
 
 use Drupal\Core\Url;
 use Drupal\Tests\BrowserTestBase;
+use Drupal\Tests\rdf\Traits\RdfParsingTrait;
 
 /**
  * Tests the RDFa markup of Users.
@@ -12,6 +13,8 @@
  */
 class UserAttributesTest extends BrowserTestBase {
 
+  use RdfParsingTrait;
+
   /**
    * Modules to enable.
    *
@@ -24,6 +27,13 @@ class UserAttributesTest extends BrowserTestBase {
    */
   protected $defaultTheme = 'stark';
 
+  /**
+   * URI of the front page of the Drupal site.
+   *
+   * @var string
+   */
+  protected $baseUri;
+
   protected function setUp() {
     parent::setUp();
     rdf_get_mapping('user', 'user')
@@ -34,6 +44,9 @@ protected function setUp() {
         'properties' => ['foaf:name'],
       ])
       ->save();
+
+    // Prepares commonly used URIs.
+    $this->baseUri = Url::fromRoute('<front>', [], ['absolute' => TRUE])->toString();
   }
 
   /**
@@ -61,13 +74,7 @@ public function testUserAttributesInMarkup() {
     /** @var \Drupal\user\UserInterface[] $authors */
     foreach ($authors as $author) {
       $account_uri = $author->toUrl('canonical', ['absolute' => TRUE])->toString();
-
-      // Parses the user profile page where the default bundle mapping for user
-      // should be used.
-      $parser = new \EasyRdf_Parser_Rdfa();
-      $graph = new \EasyRdf_Graph();
-      $base_uri = Url::fromRoute('<front>', [], ['absolute' => TRUE])->toString();
-      $parser->parse($graph, $this->drupalGet('user/' . $author->id()), 'rdfa', $base_uri);
+      $this->drupalGet('user/' . $author->id());
 
       // Inspects RDF graph output.
       // User type.
@@ -75,24 +82,20 @@ public function testUserAttributesInMarkup() {
         'type' => 'uri',
         'value' => 'http://rdfs.org/sioc/ns#UserAccount',
       ];
-      $this->assertTrue($graph->hasProperty($account_uri, 'http://www.w3.org/1999/02/22-rdf-syntax-ns#type', $expected_value), 'User type found in RDF output (sioc:UserAccount).');
+      $this->assertTrue($this->hasRdfProperty($this->getSession()->getPage()->getContent(), $this->baseUri, $account_uri, 'http://www.w3.org/1999/02/22-rdf-syntax-ns#type', $expected_value), 'User type found in RDF output (sioc:UserAccount).');
+
       // User name.
       $expected_value = [
         'type' => 'literal',
         'value' => $author->getAccountName(),
       ];
-      $this->assertTrue($graph->hasProperty($account_uri, 'http://xmlns.com/foaf/0.1/name', $expected_value), 'User name found in RDF output (foaf:name).');
+      $this->assertTrue($this->hasRdfProperty($this->getSession()->getPage()->getContent(), $this->baseUri, $account_uri, 'http://xmlns.com/foaf/0.1/name', $expected_value), 'User name found in RDF output (foaf:name).');
 
       // User creates a node.
       $this->drupalLogin($author);
       $node = $this->drupalCreateNode(['type' => 'article', 'promote' => 1]);
       $this->drupalLogin($user1);
-
-      // Parses the node created by the user.
-      $parser = new \EasyRdf_Parser_Rdfa();
-      $graph = new \EasyRdf_Graph();
-      $base_uri = Url::fromRoute('<front>', [], ['absolute' => TRUE])->toString();
-      $parser->parse($graph, $this->drupalGet('node/' . $node->id()), 'rdfa', $base_uri);
+      $this->drupalGet('node/' . $node->id());
 
       // Ensures the default bundle mapping for user is used on the Authored By
       // information on the node.
@@ -100,14 +103,14 @@ public function testUserAttributesInMarkup() {
         'type' => 'uri',
         'value' => 'http://rdfs.org/sioc/ns#UserAccount',
       ];
-      $this->assertTrue($graph->hasProperty($account_uri, 'http://www.w3.org/1999/02/22-rdf-syntax-ns#type', $expected_value), 'User type found in RDF output (sioc:UserAccount).');
+      $this->assertTrue($this->hasRdfProperty($this->getSession()->getPage()->getContent(), $this->baseUri, $account_uri, 'http://www.w3.org/1999/02/22-rdf-syntax-ns#type', $expected_value), 'User type found in RDF output (sioc:UserAccount).');
+
       // User name.
       $expected_value = [
         'type' => 'literal',
         'value' => $author->getAccountName(),
       ];
-      $this->assertTrue($graph->hasProperty($account_uri, 'http://xmlns.com/foaf/0.1/name', $expected_value), 'User name found in RDF output (foaf:name).');
-
+      $this->assertTrue($this->hasRdfProperty($this->getSession()->getPage()->getContent(), $this->baseUri, $account_uri, 'http://xmlns.com/foaf/0.1/name', $expected_value), 'User name found in RDF output (foaf:name).');
     }
   }
 
diff --git a/web/core/modules/rdf/tests/src/Kernel/Field/FieldRdfaTestBase.php b/web/core/modules/rdf/tests/src/Kernel/Field/FieldRdfaTestBase.php
index 2e30ccd0fc..6535d0bd4a 100644
--- a/web/core/modules/rdf/tests/src/Kernel/Field/FieldRdfaTestBase.php
+++ b/web/core/modules/rdf/tests/src/Kernel/Field/FieldRdfaTestBase.php
@@ -5,9 +5,12 @@
 use Drupal\field\Entity\FieldConfig;
 use Drupal\Tests\field\Kernel\FieldKernelTestBase;
 use Drupal\field\Entity\FieldStorageConfig;
+use Drupal\Tests\rdf\Traits\RdfParsingTrait;
 
 abstract class FieldRdfaTestBase extends FieldKernelTestBase {
 
+  use RdfParsingTrait;
+
   /**
    * The machine name of the field type to test.
    *
@@ -95,17 +98,8 @@ protected function assertFormatterRdfa($formatter, $property, $expected_rdf_valu
       ->getViewBuilder($this->entity->getEntityTypeId())
       ->view($this->entity, 'default');
     $output = \Drupal::service('renderer')->renderRoot($build);
-    $graph = new \EasyRdf_Graph($this->uri, $output, 'rdfa');
     $this->setRawContent($output);
-
-    // If verbose debugging is turned on, display the HTML and parsed RDF
-    // in the results.
-    if ($this->debug) {
-      print_r($output);
-      print_r($graph->toRdfPhp());
-    }
-
-    $this->assertTrue($graph->hasProperty($this->uri, $property, $expected_rdf_value), "Formatter {$formatter['type']} exposes data correctly for {$this->fieldType} fields.");
+    $this->assertTrue($this->hasRdfProperty($output, $this->uri, $this->uri, $property, $expected_rdf_value), "Formatter {$formatter['type']} exposes data correctly for {$this->fieldType} fields.");
   }
 
   /**
diff --git a/web/core/modules/rdf/tests/src/Traits/EasyRdf_ParsedUri.php b/web/core/modules/rdf/tests/src/Traits/EasyRdf_ParsedUri.php
new file mode 100644
index 0000000000..2c2aa7893e
--- /dev/null
+++ b/web/core/modules/rdf/tests/src/Traits/EasyRdf_ParsedUri.php
@@ -0,0 +1,352 @@
+<?php
+// @codingStandardsIgnoreFile
+
+namespace Drupal\Tests\rdf\Traits;
+
+/**
+ * This is copy of \EasyRdf_ParsedUri from the easyrdf/easyrdf library.
+ *
+ * It fixes a PHP 7.4 deprecation in \EasyRdf_ParsedUri::normalise().
+ *
+ * @todo https://www.drupal.org/project/drupal/issues/3110972 Remove this work
+ *   around.
+ */
+
+/**
+ * EasyRdf
+ *
+ * LICENSE
+ *
+ * Copyright (c) 2009-2013 Nicholas J Humfrey.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright notice,
+ *    this list of conditions and the following disclaimer in the documentation
+ *    and/or other materials provided with the distribution.
+ * 3. The name of the author 'Nicholas J Humfrey" may be used to endorse or
+ *    promote products derived from this software without specific prior
+ *    written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ * @package    EasyRdf
+ * @copyright  Copyright (c) 2009-2013 Nicholas J Humfrey
+ * @license    http://www.opensource.org/licenses/bsd-license.php
+ */
+
+
+/**
+ * A RFC3986 compliant URI parser
+ *
+ * @package    EasyRdf
+ * @copyright  Copyright (c) 2009-2013 Nicholas J Humfrey
+ * @license    http://www.opensource.org/licenses/bsd-license.php
+ * @link       http://www.ietf.org/rfc/rfc3986.txt
+ */
+class EasyRdf_ParsedUri
+{
+    // For all URIs:
+    private $scheme = null;
+    private $fragment = null;
+
+    // For hierarchical URIs:
+    private $authority = null;
+    private $path = null;
+    private $query = null;
+
+    const URI_REGEX = "|^(([^:/?#]+):)?(//([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?|";
+
+    /** Constructor for creating a new parsed URI
+     *
+     * The $uri parameter can either be a string or an
+     * associative array with the following keys:
+     * scheme, authority, path, query, fragment
+     *
+     * @param  mixed $uri  The URI as a string or an array
+     * @return object EasyRdf_ParsedUri
+     */
+    public function __construct($uri = null)
+    {
+        if (is_string($uri)) {
+            if (preg_match(self::URI_REGEX, $uri, $matches)) {
+                if (!empty($matches[1])) {
+                    $this->scheme = isset($matches[2]) ? $matches[2] : '';
+                }
+                if (!empty($matches[3])) {
+                    $this->authority = isset($matches[4]) ? $matches[4] : '';
+                }
+                $this->path = isset($matches[5]) ? $matches[5] : '';
+                if (!empty($matches[6])) {
+                    $this->query = isset($matches[7]) ? $matches[7] : '';
+                }
+                if (!empty($matches[8])) {
+                    $this->fragment = isset($matches[9]) ? $matches[9] : '';
+                }
+            }
+        } elseif (is_array($uri)) {
+            $this->scheme = isset($uri['scheme']) ? $uri['scheme'] : null;
+            $this->authority = isset($uri['authority']) ? $uri['authority'] : null;
+            $this->path = isset($uri['path']) ? $uri['path'] : null;
+            $this->query = isset($uri['query']) ? $uri['query'] : null;
+            $this->fragment = isset($uri['fragment']) ? $uri['fragment'] : null;
+        }
+    }
+
+
+    /** Returns true if this is an absolute (complete) URI
+     * @return boolean
+     */
+    public function isAbsolute()
+    {
+        return $this->scheme !== null;
+    }
+
+    /** Returns true if this is an relative (partial) URI
+     * @return boolean
+     */
+    public function isRelative()
+    {
+        return $this->scheme === null;
+    }
+
+    /** Returns the scheme of the URI (e.g. http)
+     * @return string
+     */
+    public function getScheme()
+    {
+        return $this->scheme;
+    }
+
+    /** Sets the scheme of the URI (e.g. http)
+     * @param string $scheme The new value for the scheme of the URI
+     */
+    public function setScheme($scheme)
+    {
+        $this->scheme = $scheme;
+    }
+
+    /** Returns the authority of the URI (e.g. www.example.com:8080)
+     * @return string
+     */
+    public function getAuthority()
+    {
+        return $this->authority;
+    }
+
+    /** Sets the authority of the URI (e.g. www.example.com:8080)
+     * @param string $authority The new value for the authority component of the URI
+     */
+    public function setAuthority($authority)
+    {
+        $this->authority = $authority;
+    }
+
+    /** Returns the path of the URI (e.g. /foo/bar)
+     * @return string
+     */
+    public function getPath()
+    {
+        return $this->path;
+    }
+
+    /** Set the path of the URI (e.g. /foo/bar)
+     * @param string $path The new value for the path component of the URI
+     */
+    public function setPath($path)
+    {
+        $this->path = $path;
+    }
+
+    /** Returns the query string part of the URI (e.g. foo=bar)
+     * @return string
+     */
+    public function getQuery()
+    {
+        return $this->query;
+    }
+
+    /** Set the query string of the URI (e.g. foo=bar)
+     * @param string $query The new value for the query string component of the URI
+     */
+    public function setQuery($query)
+    {
+        $this->query = $query;
+    }
+
+    /** Returns the fragment part of the URI (i.e. after the #)
+     * @return string
+     */
+    public function getFragment()
+    {
+        return $this->fragment;
+    }
+
+    /** Set the fragment of the URI (i.e. after the #)
+     * @param string $fragment The new value for the fragment component of the URI
+     */
+    public function setFragment($fragment)
+    {
+        $this->fragment = $fragment;
+    }
+
+
+    /**
+     * Normalises the path of this URI if it has one. Normalising a path means
+     * that any unnecessary '.' and '..' segments are removed. For example, the
+     * URI http://example.com/a/b/../c/./d would be normalised to
+     * http://example.com/a/c/d
+     *
+     * @return object EasyRdf_ParsedUri
+     */
+    public function normalise()
+    {
+        if (empty($this->path)) {
+            return $this;
+        }
+
+        // Remove ./ from the start
+        if (substr($this->path, 0, 2) == './') {
+            // Remove both characters
+            $this->path = substr($this->path, 2);
+        }
+
+        // Remove /. from the end
+        if (substr($this->path, -2) == '/.') {
+            // Remove only the last dot, not the slash!
+            $this->path = substr($this->path, 0, -1);
+        }
+
+        if (substr($this->path, -3) == '/..') {
+            $this->path .= '/';
+        }
+
+        // Split the path into its segments
+        $segments = explode('/', $this->path);
+        $newSegments = array();
+
+        // Remove all unnecessary '.' and '..' segments
+        foreach ($segments as $segment) {
+            if ($segment == '..') {
+                // Remove the previous part of the path
+                $count = count($newSegments);
+                if ($count > 0 && $newSegments[$count-1]) {
+                    array_pop($newSegments);
+                }
+            } elseif ($segment == '.') {
+                // Ignore
+                continue;
+            } else {
+                array_push($newSegments, $segment);
+            }
+        }
+
+        // Construct the new normalised path
+        $this->path = implode('/', $newSegments);
+
+        // Allow easy chaining of methods
+        return $this;
+    }
+
+    /**
+     * Resolves a relative URI using this URI as the base URI.
+     */
+    public function resolve($relUri)
+    {
+        // If it is a string, then convert it to a parsed object
+        if (is_string($relUri)) {
+            $relUri = new EasyRdf_ParsedUri($relUri);
+        }
+
+        // This code is based on the pseudocode in section 5.2.2 of RFC3986
+        $target = new EasyRdf_ParsedUri();
+        if ($relUri->scheme) {
+            $target->scheme = $relUri->scheme;
+            $target->authority = $relUri->authority;
+            $target->path = $relUri->path;
+            $target->query = $relUri->query;
+        } else {
+            if ($relUri->authority) {
+                $target->authority = $relUri->authority;
+                $target->path = $relUri->path;
+                $target->query = $relUri->query;
+            } else {
+                if (empty($relUri->path)) {
+                    $target->path = $this->path;
+                    if ($relUri->query) {
+                        $target->query = $relUri->query;
+                    } else {
+                        $target->query = $this->query;
+                    }
+                } else {
+                    if (substr($relUri->path, 0, 1) == '/') {
+                        $target->path = $relUri->path;
+                    } else {
+                        $path = $this->path;
+                        $lastSlash = strrpos($path, '/');
+                        if ($lastSlash !== false) {
+                            $path = substr($path, 0, $lastSlash + 1);
+                        } else {
+                            $path = '/';
+                        }
+
+                        $target->path .= $path . $relUri->path;
+                    }
+                    $target->query = $relUri->query;
+                }
+                $target->authority = $this->authority;
+            }
+            $target->scheme = $this->scheme;
+        }
+
+        $target->fragment = $relUri->fragment;
+
+        $target->normalise();
+
+        return $target;
+    }
+
+    /** Convert the parsed URI back into a string
+     *
+     * @return string The URI as a string
+     */
+    public function toString()
+    {
+        $str = '';
+        if ($this->scheme !== null) {
+            $str .= $this->scheme . ':';
+        }
+        if ($this->authority !== null) {
+            $str .= '//' . $this->authority;
+        }
+        $str .= $this->path;
+        if ($this->query !== null) {
+            $str .= '?' . $this->query;
+        }
+        if ($this->fragment !== null) {
+            $str .= '#' . $this->fragment;
+        }
+        return $str;
+    }
+
+    /** Magic method to convert the URI, when casted, back to a string
+     *
+     * @return string The URI as a string
+     */
+    public function __toString()
+    {
+        return $this->toString();
+    }
+}
diff --git a/web/core/modules/rdf/tests/src/Traits/RdfParsingTrait.php b/web/core/modules/rdf/tests/src/Traits/RdfParsingTrait.php
new file mode 100644
index 0000000000..2e1d80204a
--- /dev/null
+++ b/web/core/modules/rdf/tests/src/Traits/RdfParsingTrait.php
@@ -0,0 +1,146 @@
+<?php
+
+namespace Drupal\Tests\rdf\Traits;
+
+use Drupal\Core\Url;
+
+/**
+ * Override \EasyRdf_ParsedUri for PHP 7.4 compatibilty.
+ *
+ * @todo https://www.drupal.org/project/drupal/issues/3110972 Remove this work
+ *   around.
+ */
+class_alias('\Drupal\Tests\rdf\Traits\EasyRdf_ParsedUri', '\EasyRdf_ParsedUri');
+
+/**
+ * Defines a trait for parsing RDF properties from HTML.
+ */
+trait RdfParsingTrait {
+
+  /**
+   * Checks if a html document contains a resource with a given property value.
+   *
+   * @param string $html
+   *   The HTML to parse.
+   * @param string $base_uri
+   *   The base URI for the html being parsed.
+   * @param string $resource
+   *   The URI of the resource which should have the given property.
+   * @param string $property
+   *   The property being tested.
+   * @param array $value
+   *   The expected value. This should include the following keys:
+   *   - type: one of literal, uri and bnode
+   *   - value: the expected value
+   *   - datatype: the expected datatype in URI format - e.g.
+   *     - http://www.w3.org/2001/XMLSchema#integer
+   *     - http://www.w3.org/2001/XMLSchema#dateTime
+   *   - lang: language code of the property.
+   *
+   * @return bool
+   *   TRUE if the property exists with the given value.
+   */
+  protected function hasRdfProperty($html, $base_uri, $resource, $property, array $value) {
+    $parser = new \EasyRdf_Parser_Rdfa();
+    $graph = new \EasyRdf_Graph();
+    $parser->parse($graph, $html, 'rdfa', $base_uri);
+
+    return $graph->hasProperty($resource, $property, $value);
+  }
+
+  /**
+   * Checks if a html document contains a resource with a given property value.
+   *
+   * @param string $html
+   *   The HTML to parse.
+   * @param string $base_uri
+   *   The base URI for the html being parsed.
+   * @param string $resource
+   *   The URI of the resource which should have the given property.
+   * @param string $parent_property
+   *   The parent property being tested.
+   * @param string $child_property
+   *   The child property being tested.
+   * @param array $value
+   *   The expected value. This should include the following keys:
+   *   - type: one of literal, uri and bnode
+   *   - value: the expected value
+   *   - datatype: the expected datatype in URI format - e.g.
+   *     - http://www.w3.org/2001/XMLSchema#integer
+   *     - http://www.w3.org/2001/XMLSchema#dateTime
+   *   - lang: language code of the property.
+   *
+   * @return bool
+   *   TRUE if the property exists with the given value.
+   */
+  protected function hasRdfChildProperty($html, $base_uri, $resource, $parent_property, string $child_property, array $value) {
+    $parser = new \EasyRdf_Parser_Rdfa();
+    $graph = new \EasyRdf_Graph();
+    $parser->parse($graph, $html, 'rdfa', $base_uri);
+    $node = $graph->get($resource, $parent_property);
+    return $graph->hasProperty($node, $child_property, $value);
+  }
+
+  /**
+   * Counts the number of resources of the provided type.
+   *
+   * @param \Drupal\Core\Url $url
+   *   URL of the document.
+   * @param string $base_uri
+   *   The base URI for the html being parsed.
+   * @param string $type
+   *   Type of resource to count.
+   *
+   * @return int
+   *   The number of resources of the provided type.
+   */
+  protected function getElementByRdfTypeCount(Url $url, $base_uri, $type) {
+    $parser = new \EasyRdf_Parser_Rdfa();
+    $graph = new \EasyRdf_Graph();
+    $parser->parse($graph, $this->drupalGet($url), 'rdfa', $base_uri);
+    return count($graph->allOfType($type));
+  }
+
+  /**
+   * Gets type of RDF Element.
+   *
+   * @param \Drupal\Core\Url $url
+   *   URL of the document.
+   * @param string $base_uri
+   *   The base URI for the html being parsed.
+   * @param string $resource_uri
+   *   The URI of the resource from where to get element.
+   *
+   * @return string|null
+   *   The type of resource or NULL if the resource has no type.
+   */
+  protected function getElementRdfType(Url $url, $base_uri, $resource_uri) {
+    $parser = new \EasyRdf_Parser_Rdfa();
+    $graph = new \EasyRdf_Graph();
+    $parser->parse($graph, $this->drupalGet($url), 'rdfa', $base_uri);
+    return $graph->type($resource_uri);
+  }
+
+  /**
+   * Checks if RDF Node property is blank.
+   *
+   * @param string $html
+   *   The HTML to parse.
+   * @param string $base_uri
+   *   The base URI for the html being parsed.
+   * @param string $resource_uri
+   *   The URI of the resource which should have the given property.
+   * @param string $property
+   *   The property being tested.
+   *
+   * @return bool
+   *   TRUE if the given property is blank.
+   */
+  protected function rdfElementIsBlankNode($html, $base_uri, $resource_uri, $property) {
+    $parser = new \EasyRdf_Parser_Rdfa();
+    $graph = new \EasyRdf_Graph();
+    $parser->parse($graph, $html, 'rdfa', $base_uri);
+    return $graph->get($resource_uri, $property)->isBnode();
+  }
+
+}
diff --git a/web/core/modules/rdf/tests/src/Unit/RdfMappingConfigEntityUnitTest.php b/web/core/modules/rdf/tests/src/Unit/RdfMappingConfigEntityUnitTest.php
index d8ba6f018f..57ab681149 100644
--- a/web/core/modules/rdf/tests/src/Unit/RdfMappingConfigEntityUnitTest.php
+++ b/web/core/modules/rdf/tests/src/Unit/RdfMappingConfigEntityUnitTest.php
@@ -77,6 +77,9 @@ public function testCalculateDependencies() {
     $target_entity_type->expects($this->any())
       ->method('getBundleEntityType')
       ->will($this->returnValue(NULL));
+    $target_entity_type->expects($this->any())
+      ->method('getBundleConfigDependency')
+      ->will($this->returnValue(['type' => 'module', 'name' => 'test_module']));
 
     $this->entityTypeManager->expects($this->at(0))
       ->method('getDefinition')
@@ -86,7 +89,10 @@ public function testCalculateDependencies() {
       ->method('getDefinition')
       ->with($this->entityTypeId)
       ->will($this->returnValue($this->entityType));
-
+    $this->entityTypeManager->expects($this->at(2))
+      ->method('getDefinition')
+      ->with($this->entityTypeId)
+      ->will($this->returnValue($this->entityType));
     $entity = new RdfMapping($values, $this->entityTypeId);
     $dependencies = $entity->calculateDependencies()->getDependencies();
     $this->assertArrayNotHasKey('config', $dependencies);
diff --git a/web/core/modules/system/system.module b/web/core/modules/system/system.module
index 0baa96a6b3..039d3725ba 100644
--- a/web/core/modules/system/system.module
+++ b/web/core/modules/system/system.module
@@ -7,6 +7,7 @@
 
 use Drupal\Component\FileSecurity\FileSecurity;
 use Drupal\Component\Gettext\PoItem;
+use Drupal\Component\Render\FormattableMarkup;
 use Drupal\Component\Render\PlainTextOutput;
 use Drupal\Component\Utility\UrlHelper;
 use Drupal\Core\Asset\AttachedAssetsInterface;
@@ -15,6 +16,7 @@
 use Drupal\Core\Database\Query\AlterableInterface;
 use Drupal\Core\Extension\Dependency;
 use Drupal\Core\Extension\Extension;
+use Drupal\Core\Entity\ContentEntityTypeInterface;
 use Drupal\Core\Entity\Display\EntityFormDisplayInterface;
 use Drupal\Core\Field\Plugin\Field\FieldWidget\EntityReferenceAutocompleteWidget;
 use Drupal\Core\File\Exception\FileException;
@@ -27,7 +29,9 @@
 use Drupal\Core\Queue\QueueGarbageCollectionInterface;
 use Drupal\Core\Routing\RouteMatchInterface;
 use Drupal\Core\Routing\StackedRouteMatchInterface;
+use Drupal\Core\Site\Settings;
 use Drupal\Core\Url;
+use Drupal\path_alias\PathAliasInterface;
 use Drupal\user\UserInterface;
 use GuzzleHttp\Exception\RequestException;
 use Symfony\Component\HttpFoundation\RedirectResponse;
@@ -80,22 +84,14 @@
 /**
  * Return only visible regions.
  *
- * @deprecated in drupal:8.3.0 and is removed from drupal:9.0.0.
- *   Use \Drupal\block\BlockRepositoryInterface::REGIONS_VISIBLE instead.
- *
  * @see system_region_list()
- * @see https://www.drupal.org/node/2831620
  */
 const REGIONS_VISIBLE = 'visible';
 
 /**
  * Return all regions.
  *
- * @deprecated in drupal:8.3.0 and is removed from drupal:9.0.0.
- *   Use \Drupal\block\BlockRepositoryInterface::REGIONS_ALL instead.
- *
  * @see system_region_list()
- * @see https://www.drupal.org/node/2831620
  */
 const REGIONS_ALL = 'all';
 
@@ -1460,10 +1456,8 @@ function system_modules_uninstalled($modules) {
 
   $entity_definition_update_manager = \Drupal::entityDefinitionUpdateManager();
   foreach ($entity_definition_update_manager->getEntityTypes() as $entity_type) {
-    $revision_metadata_keys = $entity_type->get('revision_metadata_keys');
-    if ($revision_metadata_keys && array_key_exists('workspace', $revision_metadata_keys)) {
-      unset($revision_metadata_keys['workspace']);
-      $entity_type->set('revision_metadata_keys', $revision_metadata_keys);
+    if ($entity_type instanceof ContentEntityTypeInterface && $entity_type->hasRevisionMetadataKey('workspace')) {
+      $entity_type->setRevisionMetadataKey('workspace', NULL);
       $entity_definition_update_manager->updateEntityType($entity_type);
     }
   }
@@ -1497,3 +1491,26 @@ function system_entity_form_display_presave(EntityFormDisplayInterface $display)
     }
   }
 }
+
+/**
+ * Implements hook_ENTITY_TYPE_presave().
+ */
+function system_path_alias_presave(PathAliasInterface $path_alias) {
+  // Prevent path aliases from being saved if the "url_alias" migration was not
+  // performed yet. This avoids the risk of introducing duplicate aliases or get
+  // the new path alias schema in an inconsistent state.
+  if (Settings::get('system.path_alias_schema_check', TRUE) && drupal_get_installed_schema_version('system') < 8804) {
+    /** @var \Drupal\system\Access\DbUpdateAccessCheck $db_update_access */
+    $db_update_access = \Drupal::service('access_check.db_update');
+    if ($db_update_access->access(\Drupal::currentUser())->isAllowed()) {
+      $args = [':url' => Url::fromUri('base://update.php')->toString()];
+      \Drupal::messenger()->addError(t('Path aliases cannot be saved until <a href=":url">database updates</a> are performed.', $args));
+    }
+    else {
+      \Drupal::messenger()->addError(t('Path aliases cannot be saved until <em>database updates</em> are performed.'));
+    }
+    $message = 'Path alias "@alias" ("@path") could not be saved because the "system_update_8804" database update was not applied yet.';
+    $args = ['@path' => $path_alias->getPath(), '@alias' => $path_alias->getAlias()];
+    throw new \LogicException(new FormattableMarkup($message, $args));
+  }
+}
diff --git a/web/core/modules/system/templates/menu-local-tasks.html.twig b/web/core/modules/system/templates/menu-local-tasks.html.twig
index 245d73c28b..65affc1223 100644
--- a/web/core/modules/system/templates/menu-local-tasks.html.twig
+++ b/web/core/modules/system/templates/menu-local-tasks.html.twig
@@ -9,7 +9,7 @@
  *
  * Each item in these variables (primary and secondary) can be individually
  * themed in menu-local-task.html.twig.
-
+ *
  * @ingroup themeable
  */
 #}
diff --git a/web/core/modules/system/tests/fixtures/update/drupal-8.update-test-postupdate-enabled.php b/web/core/modules/system/tests/fixtures/update/drupal-8.update-test-postupdate-enabled.php
deleted file mode 100644
index a6243a138c..0000000000
--- a/web/core/modules/system/tests/fixtures/update/drupal-8.update-test-postupdate-enabled.php
+++ /dev/null
@@ -1,39 +0,0 @@
-<?php
-
-/**
- * @file
- * Partial database to mimic the installation of the update_test_post_update
- * module.
- */
-
-use Drupal\Core\Database\Database;
-
-$connection = Database::getConnection();
-
-// Set the schema version.
-$connection->merge('key_value')
-  ->condition('collection', 'system.schema')
-  ->condition('name', 'update_test_postupdate')
-  ->fields([
-    'collection' => 'system.schema',
-    'name' => 'update_test_postupdate',
-    'value' => 'i:8000;',
-  ])
-  ->execute();
-
-// Update core.extension.
-$extensions = $connection->select('config')
-  ->fields('config', ['data'])
-  ->condition('collection', '')
-  ->condition('name', 'core.extension')
-  ->execute()
-  ->fetchField();
-$extensions = unserialize($extensions);
-$extensions['module']['update_test_postupdate'] = 8000;
-$connection->update('config')
-  ->fields([
-    'data' => serialize($extensions),
-  ])
-  ->condition('collection', '')
-  ->condition('name', 'core.extension')
-  ->execute();
diff --git a/web/core/modules/system/tests/fixtures/update/drupal-8.update-test-postupdate-failing-enabled.php b/web/core/modules/system/tests/fixtures/update/drupal-8.update-test-postupdate-failing-enabled.php
deleted file mode 100644
index ab37f83af7..0000000000
--- a/web/core/modules/system/tests/fixtures/update/drupal-8.update-test-postupdate-failing-enabled.php
+++ /dev/null
@@ -1,38 +0,0 @@
-<?php
-
-/**
- * @file
- * Partial database to mimic the installation of the update_test_failing module.
- */
-
-use Drupal\Core\Database\Database;
-
-$connection = Database::getConnection();
-
-// Set the schema version.
-$connection->merge('key_value')
-  ->condition('collection', 'system.schema')
-  ->condition('name', 'update_test_failing')
-  ->fields([
-    'collection' => 'system.schema',
-    'name' => 'update_test_failing',
-    'value' => 'i:8000;',
-  ])
-  ->execute();
-
-// Update core.extension.
-$extensions = $connection->select('config')
-  ->fields('config', ['data'])
-  ->condition('collection', '')
-  ->condition('name', 'core.extension')
-  ->execute()
-  ->fetchField();
-$extensions = unserialize($extensions);
-$extensions['module']['update_test_failing'] = 8000;
-$connection->update('config')
-  ->fields([
-    'data' => serialize($extensions),
-  ])
-  ->condition('collection', '')
-  ->condition('name', 'core.extension')
-  ->execute();
diff --git a/web/core/modules/system/tests/modules/entity_test_revlog/entity_test_revlog.install b/web/core/modules/system/tests/modules/entity_test_revlog/entity_test_revlog.install
new file mode 100644
index 0000000000..f584611bb8
--- /dev/null
+++ b/web/core/modules/system/tests/modules/entity_test_revlog/entity_test_revlog.install
@@ -0,0 +1,14 @@
+<?php
+
+/**
+ * @file
+ * Install, update and uninstall functions for the entity_test_revlog module.
+ */
+
+/**
+ * Install the 'entity_test_mul_revlog_pub' entity type.
+ */
+function entity_test_revlog_update_8801() {
+  $entity_type = \Drupal::entityTypeManager()->getDefinition('entity_test_mul_revlog_pub');
+  \Drupal::entityDefinitionUpdateManager()->installEntityType($entity_type);
+}
diff --git a/web/core/modules/system/tests/modules/entity_test_revlog/src/Entity/EntityTestMulWithRevisionLogPub.php b/web/core/modules/system/tests/modules/entity_test_revlog/src/Entity/EntityTestMulWithRevisionLogPub.php
new file mode 100644
index 0000000000..bf1b13476e
--- /dev/null
+++ b/web/core/modules/system/tests/modules/entity_test_revlog/src/Entity/EntityTestMulWithRevisionLogPub.php
@@ -0,0 +1,45 @@
+<?php
+
+namespace Drupal\entity_test_revlog\Entity;
+
+use Drupal\Core\Entity\EntityPublishedInterface;
+use Drupal\Core\Entity\EntityPublishedTrait;
+use Drupal\Core\Entity\EntityTypeInterface;
+
+/**
+ * Defines the test entity class.
+ *
+ * This entity type does not define revision_metadata_keys on purpose to test
+ * the BC layer.
+ *
+ * @ContentEntityType(
+ *   id = "entity_test_mul_revlog_pub",
+ *   label = @Translation("Test entity - data table, revisions log, publishing status"),
+ *   base_table = "entity_test_mul_revlog_pub",
+ *   data_table = "entity_test_mul_revlog_pub_field_data",
+ *   revision_table = "entity_test_mul_revlog_pub_revision",
+ *   revision_data_table = "entity_test_mul_revlog_pub_field_revision",
+ *   translatable = TRUE,
+ *   entity_keys = {
+ *     "id" = "id",
+ *     "uuid" = "uuid",
+ *     "revision" = "revision_id",
+ *     "bundle" = "type",
+ *     "label" = "name",
+ *     "langcode" = "langcode",
+ *     "published" = "status",
+ *   },
+ * )
+ */
+class EntityTestMulWithRevisionLogPub extends EntityTestWithRevisionLog implements EntityPublishedInterface {
+
+  use EntityPublishedTrait;
+
+  /**
+   * {@inheritdoc}
+   */
+  public static function baseFieldDefinitions(EntityTypeInterface $entity_type) {
+    return parent::baseFieldDefinitions($entity_type) + EntityPublishedTrait::publishedBaseFieldDefinitions($entity_type);
+  }
+
+}
diff --git a/web/core/modules/system/tests/modules/system_test/system_test.module b/web/core/modules/system/tests/modules/system_test/system_test.module
index 7f0ba88cd0..d98f32ca30 100644
--- a/web/core/modules/system/tests/modules/system_test/system_test.module
+++ b/web/core/modules/system/tests/modules/system_test/system_test.module
@@ -5,8 +5,10 @@
  * Test module.
  */
 
+use Drupal\Core\Entity\EntityStorageException;
 use Drupal\Core\Extension\Extension;
 use Drupal\Core\Routing\RouteMatchInterface;
+use Drupal\path_alias\Entity\PathAlias;
 
 /**
  * Implements hook_help().
@@ -30,6 +32,22 @@ function system_test_modules_installed($modules) {
       \Drupal::messenger()->addStatus(t('hook_modules_installed fired for @module', ['@module' => $module]));
     }
   }
+  if (\Drupal::state()->get('system_test.path_alias_save') && in_array('path_alias', $modules)) {
+    try {
+      $path_alias = PathAlias::create([
+        'path' => '/user',
+        'alias' => '/test',
+      ]);
+      $path_alias->save();
+    }
+    catch (EntityStorageException $e) {
+      $root_exception = $e->getPrevious() ?: $e;
+      \Drupal::state()->set('system_test.path_alias_save_exception_thrown', [
+        'class' => get_class($root_exception),
+        'message' => $root_exception->getMessage(),
+      ]);
+    }
+  }
 }
 
 /**
diff --git a/web/core/modules/system/tests/modules/update_test_no_preexisting/update_test_no_preexisting.info.yml b/web/core/modules/system/tests/modules/update_test_no_preexisting/update_test_no_preexisting.info.yml
new file mode 100644
index 0000000000..303d7cde54
--- /dev/null
+++ b/web/core/modules/system/tests/modules/update_test_no_preexisting/update_test_no_preexisting.info.yml
@@ -0,0 +1,5 @@
+name: 'Update test'
+type: module
+description: 'Support module for update testing.'
+package: Testing
+version: VERSION
diff --git a/web/core/modules/system/tests/modules/update_test_no_preexisting/update_test_no_preexisting.install b/web/core/modules/system/tests/modules/update_test_no_preexisting/update_test_no_preexisting.install
new file mode 100644
index 0000000000..7344bc0631
--- /dev/null
+++ b/web/core/modules/system/tests/modules/update_test_no_preexisting/update_test_no_preexisting.install
@@ -0,0 +1,13 @@
+<?php
+
+/**
+ * @file
+ * Install, update and uninstall functions for the update_test_no_preexisting module.
+ */
+
+/**
+ * Dummy update_test_no_preexisting update 8001.
+ */
+function update_test_no_preexisting_update_8001() {
+  \Drupal::state()->set('update_test_no_preexisting_update_8001', TRUE);
+}
diff --git a/web/core/modules/system/tests/src/Functional/Entity/Traits/EntityDefinitionTestTrait.php b/web/core/modules/system/tests/src/Functional/Entity/Traits/EntityDefinitionTestTrait.php
index 1f4cff3443..7d0b2ecce3 100644
--- a/web/core/modules/system/tests/src/Functional/Entity/Traits/EntityDefinitionTestTrait.php
+++ b/web/core/modules/system/tests/src/Functional/Entity/Traits/EntityDefinitionTestTrait.php
@@ -318,12 +318,18 @@ protected function removeBaseFieldIndex() {
    *
    * @param string $type
    *   (optional) The field type for the new field. Defaults to 'string'.
+   * @param bool $revisionable
+   *   (optional) Whether the field should be revisionable. Defaults to FALSE.
+   * @param bool $translatable
+   *   (optional) Whether the field should be translatable. Defaults to FALSE.
    */
-  protected function addBundleField($type = 'string') {
+  protected function addBundleField($type = 'string', $revisionable = FALSE, $translatable = FALSE) {
     $definitions['new_bundle_field'] = FieldStorageDefinition::create($type)
       ->setName('new_bundle_field')
       ->setLabel(t('A new bundle field'))
-      ->setTargetEntityTypeId('entity_test_update');
+      ->setTargetEntityTypeId('entity_test_update')
+      ->setRevisionable($revisionable)
+      ->setTranslatable($translatable);
     $this->state->set('entity_test_update.additional_field_storage_definitions', $definitions);
     $this->state->set('entity_test_update.additional_bundle_field_definitions.test_bundle', $definitions);
   }
diff --git a/web/core/modules/system/tests/src/Functional/Entity/Update/MoveRevisionMetadataFieldsUpdateTest.php b/web/core/modules/system/tests/src/Functional/Entity/Update/MoveRevisionMetadataFieldsUpdateTest.php
index 4333c1a30e..12c5dd83ce 100644
--- a/web/core/modules/system/tests/src/Functional/Entity/Update/MoveRevisionMetadataFieldsUpdateTest.php
+++ b/web/core/modules/system/tests/src/Functional/Entity/Update/MoveRevisionMetadataFieldsUpdateTest.php
@@ -202,6 +202,46 @@ public function testAddingRequiredRevisionMetadataKeys() {
       'revision_log_message' => 'revision_log_message',
     ];
     $this->assertEquals($revision_metadata_keys, $entity_type->getRevisionMetadataKeys(TRUE));
+
+    // Ensure that the BC layer will break if a new revision metadata key is
+    // only added to the revision_metadata_keys property.
+    $definition = [
+      'id' => 'entity_test_mul_revlog',
+    ];
+    $entity_type = new ContentEntityType($definition);
+    $revision_metadata_keys = $entity_type->get('revision_metadata_keys');
+    $revision_metadata_keys['new_revision_metadata_key'] = 'new_revision_metadata_key';
+    $entity_type->set('revision_metadata_keys', $revision_metadata_keys);
+    $expected_revision_metadata_keys = [
+      'new_revision_metadata_key' => 'new_revision_metadata_key',
+      'revision_default' => 'revision_default',
+    ];
+    $this->assertEquals($expected_revision_metadata_keys, $entity_type->getRevisionMetadataKeys(TRUE));
+
+    // Ensure that the BC layer will be triggered if a new revision metadata key
+    // is added to both properties revision_metadata_keys and
+    // requiredRevisionMetadataKeys.
+    $definition = [
+      'id' => 'entity_test_mul_revlog',
+    ];
+    $entity_type = new ContentEntityType($definition);
+
+    $revision_metadata_keys = $entity_type->get('revision_metadata_keys');
+    $revision_metadata_keys['new_revision_metadata_key'] = 'new_revision_metadata_key';
+    $entity_type->set('revision_metadata_keys', $revision_metadata_keys);
+
+    $required_revision_metadata_keys = $entity_type->get('requiredRevisionMetadataKeys');
+    $required_revision_metadata_keys['new_revision_metadata_key'] = 'new_revision_metadata_key';
+    $entity_type->set('requiredRevisionMetadataKeys', $required_revision_metadata_keys);
+
+    $expected_revision_metadata_keys = [
+      'new_revision_metadata_key' => 'new_revision_metadata_key',
+      'revision_default' => 'revision_default',
+      'revision_user' => 'revision_user',
+      'revision_created' => 'revision_created',
+      'revision_log_message' => 'revision_log_message',
+    ];
+    $this->assertEquals($expected_revision_metadata_keys, $entity_type->getRevisionMetadataKeys(TRUE));
   }
 
   /**
diff --git a/web/core/modules/system/tests/src/Functional/Update/BrokenCacheUpdateTest.php b/web/core/modules/system/tests/src/Functional/Update/BrokenCacheUpdateTest.php
index 300676a2a3..d66c31029c 100644
--- a/web/core/modules/system/tests/src/Functional/Update/BrokenCacheUpdateTest.php
+++ b/web/core/modules/system/tests/src/Functional/Update/BrokenCacheUpdateTest.php
@@ -3,15 +3,16 @@
 namespace Drupal\Tests\system\Functional\Update;
 
 use Drupal\Core\Database\Database;
-use Drupal\FunctionalTests\Update\UpdatePathTestBase;
+use Drupal\Tests\BrowserTestBase;
+use Drupal\Tests\UpdatePathTestTrait;
 
 /**
  * Ensures that a broken or out-of-date element info cache is not used.
  *
  * @group Update
- * @group legacy
  */
-class BrokenCacheUpdateTest extends UpdatePathTestBase {
+class BrokenCacheUpdateTest extends BrowserTestBase {
+  use UpdatePathTestTrait;
 
   /**
    * {@inheritdoc}
@@ -21,10 +22,9 @@ class BrokenCacheUpdateTest extends UpdatePathTestBase {
   /**
    * {@inheritdoc}
    */
-  protected function setDatabaseDumpFiles() {
-    $this->databaseDumpFiles = [
-      __DIR__ . '/../../../../tests/fixtures/update/drupal-8.6.0.bare.testing.php.gz',
-    ];
+  protected function setUp() {
+    parent::setUp();
+    $this->ensureUpdatesToRun();
   }
 
   /**
@@ -40,7 +40,8 @@ public function testUpdate() {
       ->execute();
 
     // Create broken element info caches entries.
-    $insert = $connection->insert('cache_discovery');
+    $insert = $connection->upsert('cache_discovery');
+    $insert->key('cid');
     $fields = [
       'cid' => 'element_info',
       'data' => 'BROKEN',
diff --git a/web/core/modules/system/tests/src/Functional/Update/NoPreExistingSchemaUpdateTest.php b/web/core/modules/system/tests/src/Functional/Update/NoPreExistingSchemaUpdateTest.php
new file mode 100644
index 0000000000..5a723d69dd
--- /dev/null
+++ b/web/core/modules/system/tests/src/Functional/Update/NoPreExistingSchemaUpdateTest.php
@@ -0,0 +1,55 @@
+<?php
+
+namespace Drupal\Tests\system\Functional\Update;
+
+use Drupal\Core\Database\Database;
+use Drupal\Tests\BrowserTestBase;
+use Drupal\Tests\UpdatePathTestTrait;
+
+/**
+ * Tries to update a module which has no pre-existing schema.
+ *
+ * @group Update
+ * @group legacy
+ */
+class NoPreExistingSchemaUpdateTest extends BrowserTestBase {
+  use UpdatePathTestTrait;
+
+  protected function setUp() {
+    parent::setUp();
+    $connection = Database::getConnection();
+
+    // Enable the update_test_no_preexisting module by altering the
+    // core.extension configuration directly, so that the schema version
+    // information is missing.
+    $extensions = $connection->select('config')
+      ->fields('config', ['data'])
+      ->condition('name', 'core.extension')
+      ->execute()
+      ->fetchField();
+    $extensions = unserialize($extensions);
+    $connection->update('config')
+      ->fields([
+        'data' => serialize(array_merge_recursive($extensions, ['module' => ['update_test_no_preexisting' => 0]])),
+      ])
+      ->condition('name', 'core.extension')
+      ->execute();
+  }
+
+  /**
+   * Test the system module updates with no dependencies installed.
+   */
+  public function testNoPreExistingSchema() {
+    $schema = \Drupal::keyValue('system.schema')->getAll();
+    $this->assertArrayNotHasKey('update_test_no_preexisting', $schema);
+    $this->assertFalse(\Drupal::state()->get('update_test_no_preexisting_update_8001', FALSE));
+
+    $this->runUpdates();
+
+    $schema = \Drupal::keyValue('system.schema')->getAll();
+    $this->assertArrayHasKey('update_test_no_preexisting', $schema);
+    $this->assertEquals('8001', $schema['update_test_no_preexisting']);
+    $this->assertTrue(\Drupal::state()->get('update_test_no_preexisting_update_8001', FALSE));
+  }
+
+}
diff --git a/web/core/modules/system/tests/src/Functional/Update/PathAliasToEntityUpdateTest.php b/web/core/modules/system/tests/src/Functional/Update/PathAliasToEntityUpdateTest.php
index 7a860906e9..5842f992bd 100644
--- a/web/core/modules/system/tests/src/Functional/Update/PathAliasToEntityUpdateTest.php
+++ b/web/core/modules/system/tests/src/Functional/Update/PathAliasToEntityUpdateTest.php
@@ -31,10 +31,15 @@ protected function setDatabaseDumpFiles() {
   /**
    * Tests the conversion of path aliases to entities.
    *
+   * @param bool $perform_check
+   *   Whether a schema check should be performed on "path_alias" save.
+   *
    * @see system_update_8803()
    * @see system_update_8804()
+   *
+   * @dataProvider providerConversionToEntities
    */
-  public function testConversionToEntities() {
+  public function testConversionToEntities($perform_check) {
     $database = \Drupal::database();
     $schema = $database->schema();
     $this->assertTrue($schema->tableExists('url_alias'));
@@ -56,8 +61,54 @@ public function testConversionToEntities() {
     $url_alias_count = 5;
     $this->assertCount($url_alias_count, $original_records);
 
+    // Enable or disable the "path_alias" save schema check.
+    drupal_rewrite_settings([
+      'settings' => [
+        'system.path_alias_schema_check' => (object) [
+          'value' => $perform_check,
+          'required' => TRUE,
+        ],
+      ],
+    ]);
+
+    // Enable our test module in a way that does not affect the subsequent
+    // updates run (::rebuildAll() would).
+    /** @var \Drupal\Core\Extension\ModuleInstallerInterface $module_installer */
+    $module_installer = $this->container->get('module_installer');
+    $module_installer->install(['system_test']);
+    $this->container = \Drupal::getContainer();
+
+    // Trigger a path alias save during the update.
+    /** @var \Drupal\Core\State\StateInterface $state */
+    $state = $this->container->get('state');
+    $state->set('system_test.path_alias_save', TRUE);
+
+    // If the schema check is not performed, the path alias will be saved and we
+    // will get an integrity exception, so no point in checking for failed
+    // updates. If the schema check is performed, a logic exception will be
+    // thrown, which will be caught in our test code, so the update is expected
+    // to complete successfully. In this case we do want to check for failed
+    // updates.
+    $this->checkFailedUpdates = $perform_check;
+
     $this->runUpdates();
 
+    if (!$perform_check) {
+      $error_message = $this->cssSelect('.failure')[0]->getText();
+      // In order to test against multiple database drivers assert that the
+      // expected exception occurs and the error contains the expected table
+      // name. The specifics of the error depend on the database driver.
+      $this->assertContains("Failed: Drupal\Core\Database\IntegrityConstraintViolationException", $error_message);
+      $this->assertContains("path_alias", $error_message);
+      // Nothing else to assert.
+      return;
+    }
+
+    // Check that an exception was thrown on "path_alias" save.
+    $exception_info = $state->get('system_test.path_alias_save_exception_thrown');
+    $this->assertIdentical($exception_info['class'], \LogicException::class);
+    $this->assertIdentical($exception_info['message'], 'Path alias "/test" ("/user") could not be saved because the "system_update_8804" database update was not applied yet.');
+
     /** @var \Drupal\Core\Extension\ModuleHandlerInterface $module_handler */
     $module_handler = $this->container->get('module_handler');
     $this->assertTrue($module_handler->moduleExists('path_alias'));
@@ -128,4 +179,14 @@ public function testConversionToEntities() {
     $this->assertEquals($original_records, $revision_table_records);
   }
 
+  /**
+   * Data provider for ::testConversionToEntities.
+   */
+  public function providerConversionToEntities() {
+    return [
+      'Perform check on "path_alias" save' => [TRUE],
+      'Do not perform check on "path_alias" save' => [FALSE],
+    ];
+  }
+
 }
diff --git a/web/core/modules/system/tests/src/Functional/Update/UpdatePathNewDependencyTest.php b/web/core/modules/system/tests/src/Functional/Update/UpdatePathNewDependencyTest.php
index 8f10ef76ce..3a673962d6 100644
--- a/web/core/modules/system/tests/src/Functional/Update/UpdatePathNewDependencyTest.php
+++ b/web/core/modules/system/tests/src/Functional/Update/UpdatePathNewDependencyTest.php
@@ -2,31 +2,23 @@
 
 namespace Drupal\Tests\system\Functional\Update;
 
-use Drupal\FunctionalTests\Update\UpdatePathTestBase;
+use Drupal\Tests\BrowserTestBase;
+use Drupal\Tests\UpdatePathTestTrait;
 use Symfony\Component\DependencyInjection\Exception\ServiceNotFoundException;
 
 /**
  * Modules can introduce new dependencies and enable them in update hooks.
  *
  * @group system
- * @group legacy
  */
-class UpdatePathNewDependencyTest extends UpdatePathTestBase {
+class UpdatePathNewDependencyTest extends BrowserTestBase {
+  use UpdatePathTestTrait;
 
   /**
    * {@inheritdoc}
    */
   protected $defaultTheme = 'stark';
 
-  /**
-   * {@inheritdoc}
-   */
-  protected function setDatabaseDumpFiles() {
-    $this->databaseDumpFiles = [
-      __DIR__ . '/../../../../tests/fixtures/update/drupal-8.6.0.bare.testing.php.gz',
-    ];
-  }
-
   /**
    * Test that a module can add services that depend on new modules.
    */
diff --git a/web/core/modules/system/tests/src/Functional/Update/UpdatePathTestJavaScriptTest.php b/web/core/modules/system/tests/src/Functional/Update/UpdatePathTestJavaScriptTest.php
index 473c392aa0..28f727a7e6 100644
--- a/web/core/modules/system/tests/src/Functional/Update/UpdatePathTestJavaScriptTest.php
+++ b/web/core/modules/system/tests/src/Functional/Update/UpdatePathTestJavaScriptTest.php
@@ -2,7 +2,8 @@
 
 namespace Drupal\Tests\system\Functional\Update;
 
-use Drupal\FunctionalTests\Update\UpdatePathTestBase;
+use Drupal\Tests\BrowserTestBase;
+use Drupal\Tests\UpdatePathTestTrait;
 
 /**
  * Tests the presence of JavaScript at update.php.
@@ -10,7 +11,8 @@
  * @group Update
  * @group legacy
  */
-class UpdatePathTestJavaScriptTest extends UpdatePathTestBase {
+class UpdatePathTestJavaScriptTest extends BrowserTestBase {
+  use UpdatePathTestTrait;
 
   /**
    * {@inheritdoc}
@@ -20,10 +22,9 @@ class UpdatePathTestJavaScriptTest extends UpdatePathTestBase {
   /**
    * {@inheritdoc}
    */
-  protected function setDatabaseDumpFiles() {
-    $this->databaseDumpFiles = [
-      __DIR__ . '/../../../../tests/fixtures/update/drupal-8.bare.standard.php.gz',
-    ];
+  protected function setUp() {
+    parent::setUp();
+    $this->ensureUpdatesToRun();
   }
 
   /**
diff --git a/web/core/modules/system/tests/src/Functional/Update/UpdatePathWithBrokenRoutingFilledTest.php b/web/core/modules/system/tests/src/Functional/Update/UpdatePathWithBrokenRoutingFilledTest.php
index 6be4f333cb..2f3287a3b3 100644
--- a/web/core/modules/system/tests/src/Functional/Update/UpdatePathWithBrokenRoutingFilledTest.php
+++ b/web/core/modules/system/tests/src/Functional/Update/UpdatePathWithBrokenRoutingFilledTest.php
@@ -2,13 +2,15 @@
 
 namespace Drupal\Tests\system\Functional\Update;
 
+use Drupal\FunctionalTests\Update\UpdatePathTestBase;
+
 /**
  * Runs UpdatePathWithBrokenRoutingTest with a dump filled with content.
  *
  * @group Update
  * @group legacy
  */
-class UpdatePathWithBrokenRoutingFilledTest extends UpdatePathWithBrokenRoutingTest {
+class UpdatePathWithBrokenRoutingFilledTest extends UpdatePathTestBase {
 
   /**
    * {@inheritdoc}
@@ -19,8 +21,30 @@ class UpdatePathWithBrokenRoutingFilledTest extends UpdatePathWithBrokenRoutingT
    * {@inheritdoc}
    */
   protected function setDatabaseDumpFiles() {
-    parent::setDatabaseDumpFiles();
-    $this->databaseDumpFiles[0] = __DIR__ . '/../../../../tests/fixtures/update/drupal-8.filled.standard.php.gz';
+    $this->databaseDumpFiles = [
+      __DIR__ . '/../../../../tests/fixtures/update/drupal-8.8.0.filled.standard.php.gz',
+      __DIR__ . '/../../../../tests/fixtures/update/drupal-8.broken_routing.php',
+    ];
+  }
+
+  /**
+   * Tests running update.php with some form of broken routing.
+   */
+  public function testWithBrokenRouting() {
+    // Simulate a broken router, and make sure the front page is
+    // inaccessible.
+    \Drupal::state()->set('update_script_test_broken_inbound', TRUE);
+    \Drupal::service('cache_tags.invalidator')->invalidateTags(['route_match', 'rendered']);
+    $this->drupalGet('<front>');
+    $this->assertResponse(500);
+
+    $this->runUpdates();
+
+    // Remove the simulation of the broken router, and make sure we can get to
+    // the front page again.
+    \Drupal::state()->set('update_script_test_broken_inbound', FALSE);
+    $this->drupalGet('<front>');
+    $this->assertResponse(200);
   }
 
 }
diff --git a/web/core/modules/system/tests/src/Functional/Update/UpdatePathWithBrokenRoutingTest.php b/web/core/modules/system/tests/src/Functional/Update/UpdatePathWithBrokenRoutingTest.php
index 17a70c0215..1faee31db8 100644
--- a/web/core/modules/system/tests/src/Functional/Update/UpdatePathWithBrokenRoutingTest.php
+++ b/web/core/modules/system/tests/src/Functional/Update/UpdatePathWithBrokenRoutingTest.php
@@ -2,15 +2,17 @@
 
 namespace Drupal\Tests\system\Functional\Update;
 
-use Drupal\FunctionalTests\Update\UpdatePathTestBase;
+use Drupal\Core\Url;
+use Drupal\Tests\BrowserTestBase;
+use Drupal\Tests\UpdatePathTestTrait;
 
 /**
  * Tests the update path with a broken router.
  *
  * @group Update
- * @group legacy
  */
-class UpdatePathWithBrokenRoutingTest extends UpdatePathTestBase {
+class UpdatePathWithBrokenRoutingTest extends BrowserTestBase {
+  use UpdatePathTestTrait;
 
   /**
    * {@inheritdoc}
@@ -20,11 +22,9 @@ class UpdatePathWithBrokenRoutingTest extends UpdatePathTestBase {
   /**
    * {@inheritdoc}
    */
-  protected function setDatabaseDumpFiles() {
-    $this->databaseDumpFiles = [
-      __DIR__ . '/../../../../tests/fixtures/update/drupal-8.bare.standard.php.gz',
-      __DIR__ . '/../../../../tests/fixtures/update/drupal-8.broken_routing.php',
-    ];
+  protected function setUp() {
+    parent::setUp();
+    $this->ensureUpdatesToRun();
   }
 
   /**
@@ -34,11 +34,11 @@ public function testWithBrokenRouting() {
     // Simulate a broken router, and make sure the front page is
     // inaccessible.
     \Drupal::state()->set('update_script_test_broken_inbound', TRUE);
-    \Drupal::service('cache_tags.invalidator')->invalidateTags(['route_match', 'rendered']);
+    $this->resetAll();
     $this->drupalGet('<front>');
     $this->assertResponse(500);
 
-    $this->runUpdates();
+    $this->runUpdates(Url::fromRoute('system.db_update', [], ['path_processing' => FALSE]));
 
     // Remove the simulation of the broken router, and make sure we can get to
     // the front page again.
diff --git a/web/core/modules/system/tests/src/Functional/Update/UpdatePostUpdateFailingTest.php b/web/core/modules/system/tests/src/Functional/Update/UpdatePostUpdateFailingTest.php
index 5c6b223d6f..a645cb457c 100644
--- a/web/core/modules/system/tests/src/Functional/Update/UpdatePostUpdateFailingTest.php
+++ b/web/core/modules/system/tests/src/Functional/Update/UpdatePostUpdateFailingTest.php
@@ -2,15 +2,17 @@
 
 namespace Drupal\Tests\system\Functional\Update;
 
-use Drupal\FunctionalTests\Update\UpdatePathTestBase;
+use Drupal\Core\Database\Database;
+use Drupal\Tests\BrowserTestBase;
+use Drupal\Tests\UpdatePathTestTrait;
 
 /**
  * Tests hook_post_update() when there are failing update hooks.
  *
  * @group Update
- * @group legacy
  */
-class UpdatePostUpdateFailingTest extends UpdatePathTestBase {
+class UpdatePostUpdateFailingTest extends BrowserTestBase {
+  use UpdatePathTestTrait;
 
   /**
    * {@inheritdoc}
@@ -20,11 +22,37 @@ class UpdatePostUpdateFailingTest extends UpdatePathTestBase {
   /**
    * {@inheritdoc}
    */
-  protected function setDatabaseDumpFiles() {
-    $this->databaseDumpFiles = [
-      __DIR__ . '/../../../../tests/fixtures/update/drupal-8.bare.standard.php.gz',
-      __DIR__ . '/../../../../tests/fixtures/update/drupal-8.update-test-postupdate-failing-enabled.php',
-    ];
+  protected function setUp() {
+    parent::setUp();
+    $connection = Database::getConnection();
+
+    // Set the schema version.
+    $connection->merge('key_value')
+      ->condition('collection', 'system.schema')
+      ->condition('name', 'update_test_failing')
+      ->fields([
+        'collection' => 'system.schema',
+        'name' => 'update_test_failing',
+        'value' => 'i:8000;',
+      ])
+      ->execute();
+
+    // Update core.extension.
+    $extensions = $connection->select('config')
+      ->fields('config', ['data'])
+      ->condition('collection', '')
+      ->condition('name', 'core.extension')
+      ->execute()
+      ->fetchField();
+    $extensions = unserialize($extensions);
+    $extensions['module']['update_test_failing'] = 8000;
+    $connection->update('config')
+      ->fields([
+        'data' => serialize($extensions),
+      ])
+      ->condition('collection', '')
+      ->condition('name', 'core.extension')
+      ->execute();
   }
 
   /**
diff --git a/web/core/modules/system/tests/src/Functional/Update/UpdatePostUpdateTest.php b/web/core/modules/system/tests/src/Functional/Update/UpdatePostUpdateTest.php
index 1015e7a138..a1c5690c34 100644
--- a/web/core/modules/system/tests/src/Functional/Update/UpdatePostUpdateTest.php
+++ b/web/core/modules/system/tests/src/Functional/Update/UpdatePostUpdateTest.php
@@ -3,15 +3,17 @@
 namespace Drupal\Tests\system\Functional\Update;
 
 use Drupal\Component\Render\FormattableMarkup;
-use Drupal\FunctionalTests\Update\UpdatePathTestBase;
+use Drupal\Core\Database\Database;
+use Drupal\Tests\BrowserTestBase;
+use Drupal\Tests\UpdatePathTestTrait;
 
 /**
  * Tests hook_post_update().
  *
  * @group Update
- * @group legacy
  */
-class UpdatePostUpdateTest extends UpdatePathTestBase {
+class UpdatePostUpdateTest extends BrowserTestBase {
+  use UpdatePathTestTrait;
 
   /**
    * {@inheritdoc}
@@ -21,19 +23,43 @@ class UpdatePostUpdateTest extends UpdatePathTestBase {
   /**
    * {@inheritdoc}
    */
-  protected function setDatabaseDumpFiles() {
-    $this->databaseDumpFiles = [
-      __DIR__ . '/../../../../tests/fixtures/update/drupal-8.bare.standard.php.gz',
-      __DIR__ . '/../../../../tests/fixtures/update/drupal-8.update-test-postupdate-enabled.php',
-    ];
+  protected function setUp() {
+    parent::setUp();
+    $connection = Database::getConnection();
+
+    // Set the schema version.
+    $connection->merge('key_value')
+      ->condition('collection', 'system.schema')
+      ->condition('name', 'update_test_postupdate')
+      ->fields([
+        'collection' => 'system.schema',
+        'name' => 'update_test_postupdate',
+        'value' => 'i:8000;',
+      ])
+      ->execute();
+
+    // Update core.extension.
+    $extensions = $connection->select('config')
+      ->fields('config', ['data'])
+      ->condition('collection', '')
+      ->condition('name', 'core.extension')
+      ->execute()
+      ->fetchField();
+    $extensions = unserialize($extensions);
+    $extensions['module']['update_test_postupdate'] = 8000;
+    $connection->update('config')
+      ->fields([
+        'data' => serialize($extensions),
+      ])
+      ->condition('collection', '')
+      ->condition('name', 'core.extension')
+      ->execute();
   }
 
   /**
    * {@inheritdoc}
    */
   protected function doSelectionTest() {
-    parent::doSelectionTest();
-
     // Ensure that normal and post_update updates are merged together on the
     // selection page.
     $this->assertRaw('<ul><li>8001 -   Normal update_N() function. </li><li>First update.</li><li>Second update.</li><li>Test0 update.</li><li>Test1 update.</li><li>Testing batch processing in post updates update.</li></ul>');
diff --git a/web/core/modules/taxonomy/src/Plugin/migrate/source/d6/TermLocalizedTranslation.php b/web/core/modules/taxonomy/src/Plugin/migrate/source/d6/TermLocalizedTranslation.php
index 844fb858b5..d8308c72b4 100644
--- a/web/core/modules/taxonomy/src/Plugin/migrate/source/d6/TermLocalizedTranslation.php
+++ b/web/core/modules/taxonomy/src/Plugin/migrate/source/d6/TermLocalizedTranslation.php
@@ -70,7 +70,13 @@ public function prepareRow(Row $row) {
     $query->condition('lt.language', $language);
     $query->addField('lt', 'translation');
     $results = $query->execute()->fetchAssoc();
-    $row->setSourceProperty($other_property . '_translated', $results['translation']);
+    if ($results) {
+      $row->setSourceProperty($other_property . '_translated', $results['translation']);
+    }
+    else {
+      // The translation does not exist.
+      $row->setSourceProperty($other_property . '_translated', NULL);
+    }
 
     parent::prepareRow($row);
   }
diff --git a/web/core/modules/taxonomy/taxonomy.module b/web/core/modules/taxonomy/taxonomy.module
index efb1850377..50a2fd83a6 100644
--- a/web/core/modules/taxonomy/taxonomy.module
+++ b/web/core/modules/taxonomy/taxonomy.module
@@ -268,7 +268,7 @@ function template_preprocess_taxonomy_term(&$variables) {
   /** @var \Drupal\taxonomy\TermInterface $term */
   $term = $variables['term'];
 
-  $variables['url'] = $term->toUrl()->toString();
+  $variables['url'] = !$term->isNew() ? $term->toUrl()->toString() : NULL;
 
   // Make name field available separately.  Skip this custom preprocessing if
   // the field display is configurable and skipping has been enabled.
diff --git a/web/core/modules/taxonomy/taxonomy.post_update.php b/web/core/modules/taxonomy/taxonomy.post_update.php
index 6b1c6bde08..250c187114 100644
--- a/web/core/modules/taxonomy/taxonomy.post_update.php
+++ b/web/core/modules/taxonomy/taxonomy.post_update.php
@@ -249,7 +249,7 @@ function taxonomy_post_update_configure_status_field_widget(&$sandbox = NULL) {
         ],
       ]);
       return TRUE;
-    };
+    }
     return FALSE;
   });
 }
diff --git a/web/core/modules/taxonomy/tests/src/Kernel/TermKernelTest.php b/web/core/modules/taxonomy/tests/src/Kernel/TermKernelTest.php
index 9709b65efc..9d23245091 100644
--- a/web/core/modules/taxonomy/tests/src/Kernel/TermKernelTest.php
+++ b/web/core/modules/taxonomy/tests/src/Kernel/TermKernelTest.php
@@ -145,4 +145,27 @@ public function testTaxonomyVocabularyTree() {
     $this->assertEqual(5, count($ancestors), 'The term has five ancestors including the term itself.');
   }
 
+  /**
+   * Tests that a Term is renderable when unsaved (preview).
+   */
+  public function testTermPreview() {
+    $entity_manager = \Drupal::entityTypeManager();
+    $vocabulary = $this->createVocabulary();
+
+    // Create a unsaved term.
+    $term = $entity_manager->getStorage('taxonomy_term')->create([
+      'vid' => $vocabulary->id(),
+      'name' => 'Inator',
+    ]);
+
+    // Confirm we can get the view of unsaved term.
+    $render_array = $entity_manager->getViewBuilder('taxonomy_term')
+      ->view($term);
+    $this->assertTrue(!empty($render_array), 'Term view builder is built.');
+
+    // Confirm we can render said view.
+    $rendered = \Drupal::service('renderer')->renderPlain($render_array);
+    $this->assertTrue(!empty(trim($rendered)), 'Term is able to be rendered.');
+  }
+
 }
diff --git a/web/core/modules/taxonomy/tests/src/Kernel/Views/ArgumentValidatorTermTest.php b/web/core/modules/taxonomy/tests/src/Kernel/Views/ArgumentValidatorTermTest.php
index aa4269afc5..07e3ea64b4 100644
--- a/web/core/modules/taxonomy/tests/src/Kernel/Views/ArgumentValidatorTermTest.php
+++ b/web/core/modules/taxonomy/tests/src/Kernel/Views/ArgumentValidatorTermTest.php
@@ -61,7 +61,7 @@ public function testArgumentValidatorTerm() {
     $view->initHandlers();
 
     // Test the single validator for term IDs.
-    $view->argument['tid']->validator->options['type'] = 'tid';
+    $view->argument['tid']->options['validate_options']['multiple'] = 0;
 
     // Pass in a single valid term.
     foreach ($this->terms as $term) {
@@ -78,7 +78,7 @@ public function testArgumentValidatorTerm() {
     $view->argument['tid']->argument_validated = NULL;
 
     // Test the multiple validator for term IDs.
-    $view->argument['tid']->validator->options['type'] = 'tids';
+    $view->argument['tid']->options['validate_options']['multiple'] = 1;
     $view->argument['tid']->options['break_phrase'] = TRUE;
 
     // Pass in a single term.
diff --git a/web/core/modules/toolbar/css/toolbar.module.css b/web/core/modules/toolbar/css/toolbar.module.css
index aad54b0a0e..4f871ba89f 100644
--- a/web/core/modules/toolbar/css/toolbar.module.css
+++ b/web/core/modules/toolbar/css/toolbar.module.css
@@ -79,7 +79,7 @@
   right: 0;
   left: 0;
 }
-/* .toolbar-loading is required by toolbar JavaScript to pre-render markup
+/* .toolbar-loading is required by Toolbar JavaScript to pre-render markup
  * style to avoid extra reflow & flicker. */
 @media (min-width: 61em) {
   .toolbar-loading.toolbar-horizontal .toolbar .toolbar-bar .toolbar-tab:last-child .toolbar-tray {
diff --git a/web/core/modules/update/src/Form/UpdateManagerUpdate.php b/web/core/modules/update/src/Form/UpdateManagerUpdate.php
index c42928e8d2..cd245480cb 100644
--- a/web/core/modules/update/src/Form/UpdateManagerUpdate.php
+++ b/web/core/modules/update/src/Form/UpdateManagerUpdate.php
@@ -8,6 +8,7 @@
 use Drupal\Core\Link;
 use Drupal\Core\State\StateInterface;
 use Drupal\Core\Url;
+use Drupal\update\ModuleVersion;
 use Symfony\Component\DependencyInjection\ContainerInterface;
 
 /**
@@ -133,7 +134,8 @@ public function buildForm(array $form, FormStateInterface $form_state) {
 
       $recommended_release = $project['releases'][$project['recommended']];
       $recommended_version = '{{ release_version }} (<a href="{{ release_link }}" title="{{ project_title }}">{{ release_notes }}</a>)';
-      if ($recommended_release['version_major'] != $project['existing_major']) {
+      $recommended_version_parser = ModuleVersion::createFromVersionString($recommended_release['version']);
+      if ($recommended_version_parser->getMajorVersion() != $project['existing_major']) {
         $recommended_version .= '<div title="{{ major_update_warning_title }}" class="update-major-version-warning">{{ major_update_warning_text }}</div>';
       }
 
diff --git a/web/core/modules/update/src/ModuleVersion.php b/web/core/modules/update/src/ModuleVersion.php
new file mode 100644
index 0000000000..987674107f
--- /dev/null
+++ b/web/core/modules/update/src/ModuleVersion.php
@@ -0,0 +1,131 @@
+<?php
+
+namespace Drupal\update;
+
+/**
+ * Provides a module version value object.
+ *
+ * @internal
+ *
+ * @see https://www.drupal.org/drupalorg/docs/apis/update-status-xml.
+ */
+final class ModuleVersion {
+
+  /**
+   * The '8.x-' prefix is used on contrib module version numbers.
+   *
+   * @var string
+   */
+  const CORE_PREFIX = '8.x-';
+
+  /**
+   * The major version.
+   *
+   * @var string
+   */
+  protected $majorVersion;
+
+  /**
+   * The version extra string.
+   *
+   * For example, if the module version is '2.0.3-alpha1', then the version
+   * extra string is 'alpha1'.
+   *
+   * @var string|null
+   */
+  protected $versionExtra;
+
+  /**
+   * Constructs a module version object from a version string.
+   *
+   * @param string $version_string
+   *   The version string.
+   *
+   * @return \Drupal\update\ModuleVersion
+   *   The module version instance.
+   */
+  public static function createFromVersionString($version_string) {
+    $original_version = $version_string;
+    if (strpos($version_string, static::CORE_PREFIX) === 0 && $version_string !== '8.x-dev') {
+      $version_string = preg_replace('/8\.x-/', '', $version_string, 1);
+    }
+    else {
+      // Ensure the version string has no unsupported core prefixes.
+      $dot_x_position = strpos($version_string, '.x-');
+      if ($dot_x_position === 1 || $dot_x_position === 2) {
+        $after_core_prefix = explode('.x-', $version_string)[1];
+        if ($after_core_prefix !== 'dev') {
+          throw new \UnexpectedValueException("Unexpected version core prefix in $version_string. The only core prefix expected in \Drupal\update\ModuleVersion is: 8.x-");
+        }
+      }
+    }
+    $version_parts = explode('.', $version_string);
+    $major_version = $version_parts[0];
+    $version_parts_count = count($version_parts);
+    $last_part_split = explode('-', $version_parts[count($version_parts) - 1]);
+    $version_extra = count($last_part_split) === 1 ? NULL : $last_part_split[1];
+    if ($version_parts_count > 3 || $version_parts_count < 2
+       || !is_numeric($major_version)
+       || ($version_parts_count === 3 && !is_numeric($version_parts[1]))
+      // The only case where a non-numeric version part other the extra part is
+      // allowed is in development versions like 8.x-1.x-dev, 1.2.x-dev or
+      // 1.x-dev.
+       || (!is_numeric($last_part_split[0]) && $last_part_split !== 'x' && $version_extra !== 'dev')) {
+      throw new \UnexpectedValueException("Unexpected version number in: $original_version");
+    }
+    return new static($major_version, $version_extra);
+  }
+
+  /**
+   * Constructs a ModuleVersion object.
+   *
+   * @param string $major_version
+   *   The major version.
+   * @param string|null $version_extra
+   *   The extra version string.
+   */
+  private function __construct($major_version, $version_extra) {
+    $this->majorVersion = $major_version;
+    $this->versionExtra = $version_extra;
+  }
+
+  /**
+   * Constructs a module version object from a support branch.
+   *
+   * This can be used to determine the major version of the branch.
+   * ::getVersionExtra() will always return NULL for branches.
+   *
+   * @param string $branch
+   *   The support branch.
+   *
+   * @return \Drupal\update\ModuleVersion
+   *   The module version instance.
+   */
+  public static function createFromSupportBranch($branch) {
+    if (substr($branch, -1) !== '.') {
+      throw new \UnexpectedValueException("Invalid support branch: $branch");
+    }
+    return static::createFromVersionString($branch . '0');
+  }
+
+  /**
+   * Gets the major version.
+   *
+   * @return string
+   *   The major version.
+   */
+  public function getMajorVersion() {
+    return $this->majorVersion;
+  }
+
+  /**
+   * Gets the version extra string at the end of the version number.
+   *
+   * @return string|null
+   *   The version extra string if available, or otherwise NULL.
+   */
+  public function getVersionExtra() {
+    return $this->versionExtra;
+  }
+
+}
diff --git a/web/core/modules/update/src/ProjectCoreCompatibility.php b/web/core/modules/update/src/ProjectCoreCompatibility.php
new file mode 100644
index 0000000000..42f5a061b5
--- /dev/null
+++ b/web/core/modules/update/src/ProjectCoreCompatibility.php
@@ -0,0 +1,229 @@
+<?php
+
+namespace Drupal\update;
+
+use Composer\Semver\Semver;
+use Composer\Semver\VersionParser;
+use Drupal\Core\StringTranslation\StringTranslationTrait;
+
+/**
+ * Utility class to set core compatibility messages for project releases.
+ *
+ * @internal
+ *   This class implements logic used by update_calculate_project_status(). It
+ *   should not be called directly.
+ */
+final class ProjectCoreCompatibility {
+
+  use StringTranslationTrait;
+
+  /**
+   * The currently installed version of Drupal core.
+   *
+   * @var string
+   */
+  protected $existingCoreVersion;
+
+  /**
+   * Cache of core versions that are available for updates.
+   *
+   * @var string[]
+   */
+  protected $possibleCoreUpdateVersions;
+
+  /**
+   * Cache of core compatibility messages per core version constraint.
+   *
+   * Keys are core version constraint strings, values are human-readable
+   * messages about the versions of core that version constraint maps to.
+   *
+   * This list is cached since many project releases will use the same core
+   * compatibility constraint.
+   *
+   * @var string[]
+   */
+  protected $compatibilityMessages = [];
+
+  /**
+   * Constructs a ProjectCoreCompatibility object.
+   *
+   * @param array $core_data
+   *   The project data for Drupal core as returned by
+   *   \Drupal\update\UpdateManagerInterface::getProjects() and then processed
+   *   by update_process_project_info() and
+   *   update_calculate_project_update_status().
+   * @param array $core_releases
+   *   The Drupal core available releases.
+   *
+   * @see \Drupal\update\UpdateManagerInterface::getProjects()
+   * @see update_process_project_info()
+   * @see update_calculate_project_update_status()
+   */
+  public function __construct(array $core_data, array $core_releases) {
+    if (isset($core_data['existing_version'])) {
+      $this->existingCoreVersion = $core_data['existing_version'];
+      $this->possibleCoreUpdateVersions = $this->getPossibleCoreUpdateVersions($core_releases);
+    }
+  }
+
+  /**
+   * Gets the core versions that should be considered for compatibility ranges.
+   *
+   * @param array $core_releases
+   *   The Drupal core available releases.
+   *
+   * @return string[]
+   *   The core version numbers that are possible to update the site to.
+   */
+  protected function getPossibleCoreUpdateVersions(array $core_releases) {
+    if (!isset($core_releases[$this->existingCoreVersion])) {
+      // If we can't determine the existing version of core then we can't
+      // calculate the core compatibility of a given release based on core
+      // versions after the existing version.
+      return [];
+    }
+    $core_release_versions = array_keys($core_releases);
+    $possible_core_update_versions = Semver::satisfiedBy($core_release_versions, '>= ' . $this->existingCoreVersion);
+    $possible_core_update_versions = Semver::sort($possible_core_update_versions);
+    $possible_core_update_versions = array_filter($possible_core_update_versions, function ($version) {
+      return VersionParser::parseStability($version) === 'stable';
+    });
+    return $possible_core_update_versions;
+  }
+
+  /**
+   * Sets core compatibility messages for project releases.
+   *
+   * @param array &$project_data
+   *   The project data as returned by
+   *   \Drupal\update\UpdateManagerInterface::getProjects() and then processed
+   *   by update_process_project_info() and
+   *   update_calculate_project_update_status(). If set, the following keys are
+   *   used in this method:
+   *   - recommended (string): A project version number.
+   *   - latest_version (string): A project version number.
+   *   - also (string[]): Project version numbers.
+   *   - releases (array[]): An array where the keys are project version numbers
+   *     and the values are arrays of project release information.
+   *   - security updates (array[]): An array of project release information.
+   *
+   * @see \Drupal\update\UpdateManagerInterface::getProjects()
+   * @see update_process_project_info()
+   * @see update_calculate_project_update_status()
+   */
+  public function setReleaseMessage(array &$project_data) {
+    if (empty($this->possibleCoreUpdateVersions)) {
+      return;
+    }
+
+    // Get the various releases that will need to have core compatibility
+    // messages added to them.
+    $releases_to_set = [];
+    $versions = [];
+    if (!empty($project_data['recommended'])) {
+      $versions[] = $project_data['recommended'];
+    }
+    if (!empty($project_data['latest_version'])) {
+      $versions[] = $project_data['latest_version'];
+    }
+    if (!empty($project_data['also'])) {
+      $versions = array_merge($versions, $project_data['also']);
+    }
+    foreach ($versions as $version) {
+      if (isset($project_data['releases'][$version])) {
+        $releases_to_set[] = &$project_data['releases'][$version];
+      }
+    }
+    if (!empty($project_data['security updates'])) {
+      foreach ($project_data['security updates'] as &$security_update) {
+        $releases_to_set[] = &$security_update;
+      }
+    }
+    foreach ($releases_to_set as &$release) {
+      if (!empty($release['core_compatibility'])) {
+        $release['core_compatible'] = $this->isCoreCompatible($release['core_compatibility']);
+        $release['core_compatibility_message'] = $this->createMessageFromCoreCompatibility($release['core_compatibility']);
+      }
+    }
+  }
+
+  /**
+   * Determines if a release is compatible with the currently installed core.
+   *
+   * @param string $core_compatibility_constraint
+   *   A semantic version constraint.
+   *
+   * @return bool
+   *   TRUE if the given constraint is satisfied by the currently installed
+   *   version of Drupal core, otherwise FALSE.
+   */
+  protected function isCoreCompatible($core_compatibility_constraint) {
+    return Semver::satisfies($this->existingCoreVersion, $core_compatibility_constraint);
+  }
+
+  /**
+   * Creates core a compatibility message from a semantic version constraint.
+   *
+   * @param string $core_compatibility_constraint
+   *   A semantic version constraint.
+   *
+   * @return string
+   *   The core compatibility message.
+   */
+  protected function createMessageFromCoreCompatibility($core_compatibility_constraint) {
+    if (!isset($this->compatibilityMessages[$core_compatibility_constraint])) {
+      $core_compatibility_ranges = $this->getCompatibilityRanges($core_compatibility_constraint);
+      $range_messages = [];
+      foreach ($core_compatibility_ranges as $core_compatibility_range) {
+        if (count($core_compatibility_range) === 2) {
+          $range_messages[] = $this->t('@low_version_number to @high_version_number', ['@low_version_number' => $core_compatibility_range[0], '@high_version_number' => $core_compatibility_range[1]]);
+        }
+        else {
+          $range_messages[] = $core_compatibility_range[0];
+        }
+      }
+      $this->compatibilityMessages[$core_compatibility_constraint] = $this->t('Requires Drupal core:') . ' ' . implode(', ', $range_messages);
+    }
+    return $this->compatibilityMessages[$core_compatibility_constraint];
+  }
+
+  /**
+   * Gets the compatibility ranges for a semantic version constraint.
+   *
+   * @param string $core_compatibility_constraint
+   *   A semantic version constraint.
+   *
+   * @return array[]
+   *   An array compatibility ranges. If a range array has 2 elements then this
+   *   denotes a range of compatibility between and including the 2 versions. If
+   *   the range has 1 element then it denotes compatibility with a single
+   *   version.
+   */
+  protected function getCompatibilityRanges($core_compatibility_constraint) {
+    $compatibility_ranges = [];
+    foreach ($this->possibleCoreUpdateVersions as $possible_core_update_version) {
+      if (Semver::satisfies($possible_core_update_version, $core_compatibility_constraint)) {
+        if (empty($range)) {
+          $range[] = $possible_core_update_version;
+        }
+        else {
+          $range[1] = $possible_core_update_version;
+        }
+      }
+      else {
+        // If core version does not satisfy the constraint and there is a non
+        // empty range, add it to the list of ranges.
+        if (!empty($range)) {
+          $compatibility_ranges[] = $range;
+          // Start a new range.
+          $range = [];
+        }
+      }
+    }
+    if (!empty($range)) {
+      $compatibility_ranges[] = $range;
+    }
+    return $compatibility_ranges;
+  }
+
+}
diff --git a/web/core/modules/update/src/ProjectSecurityData.php b/web/core/modules/update/src/ProjectSecurityData.php
new file mode 100644
index 0000000000..171b130e35
--- /dev/null
+++ b/web/core/modules/update/src/ProjectSecurityData.php
@@ -0,0 +1,211 @@
+<?php
+
+namespace Drupal\update;
+
+/**
+ * Calculates a project's security coverage information.
+ *
+ * @internal
+ *   This class implements logic to determine security coverage for Drupal core
+ *   according to Drupal core security policy. It should not be called directly.
+ */
+final class ProjectSecurityData {
+
+  /**
+   * The number of minor versions of Drupal core that receive security coverage.
+   *
+   * For example, if this value is 2 and the existing version is 9.0.1, the
+   * 9.0.x branch will receive security coverage until the release of version
+   * 9.2.0.
+   */
+  const CORE_MINORS_WITH_SECURITY_COVERAGE = 2;
+
+  /**
+   * Define constants for versions with security coverage end dates.
+   *
+   * Two types of constants are supported:
+   * - SECURITY_COVERAGE_END_DATE_[VERSION_MAJOR]_[VERSION_MINOR]: A date in
+   *   'Y-m-d' or 'Y-m' format.
+   * - SECURITY_COVERAGE_ENDING_WARN_DATE_[VERSION_MAJOR]_[VERSION_MINOR]: A
+   *   date in 'Y-m-d' format.
+   *
+   * @see \Drupal\update\ProjectSecurityRequirement::getDateEndRequirement()
+   */
+  const SECURITY_COVERAGE_END_DATE_8_8 = '2020-12-02';
+
+  const SECURITY_COVERAGE_ENDING_WARN_DATE_8_8 = '2020-06-02';
+
+  const SECURITY_COVERAGE_END_DATE_8_9 = '2021-11';
+
+  /**
+   * The existing (currently installed) version of the project.
+   *
+   * Because this class only handles the Drupal core project, values will be
+   * semantic version numbers such as 8.8.0, 8.8.0-alpha1, or 9.0.0.
+   *
+   * @var string|null
+   */
+  protected $existingVersion;
+
+  /**
+   * Releases as returned by update_get_available().
+   *
+   * @var array
+   *
+   * Each release item in the array has metadata about that release. This class
+   * uses the keys:
+   * - status (string): The status of the release.
+   * - version (string): The version number of the release.
+   *
+   * @see update_get_available()
+   */
+  protected $releases;
+
+  /**
+   * Constructs a ProjectSecurityData object.
+   *
+   * @param string $existing_version
+   *   The existing (currently installed) version of the project.
+   * @param array $releases
+   *   Project releases as returned by update_get_available().
+   */
+  private function __construct($existing_version = NULL, array $releases = []) {
+    $this->existingVersion = $existing_version;
+    $this->releases = $releases;
+  }
+
+  /**
+   * Creates a ProjectSecurityData object from project data and releases.
+   *
+   * @param array $project_data
+   *   Project data from Drupal\update\UpdateManagerInterface::getProjects() and
+   *   processed by update_process_project_info().
+   * @param array $releases
+   *   Project releases as returned by update_get_available().
+   *
+   * @return static
+   */
+  public static function createFromProjectDataAndReleases(array $project_data, array $releases) {
+    if (!($project_data['project_type'] === 'core' && $project_data['name'] === 'drupal')) {
+      // Only Drupal core has an explicit coverage range.
+      return new static();
+    }
+    return new static($project_data['existing_version'], $releases);
+  }
+
+  /**
+   * Gets the security coverage information for a project.
+   *
+   * Currently only Drupal core is supported.
+   *
+   * @return array
+   *   The security coverage information, or an empty array if no security
+   *   information is available for the project. If security coverage is based
+   *   on release of a specific version, the array will have the following
+   *   keys:
+   *   - security_coverage_end_version (string): The minor version the existing
+   *     version will receive security coverage until.
+   *   - additional_minors_coverage (int): The number of additional minor
+   *     versions the existing version will receive security coverage.
+   *   If the security coverage is based on a specific date, the array will have
+   *   the following keys:
+   *   - security_coverage_end_date (string): The month or date security
+   *     coverage will end for the existing version. It can be in either
+   *     'YYYY-MM' or 'YYYY-MM-DD' format.
+   *   - (optional) security_coverage_ending_warn_date (string): The date, in
+   *     the format 'YYYY-MM-DD', after which a warning should be displayed
+   *     about upgrading to another version.
+   */
+  public function getCoverageInfo() {
+    if (empty($this->releases[$this->existingVersion])) {
+      // If the existing version does not have a release, we cannot get the
+      // security coverage information.
+      return [];
+    }
+    $info = [];
+    $existing_release_version = ModuleVersion::createFromVersionString($this->existingVersion);
+
+    // Check if the installed version has a specific end date defined.
+    $version_suffix = $existing_release_version->getMajorVersion() . '_' . $this->getSemanticMinorVersion($this->existingVersion);
+    if (defined("self::SECURITY_COVERAGE_END_DATE_$version_suffix")) {
+      $info['security_coverage_end_date'] = constant("self::SECURITY_COVERAGE_END_DATE_$version_suffix");
+      $info['security_coverage_ending_warn_date'] =
+        defined("self::SECURITY_COVERAGE_ENDING_WARN_DATE_$version_suffix")
+          ? constant("self::SECURITY_COVERAGE_ENDING_WARN_DATE_$version_suffix")
+          : NULL;
+    }
+    elseif ($security_coverage_until_version = $this->getSecurityCoverageUntilVersion()) {
+      $info['security_coverage_end_version'] = $security_coverage_until_version;
+      $info['additional_minors_coverage'] = $this->getAdditionalSecurityCoveredMinors($security_coverage_until_version);
+    }
+    return $info;
+  }
+
+  /**
+   * Gets the release the current minor will receive security coverage until.
+   *
+   * @todo In https://www.drupal.org/node/2608062 determine how we will know
+   *    what the final minor release of a particular major version will be. This
+   *    method should not return a version beyond that minor.
+   *
+   * @return string|null
+   *   The version the existing version will receive security coverage until or
+   *   NULL if this cannot be determined.
+   */
+  private function getSecurityCoverageUntilVersion() {
+    $existing_release_version = ModuleVersion::createFromVersionString($this->existingVersion);
+    if (!empty($existing_release_version->getVersionExtra())) {
+      // Only full releases receive security coverage.
+      return NULL;
+    }
+
+    return $existing_release_version->getMajorVersion() . '.'
+      . ($this->getSemanticMinorVersion($this->existingVersion) + static::CORE_MINORS_WITH_SECURITY_COVERAGE)
+      . '.0';
+  }
+
+  /**
+   * Gets the number of additional minor security covered releases.
+   *
+   * @param string $security_covered_version
+   *   The version until which the existing version receives security coverage.
+   *
+   * @return int|null
+   *   The number of additional minor releases that receive security coverage,
+   *   or NULL if this cannot be determined.
+   */
+  private function getAdditionalSecurityCoveredMinors($security_covered_version) {
+    $security_covered_version_major = ModuleVersion::createFromVersionString($security_covered_version)->getMajorVersion();
+    $security_covered_version_minor = $this->getSemanticMinorVersion($security_covered_version);
+    foreach ($this->releases as $release) {
+      $release_version = ModuleVersion::createFromVersionString($release['version']);
+      if ($release_version->getMajorVersion() === $security_covered_version_major && $release['status'] === 'published' && !$release_version->getVersionExtra()) {
+        // The releases are ordered with the most recent releases first.
+        // Therefore if we have found an official, published release with the
+        // same major version as $security_covered_version then this release
+        // can be used to determine the latest minor.
+        $latest_minor = $this->getSemanticMinorVersion($release['version']);
+        break;
+      }
+    }
+    // If $latest_minor is set, we know that $latest_minor and
+    // $security_covered_version_minor have the same major version. Therefore we
+    // can simply subtract to determine the number of additional minor security
+    // covered releases.
+    return isset($latest_minor) ? $security_covered_version_minor - $latest_minor : NULL;
+  }
+
+  /**
+   * Gets the minor version for a semantic version string.
+   *
+   * @param string $version
+   *   The semantic version string.
+   *
+   * @return int
+   *   The minor version as an integer.
+   */
+  private function getSemanticMinorVersion($version) {
+    return (int) (explode('.', $version)[1]);
+  }
+
+}
diff --git a/web/core/modules/update/src/ProjectSecurityRequirement.php b/web/core/modules/update/src/ProjectSecurityRequirement.php
new file mode 100644
index 0000000000..b14acf5af7
--- /dev/null
+++ b/web/core/modules/update/src/ProjectSecurityRequirement.php
@@ -0,0 +1,282 @@
+<?php
+
+namespace Drupal\update;
+
+use Drupal\Core\StringTranslation\StringTranslationTrait;
+use Drupal\Core\Url;
+
+/**
+ * Class for generating a project's security requirement.
+ *
+ * @see update_requirements()
+ *
+ * @internal
+ *   This class implements logic to determine security coverage for Drupal core
+ *   according to Drupal core security policy. It should not be called directly.
+ */
+final class ProjectSecurityRequirement {
+
+  use StringTranslationTrait;
+
+  /**
+   * The project title.
+   *
+   * @var string|null
+   */
+  protected $projectTitle;
+
+  /**
+   * Security coverage information for the project.
+   *
+   * @var array
+   *
+   * @see \Drupal\update\ProjectSecurityData::getCoverageInfo()
+   */
+  private $securityCoverageInfo;
+
+  /**
+   * The next version after the installed version in the format [MAJOR].[MINOR].
+   *
+   * @var string|null
+   */
+  private $nextMajorMinorVersion;
+
+  /**
+   * The existing (currently installed) version in the format [MAJOR].[MINOR].
+   *
+   * @var string|null
+   */
+  private $existingMajorMinorVersion;
+
+  /**
+   * Constructs a ProjectSecurityRequirement object.
+   *
+   * @param string|null $project_title
+   *   The project title.
+   * @param array $security_coverage_info
+   *   Security coverage information as set by
+   *   \Drupal\update\ProjectSecurityData::getCoverageInfo().
+   * @param string|null $existing_major_minor_version
+   *   The existing (currently installed) version in the format [MAJOR].[MINOR].
+   * @param string|null $next_major_minor_version
+   *   The next version after the installed version in the format
+   *   [MAJOR].[MINOR].
+   */
+  private function __construct($project_title = NULL, array $security_coverage_info = [], $existing_major_minor_version = NULL, $next_major_minor_version = NULL) {
+    $this->projectTitle = $project_title;
+    $this->securityCoverageInfo = $security_coverage_info;
+    $this->existingMajorMinorVersion = $existing_major_minor_version;
+    $this->nextMajorMinorVersion = $next_major_minor_version;
+  }
+
+  /**
+   * Creates a ProjectSecurityRequirement object from project data.
+   *
+   * @param array $project_data
+   *   Project data from Drupal\update\UpdateManagerInterface::getProjects().
+   *   The 'security_coverage_info' key should be set by
+   *   calling \Drupal\update\ProjectSecurityData::getCoverageInfo() before
+   *   calling this method. The following keys are used in this method:
+   *   - existing_version (string): The version of the project that is installed
+   *     on the site.
+   *   - project_type (string): The type of project.
+   *   - name (string): The project machine name.
+   *   - title (string): The project title.
+   * @param array $security_coverage_info
+   *   The security coverage information as returned by
+   *   \Drupal\update\ProjectSecurityData::getCoverageInfo().
+   *
+   * @return static
+   *
+   * @see \Drupal\update\UpdateManagerInterface::getProjects()
+   * @see \Drupal\update\ProjectSecurityData::getCoverageInfo()
+   * @see update_process_project_info()
+   */
+  public static function createFromProjectDataAndSecurityCoverageInfo(array $project_data, array $security_coverage_info) {
+    if ($project_data['project_type'] !== 'core' || $project_data['name'] !== 'drupal' || empty($security_coverage_info)) {
+      return new static();
+    }
+    if (isset($project_data['existing_version'])) {
+      list($major, $minor) = explode('.', $project_data['existing_version']);
+      $existing_version = "$major.$minor";
+      $next_version = "$major." . ((int) $minor + 1);
+      return new static($project_data['title'], $security_coverage_info, $existing_version, $next_version);
+    }
+    return new static($project_data['title'], $security_coverage_info);
+  }
+
+  /**
+   * Gets the security coverage requirement, if any.
+   *
+   * @return array
+   *   Requirements array as specified by hook_requirements(), or an empty array
+   *   if no requirements can be determined.
+   */
+  public function getRequirement() {
+    if (isset($this->securityCoverageInfo['security_coverage_end_version'])) {
+      $requirement = $this->getVersionEndRequirement();
+    }
+    elseif (isset($this->securityCoverageInfo['security_coverage_end_date'])) {
+      $requirement = $this->getDateEndRequirement();
+    }
+    else {
+      return [];
+    }
+    $requirement['title'] = $this->t('Drupal core security coverage');
+    return $requirement;
+  }
+
+  /**
+   * Gets the requirements based on security coverage until a specific version.
+   *
+   * @return array
+   *   Requirements array as specified by hook_requirements().
+   */
+  private function getVersionEndRequirement() {
+    $requirement = [];
+    if ($security_coverage_message = $this->getVersionEndCoverageMessage()) {
+      $requirement['description'] = $security_coverage_message;
+      if ($this->securityCoverageInfo['additional_minors_coverage'] > 0) {
+        $requirement['value'] = $this->t(
+          'Covered until @end_version',
+          ['@end_version' => $this->securityCoverageInfo['security_coverage_end_version']]
+        );
+        $requirement['severity'] = $this->securityCoverageInfo['additional_minors_coverage'] > 1 ? REQUIREMENT_INFO : REQUIREMENT_WARNING;
+      }
+      else {
+        $requirement['value'] = $this->t('Coverage has ended');
+        $requirement['severity'] = REQUIREMENT_ERROR;
+      }
+    }
+    return $requirement;
+  }
+
+  /**
+   * Gets the message for additional minor version security coverage.
+   *
+   * @return array[]
+   *   A render array containing security coverage message.
+   *
+   * @see \Drupal\update\ProjectSecurityData::getCoverageInfo()
+   */
+  private function getVersionEndCoverageMessage() {
+    if ($this->securityCoverageInfo['additional_minors_coverage'] > 0) {
+      // If the installed minor version will receive security coverage until
+      // newer minor versions are released, inform the user.
+      if ($this->securityCoverageInfo['additional_minors_coverage'] === 1) {
+        // If the installed minor version will only receive security coverage
+        // for 1 newer minor core version, encourage the site owner to update
+        // soon.
+        $message['coverage_message'] = [
+          '#markup' => $this->t(
+            '<a href=":update_status_report">Update to @next_minor or higher</a> soon to continue receiving security updates.',
+            [
+              ':update_status_report' => Url::fromRoute('update.status')->toString(),
+              '@next_minor' => $this->nextMajorMinorVersion,
+            ]
+          ),
+          '#suffix' => ' ',
+        ];
+      }
+    }
+    else {
+      // Because the current minor version no longer has security coverage,
+      // advise the site owner to update.
+      $message['coverage_message'] = [
+        '#markup' => $this->getVersionNoSecurityCoverageMessage(),
+        '#suffix' => ' ',
+      ];
+    }
+    $message['release_cycle_link'] = [
+      '#markup' => $this->getReleaseCycleLink(),
+    ];
+    return $message;
+  }
+
+  /**
+   * Gets the security coverage requirement based on an end date.
+   *
+   * @return array
+   *   Requirements array as specified by hook_requirements().
+   */
+  private function getDateEndRequirement() {
+    $requirement = [];
+    /** @var \Drupal\Component\Datetime\Time $time */
+    $time = \Drupal::service('datetime.time');
+    /** @var \Drupal\Core\Datetime\DateFormatterInterface $date_formatter */
+    $date_formatter = \Drupal::service('date.formatter');
+    // 'security_coverage_end_date' will either be in format 'Y-m-d' or 'Y-m'.
+    if (substr_count($this->securityCoverageInfo['security_coverage_end_date'], '-') === 2) {
+      $date_format = 'Y-m-d';
+      $full_security_coverage_end_date = $this->securityCoverageInfo['security_coverage_end_date'];
+    }
+    else {
+      $date_format = 'Y-m';
+      // If the date does not include a day, use '15'. When calling
+      // \DateTime::createFromFormat() the current day will be used if one is
+      // not provided. This may cause the month to be wrong at the beginning or
+      // end of the month. '15' will never be displayed because we are using the
+      // 'Y-m' format.
+      $full_security_coverage_end_date = $this->securityCoverageInfo['security_coverage_end_date'] . '-15';
+    }
+
+    $comparable_request_date = $date_formatter->format($time->getRequestTime(), 'custom', $date_format);
+    if ($this->securityCoverageInfo['security_coverage_end_date'] <= $comparable_request_date) {
+      // Security coverage is over.
+      $requirement['value'] = $this->t('Coverage has ended');
+      $requirement['severity'] = REQUIREMENT_ERROR;
+      $requirement['description']['coverage_message'] = [
+        '#markup' => $this->getVersionNoSecurityCoverageMessage(),
+        '#suffix' => ' ',
+      ];
+    }
+    else {
+      $security_coverage_end_timestamp = \DateTime::createFromFormat('Y-m-d', $full_security_coverage_end_date)->getTimestamp();
+      $output_date_format = $date_format === 'Y-m-d' ? 'Y-M-d' : 'Y-M';
+      $formatted_end_date = $date_formatter
+        ->format($security_coverage_end_timestamp, 'custom', $output_date_format);
+      $translation_arguments = ['@date' => $formatted_end_date];
+      $requirement['value'] = $this->t('Covered until @date', $translation_arguments);
+      $requirement['severity'] = REQUIREMENT_INFO;
+      // 'security_coverage_ending_warn_date' will always be in the format
+      // 'Y-m-d'.
+      $request_date = $date_formatter->format($time->getRequestTime(), 'custom', 'Y-m-d');
+      if (!empty($this->securityCoverageInfo['security_coverage_ending_warn_date']) && $this->securityCoverageInfo['security_coverage_ending_warn_date'] <= $request_date) {
+        $requirement['description']['coverage_message'] = [
+          '#markup' => $this->t('Update to a supported minor version soon to continue receiving security updates.'),
+          '#suffix' => ' ',
+        ];
+        $requirement['severity'] = REQUIREMENT_WARNING;
+      }
+    }
+    $requirement['description']['release_cycle_link'] = ['#markup' => $this->getReleaseCycleLink()];
+    return $requirement;
+  }
+
+  /**
+   * Gets the formatted message for a project with no security coverage.
+   *
+   * @return string
+   *   The message for a version with no security coverage.
+   */
+  private function getVersionNoSecurityCoverageMessage() {
+    return $this->t(
+      '<a href=":update_status_report">Update to a supported minor</a> as soon as possible to continue receiving security updates.',
+      [':update_status_report' => Url::fromRoute('update.status')->toString()]
+    );
+  }
+
+  /**
+   * Gets a link the release cycle page on drupal.org.
+   *
+   * @return string
+   *   A link to the release cycle page on drupal.org.
+   */
+  private function getReleaseCycleLink() {
+    return $this->t(
+        'Visit the <a href=":url">release cycle overview</a> for more information on supported releases.',
+        [':url' => 'https://www.drupal.org/core/release-cycle-overview']
+      );
+  }
+
+}
diff --git a/web/core/modules/update/src/UpdateFetcher.php b/web/core/modules/update/src/UpdateFetcher.php
index 2b03c9c101..05cce763a6 100644
--- a/web/core/modules/update/src/UpdateFetcher.php
+++ b/web/core/modules/update/src/UpdateFetcher.php
@@ -77,7 +77,7 @@ public function fetchProjectData(array $project, $site_key = '') {
   public function buildFetchUrl(array $project, $site_key = '') {
     $name = $project['name'];
     $url = $this->getFetchBaseUrl($project);
-    $url .= '/' . $name . '/' . \Drupal::CORE_COMPATIBILITY;
+    $url .= '/' . $name . '/current';
 
     // Only append usage information if we have a site key and the project is
     // enabled. We do not want to record usage statistics for disabled projects.
diff --git a/web/core/modules/update/templates/update-version.html.twig b/web/core/modules/update/templates/update-version.html.twig
index c21c4f0ba4..decc9df6ec 100644
--- a/web/core/modules/update/templates/update-version.html.twig
+++ b/web/core/modules/update/templates/update-version.html.twig
@@ -6,11 +6,21 @@
  * Available variables:
  * - attributes: HTML attributes suitable for a container element.
  * - title: The title of the project.
+ * - core_compatibility_details: Render array of core compatibility details.
  * - version:  A list of data about the latest released version, containing:
  *   - version: The version number.
  *   - date: The date of the release.
  *   - download_link: The URL for the downloadable file.
  *   - release_link: The URL for the release notes.
+ *   - core_compatible: A flag indicating whether the project is compatible
+ *     with the currently installed version of Drupal core. This flag is not
+ *     set for the Drupal core project itself.
+ *   - core_compatibility_message: A message indicating the versions of Drupal
+ *     core with which this project is compatible. This message is also
+ *     contained within the 'core_compatibility_details' variable documented
+ *     above. This message is not set for the Drupal core project itself.
+ *
+ * @see template_preprocess_update_version()
  *
  * @ingroup themeable
  */
@@ -24,12 +34,19 @@
     </div>
     <div class="layout-column layout-column--half">
       <ul class="project-update__version-links">
-        <li class="project-update__download-link">
-          <a href="{{ version.download_link }}">{{ 'Download'|t }}</a>
-        </li>
+        {% if version.core_compatible is not defined or version.core_compatible %}
+          <li class="project-update__download-link">
+            <a href="{{ version.download_link }}">{{ 'Download'|t }}</a>
+          </li>
+        {% endif %}
         <li class="project-update__release-notes-link">
           <a href="{{ version.release_link }}">{{ 'Release notes'|t }}</a>
         </li>
+        {% if core_compatibility_details %}
+          <li class="project-update__compatibility-details">
+            {{ core_compatibility_details }}
+          </li>
+        {% endif %}
       </ul>
     </div>
   </div>
diff --git a/web/core/modules/update/tests/modules/update_test/aaa_update_test.1_0-supported.xml b/web/core/modules/update/tests/modules/update_test/aaa_update_test.1_0-supported.xml
new file mode 100644
index 0000000000..64feb6c8e7
--- /dev/null
+++ b/web/core/modules/update/tests/modules/update_test/aaa_update_test.1_0-supported.xml
@@ -0,0 +1,80 @@
+<?xml version="1.0" encoding="utf-8"?>
+<project xmlns:dc="http://purl.org/dc/elements/1.1/">
+<title>AAA Update test</title>
+<short_name>aaa_update_test</short_name>
+<dc:creator>Drupal</dc:creator>
+<supported_branches>8.x-1.,8.x-2.</supported_branches>
+<project_status>published</project_status>
+<link>http://example.com/project/aaa_update_test</link>
+  <terms>
+   <term><name>Projects</name><value>Modules</value></term>
+  </terms>
+<releases>
+  <release>
+    <name>aaa_update_test 8.x-2.0</name>
+    <version>8.x-2.0</version>
+    <tag>8.x-2.0</tag>
+    <status>published</status>
+    <release_link>http://example.com/aaa_update_test-8-x-2-0-release</release_link>
+    <download_link>http://example.com/aaa_update_test-8.x-2.0.tar.gz</download_link>
+    <date>1250422521</date>
+    <terms>
+      <term><name>Release type</name><value>New features</value></term>
+      <term><name>Release type</name><value>Bug fixes</value></term>
+    </terms>
+  </release>
+  <release>
+    <name>aaa_update_test 8.x-2.0-beta1</name>
+    <version>8.x-2.0-beta1</version>
+    <tag>8.x-2.0-beta1</tag>
+    <status>published</status>
+    <release_link>http://example.com/aaa_update_test-8-x-2-0-beta1-release</release_link>
+    <download_link>http://example.com/aaa_update_test-8.x-2.0-beta1.tar.gz</download_link>
+    <date>1250422521</date>
+    <terms>
+      <term><name>Release type</name><value>New features</value></term>
+      <term><name>Release type</name><value>Bug fixes</value></term>
+    </terms>
+  </release>
+  <release>
+    <name>aaa_update_test 8.x-2.0-alpha1</name>
+    <version>8.x-2.0-alpha1</version>
+    <tag>8.x-2.0-alpha1</tag>
+    <status>published</status>
+    <release_link>http://example.com/aaa_update_test-8-x-2-0-alpha1-release</release_link>
+    <download_link>http://example.com/aaa_update_test-8.x-2.0-alpha1.tar.gz</download_link>
+    <date>1250422521</date>
+    <terms>
+      <term><name>Release type</name><value>New features</value></term>
+      <term><name>Release type</name><value>Bug fixes</value></term>
+    </terms>
+  </release>
+  <release>
+    <name>aaa_update_test 8.x-1.1</name>
+    <version>8.x-1.1</version>
+    <tag>8.x-1.1</tag>
+    <status>published</status>
+    <release_link>http://example.com/aaa_update_test-8-x-1-1-release</release_link>
+    <download_link>http://example.com/aaa_update_test-8.x-1.1.tar.gz</download_link>
+    <date>1250404525</date>
+    <terms>
+      <term><name>Release type</name><value>New features</value></term>
+      <term><name>Release type</name><value>Bug fixes</value></term>
+      <term><name>Release type</name><value>Unsupported</value></term>
+    </terms>
+  </release>
+  <release>
+    <name>aaa_update_test 8.x-1.0</name>
+    <version>8.x-1.0</version>
+    <tag>8.x-1.0</tag>
+    <status>unpublished</status>
+    <release_link>http://example.com/aaa_update_test-8-x-1-0-release</release_link>
+    <download_link>http://example.com/aaa_update_test-8.x-1.0.tar.gz</download_link>
+    <date>1250404521</date>
+    <terms>
+      <term><name>Release type</name><value>New features</value></term>
+      <term><name>Release type</name><value>Bug fixes</value></term>
+    </terms>
+  </release>
+</releases>
+</project>
diff --git a/web/core/modules/update/tests/modules/update_test/aaa_update_test.1_0-unsupported.xml b/web/core/modules/update/tests/modules/update_test/aaa_update_test.1_0-unsupported.xml
new file mode 100644
index 0000000000..e6ca5f1fb6
--- /dev/null
+++ b/web/core/modules/update/tests/modules/update_test/aaa_update_test.1_0-unsupported.xml
@@ -0,0 +1,86 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+This XML file is the exact same as the file aaa_update_test.1_0-supported.xml
+except 'supported_branches' in this file does not contain the '8.x-1.' branch.
+Therefore, all the releases that start with '8.x-1.' are in an unsupported
+branch.
+-->
+<project xmlns:dc="http://purl.org/dc/elements/1.1/">
+<title>AAA Update test</title>
+<short_name>aaa_update_test</short_name>
+<dc:creator>Drupal</dc:creator>
+<supported_branches>8.x-2.</supported_branches>
+<project_status>published</project_status>
+<link>http://example.com/project/aaa_update_test</link>
+  <terms>
+   <term><name>Projects</name><value>Modules</value></term>
+  </terms>
+<releases>
+  <release>
+    <name>aaa_update_test 8.x-2.0</name>
+    <version>8.x-2.0</version>
+    <tag>8.x-2.0</tag>
+    <status>published</status>
+    <release_link>http://example.com/aaa_update_test-8-x-2-0-release</release_link>
+    <download_link>http://example.com/aaa_update_test-8.x-2.0.tar.gz</download_link>
+    <date>1250422521</date>
+    <terms>
+      <term><name>Release type</name><value>New features</value></term>
+      <term><name>Release type</name><value>Bug fixes</value></term>
+    </terms>
+  </release>
+  <release>
+    <name>aaa_update_test 8.x-2.0-beta1</name>
+    <version>8.x-2.0-beta1</version>
+    <tag>8.x-2.0-beta1</tag>
+    <status>published</status>
+    <release_link>http://example.com/aaa_update_test-8-x-2-0-beta1-release</release_link>
+    <download_link>http://example.com/aaa_update_test-8.x-2.0-beta1.tar.gz</download_link>
+    <date>1250422521</date>
+    <terms>
+      <term><name>Release type</name><value>New features</value></term>
+      <term><name>Release type</name><value>Bug fixes</value></term>
+    </terms>
+  </release>
+  <release>
+    <name>aaa_update_test 8.x-2.0-alpha1</name>
+    <version>8.x-2.0-alpha1</version>
+    <tag>8.x-2.0-alpha1</tag>
+    <status>published</status>
+    <release_link>http://example.com/aaa_update_test-8-x-2-0-alpha1-release</release_link>
+    <download_link>http://example.com/aaa_update_test-8.x-2.0-alpha1.tar.gz</download_link>
+    <date>1250422521</date>
+    <terms>
+      <term><name>Release type</name><value>New features</value></term>
+      <term><name>Release type</name><value>Bug fixes</value></term>
+    </terms>
+  </release>
+  <release>
+    <name>aaa_update_test 8.x-1.1</name>
+    <version>8.x-1.1</version>
+    <tag>8.x-1.1</tag>
+    <status>published</status>
+    <release_link>http://example.com/aaa_update_test-8-x-1-1-release</release_link>
+    <download_link>http://example.com/aaa_update_test-8.x-1.1.tar.gz</download_link>
+    <date>1250404525</date>
+    <terms>
+      <term><name>Release type</name><value>New features</value></term>
+      <term><name>Release type</name><value>Bug fixes</value></term>
+      <term><name>Release type</name><value>Unsupported</value></term>
+    </terms>
+  </release>
+  <release>
+    <name>aaa_update_test 8.x-1.0</name>
+    <version>8.x-1.0</version>
+    <tag>8.x-1.0</tag>
+    <status>unpublished</status>
+    <release_link>http://example.com/aaa_update_test-8-x-1-0-release</release_link>
+    <download_link>http://example.com/aaa_update_test-8.x-1.0.tar.gz</download_link>
+    <date>1250404521</date>
+    <terms>
+      <term><name>Release type</name><value>New features</value></term>
+      <term><name>Release type</name><value>Bug fixes</value></term>
+    </terms>
+  </release>
+</releases>
+</project>
diff --git a/web/core/modules/update/tests/modules/update_test/aaa_update_test.1_0.xml b/web/core/modules/update/tests/modules/update_test/aaa_update_test.1_0.xml
index 82362fe846..8b7d5806a0 100644
--- a/web/core/modules/update/tests/modules/update_test/aaa_update_test.1_0.xml
+++ b/web/core/modules/update/tests/modules/update_test/aaa_update_test.1_0.xml
@@ -3,28 +3,35 @@
 <title>AAA Update test</title>
 <short_name>aaa_update_test</short_name>
 <dc:creator>Drupal</dc:creator>
-<api_version>8.x</api_version>
-<recommended_major>1</recommended_major>
-<supported_majors>1</supported_majors>
-<default_major>1</default_major>
+<supported_branches>8.x-1.</supported_branches>
 <project_status>published</project_status>
 <link>http://example.com/project/aaa_update_test</link>
   <terms>
    <term><name>Projects</name><value>Modules</value></term>
   </terms>
 <releases>
+  <release>
+    <!-- This release is not in a supported branch; therefore it should not be recommended. -->
+    <name>aaa_update_test 8.x-3.0</name>
+    <version>8.x-3.0</version>
+    <tag>DRUPAL-8--3-0</tag>
+    <status>published</status>
+    <release_link>http://example.com/aaa_update_test-8-x-3-0-release</release_link>
+    <download_link>http://example.com/aaa_update_test-8.x-3.0.tar.gz</download_link>
+    <date>1250426521</date>
+    <terms>
+      <term><name>Release type</name><value>New features</value></term>
+      <term><name>Release type</name><value>Bug fixes</value></term>
+    </terms>
+  </release>
  <release>
   <name>aaa_update_test 8.x-1.0</name>
   <version>8.x-1.0</version>
   <tag>DRUPAL-8--1-0</tag>
-  <version_major>1</version_major>
-  <version_patch>0</version_patch>
   <status>published</status>
   <release_link>http://example.com/aaa_update_test-8-x-1-0-release</release_link>
   <download_link>http://example.com/aaa_update_test-8.x-1.0.tar.gz</download_link>
   <date>1250424521</date>
-  <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-  <filesize>1073741824</filesize>
   <terms>
    <term><name>Release type</name><value>New features</value></term>
    <term><name>Release type</name><value>Bug fixes</value></term>
diff --git a/web/core/modules/update/tests/modules/update_test/aaa_update_test.1_1-alpha1.xml b/web/core/modules/update/tests/modules/update_test/aaa_update_test.1_1-alpha1.xml
index 61776abbdf..1bedfeb36e 100644
--- a/web/core/modules/update/tests/modules/update_test/aaa_update_test.1_1-alpha1.xml
+++ b/web/core/modules/update/tests/modules/update_test/aaa_update_test.1_1-alpha1.xml
@@ -3,29 +3,35 @@
   <title>AAA Update test</title>
   <short_name>aaa_update_test</short_name>
   <dc:creator>Drupal</dc:creator>
-  <api_version>8.x</api_version>
-  <recommended_major>1</recommended_major>
-  <supported_majors>1</supported_majors>
-  <default_major>1</default_major>
+  <supported_branches>8.x-1.</supported_branches>
   <project_status>published</project_status>
   <link>http://example.com/project/aaa_update_test</link>
   <terms>
     <term><name>Projects</name><value>Modules</value></term>
   </terms>
   <releases>
+    <release>
+      <!-- This release is not in a supported branch; therefore it should not be recommended. -->
+      <name>aaa_update_test 8.x-3.0</name>
+      <version>8.x-3.0</version>
+      <tag>DRUPAL-8--3-0</tag>
+      <status>published</status>
+      <release_link>http://example.com/aaa_update_test-8-x-3-0-release</release_link>
+      <download_link>http://example.com/aaa_update_test-8.x-3.0.tar.gz</download_link>
+      <date>1250426521</date>
+      <terms>
+        <term><name>Release type</name><value>New features</value></term>
+        <term><name>Release type</name><value>Bug fixes</value></term>
+      </terms>
+    </release>
     <release>
       <name>aaa_update_test 8.x-1.1-alpha1</name>
       <version>8.x-1.1-alpha1</version>
       <tag>DRUPAL-8--1-1-alpha1</tag>
-      <version_major>1</version_major>
-      <version_patch>1</version_patch>
-      <version_extra>alpha1</version_extra>
       <status>published</status>
       <release_link>http://example.com/aaa_update_test-8-x-1-1-alpha1-release</release_link>
       <download_link>http://example.com/aaa_update_test-8.x-1.1-alpha1.tar.gz</download_link>
       <date>1250414521</date>
-      <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-      <filesize>1073761824</filesize>
       <terms>
         <term><name>Release type</name><value>New features</value></term>
         <term><name>Release type</name><value>Bug fixes</value></term>
@@ -35,14 +41,10 @@
       <name>aaa_update_test 8.x-1.0</name>
       <version>8.x-1.0</version>
       <tag>DRUPAL-8--1-0</tag>
-      <version_major>1</version_major>
-      <version_patch>0</version_patch>
       <status>published</status>
       <release_link>http://example.com/aaa_update_test-8-x-1-0-release</release_link>
       <download_link>http://example.com/aaa_update_test-8.x-1.0.tar.gz</download_link>
       <date>1073781824</date>
-      <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-      <filesize>1073741824</filesize>
       <terms>
         <term><name>Release type</name><value>New features</value></term>
         <term><name>Release type</name><value>Bug fixes</value></term>
diff --git a/web/core/modules/update/tests/modules/update_test/aaa_update_test.1_1-beta1.xml b/web/core/modules/update/tests/modules/update_test/aaa_update_test.1_1-beta1.xml
index 4cb6e450a5..9dd1b02e8e 100644
--- a/web/core/modules/update/tests/modules/update_test/aaa_update_test.1_1-beta1.xml
+++ b/web/core/modules/update/tests/modules/update_test/aaa_update_test.1_1-beta1.xml
@@ -3,29 +3,35 @@
 <title>AAA Update test</title>
 <short_name>aaa_update_test</short_name>
 <dc:creator>Drupal</dc:creator>
-<api_version>8.x</api_version>
-<recommended_major>1</recommended_major>
-<supported_majors>1</supported_majors>
-<default_major>1</default_major>
+<supported_branches>8.x-1.</supported_branches>
 <project_status>published</project_status>
 <link>http://example.com/project/aaa_update_test</link>
   <terms>
    <term><name>Projects</name><value>Modules</value></term>
   </terms>
 <releases>
+  <release>
+    <!-- This release is not in a supported branch; therefore it should not be recommended. -->
+    <name>aaa_update_test 8.x-3.0</name>
+    <version>8.x-3.0</version>
+    <tag>DRUPAL-8--3-0</tag>
+    <status>published</status>
+    <release_link>http://example.com/aaa_update_test-8-x-3-0-release</release_link>
+    <download_link>http://example.com/aaa_update_test-8.x-3.0.tar.gz</download_link>
+    <date>1250426521</date>
+    <terms>
+      <term><name>Release type</name><value>New features</value></term>
+      <term><name>Release type</name><value>Bug fixes</value></term>
+    </terms>
+  </release>
   <release>
     <name>aaa_update_test 8.x-1.1-beta1</name>
     <version>8.x-1.1-beta1</version>
     <tag>DRUPAL-8--1-1-beta1</tag>
-    <version_major>1</version_major>
-    <version_patch>1</version_patch>
-    <version_extra>beta1</version_extra>
     <status>published</status>
     <release_link>http://example.com/aaa_update_test-8-x-1-1-beta1-release</release_link>
     <download_link>http://example.com/aaa_update_test-8.x-1.1-beta1.tar.gz</download_link>
     <date>1250414521</date>
-    <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-    <filesize>1073741824</filesize>
     <terms>
       <term><name>Release type</name><value>New features</value></term>
       <term><name>Release type</name><value>Bug fixes</value></term>
@@ -35,15 +41,10 @@
     <name>aaa_update_test 8.x-1.1-alpha1</name>
     <version>8.x-1.1-alpha1</version>
     <tag>DRUPAL-8--1-1-alpha1</tag>
-    <version_major>1</version_major>
-    <version_patch>1</version_patch>
-    <version_extra>alpha1</version_extra>
     <status>published</status>
     <release_link>http://example.com/aaa_update_test-8-x-1-1-alpha1-release</release_link>
     <download_link>http://example.com/aaa_update_test-8.x-1.1-alpha1.tar.gz</download_link>
     <date>1250414521</date>
-    <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-    <filesize>1073761824</filesize>
     <terms>
       <term><name>Release type</name><value>New features</value></term>
       <term><name>Release type</name><value>Bug fixes</value></term>
@@ -53,14 +54,10 @@
     <name>aaa_update_test 8.x-1.0</name>
     <version>8.x-1.0</version>
     <tag>DRUPAL-8--1-0</tag>
-    <version_major>1</version_major>
-    <version_patch>0</version_patch>
     <status>published</status>
     <release_link>http://example.com/aaa_update_test-8-x-1-0-release</release_link>
     <download_link>http://example.com/aaa_update_test-8.x-1.0.tar.gz</download_link>
     <date>1073781824</date>
-    <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-    <filesize>1073741824</filesize>
     <terms>
       <term><name>Release type</name><value>New features</value></term>
       <term><name>Release type</name><value>Bug fixes</value></term>
diff --git a/web/core/modules/update/tests/modules/update_test/aaa_update_test.1_1.xml b/web/core/modules/update/tests/modules/update_test/aaa_update_test.1_1.xml
index 14e9e7c169..7bd0bd8d74 100644
--- a/web/core/modules/update/tests/modules/update_test/aaa_update_test.1_1.xml
+++ b/web/core/modules/update/tests/modules/update_test/aaa_update_test.1_1.xml
@@ -3,28 +3,35 @@
 <title>AAA Update test</title>
 <short_name>aaa_update_test</short_name>
 <dc:creator>Drupal</dc:creator>
-<api_version>8.x</api_version>
-<recommended_major>1</recommended_major>
-<supported_majors>1</supported_majors>
-<default_major>1</default_major>
+<supported_branches>8.x-1.</supported_branches>
 <project_status>published</project_status>
 <link>http://example.com/project/aaa_update_test</link>
   <terms>
    <term><name>Projects</name><value>Modules</value></term>
   </terms>
 <releases>
+  <release>
+    <!-- This release is not in a supported branch; therefore it should not be recommended. -->
+    <name>aaa_update_test 8.x-3.0</name>
+    <version>8.x-3.0</version>
+    <tag>DRUPAL-8--3-0</tag>
+    <status>published</status>
+    <release_link>http://example.com/aaa_update_test-8-x-3-0-release</release_link>
+    <download_link>http://example.com/aaa_update_test-8.x-3.0.tar.gz</download_link>
+    <date>1250426521</date>
+    <terms>
+      <term><name>Release type</name><value>New features</value></term>
+      <term><name>Release type</name><value>Bug fixes</value></term>
+    </terms>
+  </release>
   <release>
     <name>aaa_update_test 8.x-1.1</name>
     <version>8.x-1.1</version>
     <tag>DRUPAL-8--1-1</tag>
-    <version_major>1</version_major>
-    <version_patch>1</version_patch>
     <status>published</status>
     <release_link>http://example.com/aaa_update_test-8-x-1-1-release</release_link>
     <download_link>http://example.com/aaa_update_test-8.x-1.1.tar.gz</download_link>
     <date>1250424521</date>
-    <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-    <filesize>1073751824</filesize>
     <terms>
       <term><name>Release type</name><value>New features</value></term>
       <term><name>Release type</name><value>Bug fixes</value></term>
@@ -34,15 +41,10 @@
     <name>aaa_update_test 8.x-1.1-beta1</name>
     <version>8.x-1.1-beta1</version>
     <tag>DRUPAL-8--1-1-beta1</tag>
-    <version_major>1</version_major>
-    <version_patch>1</version_patch>
-    <version_extra>beta1</version_extra>
     <status>published</status>
     <release_link>http://example.com/aaa_update_test-8-x-1-1-beta1-release</release_link>
     <download_link>http://example.com/aaa_update_test-8.x-1.1-beta1.tar.gz</download_link>
     <date>1250414521</date>
-    <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-    <filesize>1073741824</filesize>
     <terms>
       <term><name>Release type</name><value>New features</value></term>
       <term><name>Release type</name><value>Bug fixes</value></term>
@@ -52,15 +54,10 @@
     <name>aaa_update_test 8.x-1.1-alpha1</name>
     <version>8.x-1.1-alpha1</version>
     <tag>DRUPAL-8--1-1-alpha1</tag>
-    <version_major>1</version_major>
-    <version_patch>1</version_patch>
-    <version_extra>alpha1</version_extra>
     <status>published</status>
     <release_link>http://example.com/aaa_update_test-8-x-1-1-alpha1-release</release_link>
     <download_link>http://example.com/aaa_update_test-8.x-1.1-alpha1.tar.gz</download_link>
     <date>1250414521</date>
-    <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-    <filesize>1073761824</filesize>
     <terms>
       <term><name>Release type</name><value>New features</value></term>
       <term><name>Release type</name><value>Bug fixes</value></term>
@@ -70,14 +67,10 @@
     <name>aaa_update_test 8.x-1.0</name>
     <version>8.x-1.0</version>
     <tag>DRUPAL-8--1-0</tag>
-    <version_major>1</version_major>
-    <version_patch>0</version_patch>
     <status>published</status>
     <release_link>http://example.com/aaa_update_test-8-x-1-0-release</release_link>
     <download_link>http://example.com/aaa_update_test-8.x-1.0.tar.gz</download_link>
     <date>1250404521</date>
-    <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-    <filesize>1073781824</filesize>
     <terms>
       <term><name>Release type</name><value>New features</value></term>
       <term><name>Release type</name><value>Bug fixes</value></term>
diff --git a/web/core/modules/update/tests/modules/update_test/aaa_update_test.1_2-alpha1.xml b/web/core/modules/update/tests/modules/update_test/aaa_update_test.1_2-alpha1.xml
index f9541c8f5f..151944a78b 100644
--- a/web/core/modules/update/tests/modules/update_test/aaa_update_test.1_2-alpha1.xml
+++ b/web/core/modules/update/tests/modules/update_test/aaa_update_test.1_2-alpha1.xml
@@ -3,29 +3,35 @@
 <title>AAA Update test</title>
 <short_name>aaa_update_test</short_name>
 <dc:creator>Drupal</dc:creator>
-<api_version>8.x</api_version>
-<recommended_major>1</recommended_major>
-<supported_majors>1</supported_majors>
-<default_major>1</default_major>
+<supported_branches>8.x-1.</supported_branches>
 <project_status>published</project_status>
 <link>http://example.com/project/aaa_update_test</link>
   <terms>
    <term><name>Projects</name><value>Modules</value></term>
   </terms>
 <releases>
+  <release>
+    <!-- This release is not in a supported branch; therefore it should not be recommended. -->
+    <name>aaa_update_test 8.x-3.0</name>
+    <version>8.x-3.0</version>
+    <tag>DRUPAL-8--3-0</tag>
+    <status>published</status>
+    <release_link>http://example.com/aaa_update_test-8-x-3-0-release</release_link>
+    <download_link>http://example.com/aaa_update_test-8.x-3.0.tar.gz</download_link>
+    <date>1250426521</date>
+    <terms>
+      <term><name>Release type</name><value>New features</value></term>
+      <term><name>Release type</name><value>Bug fixes</value></term>
+    </terms>
+  </release>
   <release>
     <name>aaa_update_test 8.x-1.2-alpha1</name>
     <version>8.x-1.2-alpha1</version>
     <tag>DRUPAL-8--1-1-alpha1</tag>
-    <version_major>1</version_major>
-    <version_patch>2</version_patch>
-    <version_extra>alpha1</version_extra>
     <status>published</status>
     <release_link>http://example.com/aaa_update_test-8-x-1-2-alpha1-release</release_link>
     <download_link>http://example.com/aaa_update_test-8.x-1.2-alpha1.tar.gz</download_link>
     <date>1250413521</date>
-    <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-    <filesize>1073761824</filesize>
     <terms>
       <term><name>Release type</name><value>New features</value></term>
       <term><name>Release type</name><value>Bug fixes</value></term>
@@ -35,14 +41,10 @@
     <name>aaa_update_test 8.x-1.1</name>
     <version>8.x-1.1</version>
     <tag>DRUPAL-8--1-1</tag>
-    <version_major>1</version_major>
-    <version_patch>1</version_patch>
     <status>published</status>
     <release_link>http://example.com/aaa_update_test-8-x-1-1-release</release_link>
     <download_link>http://example.com/aaa_update_test-8.x-1.1.tar.gz</download_link>
     <date>1250424521</date>
-    <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-    <filesize>1073751824</filesize>
     <terms>
       <term><name>Release type</name><value>New features</value></term>
       <term><name>Release type</name><value>Bug fixes</value></term>
@@ -52,15 +54,10 @@
     <name>aaa_update_test 8.x-1.1-beta1</name>
     <version>8.x-1.1-beta1</version>
     <tag>DRUPAL-8--1-1-beta1</tag>
-    <version_major>1</version_major>
-    <version_patch>1</version_patch>
-    <version_extra>beta1</version_extra>
     <status>published</status>
     <release_link>http://example.com/aaa_update_test-8-x-1-1-beta1-release</release_link>
     <download_link>http://example.com/aaa_update_test-8.x-1.1-beta1.tar.gz</download_link>
     <date>1250414521</date>
-    <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-    <filesize>1073741824</filesize>
     <terms>
       <term><name>Release type</name><value>New features</value></term>
       <term><name>Release type</name><value>Bug fixes</value></term>
@@ -70,15 +67,10 @@
     <name>aaa_update_test 8.x-1.1-alpha1</name>
     <version>8.x-1.1-alpha1</version>
     <tag>DRUPAL-8--1-1-alpha1</tag>
-    <version_major>1</version_major>
-    <version_patch>1</version_patch>
-    <version_extra>alpha1</version_extra>
     <status>published</status>
     <release_link>http://example.com/aaa_update_test-8-x-1-1-alpha1-release</release_link>
     <download_link>http://example.com/aaa_update_test-8.x-1.1-alpha1.tar.gz</download_link>
     <date>1250414521</date>
-    <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-    <filesize>1073761824</filesize>
     <terms>
       <term><name>Release type</name><value>New features</value></term>
       <term><name>Release type</name><value>Bug fixes</value></term>
@@ -88,14 +80,10 @@
     <name>aaa_update_test 8.x-1.0</name>
     <version>8.x-1.0</version>
     <tag>DRUPAL-8--1-0</tag>
-    <version_major>1</version_major>
-    <version_patch>0</version_patch>
     <status>published</status>
     <release_link>http://example.com/aaa_update_test-8-x-1-0-release</release_link>
     <download_link>http://example.com/aaa_update_test-8.x-1.0.tar.gz</download_link>
     <date>1250404521</date>
-    <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-    <filesize>1073781824</filesize>
     <terms>
       <term><name>Release type</name><value>New features</value></term>
       <term><name>Release type</name><value>Bug fixes</value></term>
diff --git a/web/core/modules/update/tests/modules/update_test/aaa_update_test.1_2-beta1.xml b/web/core/modules/update/tests/modules/update_test/aaa_update_test.1_2-beta1.xml
index e166b3af98..c10a3d1b6b 100644
--- a/web/core/modules/update/tests/modules/update_test/aaa_update_test.1_2-beta1.xml
+++ b/web/core/modules/update/tests/modules/update_test/aaa_update_test.1_2-beta1.xml
@@ -3,29 +3,35 @@
 <title>AAA Update test</title>
 <short_name>aaa_update_test</short_name>
 <dc:creator>Drupal</dc:creator>
-<api_version>8.x</api_version>
-<recommended_major>1</recommended_major>
-<supported_majors>1</supported_majors>
-<default_major>1</default_major>
+<supported_branches>8.x-1.</supported_branches>
 <project_status>published</project_status>
 <link>http://example.com/project/aaa_update_test</link>
   <terms>
    <term><name>Projects</name><value>Modules</value></term>
   </terms>
 <releases>
+  <release>
+    <!-- This release is not in a supported branch; therefore it should not be recommended. -->
+    <name>aaa_update_test 8.x-3.0</name>
+    <version>8.x-3.0</version>
+    <tag>DRUPAL-8--3-0</tag>
+    <status>published</status>
+    <release_link>http://example.com/aaa_update_test-8-x-3-0-release</release_link>
+    <download_link>http://example.com/aaa_update_test-8.x-3.0.tar.gz</download_link>
+    <date>1250426521</date>
+    <terms>
+      <term><name>Release type</name><value>New features</value></term>
+      <term><name>Release type</name><value>Bug fixes</value></term>
+    </terms>
+  </release>
   <release>
     <name>aaa_update_test 8.x-1.2-beta1</name>
     <version>8.x-1.2-beta1</version>
     <tag>DRUPAL-8--1-1-beta1</tag>
-    <version_major>1</version_major>
-    <version_patch>2</version_patch>
-    <version_extra>beta1</version_extra>
     <status>published</status>
     <release_link>http://example.com/aaa_update_test-8-x-1-2-beta1-release</release_link>
     <download_link>http://example.com/aaa_update_test-8.x-1.2-beta1.tar.gz</download_link>
     <date>1250412521</date>
-    <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-    <filesize>1073741824</filesize>
     <terms>
       <term><name>Release type</name><value>New features</value></term>
       <term><name>Release type</name><value>Bug fixes</value></term>
@@ -35,15 +41,10 @@
     <name>aaa_update_test 8.x-1.2-alpha1</name>
     <version>8.x-1.2-alpha1</version>
     <tag>DRUPAL-8--1-1-alpha1</tag>
-    <version_major>1</version_major>
-    <version_patch>2</version_patch>
-    <version_extra>alpha1</version_extra>
     <status>published</status>
     <release_link>http://example.com/aaa_update_test-8-x-1-2-alpha1-release</release_link>
     <download_link>http://example.com/aaa_update_test-8.x-1.2-alpha1.tar.gz</download_link>
     <date>1250413521</date>
-    <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-    <filesize>1073761824</filesize>
     <terms>
       <term><name>Release type</name><value>New features</value></term>
       <term><name>Release type</name><value>Bug fixes</value></term>
@@ -53,14 +54,10 @@
     <name>aaa_update_test 8.x-1.1</name>
     <version>8.x-1.1</version>
     <tag>DRUPAL-8--1-1</tag>
-    <version_major>1</version_major>
-    <version_patch>1</version_patch>
     <status>published</status>
     <release_link>http://example.com/aaa_update_test-8-x-1-1-release</release_link>
     <download_link>http://example.com/aaa_update_test-8.x-1.1.tar.gz</download_link>
     <date>1250424521</date>
-    <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-    <filesize>1073751824</filesize>
     <terms>
       <term><name>Release type</name><value>New features</value></term>
       <term><name>Release type</name><value>Bug fixes</value></term>
@@ -70,15 +67,10 @@
     <name>aaa_update_test 8.x-1.1-beta1</name>
     <version>8.x-1.1-beta1</version>
     <tag>DRUPAL-8--1-1-beta1</tag>
-    <version_major>1</version_major>
-    <version_patch>1</version_patch>
-    <version_extra>beta1</version_extra>
     <status>published</status>
     <release_link>http://example.com/aaa_update_test-8-x-1-1-beta1-release</release_link>
     <download_link>http://example.com/aaa_update_test-8.x-1.1-beta1.tar.gz</download_link>
     <date>1250414521</date>
-    <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-    <filesize>1073741824</filesize>
     <terms>
       <term><name>Release type</name><value>New features</value></term>
       <term><name>Release type</name><value>Bug fixes</value></term>
@@ -88,15 +80,10 @@
     <name>aaa_update_test 8.x-1.1-alpha1</name>
     <version>8.x-1.1-alpha1</version>
     <tag>DRUPAL-8--1-1-alpha1</tag>
-    <version_major>1</version_major>
-    <version_patch>1</version_patch>
-    <version_extra>alpha1</version_extra>
     <status>published</status>
     <release_link>http://example.com/aaa_update_test-8-x-1-1-alpha1-release</release_link>
     <download_link>http://example.com/aaa_update_test-8.x-1.1-alpha1.tar.gz</download_link>
     <date>1250414521</date>
-    <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-    <filesize>1073761824</filesize>
     <terms>
       <term><name>Release type</name><value>New features</value></term>
       <term><name>Release type</name><value>Bug fixes</value></term>
@@ -106,14 +93,10 @@
     <name>aaa_update_test 8.x-1.0</name>
     <version>8.x-1.0</version>
     <tag>DRUPAL-8--1-0</tag>
-    <version_major>1</version_major>
-    <version_patch>0</version_patch>
     <status>published</status>
     <release_link>http://example.com/aaa_update_test-8-x-1-0-release</release_link>
     <download_link>http://example.com/aaa_update_test-8.x-1.0.tar.gz</download_link>
     <date>1250404521</date>
-    <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-    <filesize>1073781824</filesize>
     <terms>
       <term><name>Release type</name><value>New features</value></term>
       <term><name>Release type</name><value>Bug fixes</value></term>
diff --git a/web/core/modules/update/tests/modules/update_test/aaa_update_test.1_2.xml b/web/core/modules/update/tests/modules/update_test/aaa_update_test.1_2.xml
index d3d30934f7..2d6c446def 100644
--- a/web/core/modules/update/tests/modules/update_test/aaa_update_test.1_2.xml
+++ b/web/core/modules/update/tests/modules/update_test/aaa_update_test.1_2.xml
@@ -3,28 +3,35 @@
 <title>AAA Update test</title>
 <short_name>aaa_update_test</short_name>
 <dc:creator>Drupal</dc:creator>
-<api_version>8.x</api_version>
-<recommended_major>1</recommended_major>
-<supported_majors>1</supported_majors>
-<default_major>1</default_major>
+<supported_branches>8.x-1.</supported_branches>
 <project_status>published</project_status>
 <link>http://example.com/project/aaa_update_test</link>
   <terms>
    <term><name>Projects</name><value>Modules</value></term>
   </terms>
 <releases>
+  <release>
+    <!-- This release is not in a supported branch; therefore it should not be recommended. -->
+    <name>aaa_update_test 8.x-3.0</name>
+    <version>8.x-3.0</version>
+    <tag>DRUPAL-8--3-0</tag>
+    <status>published</status>
+    <release_link>http://example.com/aaa_update_test-8-x-3-0-release</release_link>
+    <download_link>http://example.com/aaa_update_test-8.x-3.0.tar.gz</download_link>
+    <date>1250426521</date>
+    <terms>
+      <term><name>Release type</name><value>New features</value></term>
+      <term><name>Release type</name><value>Bug fixes</value></term>
+    </terms>
+  </release>
   <release>
     <name>aaa_update_test 8.x-1.2</name>
     <version>8.x-1.2</version>
     <tag>DRUPAL-8--1-1</tag>
-    <version_major>1</version_major>
-    <version_patch>2</version_patch>
     <status>published</status>
     <release_link>http://example.com/aaa_update_test-8-x-1-2-release</release_link>
     <download_link>http://example.com/aaa_update_test-8.x-1.2.tar.gz</download_link>
     <date>1250421521</date>
-    <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-    <filesize>1073751824</filesize>
     <terms>
       <term><name>Release type</name><value>New features</value></term>
       <term><name>Release type</name><value>Bug fixes</value></term>
@@ -34,15 +41,10 @@
     <name>aaa_update_test 8.x-1.2-beta1</name>
     <version>8.x-1.2-beta1</version>
     <tag>DRUPAL-8--1-1-beta1</tag>
-    <version_major>1</version_major>
-    <version_patch>2</version_patch>
-    <version_extra>beta1</version_extra>
     <status>published</status>
     <release_link>http://example.com/aaa_update_test-8-x-1-2-beta1-release</release_link>
     <download_link>http://example.com/aaa_update_test-8.x-1.2-beta1.tar.gz</download_link>
     <date>1250412521</date>
-    <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-    <filesize>1073741824</filesize>
     <terms>
       <term><name>Release type</name><value>New features</value></term>
       <term><name>Release type</name><value>Bug fixes</value></term>
@@ -52,15 +54,10 @@
     <name>aaa_update_test 8.x-1.2-alpha1</name>
     <version>8.x-1.2-alpha1</version>
     <tag>DRUPAL-8--1-1-alpha1</tag>
-    <version_major>1</version_major>
-    <version_patch>2</version_patch>
-    <version_extra>alpha1</version_extra>
     <status>published</status>
     <release_link>http://example.com/aaa_update_test-8-x-1-2-alpha1-release</release_link>
     <download_link>http://example.com/aaa_update_test-8.x-1.2-alpha1.tar.gz</download_link>
     <date>1250413521</date>
-    <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-    <filesize>1073761824</filesize>
     <terms>
       <term><name>Release type</name><value>New features</value></term>
       <term><name>Release type</name><value>Bug fixes</value></term>
@@ -70,14 +67,10 @@
     <name>aaa_update_test 8.x-1.1</name>
     <version>8.x-1.1</version>
     <tag>DRUPAL-8--1-1</tag>
-    <version_major>1</version_major>
-    <version_patch>1</version_patch>
     <status>published</status>
     <release_link>http://example.com/aaa_update_test-8-x-1-1-release</release_link>
     <download_link>http://example.com/aaa_update_test-8.x-1.1.tar.gz</download_link>
     <date>1250424521</date>
-    <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-    <filesize>1073751824</filesize>
     <terms>
       <term><name>Release type</name><value>New features</value></term>
       <term><name>Release type</name><value>Bug fixes</value></term>
@@ -87,15 +80,10 @@
     <name>aaa_update_test 8.x-1.1-beta1</name>
     <version>8.x-1.1-beta1</version>
     <tag>DRUPAL-8--1-1-beta1</tag>
-    <version_major>1</version_major>
-    <version_patch>1</version_patch>
-    <version_extra>beta1</version_extra>
     <status>published</status>
     <release_link>http://example.com/aaa_update_test-8-x-1-1-beta1-release</release_link>
     <download_link>http://example.com/aaa_update_test-8.x-1.1-beta1.tar.gz</download_link>
     <date>1250414521</date>
-    <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-    <filesize>1073741824</filesize>
     <terms>
       <term><name>Release type</name><value>New features</value></term>
       <term><name>Release type</name><value>Bug fixes</value></term>
@@ -105,15 +93,10 @@
     <name>aaa_update_test 8.x-1.1-alpha1</name>
     <version>8.x-1.1-alpha1</version>
     <tag>DRUPAL-8--1-1-alpha1</tag>
-    <version_major>1</version_major>
-    <version_patch>1</version_patch>
-    <version_extra>alpha1</version_extra>
     <status>published</status>
     <release_link>http://example.com/aaa_update_test-8-x-1-1-alpha1-release</release_link>
     <download_link>http://example.com/aaa_update_test-8.x-1.1-alpha1.tar.gz</download_link>
     <date>1250414521</date>
-    <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-    <filesize>1073761824</filesize>
     <terms>
       <term><name>Release type</name><value>New features</value></term>
       <term><name>Release type</name><value>Bug fixes</value></term>
@@ -123,14 +106,10 @@
     <name>aaa_update_test 8.x-1.0</name>
     <version>8.x-1.0</version>
     <tag>DRUPAL-8--1-0</tag>
-    <version_major>1</version_major>
-    <version_patch>0</version_patch>
     <status>published</status>
     <release_link>http://example.com/aaa_update_test-8-x-1-0-release</release_link>
     <download_link>http://example.com/aaa_update_test-8.x-1.0.tar.gz</download_link>
     <date>1250404521</date>
-    <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-    <filesize>1073781824</filesize>
     <terms>
       <term><name>Release type</name><value>New features</value></term>
       <term><name>Release type</name><value>Bug fixes</value></term>
diff --git a/web/core/modules/update/tests/modules/update_test/aaa_update_test.2_0-alpha1.xml b/web/core/modules/update/tests/modules/update_test/aaa_update_test.2_0-alpha1.xml
index 799abdbd3d..a438a02d83 100644
--- a/web/core/modules/update/tests/modules/update_test/aaa_update_test.2_0-alpha1.xml
+++ b/web/core/modules/update/tests/modules/update_test/aaa_update_test.2_0-alpha1.xml
@@ -3,29 +3,35 @@
 <title>AAA Update test</title>
 <short_name>aaa_update_test</short_name>
 <dc:creator>Drupal</dc:creator>
-<api_version>8.x</api_version>
-<recommended_major>1</recommended_major>
-<supported_majors>1,2</supported_majors>
-<default_major>1</default_major>
+<supported_branches>8.x-1.,8.x-2.</supported_branches>
 <project_status>published</project_status>
 <link>http://example.com/project/aaa_update_test</link>
   <terms>
    <term><name>Projects</name><value>Modules</value></term>
   </terms>
 <releases>
+  <release>
+    <!-- This release is not in a supported branch; therefore it should not be recommended. -->
+    <name>aaa_update_test 8.x-3.0</name>
+    <version>8.x-3.0</version>
+    <tag>DRUPAL-8--3-0</tag>
+    <status>published</status>
+    <release_link>http://example.com/aaa_update_test-8-x-3-0-release</release_link>
+    <download_link>http://example.com/aaa_update_test-8.x-3.0.tar.gz</download_link>
+    <date>1250426521</date>
+    <terms>
+      <term><name>Release type</name><value>New features</value></term>
+      <term><name>Release type</name><value>Bug fixes</value></term>
+    </terms>
+  </release>
   <release>
     <name>aaa_update_test 8.x-2.0-alpha1</name>
     <version>8.x-2.0-alpha1</version>
     <tag>DRUPAL-8--2-0</tag>
-    <version_major>2</version_major>
-    <version_patch>0</version_patch>
-    <version_extra>alpha1</version_extra>
     <status>published</status>
     <release_link>http://example.com/aaa_update_test-8-x-2-0-alpha1-release</release_link>
     <download_link>http://example.com/aaa_update_test-8.x-2.0-alpha1.tar.gz</download_link>
     <date>1250422521</date>
-    <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-    <filesize>1073781824</filesize>
     <terms>
       <term><name>Release type</name><value>New features</value></term>
       <term><name>Release type</name><value>Bug fixes</value></term>
@@ -35,14 +41,10 @@
     <name>aaa_update_test 8.x-1.2</name>
     <version>8.x-1.2</version>
     <tag>DRUPAL-8--1-1</tag>
-    <version_major>1</version_major>
-    <version_patch>2</version_patch>
     <status>published</status>
     <release_link>http://example.com/aaa_update_test-8-x-1-2-release</release_link>
     <download_link>http://example.com/aaa_update_test-8.x-1.2.tar.gz</download_link>
     <date>1250421521</date>
-    <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-    <filesize>1073751824</filesize>
     <terms>
       <term><name>Release type</name><value>New features</value></term>
       <term><name>Release type</name><value>Bug fixes</value></term>
@@ -52,15 +54,10 @@
     <name>aaa_update_test 8.x-1.2-beta1</name>
     <version>8.x-1.2-beta1</version>
     <tag>DRUPAL-8--1-1-beta1</tag>
-    <version_major>1</version_major>
-    <version_patch>2</version_patch>
-    <version_extra>beta1</version_extra>
     <status>published</status>
     <release_link>http://example.com/aaa_update_test-8-x-1-2-beta1-release</release_link>
     <download_link>http://example.com/aaa_update_test-8.x-1.2-beta1.tar.gz</download_link>
     <date>1250412521</date>
-    <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-    <filesize>1073741824</filesize>
     <terms>
       <term><name>Release type</name><value>New features</value></term>
       <term><name>Release type</name><value>Bug fixes</value></term>
@@ -70,15 +67,10 @@
     <name>aaa_update_test 8.x-1.2-alpha1</name>
     <version>8.x-1.2-alpha1</version>
     <tag>DRUPAL-8--1-1-alpha1</tag>
-    <version_major>1</version_major>
-    <version_patch>2</version_patch>
-    <version_extra>alpha1</version_extra>
     <status>published</status>
     <release_link>http://example.com/aaa_update_test-8-x-1-2-alpha1-release</release_link>
     <download_link>http://example.com/aaa_update_test-8.x-1.2-alpha1.tar.gz</download_link>
     <date>1250413521</date>
-    <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-    <filesize>1073761824</filesize>
     <terms>
       <term><name>Release type</name><value>New features</value></term>
       <term><name>Release type</name><value>Bug fixes</value></term>
@@ -88,14 +80,10 @@
     <name>aaa_update_test 8.x-1.1</name>
     <version>8.x-1.1</version>
     <tag>DRUPAL-8--1-1</tag>
-    <version_major>1</version_major>
-    <version_patch>1</version_patch>
     <status>published</status>
     <release_link>http://example.com/aaa_update_test-8-x-1-1-release</release_link>
     <download_link>http://example.com/aaa_update_test-8.x-1.1.tar.gz</download_link>
     <date>1250424521</date>
-    <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-    <filesize>1073751824</filesize>
     <terms>
       <term><name>Release type</name><value>New features</value></term>
       <term><name>Release type</name><value>Bug fixes</value></term>
@@ -105,15 +93,10 @@
     <name>aaa_update_test 8.x-1.1-beta1</name>
     <version>8.x-1.1-beta1</version>
     <tag>DRUPAL-8--1-1-beta1</tag>
-    <version_major>1</version_major>
-    <version_patch>1</version_patch>
-    <version_extra>beta1</version_extra>
     <status>published</status>
     <release_link>http://example.com/aaa_update_test-8-x-1-1-beta1-release</release_link>
     <download_link>http://example.com/aaa_update_test-8.x-1.1-beta1.tar.gz</download_link>
     <date>1250414521</date>
-    <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-    <filesize>1073741824</filesize>
     <terms>
       <term><name>Release type</name><value>New features</value></term>
       <term><name>Release type</name><value>Bug fixes</value></term>
@@ -123,15 +106,10 @@
     <name>aaa_update_test 8.x-1.1-alpha1</name>
     <version>8.x-1.1-alpha1</version>
     <tag>DRUPAL-8--1-1-alpha1</tag>
-    <version_major>1</version_major>
-    <version_patch>1</version_patch>
-    <version_extra>alpha1</version_extra>
     <status>published</status>
     <release_link>http://example.com/aaa_update_test-8-x-1-1-alpha1-release</release_link>
     <download_link>http://example.com/aaa_update_test-8.x-1.1-alpha1.tar.gz</download_link>
     <date>1250414521</date>
-    <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-    <filesize>1073761824</filesize>
     <terms>
       <term><name>Release type</name><value>New features</value></term>
       <term><name>Release type</name><value>Bug fixes</value></term>
@@ -141,14 +119,10 @@
     <name>aaa_update_test 8.x-1.0</name>
     <version>8.x-1.0</version>
     <tag>DRUPAL-8--1-0</tag>
-    <version_major>1</version_major>
-    <version_patch>0</version_patch>
     <status>published</status>
     <release_link>http://example.com/aaa_update_test-8-x-1-0-release</release_link>
     <download_link>http://example.com/aaa_update_test-8.x-1.0.tar.gz</download_link>
     <date>1250404521</date>
-    <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-    <filesize>1073781824</filesize>
     <terms>
       <term><name>Release type</name><value>New features</value></term>
       <term><name>Release type</name><value>Bug fixes</value></term>
diff --git a/web/core/modules/update/tests/modules/update_test/aaa_update_test.2_0-beta1.xml b/web/core/modules/update/tests/modules/update_test/aaa_update_test.2_0-beta1.xml
index e82a27f051..fe29617bee 100644
--- a/web/core/modules/update/tests/modules/update_test/aaa_update_test.2_0-beta1.xml
+++ b/web/core/modules/update/tests/modules/update_test/aaa_update_test.2_0-beta1.xml
@@ -3,29 +3,35 @@
 <title>AAA Update test</title>
 <short_name>aaa_update_test</short_name>
 <dc:creator>Drupal</dc:creator>
-<api_version>8.x</api_version>
-<recommended_major>1</recommended_major>
-<supported_majors>1,2</supported_majors>
-<default_major>1</default_major>
+<supported_branches>8.x-1.,8.x-2.</supported_branches>
 <project_status>published</project_status>
 <link>http://example.com/project/aaa_update_test</link>
   <terms>
    <term><name>Projects</name><value>Modules</value></term>
   </terms>
 <releases>
+  <release>
+    <!-- This release is not in a supported branch; therefore it should not be recommended. -->
+    <name>aaa_update_test 8.x-3.0</name>
+    <version>8.x-3.0</version>
+    <tag>DRUPAL-8--3-0</tag>
+    <status>published</status>
+    <release_link>http://example.com/aaa_update_test-8-x-3-0-release</release_link>
+    <download_link>http://example.com/aaa_update_test-8.x-3.0.tar.gz</download_link>
+    <date>1250426521</date>
+    <terms>
+      <term><name>Release type</name><value>New features</value></term>
+      <term><name>Release type</name><value>Bug fixes</value></term>
+    </terms>
+  </release>
   <release>
     <name>aaa_update_test 8.x-2.0-beta1</name>
     <version>8.x-2.0-beta1</version>
     <tag>DRUPAL-8--2-0</tag>
-    <version_major>2</version_major>
-    <version_patch>0</version_patch>
-    <version_extra>beta1</version_extra>
     <status>published</status>
     <release_link>http://example.com/aaa_update_test-8-x-2-0-beta1-release</release_link>
     <download_link>http://example.com/aaa_update_test-8.x-2.0-beta1.tar.gz</download_link>
-    <date>1250422521</date>
-    <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-    <filesize>1073782824</filesize>
+    <date>1250442521</date>
     <terms>
       <term><name>Release type</name><value>New features</value></term>
       <term><name>Release type</name><value>Bug fixes</value></term>
@@ -35,15 +41,10 @@
     <name>aaa_update_test 8.x-2.0-alpha1</name>
     <version>8.x-2.0-alpha1</version>
     <tag>DRUPAL-8--2-0</tag>
-    <version_major>2</version_major>
-    <version_patch>0</version_patch>
-    <version_extra>alpha1</version_extra>
     <status>published</status>
     <release_link>http://example.com/aaa_update_test-8-x-2-0-alpha1-release</release_link>
     <download_link>http://example.com/aaa_update_test-8.x-2.0-alpha1.tar.gz</download_link>
     <date>1250422521</date>
-    <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-    <filesize>1073781824</filesize>
     <terms>
       <term><name>Release type</name><value>New features</value></term>
       <term><name>Release type</name><value>Bug fixes</value></term>
@@ -53,14 +54,10 @@
     <name>aaa_update_test 8.x-1.2</name>
     <version>8.x-1.2</version>
     <tag>DRUPAL-8--1-1</tag>
-    <version_major>1</version_major>
-    <version_patch>2</version_patch>
     <status>published</status>
     <release_link>http://example.com/aaa_update_test-8-x-1-2-release</release_link>
     <download_link>http://example.com/aaa_update_test-8.x-1.2.tar.gz</download_link>
     <date>1250421521</date>
-    <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-    <filesize>1073751824</filesize>
     <terms>
       <term><name>Release type</name><value>New features</value></term>
       <term><name>Release type</name><value>Bug fixes</value></term>
@@ -70,15 +67,10 @@
     <name>aaa_update_test 8.x-1.2-beta1</name>
     <version>8.x-1.2-beta1</version>
     <tag>DRUPAL-8--1-1-beta1</tag>
-    <version_major>1</version_major>
-    <version_patch>2</version_patch>
-    <version_extra>beta1</version_extra>
     <status>published</status>
     <release_link>http://example.com/aaa_update_test-8-x-1-2-beta1-release</release_link>
     <download_link>http://example.com/aaa_update_test-8.x-1.2-beta1.tar.gz</download_link>
     <date>1250412521</date>
-    <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-    <filesize>1073741824</filesize>
     <terms>
       <term><name>Release type</name><value>New features</value></term>
       <term><name>Release type</name><value>Bug fixes</value></term>
@@ -88,15 +80,10 @@
     <name>aaa_update_test 8.x-1.2-alpha1</name>
     <version>8.x-1.2-alpha1</version>
     <tag>DRUPAL-8--1-1-alpha1</tag>
-    <version_major>1</version_major>
-    <version_patch>2</version_patch>
-    <version_extra>alpha1</version_extra>
     <status>published</status>
     <release_link>http://example.com/aaa_update_test-8-x-1-2-alpha1-release</release_link>
     <download_link>http://example.com/aaa_update_test-8.x-1.2-alpha1.tar.gz</download_link>
     <date>1250413521</date>
-    <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-    <filesize>1073761824</filesize>
     <terms>
       <term><name>Release type</name><value>New features</value></term>
       <term><name>Release type</name><value>Bug fixes</value></term>
@@ -106,14 +93,10 @@
     <name>aaa_update_test 8.x-1.1</name>
     <version>8.x-1.1</version>
     <tag>DRUPAL-8--1-1</tag>
-    <version_major>1</version_major>
-    <version_patch>1</version_patch>
     <status>published</status>
     <release_link>http://example.com/aaa_update_test-8-x-1-1-release</release_link>
     <download_link>http://example.com/aaa_update_test-8.x-1.1.tar.gz</download_link>
     <date>1250424521</date>
-    <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-    <filesize>1073751824</filesize>
     <terms>
       <term><name>Release type</name><value>New features</value></term>
       <term><name>Release type</name><value>Bug fixes</value></term>
@@ -123,15 +106,10 @@
     <name>aaa_update_test 8.x-1.1-beta1</name>
     <version>8.x-1.1-beta1</version>
     <tag>DRUPAL-8--1-1-beta1</tag>
-    <version_major>1</version_major>
-    <version_patch>1</version_patch>
-    <version_extra>beta1</version_extra>
     <status>published</status>
     <release_link>http://example.com/aaa_update_test-8-x-1-1-beta1-release</release_link>
     <download_link>http://example.com/aaa_update_test-8.x-1.1-beta1.tar.gz</download_link>
     <date>1250414521</date>
-    <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-    <filesize>1073741824</filesize>
     <terms>
       <term><name>Release type</name><value>New features</value></term>
       <term><name>Release type</name><value>Bug fixes</value></term>
@@ -141,15 +119,10 @@
     <name>aaa_update_test 8.x-1.1-alpha1</name>
     <version>8.x-1.1-alpha1</version>
     <tag>DRUPAL-8--1-1-alpha1</tag>
-    <version_major>1</version_major>
-    <version_patch>1</version_patch>
-    <version_extra>alpha1</version_extra>
     <status>published</status>
     <release_link>http://example.com/aaa_update_test-8-x-1-1-alpha1-release</release_link>
     <download_link>http://example.com/aaa_update_test-8.x-1.1-alpha1.tar.gz</download_link>
     <date>1250414521</date>
-    <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-    <filesize>1073761824</filesize>
     <terms>
       <term><name>Release type</name><value>New features</value></term>
       <term><name>Release type</name><value>Bug fixes</value></term>
@@ -159,14 +132,10 @@
     <name>aaa_update_test 8.x-1.0</name>
     <version>8.x-1.0</version>
     <tag>DRUPAL-8--1-0</tag>
-    <version_major>1</version_major>
-    <version_patch>0</version_patch>
     <status>published</status>
     <release_link>http://example.com/aaa_update_test-8-x-1-0-release</release_link>
     <download_link>http://example.com/aaa_update_test-8.x-1.0.tar.gz</download_link>
     <date>1250404521</date>
-    <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-    <filesize>1073781824</filesize>
     <terms>
       <term><name>Release type</name><value>New features</value></term>
       <term><name>Release type</name><value>Bug fixes</value></term>
diff --git a/web/core/modules/update/tests/modules/update_test/aaa_update_test.2_0.xml b/web/core/modules/update/tests/modules/update_test/aaa_update_test.2_0.xml
index 240f0db4fb..4ef7f99609 100644
--- a/web/core/modules/update/tests/modules/update_test/aaa_update_test.2_0.xml
+++ b/web/core/modules/update/tests/modules/update_test/aaa_update_test.2_0.xml
@@ -3,28 +3,35 @@
 <title>AAA Update test</title>
 <short_name>aaa_update_test</short_name>
 <dc:creator>Drupal</dc:creator>
-<api_version>8.x</api_version>
-<recommended_major>1</recommended_major>
-<supported_majors>1,2</supported_majors>
-<default_major>1</default_major>
+<supported_branches>8.x-1.,8.x-2.</supported_branches>
 <project_status>published</project_status>
 <link>http://example.com/project/aaa_update_test</link>
   <terms>
    <term><name>Projects</name><value>Modules</value></term>
   </terms>
 <releases>
+  <release>
+    <!-- This release is not in a supported branch; therefore it should not be recommended. -->
+    <name>aaa_update_test 8.x-3.0</name>
+    <version>8.x-3.0</version>
+    <tag>DRUPAL-8--3-0</tag>
+    <status>published</status>
+    <release_link>http://example.com/aaa_update_test-8-x-3-0-release</release_link>
+    <download_link>http://example.com/aaa_update_test-8.x-3.0.tar.gz</download_link>
+    <date>1250426521</date>
+    <terms>
+      <term><name>Release type</name><value>New features</value></term>
+      <term><name>Release type</name><value>Bug fixes</value></term>
+    </terms>
+  </release>
   <release>
     <name>aaa_update_test 8.x-2.0</name>
     <version>8.x-2.0</version>
     <tag>DRUPAL-8--2-0</tag>
-    <version_major>2</version_major>
-    <version_patch>0</version_patch>
     <status>published</status>
     <release_link>http://example.com/aaa_update_test-8-x-2-0-release</release_link>
     <download_link>http://example.com/aaa_update_test-8.x-2.0.tar.gz</download_link>
     <date>1250422521</date>
-    <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-    <filesize>1073781824</filesize>
     <terms>
       <term><name>Release type</name><value>New features</value></term>
       <term><name>Release type</name><value>Bug fixes</value></term>
@@ -34,15 +41,10 @@
     <name>aaa_update_test 8.x-2.0-beta1</name>
     <version>8.x-2.0-beta1</version>
     <tag>DRUPAL-8--2-0</tag>
-    <version_major>2</version_major>
-    <version_patch>0</version_patch>
-    <version_extra>beta1</version_extra>
     <status>published</status>
     <release_link>http://example.com/aaa_update_test-8-x-2-0-beta1-release</release_link>
     <download_link>http://example.com/aaa_update_test-8.x-2.0-beta1.tar.gz</download_link>
     <date>1250422521</date>
-    <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-    <filesize>1073782824</filesize>
     <terms>
       <term><name>Release type</name><value>New features</value></term>
       <term><name>Release type</name><value>Bug fixes</value></term>
@@ -52,15 +54,10 @@
     <name>aaa_update_test 8.x-2.0-alpha1</name>
     <version>8.x-2.0-alpha1</version>
     <tag>DRUPAL-8--2-0</tag>
-    <version_major>2</version_major>
-    <version_patch>0</version_patch>
-    <version_extra>alpha1</version_extra>
     <status>published</status>
     <release_link>http://example.com/aaa_update_test-8-x-2-0-alpha1-release</release_link>
     <download_link>http://example.com/aaa_update_test-8.x-2.0-alpha1.tar.gz</download_link>
     <date>1250422521</date>
-    <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-    <filesize>1073781824</filesize>
     <terms>
       <term><name>Release type</name><value>New features</value></term>
       <term><name>Release type</name><value>Bug fixes</value></term>
@@ -70,14 +67,10 @@
     <name>aaa_update_test 8.x-1.2</name>
     <version>8.x-1.2</version>
     <tag>DRUPAL-8--1-1</tag>
-    <version_major>1</version_major>
-    <version_patch>2</version_patch>
     <status>published</status>
     <release_link>http://example.com/aaa_update_test-8-x-1-2-release</release_link>
     <download_link>http://example.com/aaa_update_test-8.x-1.2.tar.gz</download_link>
     <date>1250421521</date>
-    <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-    <filesize>1073751824</filesize>
     <terms>
       <term><name>Release type</name><value>New features</value></term>
       <term><name>Release type</name><value>Bug fixes</value></term>
@@ -87,15 +80,10 @@
     <name>aaa_update_test 8.x-1.2-beta1</name>
     <version>8.x-1.2-beta1</version>
     <tag>DRUPAL-8--1-1-beta1</tag>
-    <version_major>1</version_major>
-    <version_patch>2</version_patch>
-    <version_extra>beta1</version_extra>
     <status>published</status>
     <release_link>http://example.com/aaa_update_test-8-x-1-2-beta1-release</release_link>
     <download_link>http://example.com/aaa_update_test-8.x-1.2-beta1.tar.gz</download_link>
     <date>1250412521</date>
-    <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-    <filesize>1073741824</filesize>
     <terms>
       <term><name>Release type</name><value>New features</value></term>
       <term><name>Release type</name><value>Bug fixes</value></term>
@@ -105,15 +93,10 @@
     <name>aaa_update_test 8.x-1.2-alpha1</name>
     <version>8.x-1.2-alpha1</version>
     <tag>DRUPAL-8--1-1-alpha1</tag>
-    <version_major>1</version_major>
-    <version_patch>2</version_patch>
-    <version_extra>alpha1</version_extra>
     <status>published</status>
     <release_link>http://example.com/aaa_update_test-8-x-1-2-alpha1-release</release_link>
     <download_link>http://example.com/aaa_update_test-8.x-1.2-alpha1.tar.gz</download_link>
     <date>1250413521</date>
-    <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-    <filesize>1073761824</filesize>
     <terms>
       <term><name>Release type</name><value>New features</value></term>
       <term><name>Release type</name><value>Bug fixes</value></term>
@@ -123,14 +106,10 @@
     <name>aaa_update_test 8.x-1.1</name>
     <version>8.x-1.1</version>
     <tag>DRUPAL-8--1-1</tag>
-    <version_major>1</version_major>
-    <version_patch>1</version_patch>
     <status>published</status>
     <release_link>http://example.com/aaa_update_test-8-x-1-1-release</release_link>
     <download_link>http://example.com/aaa_update_test-8.x-1.1.tar.gz</download_link>
     <date>1250424521</date>
-    <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-    <filesize>1073751824</filesize>
     <terms>
       <term><name>Release type</name><value>New features</value></term>
       <term><name>Release type</name><value>Bug fixes</value></term>
@@ -140,15 +119,10 @@
     <name>aaa_update_test 8.x-1.1-beta1</name>
     <version>8.x-1.1-beta1</version>
     <tag>DRUPAL-8--1-1-beta1</tag>
-    <version_major>1</version_major>
-    <version_patch>1</version_patch>
-    <version_extra>beta1</version_extra>
     <status>published</status>
     <release_link>http://example.com/aaa_update_test-8-x-1-1-beta1-release</release_link>
     <download_link>http://example.com/aaa_update_test-8.x-1.1-beta1.tar.gz</download_link>
     <date>1250414521</date>
-    <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-    <filesize>1073741824</filesize>
     <terms>
       <term><name>Release type</name><value>New features</value></term>
       <term><name>Release type</name><value>Bug fixes</value></term>
@@ -158,15 +132,10 @@
     <name>aaa_update_test 8.x-1.1-alpha1</name>
     <version>8.x-1.1-alpha1</version>
     <tag>DRUPAL-8--1-1-alpha1</tag>
-    <version_major>1</version_major>
-    <version_patch>1</version_patch>
-    <version_extra>alpha1</version_extra>
     <status>published</status>
     <release_link>http://example.com/aaa_update_test-8-x-1-1-alpha1-release</release_link>
     <download_link>http://example.com/aaa_update_test-8.x-1.1-alpha1.tar.gz</download_link>
     <date>1250414521</date>
-    <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-    <filesize>1073761824</filesize>
     <terms>
       <term><name>Release type</name><value>New features</value></term>
       <term><name>Release type</name><value>Bug fixes</value></term>
@@ -176,14 +145,10 @@
     <name>aaa_update_test 8.x-1.0</name>
     <version>8.x-1.0</version>
     <tag>DRUPAL-8--1-0</tag>
-    <version_major>1</version_major>
-    <version_patch>0</version_patch>
     <status>published</status>
     <release_link>http://example.com/aaa_update_test-8-x-1-0-release</release_link>
     <download_link>http://example.com/aaa_update_test-8.x-1.0.tar.gz</download_link>
     <date>1250404521</date>
-    <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-    <filesize>1073781824</filesize>
     <terms>
       <term><name>Release type</name><value>New features</value></term>
       <term><name>Release type</name><value>Bug fixes</value></term>
diff --git a/web/core/modules/update/tests/modules/update_test/aaa_update_test.8.x-1.2.xml b/web/core/modules/update/tests/modules/update_test/aaa_update_test.8.x-1.2.xml
new file mode 100644
index 0000000000..670fc5c5d2
--- /dev/null
+++ b/web/core/modules/update/tests/modules/update_test/aaa_update_test.8.x-1.2.xml
@@ -0,0 +1,69 @@
+<?xml version="1.0" encoding="utf-8"?>
+<project xmlns:dc="http://purl.org/dc/elements/1.1/">
+ <title>AAA Update test</title>
+ <short_name>aaa_update_test</short_name>
+ <dc:creator>Drupal</dc:creator>
+ <api_version>8.x</api_version>
+ <supported_branches>8.x-1.</supported_branches>
+ <project_status>published</project_status>
+ <link>http://example.com/project/aaa_update_test</link>
+ <terms>
+  <term><name>Projects</name><value>Modules</value></term>
+ </terms>
+ <releases>
+   <release>
+     <name>aaa_update_test 8.x-1.3-beta1</name>
+     <version>8.x-1.3-beta1</version>
+     <tag>DRUPAL-8--1-3-beta1</tag>
+     <core_compatibility>8.0.0 || 8.1.1</core_compatibility>
+     <status>published</status>
+     <release_link>http://example.com/aaa_update_test-8-x-1-3-beta1-release</release_link>
+     <download_link>http://example.com/aaa_update_test-8-x-1-3-beta1.tar.gz</download_link>
+     <date>1250624521</date>
+     <terms>
+       <term><name>Release type</name><value>New features</value></term>
+       <term><name>Release type</name><value>Bug fixes</value></term>
+     </terms>
+  </release>
+  <release>
+   <name>aaa_update_test 8.x-1.2</name>
+   <version>8.x-1.2</version>
+   <tag>DRUPAL-8--1-2</tag>
+    <core_compatibility>^8</core_compatibility>
+   <status>published</status>
+   <release_link>http://example.com/aaa_update_test-8-x-1-2-release</release_link>
+   <download_link>http://example.com/aaa_update_test-8-x-1-2.tar.gz</download_link>
+   <date>1250424521</date>
+   <terms>
+    <term><name>Release type</name><value>New features</value></term>
+    <term><name>Release type</name><value>Bug fixes</value></term>
+   </terms>
+  </release>
+  <release>
+   <name>aaa_update_test 8.x-1.1</name>
+   <version>8.x-1.1</version>
+   <tag>DRUPAL-8--1-1</tag>
+   <status>published</status>
+   <release_link>http://example.com/aaa_update_test-8-x-1-1-release</release_link>
+   <download_link>http://example.com/aaa_update_test-8-x-1-1.tar.gz</download_link>
+   <date>1250424521</date>
+   <terms>
+    <term><name>Release type</name><value>New features</value></term>
+    <term><name>Release type</name><value>Bug fixes</value></term>
+   </terms>
+  </release>
+  <release>
+   <name>aaa_update_test 8.x-1.0</name>
+   <version>8.x-1.0</version>
+   <tag>DRUPAL-8--1-0</tag>
+   <status>published</status>
+   <release_link>http://example.com/aaa_update_test-8-x-1-0-release</release_link>
+   <download_link>http://example.com/aaa_update_test-8-x-1-0.tar.gz</download_link>
+   <date>1250424521</date>
+   <terms>
+    <term><name>Release type</name><value>New features</value></term>
+    <term><name>Release type</name><value>Bug fixes</value></term>
+   </terms>
+  </release>
+ </releases>
+</project>
diff --git a/web/core/modules/update/tests/modules/update_test/aaa_update_test.core_compatibility.8.x-1.2_8.x-2.2.xml b/web/core/modules/update/tests/modules/update_test/aaa_update_test.core_compatibility.8.x-1.2_8.x-2.2.xml
new file mode 100644
index 0000000000..3cad5b1c4c
--- /dev/null
+++ b/web/core/modules/update/tests/modules/update_test/aaa_update_test.core_compatibility.8.x-1.2_8.x-2.2.xml
@@ -0,0 +1,58 @@
+<?xml version="1.0" encoding="utf-8"?>
+<project xmlns:dc="http://purl.org/dc/elements/1.1/">
+ <title>AAA Update test</title>
+ <short_name>aaa_update_test</short_name>
+ <dc:creator>Drupal</dc:creator>
+ <supported_branches>8.x-1.,8.x-2.</supported_branches>
+ <project_status>published</project_status>
+ <link>http://example.com/project/aaa_update_test</link>
+ <terms>
+  <term><name>Projects</name><value>Modules</value></term>
+ </terms>
+ <releases>
+  <release>
+   <name>aaa_update_test 8.x-2.2</name>
+   <version>8.x-2.2</version>
+   <tag>8.x-2.2</tag>
+   <core_compatibility>^8.1.1</core_compatibility>
+   <status>published</status>
+   <release_link>http://example.com/aaa_update_test-8-x-2-2-release</release_link>
+   <download_link>http://example.com/aaa_update_test-8-x-2-2.tar.gz</download_link>
+   <date>1250424521</date>
+   <terms>
+    <term><name>Release type</name><value>New features</value></term>
+    <term><name>Release type</name><value>Bug fixes</value></term>
+    <term><name>Release type</name><value>Security update</value></term>
+   </terms>
+  </release>
+  <release>
+   <name>aaa_update_test 8.x-1.2</name>
+   <version>8.x-1.2</version>
+   <tag>8.x-2.2</tag>
+   <core_compatibility>^8.1.0</core_compatibility>
+   <status>published</status>
+   <release_link>http://example.com/aaa_update_test-8-x-1-2-release</release_link>
+   <download_link>http://example.com/aaa_update_test-8-x-1-2.tar.gz</download_link>
+   <date>1250424521</date>
+   <terms>
+    <term><name>Release type</name><value>New features</value></term>
+    <term><name>Release type</name><value>Bug fixes</value></term>
+    <term><name>Release type</name><value>Security update</value></term>
+   </terms>
+  </release>
+  <release>
+   <name>aaa_update_test 8.x-1.0</name>
+   <version>8.x-1.0</version>
+   <tag>8.x-2.2</tag>
+   <status>published</status>
+   <release_link>http://example.com/aaa_update_test-8-x-1-0-release</release_link>
+   <download_link>http://example.com/aaa_update_test-8-x-1-0.tar.gz</download_link>
+   <date>1250424521</date>
+   <terms>
+    <term><name>Release type</name><value>New features</value></term>
+    <term><name>Release type</name><value>Bug fixes</value></term>
+    <term><name>Release type</name><value>Insecure</value></term>
+   </terms>
+  </release>
+ </releases>
+</project>
diff --git a/web/core/modules/update/tests/modules/update_test/aaa_update_test.sec.8.x-1.1_8.x-1.2.xml b/web/core/modules/update/tests/modules/update_test/aaa_update_test.sec.8.x-1.1_8.x-1.2.xml
index 560c82bf05..21e1642f22 100644
--- a/web/core/modules/update/tests/modules/update_test/aaa_update_test.sec.8.x-1.1_8.x-1.2.xml
+++ b/web/core/modules/update/tests/modules/update_test/aaa_update_test.sec.8.x-1.1_8.x-1.2.xml
@@ -3,10 +3,7 @@
  <title>AAA Update test</title>
  <short_name>aaa_update_test</short_name>
  <dc:creator>Drupal</dc:creator>
- <api_version>8.x</api_version>
- <recommended_major>1</recommended_major>
- <supported_majors>1</supported_majors>
- <default_major>1</default_major>
+ <supported_branches>8.x-1.</supported_branches>
  <project_status>published</project_status>
  <link>http://example.com/project/aaa_update_test</link>
  <terms>
@@ -17,14 +14,10 @@
    <name>aaa_update_test 8.x-1.2</name>
    <version>8.x-1.2</version>
    <tag>DRUPAL-8--1-2</tag>
-   <version_major>1</version_major>
-   <version_patch>2</version_patch>
    <status>published</status>
    <release_link>http://example.com/aaa_update_test-8-x-1-2-release</release_link>
    <download_link>http://example.com/aaa_update_test-8-x-1-2.tar.gz</download_link>
    <date>1250424521</date>
-   <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-   <filesize>1073741824</filesize>
    <terms>
     <term><name>Release type</name><value>New features</value></term>
     <term><name>Release type</name><value>Bug fixes</value></term>
@@ -35,14 +28,10 @@
    <name>aaa_update_test 8.x-1.1</name>
    <version>8.x-1.1</version>
    <tag>DRUPAL-8--1-1</tag>
-   <version_major>1</version_major>
-   <version_patch>1</version_patch>
    <status>published</status>
    <release_link>http://example.com/aaa_update_test-8-x-1-1-release</release_link>
    <download_link>http://example.com/aaa_update_test-8-x-1-1.tar.gz</download_link>
    <date>1250424521</date>
-   <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-   <filesize>1073741824</filesize>
    <terms>
     <term><name>Release type</name><value>New features</value></term>
     <term><name>Release type</name><value>Bug fixes</value></term>
@@ -54,14 +43,10 @@
    <name>aaa_update_test 8.x-1.0</name>
    <version>8.x-1.0</version>
    <tag>DRUPAL-8--1-0</tag>
-   <version_major>1</version_major>
-   <version_patch>0</version_patch>
    <status>published</status>
    <release_link>http://example.com/aaa_update_test-8-x-1-0-release</release_link>
    <download_link>http://example.com/aaa_update_test-8-x-1-0.tar.gz</download_link>
    <date>1250424521</date>
-   <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-   <filesize>1073741824</filesize>
    <terms>
     <term><name>Release type</name><value>New features</value></term>
     <term><name>Release type</name><value>Bug fixes</value></term>
diff --git a/web/core/modules/update/tests/modules/update_test/aaa_update_test.sec.8.x-1.2.xml b/web/core/modules/update/tests/modules/update_test/aaa_update_test.sec.8.x-1.2.xml
index 0ebb766dd2..78060f3dba 100644
--- a/web/core/modules/update/tests/modules/update_test/aaa_update_test.sec.8.x-1.2.xml
+++ b/web/core/modules/update/tests/modules/update_test/aaa_update_test.sec.8.x-1.2.xml
@@ -3,10 +3,7 @@
  <title>AAA Update test</title>
  <short_name>aaa_update_test</short_name>
  <dc:creator>Drupal</dc:creator>
- <api_version>8.x</api_version>
- <recommended_major>1</recommended_major>
- <supported_majors>1</supported_majors>
- <default_major>1</default_major>
+ <supported_branches>8.x-1.</supported_branches>
  <project_status>published</project_status>
  <link>http://example.com/project/aaa_update_test</link>
  <terms>
@@ -17,14 +14,10 @@
    <name>aaa_update_test 8.x-1.2</name>
    <version>8.x-1.2</version>
    <tag>DRUPAL-8--1-2</tag>
-   <version_major>1</version_major>
-   <version_patch>2</version_patch>
    <status>published</status>
    <release_link>http://example.com/aaa_update_test-8-x-1-2-release</release_link>
    <download_link>http://example.com/aaa_update_test-8-x-1-2.tar.gz</download_link>
    <date>1250424521</date>
-   <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-   <filesize>1073741824</filesize>
    <terms>
     <term><name>Release type</name><value>New features</value></term>
     <term><name>Release type</name><value>Bug fixes</value></term>
@@ -35,14 +28,10 @@
    <name>aaa_update_test 8.x-1.1</name>
    <version>8.x-1.1</version>
    <tag>DRUPAL-8--1-1</tag>
-   <version_major>1</version_major>
-   <version_patch>1</version_patch>
    <status>published</status>
    <release_link>http://example.com/aaa_update_test-8-x-1-1-release</release_link>
    <download_link>http://example.com/aaa_update_test-8-x-1-1.tar.gz</download_link>
    <date>1250424521</date>
-   <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-   <filesize>1073741824</filesize>
    <terms>
     <term><name>Release type</name><value>New features</value></term>
     <term><name>Release type</name><value>Bug fixes</value></term>
@@ -53,14 +42,10 @@
    <name>aaa_update_test 8.x-1.0</name>
    <version>8.x-1.0</version>
    <tag>DRUPAL-8--1-0</tag>
-   <version_major>1</version_major>
-   <version_patch>0</version_patch>
    <status>published</status>
    <release_link>http://example.com/aaa_update_test-8-x-1-0-release</release_link>
    <download_link>http://example.com/aaa_update_test-8-x-1-0.tar.gz</download_link>
    <date>1250424521</date>
-   <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-   <filesize>1073741824</filesize>
    <terms>
     <term><name>Release type</name><value>New features</value></term>
     <term><name>Release type</name><value>Bug fixes</value></term>
diff --git a/web/core/modules/update/tests/modules/update_test/aaa_update_test.sec.8.x-1.2_8.x-2.2.xml b/web/core/modules/update/tests/modules/update_test/aaa_update_test.sec.8.x-1.2_8.x-2.2.xml
index ee5265901a..a820b29ac7 100644
--- a/web/core/modules/update/tests/modules/update_test/aaa_update_test.sec.8.x-1.2_8.x-2.2.xml
+++ b/web/core/modules/update/tests/modules/update_test/aaa_update_test.sec.8.x-1.2_8.x-2.2.xml
@@ -3,10 +3,7 @@
  <title>AAA Update test</title>
  <short_name>aaa_update_test</short_name>
  <dc:creator>Drupal</dc:creator>
- <api_version>8.x</api_version>
- <recommended_major>2</recommended_major>
- <supported_majors>1,2</supported_majors>
- <default_major>2</default_major>
+ <supported_branches>8.x-1.,8.x-2.</supported_branches>
  <project_status>published</project_status>
  <link>http://example.com/project/aaa_update_test</link>
  <terms>
@@ -17,15 +14,10 @@
    <name>aaa_update_test 8.x-3.0-beta2</name>
    <version>8.x-3.0-beta2</version>
    <tag>8.x-3.0-beta2</tag>
-   <version_major>3</version_major>
-   <version_patch>0</version_patch>
-   <version_extra>beta2</version_extra>
    <status>published</status>
    <release_link>http://example.com/aaa_update_test-8-x-3-0-beta2-release</release_link>
    <download_link>http://example.com/aaa_update_test-8-x-3-0-beta2.tar.gz</download_link>
    <date>1533298080</date>
-   <mdhash>2387284145e34a19fc45e03c258a2831</mdhash>
-   <filesize>16209911</filesize>
    <terms>
     <term><name>Release type</name><value>Bug fixes</value></term>
     <term><name>Release type</name><value>New features</value></term>
@@ -38,15 +30,10 @@
    <name>aaa_update_test 8.x-3.0-beta1</name>
    <version>8.x-3.0-beta1</version>
    <tag>8.x-3.0-beta1</tag>
-   <version_major>3</version_major>
-   <version_patch>0</version_patch>
-   <version_extra>beta1</version_extra>
    <status>published</status>
    <release_link>http://example.com/aaa_update_test-8-x-3-0-beta1</release_link>
    <download_link>http://example.com/aaa_update_test--8-x-3-0-beta1.tar.gz</download_link>
    <date>1533270485</date>
-   <mdhash>3d70ae568dd8f7100082b8c58bc8d1fe</mdhash>
-   <filesize>16209123</filesize>
    <terms>
     <term><name>Release type</name><value>Insecure</value></term>
     <term><name>Release type</name><value>Bug fixes</value></term>
@@ -60,14 +47,10 @@
    <name>aaa_update_test 8.x-2.2</name>
    <version>8.x-2.2</version>
    <tag>DRUPAL-8--2-2</tag>
-   <version_major>2</version_major>
-   <version_patch>2</version_patch>
    <status>published</status>
    <release_link>http://example.com/aaa_update_test-8-x-2-2-release</release_link>
    <download_link>http://example.com/aaa_update_test-8-x-2-2.tar.gz</download_link>
    <date>1250424521</date>
-   <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-   <filesize>1073741824</filesize>
    <terms>
     <term><name>Release type</name><value>New features</value></term>
     <term><name>Release type</name><value>Bug fixes</value></term>
@@ -78,14 +61,10 @@
    <name>aaa_update_test 8.x-2.1</name>
    <version>8.x-2.1</version>
    <tag>DRUPAL-8--2-1</tag>
-   <version_major>2</version_major>
-   <version_patch>1</version_patch>
    <status>published</status>
    <release_link>http://example.com/aaa_update_test-8-x-2-1-release</release_link>
    <download_link>http://example.com/aaa_update_test-8-x-2-1.tar.gz</download_link>
    <date>1250424521</date>
-   <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-   <filesize>1073741824</filesize>
    <terms>
     <term><name>Release type</name><value>New features</value></term>
     <term><name>Release type</name><value>Bug fixes</value></term>
@@ -97,14 +76,10 @@
    <name>aaa_update_test 8.x-2.0</name>
    <version>8.x-2.0</version>
    <tag>DRUPAL-8--2-0</tag>
-   <version_major>2</version_major>
-   <version_patch>0</version_patch>
    <status>published</status>
    <release_link>http://example.com/aaa_update_test-8-x-2-0-release</release_link>
    <download_link>http://example.com/aaa_update_test-8-x-2-0.tar.gz</download_link>
    <date>1250424521</date>
-   <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-   <filesize>1073741824</filesize>
    <terms>
     <term><name>Release type</name><value>New features</value></term>
     <term><name>Release type</name><value>Bug fixes</value></term>
@@ -115,14 +90,10 @@
    <name>aaa_update_test 8.x-1.2</name>
    <version>8.x-1.2</version>
    <tag>DRUPAL-8--1-2</tag>
-   <version_major>1</version_major>
-   <version_patch>2</version_patch>
    <status>published</status>
    <release_link>http://example.com/aaa_update_test-8-x-1-2-release</release_link>
    <download_link>http://example.com/aaa_update_test-8-x-1-2.tar.gz</download_link>
    <date>1250424521</date>
-   <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-   <filesize>1073741824</filesize>
    <terms>
     <term><name>Release type</name><value>New features</value></term>
     <term><name>Release type</name><value>Bug fixes</value></term>
@@ -133,14 +104,10 @@
    <name>aaa_update_test 8.x-1.1</name>
    <version>8.x-1.1</version>
    <tag>DRUPAL-8--1-1</tag>
-   <version_major>1</version_major>
-   <version_patch>1</version_patch>
    <status>published</status>
    <release_link>http://example.com/aaa_update_test-8-x-1-1-release</release_link>
    <download_link>http://example.com/aaa_update_test-8-x-1-1.tar.gz</download_link>
    <date>1250424521</date>
-   <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-   <filesize>1073741824</filesize>
    <terms>
     <term><name>Release type</name><value>New features</value></term>
     <term><name>Release type</name><value>Bug fixes</value></term>
@@ -151,14 +118,10 @@
    <name>aaa_update_test 8.x-1.0</name>
    <version>8.x-1.0</version>
    <tag>DRUPAL-8--1-0</tag>
-   <version_major>1</version_major>
-   <version_patch>0</version_patch>
    <status>published</status>
    <release_link>http://example.com/aaa_update_test-8-x-1-0-release</release_link>
    <download_link>http://example.com/aaa_update_test-8-x-1-0.tar.gz</download_link>
    <date>1250424521</date>
-   <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-   <filesize>1073741824</filesize>
    <terms>
     <term><name>Release type</name><value>New features</value></term>
     <term><name>Release type</name><value>Bug fixes</value></term>
diff --git a/web/core/modules/update/tests/modules/update_test/aaa_update_test.sec.8.x-2.2_1.x_secure.xml b/web/core/modules/update/tests/modules/update_test/aaa_update_test.sec.8.x-2.2_1.x_secure.xml
index a42b58d5c5..a696eacc50 100644
--- a/web/core/modules/update/tests/modules/update_test/aaa_update_test.sec.8.x-2.2_1.x_secure.xml
+++ b/web/core/modules/update/tests/modules/update_test/aaa_update_test.sec.8.x-2.2_1.x_secure.xml
@@ -3,10 +3,7 @@
  <title>AAA Update test</title>
  <short_name>aaa_update_test</short_name>
  <dc:creator>Drupal</dc:creator>
- <api_version>8.x</api_version>
- <recommended_major>2</recommended_major>
- <supported_majors>1,2</supported_majors>
- <default_major>2</default_major>
+ <supported_branches>8.x-1.,8.x-2.</supported_branches>
  <project_status>published</project_status>
  <link>http://example.com/project/aaa_update_test</link>
  <terms>
@@ -17,14 +14,10 @@
    <name>aaa_update_test 8.x-2.2</name>
    <version>8.x-2.2</version>
    <tag>DRUPAL-8--2-2</tag>
-   <version_major>2</version_major>
-   <version_patch>2</version_patch>
    <status>published</status>
    <release_link>http://example.com/aaa_update_test-8-x-2-2-release</release_link>
    <download_link>http://example.com/aaa_update_test-8-x-2-2.tar.gz</download_link>
    <date>1250424521</date>
-   <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-   <filesize>1073741824</filesize>
    <terms>
     <term><name>Release type</name><value>New features</value></term>
     <term><name>Release type</name><value>Bug fixes</value></term>
@@ -35,14 +28,10 @@
    <name>aaa_update_test 8.x-2.1</name>
    <version>8.x-2.1</version>
    <tag>DRUPAL-8--2-1</tag>
-   <version_major>2</version_major>
-   <version_patch>1</version_patch>
    <status>published</status>
    <release_link>http://example.com/aaa_update_test-8-x-2-1-release</release_link>
    <download_link>http://example.com/aaa_update_test-8-x-2-1.tar.gz</download_link>
    <date>1250424521</date>
-   <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-   <filesize>1073741824</filesize>
    <terms>
     <term><name>Release type</name><value>New features</value></term>
     <term><name>Release type</name><value>Bug fixes</value></term>
@@ -54,14 +43,10 @@
    <name>aaa_update_test 8.x-2.0</name>
    <version>8.x-2.0</version>
    <tag>DRUPAL-8--2-0</tag>
-   <version_major>2</version_major>
-   <version_patch>0</version_patch>
    <status>published</status>
    <release_link>http://example.com/aaa_update_test-8-x-2-0-release</release_link>
    <download_link>http://example.com/aaa_update_test-8-x-2-0.tar.gz</download_link>
    <date>1250424521</date>
-   <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-   <filesize>1073741824</filesize>
    <terms>
     <term><name>Release type</name><value>New features</value></term>
     <term><name>Release type</name><value>Bug fixes</value></term>
@@ -72,14 +57,10 @@
    <name>aaa_update_test 8.x-1.2</name>
    <version>8.x-1.2</version>
    <tag>DRUPAL-8--1-2</tag>
-   <version_major>1</version_major>
-   <version_patch>2</version_patch>
    <status>published</status>
    <release_link>http://example.com/aaa_update_test-8-x-1-2-release</release_link>
    <download_link>http://example.com/aaa_update_test-8-x-1-2.tar.gz</download_link>
    <date>1250424521</date>
-   <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-   <filesize>1073741824</filesize>
    <terms>
     <term><name>Release type</name><value>New features</value></term>
     <term><name>Release type</name><value>Bug fixes</value></term>
@@ -89,14 +70,10 @@
    <name>aaa_update_test 8.x-1.1</name>
    <version>8.x-1.1</version>
    <tag>DRUPAL-8--1-1</tag>
-   <version_major>1</version_major>
-   <version_patch>1</version_patch>
    <status>published</status>
    <release_link>http://example.com/aaa_update_test-8-x-1-1-release</release_link>
    <download_link>http://example.com/aaa_update_test-8-x-1-1.tar.gz</download_link>
    <date>1250424521</date>
-   <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-   <filesize>1073741824</filesize>
    <terms>
     <term><name>Release type</name><value>New features</value></term>
     <term><name>Release type</name><value>Bug fixes</value></term>
@@ -106,15 +83,11 @@
    <name>aaa_update_test 8.x-1.0</name>
    <version>8.x-1.0</version>
    <tag>DRUPAL-8--1-0</tag>
-   <version_major>1</version_major>
-   <version_patch>0</version_patch>
    <status>published</status>
    <release_link>http://example.com/aaa_update_test-8-x-1-0-release</release_link>
    <download_link>http://example.com/aaa_update_test-8-x-1-0.tar.gz</download_link>
    <date>1250424521</date>
-   <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-   <filesize>1073741824</filesize>
-   <terms>
+  <terms>
     <term><name>Release type</name><value>New features</value></term>
     <term><name>Release type</name><value>Bug fixes</value></term>
    </terms>
diff --git a/web/core/modules/update/tests/modules/update_test/bbb_update_test.1_0.xml b/web/core/modules/update/tests/modules/update_test/bbb_update_test.1_0.xml
index 8d705b5f96..43ebaf14ce 100644
--- a/web/core/modules/update/tests/modules/update_test/bbb_update_test.1_0.xml
+++ b/web/core/modules/update/tests/modules/update_test/bbb_update_test.1_0.xml
@@ -3,10 +3,7 @@
 <title>BBB Update test</title>
 <short_name>bbb_update_test</short_name>
 <dc:creator>Drupal</dc:creator>
-<api_version>8.x</api_version>
-<recommended_major>1</recommended_major>
-<supported_majors>1</supported_majors>
-<default_major>1</default_major>
+<supported_branches>8.x-1.</supported_branches>
 <project_status>published</project_status>
 <link>http://example.com/project/bbb_update_test</link>
   <terms>
@@ -17,14 +14,10 @@
   <name>bbb_update_test 8.x-1.0</name>
   <version>8.x-1.0</version>
   <tag>DRUPAL-7--1-0</tag>
-  <version_major>1</version_major>
-  <version_patch>0</version_patch>
   <status>published</status>
   <release_link>http://example.com/bbb_update_test-7-x-1-0-release</release_link>
   <download_link>http://example.com/bbb_update_test-8.x-1.0.tar.gz</download_link>
   <date>1250424521</date>
-  <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-  <filesize>1073741824</filesize>
   <terms>
    <term><name>Release type</name><value>New features</value></term>
    <term><name>Release type</name><value>Bug fixes</value></term>
diff --git a/web/core/modules/update/tests/modules/update_test/ccc_update_test.1_0.xml b/web/core/modules/update/tests/modules/update_test/ccc_update_test.1_0.xml
index 82764c2c33..3076229a4b 100644
--- a/web/core/modules/update/tests/modules/update_test/ccc_update_test.1_0.xml
+++ b/web/core/modules/update/tests/modules/update_test/ccc_update_test.1_0.xml
@@ -3,10 +3,7 @@
 <title>CCC Update test</title>
 <short_name>ccc_update_test</short_name>
 <dc:creator>Drupal</dc:creator>
-<api_version>8.x</api_version>
-<recommended_major>1</recommended_major>
-<supported_majors>1</supported_majors>
-<default_major>1</default_major>
+<supported_branches>8.x-1.</supported_branches>
 <project_status>published</project_status>
 <link>http://example.com/project/ccc_update_test</link>
   <terms>
@@ -17,14 +14,10 @@
   <name>ccc_update_test 8.x-1.0</name>
   <version>8.x-1.0</version>
   <tag>DRUPAL-7--1-0</tag>
-  <version_major>1</version_major>
-  <version_patch>0</version_patch>
   <status>published</status>
   <release_link>http://example.com/ccc_update_test-7-x-1-0-release</release_link>
   <download_link>http://example.com/ccc_update_test-8.x-1.0.tar.gz</download_link>
   <date>1250424521</date>
-  <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-  <filesize>1073741824</filesize>
   <terms>
    <term><name>Release type</name><value>New features</value></term>
    <term><name>Release type</name><value>Bug fixes</value></term>
diff --git a/web/core/modules/update/tests/modules/update_test/drupal.0.0-alpha1.xml b/web/core/modules/update/tests/modules/update_test/drupal.0.0-alpha1.xml
index e463b72e3d..a39ed092c7 100644
--- a/web/core/modules/update/tests/modules/update_test/drupal.0.0-alpha1.xml
+++ b/web/core/modules/update/tests/modules/update_test/drupal.0.0-alpha1.xml
@@ -3,30 +3,35 @@
 <title>Drupal</title>
 <short_name>drupal</short_name>
 <dc:creator>Drupal</dc:creator>
-<api_version>8.x</api_version>
-<recommended_major>8</recommended_major>
-<supported_majors>8</supported_majors>
-<default_major>8</default_major>
+<supported_branches>8.0.,8.1.</supported_branches>
 <project_status>published</project_status>
 <link>http://example.com/project/drupal</link>
   <terms>
    <term><name>Projects</name><value>Drupal project</value></term>
   </terms>
 <releases>
+  <release>
+    <!-- This release is not in a supported branch; therefore it should not be recommended. -->
+    <name>Drupal 8.2.0</name>
+    <version>8.2.0</version>
+    <tag>DRUPAL-8-2-0</tag>
+    <status>published</status>
+    <release_link>http://example.com/drupal-8-2-0-release</release_link>
+    <download_link>http://example.com/drupal-8-2-0.tar.gz</download_link>
+    <date>1250425521</date>
+    <terms>
+      <term><name>Release type</name><value>New features</value></term>
+      <term><name>Release type</name><value>Bug fixes</value></term>
+    </terms>
+ </release>
  <release>
    <name>Drupal 8.0.0-alpha1</name>
    <version>8.0.0-alpha1</version>
    <tag>DRUPAL-8-0-0-alpha1</tag>
-   <version_major>8</version_major>
-   <version_minor>0</version_minor>
-   <version_patch>0</version_patch>
-   <version_extra>alpha1</version_extra>
    <status>published</status>
    <release_link>http://example.com/drupal-8-0-0-alpha1-release</release_link>
    <download_link>http://example.com/drupal-8-0-0-alpha1.tar.gz</download_link>
    <date>1250424521</date>
-   <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-   <filesize>1073741824</filesize>
    <terms>
      <term><name>Release type</name><value>New features</value></term>
      <term><name>Release type</name><value>Bug fixes</value></term>
diff --git a/web/core/modules/update/tests/modules/update_test/drupal.0.0-beta1.xml b/web/core/modules/update/tests/modules/update_test/drupal.0.0-beta1.xml
index b3dc3bf2aa..7dd0ae5905 100644
--- a/web/core/modules/update/tests/modules/update_test/drupal.0.0-beta1.xml
+++ b/web/core/modules/update/tests/modules/update_test/drupal.0.0-beta1.xml
@@ -3,30 +3,35 @@
 <title>Drupal</title>
 <short_name>drupal</short_name>
 <dc:creator>Drupal</dc:creator>
-<api_version>8.x</api_version>
-<recommended_major>8</recommended_major>
-<supported_majors>8</supported_majors>
-<default_major>8</default_major>
+<supported_branches>8.0.,8.1.</supported_branches>
 <project_status>published</project_status>
 <link>http://example.com/project/drupal</link>
   <terms>
    <term><name>Projects</name><value>Drupal project</value></term>
   </terms>
 <releases>
+  <release>
+    <!-- This release is not in a supported branch; therefore it should not be recommended. -->
+    <name>Drupal 8.2.0</name>
+    <version>8.2.0</version>
+    <tag>DRUPAL-8-2-0</tag>
+    <status>published</status>
+    <release_link>http://example.com/drupal-8-2-0-release</release_link>
+    <download_link>http://example.com/drupal-8-2-0.tar.gz</download_link>
+    <date>1250425521</date>
+    <terms>
+      <term><name>Release type</name><value>New features</value></term>
+      <term><name>Release type</name><value>Bug fixes</value></term>
+    </terms>
+  </release>
  <release>
    <name>Drupal 8.0.0-beta1</name>
    <version>8.0.0-beta1</version>
    <tag>DRUPAL-8-0-0-beta1</tag>
-   <version_major>8</version_major>
-   <version_minor>0</version_minor>
-   <version_patch>0</version_patch>
-   <version_extra>beta1</version_extra>
    <status>published</status>
    <release_link>http://example.com/drupal-8-0-0-beta1-release</release_link>
    <download_link>http://example.com/drupal-8-0-0-beta1.tar.gz</download_link>
    <date>1250424521</date>
-   <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-   <filesize>1073741824</filesize>
    <terms>
      <term><name>Release type</name><value>New features</value></term>
      <term><name>Release type</name><value>Bug fixes</value></term>
@@ -36,16 +41,10 @@
   <name>Drupal 8.0.0-alpha1</name>
   <version>8.0.0-alpha1</version>
   <tag>DRUPAL-8-0-0-alpha1</tag>
-  <version_major>8</version_major>
-  <version_minor>0</version_minor>
-  <version_patch>0</version_patch>
-  <version_extra>alpha1</version_extra>
   <status>published</status>
   <release_link>http://example.com/drupal-8-0-0-alpha1-release</release_link>
   <download_link>http://example.com/drupal-8-0-0-alpha1.tar.gz</download_link>
   <date>1250424521</date>
-  <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-  <filesize>1073741824</filesize>
   <terms>
    <term><name>Release type</name><value>New features</value></term>
    <term><name>Release type</name><value>Bug fixes</value></term>
diff --git a/web/core/modules/update/tests/modules/update_test/drupal.0.0.xml b/web/core/modules/update/tests/modules/update_test/drupal.0.0.xml
index ac450660d5..126301f4c3 100644
--- a/web/core/modules/update/tests/modules/update_test/drupal.0.0.xml
+++ b/web/core/modules/update/tests/modules/update_test/drupal.0.0.xml
@@ -3,29 +3,35 @@
 <title>Drupal</title>
 <short_name>drupal</short_name>
 <dc:creator>Drupal</dc:creator>
-<api_version>8.x</api_version>
-<recommended_major>8</recommended_major>
-<supported_majors>8</supported_majors>
-<default_major>8</default_major>
+<supported_branches>8.0.,8.1.</supported_branches>
 <project_status>published</project_status>
 <link>http://example.com/project/drupal</link>
   <terms>
    <term><name>Projects</name><value>Drupal project</value></term>
   </terms>
 <releases>
+ <release>
+  <!-- This release is not in a supported branch; therefore it should not be recommended. -->
+  <name>Drupal 8.2.0</name>
+  <version>8.2.0</version>
+  <tag>DRUPAL-8-2-0</tag>
+  <status>published</status>
+  <release_link>http://example.com/drupal-8-2-0-release</release_link>
+  <download_link>http://example.com/drupal-8-2-0.tar.gz</download_link>
+  <date>1250425521</date>
+  <terms>
+    <term><name>Release type</name><value>New features</value></term>
+    <term><name>Release type</name><value>Bug fixes</value></term>
+  </terms>
+ </release>
  <release>
    <name>Drupal 8.0.0</name>
    <version>8.0.0</version>
    <tag>DRUPAL-8-0-0</tag>
-   <version_major>8</version_major>
-   <version_minor>0</version_minor>
-   <version_patch>0</version_patch>
    <status>published</status>
    <release_link>http://example.com/drupal-8-0-0-release</release_link>
    <download_link>http://example.com/drupal-8-0-0.tar.gz</download_link>
    <date>1250424521</date>
-   <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-   <filesize>1073741824</filesize>
    <terms>
      <term><name>Release type</name><value>New features</value></term>
      <term><name>Release type</name><value>Bug fixes</value></term>
@@ -35,16 +41,10 @@
    <name>Drupal 8.0.0-beta1</name>
    <version>8.0.0-beta1</version>
    <tag>DRUPAL-8-0-0-beta1</tag>
-   <version_major>8</version_major>
-   <version_minor>0</version_minor>
-   <version_patch>0</version_patch>
-   <version_extra>beta1</version_extra>
    <status>published</status>
    <release_link>http://example.com/drupal-8-0-0-beta1-release</release_link>
    <download_link>http://example.com/drupal-8-0-0-beta1.tar.gz</download_link>
    <date>1250424521</date>
-   <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-   <filesize>1073741824</filesize>
    <terms>
      <term><name>Release type</name><value>New features</value></term>
      <term><name>Release type</name><value>Bug fixes</value></term>
@@ -54,16 +54,10 @@
   <name>Drupal 8.0.0-alpha1</name>
   <version>8.0.0-alpha1</version>
   <tag>DRUPAL-8-0-0-alpha1</tag>
-  <version_major>8</version_major>
-  <version_minor>0</version_minor>
-  <version_patch>0</version_patch>
-  <version_extra>alpha1</version_extra>
   <status>published</status>
   <release_link>http://example.com/drupal-8-0-0-alpha1-release</release_link>
   <download_link>http://example.com/drupal-8-0-0-alpha1.tar.gz</download_link>
   <date>1250424521</date>
-  <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-  <filesize>1073741824</filesize>
   <terms>
    <term><name>Release type</name><value>New features</value></term>
    <term><name>Release type</name><value>Bug fixes</value></term>
diff --git a/web/core/modules/update/tests/modules/update_test/drupal.0.1-alpha1.xml b/web/core/modules/update/tests/modules/update_test/drupal.0.1-alpha1.xml
index 150136c67d..6e714b6267 100644
--- a/web/core/modules/update/tests/modules/update_test/drupal.0.1-alpha1.xml
+++ b/web/core/modules/update/tests/modules/update_test/drupal.0.1-alpha1.xml
@@ -3,30 +3,35 @@
 <title>Drupal</title>
 <short_name>drupal</short_name>
 <dc:creator>Drupal</dc:creator>
-<api_version>8.x</api_version>
-<recommended_major>8</recommended_major>
-<supported_majors>8</supported_majors>
-<default_major>8</default_major>
+<supported_branches>8.0.,8.1.</supported_branches>
 <project_status>published</project_status>
 <link>http://example.com/project/drupal</link>
   <terms>
    <term><name>Projects</name><value>Drupal project</value></term>
   </terms>
 <releases>
+  <release>
+    <!-- This release is not in a supported branch; therefore it should not be recommended. -->
+    <name>Drupal 8.2.0</name>
+    <version>8.2.0</version>
+    <tag>DRUPAL-8-2-0</tag>
+    <status>published</status>
+    <release_link>http://example.com/drupal-8-2-0-release</release_link>
+    <download_link>http://example.com/drupal-8-2-0.tar.gz</download_link>
+    <date>1250425521</date>
+    <terms>
+      <term><name>Release type</name><value>New features</value></term>
+      <term><name>Release type</name><value>Bug fixes</value></term>
+    </terms>
+  </release>
  <release>
    <name>Drupal 8.0.1-alpha1</name>
    <version>8.0.1-alpha1</version>
    <tag>DRUPAL-8-0-1-alpha1</tag>
-   <version_major>8</version_major>
-   <version_minor>0</version_minor>
-   <version_patch>1</version_patch>
-   <version_extra>alpha1</version_extra>
    <status>published</status>
    <release_link>http://example.com/drupal-8-0-1-alpha1-release</release_link>
    <download_link>http://example.com/drupal-8-0-1-alpha1.tar.gz</download_link>
    <date>1250424521</date>
-   <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-   <filesize>1073741824</filesize>
    <terms>
      <term><name>Release type</name><value>New features</value></term>
      <term><name>Release type</name><value>Bug fixes</value></term>
@@ -36,15 +41,10 @@
    <name>Drupal 8.0.0</name>
    <version>8.0.0</version>
    <tag>DRUPAL-8-0-0</tag>
-   <version_major>8</version_major>
-   <version_minor>0</version_minor>
-   <version_patch>0</version_patch>
    <status>published</status>
    <release_link>http://example.com/drupal-8-0-0-release</release_link>
    <download_link>http://example.com/drupal-8-0-0.tar.gz</download_link>
    <date>1250424521</date>
-   <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-   <filesize>1073741824</filesize>
    <terms>
      <term><name>Release type</name><value>New features</value></term>
      <term><name>Release type</name><value>Bug fixes</value></term>
@@ -54,16 +54,10 @@
    <name>Drupal 8.0.0-beta1</name>
    <version>8.0.0-beta1</version>
    <tag>DRUPAL-8-0-0-beta1</tag>
-   <version_major>8</version_major>
-   <version_minor>0</version_minor>
-   <version_patch>0</version_patch>
-   <version_extra>beta1</version_extra>
    <status>published</status>
    <release_link>http://example.com/drupal-8-0-0-beta1-release</release_link>
    <download_link>http://example.com/drupal-8-0-0-beta1.tar.gz</download_link>
    <date>1250424521</date>
-   <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-   <filesize>1073741824</filesize>
    <terms>
      <term><name>Release type</name><value>New features</value></term>
      <term><name>Release type</name><value>Bug fixes</value></term>
@@ -73,16 +67,10 @@
    <name>Drupal 8.0.0-alpha1</name>
    <version>8.0.0-alpha1</version>
    <tag>DRUPAL-8-0-0-alpha1</tag>
-   <version_major>8</version_major>
-   <version_minor>0</version_minor>
-   <version_patch>0</version_patch>
-   <version_extra>alpha1</version_extra>
    <status>published</status>
    <release_link>http://example.com/drupal-8-0-0-alpha1-release</release_link>
    <download_link>http://example.com/drupal-8-0-0-alpha1.tar.gz</download_link>
    <date>1250424521</date>
-   <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-   <filesize>1073741824</filesize>
    <terms>
      <term><name>Release type</name><value>New features</value></term>
      <term><name>Release type</name><value>Bug fixes</value></term>
diff --git a/web/core/modules/update/tests/modules/update_test/drupal.0.1-beta1.xml b/web/core/modules/update/tests/modules/update_test/drupal.0.1-beta1.xml
index 25c9f7023e..ae59519164 100644
--- a/web/core/modules/update/tests/modules/update_test/drupal.0.1-beta1.xml
+++ b/web/core/modules/update/tests/modules/update_test/drupal.0.1-beta1.xml
@@ -3,30 +3,35 @@
 <title>Drupal</title>
 <short_name>drupal</short_name>
 <dc:creator>Drupal</dc:creator>
-<api_version>8.x</api_version>
-<recommended_major>8</recommended_major>
-<supported_majors>8</supported_majors>
-<default_major>8</default_major>
+<supported_branches>8.0.,8.1.</supported_branches>
 <project_status>published</project_status>
 <link>http://example.com/project/drupal</link>
   <terms>
    <term><name>Projects</name><value>Drupal project</value></term>
   </terms>
 <releases>
+  <release>
+    <!-- This release is not in a supported branch; therefore it should not be recommended. -->
+    <name>Drupal 8.2.0</name>
+    <version>8.2.0</version>
+    <tag>DRUPAL-8-2-0</tag>
+    <status>published</status>
+    <release_link>http://example.com/drupal-8-2-0-release</release_link>
+    <download_link>http://example.com/drupal-8-2-0.tar.gz</download_link>
+    <date>1250425521</date>
+    <terms>
+      <term><name>Release type</name><value>New features</value></term>
+      <term><name>Release type</name><value>Bug fixes</value></term>
+    </terms>
+  </release>
  <release>
    <name>Drupal 8.0.1-beta1</name>
    <version>8.0.1-beta1</version>
    <tag>DRUPAL-8-0-1-beta1</tag>
-   <version_major>8</version_major>
-   <version_minor>0</version_minor>
-   <version_patch>1</version_patch>
-   <version_extra>beta1</version_extra>
    <status>published</status>
    <release_link>http://example.com/drupal-8-0-1-beta1-release</release_link>
    <download_link>http://example.com/drupal-8-0-1-beta1.tar.gz</download_link>
    <date>1250424521</date>
-   <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-   <filesize>1073741824</filesize>
    <terms>
      <term><name>Release type</name><value>New features</value></term>
      <term><name>Release type</name><value>Bug fixes</value></term>
@@ -36,16 +41,10 @@
    <name>Drupal 8.0.1-alpha1</name>
    <version>8.0.1-alpha1</version>
    <tag>DRUPAL-8-0-1-alpha1</tag>
-   <version_major>8</version_major>
-   <version_minor>0</version_minor>
-   <version_patch>1</version_patch>
-   <version_extra>alpha1</version_extra>
    <status>published</status>
    <release_link>http://example.com/drupal-8-0-1-alpha1-release</release_link>
    <download_link>http://example.com/drupal-8-0-1-alpha1.tar.gz</download_link>
    <date>1250424521</date>
-   <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-   <filesize>1073741824</filesize>
    <terms>
      <term><name>Release type</name><value>New features</value></term>
      <term><name>Release type</name><value>Bug fixes</value></term>
@@ -55,15 +54,10 @@
    <name>Drupal 8.0.0</name>
    <version>8.0.0</version>
    <tag>DRUPAL-8-0-0</tag>
-   <version_major>8</version_major>
-   <version_minor>0</version_minor>
-   <version_patch>0</version_patch>
    <status>published</status>
    <release_link>http://example.com/drupal-8-0-0-release</release_link>
    <download_link>http://example.com/drupal-8-0-0.tar.gz</download_link>
    <date>1250424521</date>
-   <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-   <filesize>1073741824</filesize>
    <terms>
      <term><name>Release type</name><value>New features</value></term>
      <term><name>Release type</name><value>Bug fixes</value></term>
@@ -73,16 +67,10 @@
    <name>Drupal 8.0.0-beta1</name>
    <version>8.0.0-beta1</version>
    <tag>DRUPAL-8-0-0-beta1</tag>
-   <version_major>8</version_major>
-   <version_minor>0</version_minor>
-   <version_patch>0</version_patch>
-   <version_extra>beta1</version_extra>
    <status>published</status>
    <release_link>http://example.com/drupal-8-0-0-beta1-release</release_link>
    <download_link>http://example.com/drupal-8-0-0-beta1.tar.gz</download_link>
    <date>1250424521</date>
-   <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-   <filesize>1073741824</filesize>
    <terms>
      <term><name>Release type</name><value>New features</value></term>
      <term><name>Release type</name><value>Bug fixes</value></term>
@@ -92,16 +80,10 @@
    <name>Drupal 8.0.0-alpha1</name>
    <version>8.0.0-alpha1</version>
    <tag>DRUPAL-8-0-0-alpha1</tag>
-   <version_major>8</version_major>
-   <version_minor>0</version_minor>
-   <version_patch>0</version_patch>
-   <version_extra>alpha1</version_extra>
    <status>published</status>
    <release_link>http://example.com/drupal-8-0-0-alpha1-release</release_link>
    <download_link>http://example.com/drupal-8-0-0-alpha1.tar.gz</download_link>
    <date>1250424521</date>
-   <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-   <filesize>1073741824</filesize>
    <terms>
      <term><name>Release type</name><value>New features</value></term>
      <term><name>Release type</name><value>Bug fixes</value></term>
diff --git a/web/core/modules/update/tests/modules/update_test/drupal.0.1.xml b/web/core/modules/update/tests/modules/update_test/drupal.0.1.xml
index ea00c15c90..f4224a0d36 100644
--- a/web/core/modules/update/tests/modules/update_test/drupal.0.1.xml
+++ b/web/core/modules/update/tests/modules/update_test/drupal.0.1.xml
@@ -3,29 +3,35 @@
 <title>Drupal</title>
 <short_name>drupal</short_name>
 <dc:creator>Drupal</dc:creator>
-<api_version>8.x</api_version>
-<recommended_major>8</recommended_major>
-<supported_majors>8</supported_majors>
-<default_major>8</default_major>
+<supported_branches>8.0.,8.1.</supported_branches>
 <project_status>published</project_status>
 <link>http://example.com/project/drupal</link>
   <terms>
    <term><name>Projects</name><value>Drupal project</value></term>
   </terms>
 <releases>
+  <release>
+    <!-- This release is not in a supported branch; therefore it should not be recommended. -->
+    <name>Drupal 8.2.0</name>
+    <version>8.2.0</version>
+    <tag>DRUPAL-8-2-0</tag>
+    <status>published</status>
+    <release_link>http://example.com/drupal-8-2-0-release</release_link>
+    <download_link>http://example.com/drupal-8-2-0.tar.gz</download_link>
+    <date>1250425521</date>
+    <terms>
+      <term><name>Release type</name><value>New features</value></term>
+      <term><name>Release type</name><value>Bug fixes</value></term>
+    </terms>
+  </release>
  <release>
    <name>Drupal 8.0.1</name>
    <version>8.0.1</version>
    <tag>DRUPAL-8-0-1</tag>
-   <version_major>8</version_major>
-   <version_minor>0</version_minor>
-   <version_patch>1</version_patch>
    <status>published</status>
    <release_link>http://example.com/drupal-8-0-1-release</release_link>
    <download_link>http://example.com/drupal-8-0-1.tar.gz</download_link>
    <date>1250424581</date>
-   <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-   <filesize>2147483648</filesize>
    <terms>
      <term><name>Release type</name><value>New features</value></term>
      <term><name>Release type</name><value>Bug fixes</value></term>
@@ -35,16 +41,10 @@
    <name>Drupal 8.0.1-beta1</name>
    <version>8.0.1-beta1</version>
    <tag>DRUPAL-8-0-1-beta1</tag>
-   <version_major>8</version_major>
-   <version_minor>0</version_minor>
-   <version_patch>1</version_patch>
-   <version_extra>beta1</version_extra>
    <status>published</status>
    <release_link>http://example.com/drupal-8-0-1-beta1-release</release_link>
    <download_link>http://example.com/drupal-8-0-1-beta1.tar.gz</download_link>
    <date>1250424521</date>
-   <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-   <filesize>1073741824</filesize>
    <terms>
      <term><name>Release type</name><value>New features</value></term>
      <term><name>Release type</name><value>Bug fixes</value></term>
@@ -54,16 +54,10 @@
    <name>Drupal 8.0.1-alpha1</name>
    <version>8.0.1-alpha1</version>
    <tag>DRUPAL-8-0-1-alpha1</tag>
-   <version_major>8</version_major>
-   <version_minor>0</version_minor>
-   <version_patch>1</version_patch>
-   <version_extra>alpha1</version_extra>
    <status>published</status>
    <release_link>http://example.com/drupal-8-0-1-alpha1-release</release_link>
    <download_link>http://example.com/drupal-8-0-1-alpha1.tar.gz</download_link>
    <date>1250424521</date>
-   <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-   <filesize>1073741824</filesize>
    <terms>
      <term><name>Release type</name><value>New features</value></term>
      <term><name>Release type</name><value>Bug fixes</value></term>
@@ -73,15 +67,10 @@
    <name>Drupal 8.0.0</name>
    <version>8.0.0</version>
    <tag>DRUPAL-8-0-0</tag>
-   <version_major>8</version_major>
-   <version_minor>0</version_minor>
-   <version_patch>0</version_patch>
    <status>published</status>
    <release_link>http://example.com/drupal-8-0-0-release</release_link>
    <download_link>http://example.com/drupal-8-0-0.tar.gz</download_link>
    <date>1250424521</date>
-   <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-   <filesize>1073741824</filesize>
    <terms>
      <term><name>Release type</name><value>New features</value></term>
      <term><name>Release type</name><value>Bug fixes</value></term>
@@ -91,16 +80,10 @@
    <name>Drupal 8.0.0-beta1</name>
    <version>8.0.0-beta1</version>
    <tag>DRUPAL-8-0-0-beta1</tag>
-   <version_major>8</version_major>
-   <version_minor>0</version_minor>
-   <version_patch>0</version_patch>
-   <version_extra>beta1</version_extra>
    <status>published</status>
    <release_link>http://example.com/drupal-8-0-0-beta1-release</release_link>
    <download_link>http://example.com/drupal-8-0-0-beta1.tar.gz</download_link>
    <date>1250424521</date>
-   <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-   <filesize>1073741824</filesize>
    <terms>
      <term><name>Release type</name><value>New features</value></term>
      <term><name>Release type</name><value>Bug fixes</value></term>
@@ -110,16 +93,10 @@
    <name>Drupal 8.0.0-alpha1</name>
    <version>8.0.0-alpha1</version>
    <tag>DRUPAL-8-0-0-alpha1</tag>
-   <version_major>8</version_major>
-   <version_minor>0</version_minor>
-   <version_patch>0</version_patch>
-   <version_extra>alpha1</version_extra>
    <status>published</status>
    <release_link>http://example.com/drupal-8-0-0-alpha1-release</release_link>
    <download_link>http://example.com/drupal-8-0-0-alpha1.tar.gz</download_link>
    <date>1250424521</date>
-   <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-   <filesize>1073741824</filesize>
    <terms>
      <term><name>Release type</name><value>New features</value></term>
      <term><name>Release type</name><value>Bug fixes</value></term>
diff --git a/web/core/modules/update/tests/modules/update_test/drupal.1.0-alpha1.xml b/web/core/modules/update/tests/modules/update_test/drupal.1.0-alpha1.xml
index fe734a844b..c409676ea2 100644
--- a/web/core/modules/update/tests/modules/update_test/drupal.1.0-alpha1.xml
+++ b/web/core/modules/update/tests/modules/update_test/drupal.1.0-alpha1.xml
@@ -3,30 +3,35 @@
 <title>Drupal</title>
 <short_name>drupal</short_name>
 <dc:creator>Drupal</dc:creator>
-<api_version>8.x</api_version>
-<recommended_major>8</recommended_major>
-<supported_majors>8</supported_majors>
-<default_major>8</default_major>
+<supported_branches>8.0.,8.1.</supported_branches>
 <project_status>published</project_status>
 <link>http://example.com/project/drupal</link>
   <terms>
    <term><name>Projects</name><value>Drupal project</value></term>
   </terms>
 <releases>
+  <release>
+    <!-- This release is not in a supported branch; therefore it should not be recommended. -->
+    <name>Drupal 8.2.0</name>
+    <version>8.2.0</version>
+    <tag>DRUPAL-8-2-0</tag>
+    <status>published</status>
+    <release_link>http://example.com/drupal-8-2-0-release</release_link>
+    <download_link>http://example.com/drupal-8-2-0.tar.gz</download_link>
+    <date>1250425521</date>
+    <terms>
+      <term><name>Release type</name><value>New features</value></term>
+      <term><name>Release type</name><value>Bug fixes</value></term>
+    </terms>
+  </release>
  <release>
    <name>Drupal 8.1.0-alpha1</name>
    <version>8.1.0-alpha1</version>
    <tag>DRUPAL-8-1-0-alpha1</tag>
-   <version_major>8</version_major>
-   <version_minor>1</version_minor>
-   <version_patch>0</version_patch>
-   <version_extra>alpha1</version_extra>
    <status>published</status>
    <release_link>http://example.com/drupal-8-1-0-alpha1-release</release_link>
    <download_link>http://example.com/drupal-8-1-0-alpha1.tar.gz</download_link>
    <date>1250424581</date>
-   <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-   <filesize>2147483648</filesize>
    <terms>
      <term><name>Release type</name><value>New features</value></term>
      <term><name>Release type</name><value>Bug fixes</value></term>
@@ -36,15 +41,10 @@
    <name>Drupal 8.0.1</name>
    <version>8.0.1</version>
    <tag>DRUPAL-8-0-1</tag>
-   <version_major>8</version_major>
-   <version_minor>0</version_minor>
-   <version_patch>1</version_patch>
    <status>published</status>
    <release_link>http://example.com/drupal-8-0-1-release</release_link>
    <download_link>http://example.com/drupal-8-0-1.tar.gz</download_link>
    <date>1250424581</date>
-   <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-   <filesize>2147483648</filesize>
    <terms>
      <term><name>Release type</name><value>New features</value></term>
      <term><name>Release type</name><value>Bug fixes</value></term>
@@ -54,16 +54,10 @@
    <name>Drupal 8.0.1-beta1</name>
    <version>8.0.1-beta1</version>
    <tag>DRUPAL-8-0-1-beta1</tag>
-   <version_major>8</version_major>
-   <version_minor>0</version_minor>
-   <version_patch>1</version_patch>
-   <version_extra>beta1</version_extra>
    <status>published</status>
    <release_link>http://example.com/drupal-8-0-1-beta1-release</release_link>
    <download_link>http://example.com/drupal-8-0-1-beta1.tar.gz</download_link>
    <date>1250424521</date>
-   <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-   <filesize>1073741824</filesize>
    <terms>
      <term><name>Release type</name><value>New features</value></term>
      <term><name>Release type</name><value>Bug fixes</value></term>
@@ -73,16 +67,10 @@
    <name>Drupal 8.0.1-alpha1</name>
    <version>8.0.1-alpha1</version>
    <tag>DRUPAL-8-0-1-alpha1</tag>
-   <version_major>8</version_major>
-   <version_minor>0</version_minor>
-   <version_patch>1</version_patch>
-   <version_extra>alpha1</version_extra>
    <status>published</status>
    <release_link>http://example.com/drupal-8-0-1-alpha1-release</release_link>
    <download_link>http://example.com/drupal-8-0-1-alpha1.tar.gz</download_link>
    <date>1250424521</date>
-   <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-   <filesize>1073741824</filesize>
    <terms>
      <term><name>Release type</name><value>New features</value></term>
      <term><name>Release type</name><value>Bug fixes</value></term>
@@ -92,15 +80,10 @@
    <name>Drupal 8.0.0</name>
    <version>8.0.0</version>
    <tag>DRUPAL-8-0-0</tag>
-   <version_major>8</version_major>
-   <version_minor>0</version_minor>
-   <version_patch>0</version_patch>
    <status>published</status>
    <release_link>http://example.com/drupal-8-0-0-release</release_link>
    <download_link>http://example.com/drupal-8-0-0.tar.gz</download_link>
    <date>1250424521</date>
-   <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-   <filesize>1073741824</filesize>
    <terms>
      <term><name>Release type</name><value>New features</value></term>
      <term><name>Release type</name><value>Bug fixes</value></term>
@@ -110,16 +93,10 @@
    <name>Drupal 8.0.0-beta1</name>
    <version>8.0.0-beta1</version>
    <tag>DRUPAL-8-0-0-beta1</tag>
-   <version_major>8</version_major>
-   <version_minor>0</version_minor>
-   <version_patch>0</version_patch>
-   <version_extra>beta1</version_extra>
    <status>published</status>
    <release_link>http://example.com/drupal-8-0-0-beta1-release</release_link>
    <download_link>http://example.com/drupal-8-0-0-beta1.tar.gz</download_link>
    <date>1250424521</date>
-   <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-   <filesize>1073741824</filesize>
    <terms>
      <term><name>Release type</name><value>New features</value></term>
      <term><name>Release type</name><value>Bug fixes</value></term>
@@ -129,16 +106,10 @@
    <name>Drupal 8.0.0-alpha1</name>
    <version>8.0.0-alpha1</version>
    <tag>DRUPAL-8-0-0-alpha1</tag>
-   <version_major>8</version_major>
-   <version_minor>0</version_minor>
-   <version_patch>0</version_patch>
-   <version_extra>alpha1</version_extra>
    <status>published</status>
    <release_link>http://example.com/drupal-8-0-0-alpha1-release</release_link>
    <download_link>http://example.com/drupal-8-0-0-alpha1.tar.gz</download_link>
    <date>1250424521</date>
-   <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-   <filesize>1073741824</filesize>
    <terms>
      <term><name>Release type</name><value>New features</value></term>
      <term><name>Release type</name><value>Bug fixes</value></term>
diff --git a/web/core/modules/update/tests/modules/update_test/drupal.1.0-beta1.xml b/web/core/modules/update/tests/modules/update_test/drupal.1.0-beta1.xml
index fa65c5e92e..b4b5e8a77e 100644
--- a/web/core/modules/update/tests/modules/update_test/drupal.1.0-beta1.xml
+++ b/web/core/modules/update/tests/modules/update_test/drupal.1.0-beta1.xml
@@ -3,30 +3,35 @@
 <title>Drupal</title>
 <short_name>drupal</short_name>
 <dc:creator>Drupal</dc:creator>
-<api_version>8.x</api_version>
-<recommended_major>8</recommended_major>
-<supported_majors>8</supported_majors>
-<default_major>8</default_major>
+<supported_branches>8.0.,8.1.</supported_branches>
 <project_status>published</project_status>
 <link>http://example.com/project/drupal</link>
   <terms>
    <term><name>Projects</name><value>Drupal project</value></term>
   </terms>
 <releases>
+  <release>
+    <!-- This release is not in a supported branch; therefore it should not be recommended. -->
+    <name>Drupal 8.2.0</name>
+    <version>8.2.0</version>
+    <tag>DRUPAL-8-2-0</tag>
+    <status>published</status>
+    <release_link>http://example.com/drupal-8-2-0-release</release_link>
+    <download_link>http://example.com/drupal-8-2-0.tar.gz</download_link>
+    <date>1250425521</date>
+    <terms>
+      <term><name>Release type</name><value>New features</value></term>
+      <term><name>Release type</name><value>Bug fixes</value></term>
+    </terms>
+  </release>
  <release>
    <name>Drupal 8.1.0-beta1</name>
    <version>8.1.0-beta1</version>
    <tag>DRUPAL-8-1-0-beta1</tag>
-   <version_major>8</version_major>
-   <version_minor>1</version_minor>
-   <version_patch>0</version_patch>
-   <version_extra>beta1</version_extra>
    <status>published</status>
    <release_link>http://example.com/drupal-8-1-0-beta1-release</release_link>
    <download_link>http://example.com/drupal-8-1-0-beta1.tar.gz</download_link>
    <date>1250424581</date>
-   <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-   <filesize>2147483648</filesize>
    <terms>
      <term><name>Release type</name><value>New features</value></term>
      <term><name>Release type</name><value>Bug fixes</value></term>
@@ -36,16 +41,10 @@
    <name>Drupal 8.1.0-alpha1</name>
    <version>8.1.0-alpha1</version>
    <tag>DRUPAL-8-1-0-alpha1</tag>
-   <version_major>8</version_major>
-   <version_minor>1</version_minor>
-   <version_patch>0</version_patch>
-   <version_extra>alpha1</version_extra>
    <status>published</status>
    <release_link>http://example.com/drupal-8-1-0-alpha1-release</release_link>
    <download_link>http://example.com/drupal-8-1-0-alpha1.tar.gz</download_link>
    <date>1250424581</date>
-   <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-   <filesize>2147483648</filesize>
    <terms>
      <term><name>Release type</name><value>New features</value></term>
      <term><name>Release type</name><value>Bug fixes</value></term>
@@ -55,15 +54,10 @@
    <name>Drupal 8.0.1</name>
    <version>8.0.1</version>
    <tag>DRUPAL-8-0-1</tag>
-   <version_major>8</version_major>
-   <version_minor>0</version_minor>
-   <version_patch>1</version_patch>
    <status>published</status>
    <release_link>http://example.com/drupal-8-0-1-release</release_link>
    <download_link>http://example.com/drupal-8-0-1.tar.gz</download_link>
    <date>1250424581</date>
-   <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-   <filesize>2147483648</filesize>
    <terms>
      <term><name>Release type</name><value>New features</value></term>
      <term><name>Release type</name><value>Bug fixes</value></term>
@@ -73,16 +67,10 @@
    <name>Drupal 8.0.1-beta1</name>
    <version>8.0.1-beta1</version>
    <tag>DRUPAL-8-0-1-beta1</tag>
-   <version_major>8</version_major>
-   <version_minor>0</version_minor>
-   <version_patch>1</version_patch>
-   <version_extra>beta1</version_extra>
    <status>published</status>
    <release_link>http://example.com/drupal-8-0-1-beta1-release</release_link>
    <download_link>http://example.com/drupal-8-0-1-beta1.tar.gz</download_link>
    <date>1250424521</date>
-   <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-   <filesize>1073741824</filesize>
    <terms>
      <term><name>Release type</name><value>New features</value></term>
      <term><name>Release type</name><value>Bug fixes</value></term>
@@ -92,16 +80,10 @@
    <name>Drupal 8.0.1-alpha1</name>
    <version>8.0.1-alpha1</version>
    <tag>DRUPAL-8-0-1-alpha1</tag>
-   <version_major>8</version_major>
-   <version_minor>0</version_minor>
-   <version_patch>1</version_patch>
-   <version_extra>alpha1</version_extra>
    <status>published</status>
    <release_link>http://example.com/drupal-8-0-1-alpha1-release</release_link>
    <download_link>http://example.com/drupal-8-0-1-alpha1.tar.gz</download_link>
    <date>1250424521</date>
-   <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-   <filesize>1073741824</filesize>
    <terms>
      <term><name>Release type</name><value>New features</value></term>
      <term><name>Release type</name><value>Bug fixes</value></term>
@@ -111,15 +93,10 @@
    <name>Drupal 8.0.0</name>
    <version>8.0.0</version>
    <tag>DRUPAL-8-0-0</tag>
-   <version_major>8</version_major>
-   <version_minor>0</version_minor>
-   <version_patch>0</version_patch>
    <status>published</status>
    <release_link>http://example.com/drupal-8-0-0-release</release_link>
    <download_link>http://example.com/drupal-8-0-0.tar.gz</download_link>
    <date>1250424521</date>
-   <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-   <filesize>1073741824</filesize>
    <terms>
      <term><name>Release type</name><value>New features</value></term>
      <term><name>Release type</name><value>Bug fixes</value></term>
@@ -129,16 +106,10 @@
    <name>Drupal 8.0.0-beta1</name>
    <version>8.0.0-beta1</version>
    <tag>DRUPAL-8-0-0-beta1</tag>
-   <version_major>8</version_major>
-   <version_minor>0</version_minor>
-   <version_patch>0</version_patch>
-   <version_extra>beta1</version_extra>
    <status>published</status>
    <release_link>http://example.com/drupal-8-0-0-beta1-release</release_link>
    <download_link>http://example.com/drupal-8-0-0-beta1.tar.gz</download_link>
    <date>1250424521</date>
-   <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-   <filesize>1073741824</filesize>
    <terms>
      <term><name>Release type</name><value>New features</value></term>
      <term><name>Release type</name><value>Bug fixes</value></term>
@@ -148,16 +119,10 @@
    <name>Drupal 8.0.0-alpha1</name>
    <version>8.0.0-alpha1</version>
    <tag>DRUPAL-8-0-0-alpha1</tag>
-   <version_major>8</version_major>
-   <version_minor>0</version_minor>
-   <version_patch>0</version_patch>
-   <version_extra>alpha1</version_extra>
    <status>published</status>
    <release_link>http://example.com/drupal-8-0-0-alpha1-release</release_link>
    <download_link>http://example.com/drupal-8-0-0-alpha1.tar.gz</download_link>
    <date>1250424521</date>
-   <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-   <filesize>1073741824</filesize>
    <terms>
      <term><name>Release type</name><value>New features</value></term>
      <term><name>Release type</name><value>Bug fixes</value></term>
diff --git a/web/core/modules/update/tests/modules/update_test/drupal.1.0-unsupported.xml b/web/core/modules/update/tests/modules/update_test/drupal.1.0-unsupported.xml
new file mode 100644
index 0000000000..8d7f1bf6cd
--- /dev/null
+++ b/web/core/modules/update/tests/modules/update_test/drupal.1.0-unsupported.xml
@@ -0,0 +1,163 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+This XML file is the exact same as the file drupal.1.xml except
+'supported_branches' in this file does not contain the '8.0.' branch. Therefore,
+all the releases that start with '8.0.' are in an unsupported branch.
+-->
+<project xmlns:dc="http://purl.org/dc/elements/1.1/">
+<title>Drupal</title>
+<short_name>drupal</short_name>
+<dc:creator>Drupal</dc:creator>
+<supported_branches>8.1.</supported_branches>
+<project_status>published</project_status>
+<link>http://example.com/project/drupal</link>
+  <terms>
+   <term><name>Projects</name><value>Drupal project</value></term>
+  </terms>
+<releases>
+ <release>
+   <name>Drupal 8.1.0</name>
+   <version>8.1.0</version>
+   <tag>8.1.0</tag>
+   <status>published</status>
+   <release_link>http://example.com/drupal-8-1-0-release</release_link>
+   <download_link>http://example.com/drupal-8-1-0.tar.gz</download_link>
+   <date>1250424581</date>
+   <terms>
+     <term><name>Release type</name><value>New features</value></term>
+     <term><name>Release type</name><value>Bug fixes</value></term>
+   </terms>
+ </release>
+ <release>
+   <name>Drupal 8.1.0-beta1</name>
+   <version>8.1.0-beta1</version>
+   <tag>8.1.0-beta1</tag>
+   <status>published</status>
+   <release_link>http://example.com/drupal-8-1-0-beta1-release</release_link>
+   <download_link>http://example.com/drupal-8-1-0-beta1.tar.gz</download_link>
+   <date>1250424581</date>
+   <terms>
+     <term><name>Release type</name><value>New features</value></term>
+     <term><name>Release type</name><value>Bug fixes</value></term>
+   </terms>
+ </release>
+ <release>
+   <name>Drupal 8.1.0-alpha1</name>
+   <version>8.1.0-alpha1</version>
+   <tag>8.1.0-alpha1</tag>
+   <status>published</status>
+   <release_link>http://example.com/drupal-8-1-0-alpha1-release</release_link>
+   <download_link>http://example.com/drupal-8-1-0-alpha1.tar.gz</download_link>
+   <date>1250424581</date>
+   <terms>
+     <term><name>Release type</name><value>New features</value></term>
+     <term><name>Release type</name><value>Bug fixes</value></term>
+   </terms>
+ </release>
+ <release>
+   <name>Drupal 8.0.3</name>
+   <version>8.0.3</version>
+   <tag>8.0.3</tag>
+   <status>published</status>
+   <release_link>http://example.com/drupal-8-0-3-release</release_link>
+   <download_link>http://example.com/drupal-8-0-3.tar.gz</download_link>
+   <date>1250424585</date>
+   <terms>
+     <term><name>Release type</name><value>New features</value></term>
+     <term><name>Release type</name><value>Bug fixes</value></term>
+     <term><name>Release type</name><value>Unsupported</value></term>
+   </terms>
+ </release>
+ <release>
+   <name>Drupal 8.0.2</name>
+   <version>8.0.2</version>
+   <tag>8.0.2</tag>
+   <status>unpublished</status>
+   <release_link>http://example.com/drupal-8-0-2-release</release_link>
+   <download_link>http://example.com/drupal-8-0-2.tar.gz</download_link>
+   <date>1250424581</date>
+   <terms>
+     <term><name>Release type</name><value>New features</value></term>
+     <term><name>Release type</name><value>Bug fixes</value></term>
+   </terms>
+ </release>
+ <release>
+   <name>Drupal 8.0.1</name>
+   <version>8.0.1</version>
+   <tag>8.0.1</tag>
+   <status>published</status>
+   <release_link>http://example.com/drupal-8-0-1-release</release_link>
+   <download_link>http://example.com/drupal-8-0-1.tar.gz</download_link>
+   <date>1250424581</date>
+   <terms>
+     <term><name>Release type</name><value>New features</value></term>
+     <term><name>Release type</name><value>Bug fixes</value></term>
+   </terms>
+ </release>
+ <release>
+   <name>Drupal 8.0.1-beta1</name>
+   <version>8.0.1-beta1</version>
+   <tag>8.0.1-beta1</tag>
+   <status>published</status>
+   <release_link>http://example.com/drupal-8-0-1-beta1-release</release_link>
+   <download_link>http://example.com/drupal-8-0-1-beta1.tar.gz</download_link>
+   <date>1250424521</date>
+   <terms>
+     <term><name>Release type</name><value>New features</value></term>
+     <term><name>Release type</name><value>Bug fixes</value></term>
+   </terms>
+ </release>
+ <release>
+   <name>Drupal 8.0.1-alpha1</name>
+   <version>8.0.1-alpha1</version>
+   <tag>8.0.1-alpha1</tag>
+   <status>published</status>
+   <release_link>http://example.com/drupal-8-0-1-alpha1-release</release_link>
+   <download_link>http://example.com/drupal-8-0-1-alpha1.tar.gz</download_link>
+   <date>1250424521</date>
+   <terms>
+     <term><name>Release type</name><value>New features</value></term>
+     <term><name>Release type</name><value>Bug fixes</value></term>
+   </terms>
+ </release>
+ <release>
+   <name>Drupal 8.0.0</name>
+   <version>8.0.0</version>
+   <tag>8.0.0</tag>
+   <status>published</status>
+   <release_link>http://example.com/drupal-8-0-0-release</release_link>
+   <download_link>http://example.com/drupal-8-0-0.tar.gz</download_link>
+   <date>1250424521</date>
+   <terms>
+     <term><name>Release type</name><value>New features</value></term>
+     <term><name>Release type</name><value>Bug fixes</value></term>
+   </terms>
+ </release>
+ <release>
+   <name>Drupal 8.0.0-beta1</name>
+   <version>8.0.0-beta1</version>
+   <tag>8.0.0-beta1</tag>
+   <status>published</status>
+   <release_link>http://example.com/drupal-8-0-0-beta1-release</release_link>
+   <download_link>http://example.com/drupal-8-0-0-beta1.tar.gz</download_link>
+   <date>1250424521</date>
+   <terms>
+     <term><name>Release type</name><value>New features</value></term>
+     <term><name>Release type</name><value>Bug fixes</value></term>
+   </terms>
+ </release>
+ <release>
+   <name>Drupal 8.0.0-alpha1</name>
+   <version>8.0.0-alpha1</version>
+   <tag>8.0.0-alpha1</tag>
+   <status>published</status>
+   <release_link>http://example.com/drupal-8-0-0-alpha1-release</release_link>
+   <download_link>http://example.com/drupal-8-0-0-alpha1.tar.gz</download_link>
+   <date>1250424521</date>
+   <terms>
+     <term><name>Release type</name><value>New features</value></term>
+     <term><name>Release type</name><value>Bug fixes</value></term>
+   </terms>
+ </release>
+</releases>
+</project>
diff --git a/web/core/modules/update/tests/modules/update_test/drupal.1.0.xml b/web/core/modules/update/tests/modules/update_test/drupal.1.0.xml
index 0e6a40c72c..3ca5ec64ec 100644
--- a/web/core/modules/update/tests/modules/update_test/drupal.1.0.xml
+++ b/web/core/modules/update/tests/modules/update_test/drupal.1.0.xml
@@ -3,29 +3,35 @@
 <title>Drupal</title>
 <short_name>drupal</short_name>
 <dc:creator>Drupal</dc:creator>
-<api_version>8.x</api_version>
-<recommended_major>8</recommended_major>
-<supported_majors>8</supported_majors>
-<default_major>8</default_major>
+<supported_branches>8.0.,8.1.</supported_branches>
 <project_status>published</project_status>
 <link>http://example.com/project/drupal</link>
   <terms>
    <term><name>Projects</name><value>Drupal project</value></term>
   </terms>
 <releases>
+  <release>
+    <!-- This release is not in a supported branch; therefore it should not be recommended. -->
+    <name>Drupal 8.2.0</name>
+    <version>8.2.0</version>
+    <tag>DRUPAL-8-2-0</tag>
+    <status>published</status>
+    <release_link>http://example.com/drupal-8-2-0-release</release_link>
+    <download_link>http://example.com/drupal-8-2-0.tar.gz</download_link>
+    <date>1250425521</date>
+    <terms>
+      <term><name>Release type</name><value>New features</value></term>
+      <term><name>Release type</name><value>Bug fixes</value></term>
+    </terms>
+  </release>
  <release>
    <name>Drupal 8.1.0</name>
    <version>8.1.0</version>
    <tag>DRUPAL-8-1-0</tag>
-   <version_major>8</version_major>
-   <version_minor>1</version_minor>
-   <version_patch>0</version_patch>
    <status>published</status>
    <release_link>http://example.com/drupal-8-1-0-release</release_link>
    <download_link>http://example.com/drupal-8-1-0.tar.gz</download_link>
    <date>1250424581</date>
-   <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-   <filesize>2147483648</filesize>
    <terms>
      <term><name>Release type</name><value>New features</value></term>
      <term><name>Release type</name><value>Bug fixes</value></term>
@@ -35,16 +41,10 @@
    <name>Drupal 8.1.0-beta1</name>
    <version>8.1.0-beta1</version>
    <tag>DRUPAL-8-1-0-beta1</tag>
-   <version_major>8</version_major>
-   <version_minor>1</version_minor>
-   <version_patch>0</version_patch>
-   <version_extra>beta1</version_extra>
    <status>published</status>
    <release_link>http://example.com/drupal-8-1-0-beta1-release</release_link>
    <download_link>http://example.com/drupal-8-1-0-beta1.tar.gz</download_link>
    <date>1250424581</date>
-   <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-   <filesize>2147483648</filesize>
    <terms>
      <term><name>Release type</name><value>New features</value></term>
      <term><name>Release type</name><value>Bug fixes</value></term>
@@ -54,16 +54,37 @@
    <name>Drupal 8.1.0-alpha1</name>
    <version>8.1.0-alpha1</version>
    <tag>DRUPAL-8-0-1-alpha1</tag>
-   <version_major>8</version_major>
-   <version_minor>1</version_minor>
-   <version_patch>0</version_patch>
-   <version_extra>alpha1</version_extra>
    <status>published</status>
    <release_link>http://example.com/drupal-8-1-0-alpha1-release</release_link>
    <download_link>http://example.com/drupal-8-1-0-alpha1.tar.gz</download_link>
    <date>1250424581</date>
-   <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-   <filesize>2147483648</filesize>
+   <terms>
+     <term><name>Release type</name><value>New features</value></term>
+     <term><name>Release type</name><value>Bug fixes</value></term>
+   </terms>
+ </release>
+ <release>
+   <name>Drupal 8.0.3</name>
+   <version>8.0.3</version>
+   <tag>8.0.3</tag>
+   <status>published</status>
+   <release_link>http://example.com/drupal-8-0-3-release</release_link>
+   <download_link>http://example.com/drupal-8-0-3.tar.gz</download_link>
+   <date>1250424585</date>
+   <terms>
+     <term><name>Release type</name><value>New features</value></term>
+     <term><name>Release type</name><value>Bug fixes</value></term>
+     <term><name>Release type</name><value>Unsupported</value></term>
+   </terms>
+ </release>
+ <release>
+   <name>Drupal 8.0.2</name>
+   <version>8.0.2</version>
+   <tag>8.0.2</tag>
+   <status>unpublished</status>
+   <release_link>http://example.com/drupal-8-0-2-release</release_link>
+   <download_link>http://example.com/drupal-8-0-2.tar.gz</download_link>
+   <date>1250424581</date>
    <terms>
      <term><name>Release type</name><value>New features</value></term>
      <term><name>Release type</name><value>Bug fixes</value></term>
@@ -73,15 +94,10 @@
    <name>Drupal 8.0.1</name>
    <version>8.0.1</version>
    <tag>DRUPAL-8-0-1</tag>
-   <version_major>8</version_major>
-   <version_minor>0</version_minor>
-   <version_patch>1</version_patch>
    <status>published</status>
    <release_link>http://example.com/drupal-8-0-1-release</release_link>
    <download_link>http://example.com/drupal-8-0-1.tar.gz</download_link>
    <date>1250424581</date>
-   <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-   <filesize>2147483648</filesize>
    <terms>
      <term><name>Release type</name><value>New features</value></term>
      <term><name>Release type</name><value>Bug fixes</value></term>
@@ -91,16 +107,10 @@
    <name>Drupal 8.0.1-beta1</name>
    <version>8.0.1-beta1</version>
    <tag>DRUPAL-8-0-1-beta1</tag>
-   <version_major>8</version_major>
-   <version_minor>0</version_minor>
-   <version_patch>1</version_patch>
-   <version_extra>beta1</version_extra>
    <status>published</status>
    <release_link>http://example.com/drupal-8-0-1-beta1-release</release_link>
    <download_link>http://example.com/drupal-8-0-1-beta1.tar.gz</download_link>
    <date>1250424521</date>
-   <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-   <filesize>1073741824</filesize>
    <terms>
      <term><name>Release type</name><value>New features</value></term>
      <term><name>Release type</name><value>Bug fixes</value></term>
@@ -110,16 +120,10 @@
    <name>Drupal 8.0.1-alpha1</name>
    <version>8.0.1-alpha1</version>
    <tag>DRUPAL-8-0-1-alpha1</tag>
-   <version_major>8</version_major>
-   <version_minor>0</version_minor>
-   <version_patch>1</version_patch>
-   <version_extra>alpha1</version_extra>
    <status>published</status>
    <release_link>http://example.com/drupal-8-0-1-alpha1-release</release_link>
    <download_link>http://example.com/drupal-8-0-1-alpha1.tar.gz</download_link>
    <date>1250424521</date>
-   <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-   <filesize>1073741824</filesize>
    <terms>
      <term><name>Release type</name><value>New features</value></term>
      <term><name>Release type</name><value>Bug fixes</value></term>
@@ -129,15 +133,10 @@
    <name>Drupal 8.0.0</name>
    <version>8.0.0</version>
    <tag>DRUPAL-8-0-0</tag>
-   <version_major>8</version_major>
-   <version_minor>0</version_minor>
-   <version_patch>0</version_patch>
    <status>published</status>
    <release_link>http://example.com/drupal-8-0-0-release</release_link>
    <download_link>http://example.com/drupal-8-0-0.tar.gz</download_link>
    <date>1250424521</date>
-   <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-   <filesize>1073741824</filesize>
    <terms>
      <term><name>Release type</name><value>New features</value></term>
      <term><name>Release type</name><value>Bug fixes</value></term>
@@ -147,16 +146,10 @@
    <name>Drupal 8.0.0-beta1</name>
    <version>8.0.0-beta1</version>
    <tag>DRUPAL-8-0-0-beta1</tag>
-   <version_major>8</version_major>
-   <version_minor>0</version_minor>
-   <version_patch>0</version_patch>
-   <version_extra>beta1</version_extra>
    <status>published</status>
    <release_link>http://example.com/drupal-8-0-0-beta1-release</release_link>
    <download_link>http://example.com/drupal-8-0-0-beta1.tar.gz</download_link>
    <date>1250424521</date>
-   <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-   <filesize>1073741824</filesize>
    <terms>
      <term><name>Release type</name><value>New features</value></term>
      <term><name>Release type</name><value>Bug fixes</value></term>
@@ -166,16 +159,10 @@
    <name>Drupal 8.0.0-alpha1</name>
    <version>8.0.0-alpha1</version>
    <tag>DRUPAL-8-0-0-alpha1</tag>
-   <version_major>8</version_major>
-   <version_minor>0</version_minor>
-   <version_patch>0</version_patch>
-   <version_extra>alpha1</version_extra>
    <status>published</status>
    <release_link>http://example.com/drupal-8-0-0-alpha1-release</release_link>
    <download_link>http://example.com/drupal-8-0-0-alpha1.tar.gz</download_link>
    <date>1250424521</date>
-   <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-   <filesize>1073741824</filesize>
    <terms>
      <term><name>Release type</name><value>New features</value></term>
      <term><name>Release type</name><value>Bug fixes</value></term>
diff --git a/web/core/modules/update/tests/modules/update_test/drupal.1.1-alpha1-core_compatibility.xml b/web/core/modules/update/tests/modules/update_test/drupal.1.1-alpha1-core_compatibility.xml
new file mode 100644
index 0000000000..63d64ad4e2
--- /dev/null
+++ b/web/core/modules/update/tests/modules/update_test/drupal.1.1-alpha1-core_compatibility.xml
@@ -0,0 +1,144 @@
+<?xml version="1.0" encoding="utf-8"?>
+<project xmlns:dc="http://purl.org/dc/elements/1.1/">
+<title>Drupal</title>
+<short_name>drupal</short_name>
+<dc:creator>Drupal</dc:creator>
+<supported_branches>8.0.,8.1.</supported_branches>
+<project_status>published</project_status>
+<link>http://example.com/project/drupal</link>
+  <terms>
+   <term><name>Projects</name><value>Drupal project</value></term>
+  </terms>
+<releases>
+ <release>
+   <name>Drupal 8.1.1-alpha1</name>
+   <version>8.1.1-alpha1</version>
+   <tag>DRUPAL-8-1-1-alpha1</tag>
+   <status>published</status>
+   <release_link>http://example.com/drupal-8-1-1-alpha1-release</release_link>
+   <download_link>http://example.com/drupal-8-1-1-alpha1.tar.gz</download_link>
+   <date>1250424581</date>
+   <terms>
+     <term><name>Release type</name><value>New features</value></term>
+     <term><name>Release type</name><value>Bug fixes</value></term>
+   </terms>
+ </release>
+ <release>
+   <name>Drupal 8.1.0</name>
+   <version>8.1.0</version>
+   <tag>DRUPAL-8-1-0</tag>
+   <status>published</status>
+   <release_link>http://example.com/drupal-8-1-0-release</release_link>
+   <download_link>http://example.com/drupal-8-1-0.tar.gz</download_link>
+   <date>1250424581</date>
+   <terms>
+     <term><name>Release type</name><value>New features</value></term>
+     <term><name>Release type</name><value>Bug fixes</value></term>
+   </terms>
+ </release>
+ <release>
+   <name>Drupal 8.1.0-beta1</name>
+   <version>8.1.0-beta1</version>
+   <tag>DRUPAL-8-0-1-beta1</tag>
+   <status>published</status>
+   <release_link>http://example.com/drupal-8-1-0-beta1-release</release_link>
+   <download_link>http://example.com/drupal-8-1-0-beta1.tar.gz</download_link>
+   <date>1250424581</date>
+   <terms>
+     <term><name>Release type</name><value>New features</value></term>
+     <term><name>Release type</name><value>Bug fixes</value></term>
+   </terms>
+ </release>
+ <release>
+   <name>Drupal 8.1.0-alpha1</name>
+   <version>8.1.0-alpha1</version>
+   <tag>DRUPAL-8-1-0-alpha1</tag>
+   <status>published</status>
+   <release_link>http://example.com/drupal-8-1-0-alpha1-release</release_link>
+   <download_link>http://example.com/drupal-8-1-0-alpha1.tar.gz</download_link>
+   <date>1250424581</date>
+   <terms>
+     <term><name>Release type</name><value>New features</value></term>
+     <term><name>Release type</name><value>Bug fixes</value></term>
+   </terms>
+ </release>
+ <release>
+   <name>Drupal 8.0.1</name>
+   <version>8.0.1</version>
+   <tag>DRUPAL-8-0-1</tag>
+   <status>published</status>
+   <release_link>http://example.com/drupal-8-0-1-release</release_link>
+   <download_link>http://example.com/drupal-8-0-1.tar.gz</download_link>
+   <date>1250424581</date>
+   <terms>
+     <term><name>Release type</name><value>New features</value></term>
+     <term><name>Release type</name><value>Bug fixes</value></term>
+   </terms>
+ </release>
+ <release>
+   <name>Drupal 8.0.1-beta1</name>
+   <version>8.0.1-beta1</version>
+   <tag>DRUPAL-8-0-1-beta1</tag>
+   <status>published</status>
+   <release_link>http://example.com/drupal-8-0-1-beta1-release</release_link>
+   <download_link>http://example.com/drupal-8-0-1-beta1.tar.gz</download_link>
+   <date>1250424521</date>
+   <terms>
+     <term><name>Release type</name><value>New features</value></term>
+     <term><name>Release type</name><value>Bug fixes</value></term>
+   </terms>
+ </release>
+ <release>
+   <name>Drupal 8.0.1-alpha1</name>
+   <version>8.0.1-alpha1</version>
+   <tag>DRUPAL-8-0-1-alpha1</tag>
+   <status>published</status>
+   <release_link>http://example.com/drupal-8-0-1-alpha1-release</release_link>
+   <download_link>http://example.com/drupal-8-0-1-alpha1.tar.gz</download_link>
+   <date>1250424521</date>
+   <terms>
+     <term><name>Release type</name><value>New features</value></term>
+     <term><name>Release type</name><value>Bug fixes</value></term>
+   </terms>
+ </release>
+ <release>
+   <name>Drupal 8.0.0</name>
+   <version>8.0.0</version>
+   <tag>DRUPAL-8-0-0</tag>
+   <status>published</status>
+   <release_link>http://example.com/drupal-8-0-0-release</release_link>
+   <download_link>http://example.com/drupal-8-0-0.tar.gz</download_link>
+   <date>1250424521</date>
+   <terms>
+     <term><name>Release type</name><value>New features</value></term>
+     <term><name>Release type</name><value>Bug fixes</value></term>
+   </terms>
+ </release>
+ <release>
+   <name>Drupal 8.0.0-beta1</name>
+   <version>8.0.0-beta1</version>
+   <tag>DRUPAL-8-0-0-beta1</tag>
+   <status>published</status>
+   <release_link>http://example.com/drupal-8-0-0-beta1-release</release_link>
+   <download_link>http://example.com/drupal-8-0-0-beta1.tar.gz</download_link>
+   <date>1250424521</date>
+   <terms>
+     <term><name>Release type</name><value>New features</value></term>
+     <term><name>Release type</name><value>Bug fixes</value></term>
+   </terms>
+ </release>
+ <release>
+   <name>Drupal 8.0.0-alpha1</name>
+   <version>8.0.0-alpha1</version>
+   <tag>DRUPAL-8-0-0-alpha1</tag>
+   <status>published</status>
+   <release_link>http://example.com/drupal-8-0-0-alpha1-release</release_link>
+   <download_link>http://example.com/drupal-8-0-0-alpha1.tar.gz</download_link>
+   <date>1250424521</date>
+   <terms>
+     <term><name>Release type</name><value>New features</value></term>
+     <term><name>Release type</name><value>Bug fixes</value></term>
+   </terms>
+ </release>
+</releases>
+</project>
diff --git a/web/core/modules/update/tests/modules/update_test/drupal.1.1-alpha1.xml b/web/core/modules/update/tests/modules/update_test/drupal.1.1-alpha1.xml
index 0356c8d978..2b872e17d3 100644
--- a/web/core/modules/update/tests/modules/update_test/drupal.1.1-alpha1.xml
+++ b/web/core/modules/update/tests/modules/update_test/drupal.1.1-alpha1.xml
@@ -3,30 +3,35 @@
 <title>Drupal</title>
 <short_name>drupal</short_name>
 <dc:creator>Drupal</dc:creator>
-<api_version>8.x</api_version>
-<recommended_major>8</recommended_major>
-<supported_majors>8</supported_majors>
-<default_major>8</default_major>
+<supported_branches>8.0.,8.1.</supported_branches>
 <project_status>published</project_status>
 <link>http://example.com/project/drupal</link>
   <terms>
    <term><name>Projects</name><value>Drupal project</value></term>
   </terms>
 <releases>
+  <release>
+    <!-- This release is not in a supported branch; therefore it should not be recommended. -->
+    <name>Drupal 8.2.0</name>
+    <version>8.2.0</version>
+    <tag>DRUPAL-8-2-0</tag>
+    <status>published</status>
+    <release_link>http://example.com/drupal-8-2-0-release</release_link>
+    <download_link>http://example.com/drupal-8-2-0.tar.gz</download_link>
+    <date>1250425521</date>
+    <terms>
+      <term><name>Release type</name><value>New features</value></term>
+      <term><name>Release type</name><value>Bug fixes</value></term>
+    </terms>
+  </release>
  <release>
    <name>Drupal 8.1.1-alpha1</name>
    <version>8.1.1-alpha1</version>
    <tag>DRUPAL-8-1-1-alpha1</tag>
-   <version_major>8</version_major>
-   <version_minor>1</version_minor>
-   <version_patch>1</version_patch>
-   <version_extra>alpha1</version_extra>
    <status>published</status>
    <release_link>http://example.com/drupal-8-1-1-alpha1-release</release_link>
    <download_link>http://example.com/drupal-8-1-1-alpha1.tar.gz</download_link>
    <date>1250424581</date>
-   <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-   <filesize>2147483648</filesize>
    <terms>
      <term><name>Release type</name><value>New features</value></term>
      <term><name>Release type</name><value>Bug fixes</value></term>
@@ -36,15 +41,10 @@
    <name>Drupal 8.1.0</name>
    <version>8.1.0</version>
    <tag>DRUPAL-8-1-0</tag>
-   <version_major>8</version_major>
-   <version_minor>1</version_minor>
-   <version_patch>0</version_patch>
    <status>published</status>
    <release_link>http://example.com/drupal-8-1-0-release</release_link>
    <download_link>http://example.com/drupal-8-1-0.tar.gz</download_link>
    <date>1250424581</date>
-   <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-   <filesize>2147483648</filesize>
    <terms>
      <term><name>Release type</name><value>New features</value></term>
      <term><name>Release type</name><value>Bug fixes</value></term>
@@ -54,16 +54,10 @@
    <name>Drupal 8.1.0-beta1</name>
    <version>8.1.0-beta1</version>
    <tag>DRUPAL-8-0-1-beta1</tag>
-   <version_major>8</version_major>
-   <version_minor>1</version_minor>
-   <version_patch>0</version_patch>
-   <version_extra>beta1</version_extra>
    <status>published</status>
    <release_link>http://example.com/drupal-8-1-0-beta1-release</release_link>
    <download_link>http://example.com/drupal-8-1-0-beta1.tar.gz</download_link>
    <date>1250424581</date>
-   <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-   <filesize>2147483648</filesize>
    <terms>
      <term><name>Release type</name><value>New features</value></term>
      <term><name>Release type</name><value>Bug fixes</value></term>
@@ -73,16 +67,10 @@
    <name>Drupal 8.1.0-alpha1</name>
    <version>8.1.0-alpha1</version>
    <tag>DRUPAL-8-1-0-alpha1</tag>
-   <version_major>8</version_major>
-   <version_minor>1</version_minor>
-   <version_patch>0</version_patch>
-   <version_extra>alpha1</version_extra>
    <status>published</status>
    <release_link>http://example.com/drupal-8-1-0-alpha1-release</release_link>
    <download_link>http://example.com/drupal-8-1-0-alpha1.tar.gz</download_link>
    <date>1250424581</date>
-   <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-   <filesize>2147483648</filesize>
    <terms>
      <term><name>Release type</name><value>New features</value></term>
      <term><name>Release type</name><value>Bug fixes</value></term>
@@ -92,15 +80,10 @@
    <name>Drupal 8.0.1</name>
    <version>8.0.1</version>
    <tag>DRUPAL-8-0-1</tag>
-   <version_major>8</version_major>
-   <version_minor>0</version_minor>
-   <version_patch>1</version_patch>
    <status>published</status>
    <release_link>http://example.com/drupal-8-0-1-release</release_link>
    <download_link>http://example.com/drupal-8-0-1.tar.gz</download_link>
    <date>1250424581</date>
-   <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-   <filesize>2147483648</filesize>
    <terms>
      <term><name>Release type</name><value>New features</value></term>
      <term><name>Release type</name><value>Bug fixes</value></term>
@@ -110,16 +93,10 @@
    <name>Drupal 8.0.1-beta1</name>
    <version>8.0.1-beta1</version>
    <tag>DRUPAL-8-0-1-beta1</tag>
-   <version_major>8</version_major>
-   <version_minor>0</version_minor>
-   <version_patch>1</version_patch>
-   <version_extra>beta1</version_extra>
    <status>published</status>
    <release_link>http://example.com/drupal-8-0-1-beta1-release</release_link>
    <download_link>http://example.com/drupal-8-0-1-beta1.tar.gz</download_link>
    <date>1250424521</date>
-   <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-   <filesize>1073741824</filesize>
    <terms>
      <term><name>Release type</name><value>New features</value></term>
      <term><name>Release type</name><value>Bug fixes</value></term>
@@ -129,16 +106,10 @@
    <name>Drupal 8.0.1-alpha1</name>
    <version>8.0.1-alpha1</version>
    <tag>DRUPAL-8-0-1-alpha1</tag>
-   <version_major>8</version_major>
-   <version_minor>0</version_minor>
-   <version_patch>1</version_patch>
-   <version_extra>alpha1</version_extra>
    <status>published</status>
    <release_link>http://example.com/drupal-8-0-1-alpha1-release</release_link>
    <download_link>http://example.com/drupal-8-0-1-alpha1.tar.gz</download_link>
    <date>1250424521</date>
-   <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-   <filesize>1073741824</filesize>
    <terms>
      <term><name>Release type</name><value>New features</value></term>
      <term><name>Release type</name><value>Bug fixes</value></term>
@@ -148,15 +119,10 @@
    <name>Drupal 8.0.0</name>
    <version>8.0.0</version>
    <tag>DRUPAL-8-0-0</tag>
-   <version_major>8</version_major>
-   <version_minor>0</version_minor>
-   <version_patch>0</version_patch>
    <status>published</status>
    <release_link>http://example.com/drupal-8-0-0-release</release_link>
    <download_link>http://example.com/drupal-8-0-0.tar.gz</download_link>
    <date>1250424521</date>
-   <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-   <filesize>1073741824</filesize>
    <terms>
      <term><name>Release type</name><value>New features</value></term>
      <term><name>Release type</name><value>Bug fixes</value></term>
@@ -166,16 +132,10 @@
    <name>Drupal 8.0.0-beta1</name>
    <version>8.0.0-beta1</version>
    <tag>DRUPAL-8-0-0-beta1</tag>
-   <version_major>8</version_major>
-   <version_minor>0</version_minor>
-   <version_patch>0</version_patch>
-   <version_extra>beta1</version_extra>
    <status>published</status>
    <release_link>http://example.com/drupal-8-0-0-beta1-release</release_link>
    <download_link>http://example.com/drupal-8-0-0-beta1.tar.gz</download_link>
    <date>1250424521</date>
-   <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-   <filesize>1073741824</filesize>
    <terms>
      <term><name>Release type</name><value>New features</value></term>
      <term><name>Release type</name><value>Bug fixes</value></term>
@@ -185,16 +145,10 @@
    <name>Drupal 8.0.0-alpha1</name>
    <version>8.0.0-alpha1</version>
    <tag>DRUPAL-8-0-0-alpha1</tag>
-   <version_major>8</version_major>
-   <version_minor>0</version_minor>
-   <version_patch>0</version_patch>
-   <version_extra>alpha1</version_extra>
    <status>published</status>
    <release_link>http://example.com/drupal-8-0-0-alpha1-release</release_link>
    <download_link>http://example.com/drupal-8-0-0-alpha1.tar.gz</download_link>
    <date>1250424521</date>
-   <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-   <filesize>1073741824</filesize>
    <terms>
      <term><name>Release type</name><value>New features</value></term>
      <term><name>Release type</name><value>Bug fixes</value></term>
diff --git a/web/core/modules/update/tests/modules/update_test/drupal.1.1-beta1.xml b/web/core/modules/update/tests/modules/update_test/drupal.1.1-beta1.xml
index abeef7ea41..cd73a57aef 100644
--- a/web/core/modules/update/tests/modules/update_test/drupal.1.1-beta1.xml
+++ b/web/core/modules/update/tests/modules/update_test/drupal.1.1-beta1.xml
@@ -3,30 +3,35 @@
 <title>Drupal</title>
 <short_name>drupal</short_name>
 <dc:creator>Drupal</dc:creator>
-<api_version>8.x</api_version>
-<recommended_major>8</recommended_major>
-<supported_majors>8</supported_majors>
-<default_major>8</default_major>
+<supported_branches>8.0.,8.1.</supported_branches>
 <project_status>published</project_status>
 <link>http://example.com/project/drupal</link>
   <terms>
    <term><name>Projects</name><value>Drupal project</value></term>
   </terms>
 <releases>
+  <release>
+    <!-- This release is not in a supported branch; therefore it should not be recommended. -->
+    <name>Drupal 8.2.0</name>
+    <version>8.2.0</version>
+    <tag>DRUPAL-8-2-0</tag>
+    <status>published</status>
+    <release_link>http://example.com/drupal-8-2-0-release</release_link>
+    <download_link>http://example.com/drupal-8-2-0.tar.gz</download_link>
+    <date>1250425521</date>
+    <terms>
+      <term><name>Release type</name><value>New features</value></term>
+      <term><name>Release type</name><value>Bug fixes</value></term>
+    </terms>
+  </release>
  <release>
    <name>Drupal 8.1.1-beta1</name>
    <version>8.1.1-beta1</version>
    <tag>DRUPAL-8-1-1-beta1</tag>
-   <version_major>8</version_major>
-   <version_minor>1</version_minor>
-   <version_patch>1</version_patch>
-   <version_extra>beta1</version_extra>
    <status>published</status>
    <release_link>http://example.com/drupal-8-1-1-beta1-release</release_link>
    <download_link>http://example.com/drupal-8-1-1-beta1.tar.gz</download_link>
    <date>1250424581</date>
-   <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-   <filesize>2147483648</filesize>
    <terms>
      <term><name>Release type</name><value>New features</value></term>
      <term><name>Release type</name><value>Bug fixes</value></term>
@@ -36,16 +41,10 @@
    <name>Drupal 8.1.1-alpha1</name>
    <version>8.1.1-alpha1</version>
    <tag>DRUPAL-8-1-1-alpha1</tag>
-   <version_major>8</version_major>
-   <version_minor>1</version_minor>
-   <version_patch>1</version_patch>
-   <version_extra>alpha1</version_extra>
    <status>published</status>
    <release_link>http://example.com/drupal-8-1-1-alpha1-release</release_link>
    <download_link>http://example.com/drupal-8-1-1-alpha1.tar.gz</download_link>
    <date>1250424581</date>
-   <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-   <filesize>2147483648</filesize>
    <terms>
      <term><name>Release type</name><value>New features</value></term>
      <term><name>Release type</name><value>Bug fixes</value></term>
@@ -55,15 +54,10 @@
    <name>Drupal 8.1.0</name>
    <version>8.1.0</version>
    <tag>DRUPAL-8-1-0</tag>
-   <version_major>8</version_major>
-   <version_minor>1</version_minor>
-   <version_patch>0</version_patch>
    <status>published</status>
    <release_link>http://example.com/drupal-8-1-0-release</release_link>
    <download_link>http://example.com/drupal-8-1-0.tar.gz</download_link>
    <date>1250424581</date>
-   <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-   <filesize>2147483648</filesize>
    <terms>
      <term><name>Release type</name><value>New features</value></term>
      <term><name>Release type</name><value>Bug fixes</value></term>
@@ -73,16 +67,10 @@
    <name>Drupal 8.1.0-beta1</name>
    <version>8.1.0-beta1</version>
    <tag>DRUPAL-8-0-1-beta1</tag>
-   <version_major>8</version_major>
-   <version_minor>1</version_minor>
-   <version_patch>0</version_patch>
-   <version_extra>beta1</version_extra>
    <status>published</status>
    <release_link>http://example.com/drupal-8-1-0-beta1-release</release_link>
    <download_link>http://example.com/drupal-8-1-0-beta1.tar.gz</download_link>
    <date>1250424581</date>
-   <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-   <filesize>2147483648</filesize>
    <terms>
      <term><name>Release type</name><value>New features</value></term>
      <term><name>Release type</name><value>Bug fixes</value></term>
@@ -92,16 +80,10 @@
    <name>Drupal 8.1.0-alpha1</name>
    <version>8.1.0-alpha1</version>
    <tag>DRUPAL-8-1-0-alpha1</tag>
-   <version_major>8</version_major>
-   <version_minor>1</version_minor>
-   <version_patch>0</version_patch>
-   <version_extra>alpha1</version_extra>
    <status>published</status>
    <release_link>http://example.com/drupal-8-1-0-alpha1-release</release_link>
    <download_link>http://example.com/drupal-8-1-0-alpha1.tar.gz</download_link>
    <date>1250424581</date>
-   <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-   <filesize>2147483648</filesize>
    <terms>
      <term><name>Release type</name><value>New features</value></term>
      <term><name>Release type</name><value>Bug fixes</value></term>
@@ -111,15 +93,10 @@
    <name>Drupal 8.0.1</name>
    <version>8.0.1</version>
    <tag>DRUPAL-8-0-1</tag>
-   <version_major>8</version_major>
-   <version_minor>0</version_minor>
-   <version_patch>1</version_patch>
    <status>published</status>
    <release_link>http://example.com/drupal-8-0-1-release</release_link>
    <download_link>http://example.com/drupal-8-0-1.tar.gz</download_link>
    <date>1250424581</date>
-   <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-   <filesize>2147483648</filesize>
    <terms>
      <term><name>Release type</name><value>New features</value></term>
      <term><name>Release type</name><value>Bug fixes</value></term>
@@ -129,16 +106,10 @@
    <name>Drupal 8.0.1-beta1</name>
    <version>8.0.1-beta1</version>
    <tag>DRUPAL-8-0-1-beta1</tag>
-   <version_major>8</version_major>
-   <version_minor>0</version_minor>
-   <version_patch>1</version_patch>
-   <version_extra>beta1</version_extra>
    <status>published</status>
    <release_link>http://example.com/drupal-8-0-1-beta1-release</release_link>
    <download_link>http://example.com/drupal-8-0-1-beta1.tar.gz</download_link>
    <date>1250424521</date>
-   <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-   <filesize>1073741824</filesize>
    <terms>
      <term><name>Release type</name><value>New features</value></term>
      <term><name>Release type</name><value>Bug fixes</value></term>
@@ -148,16 +119,10 @@
    <name>Drupal 8.0.1-alpha1</name>
    <version>8.0.1-alpha1</version>
    <tag>DRUPAL-8-0-1-alpha1</tag>
-   <version_major>8</version_major>
-   <version_minor>0</version_minor>
-   <version_patch>1</version_patch>
-   <version_extra>alpha1</version_extra>
    <status>published</status>
    <release_link>http://example.com/drupal-8-0-1-alpha1-release</release_link>
    <download_link>http://example.com/drupal-8-0-1-alpha1.tar.gz</download_link>
    <date>1250424521</date>
-   <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-   <filesize>1073741824</filesize>
    <terms>
      <term><name>Release type</name><value>New features</value></term>
      <term><name>Release type</name><value>Bug fixes</value></term>
@@ -167,15 +132,10 @@
    <name>Drupal 8.0.0</name>
    <version>8.0.0</version>
    <tag>DRUPAL-8-0-0</tag>
-   <version_major>8</version_major>
-   <version_minor>0</version_minor>
-   <version_patch>0</version_patch>
    <status>published</status>
    <release_link>http://example.com/drupal-8-0-0-release</release_link>
    <download_link>http://example.com/drupal-8-0-0.tar.gz</download_link>
    <date>1250424521</date>
-   <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-   <filesize>1073741824</filesize>
    <terms>
      <term><name>Release type</name><value>New features</value></term>
      <term><name>Release type</name><value>Bug fixes</value></term>
@@ -185,16 +145,10 @@
    <name>Drupal 8.0.0-beta1</name>
    <version>8.0.0-beta1</version>
    <tag>DRUPAL-8-0-0-beta1</tag>
-   <version_major>8</version_major>
-   <version_minor>0</version_minor>
-   <version_patch>0</version_patch>
-   <version_extra>beta1</version_extra>
    <status>published</status>
    <release_link>http://example.com/drupal-8-0-0-beta1-release</release_link>
    <download_link>http://example.com/drupal-8-0-0-beta1.tar.gz</download_link>
    <date>1250424521</date>
-   <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-   <filesize>1073741824</filesize>
    <terms>
      <term><name>Release type</name><value>New features</value></term>
      <term><name>Release type</name><value>Bug fixes</value></term>
@@ -204,16 +158,10 @@
    <name>Drupal 8.0.0-alpha1</name>
    <version>8.0.0-alpha1</version>
    <tag>DRUPAL-8-0-0-alpha1</tag>
-   <version_major>8</version_major>
-   <version_minor>0</version_minor>
-   <version_patch>0</version_patch>
-   <version_extra>alpha1</version_extra>
    <status>published</status>
    <release_link>http://example.com/drupal-8-0-0-alpha1-release</release_link>
    <download_link>http://example.com/drupal-8-0-0-alpha1.tar.gz</download_link>
    <date>1250424521</date>
-   <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-   <filesize>1073741824</filesize>
    <terms>
      <term><name>Release type</name><value>New features</value></term>
      <term><name>Release type</name><value>Bug fixes</value></term>
diff --git a/web/core/modules/update/tests/modules/update_test/drupal.1.1-core_compatibility.xml b/web/core/modules/update/tests/modules/update_test/drupal.1.1-core_compatibility.xml
new file mode 100644
index 0000000000..e295cb6152
--- /dev/null
+++ b/web/core/modules/update/tests/modules/update_test/drupal.1.1-core_compatibility.xml
@@ -0,0 +1,170 @@
+<?xml version="1.0" encoding="utf-8"?>
+<project xmlns:dc="http://purl.org/dc/elements/1.1/">
+<title>Drupal</title>
+<short_name>drupal</short_name>
+<dc:creator>Drupal</dc:creator>
+<supported_branches>8.0.,8.1.</supported_branches>
+<project_status>published</project_status>
+<link>http://example.com/project/drupal</link>
+  <terms>
+   <term><name>Projects</name><value>Drupal project</value></term>
+  </terms>
+<releases>
+ <release>
+   <name>Drupal 8.1.1</name>
+   <version>8.1.1</version>
+   <tag>DRUPAL-8-1-1</tag>
+   <status>published</status>
+   <release_link>http://example.com/drupal-8-1-1-release</release_link>
+   <download_link>http://example.com/drupal-8-1-1.tar.gz</download_link>
+   <date>1250424581</date>
+   <terms>
+     <term><name>Release type</name><value>New features</value></term>
+     <term><name>Release type</name><value>Bug fixes</value></term>
+   </terms>
+ </release>
+ <release>
+   <name>Drupal 8.1.1-beta1</name>
+   <version>8.1.1-beta1</version>
+   <tag>DRUPAL-8-1-1-beta1</tag>
+   <status>published</status>
+   <release_link>http://example.com/drupal-8-1-1-beta1-release</release_link>
+   <download_link>http://example.com/drupal-8-1-1-beta1.tar.gz</download_link>
+   <date>1250424581</date>
+   <terms>
+     <term><name>Release type</name><value>New features</value></term>
+     <term><name>Release type</name><value>Bug fixes</value></term>
+   </terms>
+ </release>
+ <release>
+   <name>Drupal 8.1.1-alpha1</name>
+   <version>8.1.1-alpha1</version>
+   <tag>DRUPAL-8-1-1-alpha1</tag>
+   <status>published</status>
+   <release_link>http://example.com/drupal-8-1-1-alpha1-release</release_link>
+   <download_link>http://example.com/drupal-8-1-1-alpha1.tar.gz</download_link>
+   <date>1250424581</date>
+   <terms>
+     <term><name>Release type</name><value>New features</value></term>
+     <term><name>Release type</name><value>Bug fixes</value></term>
+   </terms>
+ </release>
+ <release>
+   <name>Drupal 8.1.0</name>
+   <version>8.1.0</version>
+   <tag>DRUPAL-8-1-0</tag>
+   <status>published</status>
+   <release_link>http://example.com/drupal-8-1-0-release</release_link>
+   <download_link>http://example.com/drupal-8-1-0.tar.gz</download_link>
+   <date>1250424581</date>
+   <terms>
+     <term><name>Release type</name><value>New features</value></term>
+     <term><name>Release type</name><value>Bug fixes</value></term>
+   </terms>
+ </release>
+ <release>
+   <name>Drupal 8.1.0-beta1</name>
+   <version>8.1.0-beta1</version>
+   <tag>DRUPAL-8-0-1-beta1</tag>
+   <status>published</status>
+   <release_link>http://example.com/drupal-8-1-0-beta1-release</release_link>
+   <download_link>http://example.com/drupal-8-1-0-beta1.tar.gz</download_link>
+   <date>1250424581</date>
+   <terms>
+     <term><name>Release type</name><value>New features</value></term>
+     <term><name>Release type</name><value>Bug fixes</value></term>
+   </terms>
+ </release>
+ <release>
+   <name>Drupal 8.1.0-alpha1</name>
+   <version>8.1.0-alpha1</version>
+   <tag>DRUPAL-8-1-0-alpha1</tag>
+   <status>published</status>
+   <release_link>http://example.com/drupal-8-1-0-alpha1-release</release_link>
+   <download_link>http://example.com/drupal-8-1-0-alpha1.tar.gz</download_link>
+   <date>1250424581</date>
+   <terms>
+     <term><name>Release type</name><value>New features</value></term>
+     <term><name>Release type</name><value>Bug fixes</value></term>
+   </terms>
+ </release>
+ <release>
+   <name>Drupal 8.0.1</name>
+   <version>8.0.1</version>
+   <tag>DRUPAL-8-0-1</tag>
+   <status>published</status>
+   <release_link>http://example.com/drupal-8-0-1-release</release_link>
+   <download_link>http://example.com/drupal-8-0-1.tar.gz</download_link>
+   <date>1250424581</date>
+   <terms>
+     <term><name>Release type</name><value>New features</value></term>
+     <term><name>Release type</name><value>Bug fixes</value></term>
+   </terms>
+ </release>
+ <release>
+   <name>Drupal 8.0.1-beta1</name>
+   <version>8.0.1-beta1</version>
+   <tag>DRUPAL-8-0-1-beta1</tag>
+   <status>published</status>
+   <release_link>http://example.com/drupal-8-0-1-beta1-release</release_link>
+   <download_link>http://example.com/drupal-8-0-1-beta1.tar.gz</download_link>
+   <date>1250424521</date>
+   <terms>
+     <term><name>Release type</name><value>New features</value></term>
+     <term><name>Release type</name><value>Bug fixes</value></term>
+   </terms>
+ </release>
+ <release>
+   <name>Drupal 8.0.1-alpha1</name>
+   <version>8.0.1-alpha1</version>
+   <tag>DRUPAL-8-0-1-alpha1</tag>
+   <status>published</status>
+   <release_link>http://example.com/drupal-8-0-1-alpha1-release</release_link>
+   <download_link>http://example.com/drupal-8-0-1-alpha1.tar.gz</download_link>
+   <date>1250424521</date>
+   <terms>
+     <term><name>Release type</name><value>New features</value></term>
+     <term><name>Release type</name><value>Bug fixes</value></term>
+   </terms>
+ </release>
+ <release>
+   <name>Drupal 8.0.0</name>
+   <version>8.0.0</version>
+   <tag>DRUPAL-8-0-0</tag>
+   <status>published</status>
+   <release_link>http://example.com/drupal-8-0-0-release</release_link>
+   <download_link>http://example.com/drupal-8-0-0.tar.gz</download_link>
+   <date>1250424521</date>
+   <terms>
+     <term><name>Release type</name><value>New features</value></term>
+     <term><name>Release type</name><value>Bug fixes</value></term>
+   </terms>
+ </release>
+ <release>
+   <name>Drupal 8.0.0-beta1</name>
+   <version>8.0.0-beta1</version>
+   <tag>DRUPAL-8-0-0-beta1</tag>
+   <status>published</status>
+   <release_link>http://example.com/drupal-8-0-0-beta1-release</release_link>
+   <download_link>http://example.com/drupal-8-0-0-beta1.tar.gz</download_link>
+   <date>1250424521</date>
+   <terms>
+     <term><name>Release type</name><value>New features</value></term>
+     <term><name>Release type</name><value>Bug fixes</value></term>
+   </terms>
+ </release>
+ <release>
+   <name>Drupal 8.0.0-alpha1</name>
+   <version>8.0.0-alpha1</version>
+   <tag>DRUPAL-8-0-0-alpha1</tag>
+   <status>published</status>
+   <release_link>http://example.com/drupal-8-0-0-alpha1-release</release_link>
+   <download_link>http://example.com/drupal-8-0-0-alpha1.tar.gz</download_link>
+   <date>1250424521</date>
+   <terms>
+     <term><name>Release type</name><value>New features</value></term>
+     <term><name>Release type</name><value>Bug fixes</value></term>
+   </terms>
+ </release>
+</releases>
+</project>
diff --git a/web/core/modules/update/tests/modules/update_test/drupal.1.1.xml b/web/core/modules/update/tests/modules/update_test/drupal.1.1.xml
index a588bdc466..0164ec4fdf 100644
--- a/web/core/modules/update/tests/modules/update_test/drupal.1.1.xml
+++ b/web/core/modules/update/tests/modules/update_test/drupal.1.1.xml
@@ -3,29 +3,35 @@
 <title>Drupal</title>
 <short_name>drupal</short_name>
 <dc:creator>Drupal</dc:creator>
-<api_version>8.x</api_version>
-<recommended_major>8</recommended_major>
-<supported_majors>8</supported_majors>
-<default_major>8</default_major>
+<supported_branches>8.0.,8.1.</supported_branches>
 <project_status>published</project_status>
 <link>http://example.com/project/drupal</link>
   <terms>
    <term><name>Projects</name><value>Drupal project</value></term>
   </terms>
 <releases>
+  <release>
+    <!-- This release is not in a supported branch; therefore it should not be recommended. -->
+    <name>Drupal 8.2.0</name>
+    <version>8.2.0</version>
+    <tag>DRUPAL-8-2-0</tag>
+    <status>published</status>
+    <release_link>http://example.com/drupal-8-2-0-release</release_link>
+    <download_link>http://example.com/drupal-8-2-0.tar.gz</download_link>
+    <date>1250425521</date>
+    <terms>
+      <term><name>Release type</name><value>New features</value></term>
+      <term><name>Release type</name><value>Bug fixes</value></term>
+    </terms>
+  </release>
  <release>
    <name>Drupal 8.1.1</name>
    <version>8.1.1</version>
    <tag>DRUPAL-8-1-1</tag>
-   <version_major>8</version_major>
-   <version_minor>1</version_minor>
-   <version_patch>1</version_patch>
    <status>published</status>
    <release_link>http://example.com/drupal-8-1-1-release</release_link>
    <download_link>http://example.com/drupal-8-1-1.tar.gz</download_link>
    <date>1250424581</date>
-   <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-   <filesize>2147483648</filesize>
    <terms>
      <term><name>Release type</name><value>New features</value></term>
      <term><name>Release type</name><value>Bug fixes</value></term>
@@ -35,16 +41,10 @@
    <name>Drupal 8.1.1-beta1</name>
    <version>8.1.1-beta1</version>
    <tag>DRUPAL-8-1-1-beta1</tag>
-   <version_major>8</version_major>
-   <version_minor>1</version_minor>
-   <version_patch>1</version_patch>
-   <version_extra>beta1</version_extra>
    <status>published</status>
    <release_link>http://example.com/drupal-8-1-1-beta1-release</release_link>
    <download_link>http://example.com/drupal-8-1-1-beta1.tar.gz</download_link>
    <date>1250424581</date>
-   <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-   <filesize>2147483648</filesize>
    <terms>
      <term><name>Release type</name><value>New features</value></term>
      <term><name>Release type</name><value>Bug fixes</value></term>
@@ -54,16 +54,10 @@
    <name>Drupal 8.1.1-alpha1</name>
    <version>8.1.1-alpha1</version>
    <tag>DRUPAL-8-1-1-alpha1</tag>
-   <version_major>8</version_major>
-   <version_minor>1</version_minor>
-   <version_patch>1</version_patch>
-   <version_extra>alpha1</version_extra>
    <status>published</status>
    <release_link>http://example.com/drupal-8-1-1-alpha1-release</release_link>
    <download_link>http://example.com/drupal-8-1-1-alpha1.tar.gz</download_link>
    <date>1250424581</date>
-   <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-   <filesize>2147483648</filesize>
    <terms>
      <term><name>Release type</name><value>New features</value></term>
      <term><name>Release type</name><value>Bug fixes</value></term>
@@ -73,15 +67,10 @@
    <name>Drupal 8.1.0</name>
    <version>8.1.0</version>
    <tag>DRUPAL-8-1-0</tag>
-   <version_major>8</version_major>
-   <version_minor>1</version_minor>
-   <version_patch>0</version_patch>
    <status>published</status>
    <release_link>http://example.com/drupal-8-1-0-release</release_link>
    <download_link>http://example.com/drupal-8-1-0.tar.gz</download_link>
    <date>1250424581</date>
-   <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-   <filesize>2147483648</filesize>
    <terms>
      <term><name>Release type</name><value>New features</value></term>
      <term><name>Release type</name><value>Bug fixes</value></term>
@@ -91,16 +80,10 @@
    <name>Drupal 8.1.0-beta1</name>
    <version>8.1.0-beta1</version>
    <tag>DRUPAL-8-0-1-beta1</tag>
-   <version_major>8</version_major>
-   <version_minor>1</version_minor>
-   <version_patch>0</version_patch>
-   <version_extra>beta1</version_extra>
    <status>published</status>
    <release_link>http://example.com/drupal-8-1-0-beta1-release</release_link>
    <download_link>http://example.com/drupal-8-1-0-beta1.tar.gz</download_link>
    <date>1250424581</date>
-   <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-   <filesize>2147483648</filesize>
    <terms>
      <term><name>Release type</name><value>New features</value></term>
      <term><name>Release type</name><value>Bug fixes</value></term>
@@ -110,16 +93,10 @@
    <name>Drupal 8.1.0-alpha1</name>
    <version>8.1.0-alpha1</version>
    <tag>DRUPAL-8-1-0-alpha1</tag>
-   <version_major>8</version_major>
-   <version_minor>1</version_minor>
-   <version_patch>0</version_patch>
-   <version_extra>alpha1</version_extra>
    <status>published</status>
    <release_link>http://example.com/drupal-8-1-0-alpha1-release</release_link>
    <download_link>http://example.com/drupal-8-1-0-alpha1.tar.gz</download_link>
    <date>1250424581</date>
-   <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-   <filesize>2147483648</filesize>
    <terms>
      <term><name>Release type</name><value>New features</value></term>
      <term><name>Release type</name><value>Bug fixes</value></term>
@@ -129,15 +106,10 @@
    <name>Drupal 8.0.1</name>
    <version>8.0.1</version>
    <tag>DRUPAL-8-0-1</tag>
-   <version_major>8</version_major>
-   <version_minor>0</version_minor>
-   <version_patch>1</version_patch>
    <status>published</status>
    <release_link>http://example.com/drupal-8-0-1-release</release_link>
    <download_link>http://example.com/drupal-8-0-1.tar.gz</download_link>
    <date>1250424581</date>
-   <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-   <filesize>2147483648</filesize>
    <terms>
      <term><name>Release type</name><value>New features</value></term>
      <term><name>Release type</name><value>Bug fixes</value></term>
@@ -147,16 +119,10 @@
    <name>Drupal 8.0.1-beta1</name>
    <version>8.0.1-beta1</version>
    <tag>DRUPAL-8-0-1-beta1</tag>
-   <version_major>8</version_major>
-   <version_minor>0</version_minor>
-   <version_patch>1</version_patch>
-   <version_extra>beta1</version_extra>
    <status>published</status>
    <release_link>http://example.com/drupal-8-0-1-beta1-release</release_link>
    <download_link>http://example.com/drupal-8-0-1-beta1.tar.gz</download_link>
    <date>1250424521</date>
-   <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-   <filesize>1073741824</filesize>
    <terms>
      <term><name>Release type</name><value>New features</value></term>
      <term><name>Release type</name><value>Bug fixes</value></term>
@@ -166,16 +132,10 @@
    <name>Drupal 8.0.1-alpha1</name>
    <version>8.0.1-alpha1</version>
    <tag>DRUPAL-8-0-1-alpha1</tag>
-   <version_major>8</version_major>
-   <version_minor>0</version_minor>
-   <version_patch>1</version_patch>
-   <version_extra>alpha1</version_extra>
    <status>published</status>
    <release_link>http://example.com/drupal-8-0-1-alpha1-release</release_link>
    <download_link>http://example.com/drupal-8-0-1-alpha1.tar.gz</download_link>
    <date>1250424521</date>
-   <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-   <filesize>1073741824</filesize>
    <terms>
      <term><name>Release type</name><value>New features</value></term>
      <term><name>Release type</name><value>Bug fixes</value></term>
@@ -185,15 +145,10 @@
    <name>Drupal 8.0.0</name>
    <version>8.0.0</version>
    <tag>DRUPAL-8-0-0</tag>
-   <version_major>8</version_major>
-   <version_minor>0</version_minor>
-   <version_patch>0</version_patch>
    <status>published</status>
    <release_link>http://example.com/drupal-8-0-0-release</release_link>
    <download_link>http://example.com/drupal-8-0-0.tar.gz</download_link>
    <date>1250424521</date>
-   <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-   <filesize>1073741824</filesize>
    <terms>
      <term><name>Release type</name><value>New features</value></term>
      <term><name>Release type</name><value>Bug fixes</value></term>
@@ -203,16 +158,10 @@
    <name>Drupal 8.0.0-beta1</name>
    <version>8.0.0-beta1</version>
    <tag>DRUPAL-8-0-0-beta1</tag>
-   <version_major>8</version_major>
-   <version_minor>0</version_minor>
-   <version_patch>0</version_patch>
-   <version_extra>beta1</version_extra>
    <status>published</status>
    <release_link>http://example.com/drupal-8-0-0-beta1-release</release_link>
    <download_link>http://example.com/drupal-8-0-0-beta1.tar.gz</download_link>
    <date>1250424521</date>
-   <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-   <filesize>1073741824</filesize>
    <terms>
      <term><name>Release type</name><value>New features</value></term>
      <term><name>Release type</name><value>Bug fixes</value></term>
@@ -222,16 +171,10 @@
    <name>Drupal 8.0.0-alpha1</name>
    <version>8.0.0-alpha1</version>
    <tag>DRUPAL-8-0-0-alpha1</tag>
-   <version_major>8</version_major>
-   <version_minor>0</version_minor>
-   <version_patch>0</version_patch>
-   <version_extra>alpha1</version_extra>
    <status>published</status>
    <release_link>http://example.com/drupal-8-0-0-alpha1-release</release_link>
    <download_link>http://example.com/drupal-8-0-0-alpha1.tar.gz</download_link>
    <date>1250424521</date>
-   <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-   <filesize>1073741824</filesize>
    <terms>
      <term><name>Release type</name><value>New features</value></term>
      <term><name>Release type</name><value>Bug fixes</value></term>
diff --git a/web/core/modules/update/tests/modules/update_test/drupal.9.xml b/web/core/modules/update/tests/modules/update_test/drupal.9.xml
index c17b426a75..e5fd89e84f 100644
--- a/web/core/modules/update/tests/modules/update_test/drupal.9.xml
+++ b/web/core/modules/update/tests/modules/update_test/drupal.9.xml
@@ -3,10 +3,7 @@
 <title>Drupal</title>
 <short_name>drupal</short_name>
 <dc:creator>Drupal</dc:creator>
-<api_version>9.x</api_version>
-<recommended_major>9</recommended_major>
-<supported_majors>9</supported_majors>
-<default_major>9</default_major>
+<supported_branches>9.0.</supported_branches>
 <project_status>published</project_status>
 <link>http://example.com/project/drupal</link>
   <terms>
@@ -17,15 +14,10 @@
    <name>Drupal 9.0.0</name>
    <version>9.0.0</version>
    <tag>DRUPAL-9-0-0</tag>
-   <version_major>9</version_major>
-   <version_minor>0</version_minor>
-   <version_patch>0</version_patch>
    <status>published</status>
    <release_link>http://example.com/drupal-9-0-0-release</release_link>
    <download_link>http://example.com/drupal-9-0-0.tar.gz</download_link>
    <date>1250424521</date>
-   <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-   <filesize>1073741824</filesize>
    <terms>
      <term><name>Release type</name><value>New features</value></term>
      <term><name>Release type</name><value>Bug fixes</value></term>
diff --git a/web/core/modules/update/tests/modules/update_test/drupal.dev.xml b/web/core/modules/update/tests/modules/update_test/drupal.dev.xml
index 4ab26bd2db..55a5c66c7a 100644
--- a/web/core/modules/update/tests/modules/update_test/drupal.dev.xml
+++ b/web/core/modules/update/tests/modules/update_test/drupal.dev.xml
@@ -3,10 +3,7 @@
 <title>Drupal</title>
 <short_name>drupal</short_name>
 <dc:creator>Drupal</dc:creator>
-<api_version>8.x</api_version>
-<recommended_major>8</recommended_major>
-<supported_majors>8</supported_majors>
-<default_major>8</default_major>
+<supported_branches>8.0.,8.1.</supported_branches>
 <project_status>published</project_status>
 <link>http://example.com/project/drupal</link>
   <terms>
@@ -17,15 +14,10 @@
   <name>Drupal 8.0.0</name>
   <version>8.0.0</version>
   <tag>DRUPAL-8-0-0</tag>
-  <version_major>8</version_major>
-  <version_minor>0</version_minor>
-  <version_patch>0</version_patch>
   <status>published</status>
   <release_link>http://example.com/drupal-8-0-0-release</release_link>
   <download_link>http://example.com/drupal-8-0-0.tar.gz</download_link>
   <date>1250424521</date>
-  <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-  <filesize>1073741824</filesize>
   <terms>
    <term><name>Release type</name><value>New features</value></term>
    <term><name>Release type</name><value>Bug fixes</value></term>
@@ -35,15 +27,10 @@
   <name>Drupal 8.0.x-dev</name>
   <version>8.0.x-dev</version>
   <tag>DRUPAL-8-0</tag>
-  <version_major>8</version_major>
-  <version_minor>0</version_minor>
-  <version_extra>dev</version_extra>
   <status>published</status>
   <release_link>http://example.com/drupal-8-0-x-dev-release</release_link>
   <download_link>http://example.com/drupal-8.0.x-dev.tar.gz</download_link>
   <date>1250424581</date>
-  <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-  <filesize>2147483648</filesize>
   <terms>
    <term><name>Release type</name><value>Bug fixes</value></term>
   </terms>
diff --git a/web/core/modules/update/tests/modules/update_test/drupal.sec.0.1_0.2.xml b/web/core/modules/update/tests/modules/update_test/drupal.sec.0.1_0.2.xml
index ba954ae427..17a9b06f76 100644
--- a/web/core/modules/update/tests/modules/update_test/drupal.sec.0.1_0.2.xml
+++ b/web/core/modules/update/tests/modules/update_test/drupal.sec.0.1_0.2.xml
@@ -3,10 +3,7 @@
 <title>Drupal</title>
 <short_name>drupal</short_name>
 <dc:creator>Drupal</dc:creator>
-<api_version>8.x</api_version>
-<recommended_major>8</recommended_major>
-<supported_majors>8</supported_majors>
-<default_major>8</default_major>
+<supported_branches>8.0.,8.1.</supported_branches>
 <project_status>published</project_status>
 <link>http://example.com/project/drupal</link>
   <terms>
@@ -17,15 +14,10 @@
   <name>Drupal 8.0.2</name>
   <version>8.0.2</version>
   <tag>DRUPAL-8-0-2</tag>
-  <version_major>8</version_major>
-  <version_minor>0</version_minor>
-  <version_patch>2</version_patch>
   <status>published</status>
   <release_link>http://example.com/drupal-8-0-2-release</release_link>
   <download_link>http://example.com/drupal-8-0-2.tar.gz</download_link>
   <date>1250424641</date>
-  <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-  <filesize>4294967296</filesize>
   <terms>
    <term><name>Release type</name><value>New features</value></term>
    <term><name>Release type</name><value>Bug fixes</value></term>
@@ -36,15 +28,10 @@
   <name>Drupal 8.0.1</name>
   <version>8.0.1</version>
   <tag>DRUPAL-8-0-1</tag>
-  <version_major>8</version_major>
-  <version_minor>0</version_minor>
-  <version_patch>1</version_patch>
   <status>published</status>
   <release_link>http://example.com/drupal-8-0-1-release</release_link>
   <download_link>http://example.com/drupal-8-0-1.tar.gz</download_link>
   <date>1250424581</date>
-  <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-  <filesize>2147483648</filesize>
   <terms>
    <term><name>Release type</name><value>New features</value></term>
    <term><name>Release type</name><value>Bug fixes</value></term>
@@ -56,15 +43,10 @@
   <name>Drupal 8.0.0</name>
   <version>8.0.0</version>
   <tag>DRUPAL-8-0-0</tag>
-  <version_major>8</version_major>
-  <version_minor>0</version_minor>
-  <version_patch>0</version_patch>
   <status>published</status>
   <release_link>http://example.com/drupal-8-0-0-release</release_link>
   <download_link>http://example.com/drupal-8-0-0.tar.gz</download_link>
   <date>1250424521</date>
-  <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-  <filesize>1073741824</filesize>
   <terms>
    <term><name>Release type</name><value>New features</value></term>
    <term><name>Release type</name><value>Bug fixes</value></term>
diff --git a/web/core/modules/update/tests/modules/update_test/drupal.sec.0.2-rc2-b.xml b/web/core/modules/update/tests/modules/update_test/drupal.sec.0.2-rc2-b.xml
index a971ca73eb..e3e8f6ab72 100644
--- a/web/core/modules/update/tests/modules/update_test/drupal.sec.0.2-rc2-b.xml
+++ b/web/core/modules/update/tests/modules/update_test/drupal.sec.0.2-rc2-b.xml
@@ -3,10 +3,7 @@
 <title>Drupal</title>
 <short_name>drupal</short_name>
 <dc:creator>Drupal</dc:creator>
-<api_version>8.x</api_version>
-<recommended_major>8</recommended_major>
-<supported_majors>8</supported_majors>
-<default_major>8</default_major>
+<supported_branches>8.0.,8.1.,8.2.</supported_branches>
 <project_status>published</project_status>
 <link>http://example.com/project/drupal</link>
   <terms>
@@ -17,16 +14,10 @@
   <name>drupal 8.2.0-rc2</name>
   <version>8.2.0-rc2</version>
   <tag>8.2.0-rc2</tag>
-  <version_major>8</version_major>
-  <version_minor>2</version_minor>
-  <version_patch>0</version_patch>
-  <version_extra>rc2</version_extra>
   <status>published</status>
   <release_link>http://example.com/drupal-8-2-0-rc2-release</release_link>
   <download_link>http://example.com/drupal-8-2-0-rc2.tar.gz</download_link>
   <date>1533298080</date>
-  <mdhash>2387284145e34a19fc45e03c258a2831</mdhash>
-  <filesize>16209911</filesize>
   <terms>
    <term><name>Release type</name><value>Bug fixes</value></term>
    <term><name>Release type</name><value>New features</value></term>
@@ -39,16 +30,10 @@
   <name>drupal 8.2.0-rc1</name>
   <version>8.2.0-rc1</version>
   <tag>8.2.0-rc1</tag>
-  <version_major>8</version_major>
-  <version_minor>2</version_minor>
-  <version_patch>0</version_patch>
-  <version_extra>rc1</version_extra>
   <status>published</status>
   <release_link>http://example.com/drupal-8-2-0-rc1-release</release_link>
   <download_link>http://example.com/drupal-8-2-0-rc1.tar.gz</download_link>
   <date>1533270485</date>
-  <mdhash>3d70ae568dd8f7100082b8c58bc8d1fe</mdhash>
-  <filesize>16209123</filesize>
   <terms>
    <term><name>Release type</name><value>Bug fixes</value></term>
    <term><name>Release type</name><value>New features</value></term>
@@ -61,16 +46,10 @@
   <name>drupal 8.2.0-beta2</name>
   <version>8.2.0-beta2</version>
   <tag>8.2.0-beta2</tag>
-  <version_major>8</version_major>
-  <version_minor>2</version_minor>
-  <version_patch>0</version_patch>
-  <version_extra>beta2</version_extra>
   <status>published</status>
   <release_link>http://example.com/drupal-8-2-0-beta2-release</release_link>
   <download_link>http://example.com/drupal-8-2-0-beta2.tar.gz</download_link>
   <date>1533298080</date>
-  <mdhash>2387284145e34a19fc45e03c258a2831</mdhash>
-  <filesize>16209911</filesize>
   <terms>
    <term><name>Release type</name><value>Bug fixes</value></term>
    <term><name>Release type</name><value>New features</value></term>
@@ -83,16 +62,10 @@
   <name>drupal 8.2.0-beta1</name>
   <version>8.2.0-beta1</version>
   <tag>8.2.0-beta1</tag>
-  <version_major>8</version_major>
-  <version_minor>2</version_minor>
-  <version_patch>0</version_patch>
-  <version_extra>beta1</version_extra>
   <status>published</status>
   <release_link>http://example.com/drupal-8-2-0-beta1-release</release_link>
   <download_link>http://example.com/drupal-8-2-0-beta1.tar.gz</download_link>
   <date>1533270485</date>
-  <mdhash>3d70ae568dd8f7100082b8c58bc8d1fe</mdhash>
-  <filesize>16209123</filesize>
   <terms>
    <term><name>Release type</name><value>Bug fixes</value></term>
    <term><name>Release type</name><value>New features</value></term>
@@ -105,16 +78,10 @@
   <name>drupal 8.2.0-alpha2</name>
   <version>8.2.0-alpha2</version>
   <tag>8.2.0-alpha2</tag>
-  <version_major>8</version_major>
-  <version_minor>2</version_minor>
-  <version_patch>0</version_patch>
-  <version_extra>alpha2</version_extra>
   <status>published</status>
   <release_link>http://example.com/drupal-8-2-0-alpha2-release</release_link>
   <download_link>http://example.com/drupal-8-2-0-alpha2.tar.gz</download_link>
   <date>1533298080</date>
-  <mdhash>2387284145e34a19fc45e03c258a2831</mdhash>
-  <filesize>16209911</filesize>
   <terms>
    <term><name>Release type</name><value>Bug fixes</value></term>
    <term><name>Release type</name><value>New features</value></term>
@@ -127,16 +94,10 @@
   <name>drupal 8.2.0-alpha1</name>
   <version>8.2.0-alpha1</version>
   <tag>8.2.0-alpha1</tag>
-  <version_major>8</version_major>
-  <version_minor>2</version_minor>
-  <version_patch>0</version_patch>
-  <version_extra>alpha1</version_extra>
   <status>published</status>
   <release_link>http://example.com/drupal-8.2.0-alpha1</release_link>
   <download_link>http://example.com/drupal-8-2-0-alpha1.tar.gz</download_link>
   <date>1533270485</date>
-  <mdhash>3d70ae568dd8f7100082b8c58bc8d1fe</mdhash>
-  <filesize>16209123</filesize>
   <terms>
    <term><name>Release type</name><value>Bug fixes</value></term>
    <term><name>Release type</name><value>New features</value></term>
@@ -149,15 +110,10 @@
   <name>Drupal 8.1.2</name>
   <version>8.1.2</version>
   <tag>DRUPAL-8-1-2</tag>
-  <version_major>8</version_major>
-  <version_minor>1</version_minor>
-  <version_patch>2</version_patch>
   <status>published</status>
   <release_link>http://example.com/drupal-8-1-2-release</release_link>
   <download_link>http://example.com/drupal-8-1-2.tar.gz</download_link>
   <date>1250424526</date>
-  <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-  <filesize>4294967296</filesize>
   <terms>
    <term><name>Release type</name><value>New features</value></term>
    <term><name>Release type</name><value>Bug fixes</value></term>
@@ -168,15 +124,10 @@
   <name>Drupal 8.1.1</name>
   <version>8.1.1</version>
   <tag>DRUPAL-8-1-1</tag>
-  <version_major>8</version_major>
-  <version_minor>1</version_minor>
-  <version_patch>1</version_patch>
   <status>published</status>
   <release_link>http://example.com/drupal-8-1-1-release</release_link>
   <download_link>http://example.com/drupal-8-1-1.tar.gz</download_link>
   <date>1250424525</date>
-  <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-  <filesize>2147483648</filesize>
   <terms>
    <term><name>Release type</name><value>New features</value></term>
    <term><name>Release type</name><value>Bug fixes</value></term>
@@ -187,15 +138,10 @@
   <name>Drupal 8.1.0</name>
   <version>8.1.0</version>
   <tag>DRUPAL-8-1-0</tag>
-  <version_major>8</version_major>
-  <version_minor>1</version_minor>
-  <version_patch>0</version_patch>
   <status>published</status>
   <release_link>http://example.com/drupal-8-1-0-release</release_link>
   <download_link>http://example.com/drupal-8-1-0.tar.gz</download_link>
   <date>1250424524</date>
-  <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-  <filesize>1073741824</filesize>
   <terms>
    <term><name>Release type</name><value>New features</value></term>
    <term><name>Release type</name><value>Bug fixes</value></term>
@@ -206,15 +152,10 @@
   <name>Drupal 8.0.2</name>
   <version>8.0.2</version>
   <tag>DRUPAL-8-0-2</tag>
-  <version_major>8</version_major>
-  <version_minor>0</version_minor>
-  <version_patch>2</version_patch>
   <status>published</status>
   <release_link>http://example.com/drupal-8-0-2-release</release_link>
   <download_link>http://example.com/drupal-8-0-2.tar.gz</download_link>
   <date>1250424523</date>
-  <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-  <filesize>4294967296</filesize>
   <terms>
    <term><name>Release type</name><value>New features</value></term>
    <term><name>Release type</name><value>Bug fixes</value></term>
@@ -225,15 +166,10 @@
   <name>Drupal 8.0.1</name>
   <version>8.0.1</version>
   <tag>DRUPAL-8-0-1</tag>
-  <version_major>8</version_major>
-  <version_minor>0</version_minor>
-  <version_patch>1</version_patch>
   <status>published</status>
   <release_link>http://example.com/drupal-8-0-1-release</release_link>
   <download_link>http://example.com/drupal-8-0-1.tar.gz</download_link>
   <date>1250424522</date>
-  <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-  <filesize>2147483648</filesize>
   <terms>
    <term><name>Release type</name><value>New features</value></term>
    <term><name>Release type</name><value>Bug fixes</value></term>
@@ -244,15 +180,10 @@
   <name>Drupal 8.0.0</name>
   <version>8.0.0</version>
   <tag>DRUPAL-8-0-0</tag>
-  <version_major>8</version_major>
-  <version_minor>0</version_minor>
-  <version_patch>0</version_patch>
   <status>published</status>
   <release_link>http://example.com/drupal-8-0-0-release</release_link>
   <download_link>http://example.com/drupal-8-0-0.tar.gz</download_link>
   <date>1250424521</date>
-  <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-  <filesize>1073741824</filesize>
   <terms>
    <term><name>Release type</name><value>New features</value></term>
    <term><name>Release type</name><value>Bug fixes</value></term>
diff --git a/web/core/modules/update/tests/modules/update_test/drupal.sec.0.2-rc2.xml b/web/core/modules/update/tests/modules/update_test/drupal.sec.0.2-rc2.xml
index bc422deb6f..dd723e9848 100644
--- a/web/core/modules/update/tests/modules/update_test/drupal.sec.0.2-rc2.xml
+++ b/web/core/modules/update/tests/modules/update_test/drupal.sec.0.2-rc2.xml
@@ -3,10 +3,7 @@
 <title>Drupal</title>
 <short_name>drupal</short_name>
 <dc:creator>Drupal</dc:creator>
-<api_version>8.x</api_version>
-<recommended_major>8</recommended_major>
-<supported_majors>8</supported_majors>
-<default_major>8</default_major>
+<supported_branches>8.0.,8.1.,8.2.</supported_branches>
 <project_status>published</project_status>
 <link>http://example.com/project/drupal</link>
   <terms>
@@ -17,16 +14,10 @@
   <name>drupal 8.2.0-rc2</name>
   <version>8.2.0-rc2</version>
   <tag>8.2.0-rc2</tag>
-  <version_major>8</version_major>
-  <version_minor>2</version_minor>
-  <version_patch>0</version_patch>
-  <version_extra>rc2</version_extra>
   <status>published</status>
   <release_link>http://example.com/drupal-8-2-0-rc2-release</release_link>
   <download_link>http://example.com/drupal-8-2-0-rc2.tar.gz</download_link>
   <date>1533298080</date>
-  <mdhash>2387284145e34a19fc45e03c258a2831</mdhash>
-  <filesize>16209911</filesize>
   <terms>
    <term><name>Release type</name><value>Bug fixes</value></term>
    <term><name>Release type</name><value>New features</value></term>
@@ -40,16 +31,10 @@
   <name>drupal 8.2.0-rc1</name>
   <version>8.2.0-rc1</version>
   <tag>8.2.0-rc1</tag>
-  <version_major>8</version_major>
-  <version_minor>2</version_minor>
-  <version_patch>0</version_patch>
-  <version_extra>rc1</version_extra>
   <status>published</status>
   <release_link>http://example.com/drupal-8-2-0-rc1-release</release_link>
   <download_link>http://example.com/drupal-8-2-0-rc1.tar.gz</download_link>
   <date>1533270485</date>
-  <mdhash>3d70ae568dd8f7100082b8c58bc8d1fe</mdhash>
-  <filesize>16209123</filesize>
   <terms>
    <term><name>Release type</name><value>Insecure</value></term>
    <term><name>Release type</name><value>Bug fixes</value></term>
@@ -63,16 +48,10 @@
   <name>drupal 8.2.0-beta2</name>
   <version>8.2.0-beta2</version>
   <tag>8.2.0-beta2</tag>
-  <version_major>8</version_major>
-  <version_minor>2</version_minor>
-  <version_patch>0</version_patch>
-  <version_extra>beta2</version_extra>
   <status>published</status>
   <release_link>http://example.com/drupal-8-2-0-beta2-release</release_link>
   <download_link>http://example.com/drupal-8-2-0-beta2.tar.gz</download_link>
   <date>1533298080</date>
-  <mdhash>2387284145e34a19fc45e03c258a2831</mdhash>
-  <filesize>16209911</filesize>
   <terms>
    <term><name>Release type</name><value>Bug fixes</value></term>
    <term><name>Release type</name><value>New features</value></term>
@@ -86,16 +65,10 @@
   <name>drupal 8.2.0-beta1</name>
   <version>8.2.0-beta1</version>
   <tag>8.2.0-beta1</tag>
-  <version_major>8</version_major>
-  <version_minor>2</version_minor>
-  <version_patch>0</version_patch>
-  <version_extra>beta1</version_extra>
   <status>published</status>
   <release_link>http://example.com/drupal-8-2-0-beta1-release</release_link>
   <download_link>http://example.com/drupal-8-2-0-beta1.tar.gz</download_link>
   <date>1533270485</date>
-  <mdhash>3d70ae568dd8f7100082b8c58bc8d1fe</mdhash>
-  <filesize>16209123</filesize>
   <terms>
    <term><name>Release type</name><value>Insecure</value></term>
    <term><name>Release type</name><value>Bug fixes</value></term>
@@ -109,16 +82,10 @@
   <name>drupal 8.2.0-alpha2</name>
   <version>8.2.0-alpha2</version>
   <tag>8.2.0-alpha2</tag>
-  <version_major>8</version_major>
-  <version_minor>2</version_minor>
-  <version_patch>0</version_patch>
-  <version_extra>alpha2</version_extra>
   <status>published</status>
   <release_link>http://example.com/drupal-8-2-0-alpha2-release</release_link>
   <download_link>http://example.com/drupal-8-2-0-alpha2.tar.gz</download_link>
   <date>1533298080</date>
-  <mdhash>2387284145e34a19fc45e03c258a2831</mdhash>
-  <filesize>16209911</filesize>
   <terms>
    <term><name>Release type</name><value>Bug fixes</value></term>
    <term><name>Release type</name><value>New features</value></term>
@@ -132,16 +99,10 @@
   <name>drupal 8.2.0-alpha1</name>
   <version>8.2.0-alpha1</version>
   <tag>8.2.0-alpha1</tag>
-  <version_major>8</version_major>
-  <version_minor>2</version_minor>
-  <version_patch>0</version_patch>
-  <version_extra>alpha1</version_extra>
   <status>published</status>
   <release_link>http://example.com/drupal-8.2.0-alpha1</release_link>
   <download_link>http://example.com/drupal-8-2-0-alpha1.tar.gz</download_link>
   <date>1533270485</date>
-  <mdhash>3d70ae568dd8f7100082b8c58bc8d1fe</mdhash>
-  <filesize>16209123</filesize>
   <terms>
    <term><name>Release type</name><value>Insecure</value></term>
    <term><name>Release type</name><value>Bug fixes</value></term>
@@ -155,15 +116,10 @@
   <name>Drupal 8.1.2</name>
   <version>8.1.2</version>
   <tag>DRUPAL-8-1-2</tag>
-  <version_major>8</version_major>
-  <version_minor>1</version_minor>
-  <version_patch>2</version_patch>
   <status>published</status>
   <release_link>http://example.com/drupal-8-1-2-release</release_link>
   <download_link>http://example.com/drupal-8-1-2.tar.gz</download_link>
   <date>1250424641</date>
-  <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-  <filesize>4294967296</filesize>
   <terms>
    <term><name>Release type</name><value>New features</value></term>
    <term><name>Release type</name><value>Bug fixes</value></term>
@@ -174,15 +130,10 @@
   <name>Drupal 8.1.1</name>
   <version>8.1.1</version>
   <tag>DRUPAL-8-1-1</tag>
-  <version_major>8</version_major>
-  <version_minor>1</version_minor>
-  <version_patch>1</version_patch>
   <status>published</status>
   <release_link>http://example.com/drupal-8-1-1-release</release_link>
   <download_link>http://example.com/drupal-8-1-1.tar.gz</download_link>
   <date>1250424581</date>
-  <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-  <filesize>2147483648</filesize>
   <terms>
    <term><name>Release type</name><value>New features</value></term>
    <term><name>Release type</name><value>Bug fixes</value></term>
@@ -193,15 +144,10 @@
   <name>Drupal 8.1.0</name>
   <version>8.1.0</version>
   <tag>DRUPAL-8-1-0</tag>
-  <version_major>8</version_major>
-  <version_minor>1</version_minor>
-  <version_patch>0</version_patch>
   <status>published</status>
   <release_link>http://example.com/drupal-8-1-0-release</release_link>
   <download_link>http://example.com/drupal-8-1-0.tar.gz</download_link>
   <date>1250424521</date>
-  <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-  <filesize>1073741824</filesize>
   <terms>
    <term><name>Release type</name><value>New features</value></term>
    <term><name>Release type</name><value>Bug fixes</value></term>
@@ -212,15 +158,10 @@
   <name>Drupal 8.0.2</name>
   <version>8.0.2</version>
   <tag>DRUPAL-8-0-2</tag>
-  <version_major>8</version_major>
-  <version_minor>0</version_minor>
-  <version_patch>2</version_patch>
   <status>published</status>
   <release_link>http://example.com/drupal-8-0-2-release</release_link>
   <download_link>http://example.com/drupal-8-0-2.tar.gz</download_link>
   <date>1250424641</date>
-  <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-  <filesize>4294967296</filesize>
   <terms>
    <term><name>Release type</name><value>New features</value></term>
    <term><name>Release type</name><value>Bug fixes</value></term>
@@ -231,15 +172,10 @@
   <name>Drupal 8.0.1</name>
   <version>8.0.1</version>
   <tag>DRUPAL-8-0-1</tag>
-  <version_major>8</version_major>
-  <version_minor>0</version_minor>
-  <version_patch>1</version_patch>
   <status>published</status>
   <release_link>http://example.com/drupal-8-0-1-release</release_link>
   <download_link>http://example.com/drupal-8-0-1.tar.gz</download_link>
   <date>1250424581</date>
-  <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-  <filesize>2147483648</filesize>
   <terms>
    <term><name>Release type</name><value>New features</value></term>
    <term><name>Release type</name><value>Bug fixes</value></term>
@@ -250,15 +186,10 @@
   <name>Drupal 8.0.0</name>
   <version>8.0.0</version>
   <tag>DRUPAL-8-0-0</tag>
-  <version_major>8</version_major>
-  <version_minor>0</version_minor>
-  <version_patch>0</version_patch>
   <status>published</status>
   <release_link>http://example.com/drupal-8-0-0-release</release_link>
   <download_link>http://example.com/drupal-8-0-0.tar.gz</download_link>
   <date>1250424521</date>
-  <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-  <filesize>1073741824</filesize>
   <terms>
    <term><name>Release type</name><value>New features</value></term>
    <term><name>Release type</name><value>Bug fixes</value></term>
diff --git a/web/core/modules/update/tests/modules/update_test/drupal.sec.0.2.xml b/web/core/modules/update/tests/modules/update_test/drupal.sec.0.2.xml
index 0b9bbce632..f77cec76de 100644
--- a/web/core/modules/update/tests/modules/update_test/drupal.sec.0.2.xml
+++ b/web/core/modules/update/tests/modules/update_test/drupal.sec.0.2.xml
@@ -3,10 +3,7 @@
 <title>Drupal</title>
 <short_name>drupal</short_name>
 <dc:creator>Drupal</dc:creator>
-<api_version>8.x</api_version>
-<recommended_major>8</recommended_major>
-<supported_majors>8</supported_majors>
-<default_major>8</default_major>
+<supported_branches>8.0.,8.1.</supported_branches>
 <project_status>published</project_status>
 <link>http://example.com/project/drupal</link>
   <terms>
@@ -17,15 +14,10 @@
   <name>Drupal 8.0.2</name>
   <version>8.0.2</version>
   <tag>DRUPAL-8-0-2</tag>
-  <version_major>8</version_major>
-  <version_minor>0</version_minor>
-  <version_patch>2</version_patch>
   <status>published</status>
   <release_link>http://example.com/drupal-8-0-2-release</release_link>
   <download_link>http://example.com/drupal-8-0-2.tar.gz</download_link>
   <date>1250424641</date>
-  <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-  <filesize>4294967296</filesize>
   <terms>
    <term><name>Release type</name><value>New features</value></term>
    <term><name>Release type</name><value>Bug fixes</value></term>
@@ -36,15 +28,10 @@
   <name>Drupal 8.0.1</name>
   <version>8.0.1</version>
   <tag>DRUPAL-8-0-1</tag>
-  <version_major>8</version_major>
-  <version_minor>0</version_minor>
-  <version_patch>1</version_patch>
   <status>published</status>
   <release_link>http://example.com/drupal-8-0-1-release</release_link>
   <download_link>http://example.com/drupal-8-0-1.tar.gz</download_link>
   <date>1250424581</date>
-  <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-  <filesize>2147483648</filesize>
   <terms>
    <term><name>Release type</name><value>New features</value></term>
    <term><name>Release type</name><value>Bug fixes</value></term>
@@ -55,15 +42,10 @@
   <name>Drupal 8.0.0</name>
   <version>8.0.0</version>
   <tag>DRUPAL-8-0-0</tag>
-  <version_major>8</version_major>
-  <version_minor>0</version_minor>
-  <version_patch>0</version_patch>
   <status>published</status>
   <release_link>http://example.com/drupal-8-0-0-release</release_link>
   <download_link>http://example.com/drupal-8-0-0.tar.gz</download_link>
   <date>1250424521</date>
-  <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-  <filesize>1073741824</filesize>
   <terms>
    <term><name>Release type</name><value>New features</value></term>
    <term><name>Release type</name><value>Bug fixes</value></term>
diff --git a/web/core/modules/update/tests/modules/update_test/drupal.sec.1.2.xml b/web/core/modules/update/tests/modules/update_test/drupal.sec.1.2.xml
index 8665e46b36..8884a876d2 100644
--- a/web/core/modules/update/tests/modules/update_test/drupal.sec.1.2.xml
+++ b/web/core/modules/update/tests/modules/update_test/drupal.sec.1.2.xml
@@ -3,10 +3,7 @@
 <title>Drupal</title>
 <short_name>drupal</short_name>
 <dc:creator>Drupal</dc:creator>
-<api_version>8.x</api_version>
-<recommended_major>8</recommended_major>
-<supported_majors>8</supported_majors>
-<default_major>8</default_major>
+<supported_branches>8.0.,8.1.</supported_branches>
 <project_status>published</project_status>
 <link>http://example.com/project/drupal</link>
   <terms>
@@ -17,15 +14,10 @@
   <name>Drupal 8.1.2</name>
   <version>8.1.2</version>
   <tag>DRUPAL-8-1-2</tag>
-  <version_major>8</version_major>
-  <version_minor>1</version_minor>
-  <version_patch>2</version_patch>
   <status>published</status>
   <release_link>http://example.com/drupal-8-1-2-release</release_link>
   <download_link>http://example.com/drupal-8-1-2.tar.gz</download_link>
   <date>1250424641</date>
-  <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-  <filesize>4294967296</filesize>
   <terms>
    <term><name>Release type</name><value>New features</value></term>
    <term><name>Release type</name><value>Bug fixes</value></term>
@@ -36,15 +28,10 @@
   <name>Drupal 8.1.1</name>
   <version>8.1.1</version>
   <tag>DRUPAL-8-1-1</tag>
-  <version_major>8</version_major>
-  <version_minor>1</version_minor>
-  <version_patch>1</version_patch>
   <status>published</status>
   <release_link>http://example.com/drupal-8-1-1-release</release_link>
   <download_link>http://example.com/drupal-8-1-1.tar.gz</download_link>
   <date>1250424581</date>
-  <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-  <filesize>2147483648</filesize>
   <terms>
    <term><name>Release type</name><value>New features</value></term>
    <term><name>Release type</name><value>Bug fixes</value></term>
@@ -55,15 +42,10 @@
   <name>Drupal 8.1.0</name>
   <version>8.1.0</version>
   <tag>DRUPAL-8-1-0</tag>
-  <version_major>8</version_major>
-  <version_minor>1</version_minor>
-  <version_patch>0</version_patch>
   <status>published</status>
   <release_link>http://example.com/drupal-8-1-0-release</release_link>
   <download_link>http://example.com/drupal-8-1-0.tar.gz</download_link>
   <date>1250424521</date>
-  <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-  <filesize>1073741824</filesize>
   <terms>
    <term><name>Release type</name><value>New features</value></term>
    <term><name>Release type</name><value>Bug fixes</value></term>
@@ -74,15 +56,10 @@
   <name>Drupal 8.0.2</name>
   <version>8.0.2</version>
   <tag>DRUPAL-8-0-2</tag>
-  <version_major>8</version_major>
-  <version_minor>0</version_minor>
-  <version_patch>2</version_patch>
   <status>published</status>
   <release_link>http://example.com/drupal-8-0-2-release</release_link>
   <download_link>http://example.com/drupal-8-0-2.tar.gz</download_link>
   <date>1250424641</date>
-  <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-  <filesize>4294967296</filesize>
   <terms>
    <term><name>Release type</name><value>New features</value></term>
    <term><name>Release type</name><value>Bug fixes</value></term>
@@ -92,15 +69,10 @@
   <name>Drupal 8.0.1</name>
   <version>8.0.1</version>
   <tag>DRUPAL-8-0-1</tag>
-  <version_major>8</version_major>
-  <version_minor>0</version_minor>
-  <version_patch>1</version_patch>
   <status>published</status>
   <release_link>http://example.com/drupal-8-0-1-release</release_link>
   <download_link>http://example.com/drupal-8-0-1.tar.gz</download_link>
   <date>1250424581</date>
-  <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-  <filesize>2147483648</filesize>
   <terms>
    <term><name>Release type</name><value>New features</value></term>
    <term><name>Release type</name><value>Bug fixes</value></term>
@@ -110,15 +82,10 @@
   <name>Drupal 8.0.0</name>
   <version>8.0.0</version>
   <tag>DRUPAL-8-0-0</tag>
-  <version_major>8</version_major>
-  <version_minor>0</version_minor>
-  <version_patch>0</version_patch>
   <status>published</status>
   <release_link>http://example.com/drupal-8-0-0-release</release_link>
   <download_link>http://example.com/drupal-8-0-0.tar.gz</download_link>
   <date>1250424521</date>
-  <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-  <filesize>1073741824</filesize>
   <terms>
    <term><name>Release type</name><value>New features</value></term>
    <term><name>Release type</name><value>Bug fixes</value></term>
diff --git a/web/core/modules/update/tests/modules/update_test/drupal.sec.1.2_insecure-unsupported.xml b/web/core/modules/update/tests/modules/update_test/drupal.sec.1.2_insecure-unsupported.xml
new file mode 100644
index 0000000000..102c4211d9
--- /dev/null
+++ b/web/core/modules/update/tests/modules/update_test/drupal.sec.1.2_insecure-unsupported.xml
@@ -0,0 +1,103 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+This XML file is the exact same as the file drupal.sec.1.2_insecure.xml except
+'supported_branches' in this file does not contain the '8.0.' branch. Therefore,
+all the releases that start with '8.0.' are in an unsupported branch.
+-->
+<project xmlns:dc="http://purl.org/dc/elements/1.1/">
+<title>Drupal</title>
+<short_name>drupal</short_name>
+<dc:creator>Drupal</dc:creator>
+<supported_branches>8.1.</supported_branches>
+<project_status>published</project_status>
+<link>http://example.com/project/drupal</link>
+  <terms>
+   <term><name>Projects</name><value>Drupal project</value></term>
+  </terms>
+<releases>
+ <release>
+  <name>Drupal 8.1.2</name>
+  <version>8.1.2</version>
+  <tag>8.1.2</tag>
+  <status>published</status>
+  <release_link>http://example.com/drupal-8-1-2-release</release_link>
+  <download_link>http://example.com/drupal-8-1-2.tar.gz</download_link>
+  <date>1250424641</date>
+  <terms>
+   <term><name>Release type</name><value>New features</value></term>
+   <term><name>Release type</name><value>Bug fixes</value></term>
+   <term><name>Release type</name><value>Security update</value></term>
+  </terms>
+ </release>
+ <release>
+  <name>Drupal 8.1.1</name>
+  <version>8.1.1</version>
+  <tag>8.1.1</tag>
+  <status>published</status>
+  <release_link>http://example.com/drupal-8-1-1-release</release_link>
+  <download_link>http://example.com/drupal-8-1-1.tar.gz</download_link>
+  <date>1250424581</date>
+  <terms>
+   <term><name>Release type</name><value>New features</value></term>
+   <term><name>Release type</name><value>Bug fixes</value></term>
+   <term><name>Release type</name><value>Insecure</value></term>
+  </terms>
+ </release>
+ <release>
+  <name>Drupal 8.1.0</name>
+  <version>8.1.0</version>
+  <tag>8.1.0</tag>
+  <status>published</status>
+  <release_link>http://example.com/drupal-8-1-0-release</release_link>
+  <download_link>http://example.com/drupal-8-1-0.tar.gz</download_link>
+  <date>1250424521</date>
+  <terms>
+   <term><name>Release type</name><value>New features</value></term>
+   <term><name>Release type</name><value>Bug fixes</value></term>
+   <term><name>Release type</name><value>Insecure</value></term>
+  </terms>
+ </release>
+ <release>
+  <name>Drupal 8.0.2</name>
+  <version>8.0.2</version>
+  <tag>8.0.2</tag>
+  <status>published</status>
+  <release_link>http://example.com/drupal-8-0-2-release</release_link>
+  <download_link>http://example.com/drupal-8-0-2.tar.gz</download_link>
+  <date>1250424641</date>
+  <terms>
+   <term><name>Release type</name><value>New features</value></term>
+   <term><name>Release type</name><value>Bug fixes</value></term>
+   <term><name>Release type</name><value>Insecure</value></term>
+  </terms>
+ </release>
+ <release>
+  <name>Drupal 8.0.1</name>
+  <version>8.0.1</version>
+  <tag>8.0.1</tag>
+  <status>published</status>
+  <release_link>http://example.com/drupal-8-0-1-release</release_link>
+  <download_link>http://example.com/drupal-8-0-1.tar.gz</download_link>
+  <date>1250424581</date>
+  <terms>
+   <term><name>Release type</name><value>New features</value></term>
+   <term><name>Release type</name><value>Bug fixes</value></term>
+   <term><name>Release type</name><value>Insecure</value></term>
+  </terms>
+ </release>
+ <release>
+  <name>Drupal 8.0.0</name>
+  <version>8.0.0</version>
+  <tag>8.0.0</tag>
+  <status>published</status>
+  <release_link>http://example.com/drupal-8-0-0-release</release_link>
+  <download_link>http://example.com/drupal-8-0-0.tar.gz</download_link>
+  <date>1250424521</date>
+  <terms>
+   <term><name>Release type</name><value>New features</value></term>
+   <term><name>Release type</name><value>Bug fixes</value></term>
+   <term><name>Release type</name><value>Insecure</value></term>
+  </terms>
+ </release>
+</releases>
+</project>
diff --git a/web/core/modules/update/tests/modules/update_test/drupal.sec.1.2_insecure.xml b/web/core/modules/update/tests/modules/update_test/drupal.sec.1.2_insecure.xml
index dadad421bc..7f915dd476 100644
--- a/web/core/modules/update/tests/modules/update_test/drupal.sec.1.2_insecure.xml
+++ b/web/core/modules/update/tests/modules/update_test/drupal.sec.1.2_insecure.xml
@@ -3,10 +3,7 @@
 <title>Drupal</title>
 <short_name>drupal</short_name>
 <dc:creator>Drupal</dc:creator>
-<api_version>8.x</api_version>
-<recommended_major>8</recommended_major>
-<supported_majors>8</supported_majors>
-<default_major>8</default_major>
+<supported_branches>8.0.,8.1.</supported_branches>
 <project_status>published</project_status>
 <link>http://example.com/project/drupal</link>
   <terms>
@@ -17,15 +14,10 @@
   <name>Drupal 8.1.2</name>
   <version>8.1.2</version>
   <tag>DRUPAL-8-1-2</tag>
-  <version_major>8</version_major>
-  <version_minor>1</version_minor>
-  <version_patch>2</version_patch>
   <status>published</status>
   <release_link>http://example.com/drupal-8-1-2-release</release_link>
   <download_link>http://example.com/drupal-8-1-2.tar.gz</download_link>
   <date>1250424641</date>
-  <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-  <filesize>4294967296</filesize>
   <terms>
    <term><name>Release type</name><value>New features</value></term>
    <term><name>Release type</name><value>Bug fixes</value></term>
@@ -36,15 +28,10 @@
   <name>Drupal 8.1.1</name>
   <version>8.1.1</version>
   <tag>DRUPAL-8-1-1</tag>
-  <version_major>8</version_major>
-  <version_minor>1</version_minor>
-  <version_patch>1</version_patch>
   <status>published</status>
   <release_link>http://example.com/drupal-8-1-1-release</release_link>
   <download_link>http://example.com/drupal-8-1-1.tar.gz</download_link>
   <date>1250424581</date>
-  <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-  <filesize>2147483648</filesize>
   <terms>
    <term><name>Release type</name><value>New features</value></term>
    <term><name>Release type</name><value>Bug fixes</value></term>
@@ -55,15 +42,10 @@
   <name>Drupal 8.1.0</name>
   <version>8.1.0</version>
   <tag>DRUPAL-8-1-0</tag>
-  <version_major>8</version_major>
-  <version_minor>1</version_minor>
-  <version_patch>0</version_patch>
   <status>published</status>
   <release_link>http://example.com/drupal-8-1-0-release</release_link>
   <download_link>http://example.com/drupal-8-1-0.tar.gz</download_link>
   <date>1250424521</date>
-  <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-  <filesize>1073741824</filesize>
   <terms>
    <term><name>Release type</name><value>New features</value></term>
    <term><name>Release type</name><value>Bug fixes</value></term>
@@ -74,15 +56,10 @@
   <name>Drupal 8.0.2</name>
   <version>8.0.2</version>
   <tag>DRUPAL-8-0-2</tag>
-  <version_major>8</version_major>
-  <version_minor>0</version_minor>
-  <version_patch>2</version_patch>
   <status>published</status>
   <release_link>http://example.com/drupal-8-0-2-release</release_link>
   <download_link>http://example.com/drupal-8-0-2.tar.gz</download_link>
   <date>1250424641</date>
-  <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-  <filesize>4294967296</filesize>
   <terms>
    <term><name>Release type</name><value>New features</value></term>
    <term><name>Release type</name><value>Bug fixes</value></term>
@@ -93,15 +70,10 @@
   <name>Drupal 8.0.1</name>
   <version>8.0.1</version>
   <tag>DRUPAL-8-0-1</tag>
-  <version_major>8</version_major>
-  <version_minor>0</version_minor>
-  <version_patch>1</version_patch>
   <status>published</status>
   <release_link>http://example.com/drupal-8-0-1-release</release_link>
   <download_link>http://example.com/drupal-8-0-1.tar.gz</download_link>
   <date>1250424581</date>
-  <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-  <filesize>2147483648</filesize>
   <terms>
    <term><name>Release type</name><value>New features</value></term>
    <term><name>Release type</name><value>Bug fixes</value></term>
@@ -112,15 +84,10 @@
   <name>Drupal 8.0.0</name>
   <version>8.0.0</version>
   <tag>DRUPAL-8-0-0</tag>
-  <version_major>8</version_major>
-  <version_minor>0</version_minor>
-  <version_patch>0</version_patch>
   <status>published</status>
   <release_link>http://example.com/drupal-8-0-0-release</release_link>
   <download_link>http://example.com/drupal-8-0-0.tar.gz</download_link>
   <date>1250424521</date>
-  <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-  <filesize>1073741824</filesize>
   <terms>
    <term><name>Release type</name><value>New features</value></term>
    <term><name>Release type</name><value>Bug fixes</value></term>
diff --git a/web/core/modules/update/tests/modules/update_test/drupal.sec.2.0.xml b/web/core/modules/update/tests/modules/update_test/drupal.sec.2.0.xml
new file mode 100644
index 0000000000..6d900f23fd
--- /dev/null
+++ b/web/core/modules/update/tests/modules/update_test/drupal.sec.2.0.xml
@@ -0,0 +1,88 @@
+<?xml version="1.0" encoding="utf-8"?>
+<project xmlns:dc="http://purl.org/dc/elements/1.1/">
+    <title>Drupal</title>
+    <short_name>drupal</short_name>
+    <dc:creator>Drupal</dc:creator>
+    <api_version>8.x</api_version>
+    <recommended_major>8</recommended_major>
+    <supported_majors>8</supported_majors>
+    <default_major>8</default_major>
+    <project_status>published</project_status>
+    <link>http://example.com/project/drupal</link>
+    <terms><term><name>Projects</name><value>Drupal project</value></term></terms>
+    <releases>
+        <release>
+            <name>Drupal 8.2.0</name>
+            <version>8.2.0</version>
+            <tag>DRUPAL-8-2-0</tag>
+            <status>published</status>
+            <release_link>http://example.com/drupal-8-2-0-release</release_link>
+            <download_link>http://example.com/drupal-8-2-0.tar.gz</download_link>
+            <date>1250424641</date>
+            <terms>
+                <term>
+                    <name>Release type</name>
+                    <value>New features</value>
+                </term>
+                <term>
+                    <name>Release type</name>
+                    <value>Bug fixes</value>
+                </term>
+            </terms>
+        </release>
+        <release>
+            <name>drupal 8.2.0-beta2</name>
+            <version>8.2.0-beta2</version>
+            <tag>8.2.0-beta2</tag>
+            <status>published</status>
+            <release_link>http://example.com/drupal-8-2-0-beta2-release</release_link>
+            <download_link>http://example.com/drupal-8-2-0-beta2.tar.gz</download_link>
+            <date>1533298080</date>
+            <terms>
+                <term><name>Release type</name><value>Bug fixes</value></term>
+                <term><name>Release type</name><value>New features</value></term>
+            </terms>
+            <security>
+                Beta releases are not covered by Drupal security advisories.
+            </security>
+        </release>
+        <release>
+            <name>Drupal 8.1.0</name>
+            <version>8.1.0</version>
+            <tag>DRUPAL-8-1-0</tag>
+            <status>published</status>
+            <release_link>http://example.com/drupal-8-1-0-release</release_link>
+            <download_link>http://example.com/drupal-8-1-0.tar.gz</download_link>
+            <date>1250424521</date>
+            <terms>
+                <term>
+                    <name>Release type</name>
+                    <value>New features</value>
+                </term>
+                <term>
+                    <name>Release type</name>
+                    <value>Bug fixes</value>
+                </term>
+            </terms>
+        </release>
+        <release>
+            <name>Drupal 8.0.0</name>
+            <version>8.0.0</version>
+            <tag>DRUPAL-8-0-0</tag>
+            <status>published</status>
+            <release_link>http://example.com/drupal-8-0-0-release</release_link>
+            <download_link>http://example.com/drupal-8-0-0.tar.gz</download_link>
+            <date>1250424521</date>
+            <terms>
+                <term>
+                    <name>Release type</name>
+                    <value>New features</value>
+                </term>
+                <term>
+                    <name>Release type</name>
+                    <value>Bug fixes</value>
+                </term>
+            </terms>
+        </release>
+    </releases>
+</project>
diff --git a/web/core/modules/update/tests/modules/update_test/drupal.sec.2.0_3.0-rc1.xml b/web/core/modules/update/tests/modules/update_test/drupal.sec.2.0_3.0-rc1.xml
new file mode 100644
index 0000000000..363cad4d6f
--- /dev/null
+++ b/web/core/modules/update/tests/modules/update_test/drupal.sec.2.0_3.0-rc1.xml
@@ -0,0 +1,104 @@
+<?xml version="1.0" encoding="utf-8"?>
+<project xmlns:dc="http://purl.org/dc/elements/1.1/">
+    <title>Drupal</title>
+    <short_name>drupal</short_name>
+    <dc:creator>Drupal</dc:creator>
+    <api_version>8.x</api_version>
+    <recommended_major>8</recommended_major>
+    <supported_majors>8</supported_majors>
+    <default_major>8</default_major>
+    <project_status>published</project_status>
+    <link>http://example.com/project/drupal</link>
+    <terms><term><name>Projects</name><value>Drupal project</value></term></terms>
+    <releases>
+        <release>
+            <name>drupal 8.3.0-rc1</name>
+            <version>8.3.0-rc1</version>
+            <tag>8.3.0-rc1</tag>
+            <status>published</status>
+            <release_link>http://example.com/drupal-8-3-0-rc1-release</release_link>
+            <download_link>http://example.com/drupal-8-3-0-rc1.tar.gz</download_link>
+            <date>1533270485</date>
+            <terms>
+                <term><name>Release type</name><value>Bug fixes</value></term>
+                <term><name>Release type</name><value>New features</value></term>
+            </terms>
+            <security>
+                RC releases are not covered by Drupal security advisories.
+            </security>
+        </release>
+        <release>
+            <name>Drupal 8.2.0</name>
+            <version>8.2.0</version>
+            <tag>DRUPAL-8-2-0</tag>
+            <status>published</status>
+            <release_link>http://example.com/drupal-8-2-0-release</release_link>
+            <download_link>http://example.com/drupal-8-2-0.tar.gz</download_link>
+            <date>1250424641</date>
+            <terms>
+                <term>
+                    <name>Release type</name>
+                    <value>New features</value>
+                </term>
+                <term>
+                    <name>Release type</name>
+                    <value>Bug fixes</value>
+                </term>
+            </terms>
+        </release>
+        <release>
+            <name>drupal 8.2.0-beta2</name>
+            <version>8.2.0-beta2</version>
+            <tag>8.2.0-beta2</tag>
+            <status>published</status>
+            <release_link>http://example.com/drupal-8-2-0-beta2-release</release_link>
+            <download_link>http://example.com/drupal-8-2-0-beta2.tar.gz</download_link>
+            <date>1533298080</date>
+            <terms>
+                <term><name>Release type</name><value>Bug fixes</value></term>
+                <term><name>Release type</name><value>New features</value></term>
+            </terms>
+            <security>
+                Beta releases are not covered by Drupal security advisories.
+            </security>
+        </release>
+        <release>
+            <name>Drupal 8.1.0</name>
+            <version>8.1.0</version>
+            <tag>DRUPAL-8-1-0</tag>
+            <status>published</status>
+            <release_link>http://example.com/drupal-8-1-0-release</release_link>
+            <download_link>http://example.com/drupal-8-1-0.tar.gz</download_link>
+            <date>1250424521</date>
+            <terms>
+                <term>
+                    <name>Release type</name>
+                    <value>New features</value>
+                </term>
+                <term>
+                    <name>Release type</name>
+                    <value>Bug fixes</value>
+                </term>
+            </terms>
+        </release>
+        <release>
+            <name>Drupal 8.0.0</name>
+            <version>8.0.0</version>
+            <tag>DRUPAL-8-0-0</tag>
+            <status>published</status>
+            <release_link>http://example.com/drupal-8-0-0-release</release_link>
+            <download_link>http://example.com/drupal-8-0-0.tar.gz</download_link>
+            <date>1250424521</date>
+            <terms>
+                <term>
+                    <name>Release type</name>
+                    <value>New features</value>
+                </term>
+                <term>
+                    <name>Release type</name>
+                    <value>Bug fixes</value>
+                </term>
+            </terms>
+        </release>
+    </releases>
+</project>
diff --git a/web/core/modules/update/tests/modules/update_test/drupal.sec.2.0_9.0.0.xml b/web/core/modules/update/tests/modules/update_test/drupal.sec.2.0_9.0.0.xml
new file mode 100644
index 0000000000..4c8b79b563
--- /dev/null
+++ b/web/core/modules/update/tests/modules/update_test/drupal.sec.2.0_9.0.0.xml
@@ -0,0 +1,126 @@
+<?xml version="1.0" encoding="utf-8"?>
+<project xmlns:dc="http://purl.org/dc/elements/1.1/">
+    <title>Drupal</title>
+    <short_name>drupal</short_name>
+    <dc:creator>Drupal</dc:creator>
+    <api_version>8.x</api_version>
+    <recommended_major>8</recommended_major>
+    <supported_majors>8</supported_majors>
+    <default_major>8</default_major>
+    <project_status>published</project_status>
+    <link>http://example.com/project/drupal</link>
+    <terms><term><name>Projects</name><value>Drupal project</value></term></terms>
+    <releases>
+        <release>
+            <name>Drupal 9.0.0</name>
+            <version>9.0.0</version>
+            <tag>DRUPAL-9-0-0</tag>
+            <status>published</status>
+            <release_link>http://example.com/drupal-9-0-0-release</release_link>
+            <download_link>http://example.com/drupal-9-0-0.tar.gz</download_link>
+            <date>1250424641</date>
+            <terms>
+                <term>
+                    <name>Release type</name>
+                    <value>New features</value>
+                </term>
+                <term>
+                    <name>Release type</name>
+                    <value>Bug fixes</value>
+                </term>
+            </terms>
+        </release>
+        <release>
+            <name>Drupal 8.3.0</name>
+            <version>8.3.0</version>
+            <tag>DRUPAL-8-3-0</tag>
+            <status>published</status>
+            <release_link>http://example.com/drupal-8-3-0-release</release_link>
+            <download_link>http://example.com/drupal-8-3-0.tar.gz</download_link>
+            <date>1250424641</date>
+            <terms>
+                <term>
+                    <name>Release type</name>
+                    <value>New features</value>
+                </term>
+                <term>
+                    <name>Release type</name>
+                    <value>Bug fixes</value>
+                </term>
+            </terms>
+        </release>
+        <release>
+            <name>Drupal 8.2.0</name>
+            <version>8.2.0</version>
+            <tag>DRUPAL-8-2-0</tag>
+            <status>published</status>
+            <release_link>http://example.com/drupal-8-2-0-release</release_link>
+            <download_link>http://example.com/drupal-8-2-0.tar.gz</download_link>
+            <date>1250424641</date>
+            <terms>
+                <term>
+                    <name>Release type</name>
+                    <value>New features</value>
+                </term>
+                <term>
+                    <name>Release type</name>
+                    <value>Bug fixes</value>
+                </term>
+            </terms>
+        </release>
+        <release>
+            <name>drupal 8.2.0-beta2</name>
+            <version>8.2.0-beta2</version>
+            <tag>8.2.0-beta2</tag>
+            <status>published</status>
+            <release_link>http://example.com/drupal-8-2-0-beta2-release</release_link>
+            <download_link>http://example.com/drupal-8-2-0-beta2.tar.gz</download_link>
+            <date>1533298080</date>
+            <terms>
+                <term><name>Release type</name><value>Bug fixes</value></term>
+                <term><name>Release type</name><value>New features</value></term>
+            </terms>
+            <security>
+                Beta releases are not covered by Drupal security advisories.
+            </security>
+        </release>
+        <release>
+            <name>Drupal 8.1.0</name>
+            <version>8.1.0</version>
+            <tag>DRUPAL-8-1-0</tag>
+            <status>published</status>
+            <release_link>http://example.com/drupal-8-1-0-release</release_link>
+            <download_link>http://example.com/drupal-8-1-0.tar.gz</download_link>
+            <date>1250424521</date>
+            <terms>
+                <term>
+                    <name>Release type</name>
+                    <value>New features</value>
+                </term>
+                <term>
+                    <name>Release type</name>
+                    <value>Bug fixes</value>
+                </term>
+            </terms>
+        </release>
+        <release>
+            <name>Drupal 8.0.0</name>
+            <version>8.0.0</version>
+            <tag>DRUPAL-8-0-0</tag>
+            <status>published</status>
+            <release_link>http://example.com/drupal-8-0-0-release</release_link>
+            <download_link>http://example.com/drupal-8-0-0.tar.gz</download_link>
+            <date>1250424521</date>
+            <terms>
+                <term>
+                    <name>Release type</name>
+                    <value>New features</value>
+                </term>
+                <term>
+                    <name>Release type</name>
+                    <value>Bug fixes</value>
+                </term>
+            </terms>
+        </release>
+    </releases>
+</project>
diff --git a/web/core/modules/update/tests/modules/update_test/drupal.sec.9.0.xml b/web/core/modules/update/tests/modules/update_test/drupal.sec.9.0.xml
new file mode 100644
index 0000000000..46659eb49a
--- /dev/null
+++ b/web/core/modules/update/tests/modules/update_test/drupal.sec.9.0.xml
@@ -0,0 +1,107 @@
+<?xml version="1.0" encoding="utf-8"?>
+<project xmlns:dc="http://purl.org/dc/elements/1.1/">
+    <title>Drupal</title>
+    <short_name>drupal</short_name>
+    <dc:creator>Drupal</dc:creator>
+    <api_version>8.x</api_version>
+    <recommended_major>8</recommended_major>
+    <supported_majors>8,9</supported_majors>
+    <default_major>8</default_major>
+    <project_status>published</project_status>
+    <link>http://example.com/project/drupal</link>
+    <terms><term><name>Projects</name><value>Drupal project</value></term></terms>
+    <releases>
+        <release>
+            <name>Drupal 8.9.0</name>
+            <version>8.9.0</version>
+            <tag>DRUPAL-8-9-0</tag>
+            <status>published</status>
+            <release_link>http://example.com/drupal-8-9-0-release</release_link>
+            <download_link>http://example.com/drupal-8-9-0.tar.gz</download_link>
+            <date>1250424641</date>
+            <terms>
+                <term>
+                    <name>Release type</name>
+                    <value>New features</value>
+                </term>
+                <term>
+                    <name>Release type</name>
+                    <value>Bug fixes</value>
+                </term>
+            </terms>
+        </release>
+        <release>
+            <name>drupal 8.9.0-beta2</name>
+            <version>8.9.0-beta2</version>
+            <tag>8.9.0-beta2</tag>
+            <status>published</status>
+            <release_link>http://example.com/drupal-8-9-0-beta2-release</release_link>
+            <download_link>http://example.com/drupal-8-9-0-beta2.tar.gz</download_link>
+            <date>1533298080</date>
+            <terms>
+                <term><name>Release type</name><value>Bug fixes</value></term>
+                <term><name>Release type</name><value>New features</value></term>
+            </terms>
+            <security>
+                Beta releases are not covered by Drupal security advisories.
+            </security>
+        </release>
+        <release>
+          <name>Drupal 8.8.0</name>
+          <version>8.8.0</version>
+          <tag>DRUPAL-8-8-0</tag>
+          <status>published</status>
+          <release_link>http://example.com/drupal-8-8-0-release</release_link>
+          <download_link>http://example.com/drupal-8-8-0.tar.gz</download_link>
+          <date>1250424641</date>
+          <terms>
+            <term>
+              <name>Release type</name>
+              <value>New features</value>
+            </term>
+            <term>
+              <name>Release type</name>
+              <value>Bug fixes</value>
+            </term>
+          </terms>
+        </release>
+        <release>
+            <name>Drupal 8.1.0</name>
+            <version>8.1.0</version>
+            <tag>DRUPAL-8-1-0</tag>
+            <status>published</status>
+            <release_link>http://example.com/drupal-8-1-0-release</release_link>
+            <download_link>http://example.com/drupal-8-1-0.tar.gz</download_link>
+            <date>1250424521</date>
+            <terms>
+                <term>
+                    <name>Release type</name>
+                    <value>New features</value>
+                </term>
+                <term>
+                    <name>Release type</name>
+                    <value>Bug fixes</value>
+                </term>
+            </terms>
+        </release>
+        <release>
+            <name>Drupal 8.0.0</name>
+            <version>8.0.0</version>
+            <tag>DRUPAL-8-0-0</tag>
+            <status>published</status>
+            <release_link>http://example.com/drupal-8-0-0-release</release_link>
+            <download_link>http://example.com/drupal-8-0-0.tar.gz</download_link>
+            <date>1250424521</date>
+            <terms>
+                <term>
+                    <name>Release type</name>
+                    <value>New features</value>
+                </term>
+                <term>
+                    <name>Release type</name>
+                    <value>Bug fixes</value>
+                </term>
+            </terms>
+        </release>
+    </releases>
+</project>
diff --git a/web/core/modules/update/tests/modules/update_test/drupal.sec.9.9.0.xml b/web/core/modules/update/tests/modules/update_test/drupal.sec.9.9.0.xml
new file mode 100644
index 0000000000..703c9079af
--- /dev/null
+++ b/web/core/modules/update/tests/modules/update_test/drupal.sec.9.9.0.xml
@@ -0,0 +1,107 @@
+<?xml version="1.0" encoding="utf-8"?>
+<project xmlns:dc="http://purl.org/dc/elements/1.1/">
+    <title>Drupal</title>
+    <short_name>drupal</short_name>
+    <dc:creator>Drupal</dc:creator>
+    <api_version>9.x</api_version>
+    <recommended_major>8</recommended_major>
+    <supported_majors>8,9</supported_majors>
+    <default_major>9</default_major>
+    <project_status>published</project_status>
+    <link>http://example.com/project/drupal</link>
+    <terms><term><name>Projects</name><value>Drupal project</value></term></terms>
+    <releases>
+        <release>
+            <name>Drupal 9.9.0</name>
+            <version>9.9.0</version>
+            <tag>DRUPAL-9-9-0</tag>
+            <status>published</status>
+            <release_link>http://example.com/drupal-9-9-0-release</release_link>
+            <download_link>http://example.com/drupal-9-9-0.tar.gz</download_link>
+            <date>1250424641</date>
+            <terms>
+                <term>
+                    <name>Release type</name>
+                    <value>New features</value>
+                </term>
+                <term>
+                    <name>Release type</name>
+                    <value>Bug fixes</value>
+                </term>
+            </terms>
+        </release>
+        <release>
+            <name>drupal 9.9.0-beta2</name>
+            <version>9.9.0-beta2</version>
+            <tag>9.9.0-beta2</tag>
+            <status>published</status>
+            <release_link>http://example.com/drupal-9-9-0-beta2-release</release_link>
+            <download_link>http://example.com/drupal-9-9-0-beta2.tar.gz</download_link>
+            <date>1533298080</date>
+            <terms>
+                <term><name>Release type</name><value>Bug fixes</value></term>
+                <term><name>Release type</name><value>New features</value></term>
+            </terms>
+            <security>
+                Beta releases are not covered by Drupal security advisories.
+            </security>
+        </release>
+        <release>
+          <name>Drupal 9.8.0</name>
+          <version>9.8.0</version>
+          <tag>DRUPAL-9-8-0</tag>
+          <status>published</status>
+          <release_link>http://example.com/drupal-9-8-0-release</release_link>
+          <download_link>http://example.com/drupal-9-8-0.tar.gz</download_link>
+          <date>1250424641</date>
+          <terms>
+            <term>
+              <name>Release type</name>
+              <value>New features</value>
+            </term>
+            <term>
+              <name>Release type</name>
+              <value>Bug fixes</value>
+            </term>
+          </terms>
+        </release>
+        <release>
+            <name>Drupal 9.1.0</name>
+            <version>9.1.0</version>
+            <tag>DRUPAL-9-1-0</tag>
+            <status>published</status>
+            <release_link>http://example.com/drupal-9-1-0-release</release_link>
+            <download_link>http://example.com/drupal-9-1-0.tar.gz</download_link>
+            <date>1250424521</date>
+            <terms>
+                <term>
+                    <name>Release type</name>
+                    <value>New features</value>
+                </term>
+                <term>
+                    <name>Release type</name>
+                    <value>Bug fixes</value>
+                </term>
+            </terms>
+        </release>
+        <release>
+            <name>Drupal 9.0.0</name>
+            <version>9.0.0</version>
+            <tag>DRUPAL-9-0-0</tag>
+            <status>published</status>
+            <release_link>http://example.com/drupal-9-0-0-release</release_link>
+            <download_link>http://example.com/drupal-9-0-0.tar.gz</download_link>
+            <date>1250424521</date>
+            <terms>
+                <term>
+                    <name>Release type</name>
+                    <value>New features</value>
+                </term>
+                <term>
+                    <name>Release type</name>
+                    <value>Bug fixes</value>
+                </term>
+            </terms>
+        </release>
+    </releases>
+</project>
diff --git a/web/core/modules/update/tests/modules/update_test/src/Datetime/TestTime.php b/web/core/modules/update/tests/modules/update_test/src/Datetime/TestTime.php
new file mode 100644
index 0000000000..de9e5b86e4
--- /dev/null
+++ b/web/core/modules/update/tests/modules/update_test/src/Datetime/TestTime.php
@@ -0,0 +1,22 @@
+<?php
+
+namespace Drupal\update_test\Datetime;
+
+use Drupal\Component\Datetime\Time;
+
+/**
+ * Test service for altering the request time.
+ */
+class TestTime extends Time {
+
+  /**
+   * {@inheritdoc}
+   */
+  public function getRequestTime() {
+    if ($mock_date = \Drupal::state()->get('update_test.mock_date', NULL)) {
+      return \DateTime::createFromFormat('Y-m-d', $mock_date)->getTimestamp();
+    }
+    return parent::getRequestTime();
+  }
+
+}
diff --git a/web/core/modules/update/tests/modules/update_test/update_test.services.yml b/web/core/modules/update/tests/modules/update_test/update_test.services.yml
new file mode 100644
index 0000000000..23ce3db411
--- /dev/null
+++ b/web/core/modules/update/tests/modules/update_test/update_test.services.yml
@@ -0,0 +1,4 @@
+services:
+  datetime.time:
+    class: Drupal\update_test\Datetime\TestTime
+    arguments: ['@request_stack']
diff --git a/web/core/modules/update/tests/modules/update_test/update_test_basetheme.1_1-sec.xml b/web/core/modules/update/tests/modules/update_test/update_test_basetheme.1_1-sec.xml
index 3529e19763..9d00048ecb 100644
--- a/web/core/modules/update/tests/modules/update_test/update_test_basetheme.1_1-sec.xml
+++ b/web/core/modules/update/tests/modules/update_test/update_test_basetheme.1_1-sec.xml
@@ -3,10 +3,7 @@
 <title>Update test base theme</title>
 <short_name>update_test_basetheme</short_name>
 <dc:creator>Drupal</dc:creator>
-<api_version>8.x</api_version>
-<recommended_major>1</recommended_major>
-<supported_majors>1</supported_majors>
-<default_major>1</default_major>
+<supported_branches>8.x-1.</supported_branches>
 <project_status>published</project_status>
 <link>http://example.com/project/update_test_basetheme</link>
   <terms>
@@ -17,14 +14,10 @@
   <name>update_test_basetheme 8.x-1.1</name>
   <version>8.x-1.1</version>
   <tag>DRUPAL-7--1-1</tag>
-  <version_major>1</version_major>
-  <version_patch>1</version_patch>
   <status>published</status>
   <release_link>http://example.com/update_test_basetheme-7-x-1-1-release</release_link>
   <download_link>http://example.com/update_test_basetheme-8.x-1.1.tar.gz</download_link>
   <date>1250624521</date>
-  <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-  <filesize>1073763241</filesize>
   <terms>
    <term><name>Release type</name><value>Security update</value></term>
    <term><name>Release type</name><value>New features</value></term>
@@ -35,14 +28,10 @@
   <name>update_test_basetheme 8.x-1.0</name>
   <version>8.x-1.0</version>
   <tag>DRUPAL-7--1-0</tag>
-  <version_major>1</version_major>
-  <version_patch>0</version_patch>
   <status>published</status>
   <release_link>http://example.com/update_test_basetheme-7-x-1-0-release</release_link>
   <download_link>http://example.com/update_test_basetheme-8.x-1.0.tar.gz</download_link>
   <date>1250524521</date>
-  <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-  <filesize>1073741824</filesize>
   <terms>
    <term><name>Release type</name><value>New features</value></term>
    <term><name>Release type</name><value>Bug fixes</value></term>
diff --git a/web/core/modules/update/tests/modules/update_test/update_test_new_module.1_1.xml b/web/core/modules/update/tests/modules/update_test/update_test_new_module.1_1.xml
index f9039b2e3f..88e1ec9899 100644
--- a/web/core/modules/update/tests/modules/update_test/update_test_new_module.1_1.xml
+++ b/web/core/modules/update/tests/modules/update_test/update_test_new_module.1_1.xml
@@ -3,10 +3,7 @@
 <title>Update test new module</title>
 <short_name>update_test_new_module</short_name>
 <dc:creator>Drupal</dc:creator>
-<api_version>8.x</api_version>
-<recommended_major>1</recommended_major>
-<supported_majors>1</supported_majors>
-<default_major>1</default_major>
+<supported_branches>8.x-1.</supported_branches>
 <project_status>published</project_status>
 <link>http://example.com/project/update_test_new_module</link>
   <terms>
@@ -17,14 +14,10 @@
   <name>update_test_new_module 8.x-1.1</name>
   <version>8.x-1.1</version>
   <tag>DRUPAL-8--1-1</tag>
-  <version_major>1</version_major>
-  <version_patch>1</version_patch>
   <status>published</status>
   <release_link>http://example.com/update_test_new_module-8-x-1-1-release</release_link>
   <download_link>core/modules/update/tests/update_test_new_module/8.x-1.1/update_test_new_module.tar.gz</download_link>
   <date>1300424521</date>
-  <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-  <filesize>1073741824</filesize>
   <terms>
    <term><name>Release type</name><value>New features</value></term>
    <term><name>Release type</name><value>Bug fixes</value></term>
diff --git a/web/core/modules/update/tests/modules/update_test/update_test_subtheme.1_0.xml b/web/core/modules/update/tests/modules/update_test/update_test_subtheme.1_0.xml
index c791b7f1fb..4cde86254e 100644
--- a/web/core/modules/update/tests/modules/update_test/update_test_subtheme.1_0.xml
+++ b/web/core/modules/update/tests/modules/update_test/update_test_subtheme.1_0.xml
@@ -3,10 +3,7 @@
 <title>Update test subtheme</title>
 <short_name>update_test_subtheme</short_name>
 <dc:creator>Drupal</dc:creator>
-<api_version>8.x</api_version>
-<recommended_major>1</recommended_major>
-<supported_majors>1</supported_majors>
-<default_major>1</default_major>
+<supported_branches>8.x-1.</supported_branches>
 <project_status>published</project_status>
 <link>http://example.com/project/update_test_subtheme</link>
   <terms>
@@ -17,14 +14,10 @@
   <name>update_test_subtheme 8.x-1.0</name>
   <version>8.x-1.0</version>
   <tag>DRUPAL-7--1-0</tag>
-  <version_major>1</version_major>
-  <version_patch>0</version_patch>
   <status>published</status>
   <release_link>http://example.com/update_test_subtheme-7-x-1-0-release</release_link>
   <download_link>http://example.com/update_test_subtheme-8.x-1.0.tar.gz</download_link>
   <date>1250524521</date>
-  <mdhash>b966255555d9c9b86d480ca08cfaa98e</mdhash>
-  <filesize>1073741824</filesize>
   <terms>
    <term><name>Release type</name><value>New features</value></term>
    <term><name>Release type</name><value>Bug fixes</value></term>
diff --git a/web/core/modules/update/tests/src/Functional/FileTransferAuthorizeFormTest.php b/web/core/modules/update/tests/src/Functional/FileTransferAuthorizeFormTest.php
index f2c82a0bb2..2d7d780519 100644
--- a/web/core/modules/update/tests/src/Functional/FileTransferAuthorizeFormTest.php
+++ b/web/core/modules/update/tests/src/Functional/FileTransferAuthorizeFormTest.php
@@ -28,14 +28,21 @@ protected function setUp() {
 
     // Create a local cache so the module is not downloaded from drupal.org.
     $cache_directory = _update_manager_cache_directory(TRUE);
-    $validArchiveFile = __DIR__ . '/../../update_test_new_module/8.x-1.0/update_test_new_module.tar.gz';
-    copy($validArchiveFile, $cache_directory . '/update_test_new_module.tar.gz');
+    foreach (['.tar.gz', '.zip'] as $extension) {
+      $filename = 'update_test_new_module' . $extension;
+      copy(
+        __DIR__ . '/../../update_test_new_module/8.x-1.0/' . $filename,
+        $cache_directory . '/' . $filename
+      );
+    }
   }
 
   /**
    * Tests the Update Manager module upload via authorize.php functionality.
+   *
+   * @dataProvider archiveFileUrlProvider
    */
-  public function testViaAuthorize() {
+  public function testViaAuthorize($url) {
     // Ensure the that we can select which file transfer backend to use.
     \Drupal::state()->set('test_uploaders_via_prompt', TRUE);
 
@@ -44,8 +51,7 @@ public function testViaAuthorize() {
     $this->assertNoText('Update test new module');
 
     $edit = [
-      // This project has been cached in the test's setUp() method.
-      'project_url' => 'https://ftp.drupal.org/files/projects/update_test_new_module.tar.gz',
+      'project_url' => $url,
     ];
     $this->drupalPostForm('admin/modules/install', $edit, t('Install'));
     $edit = [
@@ -60,4 +66,20 @@ public function testViaAuthorize() {
     $this->assertText('Update test new module');
   }
 
+  /**
+   * Data provider method for testViaAuthorize().
+   *
+   * Each of these release URLs has been cached in the setUp() method.
+   */
+  public function archiveFileUrlProvider() {
+    return [
+      'tar.gz' => [
+        'url' => 'https://ftp.drupal.org/files/projects/update_test_new_module.tar.gz',
+      ],
+      'zip' => [
+        'url' => 'https://ftp.drupal.org/files/projects/update_test_new_module.zip',
+      ],
+    ];
+  }
+
 }
diff --git a/web/core/modules/update/tests/src/Functional/UpdateContribTest.php b/web/core/modules/update/tests/src/Functional/UpdateContribTest.php
index 8497ed81bd..aed4795daa 100644
--- a/web/core/modules/update/tests/src/Functional/UpdateContribTest.php
+++ b/web/core/modules/update/tests/src/Functional/UpdateContribTest.php
@@ -266,6 +266,10 @@ public function testNormalUpdateAvailable() {
         $this->clickLink('Check manually');
         $this->checkForMetaRefresh();
         $assert_session->pageTextNotContains('Security update required!');
+        // The XML test fixtures for this method all contain the '8.x-3.0'
+        // release but because '8.x-3.0' is not in a supported branch it will
+        // not be in the available updates.
+        $this->assertNoRaw('8.x-3.0');
         // Set a CSS selector in order for assertions to target the 'Modules'
         // table and not Drupal core updates.
         $this->updateTableLocator = 'table.update:nth-of-type(2)';
@@ -546,6 +550,46 @@ public function testHookUpdateStatusAlter() {
     $this->assertNoText(t('Security update'));
   }
 
+  /**
+   * Tests that core compatibility messages are displayed.
+   */
+  public function testCoreCompatibilityMessage() {
+    $system_info = [
+      '#all' => [
+        'version' => '8.0.0',
+      ],
+      'aaa_update_test' => [
+        'project' => 'aaa_update_test',
+        'version' => '8.x-1.0',
+        'hidden' => FALSE,
+      ],
+    ];
+    $this->config('update_test.settings')->set('system_info', $system_info)->save();
+
+    // Confirm that messages are displayed for recommended and latest updates.
+    // @todo In https://www.drupal.org/project/drupal/issues/3112962:
+    //   Change the calls to 'refreshUpdateStatus()' to use:
+    //   - '1.1' instead of '1.1-core_compatibility'.
+    //   - '1.1-alpha1' instead of '1.1-alpha1-core_compatibility'.
+    //   Delete the files:
+    //   - core/modules/update/tests/modules/update_test/drupal.1.1-alpha1-core_compatibility.xml
+    //   - core/modules/update/tests/modules/update_test/drupal.1.1-core_compatibility.xml
+    $this->refreshUpdateStatus(['drupal' => '1.1-core_compatibility', 'aaa_update_test' => '8.x-1.2']);
+    $this->assertCoreCompatibilityMessage('8.x-1.2', '8.0.0 to 8.1.1', 'Recommended version:');
+    $this->assertCoreCompatibilityMessage('8.x-1.3-beta1', '8.0.0, 8.1.1', 'Latest version:');
+
+    // Change the available core releases and confirm that the messages change.
+    $this->refreshUpdateStatus(['drupal' => '1.1-alpha1-core_compatibility', 'aaa_update_test' => '8.x-1.2']);
+    $this->assertCoreCompatibilityMessage('8.x-1.2', '8.0.0 to 8.1.0', 'Recommended version:');
+    $this->assertCoreCompatibilityMessage('8.x-1.3-beta1', '8.0.0', 'Latest version:');
+
+    // Confirm that messages are displayed for security and 'Also available'
+    // updates.
+    $this->refreshUpdateStatus(['drupal' => '1.1-core_compatibility', 'aaa_update_test' => 'core_compatibility.8.x-1.2_8.x-2.2']);
+    $this->assertCoreCompatibilityMessage('8.x-1.2', '8.1.0 to 8.1.1', 'Security update:', FALSE);
+    $this->assertCoreCompatibilityMessage('8.x-2.2', '8.1.1', 'Also available:', FALSE);
+  }
+
   /**
    * Tests update status of security releases.
    *
@@ -672,4 +716,121 @@ public function securityUpdateAvailabilityProvider() {
     ];
   }
 
+  /**
+   * Tests messages when a project release is unpublished.
+   *
+   * This test confirms that revoked messages are displayed regardless of
+   * whether the installed version is in a supported branch or not. This test
+   * relies on 2 test XML fixtures that are identical except for the
+   * 'supported_branches' value:
+   * - aaa_update_test.1_0-supported.xml
+   *    'supported_branches' is '8.x-1.,8.x-2.'.
+   * - aaa_update_test.1_0-unsupported.xml
+   *    'supported_branches' is '8.x-2.'.
+   * They both have an '8.x-1.0' release that is unpublished and an '8.x-2.0'
+   * release that is published and is the expected update.
+   */
+  public function testRevokedRelease() {
+    $system_info = [
+      'aaa_update_test' => [
+        'project' => 'aaa_update_test',
+        'version' => '8.x-1.0',
+        'hidden' => FALSE,
+      ],
+    ];
+    $this->config('update_test.settings')->set('system_info', $system_info)->save();
+    $this->refreshUpdateStatus([
+      'drupal' => '0.0',
+      $this->updateProject => '1_0-supported',
+    ]);
+    // @todo Change the version label to 'Recommended version:' in
+    // https://www.drupal.org/node/3114408.
+    $this->confirmRevokedStatus('8.x-1.0', '8.x-2.0', 'Also available:');
+
+    $this->refreshUpdateStatus([
+      'drupal' => '0.0',
+      $this->updateProject => '1_0-unsupported',
+    ]);
+    $this->confirmRevokedStatus('8.x-1.0', '8.x-2.0', 'Recommended version:');
+  }
+
+  /**
+   * Tests messages when a project release is marked unsupported.
+   *
+   * This test confirms unsupported messages are displayed regardless of whether
+   * the installed version is in a supported branch or not. This test relies on
+   * 2 test XML fixtures that are identical except for the 'supported_branches'
+   * value:
+   * - aaa_update_test.1_0-supported.xml
+   *    'supported_branches' is '8.x-1.,8.x-2.'.
+   * - aaa_update_test.1_0-unsupported.xml
+   *    'supported_branches' is '8.x-2.'.
+   * They both have an '8.x-1.1' release that has the 'Release type' value of
+   * 'unsupported' and an '8.x-2.0' release that has the 'Release type' value of
+   * 'supported' and is the expected update.
+   */
+  public function testUnsupportedRelease() {
+    $system_info = [
+      'aaa_update_test' => [
+        'project' => 'aaa_update_test',
+        'version' => '8.x-1.1',
+        'hidden' => FALSE,
+      ],
+    ];
+    $this->config('update_test.settings')->set('system_info', $system_info)->save();
+    $this->refreshUpdateStatus([
+      'drupal' => '0.0',
+      $this->updateProject => '1_0-supported',
+    ]);
+    // @todo Change the version label to 'Recommended version:' in
+    // https://www.drupal.org/node/3114408.
+    $this->confirmUnsupportedStatus('8.x-1.1', '8.x-2.0', 'Also available:');
+
+    $this->refreshUpdateStatus([
+      'drupal' => '0.0',
+      $this->updateProject => '1_0-unsupported',
+    ]);
+    $this->confirmUnsupportedStatus('8.x-1.1', '8.x-2.0', 'Recommended version:');
+  }
+
+  /**
+   * Asserts that a core compatibility message is correct for an update.
+   *
+   * @param string $version
+   *   The version of the update.
+   * @param string $expected_range
+   *   The expected core compatibility range.
+   * @param string $expected_release_title
+   *   The expected release title.
+   * @param bool $is_compatible
+   *   If the update is compatible with the installed version of Drupal.
+   */
+  protected function assertCoreCompatibilityMessage($version, $expected_range, $expected_release_title, $is_compatible = TRUE) {
+    $update_element = $this->findUpdateElementByLabel($expected_release_title);
+    $this->assertTrue($update_element->hasLink($version));
+    $compatibility_details = $update_element->find('css', '.project-update__compatibility-details details');
+    $this->assertContains("Requires Drupal core: $expected_range", $compatibility_details->getText());
+    $details_summary_element = $compatibility_details->find('css', 'summary');
+    if ($is_compatible) {
+      $download_version = str_replace('.', '-', $version);
+      // If an update is compatible with the installed version of Drupal core,
+      // it should have a download link and the details element should be closed
+      // by default.
+      $this->assertFalse($compatibility_details->hasAttribute('open'));
+      $this->assertSame('Compatible', $details_summary_element->getText());
+      $this->assertEquals(
+        $update_element->findLink('Download')->getAttribute('href'),
+        "http://example.com/{$this->updateProject}-$download_version.tar.gz"
+      );
+    }
+    else {
+      // If an update is not compatible with the installed version of Drupal
+      // core, it should not have a download link and the details element should
+      // be open by default.
+      $this->assertTrue($compatibility_details->hasAttribute('open'));
+      $this->assertSame('Not compatible', $details_summary_element->getText());
+      $this->assertFalse($update_element->hasLink('Download'));
+    }
+  }
+
 }
diff --git a/web/core/modules/update/tests/src/Functional/UpdateCoreTest.php b/web/core/modules/update/tests/src/Functional/UpdateCoreTest.php
index 26e9d5d969..d6c198f42e 100644
--- a/web/core/modules/update/tests/src/Functional/UpdateCoreTest.php
+++ b/web/core/modules/update/tests/src/Functional/UpdateCoreTest.php
@@ -62,6 +62,13 @@ protected function setSystemInfo($version) {
 
   /**
    * Tests the Update Manager module when no updates are available.
+   *
+   * The XML fixture file 'drupal.1.0.xml' which is one of the XML files this
+   * test uses also contains 2 extra releases that are newer than '8.0.1'. These
+   * releases will not show as available updates because of the following
+   * reasons:
+   * - '8.0.2' is an unpublished release.
+   * - '8.0.3' is marked as 'Release type' 'Unsupported'.
    */
   public function testNoUpdatesAvailable() {
     foreach ([0, 1] as $minor_version) {
@@ -70,6 +77,10 @@ public function testNoUpdatesAvailable() {
           $this->setSystemInfo("8.$minor_version.$patch_version" . $extra_version);
           $this->refreshUpdateStatus(['drupal' => "$minor_version.$patch_version" . $extra_version]);
           $this->standardTests();
+          // The XML test fixtures for this method all contain the '8.2.0'
+          // release but because '8.2.0' is not in a supported branch it will
+          // not be in the available updates.
+          $this->assertNoRaw('8.2.0');
           $this->assertText(t('Up to date'));
           $this->assertNoText(t('Update available'));
           $this->assertNoText(t('Security update required!'));
@@ -98,6 +109,10 @@ public function testNormalUpdateAvailable() {
         $this->clickLink(t('Check manually'));
         $this->checkForMetaRefresh();
         $this->assertNoText(t('Security update required!'));
+        // The XML test fixtures for this method all contain the '8.2.0' release
+        // but because '8.2.0' is not in a supported branch it will not be in
+        // the available updates.
+        $this->assertNoRaw('8.2.0');
         switch ($minor_version) {
           case 0:
             // Both stable and unstable releases are available.
@@ -231,6 +246,11 @@ public function testSecurityUpdateAvailability($site_patch_version, array $expec
    *   - 8.0.2 Insecure
    *   - 8.0.1 Insecure
    *   - 8.0.0 Insecure
+   * - drupal.sec.1.2_insecure-unsupported
+   *   This file has the exact releases as drupal.sec.1.2_insecure.xml. It has a
+   *   different value for 'supported_branches' that does not contain '8.0.'.
+   *   It is used to ensure that the "Security update required!" is displayed
+   *   even if the currently installed version is in an unsupported branch.
    * - drupal.sec.0.2-rc2-b.xml
    *   - 8.2.0-rc2
    *   - 8.2.0-rc1
@@ -305,6 +325,15 @@ public function securityUpdateAvailabilityProvider() {
         'expected_update_message_type' => static::SECURITY_UPDATE_REQUIRED,
         'fixture' => 'sec.1.2_insecure',
       ],
+      // No security release available for site minor release 0.
+      // Site minor is not a supported branch.
+      // Security release available for next minor.
+      '0.0, 1.2, insecure-unsupported' => [
+        'site_patch_version' => '0.0',
+        'expected_security_releases' => ['1.2'],
+        'expected_update_message_type' => static::SECURITY_UPDATE_REQUIRED,
+        'fixture' => 'sec.1.2_insecure-unsupported',
+      ],
       // All releases for minor 0 are secure.
       // Security release available for next minor.
       '0.0, 1.2, secure' => [
@@ -357,6 +386,225 @@ public function securityUpdateAvailabilityProvider() {
     return $test_cases;
   }
 
+  /**
+   * Tests the security coverage messages for Drupal core versions.
+   *
+   * @param string $installed_version
+   *   The installed Drupal version to test.
+   * @param string $fixture
+   *   The test fixture that contains the test XML.
+   * @param string $requirements_section_heading
+   *   The requirements section heading.
+   * @param string $message
+   *   The expected coverage message.
+   * @param string $mock_date
+   *   The mock date to use if needed in the format CCYY-MM-DD. If an empty
+   *   string is provided, no mock date will be used.
+   *
+   * @dataProvider securityCoverageMessageProvider
+   */
+  public function testSecurityCoverageMessage($installed_version, $fixture, $requirements_section_heading, $message, $mock_date) {
+    \Drupal::state()->set('update_test.mock_date', $mock_date);
+    $this->setSystemInfo($installed_version);
+    $this->refreshUpdateStatus(['drupal' => $fixture]);
+    $this->drupalGet('admin/reports/status');
+
+    if (empty($requirements_section_heading)) {
+      $this->assertSession()->pageTextNotContains('Drupal core security coverage');
+      return;
+    }
+
+    $all_requirements_details = $this->getSession()->getPage()->findAll(
+      'css',
+      'details.system-status-report__entry:contains("Drupal core security coverage")'
+    );
+    // Ensure we only have 1 security message section.
+    $this->assertCount(1, $all_requirements_details);
+    $requirements_details = $all_requirements_details[0];
+    // Ensure that messages are under the correct heading which could be
+    // 'Checked', 'Warnings found', or 'Errors found'.
+    $requirements_section_element = $requirements_details->getParent();
+    $this->assertCount(1, $requirements_section_element->findAll('css', "h3:contains('$requirements_section_heading')"));
+    $actual_message = $requirements_details->find('css', 'div.system-status-report__entry__value')->getText();
+    $this->assertNotEmpty($actual_message);
+    $this->assertEquals($message, $actual_message);
+  }
+
+  /**
+   * Dataprovider for testSecurityCoverageMessage().
+   *
+   * These test cases rely on the following fixtures containing the following
+   * releases:
+   * - drupal.sec.2.0_3.0-rc1.xml
+   *   - 8.2.0
+   *   - 8.3.0-rc1
+   * - drupal.sec.2.0.xml
+   *   - 8.2.0
+   * - drupal.sec.2.0_9.0.0.xml
+   *   - 8.2.0
+   *   - 9.0.0
+   * - drupal.sec.9.0.xml
+   *   - 8.9.0
+   * - drupal.sec.9.9.0.xml
+   *   - 9.9.0
+   */
+  public function securityCoverageMessageProvider() {
+    $release_coverage_message = 'Visit the release cycle overview for more information on supported releases.';
+    $coverage_ended_message = 'Coverage has ended';
+    $update_asap_message = 'Update to a supported minor as soon as possible to continue receiving security updates.';
+    $update_soon_message = 'Update to a supported minor version soon to continue receiving security updates.';
+    $test_cases = [
+      '8.0.0, unsupported' => [
+        'installed_version' => '8.0.0',
+        'fixture' => 'sec.2.0_3.0-rc1',
+        'requirements_section_heading' => 'Errors found',
+        'message' => "$coverage_ended_message $update_asap_message $release_coverage_message",
+        'mock_date' => '',
+      ],
+      '8.1.0, supported with 3rc' => [
+        'installed_version' => '8.1.0',
+        'fixture' => 'sec.2.0_3.0-rc1',
+        'requirements_section_heading' => 'Warnings found',
+        'message' => "Covered until 8.3.0 Update to 8.2 or higher soon to continue receiving security updates. $release_coverage_message",
+        'mock_date' => '',
+      ],
+      '8.1.0, supported' => [
+        'installed_version' => '8.1.0',
+        'fixture' => 'sec.2.0',
+        'requirements_section_heading' => 'Warnings found',
+        'message' => "Covered until 8.3.0 Update to 8.2 or higher soon to continue receiving security updates. $release_coverage_message",
+        'mock_date' => '',
+      ],
+      '8.2.0, supported with 3rc' => [
+        'installed_version' => '8.2.0',
+        'fixture' => 'sec.2.0_3.0-rc1',
+        'requirements_section_heading' => 'Checked',
+        'message' => "Covered until 8.4.0 $release_coverage_message",
+        'mock_date' => '',
+      ],
+      '8.2.0, supported' => [
+        'installed_version' => '8.2.0',
+        'fixture' => 'sec.2.0',
+        'requirements_section_heading' => 'Checked',
+        'message' => "Covered until 8.4.0 $release_coverage_message",
+        'mock_date' => '',
+      ],
+      // Ensure we don't show messages for pre-release or dev versions.
+      '8.2.0-beta2, no message' => [
+        'installed_version' => '8.2.0-beta2',
+        'fixture' => 'sec.2.0_3.0-rc1',
+        'requirements_section_heading' => '',
+        'message' => '',
+        'mock_date' => '',
+      ],
+      '8.1.0-dev, no message' => [
+        'installed_version' => '8.1.0-dev',
+        'fixture' => 'sec.2.0_3.0-rc1',
+        'requirements_section_heading' => '',
+        'message' => '',
+        'mock_date' => '',
+      ],
+      // Ensures the message is correct if the next major version has been
+      // released and the additional minors indicated by
+      // CORE_MINORS_WITH_SECURITY_COVERAGE minors have been released.
+      '8.0.0, 9 unsupported' => [
+        'installed_version' => '8.0.0',
+        'fixture' => 'sec.2.0_9.0.0',
+        'requirements_section_heading' => 'Errors found',
+        'message' => "$coverage_ended_message $update_asap_message $release_coverage_message",
+        'mock_date' => '',
+      ],
+      // Ensures the message is correct if the next major version has been
+      // released and the additional minors indicated by
+      // CORE_MINORS_WITH_SECURITY_COVERAGE minors have not been released.
+      '8.2.0, 9 warning' => [
+        'installed_version' => '8.2.0',
+        'fixture' => 'sec.2.0_9.0.0',
+        'requirements_section_heading' => 'Warnings found',
+        'message' => "Covered until 8.4.0 Update to 8.3 or higher soon to continue receiving security updates. $release_coverage_message",
+        'mock_date' => '',
+      ],
+    ];
+
+    // Drupal 8.8.x test cases.
+    $test_cases += [
+      // Ensure that a message is displayed during 8.8's active support.
+      '8.8.0, supported' => [
+        'installed_version' => '8.8.0',
+        'fixture' => 'sec.9.0',
+        'requirements_section_heading' => 'Checked',
+        'message' => "Covered until 2020-Dec-02 $release_coverage_message",
+        'mock_date' => '2020-06-01',
+      ],
+      // Ensure a warning is displayed if less than six months remain until the
+      // end of 8.8's security coverage.
+      '8.8.0, supported, 6 months warn' => [
+        'installed_version' => '8.8.0',
+        'fixture' => 'sec.9.0',
+        'requirements_section_heading' => 'Warnings found',
+        'message' => "Covered until 2020-Dec-02 $update_soon_message $release_coverage_message",
+        'mock_date' => '2020-06-02',
+      ],
+    ];
+    // Ensure that the message does not change, including on the last day of
+    // security coverage.
+    $test_cases['8.8.0, supported, last day warn'] = $test_cases['8.8.0, supported, 6 months warn'];
+    $test_cases['8.8.0, supported, last day warn']['mock_date'] = '2020-12-01';
+
+    // Ensure that if the 8.8 support window is finished a message is
+    // displayed.
+    $test_cases['8.8.0, support over'] = [
+      'installed_version' => '8.8.0',
+      'fixture' => 'sec.9.0',
+      'requirements_section_heading' => 'Errors found',
+      'message' => "$coverage_ended_message $update_asap_message $release_coverage_message",
+      'mock_date' => '2020-12-02',
+    ];
+
+    // Drupal 8.9 LTS test cases.
+    $test_cases['8.9.0, lts supported'] = [
+      'installed_version' => '8.9.0',
+      'fixture' => 'sec.9.0',
+      'requirements_section_heading' => 'Checked',
+      'message' => "Covered until 2021-Nov $release_coverage_message",
+      'mock_date' => '2021-01-01',
+    ];
+    // Ensure that the message does not change, including on the last day of
+    // security coverage.
+    $test_cases['8.9.0, lts supported, last day'] = $test_cases['8.9.0, lts supported'];
+    $test_cases['8.9.0, lts supported, last day']['mock_date'] = '2021-10-31';
+
+    // Ensure that if LTS support window is finished a message is displayed.
+    $test_cases['8.9.0, lts support over'] = [
+      'installed_version' => '8.9.0',
+      'fixture' => 'sec.9.0',
+      'requirements_section_heading' => 'Errors found',
+      'message' => "$coverage_ended_message $update_asap_message $release_coverage_message",
+      'mock_date' => '2021-11-01',
+    ];
+
+    // Drupal 9 test cases.
+    $test_cases += [
+      // Ensure the end dates for 8.8 and 8.9 only apply to major version 8.
+      '9.9.0' => [
+        'installed_version' => '9.9.0',
+        'fixture' => 'sec.9.9.0',
+        'requirements_section_heading' => 'Checked',
+        'message' => "Covered until 9.11.0 $release_coverage_message",
+        'mock_date' => '',
+      ],
+      '9.8.0' => [
+        'installed_version' => '9.8.0',
+        'fixture' => 'sec.9.9.0',
+        'requirements_section_heading' => 'Warnings found',
+        'message' => "Covered until 9.10.0 Update to 9.9 or higher soon to continue receiving security updates. $release_coverage_message",
+        'mock_date' => '',
+      ],
+    ];
+    return $test_cases;
+
+  }
+
   /**
    * Ensures proper results where there are date mismatches among modules.
    */
@@ -572,6 +820,52 @@ public function testLocalActions() {
     $this->assertUrl('admin/reports/updates/install');
   }
 
+  /**
+   * Tests messages when a project release is unpublished.
+   *
+   * This test confirms that revoked messages are displayed regardless of
+   * whether the installed version is in a supported branch or not. This test
+   * relies on 2 test XML fixtures that are identical except for the
+   * 'supported_branches' value:
+   * - drupal.1.0.xml
+   *    'supported_branches' is '8.0.,8.1.'.
+   * - drupal.1.0-unsupported.xml
+   *    'supported_branches' is '8.1.'.
+   * They both have an '8.0.2' release that is unpublished and an '8.1.0'
+   * release that is published and is the expected update.
+   */
+  public function testRevokedRelease() {
+    foreach (['1.0', '1.0-unsupported'] as $fixture) {
+      $this->setSystemInfo('8.0.2');
+      $this->refreshUpdateStatus([$this->updateProject => $fixture]);
+      $this->standardTests();
+      $this->confirmRevokedStatus('8.0.2', '8.1.0', 'Recommended version:');
+    }
+  }
+
+  /**
+   * Tests messages when a project release is marked unsupported.
+   *
+   * This test confirms unsupported messages are displayed regardless of whether
+   * the installed version is in a supported branch or not. This test relies on
+   * 2 test XML fixtures that are identical except for the 'supported_branches'
+   * value:
+   * - drupal.1.0.xml
+   *    'supported_branches' is '8.0.,8.1.'.
+   * - drupal.1.0-unsupported.xml
+   *    'supported_branches' is '8.1.'.
+   * They both have an '8.0.3' release that that has the 'Release type' value of
+   * 'unsupported' and an '8.1.0' release that has the 'Release type' value of
+   * 'supported' and is the expected update.
+   */
+  public function testUnsupportedRelease() {
+    foreach (['1.0', '1.0-unsupported'] as $fixture) {
+      $this->setSystemInfo('8.0.3');
+      $this->refreshUpdateStatus([$this->updateProject => $fixture]);
+      $this->standardTests();
+      $this->confirmUnsupportedStatus('8.0.3', '8.1.0', 'Recommended version:');
+    }
+  }
 
   /**
    * {@inheritdoc}
diff --git a/web/core/modules/update/tests/src/Functional/UpdateTestBase.php b/web/core/modules/update/tests/src/Functional/UpdateTestBase.php
index 89cfdf4f6e..5ca84d922b 100644
--- a/web/core/modules/update/tests/src/Functional/UpdateTestBase.php
+++ b/web/core/modules/update/tests/src/Functional/UpdateTestBase.php
@@ -195,7 +195,7 @@ protected function assertSecurityUpdates($project_path_part, array $expected_sec
    */
   protected function assertVersionUpdateLinks($label, $version, $download_version = NULL) {
     $download_version = $download_version ?? $version;
-    $update_element = $this->getSession()->getPage()->find('css', $this->updateTableLocator . " .project-update__version:contains(\"$label\")");
+    $update_element = $this->findUpdateElementByLabel($label);
     // In the release notes URL the periods are replaced with dashes.
     $url_version = str_replace('.', '-', $version);
 
@@ -204,4 +204,91 @@ protected function assertVersionUpdateLinks($label, $version, $download_version
     $this->assertEquals($update_element->findLink('Release notes')->getAttribute('href'), "http://example.com/{$this->updateProject}-$url_version-release");
   }
 
+  /**
+   * Confirms messages are correct when a release has been unpublished/revoked.
+   *
+   * @param string $revoked_version
+   *   The revoked version that is currently installed.
+   * @param string $newer_version
+   *   The expected newer version to recommend.
+   * @param string $new_version_label
+   *   The expected label for the newer version (for example 'Recommended
+   *   version:' or 'Also available:').
+   */
+  protected function confirmRevokedStatus($revoked_version, $newer_version, $new_version_label) {
+    $this->drupalGet('admin/reports/updates');
+    $this->clickLink(t('Check manually'));
+    $this->checkForMetaRefresh();
+    $this->assertUpdateTableTextContains('Revoked!');
+    $this->assertUpdateTableTextContains($revoked_version);
+    $this->assertUpdateTableElementContains('error.svg');
+    $this->assertUpdateTableTextContains('Release revoked: Your currently installed release has been revoked, and is no longer available for download. Disabling everything included in this release or upgrading is strongly recommended!');
+    $this->assertVersionUpdateLinks($new_version_label, $newer_version);
+  }
+
+  /**
+   * Confirms messages are correct when a release has been marked unsupported.
+   *
+   * @param string $unsupported_version
+   *   The unsupported version that is currently installed.
+   * @param string $newer_version
+   *   The expected newer version to recommend.
+   * @param string $new_version_label
+   *   The expected label for the newer version (for example 'Recommended
+   *   version:' or 'Also available:').
+   */
+  protected function confirmUnsupportedStatus($unsupported_version, $newer_version, $new_version_label) {
+    $this->drupalGet('admin/reports/updates');
+    $this->clickLink(t('Check manually'));
+    $this->checkForMetaRefresh();
+    $this->assertUpdateTableTextContains('Not supported!');
+    $this->assertUpdateTableTextContains($unsupported_version);
+    $this->assertUpdateTableElementContains('error.svg');
+    $this->assertUpdateTableTextContains('Release not supported: Your currently installed release is now unsupported, and is no longer available for download. Disabling everything included in this release or upgrading is strongly recommended!');
+    $this->assertVersionUpdateLinks($new_version_label, $newer_version);
+  }
+
+  /**
+   * Asserts that the update table text contains the specified text.
+   *
+   * @param string $text
+   *   The expected text.
+   *
+   * @see \Behat\Mink\WebAssert::elementTextContains()
+   */
+  protected function assertUpdateTableTextContains($text) {
+    $this->assertSession()
+      ->elementTextContains('css', $this->updateTableLocator, $text);
+  }
+
+  /**
+   * Asserts that the update table element HTML contains the specified text.
+   *
+   * @param string $text
+   *   The expected text.
+   *
+   * @see \Behat\Mink\WebAssert::elementContains()
+   */
+  protected function assertUpdateTableElementContains($text) {
+    $this->assertSession()
+      ->elementContains('css', $this->updateTableLocator, $text);
+  }
+
+  /**
+   * Finds an update page element by label.
+   *
+   * @param string $label
+   *   The label for the update, for example "Recommended version:" or
+   *   "Latest version:".
+   *
+   * @return \Behat\Mink\Element\NodeElement
+   *   The update element.
+   */
+  protected function findUpdateElementByLabel($label) {
+    $update_elements = $this->getSession()->getPage()
+      ->findAll('css', $this->updateTableLocator . " .project-update__version:contains(\"$label\")");
+    $this->assertCount(1, $update_elements);
+    return $update_elements[0];
+  }
+
 }
diff --git a/web/core/modules/update/tests/src/Unit/ModuleVersionTest.php b/web/core/modules/update/tests/src/Unit/ModuleVersionTest.php
new file mode 100644
index 0000000000..7eaabed008
--- /dev/null
+++ b/web/core/modules/update/tests/src/Unit/ModuleVersionTest.php
@@ -0,0 +1,400 @@
+<?php
+
+namespace Drupal\Tests\update\Unit;
+
+use Drupal\Tests\UnitTestCase;
+use Drupal\update\ModuleVersion;
+
+/**
+ * @coversDefaultClass \Drupal\update\ModuleVersion
+ *
+ * @group update
+ */
+class ModuleVersionTest extends UnitTestCase {
+
+  /**
+   * @covers ::getMajorVersion
+   *
+   * @dataProvider providerVersionInfos
+   *
+   * @param string $version
+   *   The version string to test.
+   * @param array $expected_version_info
+   *   The expected version information.
+   */
+  public function testGetMajorVersion($version, array $expected_version_info) {
+    $version = ModuleVersion::createFromVersionString($version);
+    $this->assertSame($expected_version_info['major'], $version->getMajorVersion());
+  }
+
+  /**
+   * @covers ::getVersionExtra
+   *
+   * @dataProvider providerVersionInfos
+   *
+   * @param string $version
+   *   The version string to test.
+   * @param array $expected_version_info
+   *   The expected version information.
+   */
+  public function testGetVersionExtra($version, array $expected_version_info) {
+    $version = ModuleVersion::createFromVersionString($version);
+    $this->assertSame($expected_version_info['extra'], $version->getVersionExtra());
+  }
+
+  /**
+   * Data provider for expected version information.
+   *
+   * @return array
+   *   Arrays of version information.
+   */
+  public function providerVersionInfos() {
+    // Data provider values are:
+    // - The version number to test.
+    // - Array of expected version information with the following keys:
+    //   -'major': The expected result from ::getMajorVersion().
+    //   -'extra': The expected result from ::getVersionExtra().
+    return [
+      '8.x-1.3' => [
+        '8.x-1.3',
+        [
+          'major' => '1',
+          'extra' => NULL,
+        ],
+      ],
+      '8.x-1.0' => [
+        '8.x-1.0',
+        [
+          'major' => '1',
+          'extra' => NULL,
+        ],
+      ],
+      '8.x-1.0-alpha1' => [
+        '8.x-1.0-alpha1',
+        [
+          'major' => '1',
+          'extra' => 'alpha1',
+        ],
+      ],
+      '8.x-1.3-alpha1' => [
+        '8.x-1.3-alpha1',
+        [
+          'major' => '1',
+          'extra' => 'alpha1',
+        ],
+      ],
+      '0.1' => [
+        '0.1',
+        [
+          'major' => '0',
+          'extra' => NULL,
+        ],
+      ],
+      '1.0' => [
+        '1.0',
+        [
+          'major' => '1',
+          'extra' => NULL,
+        ],
+      ],
+      '1.3' => [
+        '1.3',
+        [
+          'major' => '1',
+          'extra' => NULL,
+        ],
+      ],
+      '1.0-alpha1' => [
+        '1.0-alpha1',
+        [
+          'major' => '1',
+          'extra' => 'alpha1',
+        ],
+      ],
+      '1.3-alpha1' => [
+        '1.3-alpha1',
+        [
+          'major' => '1',
+          'extra' => 'alpha1',
+        ],
+      ],
+      '0.2.0' => [
+        '0.2.0',
+        [
+          'major' => '0',
+          'extra' => NULL,
+        ],
+      ],
+      '1.2.0' => [
+        '1.2.0',
+        [
+          'major' => '1',
+          'extra' => NULL,
+        ],
+      ],
+      '1.0.3' => [
+        '1.0.3',
+        [
+          'major' => '1',
+          'extra' => NULL,
+        ],
+      ],
+      '1.2.3' => [
+        '1.2.3',
+        [
+          'major' => '1',
+          'extra' => NULL,
+        ],
+      ],
+      '1.2.0-alpha1' => [
+        '1.2.0-alpha1',
+        [
+          'major' => '1',
+          'extra' => 'alpha1',
+        ],
+      ],
+      '1.2.3-alpha1' => [
+        '1.2.3-alpha1',
+        [
+          'major' => '1',
+          'extra' => 'alpha1',
+        ],
+      ],
+      '8.x-1.x-dev' => [
+        '8.x-1.x-dev',
+        [
+          'major' => '1',
+          'extra' => 'dev',
+        ],
+      ],
+      '8.x-8.x-dev' => [
+        '8.x-8.x-dev',
+        [
+          'major' => '8',
+          'extra' => 'dev',
+        ],
+      ],
+      '1.x-dev' => [
+        '1.x-dev',
+        [
+          'major' => '1',
+          'extra' => 'dev',
+        ],
+      ],
+      '8.x-dev' => [
+        '8.x-dev',
+        [
+          'major' => '8',
+          'extra' => 'dev',
+        ],
+      ],
+      '1.0.x-dev' => [
+        '1.0.x-dev',
+        [
+          'major' => '1',
+          'extra' => 'dev',
+        ],
+      ],
+      '1.2.x-dev' => [
+        '1.2.x-dev',
+        [
+          'major' => '1',
+          'extra' => 'dev',
+        ],
+      ],
+    ];
+  }
+
+  /**
+   * @covers ::createFromVersionString
+   *
+   * @dataProvider providerInvalidVersionNumber
+   *
+   * @param string $version
+   *   The version string to test.
+   */
+  public function testInvalidVersionNumber($version) {
+    $this->expectException(\UnexpectedValueException::class);
+    $this->expectExceptionMessage("Unexpected version number in: $version");
+    ModuleVersion::createFromVersionString($version);
+  }
+
+  /**
+   * Data provider for testInvalidVersionNumber().
+   */
+  public function providerInvalidVersionNumber() {
+    return static::createKeyedTestCases([
+      '',
+      '8',
+      'x',
+      'xx',
+      '8.x-',
+      '8.x',
+      '.x',
+      '.0',
+      '.1',
+      '.1.0',
+      '1.0.',
+      'x.1',
+      '1.x.0',
+      '1.1.x',
+      '1.1.x-extra',
+      'x.1.1',
+      '1.1.1.1',
+      '1.1.1.0',
+    ]);
+  }
+
+  /**
+   * @covers ::createFromVersionString
+   *
+   * @dataProvider providerInvalidVersionCorePrefix
+   *
+   * @param string $version
+   *   The version string to test.
+   */
+  public function testInvalidVersionCorePrefix($version) {
+    $this->expectException(\UnexpectedValueException::class);
+    $this->expectExceptionMessage("Unexpected version core prefix in $version. The only core prefix expected in \Drupal\update\ModuleVersion is: 8.x-");
+    ModuleVersion::createFromVersionString($version);
+  }
+
+  /**
+   * Data provider for testInvalidVersionCorePrefix().
+   */
+  public function providerInvalidVersionCorePrefix() {
+    return static::createKeyedTestCases([
+      '6.x-1.0',
+      '7.x-1.x',
+      '9.x-1.x',
+      '10.x-1.x',
+    ]);
+  }
+
+  /**
+   * @covers ::createFromSupportBranch
+   *
+   * @dataProvider providerInvalidBranchCorePrefix
+   *
+   * @param string $branch
+   *   The branch to test.
+   */
+  public function testInvalidBranchCorePrefix($branch) {
+    $this->expectException(\UnexpectedValueException::class);
+    $this->expectExceptionMessage("Unexpected version core prefix in {$branch}0. The only core prefix expected in \Drupal\update\ModuleVersion is: 8.x-");
+    ModuleVersion::createFromSupportBranch($branch);
+  }
+
+  /**
+   * Data provider for testInvalidBranchCorePrefix().
+   */
+  public function providerInvalidBranchCorePrefix() {
+    return static::createKeyedTestCases([
+      '6.x-1.',
+      '7.x-1.',
+      '9.x-1.',
+      '10.x-1.',
+    ]);
+  }
+
+  /**
+   * @covers ::createFromSupportBranch
+   *
+   * @dataProvider providerCreateFromSupportBranch
+   *
+   * @param string $branch
+   *   The branch to test.
+   * @param string $expected_major
+   *   The expected major version.
+   */
+  public function testCreateFromSupportBranch($branch, $expected_major) {
+    $version = ModuleVersion::createFromSupportBranch($branch);
+    $this->assertInstanceOf(ModuleVersion::class, $version);
+    $this->assertSame($expected_major, $version->getMajorVersion());
+    // Version extra can't be determined from a branch.
+    $this->assertSame(NULL, $version->getVersionExtra());
+  }
+
+  /**
+   * Data provider for testCreateFromSupportBranch().
+   */
+  public function providerCreateFromSupportBranch() {
+    // Data provider values are:
+    // - The version number to test.
+    // - Array of expected version information with the following keys:
+    //   -'major': The expected result from ::getMajorVersion().
+    //   -'extra': The expected result from ::getVersionExtra().
+    return [
+      '0.' => [
+        '0.',
+        '0',
+      ],
+      '1.' => [
+        '1.',
+        '1',
+      ],
+      '0.1.' => [
+        '0.1.',
+        '0',
+      ],
+      '1.2.' => [
+        '1.2.',
+        '1',
+      ],
+      '8.x-1.' => [
+        '8.x-1.',
+        '1',
+      ],
+    ];
+  }
+
+  /**
+   * @covers ::createFromSupportBranch
+   *
+   * @dataProvider provideInvalidBranch
+   *
+   * @param string $branch
+   *   The branch to test.
+   */
+  public function testInvalidBranch($branch) {
+    $this->expectException(\UnexpectedValueException::class);
+    $this->expectExceptionMessage("Invalid support branch: $branch");
+    ModuleVersion::createFromSupportBranch($branch);
+  }
+
+  /**
+   * Data provider for testInvalidBranch().
+   */
+  public function provideInvalidBranch() {
+    return self::createKeyedTestCases([
+      '8.x-1.0',
+      '8.x-2.x',
+      '2.x-1.0',
+      '1.1',
+      '1.x',
+      '1.1.x',
+      '1.1.1',
+      '1.1.1.1',
+    ]);
+  }
+
+  /**
+   * Creates test case arrays for data provider methods.
+   *
+   * @param string[] $test_arguments
+   *   The test arguments.
+   *
+   * @return array
+   *   An array with $test_arguments as keys and each element of $test_arguments
+   *   as a single item array
+   */
+  protected static function createKeyedTestCases(array $test_arguments) {
+    return array_combine(
+      $test_arguments,
+      array_map(function ($test_argument) {
+        return [$test_argument];
+      }, $test_arguments)
+    );
+  }
+
+}
diff --git a/web/core/modules/update/tests/src/Unit/ProjectCoreCompatibilityTest.php b/web/core/modules/update/tests/src/Unit/ProjectCoreCompatibilityTest.php
new file mode 100644
index 0000000000..b1d2815632
--- /dev/null
+++ b/web/core/modules/update/tests/src/Unit/ProjectCoreCompatibilityTest.php
@@ -0,0 +1,143 @@
+<?php
+
+namespace Drupal\Tests\update\Unit;
+
+use Drupal\Tests\UnitTestCase;
+use Drupal\update\ProjectCoreCompatibility;
+
+/**
+ * @coversDefaultClass \Drupal\update\ProjectCoreCompatibility
+ *
+ * @group update
+ */
+class ProjectCoreCompatibilityTest extends UnitTestCase {
+
+  /**
+   * @covers ::setReleaseMessage
+   * @dataProvider providerSetProjectCoreCompatibilityRanges
+   */
+  public function testSetProjectCoreCompatibilityRanges(array $project_data, $core_data, array $core_releases, array $expected_releases, array $expected_security_updates) {
+    $project_compatibility = new ProjectCoreCompatibility($core_data, $core_releases);
+    $project_compatibility->setStringTranslation($this->getStringTranslationStub());
+    $project_compatibility->setReleaseMessage($project_data);
+    $this->assertSame($expected_releases, $project_data['releases']);
+    $this->assertSame($expected_security_updates, $project_data['security updates']);
+  }
+
+  /**
+   * Data provider for testSetProjectCoreCompatibilityRanges().
+   */
+  public function providerSetProjectCoreCompatibilityRanges() {
+    $test_cases['no 9 releases'] = [
+      'project_data' => [
+        'recommended' => '1.0.1',
+        'latest_version' => '1.2.3',
+        'also' => [
+          '1.2.4',
+          '1.2.5',
+          '1.2.6',
+        ],
+        'releases' => [
+          '1.0.1' => [
+            'core_compatibility' => '8.x',
+          ],
+          '1.2.3' => [
+            'core_compatibility' => '^8.9 || ^9',
+          ],
+          '1.2.4' => [
+            'core_compatibility' => '^8.9.2 || ^9',
+          ],
+          '1.2.6' => [],
+        ],
+        'security updates' => [
+          '1.2.5' => [
+            'core_compatibility' => '8.9.0 || 8.9.2 || ^9.0.1',
+          ],
+        ],
+      ],
+      'core_data' => [
+        'existing_version' => '8.8.0',
+      ],
+      'core_releases' => [
+        '8.8.0-alpha1' => [],
+        '8.8.0-beta1' => [],
+        '8.8.0-rc1' => [],
+        '8.8.0' => [],
+        '8.8.1' => [],
+        '8.8.2' => [],
+        '8.9.0' => [],
+        '8.9.1' => [],
+        '8.9.2' => [],
+      ],
+      'expected_releases' => [
+        '1.0.1' => [
+          'core_compatibility' => '8.x',
+          'core_compatible' => TRUE,
+          'core_compatibility_message' => 'Requires Drupal core: 8.8.0 to 8.9.2',
+        ],
+        '1.2.3' => [
+          'core_compatibility' => '^8.9 || ^9',
+          'core_compatible' => FALSE,
+          'core_compatibility_message' => 'Requires Drupal core: 8.9.0 to 8.9.2',
+        ],
+        '1.2.4' => [
+          'core_compatibility' => '^8.9.2 || ^9',
+          'core_compatible' => FALSE,
+          'core_compatibility_message' => 'Requires Drupal core: 8.9.2',
+        ],
+        '1.2.6' => [],
+      ],
+      'expected_security_updates' => [
+        '1.2.5' => [
+          'core_compatibility' => '8.9.0 || 8.9.2 || ^9.0.1',
+          'core_compatible' => FALSE,
+          'core_compatibility_message' => 'Requires Drupal core: 8.9.0, 8.9.2',
+        ],
+      ],
+    ];
+    // Ensure that when only Drupal 9 pre-releases none of the expected ranges
+    // change.
+    $test_cases['with 9 pre releases'] = $test_cases['no 9 releases'];
+    $test_cases['with 9 pre releases']['core_releases'] += [
+      '9.0.0-alpha1' => [],
+      '9.0.0-beta1' => [],
+      '9.0.0-rc1' => [],
+    ];
+    // Ensure that when the Drupal 9 full release are added the expected ranges
+    // do change.
+    $test_cases['with 9 full releases'] = $test_cases['with 9 pre releases'];
+    $test_cases['with 9 full releases']['core_releases'] += [
+      '9.0.0' => [],
+      '9.0.1' => [],
+      '9.0.2' => [],
+    ];
+    $test_cases['with 9 full releases']['expected_releases'] = [
+      '1.0.1' => [
+        'core_compatibility' => '8.x',
+        'core_compatible' => TRUE,
+        'core_compatibility_message' => 'Requires Drupal core: 8.8.0 to 8.9.2',
+      ],
+      '1.2.3' => [
+        'core_compatibility' => '^8.9 || ^9',
+        'core_compatible' => FALSE,
+        'core_compatibility_message' => 'Requires Drupal core: 8.9.0 to 9.0.2',
+      ],
+      '1.2.4' => [
+        'core_compatibility' => '^8.9.2 || ^9',
+        'core_compatible' => FALSE,
+        'core_compatibility_message' => 'Requires Drupal core: 8.9.2 to 9.0.2',
+      ],
+      '1.2.6' => [],
+    ];
+    $test_cases['with 9 full releases']['expected_security_updates'] = [
+      '1.2.5' => [
+        'core_compatibility' => '8.9.0 || 8.9.2 || ^9.0.1',
+        'core_compatible' => FALSE,
+        'core_compatibility_message' => 'Requires Drupal core: 8.9.0, 8.9.2, 9.0.1 to 9.0.2',
+      ],
+    ];
+    return $test_cases;
+  }
+
+}
+
diff --git a/web/core/modules/update/tests/src/Unit/UpdateFetcherTest.php b/web/core/modules/update/tests/src/Unit/UpdateFetcherTest.php
index 1d01d0f5fe..9ac53a3491 100644
--- a/web/core/modules/update/tests/src/Unit/UpdateFetcherTest.php
+++ b/web/core/modules/update/tests/src/Unit/UpdateFetcherTest.php
@@ -5,10 +5,6 @@
 use Drupal\Tests\UnitTestCase;
 use Drupal\update\UpdateFetcher;
 
-if (!defined('DRUPAL_CORE_COMPATIBILITY')) {
-  define('DRUPAL_CORE_COMPATIBILITY', '8.x');
-}
-
 /**
  * Tests update functionality unrelated to the database.
  *
@@ -71,20 +67,20 @@ public function providerTestUpdateBuildFetchUrl() {
     $project['info']['project status url'] = 'http://www.example.com';
     $project['includes'] = ['module1' => 'Module 1', 'module2' => 'Module 2'];
     $site_key = '';
-    $expected = 'http://www.example.com/' . $project['name'] . '/' . DRUPAL_CORE_COMPATIBILITY;
+    $expected = "http://www.example.com/{$project['name']}/current";
 
     $data[] = [$project, $site_key, $expected];
 
     // For disabled projects it shouldn't add the site key either.
     $site_key = 'site_key';
     $project['project_type'] = 'disabled';
-    $expected = 'http://www.example.com/' . $project['name'] . '/' . DRUPAL_CORE_COMPATIBILITY;
+    $expected = "http://www.example.com/{$project['name']}/current";
 
     $data[] = [$project, $site_key, $expected];
 
     // For enabled projects, test adding the site key.
     $project['project_type'] = '';
-    $expected = 'http://www.example.com/' . $project['name'] . '/' . DRUPAL_CORE_COMPATIBILITY;
+    $expected = "http://www.example.com/{$project['name']}/current";
     $expected .= '?site_key=site_key';
     $expected .= '&list=' . rawurlencode('module1,module2');
 
@@ -92,7 +88,7 @@ public function providerTestUpdateBuildFetchUrl() {
 
     // Test when the URL contains a question mark.
     $project['info']['project status url'] = 'http://www.example.com/?project=';
-    $expected = 'http://www.example.com/?project=/' . $project['name'] . '/' . DRUPAL_CORE_COMPATIBILITY;
+    $expected = "http://www.example.com/?project=/{$project['name']}/current";
     $expected .= '&site_key=site_key';
     $expected .= '&list=' . rawurlencode('module1,module2');
 
diff --git a/web/core/modules/update/update.compare.inc b/web/core/modules/update/update.compare.inc
index 5ffc6b407a..f762faaa7c 100644
--- a/web/core/modules/update/update.compare.inc
+++ b/web/core/modules/update/update.compare.inc
@@ -5,6 +5,9 @@
  * Code required only when comparing available updates to existing data.
  */
 
+use Drupal\update\ModuleVersion;
+use Drupal\update\ProjectCoreCompatibility;
+
 /**
  * Determines version and type information for currently installed projects.
  *
@@ -79,6 +82,7 @@ function update_process_project_info(&$projects) {
  * @see \Drupal\update\UpdateManager::getProjects()
  * @see update_process_project_info()
  * @see \Drupal\update\UpdateManagerInterface::projectStorage()
+ * @see \Drupal\update\ProjectCoreCompatibility::setReleaseMessage()
  */
 function update_calculate_project_data($available) {
   // Retrieve the projects from storage, if present.
@@ -90,9 +94,32 @@ function update_calculate_project_data($available) {
   }
   $projects = \Drupal::service('update.manager')->getProjects();
   update_process_project_info($projects);
+  if (isset($projects['drupal']) && !empty($available['drupal'])) {
+    // Calculate core status first so that it is complete before
+    // \Drupal\update\ProjectCoreCompatibility::setReleaseMessage() is called
+    // for each module below.
+    update_calculate_project_update_status($projects['drupal'], $available['drupal']);
+    if (isset($available['drupal']['releases'])) {
+      $project_core_compatibility = new ProjectCoreCompatibility($projects['drupal'], $available['drupal']['releases']);
+    }
+  }
+
   foreach ($projects as $project => $project_info) {
     if (isset($available[$project])) {
+      if ($project === 'drupal') {
+        continue;
+      }
       update_calculate_project_update_status($projects[$project], $available[$project]);
+      // Inject the list of compatible core versions to show administrator(s)
+      // which versions of core a given available update can be installed with.
+      // Since individual releases of a project can be compatible with different
+      // versions of core, and even multiple major versions of core (for
+      // example, 8.9.x and 9.0.x), this list will hopefully help
+      // administrator(s) know which available updates they can upgrade a given
+      // project to.
+      if (isset($project_core_compatibility)) {
+        $project_core_compatibility->setReleaseMessage($projects[$project]);
+      }
     }
     else {
       $projects[$project]['status'] = UPDATE_UNKNOWN;
@@ -119,12 +146,14 @@ function update_calculate_project_data($available) {
  * with an error and the next project is considered.
  *
  * If the project itself is valid, the function decides what major release
- * series to consider. The project defines what the currently supported major
- * versions are for each version of core, so the first step is to make sure the
- * current version is still supported. If so, that's the target version. If the
- * current version is unsupported, the project maintainer's recommended major
- * version is used. There's also a check to make sure that this function never
- * recommends an earlier release than the currently installed major version.
+ * series to consider. The project defines its currently supported branches in
+ * its Drupal.org for the project, so the first step is to make sure the
+ * development branch of the current version is still supported. If so, then the
+ * major version of the current version is used. If the current version is not
+ * in a supported branch, the next supported branch is used to determine the
+ * major version to use. There's also a check to make sure that this function
+ * never recommends an earlier release than the currently installed major
+ * version.
  *
  * Given a target major version, the available releases are scanned looking for
  * the specific release to recommend (avoiding beta releases and development
@@ -232,35 +261,51 @@ function update_calculate_project_update_status(&$project_data, $available) {
   }
 
   // Figure out the target major version.
-  $existing_major = $project_data['existing_major'];
-  $supported_majors = [];
-  if (isset($available['supported_majors'])) {
-    $supported_majors = explode(',', $available['supported_majors']);
+  try {
+    $existing_major = ModuleVersion::createFromVersionString($project_data['existing_version'])->getMajorVersion();
+  }
+  catch (UnexpectedValueException $exception) {
+    // If the version has an unexpected value we can't determine updates.
+    return;
   }
-  elseif (isset($available['default_major'])) {
-    // Older release history XML file without supported or recommended.
-    $supported_majors[] = $available['default_major'];
+  $supported_branches = [];
+  if (isset($available['supported_branches'])) {
+    $supported_branches = explode(',', $available['supported_branches']);
   }
 
-  if (in_array($existing_major, $supported_majors)) {
+  $is_in_supported_branch = function ($version) use ($supported_branches) {
+    foreach ($supported_branches as $supported_branch) {
+      if (strpos($version, $supported_branch) === 0) {
+        return TRUE;
+      }
+    }
+    return FALSE;
+  };
+  if ($is_in_supported_branch($project_data['existing_version'])) {
     // Still supported, stay at the current major version.
     $target_major = $existing_major;
   }
-  elseif (isset($available['recommended_major'])) {
-    // Since 'recommended_major' is defined, we know this is the new XML
-    // format. Therefore, we know the current release is unsupported since
-    // its major version was not in the 'supported_majors' list. We should
-    // find the best release from the recommended major version.
-    $target_major = $available['recommended_major'];
+  elseif ($supported_branches) {
+    // We know the current release is unsupported since it is not in
+    // 'supported_branches' list. We should use the next valid supported
+    // branch for the target major version.
     $project_data['status'] = UPDATE_NOT_SUPPORTED;
-  }
-  elseif (isset($available['default_major'])) {
-    // Older release history XML file without recommended, so recommend
-    // the currently defined "default_major" version.
-    $target_major = $available['default_major'];
+    foreach ($supported_branches as $supported_branch) {
+      try {
+        $target_major = ModuleVersion::createFromSupportBranch($supported_branch)->getMajorVersion();
+
+      }
+      catch (UnexpectedValueException $exception) {
+        continue;
+      }
+    }
+    if (!isset($target_major)) {
+      // If there are no valid support branches, use the current major.
+      $target_major = $existing_major;
+    }
   }
   else {
-    // Malformed XML file? Stick with the current version.
+    // Malformed XML file? Stick with the current branch.
     $target_major = $existing_major;
   }
 
@@ -273,9 +318,6 @@ function update_calculate_project_update_status(&$project_data, $available) {
   // what they have is unsupported and let them figure it out.
   $target_major = max($existing_major, $target_major);
 
-  $release_patch_changed = '';
-  $patch = '';
-
   // If the project is marked as UPDATE_FETCH_PENDING, it means that the
   // data we currently have (if any) is stale, and we've got a task queued
   // up to (re)fetch the data. In that case, we mark it as such, merge in
@@ -293,7 +335,17 @@ function update_calculate_project_update_status(&$project_data, $available) {
     $project_data['reason'] = t('No available releases found');
     return;
   }
+
+  $recommended_version_without_extra = '';
+  $recommended_release = NULL;
+
   foreach ($available['releases'] as $version => $release) {
+    try {
+      $release_module_version = ModuleVersion::createFromVersionString($release['version']);
+    }
+    catch (UnexpectedValueException $exception) {
+      continue;
+    }
     // First, if this is the existing release, check a few conditions.
     if ($project_data['existing_version'] === $version) {
       if (isset($release['terms']['Release type']) &&
@@ -327,26 +379,23 @@ function update_calculate_project_update_status(&$project_data, $available) {
 
     // Otherwise, ignore unpublished, insecure, or unsupported releases.
     if ($release['status'] == 'unpublished' ||
+        !$is_in_supported_branch($release['version']) ||
         (isset($release['terms']['Release type']) &&
          (in_array('Insecure', $release['terms']['Release type']) ||
           in_array('Unsupported', $release['terms']['Release type'])))) {
       continue;
     }
 
+    $release_major_version = $release_module_version->getMajorVersion();
     // See if this is a higher major version than our target and yet still
     // supported. If so, record it as an "Also available" release.
-    // Note: Some projects have a HEAD release from CVS days, which could
-    // be one of those being compared. They would not have version_major
-    // set, so we must call isset first.
-    if (isset($release['version_major']) && $release['version_major'] > $target_major) {
-      if (in_array($release['version_major'], $supported_majors)) {
-        if (!isset($project_data['also'])) {
-          $project_data['also'] = [];
-        }
-        if (!isset($project_data['also'][$release['version_major']])) {
-          $project_data['also'][$release['version_major']] = $version;
-          $project_data['releases'][$version] = $release;
-        }
+    if ($release_major_version > $target_major) {
+      if (!isset($project_data['also'])) {
+        $project_data['also'] = [];
+      }
+      if (!isset($project_data['also'][$release_major_version])) {
+        $project_data['also'][$release_major_version] = $version;
+        $project_data['releases'][$version] = $release;
       }
       // Otherwise, this release can't matter to us, since it's neither
       // from the release series we're currently using nor the recommended
@@ -361,32 +410,37 @@ function update_calculate_project_update_status(&$project_data, $available) {
     // Look for the 'latest version' if we haven't found it yet. Latest is
     // defined as the most recent version for the target major version.
     if (!isset($project_data['latest_version'])
-        && $release['version_major'] == $target_major) {
+        && $release_major_version == $target_major) {
       $project_data['latest_version'] = $version;
       $project_data['releases'][$version] = $release;
     }
 
     // Look for the development snapshot release for this branch.
     if (!isset($project_data['dev_version'])
-        && $release['version_major'] == $target_major
-        && isset($release['version_extra'])
-        && $release['version_extra'] == 'dev') {
+        && $release_major_version == $target_major
+        && $release_module_version->getVersionExtra() === 'dev') {
       $project_data['dev_version'] = $version;
       $project_data['releases'][$version] = $release;
     }
 
+    if ($release_module_version->getVersionExtra()) {
+      $release_version_without_extra = str_replace('-' . $release_module_version->getVersionExtra(), '', $release['version']);
+    }
+    else {
+      $release_version_without_extra = $release['version'];
+    }
+
     // Look for the 'recommended' version if we haven't found it yet (see
     // phpdoc at the top of this function for the definition).
     if (!isset($project_data['recommended'])
-        && $release['version_major'] == $target_major
-        && isset($release['version_patch'])) {
-      if ($patch != $release['version_patch']) {
-        $patch = $release['version_patch'];
-        $release_patch_changed = $release;
+        && $release_major_version == $target_major) {
+      if ($recommended_version_without_extra !== $release_version_without_extra) {
+        $recommended_version_without_extra = $release_version_without_extra;
+        $recommended_release = $release;
       }
-      if (empty($release['version_extra']) && $patch == $release['version_patch']) {
-        $project_data['recommended'] = $release_patch_changed['version'];
-        $project_data['releases'][$release_patch_changed['version']] = $release_patch_changed;
+      if ($release_module_version->getVersionExtra() === NULL) {
+        $project_data['recommended'] = $recommended_release['version'];
+        $project_data['releases'][$recommended_release['version']] = $recommended_release;
       }
     }
 
diff --git a/web/core/modules/update/update.install b/web/core/modules/update/update.install
index 4e1af0315c..d977830df5 100644
--- a/web/core/modules/update/update.install
+++ b/web/core/modules/update/update.install
@@ -7,6 +7,8 @@
 
 use Drupal\Core\Link;
 use Drupal\Core\Url;
+use Drupal\update\ProjectSecurityData;
+use Drupal\update\ProjectSecurityRequirement;
 
 /**
  * Implements hook_requirements().
@@ -36,6 +38,13 @@ function update_requirements($phase) {
       $data = update_calculate_project_data($available);
       // First, populate the requirements for core:
       $requirements['update_core'] = _update_requirement_check($data['drupal'], 'core');
+      if (!empty($available['drupal']['releases'])) {
+        $security_data = ProjectSecurityData::createFromProjectDataAndReleases($data['drupal'], $available['drupal']['releases'])->getCoverageInfo();
+        if ($core_coverage_requirement = ProjectSecurityRequirement::createFromProjectDataAndSecurityCoverageInfo($data['drupal'], $security_data)->getRequirement()) {
+          $requirements['coverage_core'] = $core_coverage_requirement;
+        }
+      }
+
       // We don't want to check drupal a second time.
       unset($data['drupal']);
       if (!empty($data)) {
diff --git a/web/core/modules/update/update.report.inc b/web/core/modules/update/update.report.inc
index 035b46e930..8d9fef0c55 100644
--- a/web/core/modules/update/update.report.inc
+++ b/web/core/modules/update/update.report.inc
@@ -99,6 +99,36 @@ function template_preprocess_update_report(&$variables) {
   }
 }
 
+/**
+ * Prepares variables for update version templates.
+ *
+ * Default template: update-version.html.twig.
+ *
+ * @param array $variables
+ *   An associative array containing:
+ *   - version: An array of information about the release version.
+ */
+function template_preprocess_update_version(array &$variables) {
+  $version = $variables['version'];
+  if (empty($version['core_compatibility_message'])) {
+    return;
+  }
+  $core_compatible = !empty($version['core_compatible']);
+  $variables['core_compatibility_details'] = [
+    '#type' => 'details',
+    '#title' => $core_compatible ? t('Compatible') : t('Not compatible'),
+    '#open' => !$core_compatible,
+    'message' => [
+      '#markup' => $version['core_compatibility_message'],
+    ],
+    '#attributes' => [
+      'class' => [
+        $core_compatible ? 'compatible' : 'not-compatible',
+      ],
+    ],
+  ];
+}
+
 /**
  * Prepares variables for update project status templates.
  *
diff --git a/web/core/modules/user/src/RoleInterface.php b/web/core/modules/user/src/RoleInterface.php
index 4633637958..3c9425f644 100644
--- a/web/core/modules/user/src/RoleInterface.php
+++ b/web/core/modules/user/src/RoleInterface.php
@@ -13,12 +13,12 @@
 interface RoleInterface extends ConfigEntityInterface {
 
   /**
-   * Role ID for anonymous users; should match what's in the "role" table.
+   * Role ID for anonymous users; should match the 'role' entity ID.
    */
   const ANONYMOUS_ID = AccountInterface::ANONYMOUS_ROLE;
 
   /**
-   * Role ID for authenticated users; should match what's in the "role" table.
+   * Role ID for authenticated users; should match the 'role' entity ID.
    */
   const AUTHENTICATED_ID = AccountInterface::AUTHENTICATED_ROLE;
 
diff --git a/web/core/modules/user/tests/src/Functional/UserBlocksTest.php b/web/core/modules/user/tests/src/Functional/UserBlocksTest.php
index 0f9b82b8fb..32d9197ac7 100644
--- a/web/core/modules/user/tests/src/Functional/UserBlocksTest.php
+++ b/web/core/modules/user/tests/src/Functional/UserBlocksTest.php
@@ -3,7 +3,6 @@
 namespace Drupal\Tests\user\Functional;
 
 use Drupal\Core\Url;
-use Drupal\Core\Database\Database;
 use Drupal\dynamic_page_cache\EventSubscriber\DynamicPageCacheSubscriber;
 use Drupal\Tests\BrowserTestBase;
 
@@ -128,14 +127,4 @@ public function testUserLoginBlock() {
     $this->assertNoText(t('Unrecognized username or password. Forgot your password?'));
   }
 
-  /**
-   * Updates the access column for a user.
-   */
-  private function updateAccess($uid, $access = REQUEST_TIME) {
-    Database::getConnection()->update('users_field_data')
-      ->condition('uid', $uid)
-      ->fields(['access' => $access])
-      ->execute();
-  }
-
 }
diff --git a/web/core/modules/views/src/Plugin/views/display/PathPluginBase.php b/web/core/modules/views/src/Plugin/views/display/PathPluginBase.php
index e29d8e932b..b73a42519a 100644
--- a/web/core/modules/views/src/Plugin/views/display/PathPluginBase.php
+++ b/web/core/modules/views/src/Plugin/views/display/PathPluginBase.php
@@ -101,7 +101,7 @@ public function getPath() {
   protected function isDefaultTabPath() {
     $menu = $this->getOption('menu');
     $tab_options = $this->getOption('tab_options');
-    return $menu['type'] == 'default tab' && !empty($tab_options['type']) && $tab_options['type'] != 'none';
+    return $menu && $menu['type'] == 'default tab' && !empty($tab_options['type']) && $tab_options['type'] != 'none';
   }
 
   /**
diff --git a/web/core/modules/views/src/Plugin/views/exposed_form/ExposedFormPluginBase.php b/web/core/modules/views/src/Plugin/views/exposed_form/ExposedFormPluginBase.php
index 0febca884e..092e42edd7 100644
--- a/web/core/modules/views/src/Plugin/views/exposed_form/ExposedFormPluginBase.php
+++ b/web/core/modules/views/src/Plugin/views/exposed_form/ExposedFormPluginBase.php
@@ -365,9 +365,9 @@ public function getCacheContexts() {
 
     // Merge in cache contexts for all exposed filters to prevent display of
     // cached forms.
-    foreach ($this->displayHandler->getHandlers('filter') as $filter_hander) {
-      if ($filter_hander->isExposed()) {
-        $contexts = Cache::mergeContexts($contexts, $filter_hander->getCacheContexts());
+    foreach ($this->displayHandler->getHandlers('filter') as $filter_handler) {
+      if ($filter_handler->isExposed()) {
+        $contexts = Cache::mergeContexts($contexts, $filter_handler->getCacheContexts());
       }
     }
 
diff --git a/web/core/modules/views/templates/views-view-opml.html.twig b/web/core/modules/views/templates/views-view-opml.html.twig
index 0564bf6ef0..2fffac59f1 100644
--- a/web/core/modules/views/templates/views-view-opml.html.twig
+++ b/web/core/modules/views/templates/views-view-opml.html.twig
@@ -13,7 +13,7 @@
  * @ingroup themeable
  */
 #}
-<?xml version="1.0" encoding="utf-8" ?>
+<?xml version="1.0" encoding="utf-8"?>
 <opml version="2.0">
   <head>
     <title>{{ title }}</title>
diff --git a/web/core/modules/views/templates/views-view-rss.html.twig b/web/core/modules/views/templates/views-view-rss.html.twig
index 19b5097a04..cd80f8106e 100644
--- a/web/core/modules/views/templates/views-view-rss.html.twig
+++ b/web/core/modules/views/templates/views-view-rss.html.twig
@@ -17,7 +17,7 @@
  * @ingroup themeable
  */
 #}
-<?xml version="1.0" encoding="utf-8" ?>
+<?xml version="1.0" encoding="utf-8"?>
 <rss version="2.0" xml:base="{{ link }}"{{ namespaces }}>
   <channel>
     <title>{{ title }}</title>
diff --git a/web/core/modules/views/tests/src/Functional/Handler/HandlerAllTest.php b/web/core/modules/views/tests/src/Functional/Handler/HandlerAllTest.php
index e948273ec0..2f82ca599d 100644
--- a/web/core/modules/views/tests/src/Functional/Handler/HandlerAllTest.php
+++ b/web/core/modules/views/tests/src/Functional/Handler/HandlerAllTest.php
@@ -5,6 +5,7 @@
 use Drupal\Component\Render\FormattableMarkup;
 use Drupal\comment\Tests\CommentTestTrait;
 use Drupal\Tests\views\Functional\ViewTestBase;
+use Drupal\views\Plugin\views\filter\NumericFilter;
 use Drupal\views\ViewExecutable;
 use Drupal\views\Plugin\views\HandlerBase;
 use Drupal\views\Plugin\views\filter\InOperator;
@@ -86,6 +87,9 @@ public function testHandlers() {
                 if ($handler instanceof InOperator) {
                   $options['value'] = [1];
                 }
+                elseif ($handler instanceof NumericFilter) {
+                  $options['value'] = ['value' => 1];
+                }
                 else {
                   $options['value'] = 1;
                 }
diff --git a/web/core/modules/views/tests/src/Functional/Wizard/BasicTest.php b/web/core/modules/views/tests/src/Functional/Wizard/BasicTest.php
index 79cf695fed..cd0b4d7ca7 100644
--- a/web/core/modules/views/tests/src/Functional/Wizard/BasicTest.php
+++ b/web/core/modules/views/tests/src/Functional/Wizard/BasicTest.php
@@ -176,6 +176,20 @@ public function testViewsWizardAndListing() {
     $this->assertEqual(count($data), 1, 'Only the node of type page is exported.');
     $node = reset($data);
     $this->assertEqual($node['nid'][0]['value'], $node1->id(), 'The node of type page is exported.');
+
+    // Create a view with a leading slash in the path and test that is properly
+    // set.
+    $leading_slash_view = [];
+    $leading_slash_view['label'] = $this->randomMachineName(16);
+    $leading_slash_view['id'] = strtolower($this->randomMachineName(16));
+    $leading_slash_view['description'] = $this->randomMachineName(16);
+    $leading_slash_view['show[wizard_key]'] = 'node';
+    $leading_slash_view['show[type]'] = 'page';
+    $leading_slash_view['page[create]'] = 1;
+    $leading_slash_view['page[title]'] = $this->randomMachineName(16);
+    $leading_slash_view['page[path]'] = '/' . $this->randomMachineName(16);
+    $this->drupalPostForm('admin/structure/views/add', $leading_slash_view, t('Save and edit'));
+    $this->assertEquals($leading_slash_view['page[path]'], $this->cssSelect('#views-page-1-path')[0]->getText());
   }
 
   /**
diff --git a/web/core/modules/views/tests/src/Kernel/Plugin/FieldOrLanguageJoinTest.php b/web/core/modules/views/tests/src/Kernel/Plugin/FieldOrLanguageJoinTest.php
index 34e4f93000..76be7154df 100644
--- a/web/core/modules/views/tests/src/Kernel/Plugin/FieldOrLanguageJoinTest.php
+++ b/web/core/modules/views/tests/src/Kernel/Plugin/FieldOrLanguageJoinTest.php
@@ -137,7 +137,7 @@ public function testLanguageBundleConditions() {
     // condition.
     $configuration = [
       'table' => 'node__field_tags',
-      'left_table' => 'node',
+      'left_table' => 'views_test_data',
       'left_field' => 'nid',
       'field' => 'entity_id',
       'extra' => [
@@ -148,7 +148,7 @@ public function testLanguageBundleConditions() {
       ],
     ];
     $join_info = $this->buildJoin($view, $configuration, 'node__field_tags');
-    $this->assertContains('AND (node__field_tags.langcode = .langcode)', $join_info['condition']);
+    $this->assertContains('AND (node__field_tags.langcode = views_test_data.langcode)', $join_info['condition']);
 
     array_unshift($configuration['extra'], [
       'field' => 'deleted',
@@ -156,7 +156,7 @@ public function testLanguageBundleConditions() {
       'numeric' => TRUE,
     ]);
     $join_info = $this->buildJoin($view, $configuration, 'node__field_tags');
-    $this->assertContains('AND (node__field_tags.langcode = .langcode)', $join_info['condition']);
+    $this->assertContains('AND (node__field_tags.langcode = views_test_data.langcode)', $join_info['condition']);
 
     // Replace the language condition with a bundle condition.
     $configuration['extra'][1] = [
@@ -173,7 +173,7 @@ public function testLanguageBundleConditions() {
       'field' => 'langcode',
     ];
     $join_info = $this->buildJoin($view, $configuration, 'node__field_tags');
-    $this->assertContains('AND (node__field_tags.bundle = :views_join_condition_1 OR node__field_tags.langcode = .langcode)', $join_info['condition']);
+    $this->assertContains('AND (node__field_tags.bundle = :views_join_condition_1 OR node__field_tags.langcode = views_test_data.langcode)', $join_info['condition']);
   }
 
   /**
diff --git a/web/core/modules/views/tests/src/Kernel/ViewsConfigDependenciesIntegrationTest.php b/web/core/modules/views/tests/src/Kernel/ViewsConfigDependenciesIntegrationTest.php
index 5d6b078ead..0b75a7fdc2 100644
--- a/web/core/modules/views/tests/src/Kernel/ViewsConfigDependenciesIntegrationTest.php
+++ b/web/core/modules/views/tests/src/Kernel/ViewsConfigDependenciesIntegrationTest.php
@@ -148,7 +148,7 @@ public function testConfigRemovalBaseTable() {
     foreach ($entities as $entity_type_id => $definition) {
       if ($definition->getProvider() == 'entity_test') {
         $this->installEntitySchema($entity_type_id);
-      };
+      }
     }
 
     // Check that removing the module that provides the base table for a View,
diff --git a/web/core/modules/views/tests/src/Unit/Plugin/field/FieldPluginBaseTest.php b/web/core/modules/views/tests/src/Unit/Plugin/field/FieldPluginBaseTest.php
index 623436e6ba..b0b6850deb 100644
--- a/web/core/modules/views/tests/src/Unit/Plugin/field/FieldPluginBaseTest.php
+++ b/web/core/modules/views/tests/src/Unit/Plugin/field/FieldPluginBaseTest.php
@@ -136,6 +136,9 @@ protected function setUp() {
     $this->executable = $this->getMockBuilder('Drupal\views\ViewExecutable')
       ->disableOriginalConstructor()
       ->getMock();
+    $this->executable->style_plugin = $this->getMockBuilder('Drupal\views\Plugin\views\style\StylePluginBase')
+      ->disableOriginalConstructor()
+      ->getMock();
     $this->display = $this->getMockBuilder('Drupal\views\Plugin\views\display\DisplayPluginBase')
       ->disableOriginalConstructor()
       ->getMock();
diff --git a/web/core/modules/views_ui/src/ViewAddForm.php b/web/core/modules/views_ui/src/ViewAddForm.php
index cfdd4e206e..37b0136e55 100644
--- a/web/core/modules/views_ui/src/ViewAddForm.php
+++ b/web/core/modules/views_ui/src/ViewAddForm.php
@@ -164,6 +164,13 @@ public function validateForm(array &$form, FormStateInterface $form_state) {
     $wizard_instance = $this->wizardManager->createInstance($wizard_type);
     $form_state->set('wizard', $wizard_instance->getPluginDefinition());
     $form_state->set('wizard_instance', $wizard_instance);
+
+    $path = &$form_state->getValue(['page', 'path']);
+    if (!empty($path)) {
+      // @todo https://www.drupal.org/node/2423913 Views should expect and store
+      //   a leading /.
+      $path = ltrim($path, '/ ');
+    }
     $errors = $wizard_instance->validateView($form, $form_state);
 
     foreach ($errors as $display_errors) {
diff --git a/web/core/modules/workspaces/src/EntityOperations.php b/web/core/modules/workspaces/src/EntityOperations.php
index b8894643c7..a30f617840 100644
--- a/web/core/modules/workspaces/src/EntityOperations.php
+++ b/web/core/modules/workspaces/src/EntityOperations.php
@@ -280,7 +280,7 @@ public function entityFormAlter(array &$form, FormStateInterface $form_state, $f
         $form['#access'] = FALSE;
         continue;
       }
-    };
+    }
   }
 
   /**
diff --git a/web/core/modules/workspaces/src/EntityTypeInfo.php b/web/core/modules/workspaces/src/EntityTypeInfo.php
index 4f0ba1a7d4..963da21868 100644
--- a/web/core/modules/workspaces/src/EntityTypeInfo.php
+++ b/web/core/modules/workspaces/src/EntityTypeInfo.php
@@ -69,10 +69,7 @@ public function entityTypeBuild(array &$entity_types) {
     foreach ($entity_types as $entity_type) {
       if ($this->workspaceManager->isEntityTypeSupported($entity_type)) {
         $entity_type->addConstraint('EntityWorkspaceConflict');
-
-        $revision_metadata_keys = $entity_type->get('revision_metadata_keys');
-        $revision_metadata_keys['workspace'] = 'workspace';
-        $entity_type->set('revision_metadata_keys', $revision_metadata_keys);
+        $entity_type->setRevisionMetadataKey('workspace', 'workspace');
       }
     }
   }
@@ -127,7 +124,9 @@ public function fieldInfoAlter(&$definitions) {
    */
   public function entityBaseFieldInfo(EntityTypeInterface $entity_type) {
     if ($this->workspaceManager->isEntityTypeSupported($entity_type)) {
-      $field_name = $entity_type->getRevisionMetadataKey('workspace');
+      // Disable the BC layer to prevent a recursion, this only needs the
+      // workspace key that is always set.
+      $field_name = $entity_type->getRevisionMetadataKeys(FALSE)['workspace'];
       $fields[$field_name] = BaseFieldDefinition::create('entity_reference')
         ->setLabel(new TranslatableMarkup('Workspace'))
         ->setDescription(new TranslatableMarkup('Indicates the workspace that this revision belongs to.'))
diff --git a/web/core/modules/workspaces/src/EventSubscriber/EntitySchemaSubscriber.php b/web/core/modules/workspaces/src/EventSubscriber/EntitySchemaSubscriber.php
index c38495f37c..6f521014a2 100644
--- a/web/core/modules/workspaces/src/EventSubscriber/EntitySchemaSubscriber.php
+++ b/web/core/modules/workspaces/src/EventSubscriber/EntitySchemaSubscriber.php
@@ -99,12 +99,9 @@ public function onEntityTypeUpdate(EntityTypeInterface $entity_type, EntityTypeI
       $field_storage_definition = $this->entityLastInstalledSchemaRepository->getLastInstalledFieldStorageDefinitions($entity_type->id())[$revision_metadata_keys['workspace']];
       $this->entityDefinitionUpdateManager->uninstallFieldStorageDefinition($field_storage_definition);
 
-      $revision_metadata_keys = $entity_type->get('revision_metadata_keys');
-      unset($revision_metadata_keys['workspace']);
-      $entity_type->set('revision_metadata_keys', $revision_metadata_keys);
-
       // We are only removing a revision metadata key so we don't need to go
       // through the entity update process.
+      $entity_type->setRevisionMetadataKey('workspace', NULL);
       $this->entityLastInstalledSchemaRepository->setLastInstalledDefinition($entity_type);
     }
   }
@@ -130,23 +127,19 @@ public function onEntityTypeDelete(EntityTypeInterface $entity_type) {
    *   The entity type that has been installed or updated.
    */
   protected function addRevisionMetadataField(EntityTypeInterface $entity_type) {
-    $revision_metadata_keys = $entity_type->get('revision_metadata_keys');
-
-    if (!isset($revision_metadata_keys['workspace'])) {
+    if (!$entity_type->hasRevisionMetadataKey('workspace')) {
       // Bail out if there's an existing field called 'workspace'.
       if ($this->entityDefinitionUpdateManager->getFieldStorageDefinition('workspace', $entity_type->id())) {
         throw new \RuntimeException("An existing 'workspace' field was found for the '{$entity_type->id()}' entity type. Set the 'workspace' revision metadata key to use a different field name and run this update function again.");
       }
 
-      $revision_metadata_keys['workspace'] = 'workspace';
-      $entity_type->set('revision_metadata_keys', $revision_metadata_keys);
-
       // We are only adding a revision metadata key so we don't need to go
       // through the entity update process.
+      $entity_type->setRevisionMetadataKey('workspace', 'workspace');
       $this->entityLastInstalledSchemaRepository->setLastInstalledDefinition($entity_type);
     }
 
-    $this->entityDefinitionUpdateManager->installFieldStorageDefinition($revision_metadata_keys['workspace'], $entity_type->id(), 'workspaces', $this->getWorkspaceFieldDefinition());
+    $this->entityDefinitionUpdateManager->installFieldStorageDefinition($entity_type->getRevisionMetadataKey('workspace'), $entity_type->id(), 'workspaces', $this->getWorkspaceFieldDefinition());
   }
 
   /**
diff --git a/web/core/modules/workspaces/tests/fixtures/update/drupal-8.6.0-workspaces_installed.php b/web/core/modules/workspaces/tests/fixtures/update/drupal-8.6.0-workspaces_installed.php
index 459a7207e77284e754ca3eff07d80176f8f38c8f..02b981b65281ce6b34aa982b4c1032f81c977d1a 100644
GIT binary patch
delta 3342
zcmd5;O^ee&7={HsC?58vhlK%=>_P*bO`4B`RXob-LD+*JgxO@$2GgV@lP*04e?xzR
z6g&y~TfF#3JUSnlN!r+&cGtSM<ei!KectE&{PFYX`>&&~ub1#T1xXs<ya%o$G6rOf
zL5}@22|$`)Fh;W|8396XWq20lQJO5$dyh-@L_2!`fIbW(90&O+$}%)Rr4j(NBnq^i
z_?*?BWIn}GTokoDM#;!$`q+~*p>&4g0=Jcd=R=@Dtyk8{x#(Q#<u<qoWhC<BRfFO=
zgr?z`wjN^W=%&+mbY#1>?p(ovYgs4=O<$^0(D+N7NQfnKd>ckbYGD5J$F7ugfM^&N
zwp<hHu3`3d6S|l}v<%%E1f~xmM$h^NWkHaz2_pcD4_}`0NO?R)UVsR?Nzjy~%5qK+
zDRPN}M5IBt4DTh-{0t+4RYv$@8t?jdnx&JJs5s>`Y9HrPXMjUg#Kc>-y!iC!q~w>n
z<;%|Lq6{_zPcyr6nMq5Qh(fV&onM_6S8<e&aR4gps&3?Emihc@UrHoFTnY!!w$BGn
zzdo)ATRVOypGyYCxs+B!u3BpGx%x)X+K_c%cb`n(#%@V7s)2xVepq(jud#o->>f9L
z<Ls^%scf^m7OLWOhvJmA`Q}a*r}BuWL)Cm&Yj9%;mWQc9S!}H&arqp)12wo8i6xz~
zhihbQ5?_ibFPiKBBN3_=ybp^d+f^DYW+){8Y#6jT9KPV2(#<&B)~;@=QAs^sV<l8F
z5=}6jxs$1Mke!rl4fW!5#DyJZlp54(8&eD8rpPJ;?QxyGsy1P-Mkgj#Yji6u3@p3z
z_VVI_HR#3h@`Nst9k6eiulrzcK({Mq4~hNnC8a3)1MxL@N2bLd;GaAcb<N5D2A7}j
F{{|A?R7d~-

delta 14
Wcmdn;gX!9BrVU=pH?P>*!v+97GzX;s

diff --git a/web/core/modules/workspaces/tests/src/Functional/Update/WorkspacesUpdateTest.php b/web/core/modules/workspaces/tests/src/Functional/Update/WorkspacesUpdateTest.php
index 30062be1c7..abc1869ef7 100644
--- a/web/core/modules/workspaces/tests/src/Functional/Update/WorkspacesUpdateTest.php
+++ b/web/core/modules/workspaces/tests/src/Functional/Update/WorkspacesUpdateTest.php
@@ -25,7 +25,7 @@ class WorkspacesUpdateTest extends UpdatePathTestBase {
    */
   public function setDatabaseDumpFiles() {
     $this->databaseDumpFiles = [
-      __DIR__ . '/../../../../../system/tests/fixtures/update/drupal-8.filled.standard.php.gz',
+      __DIR__ . '/../../../../../system/tests/fixtures/update/drupal-8.4.0.bare.standard.php.gz',
       __DIR__ . '/../../../fixtures/update/drupal-8.6.0-workspaces_installed.php',
     ];
   }
diff --git a/web/core/modules/workspaces/tests/src/Functional/WorkspaceRevisionMetadataFieldTest.php b/web/core/modules/workspaces/tests/src/Functional/WorkspaceRevisionMetadataFieldTest.php
new file mode 100644
index 0000000000..958633e0c2
--- /dev/null
+++ b/web/core/modules/workspaces/tests/src/Functional/WorkspaceRevisionMetadataFieldTest.php
@@ -0,0 +1,77 @@
+<?php
+
+namespace Drupal\Tests\workspaces\Functional;
+
+use Drupal\Tests\BrowserTestBase;
+
+/**
+ * Tests the addition of the revision metadata key.
+ *
+ * @group workspaces
+ * @group legacy
+ */
+class WorkspaceRevisionMetadataFieldTest extends BrowserTestBase {
+
+  /**
+   * The entity type manager.
+   *
+   * @var \Drupal\Core\Entity\EntityTypeManagerInterface
+   */
+  protected $entityTypeManager;
+
+  /**
+   * {@inheritdoc}
+   */
+  protected $defaultTheme = 'stark';
+
+  /**
+   * {@inheritdoc}
+   */
+  protected static $modules = ['entity_test_revlog'];
+
+  /**
+   * {@inheritdoc}
+   */
+  protected function setUp() {
+    parent::setUp();
+
+    $this->entityTypeManager = \Drupal::entityTypeManager();
+  }
+
+  /**
+   * Tests the addition of the 'workspaces' revision metadata field.
+   *
+   * @expectedDeprecation The revision_user revision metadata key is not set for entity type: entity_test_mul_revlog_pub See: https://www.drupal.org/node/2831499
+   * @expectedDeprecation The revision_created revision metadata key is not set for entity type: entity_test_mul_revlog_pub See: https://www.drupal.org/node/2831499
+   * @expectedDeprecation The revision_log_message revision metadata key is not set for entity type: entity_test_mul_revlog_pub See: https://www.drupal.org/node/2831499
+   */
+  public function testWorkspacesField() {
+    $revision_metadata_keys_prev_live = $this->entityTypeManager->getDefinition('entity_test_mul_revlog_pub')
+      ->getRevisionMetadataKeys();
+    $revision_metadata_keys_prev_installed = $this->entityTypeManager->getActiveDefinition('entity_test_mul_revlog_pub')
+      ->getRevisionMetadataKeys();
+
+    $this->container->get('module_installer')->install(['workspaces']);
+    $this->entityTypeManager->clearCachedDefinitions();
+
+    $revision_metadata_keys_current_live = $this->entityTypeManager->getDefinition('entity_test_mul_revlog_pub')
+      ->getRevisionMetadataKeys();
+    $revision_metadata_keys_current_installed = $this->entityTypeManager->getActiveDefinition('entity_test_mul_revlog_pub')
+      ->getRevisionMetadataKeys();
+
+    // Ensure that the live revision metadata keys have changed only by the
+    // workspace revision metadata key.
+    $expected_revision_metadata_keys_live = $revision_metadata_keys_prev_live + ['workspace' => 'workspace'];
+    asort($expected_revision_metadata_keys_live);
+    asort($revision_metadata_keys_current_live);
+    $this->assertEquals($expected_revision_metadata_keys_live, $revision_metadata_keys_current_live);
+
+    // Ensure that the installed revision metadata keys have changed only by the
+    // workspace revision metadata key.
+    $expected_revision_metadata_keys_installed = $revision_metadata_keys_prev_installed + ['workspace' => 'workspace'];
+    asort($expected_revision_metadata_keys_installed);
+    asort($revision_metadata_keys_current_installed);
+    $this->assertEquals($expected_revision_metadata_keys_installed, $revision_metadata_keys_current_installed);
+  }
+
+}
diff --git a/web/core/modules/workspaces/tests/src/Functional/WorkspacesUninstallTest.php b/web/core/modules/workspaces/tests/src/Functional/WorkspacesUninstallTest.php
index 975bacabf9..8fe0913dc4 100644
--- a/web/core/modules/workspaces/tests/src/Functional/WorkspacesUninstallTest.php
+++ b/web/core/modules/workspaces/tests/src/Functional/WorkspacesUninstallTest.php
@@ -45,8 +45,11 @@ public function testUninstallingWorkspace() {
     $this->assertFalse(\Drupal::database()->schema()->fieldExists('node_revision', 'workspace'));
 
     // Verify that the revision metadata key has been removed.
-    $revision_metadata_keys = \Drupal::entityDefinitionUpdateManager()->getEntityType('node')->get('revision_metadata_keys');
+    $entity_type = \Drupal::entityDefinitionUpdateManager()->getEntityType('node');
+    $revision_metadata_keys = $entity_type->get('revision_metadata_keys');
     $this->assertArrayNotHasKey('workspace', $revision_metadata_keys);
+    $required_revision_metadata_keys = $entity_type->get('requiredRevisionMetadataKeys');
+    $this->assertArrayNotHasKey('workspace', $required_revision_metadata_keys);
   }
 
 }
diff --git a/web/core/modules/workspaces/workspaces.install b/web/core/modules/workspaces/workspaces.install
index acf3b21fd3..4e7bca1531 100644
--- a/web/core/modules/workspaces/workspaces.install
+++ b/web/core/modules/workspaces/workspaces.install
@@ -43,8 +43,7 @@ function workspaces_module_preinstall($module) {
   foreach ($entity_definition_update_manager->getEntityTypes() as $entity_type) {
     $revision_metadata_keys = $entity_type->get('revision_metadata_keys');
     if ($workspace_manager->isEntityTypeSupported($entity_type)) {
-      $revision_metadata_keys['workspace'] = 'workspace';
-      $entity_type->set('revision_metadata_keys', $revision_metadata_keys);
+      $entity_type->setRevisionMetadataKey('workspace', 'workspace');
       $entity_definition_update_manager->updateEntityType($entity_type);
     }
   }
@@ -135,15 +134,19 @@ function workspaces_update_8801() {
       $revision_metadata_keys = $entity_type->get('revision_metadata_keys');
 
       if (!isset($revision_metadata_keys['workspace'])) {
+        $revision_metadata_field_name = 'workspace';
+
         // Bail out if there's an existing field called 'workspace'.
-        if ($entity_definition_update_manager->getFieldStorageDefinition('workspace', $entity_type_id)) {
+        if ($entity_definition_update_manager->getFieldStorageDefinition($revision_metadata_field_name, $entity_type_id)) {
           throw new \RuntimeException("An existing 'workspace' field was found for the '$entity_type_id' entity type. Set the 'workspace' revision metadata key to use a different field name and run this update function again.");
         }
 
-        $revision_metadata_keys['workspace'] = 'workspace';
-        $entity_type->set('revision_metadata_keys', $revision_metadata_keys);
+        $entity_type->setRevisionMetadataKey('workspace', $revision_metadata_field_name);
         $entity_definition_update_manager->updateEntityType($entity_type);
       }
+      else {
+        $revision_metadata_field_name = $revision_metadata_keys['workspace'];
+      }
 
       $field_storage = BaseFieldDefinition::create('entity_reference')
         ->setLabel(t('Workspace'))
@@ -153,7 +156,7 @@ function workspaces_update_8801() {
         ->setTranslatable(FALSE)
         ->setRevisionable(TRUE);
 
-      $entity_definition_update_manager->installFieldStorageDefinition($revision_metadata_keys['workspace'], $entity_type_id, 'workspaces', $field_storage);
+      $entity_definition_update_manager->installFieldStorageDefinition($revision_metadata_field_name, $entity_type_id, 'workspaces', $field_storage);
     }
   }
 
diff --git a/web/core/modules/workspaces/workspaces.post_update.php b/web/core/modules/workspaces/workspaces.post_update.php
index b32be7d424..b705613012 100644
--- a/web/core/modules/workspaces/workspaces.post_update.php
+++ b/web/core/modules/workspaces/workspaces.post_update.php
@@ -143,3 +143,22 @@ function workspaces_post_update_update_deploy_form_display() {
     $form_display->removeComponent('parent')->save();
   }
 }
+
+/**
+ * Removes the workspace association entity and field schema data.
+ */
+function workspaces_post_update_remove_association_schema_data() {
+  // Delete the entity and field schema data.
+  $keys = [
+    'workspace_association.entity_schema_data',
+    'workspace_association.field_schema_data.id',
+    'workspace_association.field_schema_data.revision_id',
+    'workspace_association.field_schema_data.uuid',
+    'workspace_association.field_schema_data.revision_default',
+    'workspace_association.field_schema_data.target_entity_id',
+    'workspace_association.field_schema_data.target_entity_revision_id',
+    'workspace_association.field_schema_data.target_entity_type_id',
+    'workspace_association.field_schema_data.workspace',
+  ];
+  \Drupal::keyValue('entity.storage_schema.sql')->deleteMultiple($keys);
+}
diff --git a/web/core/tests/Drupal/BuildTests/Composer/Template/ComposerProjectTemplatesTest.php b/web/core/tests/Drupal/BuildTests/Composer/Template/ComposerProjectTemplatesTest.php
new file mode 100644
index 0000000000..d6d90504e1
--- /dev/null
+++ b/web/core/tests/Drupal/BuildTests/Composer/Template/ComposerProjectTemplatesTest.php
@@ -0,0 +1,211 @@
+<?php
+
+namespace Drupal\BuildTests\Composer\Template;
+
+use Composer\Json\JsonFile;
+use Drupal\BuildTests\Framework\BuildTestBase;
+use Drupal\Composer\Composer;
+use Symfony\Component\Finder\Finder;
+
+/**
+ * Demonstrate that Composer project templates are buildable as patched.
+ *
+ * We have to use the packages.json fixture so that Composer will use the
+ * in-codebase version of the project template.
+ *
+ * We also have to add path repositories to the in-codebase project template or
+ * else Composer will try to use packagist to resolve dependencies we'd prefer
+ * it to find locally.
+ *
+ * This is because Composer only uses the packages.json file to resolve the
+ * project template and not any other dependencies.
+ *
+ * @group #slow
+ * @group Template
+ *
+ * @requires externalCommand composer
+ */
+class ComposerProjectTemplatesTest extends BuildTestBase {
+
+  /**
+   * Get Composer items that we want to be path repos, from within a directory.
+   *
+   * @param string $workspace_directory
+   *   The full path to the workspace directory.
+   * @param string $subdir
+   *   The subdirectory to search under composer/.
+   *
+   * @return string[]
+   *   Array of paths, indexed by package name.
+   */
+  public function getPathReposForType($workspace_directory, $subdir) {
+    // Find the Composer items that we want to be path repos.
+    $path_repos = Finder::create()
+      ->files()
+      ->name('composer.json')
+      ->in($workspace_directory . '/composer/' . $subdir);
+
+    $data = [];
+    /* @var $path_repo \SplFileInfo */
+    foreach ($path_repos as $path_repo) {
+      $json_file = new JsonFile($path_repo->getPathname());
+      $json = $json_file->read();
+      $data[$json['name']] = $path_repo->getPath();
+    }
+    return $data;
+  }
+
+  public function provideTemplateCreateProject() {
+    return [
+      'recommended-project' => [
+        'drupal/recommended-project',
+        'composer/Template/RecommendedProject',
+        '/web',
+      ],
+      'legacy-project' => [
+        'drupal/legacy-project',
+        'composer/Template/LegacyProject',
+        '',
+      ],
+    ];
+  }
+
+  /**
+   * Make sure we've accounted for all the templates.
+   */
+  public function testVerifyTemplateTestProviderIsAccurate() {
+    $root = $this->getDrupalRoot();
+    $data = $this->provideTemplateCreateProject($root);
+
+    // Find all the templates.
+    $template_files = Finder::create()
+      ->files()
+      ->name('composer.json')
+      ->in($root . '/composer/Template');
+
+    $this->assertEquals(count($template_files), count($data));
+
+    // We could have the same number of templates but different names.
+    $template_data = [];
+    foreach ($data as $data_name => $data_value) {
+      $template_data[$data_value[0]] = $data_name;
+    }
+    /* @var $file \SplFileInfo */
+    foreach ($template_files as $file) {
+      $json_file = new JsonFile($file->getPathname());
+      $json = $json_file->read();
+      $this->assertArrayHasKey('name', $json);
+      // Does provideTemplateCreateProject() give us this template name?
+      $this->assertArrayHasKey($json['name'], $template_data);
+    }
+  }
+
+  /**
+   * @dataProvider provideTemplateCreateProject
+   */
+  public function testTemplateCreateProject($project, $package_dir, $docroot_dir) {
+    $this->copyCodebase();
+
+    // Get the Drupal core version branch. For instance, this should be
+    // 8.9.x-dev for the 8.9.x branch.
+    $core_version = Composer::drupalVersionBranch();
+
+    // Set up the template to use our path repos. Inclusion of metapackages is
+    // reported differently, so we load up a separate set for them.
+    $metapackage_path_repos = $this->getPathReposForType($this->getWorkspaceDirectory(), 'Metapackage');
+    $path_repos = array_merge($metapackage_path_repos, $this->getPathReposForType($this->getWorkspaceDirectory(), 'Plugin'));
+    // Always add drupal/core as a path repo.
+    $path_repos['drupal/core'] = $this->getWorkspaceDirectory() . '/core';
+    foreach ($path_repos as $name => $path) {
+      $this->executeCommand('composer config repositories.' . $name . ' path ' . $path, $package_dir);
+      $this->assertCommandSuccessful();
+    }
+
+    $repository_path = $this->getWorkspaceDirectory() . '/test_repository/packages.json';
+    $this->makeTestPackage($repository_path, $core_version);
+
+    $autoloader = $this->getWorkspaceDirectory() . '/testproject' . $docroot_dir . '/autoload.php';
+    $this->assertFileNotExists($autoloader);
+
+    $this->executeCommand("COMPOSER_CORE_VERSION=$core_version composer create-project $project testproject $core_version -s dev -vv --repository $repository_path");
+    $this->assertCommandSuccessful();
+
+    // Ensure we used the project from our codebase.
+    $this->assertErrorOutputContains("Installing $project ($core_version): Symlinking from $package_dir");
+    // Ensure that we used drupal/core from our codebase. This probably means
+    // that drupal/core-recommended was added successfully by the project.
+    $this->assertErrorOutputContains("Installing drupal/core ($core_version): Symlinking from");
+    // Verify that there is an autoloader.
+    $this->assertFileExists($autoloader);
+
+    // In order to verify that Composer used the path repos for our project, we
+    // have to get the requirements from the project composer.json so we can
+    // reconcile our expectations.
+    $template_json_file = $this->getWorkspaceDirectory() . '/' . $package_dir . '/composer.json';
+    $this->assertFileExists($template_json_file);
+    $json_file = new JsonFile($template_json_file);
+    $template_json = $json_file->read();
+    // Get the require and require-dev information, and ensure that our
+    // requirements are not erroneously empty.
+    $this->assertNotEmpty(
+      $require = array_merge($template_json['require'] ?? [], $template_json['require-dev'] ?? [])
+    );
+    // Verify that path repo packages were installed.
+    $path_repos = array_keys($path_repos);
+    foreach (array_keys($require) as $package_name) {
+      if (in_array($package_name, $path_repos)) {
+        // Metapackages do not report that they were installed as symlinks, but
+        // we still must check that their installed version matches
+        // COMPOSER_CORE_VERSION.
+        if (array_key_exists($package_name, $metapackage_path_repos)) {
+          $this->assertErrorOutputContains("Installing $package_name ($core_version)");
+        }
+        else {
+          $this->assertErrorOutputContains("Installing $package_name ($core_version): Symlinking from");
+        }
+      }
+    }
+  }
+
+  /**
+   * Creates a test package that points to the templates.
+   *
+   * @param string $repository_path
+   *   The path where to create the test package.
+   * @param string $version
+   *   The version under test.
+   */
+  protected function makeTestPackage($repository_path, $version) {
+    $json = <<<JSON
+{
+  "packages": {
+    "drupal/recommended-project": {
+      "$version": {
+        "name": "drupal/recommended-project",
+        "dist": {
+          "type": "path",
+          "url": "composer/Template/RecommendedProject"
+        },
+        "type": "project",
+        "version": "$version"
+      }
+    },
+    "drupal/legacy-project": {
+      "$version": {
+        "name": "drupal/legacy-project",
+        "dist": {
+          "type": "path",
+          "url": "composer/Template/LegacyProject"
+        },
+        "type": "project",
+        "version": "$version"
+      }
+    }
+  }
+}
+JSON;
+    mkdir(dirname($repository_path));
+    file_put_contents($repository_path, $json);
+  }
+
+}
diff --git a/web/core/tests/Drupal/FunctionalTests/AssertLegacyTrait.php b/web/core/tests/Drupal/FunctionalTests/AssertLegacyTrait.php
index d2c87c9fc3..aed232f785 100644
--- a/web/core/tests/Drupal/FunctionalTests/AssertLegacyTrait.php
+++ b/web/core/tests/Drupal/FunctionalTests/AssertLegacyTrait.php
@@ -12,16 +12,16 @@
 /**
  * Provides convenience methods for assertions in browser tests.
  *
- * Deprecated Scheduled for removal in Drupal 10.0.0. Use the methods on
- *   \Drupal\Tests\WebAssert instead, for example
+ * Deprecated in drupal:8.2.0 and is removed from drupal:10.0.0. Use
+ *   the methods on \Drupal\Tests\WebAssert instead, for example
  * @code
  *    $this->assertSession()->statusCodeEquals(200);
  * @endcode
  *
- * @todo https://www.drupal.org/project/drupal/issues/3031580 Note that
+ * @todo https://www.drupal.org/project/drupal/issues/3114617 Note that
  *   deprecations in this file do not use the @ symbol in Drupal 8 because this
  *   will be removed in Drupal 10.0.0. Adding the @ back should re-enable coding
- *   stanadrds checks.
+ *   standards checks.
  */
 trait AssertLegacyTrait {
 
@@ -33,8 +33,8 @@ trait AssertLegacyTrait {
    * @param string $css_selector
    *   The CSS selector identifying the element to check.
    *
-   * Deprecated Scheduled for removal in Drupal 10.0.0.
-   *   Use $this->assertSession()->elementExists() instead.
+   * Deprecated in drupal:8.2.0 and is removed from drupal:10.0.0. Use
+   *   $this->assertSession()->elementExists() instead.
    */
   protected function assertElementPresent($css_selector) {
     $this->assertSession()->elementExists('css', $css_selector);
@@ -46,8 +46,8 @@ protected function assertElementPresent($css_selector) {
    * @param string $css_selector
    *   The CSS selector identifying the element to check.
    *
-   * Deprecated Scheduled for removal in Drupal 10.0.0.
-   *   Use $this->assertSession()->elementNotExists() instead.
+   * Deprecated in drupal:8.2.0 and is removed from drupal:10.0.0. Use
+   *   $this->assertSession()->elementNotExists() instead.
    */
   protected function assertElementNotPresent($css_selector) {
     $this->assertSession()->elementNotExists('css', $css_selector);
@@ -62,13 +62,12 @@ protected function assertElementNotPresent($css_selector) {
    * @param string $text
    *   Plain text to look for.
    *
-   * Deprecated Scheduled for removal in Drupal 10.0.0.
-   *   Use instead:
-   *     - $this->assertSession()->responseContains() for non-HTML responses,
-   *       like XML or Json.
-   *     - $this->assertSession()->pageTextContains() for HTML responses. Unlike
-   *       the deprecated assertText(), the passed text should be HTML decoded,
-   *       exactly as a human sees it in the browser.
+   * Deprecated in drupal:8.2.0 and is removed from drupal:10.0.0. Use
+   *   - $this->assertSession()->responseContains() for non-HTML responses,
+   *     like XML or Json.
+   *   - $this->assertSession()->pageTextContains() for HTML responses. Unlike
+   *     the deprecated assertText(), the passed text should be HTML decoded,
+   *     exactly as a human sees it in the browser.
    */
   protected function assertText($text) {
     // Cast MarkupInterface to string.
@@ -94,13 +93,12 @@ protected function assertText($text) {
    * @param string $text
    *   Plain text to look for.
    *
-   * Deprecated Scheduled for removal in Drupal 10.0.0.
-   *   Use instead:
-   *     - $this->assertSession()->responseNotContains() for non-HTML responses,
-   *       like XML or Json.
-   *     - $this->assertSession()->pageTextNotContains() for HTML responses.
-   *       Unlike the deprecated assertNoText(), the passed text should be HTML
-   *       decoded, exactly as a human sees it in the browser.
+   * Deprecated in drupal:8.2.0 and is removed from drupal:10.0.0. Use
+   *   - $this->assertSession()->responseNotContains() for non-HTML responses,
+   *     like XML or Json.
+   *   - $this->assertSession()->pageTextNotContains() for HTML responses.
+   *     Unlike the deprecated assertNoText(), the passed text should be HTML
+   *     decoded, exactly as a human sees it in the browser.
    */
   protected function assertNoText($text) {
     // Cast MarkupInterface to string.
@@ -160,8 +158,8 @@ protected function assertTextHelper($text, $not_exists = TRUE) {
    *   (optional) A message to display with the assertion. Do not translate
    *   messages with t(). If left blank, a default message will be displayed.
    *
-   * Deprecated Scheduled for removal in Drupal 10.0.0.
-   *   Use $this->getSession()->getPage()->getText() and substr_count() instead.
+   * Deprecated in drupal:8.2.0 and is removed from drupal:10.0.0. Use
+   *   $this->getSession()->getPage()->getText() and substr_count() instead.
    */
   protected function assertUniqueText($text, $message = NULL) {
     // Cast MarkupInterface objects to string.
@@ -186,8 +184,8 @@ protected function assertUniqueText($text, $message = NULL) {
    *   (optional) A message to display with the assertion. Do not translate
    *   messages with t(). If left blank, a default message will be displayed.
    *
-   * Deprecated Scheduled for removal in Drupal 10.0.0.
-   *   Use $this->getSession()->getPage()->getText() and substr_count() instead.
+   * Deprecated in drupal:8.2.0 and is removed from drupal:10.0.0. Use
+   *   $this->getSession()->getPage()->getText() and substr_count() instead.
    */
   protected function assertNoUniqueText($text, $message = '') {
     // Cast MarkupInterface objects to string.
@@ -206,8 +204,8 @@ protected function assertNoUniqueText($text, $message = '') {
    *   Response code. For example 200 is a successful page request. For a list
    *   of all codes see http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html.
    *
-   * Deprecated Scheduled for removal in Drupal 10.0.0.
-   *   Use $this->assertSession()->statusCodeEquals() instead.
+   * Deprecated in drupal:8.2.0 and is removed from drupal:10.0.0. Use
+   *   $this->assertSession()->statusCodeEquals() instead.
    */
   protected function assertResponse($code) {
     $this->assertSession()->statusCodeEquals($code);
@@ -223,8 +221,8 @@ protected function assertResponse($code) {
    *   to skip checking the actual value, while still checking that the field
    *   exists.
    *
-   * Deprecated Scheduled for removal in Drupal 10.0.0.
-   *   Use $this->assertSession()->fieldExists() or
+   * Deprecated in drupal:8.2.0 and is removed from drupal:10.0.0. Use
+   *   $this->assertSession()->fieldExists() or
    *   $this->assertSession()->buttonExists() or
    *   $this->assertSession()->fieldValueEquals() instead.
    */
@@ -243,8 +241,8 @@ protected function assertFieldByName($name, $value = NULL) {
    *   value, while still checking that the field does not exist. However, the
    *   default value ('') asserts that the field value is not an empty string.
    *
-   * Deprecated Scheduled for removal in Drupal 10.0.0.
-   *   Use $this->assertSession()->fieldNotExists() or
+   * Deprecated in drupal:8.2.0 and is removed from drupal:10.0.0. Use
+   *   $this->assertSession()->fieldNotExists() or
    *   $this->assertSession()->buttonNotExists() or
    *   $this->assertSession()->fieldValueNotEquals() instead.
    */
@@ -265,8 +263,8 @@ protected function assertNoFieldByName($name, $value = '') {
    *
    * @throws \Behat\Mink\Exception\ElementNotFoundException
    *
-   * Deprecated Scheduled for removal in Drupal 10.0.0.
-   *   Use $this->assertSession()->fieldExists() or
+   * Deprecated in drupal:8.2.0 and is removed from drupal:10.0.0. Use
+   *   $this->assertSession()->fieldExists() or
    *   $this->assertSession()->buttonExists() or
    *   $this->assertSession()->fieldValueEquals() instead.
    */
@@ -280,8 +278,8 @@ protected function assertFieldById($id, $value = '') {
    * @param string $field
    *   Name or ID of field to assert.
    *
-   * Deprecated Scheduled for removal in Drupal 10.0.0.
-   *   Use $this->assertSession()->fieldExists() or
+   * Deprecated in drupal:8.2.0 and is removed from drupal:10.0.0. Use
+   *   $this->assertSession()->fieldExists() or
    *   $this->assertSession()->buttonExists() instead.
    */
   protected function assertField($field) {
@@ -294,8 +292,8 @@ protected function assertField($field) {
    * @param string $field
    *   Name or ID of field to assert.
    *
-   * Deprecated Scheduled for removal in Drupal 10.0.0.
-   *   Use $this->assertSession()->fieldNotExists() or
+   * Deprecated in drupal:8.2.0 and is removed from drupal:10.0.0. Use
+   *   $this->assertSession()->fieldNotExists() or
    *   $this->assertSession()->buttonNotExists() instead.
    */
   protected function assertNoField($field) {
@@ -310,8 +308,8 @@ protected function assertNoField($field) {
    * @param string $raw
    *   Raw (HTML) string to look for.
    *
-   * Deprecated Scheduled for removal in Drupal 10.0.0.
-   *   Use $this->assertSession()->responseContains() instead.
+   * Deprecated in drupal:8.2.0 and is removed from drupal:10.0.0. Use
+   *   $this->assertSession()->responseContains() instead.
    */
   protected function assertRaw($raw) {
     $this->assertSession()->responseContains($raw);
@@ -325,8 +323,8 @@ protected function assertRaw($raw) {
    * @param string $raw
    *   Raw (HTML) string to look for.
    *
-   * Deprecated Scheduled for removal in Drupal 10.0.0.
-   *   Use $this->assertSession()->responseNotContains() instead.
+   * Deprecated in drupal:8.2.0 and is removed from drupal:10.0.0. Use
+   *   $this->assertSession()->responseNotContains() instead.
    */
   protected function assertNoRaw($raw) {
     $this->assertSession()->responseNotContains($raw);
@@ -338,8 +336,8 @@ protected function assertNoRaw($raw) {
    * @param string $expected_title
    *   The string the page title should be.
    *
-   * Deprecated Scheduled for removal in Drupal 10.0.0.
-   *   Use $this->assertSession()->titleEquals() instead.
+   * Deprecated in drupal:8.2.0 and is removed from drupal:10.0.0. Use
+   *   $this->assertSession()->titleEquals() instead.
    */
   protected function assertTitle($expected_title) {
     // Cast MarkupInterface to string.
@@ -357,8 +355,8 @@ protected function assertTitle($expected_title) {
    * @param int $index
    *   Link position counting from zero.
    *
-   * Deprecated Scheduled for removal in Drupal 10.0.0.
-   *   Use $this->assertSession()->linkExists() instead.
+   * Deprecated in drupal:8.2.0 and is removed from drupal:10.0.0. Use
+   *   $this->assertSession()->linkExists() instead.
    */
   protected function assertLink($label, $index = 0) {
     return $this->assertSession()->linkExists($label, $index);
@@ -370,8 +368,8 @@ protected function assertLink($label, $index = 0) {
    * @param string|\Drupal\Component\Render\MarkupInterface $label
    *   Text between the anchor tags.
    *
-   * Deprecated Scheduled for removal in Drupal 10.0.0.
-   *   Use $this->assertSession()->linkNotExists() instead.
+   * Deprecated in drupal:8.2.0 and is removed from drupal:10.0.0. Use
+   *   $this->assertSession()->linkNotExists() instead.
    */
   protected function assertNoLink($label) {
     return $this->assertSession()->linkNotExists($label);
@@ -385,8 +383,8 @@ protected function assertNoLink($label) {
    * @param int $index
    *   Link position counting from zero.
    *
-   * Deprecated Scheduled for removal in Drupal 10.0.0.
-   *   Use $this->assertSession()->linkByHrefExists() instead.
+   * Deprecated in drupal:8.2.0 and is removed from drupal:10.0.0. Use
+   *   $this->assertSession()->linkByHrefExists() instead.
    */
   protected function assertLinkByHref($href, $index = 0) {
     $this->assertSession()->linkByHrefExists($href, $index);
@@ -398,8 +396,8 @@ protected function assertLinkByHref($href, $index = 0) {
    * @param string $href
    *   The full or partial value of the 'href' attribute of the anchor tag.
    *
-   * Deprecated Scheduled for removal in Drupal 10.0.0.
-   *   Use $this->assertSession()->linkByHrefNotExists() instead.
+   * Deprecated in drupal:8.2.0 and is removed from drupal:10.0.0. Use
+   *   $this->assertSession()->linkByHrefNotExists() instead.
    */
   protected function assertNoLinkByHref($href) {
     $this->assertSession()->linkByHrefNotExists($href);
@@ -418,8 +416,8 @@ protected function assertNoLinkByHref($href) {
    *
    * @throws \Behat\Mink\Exception\ExpectationException
    *
-   * Deprecated Scheduled for removal in Drupal 10.0.0.
-   *   Use $this->assertSession()->fieldNotExists() or
+   * Deprecated in drupal:8.2.0 and is removed from drupal:10.0.0. Use
+   *   $this->assertSession()->fieldNotExists() or
    *   $this->assertSession()->buttonNotExists() or
    *   $this->assertSession()->fieldValueNotEquals() instead.
    */
@@ -433,8 +431,8 @@ protected function assertNoFieldById($id, $value = '') {
    * @param \Drupal\Core\Url|string $path
    *   The expected system path or URL.
    *
-   * Deprecated Scheduled for removal in Drupal 10.0.0.
-   *   Use $this->assertSession()->addressEquals() instead.
+   * Deprecated in drupal:8.2.0 and is removed from drupal:10.0.0. Use
+   *   $this->assertSession()->addressEquals() instead.
    */
   protected function assertUrl($path) {
     $this->assertSession()->addressEquals($path);
@@ -448,8 +446,8 @@ protected function assertUrl($path) {
    * @param string $option
    *   Option to assert.
    *
-   * Deprecated Scheduled for removal in Drupal 10.0.0.
-   *   Use $this->assertSession()->optionExists() instead.
+   * Deprecated in drupal:8.2.0 and is removed from drupal:10.0.0. Use
+   *   $this->assertSession()->optionExists() instead.
    */
   protected function assertOption($id, $option) {
     return $this->assertSession()->optionExists($id, $option);
@@ -463,8 +461,8 @@ protected function assertOption($id, $option) {
    * @param string $text
    *   The text for the option tag to assert.
    *
-   * Deprecated Scheduled for removal in Drupal 10.0.0.
-   *   Use $this->assertSession()->optionExists() instead.
+   * Deprecated in drupal:8.4.0 and is removed from drupal:10.0.0. Use
+   *   $this->assertSession()->optionExists() instead.
    */
   protected function assertOptionByText($id, $text) {
     return $this->assertSession()->optionExists($id, $text);
@@ -478,8 +476,8 @@ protected function assertOptionByText($id, $text) {
    * @param string $option
    *   Option to assert.
    *
-   * Deprecated Scheduled for removal in Drupal 10.0.0.
-   *   Use $this->assertSession()->optionNotExists() instead.
+   * Deprecated in drupal:8.2.0 and is removed from drupal:10.0.0. Use
+   *   $this->assertSession()->optionNotExists() instead.
    */
   protected function assertNoOption($id, $option) {
     return $this->assertSession()->optionNotExists($id, $option);
@@ -496,8 +494,8 @@ protected function assertNoOption($id, $option) {
    *   (optional) A message to display with the assertion. Do not translate
    *   messages with t(). If left blank, a default message will be displayed.
    *
-   * Deprecated Scheduled for removal in Drupal 10.0.0.
-   *   Use $this->assertSession()->optionExists() instead and check the
+   * Deprecated in drupal:8.2.0 and is removed from drupal:10.0.0. Use
+   *   $this->assertSession()->optionExists() instead and check the
    *   "selected" attribute yourself.
    */
   protected function assertOptionSelected($id, $option, $message = NULL) {
@@ -512,8 +510,8 @@ protected function assertOptionSelected($id, $option, $message = NULL) {
    * @param string $id
    *   ID of field to assert.
    *
-   * Deprecated Scheduled for removal in Drupal 10.0.0.
-   *   Use $this->assertSession()->checkboxChecked() instead.
+   * Deprecated in drupal:8.2.0 and is removed from drupal:10.0.0. Use
+   *   $this->assertSession()->checkboxChecked() instead.
    */
   protected function assertFieldChecked($id) {
     $this->assertSession()->checkboxChecked($id);
@@ -525,8 +523,8 @@ protected function assertFieldChecked($id) {
    * @param string $id
    *   ID of field to assert.
    *
-   * Deprecated Scheduled for removal in Drupal 10.0.0.
-   *   Use $this->assertSession()->checkboxNotChecked() instead.
+   * Deprecated in drupal:8.2.0 and is removed from drupal:10.0.0. Use
+   *   $this->assertSession()->checkboxNotChecked() instead.
    */
   protected function assertNoFieldChecked($id) {
     $this->assertSession()->checkboxNotChecked($id);
@@ -545,8 +543,8 @@ protected function assertNoFieldChecked($id) {
    *   (optional) A message to display with the assertion. Do not translate
    *   messages with t().
    *
-   * Deprecated Scheduled for removal in Drupal 10.0.0.
-   *   Use $this->xpath() instead and check the values directly in the test.
+   * Deprecated in drupal:8.3.0 and is removed from drupal:10.0.0. Use
+   *   $this->xpath() instead and check the values directly in the test.
    */
   protected function assertFieldByXPath($xpath, $value = NULL, $message = '') {
     $fields = $this->xpath($xpath);
@@ -568,8 +566,8 @@ protected function assertFieldByXPath($xpath, $value = NULL, $message = '') {
    *
    * @throws \Behat\Mink\Exception\ExpectationException
    *
-   * Deprecated Scheduled for removal in Drupal 10.0.0.
-   *   Use $this->xpath() instead and assert that the result is empty.
+   * Deprecated in drupal:8.3.0 and is removed from drupal:10.0.0. Use
+   *   $this->xpath() instead and assert that the result is empty.
    */
   protected function assertNoFieldByXPath($xpath, $value = NULL, $message = '') {
     $fields = $this->xpath($xpath);
@@ -606,9 +604,9 @@ protected function assertNoFieldByXPath($xpath, $value = NULL, $message = '') {
    *   (optional) A message to display with the assertion. Do not translate
    *   messages with t().
    *
-   * Deprecated Scheduled for removal in Drupal 10.0.0.
-   *   Iterate over the fields yourself instead and directly check the values in
-   *   the test.
+   * Deprecated in drupal:8.3.0 and is removed from drupal:10.0.0. Use
+   *   iteration over the fields yourself instead and directly check the values
+   *   in the test.
    */
   protected function assertFieldsByValue($fields, $value = NULL, $message = '') {
     // If value specified then check array for match.
@@ -655,8 +653,8 @@ protected function assertFieldsByValue($fields, $value = NULL, $message = '') {
    * @param string $raw
    *   Raw (HTML) string to look for.
    *
-   * Deprecated Scheduled for removal in Drupal 10.0.0.
-   *   Use $this->assertSession()->assertEscaped() instead.
+   * Deprecated in drupal:8.2.0 and is removed from drupal:10.0.0. Use
+   *   $this->assertSession()->assertEscaped() instead.
    */
   protected function assertEscaped($raw) {
     $this->assertSession()->assertEscaped($raw);
@@ -670,8 +668,8 @@ protected function assertEscaped($raw) {
    * @param string $raw
    *   Raw (HTML) string to look for.
    *
-   * Deprecated Scheduled for removal in Drupal 10.0.0.
-   *   Use $this->assertSession()->assertNoEscaped() instead.
+   * Deprecated in drupal:8.2.0 and is removed from drupal:10.0.0. Use
+   *   $this->assertSession()->assertNoEscaped() instead.
    */
   protected function assertNoEscaped($raw) {
     $this->assertSession()->assertNoEscaped($raw);
@@ -683,8 +681,8 @@ protected function assertNoEscaped($raw) {
    * @param string $pattern
    *   Perl regex to look for including the regex delimiters.
    *
-   * Deprecated Scheduled for removal in Drupal 10.0.0.
-   *   Use $this->assertSession()->responseMatches() instead.
+   * Deprecated in drupal:8.2.0 and is removed from drupal:10.0.0. Use
+  *   $this->assertSession()->responseMatches() instead.
    */
   protected function assertPattern($pattern) {
     $this->assertSession()->responseMatches($pattern);
@@ -696,13 +694,13 @@ protected function assertPattern($pattern) {
    * @param string $pattern
    *   Perl regex to look for including the regex delimiters.
    *
-   * Deprecated Scheduled for removal in Drupal 10.0.0.
-   *   Use $this->assertSession()->responseNotMatches() instead.
+   * Deprecated in drupal:8.4.0 and is removed from drupal:10.0.0. Use
+   *   $this->assertSession()->responseNotMatches() instead.
    *
    * @see https://www.drupal.org/node/2864262
    */
   protected function assertNoPattern($pattern) {
-    @trigger_error('assertNoPattern() is deprecated and scheduled for removal in Drupal 9.0.0. Use $this->assertSession()->responseNotMatches($pattern) instead. See https://www.drupal.org/node/2864262.', E_USER_DEPRECATED);
+    @trigger_error('AssertLegacyTrait::assertNoPattern() is deprecated in drupal:8.4.0 and is removed from drupal:10.0.0. Use $this->assertSession()->responseNotMatches() instead. See https://www.drupal.org/node/2864262', E_USER_DEPRECATED);
     $this->assertSession()->responseNotMatches($pattern);
   }
 
@@ -712,8 +710,8 @@ protected function assertNoPattern($pattern) {
    * @param string $expected_cache_tag
    *   The expected cache tag.
    *
-   * Deprecated Scheduled for removal in Drupal 10.0.0.
-   *   Use $this->assertSession()->responseHeaderContains() instead.
+   * Deprecated in drupal:8.2.0 and is removed from drupal:10.0.0. Use
+   *   $this->assertSession()->responseHeaderContains() instead.
    */
   protected function assertCacheTag($expected_cache_tag) {
     $this->assertSession()->responseHeaderContains('X-Drupal-Cache-Tags', $expected_cache_tag);
@@ -725,13 +723,13 @@ protected function assertCacheTag($expected_cache_tag) {
    * @param string $cache_tag
    *   The cache tag to check.
    *
-   * Deprecated Scheduled for removal in Drupal 10.0.0.
-   *   Use $this->assertSession()->responseHeaderNotContains() instead.
+   * Deprecated in drupal:8.4.0 and is removed from drupal:10.0.0. Use
+   *   $this->assertSession()->responseHeaderNotContains() instead.
    *
    * @see https://www.drupal.org/node/2864029
    */
   protected function assertNoCacheTag($cache_tag) {
-    @trigger_error('assertNoCacheTag() is deprecated and scheduled for removal in Drupal 9.0.0. Use $this->assertSession()->responseHeaderNotContains() instead. See https://www.drupal.org/node/2864029.', E_USER_DEPRECATED);
+    @trigger_error('AssertLegacyTrait::assertNoCacheTag() is deprecated in drupal:8.4.0 and is removed from drupal:10.0.0. Use $this->assertSession()->responseHeaderNotContains() instead. See https://www.drupal.org/node/2864029', E_USER_DEPRECATED);
     $this->assertSession()->responseHeaderNotContains('X-Drupal-Cache-Tags', $cache_tag);
   }
 
@@ -743,8 +741,8 @@ protected function assertNoCacheTag($cache_tag) {
    * @param string $value
    *   Value of the header to assert
    *
-   * Deprecated Scheduled for removal in Drupal 10.0.0.
-   *   Use $this->assertSession()->responseHeaderEquals() instead.
+   * Deprecated in drupal:8.3.0 and is removed from drupal:10.0.0. Use
+   *   $this->assertSession()->responseHeaderEquals() instead.
    */
   protected function assertHeader($name, $value) {
     $this->assertSession()->responseHeaderEquals($name, $value);
@@ -781,8 +779,8 @@ abstract public function assertSession($name = NULL);
    * @return string
    *   An XPath query with arguments replaced.
    *
-   * Deprecated Scheduled for removal in Drupal 10.0.0.
-   *   Use $this->assertSession()->buildXPathQuery() instead.
+   * Deprecated in drupal:8.2.0 and is removed from drupal:10.0.0. Use
+   *   $this->assertSession()->buildXPathQuery() instead.
    */
   protected function buildXPathQuery($xpath, array $args = []) {
     return $this->assertSession()->buildXPathQuery($xpath, $args);
@@ -799,8 +797,8 @@ protected function buildXPathQuery($xpath, array $args = []) {
    * @return string
    *   XPath for specified values.
    *
-   * Deprecated Scheduled for removal in Drupal 10.0.0.
-   *   Use $this->getSession()->getPage()->findField() instead.
+   * Deprecated in drupal:8.5.0 and is removed from drupal:10.0.0. Use
+   *   $this->getSession()->getPage()->findField() instead.
    */
   protected function constructFieldXpath($attribute, $value) {
     $xpath = '//textarea[@' . $attribute . '=:value]|//input[@' . $attribute . '=:value]|//select[@' . $attribute . '=:value]';
@@ -810,11 +808,13 @@ protected function constructFieldXpath($attribute, $value) {
   /**
    * Gets the current raw content.
    *
-   * Deprecated Scheduled for removal in Drupal 10.0.0.
-   *   Use $this->getSession()->getPage()->getContent() instead.
+   * Deprecated in drupal:8.2.0 and is removed from drupal:10.0.0. Use
+   *   $this->getSession()->getPage()->getContent() instead.
+   *
+   * @see http://drupal.org/node/2735045
    */
   protected function getRawContent() {
-    @trigger_error('AssertLegacyTrait::getRawContent() is scheduled for removal in Drupal 9.0.0. Use $this->getSession()->getPage()->getContent() instead.', E_USER_DEPRECATED);
+    @trigger_error('AssertLegacyTrait::getRawContent() is deprecated in drupal:8.2.0 and is removed from drupal:10.0.0. Use $this->getSession()->getPage()->getContent() instead. See http://drupal.org/node/2735045', E_USER_DEPRECATED);
     return $this->getSession()->getPage()->getContent();
   }
 
@@ -827,11 +827,13 @@ protected function getRawContent() {
    * @return \Behat\Mink\Element\NodeElement[]
    *   Option elements in select.
    *
-   * Deprecated Scheduled for removal in Drupal 10.0.0.
-   *   Use $element->findAll('xpath', 'option') instead.
+   * Deprecated in drupal:8.5.0 and is removed from drupal:10.0.0. Use
+   *   $element->findAll('xpath', 'option') instead.
+   *
+   * @see http://drupal.org/node/2735045
    */
   protected function getAllOptions(NodeElement $element) {
-    @trigger_error('AssertLegacyTrait::getAllOptions() is scheduled for removal in Drupal 9.0.0. Use $element->findAll(\'xpath\', \'option\') instead.', E_USER_DEPRECATED);
+    @trigger_error('AssertLegacyTrait::getAllOptions() is deprecated in drupal:8.5.0 and is removed from drupal:10.0.0. Use $element->findAll(\'xpath\', \'option\') instead. See http://drupal.org/node/2735045', E_USER_DEPRECATED);
     return $element->findAll('xpath', '//option');
   }
 
diff --git a/web/core/tests/Drupal/FunctionalTests/BrowserTestBaseTest.php b/web/core/tests/Drupal/FunctionalTests/BrowserTestBaseTest.php
index b8247ea88f..8bc8a5cb16 100644
--- a/web/core/tests/Drupal/FunctionalTests/BrowserTestBaseTest.php
+++ b/web/core/tests/Drupal/FunctionalTests/BrowserTestBaseTest.php
@@ -242,9 +242,17 @@ public function testTextAsserts() {
     $sanitized = Html::escape($dangerous);
     $this->assertNoText($dangerous);
     $this->assertText($sanitized);
+  }
 
-    // Test getRawContent().
-    $this->assertSame($this->getSession()->getPage()->getContent(), $this->getSession()->getPage()->getContent());
+  /**
+   * Tests legacy getRawContent().
+   *
+   * @group legacy
+   * @expectedDeprecation AssertLegacyTrait::getRawContent() is deprecated in drupal:8.2.0 and is removed from drupal:10.0.0. Use $this->getSession()->getPage()->getContent() instead. See http://drupal.org/node/2735045
+   */
+  public function testGetRawContent() {
+    $this->drupalGet('test-encoded');
+    $this->assertSame($this->getSession()->getPage()->getContent(), $this->getRawContent());
   }
 
   /**
diff --git a/web/core/tests/Drupal/FunctionalTests/Core/Test/AssertLegacyTraitDeprecatedTest.php b/web/core/tests/Drupal/FunctionalTests/Core/Test/AssertLegacyTraitDeprecatedTest.php
index a64ec82229..b07bc14ef8 100644
--- a/web/core/tests/Drupal/FunctionalTests/Core/Test/AssertLegacyTraitDeprecatedTest.php
+++ b/web/core/tests/Drupal/FunctionalTests/Core/Test/AssertLegacyTraitDeprecatedTest.php
@@ -22,7 +22,7 @@ class AssertLegacyTraitDeprecatedTest extends BrowserTestBase {
   /**
    * Tests getAllOptions().
    *
-   * @expectedDeprecation AssertLegacyTrait::getAllOptions() is scheduled for removal in Drupal 9.0.0. Use $element->findAll('xpath', 'option') instead.
+   * @expectedDeprecation AssertLegacyTrait::getAllOptions() is deprecated in drupal:8.5.0 and is removed from drupal:10.0.0. Use $element->findAll('xpath', 'option') instead. See http://drupal.org/node/2735045
    */
   public function testGetAllOptions() {
     $this->drupalGet('/form-test/select');
diff --git a/web/core/tests/Drupal/FunctionalTests/Update/UpdatePathTestBase.php b/web/core/tests/Drupal/FunctionalTests/Update/UpdatePathTestBase.php
index d7bad28513..e3b969b9f7 100644
--- a/web/core/tests/Drupal/FunctionalTests/Update/UpdatePathTestBase.php
+++ b/web/core/tests/Drupal/FunctionalTests/Update/UpdatePathTestBase.php
@@ -6,13 +6,12 @@
 use Drupal\Core\Site\Settings;
 use Drupal\Core\Test\TestRunnerKernel;
 use Drupal\Tests\BrowserTestBase;
-use Drupal\Tests\SchemaCheckTestTrait;
 use Drupal\Core\Database\Database;
 use Drupal\Core\DependencyInjection\ContainerBuilder;
 use Drupal\Core\File\FileSystemInterface;
 use Drupal\Core\Language\Language;
 use Drupal\Core\Url;
-use Drupal\Tests\RequirementsPageTrait;
+use Drupal\Tests\UpdatePathTestTrait;
 use Drupal\user\Entity\User;
 use Symfony\Component\DependencyInjection\Reference;
 use Symfony\Component\HttpFoundation\Request;
@@ -43,9 +42,9 @@
  * @see hook_update_N()
  */
 abstract class UpdatePathTestBase extends BrowserTestBase {
-
-  use SchemaCheckTestTrait;
-  use RequirementsPageTrait;
+  use UpdatePathTestTrait {
+    runUpdates as doRunUpdates;
+  }
 
   /**
    * Modules to enable after the database is loaded.
@@ -125,22 +124,19 @@ abstract class UpdatePathTestBase extends BrowserTestBase {
    */
   protected $strictConfigSchema = FALSE;
 
-  /**
-   * Fail the test if there are failed updates.
-   *
-   * @var bool
-   */
-  protected $checkFailedUpdates = TRUE;
-
   /**
    * Constructs an UpdatePathTestCase object.
    *
    * @param $test_id
    *   (optional) The ID of the test. Tests with the same id are reported
    *   together.
+   * @param array $data
+   *   (optional) The test case data. Defaults to none.
+   * @param string $data_name
+   *   The test data name. Defaults to none.
    */
-  public function __construct($test_id = NULL) {
-    parent::__construct($test_id);
+  public function __construct($test_id = NULL, array $data = [], $data_name = '') {
+    parent::__construct($test_id, $data, $data_name);
     $this->zlibInstalled = function_exists('gzopen');
   }
 
@@ -298,117 +294,7 @@ protected function runUpdates() {
       $this->fail('Missing zlib requirement for update tests.');
       return FALSE;
     }
-    // The site might be broken at the time so logging in using the UI might
-    // not work, so we use the API itself.
-    drupal_rewrite_settings([
-      'settings' => [
-        'update_free_access' => (object) [
-          'value' => TRUE,
-          'required' => TRUE,
-        ],
-      ],
-    ]);
-
-    $this->drupalGet($this->updateUrl);
-    $this->updateRequirementsProblem();
-    $this->clickLink(t('Continue'));
-
-    $this->doSelectionTest();
-    // Run the update hooks.
-    $this->clickLink(t('Apply pending updates'));
-    $this->checkForMetaRefresh();
-
-    // Ensure there are no failed updates.
-    if ($this->checkFailedUpdates) {
-      $failure = $this->cssSelect('.failure');
-      if ($failure) {
-        $this->fail('The update failed with the following message: "' . reset($failure)->getText() . '"');
-      }
-
-      // Ensure that there are no pending updates.
-      foreach (['update', 'post_update'] as $update_type) {
-        switch ($update_type) {
-          case 'update':
-            $all_updates = update_get_update_list();
-            break;
-          case 'post_update':
-            $all_updates = \Drupal::service('update.post_update_registry')->getPendingUpdateInformation();
-            break;
-        }
-        foreach ($all_updates as $module => $updates) {
-          if (!empty($updates['pending'])) {
-            foreach (array_keys($updates['pending']) as $update_name) {
-              $this->fail("The $update_name() update function from the $module module did not run.");
-            }
-          }
-        }
-      }
-
-      // Ensure that the container is updated if any modules are installed or
-      // uninstalled during the update.
-      /** @var \Drupal\Core\Extension\ModuleHandlerInterface $module_handler */
-      $module_handler = $this->container->get('module_handler');
-      $config_module_list = $this->config('core.extension')->get('module');
-      $module_handler_list = $module_handler->getModuleList();
-      $modules_installed = FALSE;
-      // Modules that are in configuration but not the module handler have been
-      // installed.
-      foreach (array_keys(array_diff_key($config_module_list, $module_handler_list)) as $module) {
-        $module_handler->addModule($module, drupal_get_path('module', $module));
-        $modules_installed = TRUE;
-      }
-      $modules_uninstalled = FALSE;
-      $module_handler_list = $module_handler->getModuleList();
-      // Modules that are in the module handler but not configuration have been
-      // uninstalled.
-      foreach (array_keys(array_diff_key($module_handler_list, $config_module_list)) as $module) {
-        $modules_uninstalled = TRUE;
-        unset($module_handler_list[$module]);
-      }
-      if ($modules_installed || $modules_uninstalled) {
-        // Note that resetAll() does not reset the kernel module list so we
-        // have to do that manually.
-        $this->kernel->updateModules($module_handler_list, $module_handler_list);
-      }
-
-      // If we have successfully clicked 'Apply pending updates' then we need to
-      // clear the caches in the update test runner as this has occurred as part
-      // of the updates.
-      $this->resetAll();
-
-      // The config schema can be incorrect while the update functions are being
-      // executed. But once the update has been completed, it needs to be valid
-      // again. Assert the schema of all configuration objects now.
-      $names = $this->container->get('config.storage')->listAll();
-
-      // Allow tests to opt out of checking specific configuration.
-      $exclude = $this->getConfigSchemaExclusions();
-      /** @var \Drupal\Core\Config\TypedConfigManagerInterface $typed_config */
-      $typed_config = $this->container->get('config.typed');
-      foreach ($names as $name) {
-        if (in_array($name, $exclude, TRUE)) {
-          // Skip checking schema if the config is listed in the
-          // $configSchemaCheckerExclusions property.
-          continue;
-        }
-        $config = $this->config($name);
-        $this->assertConfigSchema($typed_config, $name, $config->get());
-      }
-
-      // Ensure that the update hooks updated all entity schema.
-      $needs_updates = \Drupal::entityDefinitionUpdateManager()->needsUpdates();
-      if ($needs_updates) {
-        foreach (\Drupal::entityDefinitionUpdateManager()->getChangeSummary() as $entity_type_id => $summary) {
-          $entity_type_label = \Drupal::entityTypeManager()->getDefinition($entity_type_id)->getLabel();
-          foreach ($summary as $message) {
-            $this->fail("$entity_type_label: $message");
-          }
-        }
-        // The above calls to `fail()` should prevent this from ever being
-        // called, but it is here in case something goes really wrong.
-        $this->assertFalse($needs_updates, 'After all updates ran, entity schema is up to date.');
-      }
-    }
+    $this->doRunUpdates($this->updateUrl);
   }
 
   /**
@@ -449,13 +335,4 @@ protected function replaceUser1() {
     $account->save();
   }
 
-  /**
-   * Tests the selection page.
-   */
-  protected function doSelectionTest() {
-    // No-op. Tests wishing to do test the selection page or the general
-    // update.php environment before running update.php can override this method
-    // and implement their required tests.
-  }
-
 }
diff --git a/web/core/tests/Drupal/KernelTests/Core/Database/DatabaseLegacyTest.php b/web/core/tests/Drupal/KernelTests/Core/Database/DatabaseLegacyTest.php
index 249b057006..066772fbbc 100644
--- a/web/core/tests/Drupal/KernelTests/Core/Database/DatabaseLegacyTest.php
+++ b/web/core/tests/Drupal/KernelTests/Core/Database/DatabaseLegacyTest.php
@@ -137,7 +137,7 @@ public function testDbChangeField() {
    * Tests deprecation of the db_field_set_default() function.
    *
    * @expectedDeprecation db_field_set_default() is deprecated in drupal:8.0.0. It will be removed from drupal:9.0.0. Instead, get a database connection injected into your service from the container, get its schema driver, and call changeField() on it, passing a full field specification. For example, $injected_database->schema()->changeField($table, $field, $field_new, $spec, $keys_new). See https://www.drupal.org/node/2993033
-   * @expectedDeprecation fieldSetDefault() is deprecated in Drupal 8.7.0 and will be removed before Drupal 9.0.0. Instead, call ::changeField() passing a full field specification. See https://www.drupal.org/node/2999035
+   * @expectedDeprecation fieldSetDefault() is deprecated in drupal:8.7.0 and will be removed before drupal:9.0.0. Instead, call ::changeField() passing a full field specification. See https://www.drupal.org/node/2999035
    * @doesNotPerformAssertions
    */
   public function testDbFieldSetDefault() {
@@ -148,7 +148,7 @@ public function testDbFieldSetDefault() {
    * Tests deprecation of the db_field_set_no_default() function.
    *
    * @expectedDeprecation db_field_set_no_default() is deprecated in drupal:8.0.0. It will be removed from drupal:9.0.0. Instead, get a database connection injected into your service from the container, get its schema driver, and call changeField() on it, passing a full field specification. For example, $injected_database->schema()->changeField($table, $field, $field_new, $spec, $keys_new). See https://www.drupal.org/node/2993033
-   * @expectedDeprecation fieldSetNoDefault() is deprecated in Drupal 8.7.0 and will be removed before Drupal 9.0.0. Instead, call ::changeField() passing a full field specification. See https://www.drupal.org/node/2999035
+   * @expectedDeprecation fieldSetNoDefault() is deprecated in drupal:8.7.0 and will be removed before drupal:9.0.0. Instead, call ::changeField() passing a full field specification. See https://www.drupal.org/node/2999035
    * @doesNotPerformAssertions
    */
   public function testDbFieldSetNoDefault() {
@@ -158,8 +158,8 @@ public function testDbFieldSetNoDefault() {
   /**
    * Tests Schema::fieldSetDefault and Schema::fieldSetNoDefault.
    *
-   * @expectedDeprecation fieldSetDefault() is deprecated in Drupal 8.7.0 and will be removed before Drupal 9.0.0. Instead, call ::changeField() passing a full field specification. See https://www.drupal.org/node/2999035
-   * @expectedDeprecation fieldSetNoDefault() is deprecated in Drupal 8.7.0 and will be removed before Drupal 9.0.0. Instead, call ::changeField() passing a full field specification. See https://www.drupal.org/node/2999035
+   * @expectedDeprecation fieldSetDefault() is deprecated in drupal:8.7.0 and will be removed before drupal:9.0.0. Instead, call ::changeField() passing a full field specification. See https://www.drupal.org/node/2999035
+   * @expectedDeprecation fieldSetNoDefault() is deprecated in drupal:8.7.0 and will be removed before drupal:9.0.0. Instead, call ::changeField() passing a full field specification. See https://www.drupal.org/node/2999035
    */
   public function testSchemaFieldDefaultChange() {
     // Create a table.
@@ -446,7 +446,7 @@ public function testDbTruncate() {
   /**
    * Tests deprecation of the $options 'target' key in Connection::query.
    *
-   * @expectedDeprecation Passing a 'target' key to \Drupal\Core\Database\Connection::query $options argument is deprecated in Drupal 8.0.x and will be removed before Drupal 9.0.0. Instead, use \Drupal\Core\Database\Database::getConnection($target)->query(). See https://www.drupal.org/node/2993033.
+   * @expectedDeprecation Passing a 'target' key to \Drupal\Core\Database\Connection::query $options argument is deprecated in drupal:8.0.x and will be removed before drupal:9.0.0. Instead, use \Drupal\Core\Database\Database::getConnection($target)->query(). See https://www.drupal.org/node/2993033
    */
   public function testDbOptionsTarget() {
     $this->assertNotNull($this->connection->query('SELECT * FROM {test}', [], ['target' => 'bar']));
@@ -455,7 +455,7 @@ public function testDbOptionsTarget() {
   /**
    * Tests deprecation of the $options 'target' key in Select.
    *
-   * @expectedDeprecation Passing a 'target' key to \Drupal\Core\Database\Connection::query $options argument is deprecated in Drupal 8.0.x and will be removed before Drupal 9.0.0. Instead, use \Drupal\Core\Database\Database::getConnection($target)->query(). See https://www.drupal.org/node/2993033.
+   * @expectedDeprecation Passing a 'target' key to \Drupal\Core\Database\Connection::query $options argument is deprecated in drupal:8.0.x and will be removed before drupal:9.0.0. Instead, use \Drupal\Core\Database\Database::getConnection($target)->query(). See https://www.drupal.org/node/2993033
    */
   public function testDbOptionsTargetInSelect() {
     $this->assertNotNull($this->connection->select('test', 't', ['target' => 'bar'])->fields('t')->execute());
@@ -486,7 +486,7 @@ public function testDbQueryRange() {
   /**
    * Tests deprecation of the db_add_index() function.
    *
-   * @expectedDeprecation db_add_index() is deprecated in Drupal 8.0.x and will be removed in Drupal 9.0.0. Instead, get a database connection injected into your service from the container, get its schema driver, and call addIndex() on it. For example, $injected_database->schema()->addIndex($table, $name, $fields, $spec). See https://www.drupal.org/node/2993033
+   * @expectedDeprecation db_add_index() is deprecated in drupal:8.0.x and will be removed in drupal:9.0.0. Instead, get a database connection injected into your service from the container, get its schema driver, and call addIndex() on it. For example, $injected_database->schema()->addIndex($table, $name, $fields, $spec). See https://www.drupal.org/node/2993033
    */
   public function testDbAddIndex() {
     $table_specification = [
diff --git a/web/core/tests/Drupal/KernelTests/Core/Database/SelectTest.php b/web/core/tests/Drupal/KernelTests/Core/Database/SelectTest.php
index 8407aee9d2..3712ee8757 100644
--- a/web/core/tests/Drupal/KernelTests/Core/Database/SelectTest.php
+++ b/web/core/tests/Drupal/KernelTests/Core/Database/SelectTest.php
@@ -54,15 +54,17 @@ public function testVulnerableComment() {
     $records = $result->fetchAll();
 
     $query = (string) $query;
-    $expected = "/* Testing query comments  * / SELECT nid FROM {node}. -- */ SELECT test.name AS name, test.age AS age\nFROM\n{test} test";
+    $expected = "/* Testing query comments  * / SELECT nid FROM {node}. -- */";
 
-    $this->assertEqual(count($records), 4, 'Returned the correct number of rows.');
-    $this->assertNotIdentical(FALSE, strpos($query, $expected), 'The flattened query contains the sanitised comment string.');
+    // Check the returned number of rows.
+    $this->assertCount(4, $records);
+    // Check that the flattened query contains the sanitised comment string.
+    $this->assertContains($expected, $query);
 
     $connection = Database::getConnection();
     foreach ($this->makeCommentsProvider() as $test_set) {
       list($expected, $comments) = $test_set;
-      $this->assertEqual($expected, $connection->makeComment($comments));
+      $this->assertEquals($expected, $connection->makeComment($comments));
     }
   }
 
diff --git a/web/core/tests/Drupal/KernelTests/Core/Entity/FieldSqlStorageTest.php b/web/core/tests/Drupal/KernelTests/Core/Entity/FieldSqlStorageTest.php
index 2a8faf90e3..28766fd829 100644
--- a/web/core/tests/Drupal/KernelTests/Core/Entity/FieldSqlStorageTest.php
+++ b/web/core/tests/Drupal/KernelTests/Core/Entity/FieldSqlStorageTest.php
@@ -148,7 +148,7 @@ public function testFieldLoad() {
           $this->assertEqual($entity->{$this->fieldName}[$delta]->value, $value);
         }
         else {
-          $this->assertFalse(array_key_exists($delta, $entity->{$this->fieldName}));
+          $this->assertArrayNotHasKey($delta, $entity->{$this->fieldName});
         }
       }
     }
@@ -160,7 +160,7 @@ public function testFieldLoad() {
         $this->assertEqual($entity->{$this->fieldName}[$delta]->value, $value);
       }
       else {
-        $this->assertFalse(array_key_exists($delta, $entity->{$this->fieldName}));
+        $this->assertArrayNotHasKey($delta, $entity->{$this->fieldName});
       }
     }
 
@@ -171,7 +171,7 @@ public function testFieldLoad() {
     $connection->insert($this->table)->fields($columns)->values($values)->execute();
     $connection->insert($this->revisionTable)->fields($columns)->values($values)->execute();
     $entity = $storage->load($entity->id());
-    $this->assertFalse(array_key_exists($unavailable_langcode, $entity->{$this->fieldName}));
+    $this->assertArrayNotHasKey($unavailable_langcode, $entity->{$this->fieldName});
   }
 
   /**
diff --git a/web/core/tests/Drupal/KernelTests/Core/Entity/FieldableEntityDefinitionUpdateTest.php b/web/core/tests/Drupal/KernelTests/Core/Entity/FieldableEntityDefinitionUpdateTest.php
index a525f650eb..6503b41d23 100644
--- a/web/core/tests/Drupal/KernelTests/Core/Entity/FieldableEntityDefinitionUpdateTest.php
+++ b/web/core/tests/Drupal/KernelTests/Core/Entity/FieldableEntityDefinitionUpdateTest.php
@@ -94,6 +94,10 @@ protected function setUp() {
     $this->entityFieldManager = $this->container->get('entity_field.manager');
     $this->database = $this->container->get('database');
 
+    // Add a non-revisionable bundle field to test revision field table
+    // handling.
+    $this->addBundleField('string', FALSE, TRUE);
+
     // The 'changed' field type has a special behavior because it updates itself
     // automatically if any of the other field values of an entity have been
     // updated, so add it to the entity type that is being tested in order to
@@ -294,7 +298,9 @@ protected function insertData($revisionable, $translatable) {
     for ($i = $next_id; $i <= $next_id + 2; $i++) {
       $entity = $storage->create([
         'id' => $i,
+        'type' => 'test_bundle',
         'name' => 'test entity - ' . $i . ' - en',
+        'new_bundle_field' => 'bundle field - ' . $i . ' - en',
         'test_multiple_properties' => [
           'value1' => 'shared table - ' . $i . ' - value 1 - en',
           'value2' => 'shared table - ' . $i . ' - value 2 - en',
@@ -315,6 +321,7 @@ protected function insertData($revisionable, $translatable) {
       if ($translatable) {
         $translation = $entity->addTranslation('ro', [
           'name' => 'test entity - ' . $i . ' - ro',
+          'new_bundle_field' => 'bundle field - ' . $i . ' - ro',
           'test_multiple_properties' => [
             'value1' => 'shared table - ' . $i . ' - value 1 - ro',
             'value2' => 'shared table - ' . $i . ' - value 2 - ro',
@@ -338,6 +345,7 @@ protected function insertData($revisionable, $translatable) {
         // Create a new pending revision.
         $revision_2 = $storage->createRevision($entity, FALSE);
         $revision_2->name = 'test entity - ' . $i . ' - en - rev2';
+        $revision_2->new_bundle_field = 'bundle field - ' . $i . ' - en - rev2';
         $revision_2->test_multiple_properties->value1 = 'shared table - ' . $i . ' - value 1 - en - rev2';
         $revision_2->test_multiple_properties->value2 = 'shared table - ' . $i . ' - value 2 - en - rev2';
         $revision_2->test_multiple_properties_multiple_values[0]->value1 = 'dedicated table - ' . $i . ' - delta 0 - value 1 - en - rev2';
@@ -349,6 +357,7 @@ protected function insertData($revisionable, $translatable) {
         if ($translatable) {
           $revision_2_translation = $storage->createRevision($entity->getTranslation('ro'), FALSE);
           $revision_2_translation->name = 'test entity - ' . $i . ' - ro - rev2';
+          $revision_2->new_bundle_field = 'bundle field - ' . $i . ' - ro - rev2';
           $revision_2->test_multiple_properties->value1 = 'shared table - ' . $i . ' - value 1 - ro - rev2';
           $revision_2->test_multiple_properties->value2 = 'shared table - ' . $i . ' - value 2 - ro - rev2';
           $revision_2_translation->test_multiple_properties_multiple_values[0]->value1 = 'dedicated table - ' . $i . ' - delta 0 - value 1 - ro - rev2';
@@ -375,6 +384,7 @@ protected function assertEntityData($revisionable, $translatable) {
     foreach ($entities as $entity_id => $entity) {
       /** @var \Drupal\Core\Entity\ContentEntityInterface $entity */
       $this->assertEquals("test entity - {$entity->id()} - en", $entity->label());
+      $this->assertEquals("bundle field - {$entity->id()} - en", $entity->new_bundle_field->value);
       $this->assertEquals("shared table - {$entity->id()} - value 1 - en", $entity->test_multiple_properties->value1);
       $this->assertEquals("shared table - {$entity->id()} - value 2 - en", $entity->test_multiple_properties->value2);
       $this->assertEquals("dedicated table - {$entity->id()} - delta 0 - value 1 - en", $entity->test_multiple_properties_multiple_values[0]->value1);
@@ -385,6 +395,7 @@ protected function assertEntityData($revisionable, $translatable) {
       if ($translatable) {
         $translation = $entity->getTranslation('ro');
         $this->assertEquals("test entity - {$translation->id()} - ro", $translation->label());
+        $this->assertEquals("bundle field - {$entity->id()} - ro", $translation->new_bundle_field->value);
         $this->assertEquals("shared table - {$translation->id()} - value 1 - ro", $translation->test_multiple_properties->value1);
         $this->assertEquals("shared table - {$translation->id()} - value 2 - ro", $translation->test_multiple_properties->value2);
         $this->assertEquals("dedicated table - {$translation->id()} - delta 0 - value 1 - ro", $translation->test_multiple_properties_multiple_values[0]->value1);
@@ -403,6 +414,7 @@ protected function assertEntityData($revisionable, $translatable) {
         /** @var \Drupal\Core\Entity\ContentEntityInterface $revision */
         $revision_label = $revision->isDefaultRevision() ? NULL : ' - rev2';
         $this->assertEquals("test entity - {$revision->id()} - en{$revision_label}", $revision->label());
+        $this->assertEquals("bundle field - {$revision->id()} - en{$revision_label}", $revision->new_bundle_field->value);
         $this->assertEquals("shared table - {$revision->id()} - value 1 - en{$revision_label}", $revision->test_multiple_properties->value1);
         $this->assertEquals("shared table - {$revision->id()} - value 2 - en{$revision_label}", $revision->test_multiple_properties->value2);
         $this->assertEquals("dedicated table - {$revision->id()} - delta 0 - value 1 - en{$revision_label}", $revision->test_multiple_properties_multiple_values[0]->value1);
@@ -413,6 +425,7 @@ protected function assertEntityData($revisionable, $translatable) {
         if ($translatable) {
           $translation = $revision->getTranslation('ro');
           $this->assertEquals("test entity - {$translation->id()} - ro{$revision_label}", $translation->label());
+          $this->assertEquals("bundle field - {$entity->id()} - ro{$revision_label}", $translation->new_bundle_field->value);
           $this->assertEquals("shared table - {$revision->id()} - value 1 - ro{$revision_label}", $translation->test_multiple_properties->value1);
           $this->assertEquals("shared table - {$revision->id()} - value 2 - ro{$revision_label}", $translation->test_multiple_properties->value2);
           $this->assertEquals("dedicated table - {$translation->id()} - delta 0 - value 1 - ro{$revision_label}", $translation->test_multiple_properties_multiple_values[0]->value1);
@@ -457,6 +470,8 @@ protected function assertEntityTypeSchema($revisionable, $translatable, $new_bas
     else {
       $this->assertNonRevisionableAndNonTranslatable();
     }
+
+    $this->assertBundleFieldSchema($revisionable);
   }
 
   /**
@@ -589,6 +604,26 @@ protected function assertNonRevisionableAndNonTranslatable() {
     $this->assertFalse($database_schema->tableExists($entity_type->getRevisionDataTable()));
   }
 
+  /**
+   * Asserts that the bundle field schema is correct.
+   *
+   * @param bool $revisionable
+   *   Whether the entity type is revisionable or not.
+   */
+  protected function assertBundleFieldSchema($revisionable) {
+    $entity_type_id = 'entity_test_update';
+    $field_storage_definition = $this->entityFieldManager->getFieldStorageDefinitions($entity_type_id)['new_bundle_field'];
+    $database_schema = $this->database->schema();
+    /** @var \Drupal\Core\Entity\Sql\DefaultTableMapping $table_mapping */
+    $table_mapping = $this->entityTypeManager
+      ->getStorage($entity_type_id)
+      ->getTableMapping();
+    $this->assertTrue($database_schema->tableExists($table_mapping->getDedicatedDataTableName($field_storage_definition)));
+    if ($revisionable) {
+      $this->assertTrue($database_schema->tableExists($table_mapping->getDedicatedRevisionTableName($field_storage_definition)));
+    }
+  }
+
   /**
    * Asserts that the backup tables have been kept after a successful update.
    */
@@ -617,7 +652,7 @@ public function testFieldableEntityTypeUpdatesErrorHandling() {
     $this->insertData(FALSE, TRUE);
 
     $tables = $schema->findTables('old_%');
-    $this->assertCount(3, $tables);
+    $this->assertCount(4, $tables);
     foreach ($tables as $table) {
       $schema->dropTable($table);
     }
@@ -783,7 +818,7 @@ public function testFieldableEntityTypeUpdatesRemoveBackupTables() {
 
     // Check that backup tables are kept by default.
     $tables = $schema->findTables('old_%');
-    $this->assertCount(3, $tables);
+    $this->assertCount(4, $tables);
     foreach ($tables as $table) {
       $schema->dropTable($table);
     }
diff --git a/web/core/tests/Drupal/KernelTests/KernelTestBase.php b/web/core/tests/Drupal/KernelTests/KernelTestBase.php
index 957ed79582..2f74b474e3 100644
--- a/web/core/tests/Drupal/KernelTests/KernelTestBase.php
+++ b/web/core/tests/Drupal/KernelTests/KernelTestBase.php
@@ -274,6 +274,9 @@ protected function bootEnvironment() {
     $settings = [
       'hash_salt' => get_class($this),
       'file_public_path' => $this->siteDirectory . '/files',
+      // Skip the "path_alias" schema check for kernel tests, since they do not
+      // rely on the full schema being installed.
+      'system.path_alias_schema_check' => FALSE,
       // Disable Twig template caching/dumping.
       'twig_cache' => FALSE,
       // @see \Drupal\KernelTests\KernelTestBase::register()
@@ -610,9 +613,9 @@ protected function tearDown() {
 
     // Remove all prefixed tables.
     $original_connection_info = Database::getConnectionInfo('simpletest_original_default');
-    $original_prefix = $original_connection_info['default']['prefix']['default'];
+    $original_prefix = $original_connection_info['default']['prefix']['default'] ?? NULL;
     $test_connection_info = Database::getConnectionInfo('default');
-    $test_prefix = $test_connection_info['default']['prefix']['default'];
+    $test_prefix = $test_connection_info['default']['prefix']['default'] ?? NULL;
     if ($original_prefix != $test_prefix) {
       $tables = Database::getConnection()->schema()->findTables('%');
       foreach ($tables as $table) {
diff --git a/web/core/tests/Drupal/Tests/BrowserTestBase.php b/web/core/tests/Drupal/Tests/BrowserTestBase.php
index 96657a93e7..d768bfcc3f 100644
--- a/web/core/tests/Drupal/Tests/BrowserTestBase.php
+++ b/web/core/tests/Drupal/Tests/BrowserTestBase.php
@@ -350,11 +350,15 @@ protected function getResponseLogHandler() {
               $html_output = 'Called from ' . $caller['function'] . ' line ' . $caller['line'];
               $html_output .= '<hr />' . $request->getMethod() . ' request to: ' . $request->getUri();
 
+              // Get the response body as a string. Any errors are silenced as
+              // tests should not fail if there is a problem. On PHP 7.4
+              // \Drupal\Tests\migrate\Functional\process\DownloadFunctionalTest
+              // fails without the usage of a silence operator.
+              $body = @(string) $response->getBody();
               // On redirect responses (status code starting with '3') we need
               // to remove the meta tag that would do a browser refresh. We
               // don't want to redirect developers away when they look at the
               // debug output file in their browser.
-              $body = $response->getBody();
               $status_code = (string) $response->getStatusCode();
               if ($status_code[0] === '3') {
                 $body = preg_replace('#<meta http-equiv="refresh" content=.+/>#', '', $body, 1);
diff --git a/web/core/tests/Drupal/Tests/Component/Annotation/Doctrine/DocParserTest.php b/web/core/tests/Drupal/Tests/Component/Annotation/Doctrine/DocParserTest.php
index 3d3544b750..1e2eec14f9 100644
--- a/web/core/tests/Drupal/Tests/Component/Annotation/Doctrine/DocParserTest.php
+++ b/web/core/tests/Drupal/Tests/Component/Annotation/Doctrine/DocParserTest.php
@@ -707,12 +707,11 @@ public function testAnnotationWithRequiredAttributesWithoutContructor()
 
     }
 
-    /**
-     * @expectedException \Doctrine\Common\Annotations\AnnotationException
-     * @expectedExceptionMessage Attribute "value" of @Drupal\Tests\Component\Annotation\Doctrine\Fixtures\AnnotationEnum declared on property SomeClassName::invalidProperty. accept only [ONE, TWO, THREE], but got FOUR.
-     */
     public function testAnnotationEnumeratorException()
     {
+        $this->expectException('\Doctrine\Common\Annotations\AnnotationException');
+        $this->expectExceptionMessage('Attribute "value" of @Drupal\Tests\Component\Annotation\Doctrine\Fixtures\AnnotationEnum declared on property SomeClassName::invalidProperty. accept only [ONE, TWO, THREE], but got FOUR.');
+
         $parser     = $this->createTestParser();
         $context    = 'property SomeClassName::invalidProperty.';
         $docblock   = '@Drupal\Tests\Component\Annotation\Doctrine\Fixtures\AnnotationEnum("FOUR")';
@@ -722,12 +721,11 @@ public function testAnnotationEnumeratorException()
         $parser->parse($docblock, $context);
     }
 
-    /**
-     * @expectedException \Doctrine\Common\Annotations\AnnotationException
-     * @expectedExceptionMessage Attribute "value" of @Drupal\Tests\Component\Annotation\Doctrine\Fixtures\AnnotationEnumLiteral declared on property SomeClassName::invalidProperty. accept only [AnnotationEnumLiteral::ONE, AnnotationEnumLiteral::TWO, AnnotationEnumLiteral::THREE], but got 4.
-     */
     public function testAnnotationEnumeratorLiteralException()
     {
+        $this->expectException('\Doctrine\Common\Annotations\AnnotationException');
+        $this->expectExceptionMessage('Attribute "value" of @Drupal\Tests\Component\Annotation\Doctrine\Fixtures\AnnotationEnumLiteral declared on property SomeClassName::invalidProperty. accept only [AnnotationEnumLiteral::ONE, AnnotationEnumLiteral::TWO, AnnotationEnumLiteral::THREE], but got 4.');
+
         $parser     = $this->createTestParser();
         $context    = 'property SomeClassName::invalidProperty.';
         $docblock   = '@Drupal\Tests\Component\Annotation\Doctrine\Fixtures\AnnotationEnumLiteral(4)';
@@ -737,12 +735,11 @@ public function testAnnotationEnumeratorLiteralException()
         $parser->parse($docblock, $context);
     }
 
-    /**
-     * @expectedException \InvalidArgumentException
-     * @expectedExceptionMessage @Enum supports only scalar values "array" given.
-     */
     public function testAnnotationEnumInvalidTypeDeclarationException()
     {
+        $this->expectException('\InvalidArgumentException');
+        $this->expectExceptionMessage('@Enum supports only scalar values "array" given.');
+
         $parser     = $this->createTestParser();
         $docblock   = '@Drupal\Tests\Component\Annotation\Doctrine\Fixtures\AnnotationEnumInvalid("foo")';
 
@@ -750,12 +747,11 @@ public function testAnnotationEnumInvalidTypeDeclarationException()
         $parser->parse($docblock);
     }
 
-    /**
-     * @expectedException \InvalidArgumentException
-     * @expectedExceptionMessage Undefined enumerator value "3" for literal "AnnotationEnumLiteral::THREE".
-     */
     public function testAnnotationEnumInvalidLiteralDeclarationException()
     {
+        $this->expectException('\InvalidArgumentException');
+        $this->expectExceptionMessage('Undefined enumerator value "3" for literal "AnnotationEnumLiteral::THREE".');
+
         $parser     = $this->createTestParser();
         $docblock   = '@Drupal\Tests\Component\Annotation\Doctrine\Fixtures\AnnotationEnumLiteralInvalid("foo")';
 
@@ -875,12 +871,11 @@ public function testSupportClassConstants($docblock, $expected)
         $this->assertEquals($expected, $annotation->value);
     }
 
-    /**
-     * @expectedException \Doctrine\Common\Annotations\AnnotationException
-     * @expectedExceptionMessage The annotation @SomeAnnotationClassNameWithoutConstructorAndProperties declared on  does not accept any values, but got {"value":"Foo"}.
-     */
     public function testWithoutConstructorWhenIsNotDefaultValue()
     {
+        $this->expectException('\Doctrine\Common\Annotations\AnnotationException');
+        $this->expectExceptionMessage('The annotation @SomeAnnotationClassNameWithoutConstructorAndProperties declared on  does not accept any values, but got {"value":"Foo"}.');
+
         $parser     = $this->createTestParser();
         $docblock   = <<<DOCBLOCK
 /**
@@ -893,12 +888,11 @@ public function testWithoutConstructorWhenIsNotDefaultValue()
         $parser->parse($docblock);
     }
 
-    /**
-     * @expectedException \Doctrine\Common\Annotations\AnnotationException
-     * @expectedExceptionMessage The annotation @SomeAnnotationClassNameWithoutConstructorAndProperties declared on  does not accept any values, but got {"value":"Foo"}.
-     */
     public function testWithoutConstructorWhenHasNoProperties()
     {
+        $this->expectException('\Doctrine\Common\Annotations\AnnotationException');
+        $this->expectExceptionMessage('The annotation @SomeAnnotationClassNameWithoutConstructorAndProperties declared on  does not accept any values, but got {"value":"Foo"}.');
+
         $parser     = $this->createTestParser();
         $docblock   = <<<DOCBLOCK
 /**
@@ -910,12 +904,11 @@ public function testWithoutConstructorWhenHasNoProperties()
         $parser->parse($docblock);
     }
 
-    /**
-     * @expectedException \Doctrine\Common\Annotations\AnnotationException
-     * @expectedExceptionMessage Expected namespace separator or identifier, got ')' at position 24 in class @Drupal\Tests\Component\Annotation\Doctrine\Fixtures\AnnotationWithTargetSyntaxError.
-     */
     public function testAnnotationTargetSyntaxError()
     {
+        $this->expectException('\Doctrine\Common\Annotations\AnnotationException');
+        $this->expectExceptionMessage('Expected namespace separator or identifier, got \')\' at position 24 in class @Drupal\Tests\Component\Annotation\Doctrine\Fixtures\AnnotationWithTargetSyntaxError.');
+
         $parser     = $this->createTestParser();
         $context    = 'class ' . 'SomeClassName';
         $docblock   = <<<DOCBLOCK
@@ -928,12 +921,11 @@ public function testAnnotationTargetSyntaxError()
         $parser->parse($docblock,$context);
     }
 
-    /**
-     * @expectedException \InvalidArgumentException
-     * @expectedExceptionMessage Invalid Target "Foo". Available targets: [ALL, CLASS, METHOD, PROPERTY, ANNOTATION]
-     */
     public function testAnnotationWithInvalidTargetDeclarationError()
     {
+        $this->expectException('\InvalidArgumentException');
+        $this->expectExceptionMessage('Invalid Target "Foo". Available targets: [ALL, CLASS, METHOD, PROPERTY, ANNOTATION]');
+
         $parser     = $this->createTestParser();
         $context    = 'class ' . 'SomeClassName';
         $docblock   = <<<DOCBLOCK
@@ -946,12 +938,11 @@ public function testAnnotationWithInvalidTargetDeclarationError()
         $parser->parse($docblock,$context);
     }
 
-    /**
-     * @expectedException \InvalidArgumentException
-     * @expectedExceptionMessage @Target expects either a string value, or an array of strings, "NULL" given.
-     */
     public function testAnnotationWithTargetEmptyError()
     {
+        $this->expectException('\InvalidArgumentException');
+        $this->expectExceptionMessage('@Target expects either a string value, or an array of strings, "NULL" given.');
+
         $parser     = $this->createTestParser();
         $context    = 'class ' . 'SomeClassName';
         $docblock   = <<<DOCBLOCK
@@ -1022,12 +1013,11 @@ public function testNotAnAnnotationClassIsIgnoredWithoutWarning()
         $this->assertEquals(0, count($result));
     }
 
-    /**
-     * @expectedException \Doctrine\Common\Annotations\AnnotationException
-     * @expectedExceptionMessage Expected PlainValue, got ''' at position 10.
-     */
     public function testAnnotationDontAcceptSingleQuotes()
     {
+        $this->expectException('\Doctrine\Common\Annotations\AnnotationException');
+        $this->expectExceptionMessage('Expected PlainValue, got \'\'\' at position 10.');
+
         $parser = $this->createTestParser();
         $parser->parse("@Name(foo='bar')");
     }
@@ -1045,10 +1035,11 @@ public function testAnnotationDoesntThrowExceptionWhenAtSignIsNotFollowedByIdent
 
     /**
      * @group DCOM-41
-     * @expectedException \Doctrine\Common\Annotations\AnnotationException
      */
     public function testAnnotationThrowsExceptionWhenAtSignIsNotFollowedByIdentifierInNestedAnnotation()
     {
+        $this->expectException('\Doctrine\Common\Annotations\AnnotationException');
+
         $parser = new DocParser();
         $parser->parse("@Drupal\Tests\Component\Annotation\Doctrine\Name(@')");
     }
@@ -1087,11 +1078,12 @@ public function createTestParser()
 
     /**
      * @group DDC-78
-     * @expectedException \Doctrine\Common\Annotations\AnnotationException
-     * @expectedExceptionMessage Expected PlainValue, got ''' at position 10 in class \Drupal\Tests\Component\Annotation\Doctrine\Name
      */
     public function testSyntaxErrorWithContextDescription()
     {
+        $this->expectException('\Doctrine\Common\Annotations\AnnotationException');
+        $this->expectExceptionMessage('Expected PlainValue, got \'\'\' at position 10 in class \Drupal\Tests\Component\Annotation\Doctrine\Name');
+
         $parser = $this->createTestParser();
         $parser->parse("@Name(foo='bar')", "class \Drupal\Tests\Component\Annotation\Doctrine\Name");
     }
@@ -1220,12 +1212,11 @@ public function testReservedKeywordsInAnnotations()
         $this->assertTrue($result[0] instanceof Null);
     }
 
-     /**
-     * @expectedException \Doctrine\Common\Annotations\AnnotationException
-     * @expectedExceptionMessage [Creation Error] The annotation @SomeAnnotationClassNameWithoutConstructor declared on some class does not have a property named "invalidaProperty". Available properties: data, name
-     */
     public function testSetValuesExeption()
     {
+        $this->expectException('\Doctrine\Common\Annotations\AnnotationException');
+        $this->expectExceptionMessage('[Creation Error] The annotation @SomeAnnotationClassNameWithoutConstructor declared on some class does not have a property named "invalidaProperty". Available properties: data, name');
+
         $docblock = <<<DOCBLOCK
 /**
  * @SomeAnnotationClassNameWithoutConstructor(invalidaProperty = "Some val")
@@ -1235,12 +1226,11 @@ public function testSetValuesExeption()
         $this->createTestParser()->parse($docblock, 'some class');
     }
 
-    /**
-     * @expectedException \Doctrine\Common\Annotations\AnnotationException
-     * @expectedExceptionMessage [Syntax Error] Expected Doctrine\Common\Annotations\DocLexer::T_IDENTIFIER or Doctrine\Common\Annotations\DocLexer::T_TRUE or Doctrine\Common\Annotations\DocLexer::T_FALSE or Doctrine\Common\Annotations\DocLexer::T_NULL, got '3.42' at position 5.
-     */
     public function testInvalidIdentifierInAnnotation()
     {
+        $this->expectException('\Doctrine\Common\Annotations\AnnotationException');
+        $this->expectExceptionMessage('[Syntax Error] Expected Doctrine\Common\Annotations\DocLexer::T_IDENTIFIER or Doctrine\Common\Annotations\DocLexer::T_TRUE or Doctrine\Common\Annotations\DocLexer::T_FALSE or Doctrine\Common\Annotations\DocLexer::T_NULL, got \'3.42\' at position 5.');
+
         $parser = $this->createTestParser();
         $parser->parse('@Foo\3.42');
     }
@@ -1275,12 +1265,11 @@ public function testArrayWithColon()
         $this->assertEquals(array('foo' => 'bar'), $annots[0]->value);
     }
 
-    /**
-     * @expectedException \Doctrine\Common\Annotations\AnnotationException
-     * @expectedExceptionMessage [Semantical Error] Couldn't find constant foo.
-     */
     public function testInvalidContantName()
     {
+        $this->expectException('\Doctrine\Common\Annotations\AnnotationException');
+        $this->expectExceptionMessage('[Semantical Error] Couldn\'t find constant foo.');
+
         $parser = $this->createTestParser();
         $parser->parse('@Name(foo: "bar")');
     }
diff --git a/web/core/tests/Drupal/Tests/Component/Datetime/TimeTest.php b/web/core/tests/Drupal/Tests/Component/Datetime/TimeTest.php
index e3723135c6..ddc9d58527 100644
--- a/web/core/tests/Drupal/Tests/Component/Datetime/TimeTest.php
+++ b/web/core/tests/Drupal/Tests/Component/Datetime/TimeTest.php
@@ -79,6 +79,28 @@ public function testGetRequestMicroTime() {
     $this->assertEquals($expected, $this->time->getRequestMicroTime());
   }
 
+  /**
+   * @covers ::getRequestTime
+   */
+  public function testGetRequestTimeNoRequest() {
+    $expected = 12345678;
+    unset($_SERVER['REQUEST_TIME']);
+    $this->assertEquals($expected, $this->time->getRequestTime());
+    $_SERVER['REQUEST_TIME'] = 23456789;
+    $this->assertEquals(23456789, $this->time->getRequestTime());
+  }
+
+  /**
+   * @covers ::getRequestMicroTime
+   */
+  public function testGetRequestMicroTimeNoRequest() {
+    $expected = 1234567.89;
+    unset($_SERVER['REQUEST_TIME_FLOAT']);
+    $this->assertEquals($expected, $this->time->getRequestMicroTime());
+    $_SERVER['REQUEST_TIME_FLOAT'] = 2345678.90;
+    $this->assertEquals(2345678.90, $this->time->getRequestMicroTime());
+  }
+
   /**
    * Tests the getCurrentTime method.
    *
diff --git a/web/core/tests/Drupal/Tests/Core/Access/AccessResultTest.php b/web/core/tests/Drupal/Tests/Core/Access/AccessResultTest.php
index c2ecf09263..d311cdd436 100644
--- a/web/core/tests/Drupal/Tests/Core/Access/AccessResultTest.php
+++ b/web/core/tests/Drupal/Tests/Core/Access/AccessResultTest.php
@@ -15,6 +15,7 @@
 use Drupal\Core\Cache\CacheableDependencyInterface;
 use Drupal\Core\Config\Config;
 use Drupal\Core\DependencyInjection\ContainerBuilder;
+use Drupal\Core\Entity\EntityInterface;
 use Drupal\Tests\UnitTestCase;
 
 /**
@@ -969,6 +970,21 @@ public function providerTestAllowedIfHasPermissions() {
     return $data;
   }
 
+  /**
+   * @expectedDeprecation Drupal\Core\Access\AccessResult::cacheUntilEntityChanges is deprecated in drupal:8.0.0 and is removed in drupal:9.0.0. Use \Drupal\Core\Access\AccessResult::addCacheableDependency() instead.
+   * @group legacy
+   */
+  public function testCacheUntilEntityChanges() {
+    $entity = $this->prophesize(EntityInterface::class);
+    $entity->getCacheContexts()->willReturn(['context']);
+    $entity->getCacheTags()->willReturn(['tag']);
+    $entity->getCacheMaxAge()->willReturn(10);
+    $access_result = AccessResult::neutral()->cacheUntilEntityChanges($entity->reveal());
+    $this->assertSame(['context'], $access_result->getCacheContexts());
+    $this->assertSame(['tag'], $access_result->getCacheTags());
+    $this->assertSame(10, $access_result->getCacheMaxAge());
+  }
+
   /**
    * @expectedDeprecation Drupal\Core\Access\AccessResult::cacheUntilConfigurationChanges is deprecated in drupal:8.0.0 and is removed in drupal:9.0.0. Use \Drupal\Core\Access\AccessResult::addCacheableDependency() instead.
    * @group legacy
diff --git a/web/core/tests/Drupal/Tests/Core/Assert/AssertLegacyTraitTest.php b/web/core/tests/Drupal/Tests/Core/Assert/AssertLegacyTraitTest.php
index b865652809..9d9b75e2b4 100644
--- a/web/core/tests/Drupal/Tests/Core/Assert/AssertLegacyTraitTest.php
+++ b/web/core/tests/Drupal/Tests/Core/Assert/AssertLegacyTraitTest.php
@@ -156,7 +156,7 @@ public function testAssertOptionSelectedFail() {
 
   /**
    * @covers ::assertNoPattern
-   * @expectedDeprecation assertNoPattern() is deprecated and scheduled for removal in Drupal 9.0.0. Use $this->assertSession()->responseNotMatches($pattern) instead. See https://www.drupal.org/node/2864262.
+   * @expectedDeprecation AssertLegacyTrait::assertNoPattern() is deprecated in drupal:8.4.0 and is removed from drupal:10.0.0. Use $this->assertSession()->responseNotMatches() instead. See https://www.drupal.org/node/2864262
    */
   public function testAssertNoPattern() {
     $this->webAssert
@@ -168,7 +168,7 @@ public function testAssertNoPattern() {
 
   /**
    * @covers ::assertNoCacheTag
-   * @expectedDeprecation assertNoCacheTag() is deprecated and scheduled for removal in Drupal 9.0.0. Use $this->assertSession()->responseHeaderNotContains() instead. See https://www.drupal.org/node/2864029.
+   * @expectedDeprecation AssertLegacyTrait::assertNoCacheTag() is deprecated in drupal:8.4.0 and is removed from drupal:10.0.0. Use $this->assertSession()->responseHeaderNotContains() instead. See https://www.drupal.org/node/2864029
    */
   public function testAssertNoCacheTag() {
     $this->webAssert
diff --git a/web/core/tests/Drupal/Tests/Core/Asset/CssCollectionRendererUnitTest.php b/web/core/tests/Drupal/Tests/Core/Asset/CssCollectionRendererUnitTest.php
index af30711717..d3f973dc39 100644
--- a/web/core/tests/Drupal/Tests/Core/Asset/CssCollectionRendererUnitTest.php
+++ b/web/core/tests/Drupal/Tests/Core/Asset/CssCollectionRendererUnitTest.php
@@ -290,7 +290,7 @@ public function testRenderInvalidType() {
       'browsers' => [],
       'data' => 'http://example.com/popular.js',
     ];
-    $this->renderer->render($css_group);
+    $this->renderer->render([$css_group]);
   }
 
 }
diff --git a/web/core/tests/Drupal/Tests/Core/DependencyInjection/YamlFileLoaderTest.php b/web/core/tests/Drupal/Tests/Core/DependencyInjection/YamlFileLoaderTest.php
index 4093b6a2eb..26ffcd4b84 100644
--- a/web/core/tests/Drupal/Tests/Core/DependencyInjection/YamlFileLoaderTest.php
+++ b/web/core/tests/Drupal/Tests/Core/DependencyInjection/YamlFileLoaderTest.php
@@ -34,7 +34,11 @@ class: \Drupal\Core\ExampleClass
 YAML;
 
     vfsStream::setup('drupal', NULL, [
-      'modules/example/example.yml' => $yml,
+      'modules' => [
+        'example' => [
+          'example.yml' => $yml,
+        ],
+      ],
     ]);
 
     $builder = new ContainerBuilder();
diff --git a/web/core/tests/Drupal/Tests/Core/Field/AllowedTagsXssTraitDeprecateTest.php b/web/core/tests/Drupal/Tests/Core/Field/AllowedTagsXssTraitDeprecateTest.php
new file mode 100644
index 0000000000..d018e154c1
--- /dev/null
+++ b/web/core/tests/Drupal/Tests/Core/Field/AllowedTagsXssTraitDeprecateTest.php
@@ -0,0 +1,37 @@
+<?php
+
+namespace Drupal\Tests\Core\Field;
+
+use Drupal\Core\Field\AllowedTagsXssTrait;
+use Drupal\Core\Field\FieldFilteredMarkup;
+use Drupal\Tests\UnitTestCase;
+
+/**
+ * Tests AllowedTagsXssTrait.
+ *
+ * @group field
+ * @group legacy
+ */
+class AllowedTagsXssTraitDeprecateTest extends UnitTestCase {
+
+  /**
+   * @expectedDeprecation Drupal\Core\Field\AllowedTagsXssTrait::fieldFilterXss is deprecated in drupal:8.0.0 and is removed in drupal:9.0.0. Use \Drupal\Core\Field\FieldFilteredMarkup::create() instead.
+   * @expectedDeprecation Drupal\Core\Field\AllowedTagsXssTrait::allowedTags is deprecated in drupal:8.0.0 and is removed in drupal:9.0.0. Use \Drupal\Core\Field\FieldFilteredMarkup::allowedTags() instead.
+   * @expectedDeprecation Drupal\Core\Field\AllowedTagsXssTrait::displayAllowedTags is deprecated in drupal:8.0.0 and is removed in drupal:9.0.0. Use \Drupal\Core\Field\FieldFilteredMarkup::displayAllowedTags() instead.
+   */
+  public function testDeprecation() {
+    $deprecated = new FieldDeprecateAllowedTagsXssTraitClass();
+    $this->assertSame('Test string', (string) $deprecated->fieldFilterXss('<object>Test string</object>'));
+    $this->assertSame(FieldFilteredMarkup::allowedTags(), $deprecated->allowedTags());
+    $this->assertSame(FieldFilteredMarkup::displayAllowedTags(), $deprecated->displayAllowedTags());
+  }
+
+}
+
+/**
+ * Class FieldDeprecateAllowedTagsXssTraitClass
+ */
+class FieldDeprecateAllowedTagsXssTraitClass {
+  use AllowedTagsXssTrait;
+
+}
diff --git a/web/core/tests/Drupal/Tests/Core/Template/AttributeHelperTest.php b/web/core/tests/Drupal/Tests/Core/Template/AttributeHelperTest.php
new file mode 100644
index 0000000000..7e15793d25
--- /dev/null
+++ b/web/core/tests/Drupal/Tests/Core/Template/AttributeHelperTest.php
@@ -0,0 +1,82 @@
+<?php
+
+namespace Drupal\Tests\Core\Template;
+
+use Drupal\Core\Template\Attribute;
+use Drupal\Core\Template\AttributeHelper;
+use Drupal\Tests\UnitTestCase;
+
+/**
+ * @coversDefaultClass \Drupal\Core\Template\AttributeHelper
+ * @group Template
+ */
+class AttributeHelperTest extends UnitTestCase {
+
+  /**
+   * Provides tests data for testAttributeExists
+   *
+   * @return array
+   *   An array of test data each containing an array of attributes, the name
+   *   of the attribute to check existence of, and the expected result.
+   */
+  public function providerTestAttributeExists() {
+    return [
+      [['class' => ['example-class']], 'class', TRUE],
+      [[], 'class', FALSE],
+      [['class' => ['example-class']], 'id', FALSE],
+      [['class' => ['example-class'], 'id' => 'foo'], 'id', TRUE],
+      [['id' => 'foo'], 'class', FALSE],
+    ];
+  }
+
+  /**
+   * @covers ::attributeExists
+   * @dataProvider providerTestAttributeExists
+   */
+  public function testAttributeExists(array $test_data, $test_attribute, $expected) {
+    $this->assertSame($expected, AttributeHelper::attributeExists($test_attribute, $test_data));
+    $attributes = new Attribute($test_data);
+    $this->assertSame($expected, AttributeHelper::attributeExists($test_attribute, $attributes));
+  }
+
+  /**
+   * Provides tests data for testMergeCollections
+   *
+   * @return array
+   *   An array of test data each containing an initial attribute collection, an
+   *   Attribute object or array to be merged, and the expected result.
+   */
+  public function providerTestMergeCollections() {
+    return [
+      [[], ['class' => ['class1']], ['class' => ['class1']]],
+      [[], new Attribute(['class' => ['class1']]), ['class' => ['class1']]],
+      [['class' => ['example-class']], ['class' => ['class1']], ['class' => ['example-class', 'class1']]],
+      [['class' => ['example-class']], new Attribute(['class' => ['class1']]), ['class' => ['example-class', 'class1']]],
+      [['class' => ['example-class']], ['id' => 'foo', 'href' => 'bar'], ['class' => ['example-class'], 'id' => 'foo', 'href' => 'bar']],
+      [['class' => ['example-class']], new Attribute(['id' => 'foo', 'href' => 'bar']), ['class' => ['example-class'], 'id' => 'foo', 'href' => 'bar']],
+    ];
+  }
+
+  /**
+   * @covers ::mergeCollections
+   * @dataProvider providerTestMergeCollections
+   */
+  public function testMergeCollections($original, $merge, $expected) {
+    $this->assertEquals($expected, AttributeHelper::mergeCollections($original, $merge));
+    $this->assertEquals(new Attribute($expected), AttributeHelper::mergeCollections(new Attribute($original), $merge));
+  }
+
+  /**
+   * @covers ::mergeCollections
+   */
+  public function testMergeCollectionsArgumentException() {
+    $attributes = new Attribute(['class' => ['example-class']]);
+    $this->expectException(\InvalidArgumentException::class);
+    $this->expectExceptionMessage('Invalid collection argument');
+    AttributeHelper::mergeCollections($attributes, 'not an array');
+    $this->expectException(\InvalidArgumentException::class);
+    $this->expectExceptionMessage('Invalid collection argument');
+    AttributeHelper::mergeCollections('not an array', $attributes);
+  }
+
+}
diff --git a/web/core/tests/Drupal/Tests/Core/Template/AttributeTest.php b/web/core/tests/Drupal/Tests/Core/Template/AttributeTest.php
index 911b6e150d..46545a0ecc 100644
--- a/web/core/tests/Drupal/Tests/Core/Template/AttributeTest.php
+++ b/web/core/tests/Drupal/Tests/Core/Template/AttributeTest.php
@@ -452,4 +452,62 @@ public function testStorage() {
     $this->assertEquals(['class' => new AttributeArray('class', ['example-class'])], $attribute->storage());
   }
 
+  /**
+   * Provides tests data for testHasAttribute
+   *
+   * @return array
+   *   An array of test data each containing an array of attributes, the name
+   *   of the attribute to check existence of, and the expected result.
+   */
+  public function providerTestHasAttribute() {
+    return [
+      [['class' => ['example-class']], 'class', TRUE],
+      [[], 'class', FALSE],
+      [['class' => ['example-class']], 'id', FALSE],
+      [['class' => ['example-class'], 'id' => 'foo'], 'id', TRUE],
+      [['id' => 'foo'], 'class', FALSE],
+    ];
+  }
+
+  /**
+   * @covers ::hasAttribute
+   * @dataProvider providerTestHasAttribute
+   */
+  public function testHasAttribute(array $test_data, $test_attribute, $expected) {
+    $attributes = new Attribute($test_data);
+    $this->assertSame($expected, $attributes->hasAttribute($test_attribute));
+  }
+
+  /**
+   * Provides tests data for testMerge
+   *
+   * @return array
+   *   An array of test data each containing an initial Attribute object, an
+   *   Attribute object or array to be merged, and the expected result.
+   */
+  public function providerTestMerge() {
+    return [
+      [new Attribute([]), new Attribute(['class' => ['class1']]), new Attribute(['class' => ['class1']])],
+      [new Attribute(['class' => ['example-class']]), new Attribute(['class' => ['class1']]), new Attribute(['class' => ['example-class', 'class1']])],
+      [new Attribute(['class' => ['example-class']]), new Attribute(['id' => 'foo', 'href' => 'bar']), new Attribute(['class' => ['example-class'], 'id' => 'foo', 'href' => 'bar'])],
+    ];
+  }
+
+  /**
+   * @covers ::merge
+   * @dataProvider providerTestMerge
+   */
+  public function testMerge($original, $merge, $expected) {
+    $this->assertEquals($expected, $original->merge($merge));
+  }
+
+  /**
+   * @covers ::merge
+   */
+  public function testMergeArgumentException() {
+    $attributes = new Attribute(['class' => ['example-class']]);
+    $this->expectException(\TypeError::class);
+    $attributes->merge('not an array');
+  }
+
 }
diff --git a/web/core/tests/Drupal/Tests/UpdatePathTestTrait.php b/web/core/tests/Drupal/Tests/UpdatePathTestTrait.php
new file mode 100644
index 0000000000..61facab0bd
--- /dev/null
+++ b/web/core/tests/Drupal/Tests/UpdatePathTestTrait.php
@@ -0,0 +1,169 @@
+<?php
+
+namespace Drupal\Tests;
+
+use Drupal\Core\Url;
+
+/**
+ * Trait UpdatePathTestTrait
+ *
+ * For use on \Drupal\Tests\BrowserTestBase tests.
+ */
+trait UpdatePathTestTrait {
+  use RequirementsPageTrait;
+  use SchemaCheckTestTrait;
+
+  /**
+   * Fail the test if there are failed updates.
+   *
+   * @var bool
+   */
+  protected $checkFailedUpdates = TRUE;
+
+  /**
+   * Helper function to run pending database updates.
+   *
+   * @param string|null $update_url
+   *   The update URL.
+   */
+  protected function runUpdates($update_url = NULL) {
+    if (!$update_url) {
+      $update_url = Url::fromRoute('system.db_update');
+    }
+    require_once $this->root . '/core/includes/update.inc';
+    // The site might be broken at the time so logging in using the UI might
+    // not work, so we use the API itself.
+    $this->writeSettings([
+      'settings' => [
+        'update_free_access' => (object) [
+          'value' => TRUE,
+          'required' => TRUE,
+        ],
+      ],
+    ]);
+
+    $this->drupalGet($update_url);
+    $this->updateRequirementsProblem();
+    $this->clickLink(t('Continue'));
+
+    $this->doSelectionTest();
+    // Run the update hooks.
+    $this->clickLink(t('Apply pending updates'));
+    $this->checkForMetaRefresh();
+
+    // Ensure there are no failed updates.
+    if ($this->checkFailedUpdates) {
+      $failure = $this->cssSelect('.failure');
+      if ($failure) {
+        $this->fail('The update failed with the following message: "' . reset($failure)->getText() . '"');
+      }
+
+      // Ensure that there are no pending updates.
+      foreach (['update', 'post_update'] as $update_type) {
+        switch ($update_type) {
+          case 'update':
+            $all_updates = update_get_update_list();
+            break;
+          case 'post_update':
+            $all_updates = \Drupal::service('update.post_update_registry')->getPendingUpdateInformation();
+            break;
+        }
+        foreach ($all_updates as $module => $updates) {
+          if (!empty($updates['pending'])) {
+            foreach (array_keys($updates['pending']) as $update_name) {
+              $this->fail("The $update_name() update function from the $module module did not run.");
+            }
+          }
+        }
+      }
+
+      // Ensure that the container is updated if any modules are installed or
+      // uninstalled during the update.
+      /** @var \Drupal\Core\Extension\ModuleHandlerInterface $module_handler */
+      $module_handler = $this->container->get('module_handler');
+      $config_module_list = $this->config('core.extension')->get('module');
+      $module_handler_list = $module_handler->getModuleList();
+      $modules_installed = FALSE;
+      // Modules that are in configuration but not the module handler have been
+      // installed.
+      foreach (array_keys(array_diff_key($config_module_list, $module_handler_list)) as $module) {
+        $module_handler->addModule($module, drupal_get_path('module', $module));
+        $modules_installed = TRUE;
+      }
+      $modules_uninstalled = FALSE;
+      $module_handler_list = $module_handler->getModuleList();
+      // Modules that are in the module handler but not configuration have been
+      // uninstalled.
+      foreach (array_keys(array_diff_key($module_handler_list, $config_module_list)) as $module) {
+        $modules_uninstalled = TRUE;
+        unset($module_handler_list[$module]);
+      }
+      if ($modules_installed || $modules_uninstalled) {
+        // Note that resetAll() does not reset the kernel module list so we
+        // have to do that manually.
+        $this->kernel->updateModules($module_handler_list, $module_handler_list);
+      }
+
+      // If we have successfully clicked 'Apply pending updates' then we need to
+      // clear the caches in the update test runner as this has occurred as part
+      // of the updates.
+      $this->resetAll();
+
+      // The config schema can be incorrect while the update functions are being
+      // executed. But once the update has been completed, it needs to be valid
+      // again. Assert the schema of all configuration objects now.
+      $names = $this->container->get('config.storage')->listAll();
+
+      // Allow tests to opt out of checking specific configuration.
+      $exclude = $this->getConfigSchemaExclusions();
+      /** @var \Drupal\Core\Config\TypedConfigManagerInterface $typed_config */
+      $typed_config = $this->container->get('config.typed');
+      foreach ($names as $name) {
+        if (in_array($name, $exclude, TRUE)) {
+          // Skip checking schema if the config is listed in the
+          // $configSchemaCheckerExclusions property.
+          continue;
+        }
+        $config = $this->config($name);
+        $this->assertConfigSchema($typed_config, $name, $config->get());
+      }
+
+      // Ensure that the update hooks updated all entity schema.
+      $needs_updates = \Drupal::entityDefinitionUpdateManager()->needsUpdates();
+      if ($needs_updates) {
+        foreach (\Drupal::entityDefinitionUpdateManager()->getChangeSummary() as $entity_type_id => $summary) {
+          $entity_type_label = \Drupal::entityTypeManager()->getDefinition($entity_type_id)->getLabel();
+          foreach ($summary as $message) {
+            $this->fail("$entity_type_label: $message");
+          }
+        }
+        // The above calls to `fail()` should prevent this from ever being
+        // called, but it is here in case something goes really wrong.
+        $this->assertFalse($needs_updates, 'After all updates ran, entity schema is up to date.');
+      }
+    }
+  }
+
+  /**
+   * Tests the selection page.
+   */
+  protected function doSelectionTest() {
+    // No-op. Tests wishing to do test the selection page or the general
+    // update.php environment before running update.php can override this method
+    // and implement their required tests.
+  }
+
+  /**
+   * Installs the update_script_test module and makes an update available.
+   */
+  protected function ensureUpdatesToRun() {
+    \Drupal::service('module_installer')->install(['update_script_test']);
+    // Reset the schema so there is an update to run.
+    \Drupal::database()->update('key_value')
+      ->fields(['value' => serialize(8000)])
+      ->condition('collection', 'system.schema')
+      ->condition('name', 'update_script_test')
+      ->execute();
+  }
+
+}
diff --git a/web/core/tests/bootstrap.php b/web/core/tests/bootstrap.php
index 467e6af6e6..6d27ec01da 100644
--- a/web/core/tests/bootstrap.php
+++ b/web/core/tests/bootstrap.php
@@ -158,7 +158,7 @@ function drupal_phpunit_populate_class_loader() {
   }
 
   return $loader;
-};
+}
 
 // Do class loader population.
 drupal_phpunit_populate_class_loader();
diff --git a/web/core/tests/scripts/test_composer_project_templates.sh b/web/core/tests/scripts/test_composer_project_templates.sh
deleted file mode 100755
index 620f6ad29d..0000000000
--- a/web/core/tests/scripts/test_composer_project_templates.sh
+++ /dev/null
@@ -1,48 +0,0 @@
-#!/usr/bin/env bash
-set -euo pipefail
-IFS=$'\n\t'
-
-# @todo: convert to a build test after #2984031 is in.
-
-#/ Usage:       ./drupal_project_templates.sh
-#/ Description: Container command to check default composer templates.
-#/ Options:
-#/   --help: Display this help message
-usage() { grep '^#/' "$0" | cut -c4- ; exit 0 ; }
-expr "$*" : ".*--help" > /dev/null && usage
-
-info()    { echo "[INFO]    $*" ; }
-fatal()   { echo "[FATAL]   $*" ; exit 1 ; }
-
-assertScaffold() {
-  if [ -f $1/autoload.php ]
-  then
-    info "autoload.php file found."
-  else
-    fatal "No autoload.php file found."
-  fi
-  if [ -f $1/core/authorize.php ]
-  then
-    info "authorize.php file found."
-  else
-    fatal "No authorize.php file found."
-  fi
-}
-
-info "Starting script"
-
-SOURCE_DIR=$(realpath $(dirname $0))/../../..
-
-info "Installing recommended project composer template"
-composer --working-dir="${SOURCE_DIR}/composer/Template/RecommendedProject" config repositories.scaffold path '../../Plugin/Scaffold'
-composer --working-dir="${SOURCE_DIR}/composer/Template/RecommendedProject" install --no-suggest --no-progress --no-interaction
-info "Recommended project composer template installed successfully."
-assertScaffold "${SOURCE_DIR}/composer/Template/RecommendedProject/web"
-
-info "Installing legacy project composer template"
-composer --working-dir="${SOURCE_DIR}/composer/Template/LegacyProject" config repositories.scaffold path '../../Plugin/Scaffold'
-composer --working-dir="${SOURCE_DIR}/composer/Template/LegacyProject" install --no-suggest --no-progress --no-interaction
-info "Legacy project composer template installed successfully."
-assertScaffold "${SOURCE_DIR}/composer/Template/LegacyProject"
-
-info "Script complete!"
diff --git a/web/core/themes/claro/claro.theme b/web/core/themes/claro/claro.theme
index d01e08a618..35a2dbac10 100644
--- a/web/core/themes/claro/claro.theme
+++ b/web/core/themes/claro/claro.theme
@@ -1306,7 +1306,7 @@ function claro_form_media_library_add_form_upload_alter(array &$form, FormStateI
  * Implements hook_form_FORM_ID_alter().
  */
 function claro_form_media_library_add_form_oembed_alter(array &$form, FormStateInterface $form_state) {
-  $form['attributes']['class'][] = 'media-library-add-form--oembed';
+  $form['#attributes']['class'][] = 'media-library-add-form--oembed';
 
   // If no media items have been added yet, add a couple of styling classes
   // to the initial URL form.
diff --git a/web/core/themes/claro/templates/admin/update-version.html.twig b/web/core/themes/claro/templates/admin/update-version.html.twig
index a26a8e078c..00fef397bc 100644
--- a/web/core/themes/claro/templates/admin/update-version.html.twig
+++ b/web/core/themes/claro/templates/admin/update-version.html.twig
@@ -6,11 +6,21 @@
  * Available variables:
  * - attributes: HTML attributes suitable for a container element.
  * - title: The title of the project.
+ * - core_compatibility_details: Render array of core compatibility details.
  * - version:  A list of data about the latest released version, containing:
  *   - version: The version number.
  *   - date: The date of the release.
  *   - download_link: The URL for the downloadable file.
  *   - release_link: The URL for the release notes.
+ *   - core_compatible: A flag indicating whether the project is compatible
+ *     with the currently installed version of Drupal core. This flag is not
+ *     set for the Drupal core project itself.
+ *   - core_compatibility_message: A message indicating the versions of Drupal
+ *     core with which this project is compatible. This message is also
+ *     contained within the 'core_compatibility_details' variable documented
+ *     above. This message is not set for the Drupal core project itself.
+ *
+ * @see template_preprocess_update_version()
  */
 #}
 <div class="{{ attributes.class }} project-update__version"{{ attributes|without('class') }}>
@@ -22,12 +32,19 @@
     </div>
     <div class="layout-column layout-column--half">
       <ul class="project-update__version-links">
-        <li class="project-update__download-link">
-          <a href="{{ version.download_link }}">{{ 'Download'|t }}</a>
-        </li>
+        {% if version.core_compatible is not defined or version.core_compatible %}
+          <li class="project-update__download-link">
+            <a href="{{ version.download_link }}">{{ 'Download'|t }}</a>
+          </li>
+        {% endif %}
         <li class="project-update__release-notes-link">
           <a href="{{ version.release_link }}">{{ 'Release notes'|t }}</a>
         </li>
+        {% if core_compatibility_details %}
+          <li class="project-update__compatibility-details">
+            {{ core_compatibility_details }}
+          </li>
+        {% endif %}
       </ul>
     </div>
   </div>
diff --git a/web/core/themes/seven/css/theme/update-report.css b/web/core/themes/seven/css/theme/update-report.css
new file mode 100644
index 0000000000..0f65b18d7c
--- /dev/null
+++ b/web/core/themes/seven/css/theme/update-report.css
@@ -0,0 +1,28 @@
+/**
+ * @file update-report.css
+ *
+ * Styling for the Available updates report at admin/reports/updates
+ */
+
+.project-update__compatibility-details details {
+  height: 20px;
+  margin: 2px 0;
+  border: 0;
+  background-color: inherit;
+}
+.project-update__compatibility-details details[open] {
+  overflow: visible;
+  height: auto;
+  white-space: normal;
+}
+.project-update__compatibility-details summary {
+  border: 0;
+  margin: 0;
+  padding: 0;
+  text-transform: none;
+  font-weight: normal;
+}
+.project-update__compatibility-details .details-wrapper {
+  margin: 0;
+  padding: 5px 0;
+}
diff --git a/web/core/themes/seven/seven.libraries.yml b/web/core/themes/seven/seven.libraries.yml
index c08424f648..72b13436fa 100644
--- a/web/core/themes/seven/seven.libraries.yml
+++ b/web/core/themes/seven/seven.libraries.yml
@@ -61,6 +61,12 @@ maintenance-page:
     - system/maintenance
     - seven/global-styling
 
+update-report:
+  version: VERSION
+  css:
+    theme:
+      css/theme/update-report.css: {}
+
 install-page:
   version: VERSION
   js:
diff --git a/web/core/themes/seven/seven.theme b/web/core/themes/seven/seven.theme
index 86c23c6aa2..a154f771be 100644
--- a/web/core/themes/seven/seven.theme
+++ b/web/core/themes/seven/seven.theme
@@ -374,3 +374,16 @@ function seven_views_pre_render(ViewExecutable $view) {
     }
   }
 }
+
+/**
+ * Prepares variables for update version templates.
+ *
+ * Default template: update-version.html.twig.
+ *
+ * @param array $variables
+ *   An associative array containing:
+ *   - version: An array of information about the release version.
+ */
+function seven_preprocess_update_version(array &$variables) {
+  $variables['#attached']['library'][] = 'seven/update-report';
+}
diff --git a/web/core/themes/stable/layouts/fourcol_section/layout--fourcol-section.html.twig b/web/core/themes/stable/layouts/fourcol_section/layout--fourcol-section.html.twig
index 9a380f76e0..e610278c45 100644
--- a/web/core/themes/stable/layouts/fourcol_section/layout--fourcol-section.html.twig
+++ b/web/core/themes/stable/layouts/fourcol_section/layout--fourcol-section.html.twig
@@ -1,13 +1,11 @@
 {#
 /**
  * @file
- * Default theme implementation for a four-column 25%-25%-25%-25% layout.
+ * Theme override for a four-column 25%-25%-25%-25% layout.
  *
  * Available variables:
  * - content: The content for this layout.
  * - attributes: HTML attributes for the layout <div>.
- *
- * @ingroup themeable
  */
 #}
 {%
diff --git a/web/core/themes/stable/layouts/threecol_section/layout--threecol-section.html.twig b/web/core/themes/stable/layouts/threecol_section/layout--threecol-section.html.twig
index 1311f28ab2..123acfec3e 100644
--- a/web/core/themes/stable/layouts/threecol_section/layout--threecol-section.html.twig
+++ b/web/core/themes/stable/layouts/threecol_section/layout--threecol-section.html.twig
@@ -1,13 +1,11 @@
 {#
 /**
  * @file
- * Default theme implementation for a three-column layout.
+ * Theme override for a three-column layout.
  *
  * Available variables:
  * - content: The content for this layout.
  * - attributes: HTML attributes for the layout <div>.
- *
- * @ingroup themeable
  */
 #}
 {% if content %}
diff --git a/web/core/themes/stable/layouts/twocol_section/layout--twocol-section.html.twig b/web/core/themes/stable/layouts/twocol_section/layout--twocol-section.html.twig
index a5d1d36376..d047debe53 100644
--- a/web/core/themes/stable/layouts/twocol_section/layout--twocol-section.html.twig
+++ b/web/core/themes/stable/layouts/twocol_section/layout--twocol-section.html.twig
@@ -1,13 +1,11 @@
 {#
 /**
  * @file
- * Default theme implementation to display a two-column layout.
+ * Theme override to display a two-column layout.
  *
  * Available variables:
  * - content: The content for this layout.
  * - attributes: HTML attributes for the layout <div>.
- *
- * @ingroup themeable
  */
 #}
 {% if content %}
diff --git a/web/core/themes/stable/templates/admin/language-negotiation-configure-form.html.twig b/web/core/themes/stable/templates/admin/language-negotiation-configure-form.html.twig
index 5029a65d4d..ae46f50f7a 100644
--- a/web/core/themes/stable/templates/admin/language-negotiation-configure-form.html.twig
+++ b/web/core/themes/stable/templates/admin/language-negotiation-configure-form.html.twig
@@ -1,22 +1,23 @@
 {#
 /**
-* @file
-* Theme override for a language negotiation configuration form.
-*
-* Available variables:
-* - language_types: A list of language negotiation types. Each language type
-*   contains the following:
-*   - type: The machine name for the negotiation type.
-*   - title: The language negotiation type name.
-*   - description: A description for how the language negotiation type operates.
-*   - configurable: A radio element to toggle the table.
-*   - table: A draggable table for the language detection methods of this type.
-*   - children: Remaining form items for the group.
-*   - attributes: A list of HTML attributes for the wrapper element.
-* - children: Remaining form items for all groups.
-*
-* @see template_preprocess_language_negotiation_configure_form()
-*/
+ * @file
+ * Theme override for a language negotiation configuration form.
+ *
+ * Available variables:
+ * - language_types: A list of language negotiation types. Each language type
+ *   contains the following:
+ *   - type: The machine name for the negotiation type.
+ *   - title: The language negotiation type name.
+ *   - description: A description for how the language negotiation type
+ *     operates.
+ *   - configurable: A radio element to toggle the table.
+ *   - table: A draggable table for the language detection methods of this type.
+ *   - children: Remaining form items for the group.
+ *   - attributes: A list of HTML attributes for the wrapper element.
+ * - children: Remaining form items for all groups.
+ *
+ * @see template_preprocess_language_negotiation_configure_form()
+ */
 #}
 {% for language_type in language_types %}
   {%
diff --git a/web/core/themes/stable/templates/admin/status-report-counter.html.twig b/web/core/themes/stable/templates/admin/status-report-counter.html.twig
index b0f7bd5cbe..11605a75fb 100644
--- a/web/core/themes/stable/templates/admin/status-report-counter.html.twig
+++ b/web/core/themes/stable/templates/admin/status-report-counter.html.twig
@@ -8,7 +8,6 @@
  * - text: The text shown on counter.
  * - severity: The severity of the counter.
  *
- * @ingroup themable
  */
 #}
 {{ amount }} {{ text }}
diff --git a/web/core/themes/stable/templates/admin/system-config-form.html.twig b/web/core/themes/stable/templates/admin/system-config-form.html.twig
index 011128ca8a..92cc71b70c 100644
--- a/web/core/themes/stable/templates/admin/system-config-form.html.twig
+++ b/web/core/themes/stable/templates/admin/system-config-form.html.twig
@@ -5,8 +5,8 @@
  *
  * This template will be used when a system config form specifies 'config_form'
  * as its #theme callback.  Otherwise, by default, system config forms will be
- * themed by form.html.twig. This does not alter the appearance of a form at all,
- * but is provided as a convenience for themers.
+ * themed by form.html.twig. This does not alter the appearance of a form at
+ * all, but is provided as a convenience for themers.
  *
  * Available variables:
  * - form: The confirm form.
diff --git a/web/core/themes/stable/templates/admin/update-version.html.twig b/web/core/themes/stable/templates/admin/update-version.html.twig
index 6c23584a68..4b0389ea60 100644
--- a/web/core/themes/stable/templates/admin/update-version.html.twig
+++ b/web/core/themes/stable/templates/admin/update-version.html.twig
@@ -6,11 +6,21 @@
  * Available variables:
  * - attributes: HTML attributes suitable for a container element.
  * - title: The title of the project.
+ * - core_compatibility_details: Render array of core compatibility details.
  * - version:  A list of data about the latest released version, containing:
  *   - version: The version number.
  *   - date: The date of the release.
  *   - download_link: The URL for the downloadable file.
  *   - release_link: The URL for the release notes.
+ *   - core_compatible: A flag indicating whether the project is compatible
+ *     with the currently installed version of Drupal core. This flag is not
+ *     set for the Drupal core project itself.
+ *   - core_compatibility_message: A message indicating the versions of Drupal
+ *     core with which this project is compatible. This message is also
+ *     contained within the 'core_compatibility_details' variable documented
+ *     above. This message is not set for the Drupal core project itself.
+ *
+ * @see template_preprocess_update_version()
  */
 #}
 <div class="{{ attributes.class }} project-update__version"{{ attributes|without('class') }}>
@@ -22,12 +32,19 @@
     </div>
     <div class="layout-column layout-column--half">
       <ul class="project-update__version-links">
-        <li class="project-update__download-link">
-          <a href="{{ version.download_link }}">{{ 'Download'|t }}</a>
-        </li>
+        {% if version.core_compatible is not defined or version.core_compatible %}
+          <li class="project-update__download-link">
+            <a href="{{ version.download_link }}">{{ 'Download'|t }}</a>
+          </li>
+        {% endif %}
         <li class="project-update__release-notes-link">
           <a href="{{ version.release_link }}">{{ 'Release notes'|t }}</a>
         </li>
+        {% if core_compatibility_details %}
+          <li class="project-update__compatibility-details">
+            {{ core_compatibility_details }}
+          </li>
+        {% endif %}
       </ul>
     </div>
   </div>
diff --git a/web/core/themes/stable/templates/content-edit/entity-add-list.html.twig b/web/core/themes/stable/templates/content-edit/entity-add-list.html.twig
index 8d737862d1..815f5d61da 100644
--- a/web/core/themes/stable/templates/content-edit/entity-add-list.html.twig
+++ b/web/core/themes/stable/templates/content-edit/entity-add-list.html.twig
@@ -1,7 +1,7 @@
 {#
 /**
  * @file
- * Default theme implementation to present a list of available bundles.
+ * Theme override to present a list of available bundles.
  *
  * Available variables:
  *   - bundles: A list of bundles, each with the following properties:
@@ -12,8 +12,6 @@
  *                         available if the entity type uses bundle entities.
  *
  * @see template_preprocess_entity_add_list()
- *
- * @ingroup themeable
  */
 #}
 {% if bundles is not empty %}
diff --git a/web/core/themes/stable/templates/content/comment.html.twig b/web/core/themes/stable/templates/content/comment.html.twig
index 836e5651ed..db870d8f4b 100644
--- a/web/core/themes/stable/templates/content/comment.html.twig
+++ b/web/core/themes/stable/templates/content/comment.html.twig
@@ -27,7 +27,7 @@
  * - title: Comment title, linked to the comment.
  * - attributes: HTML attributes for the containing element.
  *   The attributes.class may contain one or more of the following classes:
- *   - comment: The current template type; e.g., 'theming hook'.
+ *   - comment: The current template type; for instance, 'theming hook'.
  *   - by-anonymous: Comment by an unregistered user.
  *   - by-{entity-type}-author: Comment by the author of the parent entity,
  *     eg. by-node-author.
diff --git a/web/core/themes/stable/templates/content/media-embed-error.html.twig b/web/core/themes/stable/templates/content/media-embed-error.html.twig
index 7da2c509e5..b54c8a798f 100644
--- a/web/core/themes/stable/templates/content/media-embed-error.html.twig
+++ b/web/core/themes/stable/templates/content/media-embed-error.html.twig
@@ -1,7 +1,7 @@
 {#
 /**
  * @file
- * Default theme implementation for a missing media error.
+ * Theme override for a missing media error.
  *
  * Available variables
  * - message: The message text.
@@ -11,8 +11,6 @@
  * is displayed from JavaScript.
  *
  * @see Drupal.theme.mediaEmbedPreviewError
- *
- * @ingroup themeable
  */
 #}
 <div{{ attributes }}>
diff --git a/web/core/themes/stable/templates/content/media-oembed-iframe.html.twig b/web/core/themes/stable/templates/content/media-oembed-iframe.html.twig
index 985b4dd7a9..fbc43e8b4f 100644
--- a/web/core/themes/stable/templates/content/media-oembed-iframe.html.twig
+++ b/web/core/themes/stable/templates/content/media-oembed-iframe.html.twig
@@ -1,9 +1,7 @@
 {#
 /**
  * @file
- * Default theme implementation to display an oEmbed resource in an iframe.
- *
- * @ingroup themeable
+ * Theme override to display an oEmbed resource in an iframe.
  */
 #}
 <!DOCTYPE html>
diff --git a/web/core/themes/stable/templates/content/media.html.twig b/web/core/themes/stable/templates/content/media.html.twig
index a8ab44457b..5f949c6fe9 100644
--- a/web/core/themes/stable/templates/content/media.html.twig
+++ b/web/core/themes/stable/templates/content/media.html.twig
@@ -8,8 +8,6 @@
  * - content: Media content.
  *
  * @see template_preprocess_media()
- *
- * @ingroup themeable
  */
 #}
 <article{{ attributes }}>
diff --git a/web/core/themes/stable/templates/content/off-canvas-page-wrapper.html.twig b/web/core/themes/stable/templates/content/off-canvas-page-wrapper.html.twig
index 2c8e23c625..04a80b188e 100644
--- a/web/core/themes/stable/templates/content/off-canvas-page-wrapper.html.twig
+++ b/web/core/themes/stable/templates/content/off-canvas-page-wrapper.html.twig
@@ -1,7 +1,7 @@
 {#
 /**
  * @file
- * Theme override for page wrapper.
+ * Theme override for a page wrapper.
  *
  * For consistent wrapping to {{ page }} render in all themes. The
  * "data-off-canvas-main-canvas" attribute is required by the off-canvas dialog.
diff --git a/web/core/themes/stable/templates/dataset/forums.html.twig b/web/core/themes/stable/templates/dataset/forums.html.twig
index 1871187690..af67b30dde 100644
--- a/web/core/themes/stable/templates/dataset/forums.html.twig
+++ b/web/core/themes/stable/templates/dataset/forums.html.twig
@@ -8,6 +8,7 @@
  * Available variables:
  * - forums: The forums to display (as processed by forum-list.html.twig).
  * - topics: The topics to display.
+ * - topics_original: Original topics data before modification.
  * - topics_pager: The topics pager.
  * - forums_defined: A flag to indicate that the forums are configured.
  *
diff --git a/web/core/themes/stable/templates/field/file-audio.html.twig b/web/core/themes/stable/templates/field/file-audio.html.twig
index c98725b99b..d93f81e728 100644
--- a/web/core/themes/stable/templates/field/file-audio.html.twig
+++ b/web/core/themes/stable/templates/field/file-audio.html.twig
@@ -1,7 +1,7 @@
 {#
 /**
 * @file
-* Default theme implementation to display the file entity as an audio tag.
+* Theme override to display the file entity as an audio tag.
 *
 * Available variables:
 * - attributes: An array of HTML attributes, intended to be added to the
@@ -11,8 +11,6 @@
 *   - file: The full file object.
 *   - source_attributes: An array of HTML attributes for to be added to the
 *     source tag.
-*
-* @ingroup themeable
 */
 #}
 <audio {{ attributes }}>
diff --git a/web/core/themes/stable/templates/field/file-video.html.twig b/web/core/themes/stable/templates/field/file-video.html.twig
index 162fd4933e..93568fcbad 100644
--- a/web/core/themes/stable/templates/field/file-video.html.twig
+++ b/web/core/themes/stable/templates/field/file-video.html.twig
@@ -1,7 +1,7 @@
 {#
 /**
 * @file
-* Default theme implementation to display the file entity as a video tag.
+* Theme override to display the file entity as a video tag.
 *
 * Available variables:
 * - attributes: An array of HTML attributes, intended to be added to the
@@ -11,8 +11,6 @@
 *   - file: The full file object.
 *   - source_attributes: An array of HTML attributes for to be added to the
 *     source tag.
-*
-* @ingroup themeable
 */
 #}
 <video {{ attributes }}>
diff --git a/web/core/themes/stable/templates/form/fieldset.html.twig b/web/core/themes/stable/templates/form/fieldset.html.twig
index 8f1f73d981..59200e7793 100644
--- a/web/core/themes/stable/templates/form/fieldset.html.twig
+++ b/web/core/themes/stable/templates/form/fieldset.html.twig
@@ -4,18 +4,19 @@
  * Theme override for a fieldset element and its children.
  *
  * Available variables:
- * - attributes: HTML attributes for the fieldset element.
- * - errors: (optional) Any errors for this fieldset element, may not be set.
- * - required: Boolean indicating whether the fieldeset element is required.
- * - legend: The legend element containing the following properties:
- *   - title: Title of the fieldset, intended for use as the text of the legend.
- *   - attributes: HTML attributes to apply to the legend.
+ * - attributes: HTML attributes for the <fieldset> element.
+ * - errors: (optional) Any errors for this <fieldset> element, may not be set.
+ * - required: Boolean indicating whether the <fieldeset> element is required.
+ * - legend: The <legend> element containing the following properties:
+ *   - title: Title of the <fieldset>, intended for use as the text
+       of the <legend>.
+ *   - attributes: HTML attributes to apply to the <legend> element.
  * - description: The description element containing the following properties:
- *   - content: The description content of the fieldset.
+ *   - content: The description content of the <fieldset>.
  *   - attributes: HTML attributes to apply to the description container.
- * - children: The rendered child elements of the fieldset.
- * - prefix: The content to add before the fieldset children.
- * - suffix: The content to add after the fieldset children.
+ * - children: The rendered child elements of the <fieldset>.
+ * - prefix: The content to add before the <fieldset> children.
+ * - suffix: The content to add after the <fieldset> children.
  *
  * @see template_preprocess_fieldset()
  */
@@ -36,7 +37,7 @@
       required ? 'form-required',
     ]
   %}
-  {#  Always wrap fieldset legends in a SPAN for CSS positioning. #}
+  {#  Always wrap fieldset legends in a <span> for CSS positioning. #}
   <legend{{ legend.attributes }}>
     <span{{ legend_span.attributes.addClass(legend_span_classes) }}>{{ legend.title }}</span>
   </legend>
diff --git a/web/core/themes/stable/templates/form/textarea.html.twig b/web/core/themes/stable/templates/form/textarea.html.twig
index 9767bc583b..96ddfc90e8 100644
--- a/web/core/themes/stable/templates/form/textarea.html.twig
+++ b/web/core/themes/stable/templates/form/textarea.html.twig
@@ -5,7 +5,7 @@
  *
  * Available variables
  * - wrapper_attributes: A list of HTML attributes for the wrapper element.
- * - attributes: A list of HTML attributes for the textarea element.
+ * - attributes: A list of HTML attributes for the <textarea> element.
  * - resizable: An indicator for whether the textarea is resizable.
  * - required: An indicator for whether the textarea is required.
  * - value: The textarea content.
diff --git a/web/core/themes/stable/templates/layout/layout--onecol.html.twig b/web/core/themes/stable/templates/layout/layout--onecol.html.twig
index 3a7f9934d0..7fe5b121ca 100644
--- a/web/core/themes/stable/templates/layout/layout--onecol.html.twig
+++ b/web/core/themes/stable/templates/layout/layout--onecol.html.twig
@@ -1,13 +1,11 @@
 {#
 /**
  * @file
- * Default theme implementation to display a one-column layout.
+ * Theme override to display a one-column layout.
  *
  * Available variables:
  * - content: The content for this layout.
  * - attributes: HTML attributes for the layout <div>.
- *
- * @ingroup themeable
  */
 #}
 {%
diff --git a/web/core/themes/stable/templates/layout/layout--threecol-25-50-25.html.twig b/web/core/themes/stable/templates/layout/layout--threecol-25-50-25.html.twig
index e5441d8b6b..715470bd06 100644
--- a/web/core/themes/stable/templates/layout/layout--threecol-25-50-25.html.twig
+++ b/web/core/themes/stable/templates/layout/layout--threecol-25-50-25.html.twig
@@ -1,7 +1,7 @@
 {#
 /**
  * @file
- * Default theme implementation for a three column layout.
+ * Theme override for a three column layout.
  *
  * This template provides a three column 25%-50%-25% display layout, with
  * additional areas for the top and the bottom.
@@ -9,8 +9,6 @@
  * Available variables:
  * - content: The content for this layout.
  * - attributes: HTML attributes for the layout <div>.
- *
- * @ingroup themeable
  */
 #}
 {%
diff --git a/web/core/themes/stable/templates/layout/layout--threecol-33-34-33.html.twig b/web/core/themes/stable/templates/layout/layout--threecol-33-34-33.html.twig
index 6445061c04..f0a541d495 100644
--- a/web/core/themes/stable/templates/layout/layout--threecol-33-34-33.html.twig
+++ b/web/core/themes/stable/templates/layout/layout--threecol-33-34-33.html.twig
@@ -1,7 +1,7 @@
 {#
 /**
  * @file
- * Default theme implementation for a three column layout.
+ * Theme override for a three column layout.
  *
  * This template provides a three column 33%-34%-33% display layout, with
  * additional areas for the top and the bottom.
@@ -9,8 +9,6 @@
  * Available variables:
  * - content: The content for this layout.
  * - attributes: HTML attributes for the layout <div>.
- *
- * @ingroup themeable
  */
 #}
 {%
diff --git a/web/core/themes/stable/templates/layout/layout--twocol-bricks.html.twig b/web/core/themes/stable/templates/layout/layout--twocol-bricks.html.twig
index dc29e03e43..08a0b47920 100644
--- a/web/core/themes/stable/templates/layout/layout--twocol-bricks.html.twig
+++ b/web/core/themes/stable/templates/layout/layout--twocol-bricks.html.twig
@@ -1,7 +1,7 @@
 {#
 /**
  * @file
- * Default theme implementation for a two column layout.
+ * Theme override for a two column layout.
  *
  * This template provides a two column display layout with full width areas at
  * the top, bottom and in the middle.
@@ -9,8 +9,6 @@
  * Available variables:
  * - content: The content for this layout.
  * - attributes: HTML attributes for the layout <div>.
- *
- * @ingroup themeable
  */
 #}
 {%
diff --git a/web/core/themes/stable/templates/layout/layout--twocol.html.twig b/web/core/themes/stable/templates/layout/layout--twocol.html.twig
index 262c657f91..4de66f0489 100644
--- a/web/core/themes/stable/templates/layout/layout--twocol.html.twig
+++ b/web/core/themes/stable/templates/layout/layout--twocol.html.twig
@@ -1,13 +1,11 @@
 {#
 /**
  * @file
- * Default theme implementation to display a two-column layout.
+ * Theme override to display a two-column layout.
  *
  * Available variables:
  * - content: The content for this layout.
  * - attributes: HTML attributes for the layout <div>.
- *
- * @ingroup themeable
  */
 #}
 {%
diff --git a/web/core/themes/stable/templates/layout/region.html.twig b/web/core/themes/stable/templates/layout/region.html.twig
index f34998e7ea..e5e36d0741 100644
--- a/web/core/themes/stable/templates/layout/region.html.twig
+++ b/web/core/themes/stable/templates/layout/region.html.twig
@@ -5,7 +5,7 @@
  *
  * Available variables:
  * - content: The content for this region, typically blocks.
- * - attributes: HTML attributes for the region div.
+ * - attributes: HTML attributes for the region <div>.
  * - region: The name of the region variable as defined in the theme's
  *   .info.yml file.
  *
diff --git a/web/core/themes/stable/templates/media-library/media--media-library.html.twig b/web/core/themes/stable/templates/media-library/media--media-library.html.twig
index 6262e7d506..4c5a5a7097 100644
--- a/web/core/themes/stable/templates/media-library/media--media-library.html.twig
+++ b/web/core/themes/stable/templates/media-library/media--media-library.html.twig
@@ -1,7 +1,7 @@
 {#
 /**
  * @file
- * Default theme implementation to present a media entity in the media library.
+ * Theme override to present a media entity in the media library.
  *
  * Available variables:
  * - media: The entity with limited access to object properties and methods.
@@ -30,8 +30,6 @@
  *
  * @see template_preprocess_media()
  * @see media_library_preprocess_media()
- *
- * @ingroup themeable
  */
 #}
 <article{{ attributes }}>
diff --git a/web/core/themes/stable/templates/media-library/media-library-item.html.twig b/web/core/themes/stable/templates/media-library/media-library-item.html.twig
index a765d04c11..372b71c88b 100644
--- a/web/core/themes/stable/templates/media-library/media-library-item.html.twig
+++ b/web/core/themes/stable/templates/media-library/media-library-item.html.twig
@@ -1,7 +1,7 @@
 {#
 /**
  * @file
- * Default theme implementation of a media library item.
+ * Theme override of a media library item.
  *
  * This is used when displaying selected media items, either in the field
  * widget or in the "Additional selected media" area when adding new
@@ -13,8 +13,6 @@
  *   fields or elements surrounding it.
  *
  * @see template_preprocess_media_library_item()
- *
- * @ingroup themeable
  */
 #}
 <div{{ attributes }}>
diff --git a/web/core/themes/stable/templates/media-library/media-library-wrapper.html.twig b/web/core/themes/stable/templates/media-library/media-library-wrapper.html.twig
index 344637cd62..ce17ead145 100644
--- a/web/core/themes/stable/templates/media-library/media-library-wrapper.html.twig
+++ b/web/core/themes/stable/templates/media-library/media-library-wrapper.html.twig
@@ -1,8 +1,8 @@
 {#
 /**
  * @file
- * Default theme implementation of a container used to wrap the media library's
- * modal dialog interface.
+ * Theme override of a container used to wrap the media library's modal dialog
+ * interface.
  *
  * Available variables:
  * - attributes: HTML attributes for the containing element.
@@ -11,8 +11,6 @@
  *   existing media items to choose from.
  *
  * @see template_preprocess_media_library_wrapper()
- *
- * @ingroup themeable
  */
 #}
 <div{{ attributes }}>
-- 
GitLab