diff --git a/composer.json b/composer.json
index 3b816aae7086ef7c3678658727cad84444555fc3..29d7c3aab01ef790e2d73b1fac5038d48c3feb7d 100644
--- a/composer.json
+++ b/composer.json
@@ -103,10 +103,8 @@
         "drupal/block_region_permissions": "1.5",
         "drupal/bootstrap": "^3.23",
         "drupal/cache_control_override": "^2.0",
-        "drupal/ckeditor": "^1.0",
         "drupal/ckeditor_indentblock": "^1.0",
         "drupal/config_ignore": "^3.0",
-        "drupal/convert_entity_media_embed": "^1.0@alpha",
         "drupal/core-composer-scaffold": "^10.1",
         "drupal/core-recommended": "^10.1",
         "drupal/crop": "2.3",
diff --git a/composer.lock b/composer.lock
index a1b88badf5054329b0a2816f9a1787ffa843402c..d584ee7eb93c8f9c09a27e781f9aa20681c779a4 100644
--- a/composer.lock
+++ b/composer.lock
@@ -41,9 +41,7 @@
                 }
             },
             "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
+            "license": ["MIT"],
             "authors": [
                 {
                     "name": "Alexander",
@@ -52,10 +50,7 @@
             ],
             "description": "Cross-origin resource sharing library and stack middleware",
             "homepage": "https://github.com/asm89/stack-cors",
-            "keywords": [
-                "cors",
-                "stack"
-            ],
+            "keywords": ["cors", "stack"],
             "support": {
                 "issues": "https://github.com/asm89/stack-cors/issues",
                 "source": "https://github.com/asm89/stack-cors/tree/v2.1.1"
@@ -112,9 +107,7 @@
                 "symfony/yaml": "^6.3",
                 "vimeo/psalm": "^5.14.0"
             },
-            "bin": [
-                "bin/dcg"
-            ],
+            "bin": ["bin/dcg"],
             "type": "library",
             "autoload": {
                 "psr-4": {
@@ -122,9 +115,7 @@
                 }
             },
             "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "GPL-2.0-or-later"
-            ],
+            "license": ["GPL-2.0-or-later"],
             "description": "Drupal code generator",
             "support": {
                 "issues": "https://github.com/Chi-teck/drupal-code-generator/issues",
@@ -189,9 +180,7 @@
                 }
             },
             "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
+            "license": ["MIT"],
             "authors": [
                 {
                     "name": "Kyle Robinson Young",
@@ -331,9 +320,7 @@
                 }
             },
             "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
+            "license": ["MIT"],
             "authors": [
                 {
                     "name": "Nils Adermann",
@@ -352,12 +339,7 @@
                 }
             ],
             "description": "Semver library that offers utilities, version constraint parsing and validation.",
-            "keywords": [
-                "semantic",
-                "semver",
-                "validation",
-                "versioning"
-            ],
+            "keywords": ["semantic", "semver", "validation", "versioning"],
             "support": {
                 "irc": "irc://irc.freenode.org/composer",
                 "issues": "https://github.com/composer/semver/issues",
@@ -419,9 +401,7 @@
                 }
             },
             "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
+            "license": ["MIT"],
             "authors": [
                 {
                     "name": "Greg Anderson",
@@ -479,9 +459,7 @@
                 }
             },
             "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
+            "license": ["MIT"],
             "authors": [
                 {
                     "name": "Greg Anderson",
@@ -530,9 +508,7 @@
                 }
             },
             "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
+            "license": ["MIT"],
             "authors": [
                 {
                     "name": "Greg Anderson",
@@ -581,9 +557,7 @@
                 }
             },
             "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
+            "license": ["MIT"],
             "authors": [
                 {
                     "name": "Greg Anderson",
@@ -635,9 +609,7 @@
                 }
             },
             "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
+            "license": ["MIT"],
             "authors": [
                 {
                     "name": "Greg Anderson",
@@ -698,9 +670,7 @@
                 "pear/archive_tar": "Allows tar archives to be created and extracted in taskPack and taskExtract, respectively.",
                 "totten/lurkerlite": "For monitoring filesystem changes in taskWatch"
             },
-            "bin": [
-                "robo"
-            ],
+            "bin": ["robo"],
             "type": "library",
             "autoload": {
                 "psr-4": {
@@ -708,9 +678,7 @@
                 }
             },
             "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
+            "license": ["MIT"],
             "authors": [
                 {
                     "name": "Davert",
@@ -744,9 +712,7 @@
                 "symfony/console": "^2.8 || ^3 || ^4 || ^5 || ^6",
                 "symfony/filesystem": "^2.5 || ^3 || ^4 || ^5 || ^6"
             },
-            "bin": [
-                "scripts/release"
-            ],
+            "bin": ["scripts/release"],
             "type": "library",
             "extra": {
                 "branch-alias": {
@@ -759,9 +725,7 @@
                 }
             },
             "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
+            "license": ["MIT"],
             "authors": [
                 {
                     "name": "Alexander Menk",
@@ -818,9 +782,7 @@
                 }
             },
             "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
+            "license": ["MIT"],
             "authors": [
                 {
                     "name": "Greg Anderson",
@@ -875,9 +837,7 @@
                 }
             },
             "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
+            "license": ["MIT"],
             "authors": [
                 {
                     "name": "Greg Anderson",
@@ -927,9 +887,7 @@
                 }
             },
             "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "BSD-3-Clause"
-            ],
+            "license": ["BSD-3-Clause"],
             "authors": [
                 {
                     "name": "Cameron Eagans",
@@ -998,9 +956,7 @@
                 }
             },
             "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
+            "license": ["MIT"],
             "authors": [
                 {
                     "name": "Dragonfly Development Inc.",
@@ -1025,12 +981,7 @@
             ],
             "description": "Given a deep data structure, access data by dot notation.",
             "homepage": "https://github.com/dflydev/dflydev-dot-access-data",
-            "keywords": [
-                "access",
-                "data",
-                "dot",
-                "notation"
-            ],
+            "keywords": ["access", "data", "dot", "notation"],
             "support": {
                 "issues": "https://github.com/dflydev/dflydev-dot-access-data/issues",
                 "source": "https://github.com/dflydev/dflydev-dot-access-data/tree/v3.0.2"
@@ -1099,9 +1050,7 @@
                 }
             },
             "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
+            "license": ["MIT"],
             "authors": [
                 {
                     "name": "Guilherme Blanco",
@@ -1126,11 +1075,7 @@
             ],
             "description": "Docblock Annotations Parser",
             "homepage": "https://www.doctrine-project.org/projects/annotations.html",
-            "keywords": [
-                "annotations",
-                "docblock",
-                "parser"
-            ],
+            "keywords": ["annotations", "docblock", "parser"],
             "support": {
                 "issues": "https://github.com/doctrine/annotations/issues",
                 "source": "https://github.com/doctrine/annotations/tree/1.14.3"
@@ -1173,9 +1118,7 @@
                 }
             },
             "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
+            "license": ["MIT"],
             "description": "A small layer on top of trigger_error(E_USER_DEPRECATED) or PSR-3 logging with options to disable all deprecations or selectively for packages.",
             "homepage": "https://www.doctrine-project.org/",
             "support": {
@@ -1216,9 +1159,7 @@
                 }
             },
             "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
+            "license": ["MIT"],
             "authors": [
                 {
                     "name": "Guilherme Blanco",
@@ -1235,13 +1176,7 @@
             ],
             "description": "PHP Doctrine Lexer parser library that can be used in Top-Down, Recursive Descent Parsers.",
             "homepage": "https://www.doctrine-project.org/projects/lexer.html",
-            "keywords": [
-                "annotations",
-                "docblock",
-                "lexer",
-                "parser",
-                "php"
-            ],
+            "keywords": ["annotations", "docblock", "lexer", "parser", "php"],
             "support": {
                 "issues": "https://github.com/doctrine/lexer/issues",
                 "source": "https://github.com/doctrine/lexer/tree/2.1.0"
@@ -1291,9 +1226,7 @@
                 }
             },
             "notification-url": "https://packages.drupal.org/8/downloads",
-            "license": [
-                "GPL-2.0-or-later"
-            ],
+            "license": ["GPL-2.0-or-later"],
             "authors": [
                 {
                     "name": "anand.toshniwal93",
@@ -1362,9 +1295,7 @@
                 }
             },
             "notification-url": "https://packages.drupal.org/8/downloads",
-            "license": [
-                "GPL-2.0-or-later"
-            ],
+            "license": ["GPL-2.0-or-later"],
             "authors": [
                 {
                     "name": "Wilfrid Roze (eme)",
@@ -1402,10 +1333,7 @@
             ],
             "description": "Provides a drop-down menu interface to the core Drupal Toolbar.",
             "homepage": "http://drupal.org/project/admin_toolbar",
-            "keywords": [
-                "Drupal",
-                "Toolbar"
-            ],
+            "keywords": ["Drupal", "Toolbar"],
             "support": {
                 "source": "https://git.drupalcode.org/project/admin_toolbar",
                 "issues": "https://www.drupal.org/project/issues/admin_toolbar"
@@ -1441,9 +1369,7 @@
                 }
             },
             "notification-url": "https://packages.drupal.org/8/downloads",
-            "license": [
-                "GPL-2.0+"
-            ],
+            "license": ["GPL-2.0+"],
             "authors": [
                 {
                     "name": "ANDiTKO",
@@ -1498,9 +1424,7 @@
                 }
             },
             "notification-url": "https://packages.drupal.org/8/downloads",
-            "license": [
-                "GPL-2.0-or-later"
-            ],
+            "license": ["GPL-2.0-or-later"],
             "authors": [
                 {
                     "name": "AdamPS",
@@ -1550,9 +1474,7 @@
                 }
             },
             "notification-url": "https://packages.drupal.org/8/downloads",
-            "license": [
-                "GPL-2.0-or-later"
-            ],
+            "license": ["GPL-2.0-or-later"],
             "authors": [
                 {
                     "name": "Northern Commerce (formerly Digital Echidna)",
@@ -1614,9 +1536,7 @@
                 }
             },
             "notification-url": "https://packages.drupal.org/8/downloads",
-            "license": [
-                "GPL-2.0-or-later"
-            ],
+            "license": ["GPL-2.0-or-later"],
             "authors": [
                 {
                     "name": "Vardot",
@@ -1672,9 +1592,7 @@
                 }
             },
             "notification-url": "https://packages.drupal.org/8/downloads",
-            "license": [
-                "GPL-2.0-or-later"
-            ],
+            "license": ["GPL-2.0-or-later"],
             "authors": [
                 {
                     "name": "Mike Keran",
@@ -1741,9 +1659,7 @@
                 }
             },
             "notification-url": "https://packages.drupal.org/8/downloads",
-            "license": [
-                "GPL-2.0-or-later"
-            ],
+            "license": ["GPL-2.0-or-later"],
             "authors": [
                 {
                     "name": "acbramley",
@@ -1805,9 +1721,7 @@
                 }
             },
             "notification-url": "https://packages.drupal.org/8/downloads",
-            "license": [
-                "GPL-2.0+"
-            ],
+            "license": ["GPL-2.0+"],
             "authors": [
                 {
                     "name": "jefuri",
@@ -1865,9 +1779,7 @@
                 }
             },
             "notification-url": "https://packages.drupal.org/8/downloads",
-            "license": [
-                "GPL-2.0-or-later"
-            ],
+            "license": ["GPL-2.0-or-later"],
             "authors": [
                 {
                     "name": "Joshua Roberson",
@@ -1917,9 +1829,7 @@
                 }
             },
             "notification-url": "https://packages.drupal.org/8/downloads",
-            "license": [
-                "GPL-2.0-or-later"
-            ],
+            "license": ["GPL-2.0-or-later"],
             "authors": [
                 {
                     "name": "Mark Carver (markcarver)",
@@ -1981,9 +1891,7 @@
                 }
             },
             "notification-url": "https://packages.drupal.org/8/downloads",
-            "license": [
-                "GPL-2.0-or-later"
-            ],
+            "license": ["GPL-2.0-or-later"],
             "authors": [
                 {
                     "name": "asgorobets",
@@ -2032,9 +1940,7 @@
                 }
             },
             "notification-url": "https://packages.drupal.org/8/downloads",
-            "license": [
-                "GPL-2.0-or-later"
-            ],
+            "license": ["GPL-2.0-or-later"],
             "authors": [
                 {
                     "name": "Anybody",
@@ -2109,9 +2015,7 @@
                 }
             },
             "notification-url": "https://packages.drupal.org/8/downloads",
-            "license": [
-                "GPL-2.0+"
-            ],
+            "license": ["GPL-2.0+"],
             "authors": [
                 {
                     "name": "Christian Meilinger (meichr)",
@@ -2125,9 +2029,7 @@
             ],
             "description": "Provides integration of the CKEditor IndentBlock plugin with CKEditor.",
             "homepage": "https://www.drupal.org/project/ckeditor_indentblock",
-            "keywords": [
-                "Drupal"
-            ],
+            "keywords": ["Drupal"],
             "support": {
                 "source": "http://cgit.drupalcode.org/ckeditor_indentblock/",
                 "issues": "https://www.drupal.org/project/issues/ckeditor_indentblock"
@@ -2166,9 +2068,7 @@
                 }
             },
             "notification-url": "https://packages.drupal.org/8/downloads",
-            "license": [
-                "GPL-2.0+"
-            ],
+            "license": ["GPL-2.0+"],
             "authors": [
                 {
                     "name": "Tommy Lynge Jørgensen",
@@ -2193,50 +2093,6 @@
                 "issues": "http://drupal.org/project/config_ignore"
             }
         },
-        {
-            "name": "drupal/convert_entity_media_embed",
-            "version": "1.0.0-alpha5",
-            "source": {
-                "type": "git",
-                "url": "https://git.drupalcode.org/project/convert_entity_media_embed.git",
-                "reference": "1.0.0-alpha5"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://ftp.drupal.org/files/projects/convert_entity_media_embed-1.0.0-alpha5.zip",
-                "reference": "1.0.0-alpha5",
-                "shasum": "6373b7784d219d37151ef8e889f793c7b747fec3"
-            },
-            "require": {
-                "drupal/core": "^8.9 || ^9 || ^10"
-            },
-            "type": "drupal-module",
-            "extra": {
-                "drupal": {
-                    "version": "1.0.0-alpha5",
-                    "datestamp": "1699363463",
-                    "security-coverage": {
-                        "status": "not-covered",
-                        "message": "Project has not opted into security advisory coverage!"
-                    }
-                }
-            },
-            "notification-url": "https://packages.drupal.org/8/downloads",
-            "license": [
-                "GPL-2.0-or-later"
-            ],
-            "authors": [
-                {
-                    "name": "eelkeblok",
-                    "homepage": "https://www.drupal.org/user/423078"
-                }
-            ],
-            "description": "Convert contrib entity embed tags to core media embed tags.",
-            "homepage": "https://www.drupal.org/project/convert_entity_media_embed",
-            "support": {
-                "source": "https://git.drupalcode.org/project/convert_entity_media_embed"
-            }
-        },
         {
             "name": "drupal/core",
             "version": "10.1.7",
@@ -2356,9 +2212,7 @@
                 }
             },
             "autoload": {
-                "files": [
-                    "includes/bootstrap.inc"
-                ],
+                "files": ["includes/bootstrap.inc"],
                 "psr-4": {
                     "Drupal\\Core\\": "lib/Drupal/Core",
                     "Drupal\\Component\\": "lib/Drupal/Component"
@@ -2388,9 +2242,7 @@
                 ]
             },
             "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "GPL-2.0-or-later"
-            ],
+            "license": ["GPL-2.0-or-later"],
             "description": "Drupal is an open source content management platform powering millions of websites and applications.",
             "support": {
                 "source": "https://github.com/drupal/core/tree/10.1.7"
@@ -2434,14 +2286,10 @@
                 }
             },
             "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "GPL-2.0-or-later"
-            ],
+            "license": ["GPL-2.0-or-later"],
             "description": "A flexible Composer project scaffold builder.",
             "homepage": "https://www.drupal.org/project/drupal",
-            "keywords": [
-                "drupal"
-            ],
+            "keywords": ["drupal"],
             "support": {
                 "source": "https://github.com/drupal/core-composer-scaffold/tree/10.1.7"
             },
@@ -2519,9 +2367,7 @@
             },
             "type": "metapackage",
             "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "GPL-2.0-or-later"
-            ],
+            "license": ["GPL-2.0-or-later"],
             "description": "Core and its dependencies with known-compatible minor versions. Require this project INSTEAD OF drupal/core.",
             "support": {
                 "source": "https://github.com/drupal/core-recommended/tree/10.1.7"
@@ -2557,9 +2403,7 @@
                 }
             },
             "notification-url": "https://packages.drupal.org/8/downloads",
-            "license": [
-                "GPL-2.0-or-later"
-            ],
+            "license": ["GPL-2.0-or-later"],
             "authors": [
                 {
                     "name": "Drupal Media Team",
@@ -2617,9 +2461,7 @@
                 }
             },
             "notification-url": "https://packages.drupal.org/8/downloads",
-            "license": [
-                "GPL-2.0-or-later"
-            ],
+            "license": ["GPL-2.0-or-later"],
             "authors": [
                 {
                     "name": "Kris Vanderwater (EclipseGc)",
@@ -2707,9 +2549,7 @@
                 }
             },
             "notification-url": "https://packages.drupal.org/8/downloads",
-            "license": [
-                "GPL-2.0-or-later"
-            ],
+            "license": ["GPL-2.0-or-later"],
             "authors": [
                 {
                     "name": "bkosborne",
@@ -2755,9 +2595,7 @@
                 }
             },
             "notification-url": "https://packages.drupal.org/8/downloads",
-            "license": [
-                "GPL-2.0-or-later"
-            ],
+            "license": ["GPL-2.0-or-later"],
             "authors": [
                 {
                     "name": "DuaelFr",
@@ -2802,9 +2640,7 @@
                 }
             },
             "notification-url": "https://packages.drupal.org/8/downloads",
-            "license": [
-                "GPL-2.0-or-later"
-            ],
+            "license": ["GPL-2.0-or-later"],
             "authors": [
                 {
                     "name": "cs_shadow",
@@ -2875,9 +2711,7 @@
                 }
             },
             "notification-url": "https://packages.drupal.org/8/downloads",
-            "license": [
-                "GPL-2.0+"
-            ],
+            "license": ["GPL-2.0+"],
             "authors": [
                 {
                     "name": "Janez Urevc",
@@ -2947,9 +2781,7 @@
                 }
             },
             "notification-url": "https://packages.drupal.org/8/downloads",
-            "license": [
-                "GPL-2.0-or-later"
-            ],
+            "license": ["GPL-2.0-or-later"],
             "authors": [
                 {
                     "name": "Berdir",
@@ -3029,9 +2861,7 @@
                 }
             },
             "notification-url": "https://packages.drupal.org/8/downloads",
-            "license": [
-                "GPL-2.0-or-later"
-            ],
+            "license": ["GPL-2.0-or-later"],
             "authors": [
                 {
                     "name": "colan",
@@ -3098,9 +2928,7 @@
                 }
             },
             "notification-url": "https://packages.drupal.org/8/downloads",
-            "license": [
-                "GPL-2.0-or-later"
-            ],
+            "license": ["GPL-2.0-or-later"],
             "authors": [
                 {
                     "name": "cs_shadow",
@@ -3178,9 +3006,7 @@
                 }
             },
             "notification-url": "https://packages.drupal.org/8/downloads",
-            "license": [
-                "GPL-2.0-or-later"
-            ],
+            "license": ["GPL-2.0-or-later"],
             "authors": [
                 {
                     "name": "Berdir",
@@ -3234,9 +3060,7 @@
                 }
             },
             "notification-url": "https://packages.drupal.org/8/downloads",
-            "license": [
-                "GPL-2.0-or-later"
-            ],
+            "license": ["GPL-2.0-or-later"],
             "authors": [
                 {
                     "name": "heddn",
@@ -3286,9 +3110,7 @@
                 }
             },
             "notification-url": "https://packages.drupal.org/8/downloads",
-            "license": [
-                "GPL-2.0-or-later"
-            ],
+            "license": ["GPL-2.0-or-later"],
             "authors": [
                 {
                     "name": "Sven Decabooter",
@@ -3340,9 +3162,7 @@
                 }
             },
             "notification-url": "https://packages.drupal.org/8/downloads",
-            "license": [
-                "GPL-2.0-or-later"
-            ],
+            "license": ["GPL-2.0-or-later"],
             "authors": [
                 {
                     "name": "Anybody",
@@ -3408,9 +3228,7 @@
                 }
             },
             "notification-url": "https://packages.drupal.org/8/downloads",
-            "license": [
-                "GPL-2.0-or-later"
-            ],
+            "license": ["GPL-2.0-or-later"],
             "authors": [
                 {
                     "name": "japerry",
@@ -3475,9 +3293,7 @@
                 }
             },
             "notification-url": "https://packages.drupal.org/8/downloads",
-            "license": [
-                "GPL-2.0-or-later"
-            ],
+            "license": ["GPL-2.0-or-later"],
             "authors": [
                 {
                     "name": "Alexander Ross (bleen)",
@@ -3532,9 +3348,7 @@
                 }
             },
             "notification-url": "https://packages.drupal.org/8/downloads",
-            "license": [
-                "GPL-2.0-or-later"
-            ],
+            "license": ["GPL-2.0-or-later"],
             "authors": [
                 {
                     "name": "See contributors",
@@ -3597,9 +3411,7 @@
                 }
             },
             "notification-url": "https://packages.drupal.org/8/downloads",
-            "license": [
-                "GPL-2.0-or-later"
-            ],
+            "license": ["GPL-2.0-or-later"],
             "authors": [
                 {
                     "name": "acquia",
@@ -3660,9 +3472,7 @@
                 }
             },
             "notification-url": "https://packages.drupal.org/8/downloads",
-            "license": [
-                "GPL-2.0-or-later"
-            ],
+            "license": ["GPL-2.0-or-later"],
             "authors": [
                 {
                     "name": "Jeff Geerling",
@@ -3730,9 +3540,7 @@
                 }
             },
             "notification-url": "https://packages.drupal.org/8/downloads",
-            "license": [
-                "GPL-2.0-or-later"
-            ],
+            "license": ["GPL-2.0-or-later"],
             "authors": [
                 {
                     "name": "bojanz",
@@ -3818,9 +3626,7 @@
                 }
             },
             "notification-url": "https://packages.drupal.org/8/downloads",
-            "license": [
-                "GPL-2.0-or-later"
-            ],
+            "license": ["GPL-2.0-or-later"],
             "authors": [
                 {
                     "name": "bnjmnm",
@@ -3916,9 +3722,7 @@
                 }
             },
             "notification-url": "https://packages.drupal.org/8/downloads",
-            "license": [
-                "GPL-2.0-or-later"
-            ],
+            "license": ["GPL-2.0-or-later"],
             "authors": [
                 {
                     "name": "bnjmnm",
@@ -3981,9 +3785,7 @@
                 }
             },
             "notification-url": "https://packages.drupal.org/8/downloads",
-            "license": [
-                "GPL-2.0-or-later"
-            ],
+            "license": ["GPL-2.0-or-later"],
             "authors": [
                 {
                     "name": "bnjmnm",
@@ -4046,9 +3848,7 @@
                 }
             },
             "notification-url": "https://packages.drupal.org/8/downloads",
-            "license": [
-                "GPL-2.0-or-later"
-            ],
+            "license": ["GPL-2.0-or-later"],
             "authors": [
                 {
                     "name": "bnjmnm",
@@ -4099,9 +3899,7 @@
                 }
             },
             "notification-url": "https://packages.drupal.org/8/downloads",
-            "license": [
-                "GPL-2.0-or-later"
-            ],
+            "license": ["GPL-2.0-or-later"],
             "authors": [
                 {
                     "name": "bnjmnm",
@@ -4164,9 +3962,7 @@
                 }
             },
             "notification-url": "https://packages.drupal.org/8/downloads",
-            "license": [
-                "GPL-2.0-or-later"
-            ],
+            "license": ["GPL-2.0-or-later"],
             "authors": [
                 {
                     "name": "bnjmnm",
@@ -4218,9 +4014,7 @@
                 }
             },
             "notification-url": "https://packages.drupal.org/8/downloads",
-            "license": [
-                "GPL-2.0-or-later"
-            ],
+            "license": ["GPL-2.0-or-later"],
             "authors": [
                 {
                     "name": "Naveen Valecha",
@@ -4234,10 +4028,7 @@
             ],
             "description": "Provides jQuery UI Touch Punch library.",
             "homepage": "https://www.drupal.org/project/jquery_ui_touch_punch",
-            "keywords": [
-                "Drupal",
-                "jquery_ui_touch_punch"
-            ],
+            "keywords": ["Drupal", "jquery_ui_touch_punch"],
             "support": {
                 "source": "https://www.drupal.org/project/jquery_ui_touch_punch",
                 "issues": "https://www.drupal.org/project/issues/jquery_ui_touch_punch"
@@ -4272,9 +4063,7 @@
                 }
             },
             "notification-url": "https://packages.drupal.org/8/downloads",
-            "license": [
-                "GPL-2.0-or-later"
-            ],
+            "license": ["GPL-2.0-or-later"],
             "authors": [
                 {
                     "name": "joseph.olstad",
@@ -4342,9 +4131,7 @@
                 }
             },
             "notification-url": "https://packages.drupal.org/8/downloads",
-            "license": [
-                "GPL-2.0-or-later"
-            ],
+            "license": ["GPL-2.0-or-later"],
             "authors": [
                 {
                     "name": "larowlan",
@@ -4353,9 +4140,7 @@
             ],
             "description": "Provides a widget to allow settings of link attributes for menu links.",
             "homepage": "https://www.drupal.org/project/link_attributes",
-            "keywords": [
-                "Drupal"
-            ],
+            "keywords": ["Drupal"],
             "support": {
                 "source": "https://git.drupalcode.org/project/link_attributes",
                 "issues": "https://www.drupal.org/project/issues/link_attributes"
@@ -4394,9 +4179,7 @@
                 }
             },
             "notification-url": "https://packages.drupal.org/8/downloads",
-            "license": [
-                "GPL-2.0-or-later"
-            ],
+            "license": ["GPL-2.0-or-later"],
             "authors": [
                 {
                     "name": "Emil Stjerneman",
@@ -4449,9 +4232,7 @@
                 }
             },
             "notification-url": "https://packages.drupal.org/8/downloads",
-            "license": [
-                "GPL-2.0-or-later"
-            ],
+            "license": ["GPL-2.0-or-later"],
             "authors": [
                 {
                     "name": "cilefen",
@@ -4511,9 +4292,7 @@
                 }
             },
             "notification-url": "https://packages.drupal.org/8/downloads",
-            "license": [
-                "GPL-2.0-or-later"
-            ],
+            "license": ["GPL-2.0-or-later"],
             "authors": [
                 {
                     "name": "acbramley",
@@ -4579,9 +4358,7 @@
                 }
             },
             "notification-url": "https://packages.drupal.org/8/downloads",
-            "license": [
-                "GPL-2.0-or-later"
-            ],
+            "license": ["GPL-2.0-or-later"],
             "authors": [
                 {
                     "name": "bkosborne",
@@ -4627,9 +4404,7 @@
                 }
             },
             "notification-url": "https://packages.drupal.org/8/downloads",
-            "license": [
-                "GPL-2.0+"
-            ],
+            "license": ["GPL-2.0+"],
             "authors": [
                 {
                     "name": "ahebrank",
@@ -4638,9 +4413,7 @@
             ],
             "description": "Add an edit button to the Media Library widget when an item is selected.",
             "homepage": "https://www.drupal.org/project/media_library_edit",
-            "keywords": [
-                "Drupal"
-            ],
+            "keywords": ["Drupal"],
             "support": {
                 "source": "http://cgit.drupalcode.org/media_library_edit",
                 "issues": "https://www.drupal.org/project/issues/media_library_edit"
@@ -4675,9 +4448,7 @@
                 }
             },
             "notification-url": "https://packages.drupal.org/8/downloads",
-            "license": [
-                "GPL-2.0-or-later"
-            ],
+            "license": ["GPL-2.0-or-later"],
             "authors": [
                 {
                     "name": "Dave Reid",
@@ -4739,9 +4510,7 @@
                 }
             },
             "notification-url": "https://packages.drupal.org/8/downloads",
-            "license": [
-                "GPL-2.0-or-later"
-            ],
+            "license": ["GPL-2.0-or-later"],
             "authors": [
                 {
                     "name": "aaron",
@@ -4815,9 +4584,7 @@
                 }
             },
             "notification-url": "https://packages.drupal.org/8/downloads",
-            "license": [
-                "GPL-2.0-or-later"
-            ],
+            "license": ["GPL-2.0-or-later"],
             "authors": [
                 {
                     "name": "See contributors",
@@ -4831,10 +4598,7 @@
             ],
             "description": "Manage meta tags for all entities.",
             "homepage": "https://www.drupal.org/project/metatag",
-            "keywords": [
-                "Drupal",
-                "seo"
-            ],
+            "keywords": ["Drupal", "seo"],
             "support": {
                 "source": "https://git.drupalcode.org/project/metatag",
                 "issues": "https://www.drupal.org/project/issues/metatag",
@@ -4871,9 +4635,7 @@
                 }
             },
             "notification-url": "https://packages.drupal.org/8/downloads",
-            "license": [
-                "GPL-2.0+"
-            ],
+            "license": ["GPL-2.0+"],
             "authors": [
                 {
                     "name": "Matthew Donadio (mpdonadio)",
@@ -4929,9 +4691,7 @@
                 }
             },
             "notification-url": "https://packages.drupal.org/8/downloads",
-            "license": [
-                "GPL-2.0-or-later"
-            ],
+            "license": ["GPL-2.0-or-later"],
             "authors": [
                 {
                     "name": "andrey.troeglazov",
@@ -4984,9 +4744,7 @@
                 }
             },
             "notification-url": "https://packages.drupal.org/8/downloads",
-            "license": [
-                "GPL-2.0-or-later"
-            ],
+            "license": ["GPL-2.0-or-later"],
             "authors": [
                 {
                     "name": "RandalV",
@@ -5028,9 +4786,7 @@
                 }
             },
             "notification-url": "https://packages.drupal.org/8/downloads",
-            "license": [
-                "GPL-2.0-or-later"
-            ],
+            "license": ["GPL-2.0-or-later"],
             "authors": [
                 {
                     "name": "asghar",
@@ -5097,13 +4853,9 @@
                     "phpcbf --report=full --extensions=php,module,inc,theme,info,install --standard=vendor/drupal/coder/coder_sniffer/Drupal tests/modules",
                     "phpcbf  tests/behat  --standard=PSR2"
                 ],
-                "phpunit": [
-                    "phpunit tests --colors=always"
-                ]
+                "phpunit": ["phpunit tests --colors=always"]
             },
-            "license": [
-                "GPL-2.0-or-later"
-            ],
+            "license": ["GPL-2.0-or-later"],
             "authors": [
                 {
                     "name": "David Strauss",
@@ -5181,9 +4933,7 @@
                 }
             },
             "notification-url": "https://packages.drupal.org/8/downloads",
-            "license": [
-                "GPL-2.0-or-later"
-            ],
+            "license": ["GPL-2.0-or-later"],
             "authors": [
                 {
                     "name": "Berdir",
@@ -5255,9 +5005,7 @@
                 }
             },
             "notification-url": "https://packages.drupal.org/8/downloads",
-            "license": [
-                "GPL-2.0-or-later"
-            ],
+            "license": ["GPL-2.0-or-later"],
             "authors": [
                 {
                     "name": "Berdir",
@@ -5313,9 +5061,7 @@
                 }
             },
             "notification-url": "https://packages.drupal.org/8/downloads",
-            "license": [
-                "GPL-2.0-or-later"
-            ],
+            "license": ["GPL-2.0-or-later"],
             "authors": [
                 {
                     "name": "Evgenii Nikitin (sinn)",
@@ -5373,9 +5119,7 @@
                 }
             },
             "notification-url": "https://packages.drupal.org/8/downloads",
-            "license": [
-                "GPL-2.0+"
-            ],
+            "license": ["GPL-2.0+"],
             "authors": [
                 {
                     "name": "hass",
@@ -5454,9 +5198,7 @@
                 }
             },
             "notification-url": "https://packages.drupal.org/8/downloads",
-            "license": [
-                "GPL-2.0-or-later"
-            ],
+            "license": ["GPL-2.0-or-later"],
             "authors": [
                 {
                     "name": "leymannx",
@@ -5500,9 +5242,7 @@
                 }
             },
             "notification-url": "https://packages.drupal.org/8/downloads",
-            "license": [
-                "GPL-2.0+"
-            ],
+            "license": ["GPL-2.0+"],
             "authors": [
                 {
                     "name": "hass",
@@ -5583,9 +5323,7 @@
                 }
             },
             "notification-url": "https://packages.drupal.org/8/downloads",
-            "license": [
-                "GPL-2.0-or-later"
-            ],
+            "license": ["GPL-2.0-or-later"],
             "authors": [
                 {
                     "name": "B-Prod",
@@ -5635,9 +5373,7 @@
                 }
             },
             "notification-url": "https://packages.drupal.org/8/downloads",
-            "license": [
-                "GPL-2.0-or-later"
-            ],
+            "license": ["GPL-2.0-or-later"],
             "authors": [
                 {
                     "name": "Berdir",
@@ -5691,9 +5427,7 @@
                 }
             },
             "notification-url": "https://packages.drupal.org/8/downloads",
-            "license": [
-                "GPL-2.0-or-later"
-            ],
+            "license": ["GPL-2.0-or-later"],
             "authors": [
                 {
                     "name": "joseph.olstad",
@@ -5758,9 +5492,7 @@
                 }
             },
             "notification-url": "https://packages.drupal.org/8/downloads",
-            "license": [
-                "GPL-2.0-or-later"
-            ],
+            "license": ["GPL-2.0-or-later"],
             "authors": [
                 {
                     "name": "Eric Schaefer (Eric Schaefer)",
@@ -5819,9 +5551,7 @@
                 }
             },
             "notification-url": "https://packages.drupal.org/8/downloads",
-            "license": [
-                "GPL-2.0-or-later"
-            ],
+            "license": ["GPL-2.0-or-later"],
             "authors": [
                 {
                     "name": "bnjmnm",
@@ -5882,9 +5612,7 @@
                 }
             },
             "notification-url": "https://packages.drupal.org/8/downloads",
-            "license": [
-                "GPL-2.0-or-later"
-            ],
+            "license": ["GPL-2.0-or-later"],
             "authors": [
                 {
                     "name": "martin107",
@@ -5932,9 +5660,7 @@
                 }
             },
             "notification-url": "https://packages.drupal.org/8/downloads",
-            "license": [
-                "GPL-2.0-or-later"
-            ],
+            "license": ["GPL-2.0-or-later"],
             "authors": [
                 {
                     "name": "Pawel Ginalski (gbyte)",
@@ -5985,9 +5711,7 @@
                 }
             },
             "notification-url": "https://packages.drupal.org/8/downloads",
-            "license": [
-                "GPL-2.0+"
-            ],
+            "license": ["GPL-2.0+"],
             "authors": [
                 {
                     "name": "Berdir",
@@ -6060,9 +5784,7 @@
                 }
             },
             "notification-url": "https://packages.drupal.org/8/downloads",
-            "license": [
-                "GPL-2.0-or-later"
-            ],
+            "license": ["GPL-2.0-or-later"],
             "authors": [
                 {
                     "name": "japerry",
@@ -6134,9 +5856,7 @@
                 }
             },
             "notification-url": "https://packages.drupal.org/8/downloads",
-            "license": [
-                "GPL-2.0+"
-            ],
+            "license": ["GPL-2.0+"],
             "authors": [
                 {
                     "name": "Takim Islam",
@@ -6189,9 +5909,7 @@
                 }
             },
             "notification-url": "https://packages.drupal.org/8/downloads",
-            "license": [
-                "GPL-2.0-or-later"
-            ],
+            "license": ["GPL-2.0-or-later"],
             "authors": [
                 {
                     "name": "Neslee Canil Pinto",
@@ -6241,9 +5959,7 @@
                 }
             },
             "notification-url": "https://packages.drupal.org/8/downloads",
-            "license": [
-                "GPL-2.0+"
-            ],
+            "license": ["GPL-2.0+"],
             "authors": [
                 {
                     "name": "Yaroslav Lushnikov",
@@ -6296,9 +6012,7 @@
                 }
             },
             "notification-url": "https://packages.drupal.org/8/downloads",
-            "license": [
-                "GPL-2.0-or-later"
-            ],
+            "license": ["GPL-2.0-or-later"],
             "authors": [
                 {
                     "name": "Berdir",
@@ -6360,9 +6074,7 @@
                 }
             },
             "notification-url": "https://packages.drupal.org/8/downloads",
-            "license": [
-                "GPL-2.0-or-later"
-            ],
+            "license": ["GPL-2.0-or-later"],
             "authors": [
                 {
                     "name": "bizar1984",
@@ -6424,9 +6136,7 @@
                 }
             },
             "notification-url": "https://packages.drupal.org/8/downloads",
-            "license": [
-                "GPL-2.0-or-later"
-            ],
+            "license": ["GPL-2.0-or-later"],
             "authors": [
                 {
                     "name": "Chi",
@@ -6435,10 +6145,7 @@
             ],
             "description": "A Twig extension with some useful functions and filters for Drupal development.",
             "homepage": "https://www.drupal.org/project/twig_tweak",
-            "keywords": [
-                "Drupal",
-                "Twig"
-            ],
+            "keywords": ["Drupal", "Twig"],
             "support": {
                 "source": "https://git.drupalcode.org/project/twig_tweak",
                 "issues": "https://www.drupal.org/project/issues/twig_tweak"
@@ -6478,9 +6185,7 @@
                 }
             },
             "notification-url": "https://packages.drupal.org/8/downloads",
-            "license": [
-                "GPL-2.0+"
-            ],
+            "license": ["GPL-2.0+"],
             "authors": [
                 {
                     "name": "arnested",
@@ -6545,9 +6250,7 @@
                 }
             },
             "notification-url": "https://packages.drupal.org/8/downloads",
-            "license": [
-                "GPL-2.0+"
-            ],
+            "license": ["GPL-2.0+"],
             "authors": [
                 {
                     "name": "karschsp",
@@ -6560,10 +6263,7 @@
             ],
             "description": "Allows admins to protect users from being edited or cancelled, on a per-user basis.",
             "homepage": "https://www.drupal.org/project/userprotect",
-            "keywords": [
-                "Drupal",
-                "User Management"
-            ],
+            "keywords": ["Drupal", "User Management"],
             "support": {
                 "source": "http://cgit.drupalcode.org/userprotect",
                 "issues": "https://www.drupal.org/project/issues/userprotect"
@@ -6603,9 +6303,7 @@
                 }
             },
             "notification-url": "https://packages.drupal.org/8/downloads",
-            "license": [
-                "GPL-2.0-or-later"
-            ],
+            "license": ["GPL-2.0-or-later"],
             "authors": [
                 {
                     "name": "abhinesh",
@@ -6659,9 +6357,7 @@
                 }
             },
             "notification-url": "https://packages.drupal.org/8/downloads",
-            "license": [
-                "GPL-2.0-or-later"
-            ],
+            "license": ["GPL-2.0-or-later"],
             "authors": [
                 {
                     "name": "Agnes Chisholm",
@@ -6724,9 +6420,7 @@
                 }
             },
             "notification-url": "https://packages.drupal.org/8/downloads",
-            "license": [
-                "GPL-2.0-or-later"
-            ],
+            "license": ["GPL-2.0-or-later"],
             "authors": [
                 {
                     "name": "amateescu",
@@ -6784,9 +6478,7 @@
                 }
             },
             "notification-url": "https://packages.drupal.org/8/downloads",
-            "license": [
-                "GPL-2.0-or-later"
-            ],
+            "license": ["GPL-2.0-or-later"],
             "authors": [
                 {
                     "name": "colan",
@@ -6807,10 +6499,7 @@
             ],
             "description": "Add autocomplete functionality to the views filter text fields.",
             "homepage": "https://www.drupal.org/project/views_autocomplete_filters",
-            "keywords": [
-                "Drupal",
-                "views_autocomplete_filters"
-            ],
+            "keywords": ["Drupal", "views_autocomplete_filters"],
             "support": {
                 "source": "https://git.drupalcode.org/project/views_autocomplete_filters",
                 "issues": "https://www.drupal.org/project/issues/views_autocomplete_filters"
@@ -6845,9 +6534,7 @@
                 }
             },
             "notification-url": "https://packages.drupal.org/8/downloads",
-            "license": [
-                "GPL-2.0-or-later"
-            ],
+            "license": ["GPL-2.0-or-later"],
             "authors": [
                 {
                     "name": "Dmitry Demenchuk",
@@ -6923,9 +6610,7 @@
                 }
             },
             "notification-url": "https://packages.drupal.org/8/downloads",
-            "license": [
-                "GPL-2.0-or-later"
-            ],
+            "license": ["GPL-2.0-or-later"],
             "authors": [
                 {
                     "name": "Marcin Grabias",
@@ -6977,9 +6662,7 @@
                 }
             },
             "notification-url": "https://packages.drupal.org/8/downloads",
-            "license": [
-                "GPL-2.0-or-later"
-            ],
+            "license": ["GPL-2.0-or-later"],
             "authors": [
                 {
                     "name": "pifagor",
@@ -7034,9 +6717,7 @@
                 }
             },
             "notification-url": "https://packages.drupal.org/8/downloads",
-            "license": [
-                "GPL-2.0-or-later"
-            ],
+            "license": ["GPL-2.0-or-later"],
             "authors": [
                 {
                     "name": "Anybody",
@@ -7148,9 +6829,7 @@
                 }
             },
             "notification-url": "https://packages.drupal.org/8/downloads",
-            "license": [
-                "GPL-2.0-or-later"
-            ],
+            "license": ["GPL-2.0-or-later"],
             "authors": [
                 {
                     "name": "Jacob Rockowitz (jrockowitz)",
@@ -7204,16 +6883,10 @@
             },
             "type": "drupal-drush",
             "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "GPL-2.0-or-later"
-            ],
+            "license": ["GPL-2.0-or-later"],
             "description": "Drush commandfile for use with drupal/drupal-driver.",
             "homepage": "https://github.com/drush-ops/behat-drush-endpoint",
-            "keywords": [
-                "Behat",
-                "Drush",
-                "testing"
-            ],
+            "keywords": ["Behat", "Drush", "testing"],
             "support": {
                 "issues": "https://github.com/drush-ops/behat-drush-endpoint/issues",
                 "source": "https://github.com/drush-ops/behat-drush-endpoint/tree/no-phpunit"
@@ -7272,36 +6945,18 @@
                 "rector/rector": "^0.12",
                 "squizlabs/php_codesniffer": "^3.7"
             },
-            "bin": [
-                "drush"
-            ],
+            "bin": ["drush"],
             "type": "library",
             "extra": {
                 "installer-paths": {
-                    "sut/core": [
-                        "type:drupal-core"
-                    ],
-                    "sut/libraries/{$name}": [
-                        "type:drupal-library"
-                    ],
-                    "sut/modules/unish/{$name}": [
-                        "drupal/devel"
-                    ],
-                    "sut/themes/unish/{$name}": [
-                        "drupal/empty_theme"
-                    ],
-                    "sut/modules/contrib/{$name}": [
-                        "type:drupal-module"
-                    ],
-                    "sut/profiles/contrib/{$name}": [
-                        "type:drupal-profile"
-                    ],
-                    "sut/themes/contrib/{$name}": [
-                        "type:drupal-theme"
-                    ],
-                    "sut/drush/contrib/{$name}": [
-                        "type:drupal-drush"
-                    ]
+                    "sut/core": ["type:drupal-core"],
+                    "sut/libraries/{$name}": ["type:drupal-library"],
+                    "sut/modules/unish/{$name}": ["drupal/devel"],
+                    "sut/themes/unish/{$name}": ["drupal/empty_theme"],
+                    "sut/modules/contrib/{$name}": ["type:drupal-module"],
+                    "sut/profiles/contrib/{$name}": ["type:drupal-profile"],
+                    "sut/themes/contrib/{$name}": ["type:drupal-theme"],
+                    "sut/drush/contrib/{$name}": ["type:drupal-drush"]
                 }
             },
             "autoload": {
@@ -7310,9 +6965,7 @@
                 }
             },
             "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "GPL-2.0-or-later"
-            ],
+            "license": ["GPL-2.0-or-later"],
             "authors": [
                 {
                     "name": "Moshe Weitzman",
@@ -7402,9 +7055,7 @@
                 }
             },
             "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
+            "license": ["MIT"],
             "authors": [
                 {
                     "name": "Eduardo Gulias Davis"
@@ -7461,9 +7112,7 @@
                 }
             },
             "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "GPL-2.0-or-later"
-            ],
+            "license": ["GPL-2.0-or-later"],
             "authors": [
                 {
                     "name": "Daryll Doyle",
@@ -7493,9 +7142,7 @@
             },
             "type": "library",
             "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
+            "license": ["MIT"],
             "authors": [
                 {
                     "name": "Matias Meno",
@@ -7505,12 +7152,7 @@
             ],
             "description": "Handles drag and drop of files for you.",
             "homepage": "http://www.dropzonejs.com",
-            "keywords": [
-                "drag and drop",
-                "dragndrop",
-                "file upload",
-                "upload"
-            ],
+            "keywords": ["drag and drop", "dragndrop", "file upload", "upload"],
             "support": {
                 "issues": "https://github.com/dropzone/dropzone-packagist/issues",
                 "source": "https://github.com/dropzone/dropzone-packagist/tree/v5.9.3"
@@ -7546,20 +7188,14 @@
             },
             "type": "library",
             "autoload": {
-                "files": [
-                    "library/HTMLPurifier.composer.php"
-                ],
+                "files": ["library/HTMLPurifier.composer.php"],
                 "psr-0": {
                     "HTMLPurifier": "library/"
                 },
-                "exclude-from-classmap": [
-                    "/library/HTMLPurifier/Language/"
-                ]
+                "exclude-from-classmap": ["/library/HTMLPurifier/Language/"]
             },
             "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "LGPL-2.1-or-later"
-            ],
+            "license": ["LGPL-2.1-or-later"],
             "authors": [
                 {
                     "name": "Edward Z. Yang",
@@ -7569,9 +7205,7 @@
             ],
             "description": "Standards compliant HTML filter written in PHP",
             "homepage": "http://htmlpurifier.org/",
-            "keywords": [
-                "html"
-            ],
+            "keywords": ["html"],
             "support": {
                 "issues": "https://github.com/ezyang/htmlpurifier/issues",
                 "source": "https://github.com/ezyang/htmlpurifier/tree/v4.16.0"
@@ -7620,9 +7254,7 @@
                 }
             },
             "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
+            "license": ["MIT"],
             "authors": [
                 {
                     "name": "Oscar Otero",
@@ -7633,14 +7265,7 @@
             ],
             "description": "PHP gettext manager",
             "homepage": "https://github.com/php-gettext/Gettext",
-            "keywords": [
-                "JS",
-                "gettext",
-                "i18n",
-                "mo",
-                "po",
-                "translation"
-            ],
+            "keywords": ["JS", "gettext", "i18n", "mo", "po", "translation"],
             "support": {
                 "email": "oom@oscarotero.com",
                 "issues": "https://github.com/php-gettext/Gettext/issues",
@@ -7682,9 +7307,7 @@
             "require-dev": {
                 "phpunit/phpunit": "^4.8 || ^5.7 || ^6.5 || ^7.5 || ^8.4"
             },
-            "bin": [
-                "bin/export-plural-rules"
-            ],
+            "bin": ["bin/export-plural-rules"],
             "type": "library",
             "autoload": {
                 "psr-4": {
@@ -7692,9 +7315,7 @@
                 }
             },
             "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
+            "license": ["MIT"],
             "authors": [
                 {
                     "name": "Michele Locati",
@@ -7770,9 +7391,7 @@
                 }
             },
             "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
+            "license": ["MIT"],
             "authors": [
                 {
                     "name": "Oscar Otero",
@@ -7783,12 +7402,7 @@
             ],
             "description": "Gettext translator functions",
             "homepage": "https://github.com/php-gettext/Translator",
-            "keywords": [
-                "gettext",
-                "i18n",
-                "php",
-                "translator"
-            ],
+            "keywords": ["gettext", "i18n", "php", "translator"],
             "support": {
                 "email": "oom@oscarotero.com",
                 "issues": "https://github.com/php-gettext/Translator/issues",
@@ -7844,17 +7458,10 @@
                 }
             },
             "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "BSD-3-Clause"
-            ],
+            "license": ["BSD-3-Clause"],
             "description": "Client library for reCAPTCHA, a free service that protects websites from spam and abuse.",
             "homepage": "https://www.google.com/recaptcha/",
-            "keywords": [
-                "Abuse",
-                "captcha",
-                "recaptcha",
-                "spam"
-            ],
+            "keywords": ["Abuse", "captcha", "recaptcha", "spam"],
             "support": {
                 "forum": "https://groups.google.com/forum/#!forum/recaptcha",
                 "issues": "https://github.com/google/recaptcha/issues",
@@ -7899,9 +7506,7 @@
                 }
             },
             "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
+            "license": ["MIT"],
             "authors": [
                 {
                     "name": "Matthew Grasmick"
@@ -7940,9 +7545,7 @@
                 "phpunit/phpunit": "^9",
                 "squizlabs/php_codesniffer": "^3.0"
             },
-            "bin": [
-                "bin/yaml-cli"
-            ],
+            "bin": ["bin/yaml-cli"],
             "type": "library",
             "extra": {
                 "branch-alias": {
@@ -7955,9 +7558,7 @@
                 }
             },
             "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
+            "license": ["MIT"],
             "authors": [
                 {
                     "name": "Matthew Grasmick"
@@ -8016,17 +7617,13 @@
                 }
             },
             "autoload": {
-                "files": [
-                    "src/functions_include.php"
-                ],
+                "files": ["src/functions_include.php"],
                 "psr-4": {
                     "GuzzleHttp\\": "src/"
                 }
             },
             "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
+            "license": ["MIT"],
             "authors": [
                 {
                     "name": "Graham Campbell",
@@ -8130,9 +7727,7 @@
                 }
             },
             "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
+            "license": ["MIT"],
             "authors": [
                 {
                     "name": "Graham Campbell",
@@ -8156,9 +7751,7 @@
                 }
             ],
             "description": "Guzzle promises library",
-            "keywords": [
-                "promise"
-            ],
+            "keywords": ["promise"],
             "support": {
                 "issues": "https://github.com/guzzle/promises/issues",
                 "source": "https://github.com/guzzle/promises/tree/2.0.2"
@@ -8224,9 +7817,7 @@
                 }
             },
             "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
+            "license": ["MIT"],
             "authors": [
                 {
                     "name": "Graham Campbell",
@@ -8344,9 +7935,7 @@
                 }
             },
             "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
+            "license": ["MIT"],
             "authors": [
                 {
                     "name": "Phil Bennett",
@@ -8410,9 +7999,7 @@
                 }
             },
             "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
+            "license": ["MIT"],
             "authors": [
                 {
                     "name": "Matt Butcher",
@@ -8477,9 +8064,7 @@
                 }
             },
             "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "BSD-3-Clause"
-            ],
+            "license": ["BSD-3-Clause"],
             "authors": [
                 {
                     "name": "Marco Marchiò",
@@ -8518,14 +8103,10 @@
                 "psr-0": {
                     "Detection": "namespaced/"
                 },
-                "classmap": [
-                    "Mobile_Detect.php"
-                ]
+                "classmap": ["Mobile_Detect.php"]
             },
             "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
+            "license": ["MIT"],
             "authors": [
                 {
                     "name": "Serban Ghita",
@@ -8577,9 +8158,7 @@
                 "ircmaxell/php-yacc": "^0.0.7",
                 "phpunit/phpunit": "^6.5 || ^7.0 || ^8.0 || ^9.0"
             },
-            "bin": [
-                "bin/php-parse"
-            ],
+            "bin": ["bin/php-parse"],
             "type": "library",
             "extra": {
                 "branch-alias": {
@@ -8592,19 +8171,14 @@
                 }
             },
             "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "BSD-3-Clause"
-            ],
+            "license": ["BSD-3-Clause"],
             "authors": [
                 {
                     "name": "Nikita Popov"
                 }
             ],
             "description": "A PHP parser written in PHP",
-            "keywords": [
-                "parser",
-                "php"
-            ],
+            "keywords": ["parser", "php"],
             "support": {
                 "issues": "https://github.com/nikic/PHP-Parser/issues",
                 "source": "https://github.com/nikic/PHP-Parser/tree/v4.17.1"
@@ -8654,9 +8228,7 @@
                 }
             },
             "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
+            "license": ["MIT"],
             "authors": [
                 {
                     "name": "Stephen Beemsterboer",
@@ -8696,9 +8268,7 @@
             },
             "type": "quicksilver-script",
             "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
+            "license": ["MIT"],
             "description": "Push commits made via the Pantheon dashboard back to original GitHub repository.",
             "support": {
                 "issues": "https://github.com/pantheon-systems/quicksilver-pushback/issues",
@@ -8744,12 +8314,8 @@
                 }
             },
             "notification-url": "https://packagist.org/downloads/",
-            "include-path": [
-                "./"
-            ],
-            "license": [
-                "BSD-3-Clause"
-            ],
+            "include-path": ["./"],
+            "license": ["BSD-3-Clause"],
             "authors": [
                 {
                     "name": "Vincent Blavet",
@@ -8766,10 +8332,7 @@
             ],
             "description": "Tar file management class with compression support (gzip, bzip2, lzma2)",
             "homepage": "https://github.com/pear/Archive_Tar",
-            "keywords": [
-                "archive",
-                "tar"
-            ],
+            "keywords": ["archive", "tar"],
             "support": {
                 "issues": "http://pear.php.net/bugs/search.php?cmd=display&package_name[]=Archive_Tar",
                 "source": "https://github.com/pear/Archive_Tar"
@@ -8807,12 +8370,8 @@
                 }
             },
             "notification-url": "https://packagist.org/downloads/",
-            "include-path": [
-                "./"
-            ],
-            "license": [
-                "BSD-2-Clause"
-            ],
+            "include-path": ["./"],
+            "license": ["BSD-2-Clause"],
             "authors": [
                 {
                     "name": "Andrei Zmievski",
@@ -8866,12 +8425,8 @@
                 }
             },
             "notification-url": "https://packagist.org/downloads/",
-            "include-path": [
-                "src/"
-            ],
-            "license": [
-                "BSD-3-Clause"
-            ],
+            "include-path": ["src/"],
+            "license": ["BSD-3-Clause"],
             "authors": [
                 {
                     "name": "Christian Weiske",
@@ -8913,17 +8468,11 @@
                 }
             },
             "autoload": {
-                "classmap": [
-                    "PEAR/"
-                ]
+                "classmap": ["PEAR/"]
             },
             "notification-url": "https://packagist.org/downloads/",
-            "include-path": [
-                "."
-            ],
-            "license": [
-                "BSD-2-Clause"
-            ],
+            "include-path": ["."],
+            "license": ["BSD-2-Clause"],
             "authors": [
                 {
                     "name": "Helgi Thormar",
@@ -8936,9 +8485,7 @@
             ],
             "description": "The PEAR Exception base class.",
             "homepage": "https://github.com/pear/PEAR_Exception",
-            "keywords": [
-                "exception"
-            ],
+            "keywords": ["exception"],
             "support": {
                 "issues": "http://pear.php.net/bugs/search.php?cmd=display&package_name[]=PEAR_Exception",
                 "source": "https://github.com/pear/PEAR_Exception"
@@ -8970,9 +8517,7 @@
                 }
             },
             "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
+            "license": ["MIT"],
             "authors": [
                 {
                     "name": "Thomas Gossmann",
@@ -9026,9 +8571,7 @@
                 }
             },
             "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
+            "license": ["MIT"],
             "authors": [
                 {
                     "name": "Thomas Gossmann",
@@ -9037,12 +8580,7 @@
             ],
             "description": "Missing PHP language constructs",
             "homepage": "https://phootwork.github.io/lang/",
-            "keywords": [
-                "array",
-                "comparator",
-                "comparison",
-                "string"
-            ],
+            "keywords": ["array", "comparator", "comparison", "string"],
             "support": {
                 "issues": "https://github.com/phootwork/phootwork/issues",
                 "source": "https://github.com/phootwork/lang/tree/v3.2.2"
@@ -9097,9 +8635,7 @@
                 }
             },
             "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "LGPL-2.1-only"
-            ],
+            "license": ["LGPL-2.1-only"],
             "authors": [
                 {
                     "name": "Marcus Bointon",
@@ -9161,9 +8697,7 @@
                 }
             },
             "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
+            "license": ["MIT"],
             "authors": [
                 {
                     "name": "Thomas Gossmann",
@@ -9171,11 +8705,7 @@
                 }
             ],
             "description": "PHP Docblock parser and generator. An API to read and write Docblocks.",
-            "keywords": [
-                "docblock",
-                "generator",
-                "parser"
-            ],
+            "keywords": ["docblock", "generator", "parser"],
             "support": {
                 "issues": "https://github.com/phpowermove/docblock/issues",
                 "source": "https://github.com/phpowermove/docblock/tree/v4.0"
@@ -9198,9 +8728,7 @@
             },
             "type": "drupal-library",
             "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
+            "license": ["MIT"],
             "authors": [
                 {
                     "name": "Dave Furfero",
@@ -9209,11 +8737,7 @@
             ],
             "description": "Extension to jQuery UI for mobile touch event support.",
             "homepage": "http://touchpunch.furf.com/",
-            "keywords": [
-                "gestures",
-                "mobile",
-                "touch"
-            ],
+            "keywords": ["gestures", "mobile", "touch"],
             "support": {
                 "issues": "https://github.com/politsin/jquery-ui-touch-punch/issues",
                 "source": "https://github.com/politsin/jquery-ui-touch-punch/tree/1.0"
@@ -9249,9 +8773,7 @@
                 }
             },
             "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
+            "license": ["MIT"],
             "authors": [
                 {
                     "name": "PHP-FIG",
@@ -9259,11 +8781,7 @@
                 }
             ],
             "description": "Common interface for caching libraries",
-            "keywords": [
-                "cache",
-                "psr",
-                "psr-6"
-            ],
+            "keywords": ["cache", "psr", "psr-6"],
             "support": {
                 "source": "https://github.com/php-fig/cache/tree/3.0.0"
             },
@@ -9298,9 +8816,7 @@
                 }
             },
             "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
+            "license": ["MIT"],
             "authors": [
                 {
                     "name": "PHP-FIG",
@@ -9351,9 +8867,7 @@
                 }
             },
             "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
+            "license": ["MIT"],
             "authors": [
                 {
                     "name": "PHP-FIG",
@@ -9361,11 +8875,7 @@
                 }
             ],
             "description": "Standard interfaces for event handling.",
-            "keywords": [
-                "events",
-                "psr",
-                "psr-14"
-            ],
+            "keywords": ["events", "psr", "psr-14"],
             "support": {
                 "issues": "https://github.com/php-fig/event-dispatcher/issues",
                 "source": "https://github.com/php-fig/event-dispatcher/tree/1.0.0"
@@ -9402,9 +8912,7 @@
                 }
             },
             "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
+            "license": ["MIT"],
             "authors": [
                 {
                     "name": "PHP-FIG",
@@ -9413,12 +8921,7 @@
             ],
             "description": "Common interface for HTTP clients",
             "homepage": "https://github.com/php-fig/http-client",
-            "keywords": [
-                "http",
-                "http-client",
-                "psr",
-                "psr-18"
-            ],
+            "keywords": ["http", "http-client", "psr", "psr-18"],
             "support": {
                 "source": "https://github.com/php-fig/http-client"
             },
@@ -9454,9 +8957,7 @@
                 }
             },
             "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
+            "license": ["MIT"],
             "authors": [
                 {
                     "name": "PHP-FIG",
@@ -9508,9 +9009,7 @@
                 }
             },
             "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
+            "license": ["MIT"],
             "authors": [
                 {
                     "name": "PHP-FIG",
@@ -9561,9 +9060,7 @@
                 }
             },
             "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
+            "license": ["MIT"],
             "authors": [
                 {
                     "name": "PHP-FIG",
@@ -9572,11 +9069,7 @@
             ],
             "description": "Common interface for logging libraries",
             "homepage": "https://github.com/php-fig/log",
-            "keywords": [
-                "log",
-                "psr",
-                "psr-3"
-            ],
+            "keywords": ["log", "psr", "psr-3"],
             "support": {
                 "source": "https://github.com/php-fig/log/tree/3.0.0"
             },
@@ -9616,9 +9109,7 @@
                 "ext-posix": "If you have PCNTL, you'll want the POSIX extension as well.",
                 "ext-readline": "Enables support for arrow-key history navigation, and showing and manipulating command history."
             },
-            "bin": [
-                "bin/psysh"
-            ],
+            "bin": ["bin/psysh"],
             "type": "library",
             "extra": {
                 "branch-alias": {
@@ -9630,17 +9121,13 @@
                 }
             },
             "autoload": {
-                "files": [
-                    "src/functions.php"
-                ],
+                "files": ["src/functions.php"],
                 "psr-4": {
                     "Psy\\": "src/"
                 }
             },
             "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
+            "license": ["MIT"],
             "authors": [
                 {
                     "name": "Justin Hileman",
@@ -9650,12 +9137,7 @@
             ],
             "description": "An interactive shell for modern PHP.",
             "homepage": "http://psysh.org",
-            "keywords": [
-                "REPL",
-                "console",
-                "interactive",
-                "shell"
-            ],
+            "keywords": ["REPL", "console", "interactive", "shell"],
             "support": {
                 "issues": "https://github.com/bobthecow/psysh/issues",
                 "source": "https://github.com/bobthecow/psysh/tree/v0.11.22"
@@ -9685,14 +9167,10 @@
             },
             "type": "library",
             "autoload": {
-                "files": [
-                    "src/getallheaders.php"
-                ]
+                "files": ["src/getallheaders.php"]
             },
             "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
+            "license": ["MIT"],
             "authors": [
                 {
                     "name": "Ralph Khattar",
@@ -9731,17 +9209,10 @@
                 }
             },
             "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "BSD-3-Clause"
-            ],
+            "license": ["BSD-3-Clause"],
             "description": "A PHP library for XML Security",
             "homepage": "https://github.com/robrichards/xmlseclibs",
-            "keywords": [
-                "security",
-                "signature",
-                "xml",
-                "xmldsig"
-            ],
+            "keywords": ["security", "signature", "xml", "xmldsig"],
             "support": {
                 "issues": "https://github.com/robrichards/xmlseclibs/issues",
                 "source": "https://github.com/robrichards/xmlseclibs/tree/3.1.1"
@@ -9776,14 +9247,10 @@
                 }
             },
             "autoload": {
-                "classmap": [
-                    "src/"
-                ]
+                "classmap": ["src/"]
             },
             "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "BSD-3-Clause"
-            ],
+            "license": ["BSD-3-Clause"],
             "authors": [
                 {
                     "name": "Sebastian Bergmann",
@@ -9796,12 +9263,7 @@
             ],
             "description": "Diff implementation",
             "homepage": "https://github.com/sebastianbergmann/diff",
-            "keywords": [
-                "diff",
-                "udiff",
-                "unidiff",
-                "unified diff"
-            ],
+            "keywords": ["diff", "udiff", "unidiff", "unified diff"],
             "support": {
                 "issues": "https://github.com/sebastianbergmann/diff/issues",
                 "source": "https://github.com/sebastianbergmann/diff/tree/4.0.5"
@@ -9851,9 +9313,7 @@
                 }
             },
             "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "LGPL-2.1-or-later"
-            ],
+            "license": ["LGPL-2.1-or-later"],
             "authors": [
                 {
                     "name": "Tim van Dijen",
@@ -9904,9 +9364,7 @@
                 }
             },
             "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "LGPL-2.1-only"
-            ],
+            "license": ["LGPL-2.1-only"],
             "description": "A Composer plugin that allows installing SimpleSAMLphp modules through Composer.",
             "support": {
                 "issues": "https://github.com/simplesamlphp/composer-module-installer/issues",
@@ -9956,9 +9414,7 @@
                 }
             },
             "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "LGPL-2.1-or-later"
-            ],
+            "license": ["LGPL-2.1-or-later"],
             "authors": [
                 {
                     "name": "Andreas Åkre Solberg",
@@ -10052,9 +9508,7 @@
                 }
             },
             "autoload": {
-                "files": [
-                    "src/_autoload_modules.php"
-                ],
+                "files": ["src/_autoload_modules.php"],
                 "psr-4": {
                     "SimpleSAML\\": "src/SimpleSAML",
                     "SimpleSAML\\Module\\core\\": "modules/core/src",
@@ -10066,9 +9520,7 @@
                 }
             },
             "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "LGPL-2.1-or-later"
-            ],
+            "license": ["LGPL-2.1-or-later"],
             "authors": [
                 {
                     "name": "Andreas Åkre Solberg",
@@ -10119,9 +9571,7 @@
             },
             "type": "simplesamlphp-module",
             "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "LGPL-2.1-or-later"
-            ],
+            "license": ["LGPL-2.1-or-later"],
             "authors": [
                 {
                     "name": "Tim van Dijen",
@@ -10165,9 +9615,7 @@
                 }
             },
             "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "LGPL-3.0-or-later"
-            ],
+            "license": ["LGPL-3.0-or-later"],
             "authors": [
                 {
                     "name": "Olav Morken",
@@ -10175,10 +9623,7 @@
                 }
             ],
             "description": "This module provides authentication against password hashes or .htpasswd files",
-            "keywords": [
-                "authcrypt",
-                "simplesamlphp"
-            ],
+            "keywords": ["authcrypt", "simplesamlphp"],
             "support": {
                 "issues": "https://github.com/tvdijen/simplesamlphp-module-authcrypt/issues",
                 "source": "https://github.com/tvdijen/simplesamlphp-module-authcrypt"
@@ -10217,9 +9662,7 @@
                 }
             },
             "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "LGPL-2.1-or-later"
-            ],
+            "license": ["LGPL-2.1-or-later"],
             "authors": [
                 {
                     "name": "Andreas Åkre Solberg",
@@ -10227,10 +9670,7 @@
                 }
             ],
             "description": "The metarefresh module will download and parse metadata documents and store them locally",
-            "keywords": [
-                "metarefresh",
-                "simplesamlphp"
-            ],
+            "keywords": ["metarefresh", "simplesamlphp"],
             "support": {
                 "issues": "https://github.com/simplesamlphp/simplesamlphp-module-metarefresh/issues",
                 "source": "https://github.com/simplesamlphp/simplesamlphp-module-metarefresh"
@@ -10271,9 +9711,7 @@
                 }
             },
             "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "LGPL-2.1-or-later"
-            ],
+            "license": ["LGPL-2.1-or-later"],
             "authors": [
                 {
                     "name": "Jaime Perez",
@@ -10286,10 +9724,7 @@
             ],
             "description": "A library with classes and utilities for handling XML structures.",
             "homepage": "http://simplesamlphp.org",
-            "keywords": [
-                "saml",
-                "xml"
-            ],
+            "keywords": ["saml", "xml"],
             "support": {
                 "issues": "https://github.com/simplesamlphp/xml-common/issues",
                 "source": "https://github.com/simplesamlphp/xml-common"
@@ -10346,17 +9781,11 @@
                 "psr-4": {
                     "Symfony\\Component\\Cache\\": ""
                 },
-                "classmap": [
-                    "Traits/ValueWrapper.php"
-                ],
-                "exclude-from-classmap": [
-                    "/Tests/"
-                ]
+                "classmap": ["Traits/ValueWrapper.php"],
+                "exclude-from-classmap": ["/Tests/"]
             },
             "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
+            "license": ["MIT"],
             "authors": [
                 {
                     "name": "Nicolas Grekas",
@@ -10369,10 +9798,7 @@
             ],
             "description": "Provides extended PSR-6, PSR-16 (and tags) implementations",
             "homepage": "https://symfony.com",
-            "keywords": [
-                "caching",
-                "psr6"
-            ],
+            "keywords": ["caching", "psr6"],
             "support": {
                 "source": "https://github.com/symfony/cache/tree/v6.3.8"
             },
@@ -10426,9 +9852,7 @@
                 }
             },
             "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
+            "license": ["MIT"],
             "authors": [
                 {
                     "name": "Nicolas Grekas",
@@ -10504,14 +9928,10 @@
                 "psr-4": {
                     "Symfony\\Component\\Config\\": ""
                 },
-                "exclude-from-classmap": [
-                    "/Tests/"
-                ]
+                "exclude-from-classmap": ["/Tests/"]
             },
             "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
+            "license": ["MIT"],
             "authors": [
                 {
                     "name": "Fabien Potencier",
@@ -10588,14 +10008,10 @@
                 "psr-4": {
                     "Symfony\\Component\\Console\\": ""
                 },
-                "exclude-from-classmap": [
-                    "/Tests/"
-                ]
+                "exclude-from-classmap": ["/Tests/"]
             },
             "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
+            "license": ["MIT"],
             "authors": [
                 {
                     "name": "Fabien Potencier",
@@ -10608,12 +10024,7 @@
             ],
             "description": "Eases the creation of beautiful and testable command line interfaces",
             "homepage": "https://symfony.com",
-            "keywords": [
-                "cli",
-                "command-line",
-                "console",
-                "terminal"
-            ],
+            "keywords": ["cli", "command-line", "console", "terminal"],
             "support": {
                 "source": "https://github.com/symfony/console/tree/v6.3.9"
             },
@@ -10675,14 +10086,10 @@
                 "psr-4": {
                     "Symfony\\Component\\DependencyInjection\\": ""
                 },
-                "exclude-from-classmap": [
-                    "/Tests/"
-                ]
+                "exclude-from-classmap": ["/Tests/"]
             },
             "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
+            "license": ["MIT"],
             "authors": [
                 {
                     "name": "Fabien Potencier",
@@ -10742,14 +10149,10 @@
                 }
             },
             "autoload": {
-                "files": [
-                    "function.php"
-                ]
+                "files": ["function.php"]
             },
             "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
+            "license": ["MIT"],
             "authors": [
                 {
                     "name": "Nicolas Grekas",
@@ -10808,22 +10211,16 @@
                 "symfony/http-kernel": "^5.4|^6.0",
                 "symfony/serializer": "^5.4|^6.0"
             },
-            "bin": [
-                "Resources/bin/patch-type-declarations"
-            ],
+            "bin": ["Resources/bin/patch-type-declarations"],
             "type": "library",
             "autoload": {
                 "psr-4": {
                     "Symfony\\Component\\ErrorHandler\\": ""
                 },
-                "exclude-from-classmap": [
-                    "/Tests/"
-                ]
+                "exclude-from-classmap": ["/Tests/"]
             },
             "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
+            "license": ["MIT"],
             "authors": [
                 {
                     "name": "Fabien Potencier",
@@ -10896,14 +10293,10 @@
                 "psr-4": {
                     "Symfony\\Component\\EventDispatcher\\": ""
                 },
-                "exclude-from-classmap": [
-                    "/Tests/"
-                ]
+                "exclude-from-classmap": ["/Tests/"]
             },
             "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
+            "license": ["MIT"],
             "authors": [
                 {
                     "name": "Fabien Potencier",
@@ -10969,9 +10362,7 @@
                 }
             },
             "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
+            "license": ["MIT"],
             "authors": [
                 {
                     "name": "Nicolas Grekas",
@@ -11035,14 +10426,10 @@
                 "psr-4": {
                     "Symfony\\Component\\Filesystem\\": ""
                 },
-                "exclude-from-classmap": [
-                    "/Tests/"
-                ]
+                "exclude-from-classmap": ["/Tests/"]
             },
             "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
+            "license": ["MIT"],
             "authors": [
                 {
                     "name": "Fabien Potencier",
@@ -11099,14 +10486,10 @@
                 "psr-4": {
                     "Symfony\\Component\\Finder\\": ""
                 },
-                "exclude-from-classmap": [
-                    "/Tests/"
-                ]
+                "exclude-from-classmap": ["/Tests/"]
             },
             "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
+            "license": ["MIT"],
             "authors": [
                 {
                     "name": "Fabien Potencier",
@@ -11243,14 +10626,10 @@
                 "psr-4": {
                     "Symfony\\Bundle\\FrameworkBundle\\": ""
                 },
-                "exclude-from-classmap": [
-                    "/Tests/"
-                ]
+                "exclude-from-classmap": ["/Tests/"]
             },
             "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
+            "license": ["MIT"],
             "authors": [
                 {
                     "name": "Fabien Potencier",
@@ -11320,14 +10699,10 @@
                 "psr-4": {
                     "Symfony\\Component\\HttpFoundation\\": ""
                 },
-                "exclude-from-classmap": [
-                    "/Tests/"
-                ]
+                "exclude-from-classmap": ["/Tests/"]
             },
             "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
+            "license": ["MIT"],
             "authors": [
                 {
                     "name": "Fabien Potencier",
@@ -11433,14 +10808,10 @@
                 "psr-4": {
                     "Symfony\\Component\\HttpKernel\\": ""
                 },
-                "exclude-from-classmap": [
-                    "/Tests/"
-                ]
+                "exclude-from-classmap": ["/Tests/"]
             },
             "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
+            "license": ["MIT"],
             "authors": [
                 {
                     "name": "Fabien Potencier",
@@ -11499,14 +10870,10 @@
                 "psr-4": {
                     "Symfony\\Component\\Intl\\": ""
                 },
-                "exclude-from-classmap": [
-                    "/Tests/"
-                ]
+                "exclude-from-classmap": ["/Tests/"]
             },
             "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
+            "license": ["MIT"],
             "authors": [
                 {
                     "name": "Bernhard Schussek",
@@ -11595,14 +10962,10 @@
                 "psr-4": {
                     "Symfony\\Component\\Mime\\": ""
                 },
-                "exclude-from-classmap": [
-                    "/Tests/"
-                ]
+                "exclude-from-classmap": ["/Tests/"]
             },
             "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
+            "license": ["MIT"],
             "authors": [
                 {
                     "name": "Fabien Potencier",
@@ -11615,10 +10978,7 @@
             ],
             "description": "Allows manipulating MIME messages",
             "homepage": "https://symfony.com",
-            "keywords": [
-                "mime",
-                "mime-type"
-            ],
+            "keywords": ["mime", "mime-type"],
             "support": {
                 "source": "https://github.com/symfony/mime/tree/v6.3.5"
             },
@@ -11672,17 +11032,13 @@
                 }
             },
             "autoload": {
-                "files": [
-                    "bootstrap.php"
-                ],
+                "files": ["bootstrap.php"],
                 "psr-4": {
                     "Symfony\\Polyfill\\Ctype\\": ""
                 }
             },
             "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
+            "license": ["MIT"],
             "authors": [
                 {
                     "name": "Gert de Pagter",
@@ -11695,12 +11051,7 @@
             ],
             "description": "Symfony polyfill for ctype functions",
             "homepage": "https://symfony.com",
-            "keywords": [
-                "compatibility",
-                "ctype",
-                "polyfill",
-                "portable"
-            ],
+            "keywords": ["compatibility", "ctype", "polyfill", "portable"],
             "support": {
                 "source": "https://github.com/symfony/polyfill-ctype/tree/v1.27.0"
             },
@@ -11754,17 +11105,13 @@
                 }
             },
             "autoload": {
-                "files": [
-                    "bootstrap.php"
-                ],
+                "files": ["bootstrap.php"],
                 "psr-4": {
                     "Symfony\\Polyfill\\Iconv\\": ""
                 }
             },
             "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
+            "license": ["MIT"],
             "authors": [
                 {
                     "name": "Nicolas Grekas",
@@ -11834,17 +11181,13 @@
                 }
             },
             "autoload": {
-                "files": [
-                    "bootstrap.php"
-                ],
+                "files": ["bootstrap.php"],
                 "psr-4": {
                     "Symfony\\Polyfill\\Intl\\Grapheme\\": ""
                 }
             },
             "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
+            "license": ["MIT"],
             "authors": [
                 {
                     "name": "Nicolas Grekas",
@@ -11917,17 +11260,13 @@
                 }
             },
             "autoload": {
-                "files": [
-                    "bootstrap.php"
-                ],
+                "files": ["bootstrap.php"],
                 "psr-4": {
                     "Symfony\\Polyfill\\Intl\\Idn\\": ""
                 }
             },
             "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
+            "license": ["MIT"],
             "authors": [
                 {
                     "name": "Laurent Bassin",
@@ -12002,20 +11341,14 @@
                 }
             },
             "autoload": {
-                "files": [
-                    "bootstrap.php"
-                ],
+                "files": ["bootstrap.php"],
                 "psr-4": {
                     "Symfony\\Polyfill\\Intl\\Normalizer\\": ""
                 },
-                "classmap": [
-                    "Resources/stubs"
-                ]
+                "classmap": ["Resources/stubs"]
             },
             "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
+            "license": ["MIT"],
             "authors": [
                 {
                     "name": "Nicolas Grekas",
@@ -12089,17 +11422,13 @@
                 }
             },
             "autoload": {
-                "files": [
-                    "bootstrap.php"
-                ],
+                "files": ["bootstrap.php"],
                 "psr-4": {
                     "Symfony\\Polyfill\\Mbstring\\": ""
                 }
             },
             "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
+            "license": ["MIT"],
             "authors": [
                 {
                     "name": "Nicolas Grekas",
@@ -12166,17 +11495,13 @@
                 }
             },
             "autoload": {
-                "files": [
-                    "bootstrap.php"
-                ],
+                "files": ["bootstrap.php"],
                 "psr-4": {
                     "Symfony\\Polyfill\\Php72\\": ""
                 }
             },
             "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
+            "license": ["MIT"],
             "authors": [
                 {
                     "name": "Nicolas Grekas",
@@ -12189,12 +11514,7 @@
             ],
             "description": "Symfony polyfill backporting some PHP 7.2+ features to lower PHP versions",
             "homepage": "https://symfony.com",
-            "keywords": [
-                "compatibility",
-                "polyfill",
-                "portable",
-                "shim"
-            ],
+            "keywords": ["compatibility", "polyfill", "portable", "shim"],
             "support": {
                 "source": "https://github.com/symfony/polyfill-php72/tree/v1.28.0"
             },
@@ -12242,20 +11562,14 @@
                 }
             },
             "autoload": {
-                "files": [
-                    "bootstrap.php"
-                ],
+                "files": ["bootstrap.php"],
                 "psr-4": {
                     "Symfony\\Polyfill\\Php80\\": ""
                 },
-                "classmap": [
-                    "Resources/stubs"
-                ]
+                "classmap": ["Resources/stubs"]
             },
             "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
+            "license": ["MIT"],
             "authors": [
                 {
                     "name": "Ion Bazan",
@@ -12272,12 +11586,7 @@
             ],
             "description": "Symfony polyfill backporting some PHP 8.0+ features to lower PHP versions",
             "homepage": "https://symfony.com",
-            "keywords": [
-                "compatibility",
-                "polyfill",
-                "portable",
-                "shim"
-            ],
+            "keywords": ["compatibility", "polyfill", "portable", "shim"],
             "support": {
                 "source": "https://github.com/symfony/polyfill-php80/tree/v1.28.0"
             },
@@ -12325,20 +11634,14 @@
                 }
             },
             "autoload": {
-                "files": [
-                    "bootstrap.php"
-                ],
+                "files": ["bootstrap.php"],
                 "psr-4": {
                     "Symfony\\Polyfill\\Php81\\": ""
                 },
-                "classmap": [
-                    "Resources/stubs"
-                ]
+                "classmap": ["Resources/stubs"]
             },
             "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
+            "license": ["MIT"],
             "authors": [
                 {
                     "name": "Nicolas Grekas",
@@ -12351,12 +11654,7 @@
             ],
             "description": "Symfony polyfill backporting some PHP 8.1+ features to lower PHP versions",
             "homepage": "https://symfony.com",
-            "keywords": [
-                "compatibility",
-                "polyfill",
-                "portable",
-                "shim"
-            ],
+            "keywords": ["compatibility", "polyfill", "portable", "shim"],
             "support": {
                 "source": "https://github.com/symfony/polyfill-php81/tree/v1.28.0"
             },
@@ -12405,17 +11703,13 @@
                 }
             },
             "autoload": {
-                "files": [
-                    "bootstrap.php"
-                ],
+                "files": ["bootstrap.php"],
                 "psr-4": {
                     "Symfony\\Polyfill\\Php83\\": ""
                 }
             },
             "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
+            "license": ["MIT"],
             "authors": [
                 {
                     "name": "Nicolas Grekas",
@@ -12428,12 +11722,7 @@
             ],
             "description": "Symfony polyfill backporting some PHP 8.3+ features to lower PHP versions",
             "homepage": "https://symfony.com",
-            "keywords": [
-                "compatibility",
-                "polyfill",
-                "portable",
-                "shim"
-            ],
+            "keywords": ["compatibility", "polyfill", "portable", "shim"],
             "support": {
                 "source": "https://github.com/symfony/polyfill-php83/tree/v1.27.0"
             },
@@ -12475,14 +11764,10 @@
                 "psr-4": {
                     "Symfony\\Component\\Process\\": ""
                 },
-                "exclude-from-classmap": [
-                    "/Tests/"
-                ]
+                "exclude-from-classmap": ["/Tests/"]
             },
             "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
+            "license": ["MIT"],
             "authors": [
                 {
                     "name": "Fabien Potencier",
@@ -12556,14 +11841,10 @@
                 "psr-4": {
                     "Symfony\\Bridge\\PsrHttpMessage\\": ""
                 },
-                "exclude-from-classmap": [
-                    "/Tests/"
-                ]
+                "exclude-from-classmap": ["/Tests/"]
             },
             "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
+            "license": ["MIT"],
             "authors": [
                 {
                     "name": "Fabien Potencier",
@@ -12576,12 +11857,7 @@
             ],
             "description": "PSR HTTP message bridge",
             "homepage": "http://symfony.com",
-            "keywords": [
-                "http",
-                "http-message",
-                "psr-17",
-                "psr-7"
-            ],
+            "keywords": ["http", "http-message", "psr-17", "psr-7"],
             "support": {
                 "issues": "https://github.com/symfony/psr-http-message-bridge/issues",
                 "source": "https://github.com/symfony/psr-http-message-bridge/tree/v2.2.0"
@@ -12640,14 +11916,10 @@
                 "psr-4": {
                     "Symfony\\Component\\Routing\\": ""
                 },
-                "exclude-from-classmap": [
-                    "/Tests/"
-                ]
+                "exclude-from-classmap": ["/Tests/"]
             },
             "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
+            "license": ["MIT"],
             "authors": [
                 {
                     "name": "Fabien Potencier",
@@ -12660,12 +11932,7 @@
             ],
             "description": "Maps an HTTP request to a set of configuration variables",
             "homepage": "https://symfony.com",
-            "keywords": [
-                "router",
-                "routing",
-                "uri",
-                "url"
-            ],
+            "keywords": ["router", "routing", "uri", "url"],
             "support": {
                 "source": "https://github.com/symfony/routing/tree/v6.3.10"
             },
@@ -12740,14 +12007,10 @@
                 "psr-4": {
                     "Symfony\\Component\\Serializer\\": ""
                 },
-                "exclude-from-classmap": [
-                    "/Tests/"
-                ]
+                "exclude-from-classmap": ["/Tests/"]
             },
             "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
+            "license": ["MIT"],
             "authors": [
                 {
                     "name": "Fabien Potencier",
@@ -12814,14 +12077,10 @@
                 "psr-4": {
                     "Symfony\\Contracts\\Service\\": ""
                 },
-                "exclude-from-classmap": [
-                    "/Test/"
-                ]
+                "exclude-from-classmap": ["/Test/"]
             },
             "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
+            "license": ["MIT"],
             "authors": [
                 {
                     "name": "Nicolas Grekas",
@@ -12894,20 +12153,14 @@
             },
             "type": "library",
             "autoload": {
-                "files": [
-                    "Resources/functions.php"
-                ],
+                "files": ["Resources/functions.php"],
                 "psr-4": {
                     "Symfony\\Component\\String\\": ""
                 },
-                "exclude-from-classmap": [
-                    "/Tests/"
-                ]
+                "exclude-from-classmap": ["/Tests/"]
             },
             "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
+            "license": ["MIT"],
             "authors": [
                 {
                     "name": "Nicolas Grekas",
@@ -12978,14 +12231,10 @@
                 "psr-4": {
                     "Symfony\\Contracts\\Translation\\": ""
                 },
-                "exclude-from-classmap": [
-                    "/Test/"
-                ]
+                "exclude-from-classmap": ["/Test/"]
             },
             "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
+            "license": ["MIT"],
             "authors": [
                 {
                     "name": "Nicolas Grekas",
@@ -13094,14 +12343,10 @@
                 "psr-4": {
                     "Symfony\\Bridge\\Twig\\": ""
                 },
-                "exclude-from-classmap": [
-                    "/Tests/"
-                ]
+                "exclude-from-classmap": ["/Tests/"]
             },
             "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
+            "license": ["MIT"],
             "authors": [
                 {
                     "name": "Fabien Potencier",
@@ -13190,14 +12435,10 @@
                 "psr-4": {
                     "Symfony\\Component\\Validator\\": ""
                 },
-                "exclude-from-classmap": [
-                    "/Tests/"
-                ]
+                "exclude-from-classmap": ["/Tests/"]
             },
             "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
+            "license": ["MIT"],
             "authors": [
                 {
                     "name": "Fabien Potencier",
@@ -13259,25 +12500,17 @@
                 "symfony/uid": "^5.4|^6.0",
                 "twig/twig": "^2.13|^3.0.4"
             },
-            "bin": [
-                "Resources/bin/var-dump-server"
-            ],
+            "bin": ["Resources/bin/var-dump-server"],
             "type": "library",
             "autoload": {
-                "files": [
-                    "Resources/functions/dump.php"
-                ],
+                "files": ["Resources/functions/dump.php"],
                 "psr-4": {
                     "Symfony\\Component\\VarDumper\\": ""
                 },
-                "exclude-from-classmap": [
-                    "/Tests/"
-                ]
+                "exclude-from-classmap": ["/Tests/"]
             },
             "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
+            "license": ["MIT"],
             "authors": [
                 {
                     "name": "Nicolas Grekas",
@@ -13290,10 +12523,7 @@
             ],
             "description": "Provides mechanisms for walking through any arbitrary PHP variable",
             "homepage": "https://symfony.com",
-            "keywords": [
-                "debug",
-                "dump"
-            ],
+            "keywords": ["debug", "dump"],
             "support": {
                 "source": "https://github.com/symfony/var-dumper/tree/v6.3.8"
             },
@@ -13338,14 +12568,10 @@
                 "psr-4": {
                     "Symfony\\Component\\VarExporter\\": ""
                 },
-                "exclude-from-classmap": [
-                    "/Tests/"
-                ]
+                "exclude-from-classmap": ["/Tests/"]
             },
             "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
+            "license": ["MIT"],
             "authors": [
                 {
                     "name": "Nicolas Grekas",
@@ -13412,22 +12638,16 @@
             "require-dev": {
                 "symfony/console": "^5.4|^6.0"
             },
-            "bin": [
-                "Resources/bin/yaml-lint"
-            ],
+            "bin": ["Resources/bin/yaml-lint"],
             "type": "library",
             "autoload": {
                 "psr-4": {
                     "Symfony\\Component\\Yaml\\": ""
                 },
-                "exclude-from-classmap": [
-                    "/Tests/"
-                ]
+                "exclude-from-classmap": ["/Tests/"]
             },
             "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
+            "license": ["MIT"],
             "authors": [
                 {
                     "name": "Fabien Potencier",
@@ -13486,14 +12706,10 @@
                 "psr-4": {
                     "Twig\\Extra\\Intl\\": ""
                 },
-                "exclude-from-classmap": [
-                    "/Tests/"
-                ]
+                "exclude-from-classmap": ["/Tests/"]
             },
             "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
+            "license": ["MIT"],
             "authors": [
                 {
                     "name": "Fabien Potencier",
@@ -13504,10 +12720,7 @@
             ],
             "description": "A Twig extension for Intl",
             "homepage": "https://twig.symfony.com",
-            "keywords": [
-                "intl",
-                "twig"
-            ],
+            "keywords": ["intl", "twig"],
             "support": {
                 "source": "https://github.com/twigphp/intl-extra/tree/v3.8.0"
             },
@@ -13553,9 +12766,7 @@
                 }
             },
             "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "BSD-3-Clause"
-            ],
+            "license": ["BSD-3-Clause"],
             "authors": [
                 {
                     "name": "Fabien Potencier",
@@ -13575,9 +12786,7 @@
             ],
             "description": "Twig, the flexible, fast, and secure template language for PHP",
             "homepage": "https://twig.symfony.com",
-            "keywords": [
-                "templating"
-            ],
+            "keywords": ["templating"],
             "support": {
                 "issues": "https://github.com/twigphp/Twig/issues",
                 "source": "https://github.com/twigphp/Twig/tree/v3.6.1"
@@ -13656,9 +12865,7 @@
                     }
                 }
             },
-            "license": [
-                "None"
-            ],
+            "license": ["None"],
             "description": "Simplesamlphp configuration and utilities for wcm sites."
         },
         {
@@ -13684,14 +12891,10 @@
             },
             "type": "library",
             "autoload": {
-                "classmap": [
-                    "src/DrupalFinder.php"
-                ]
+                "classmap": ["src/DrupalFinder.php"]
             },
             "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "GPL-2.0-or-later"
-            ],
+            "license": ["GPL-2.0-or-later"],
             "authors": [
                 {
                     "name": "Florian Weber",
@@ -13742,9 +12945,7 @@
                 }
             },
             "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
+            "license": ["MIT"],
             "authors": [
                 {
                     "name": "Bernhard Schussek",
@@ -13752,11 +12953,7 @@
                 }
             ],
             "description": "Assertions to validate method input/output with nice error messages.",
-            "keywords": [
-                "assert",
-                "check",
-                "validate"
-            ],
+            "keywords": ["assert", "check", "validate"],
             "support": {
                 "issues": "https://github.com/webmozarts/assert/issues",
                 "source": "https://github.com/webmozarts/assert/tree/1.11.0"
@@ -13803,9 +13000,7 @@
                 }
             },
             "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
+            "license": ["MIT"],
             "authors": [
                 {
                     "name": "Bryan Davis",
@@ -13825,7 +13020,6 @@
     "minimum-stability": "dev",
     "stability-flags": {
         "drupal/anchor_link": 15,
-        "drupal/convert_entity_media_embed": 15,
         "drupal/menu_breadcrumb": 15,
         "drupal/realname": 10,
         "drupal/ultimate_cron": 15
diff --git a/vendor/composer/installed.json b/vendor/composer/installed.json
index f6d13d33cdd68224406d5f1467ae353a03210706..05fa1074068df258f5e5f6774dddbb264e32f9e9 100644
--- a/vendor/composer/installed.json
+++ b/vendor/composer/installed.json
@@ -2300,53 +2300,6 @@
             },
             "install-path": "../../web/modules/config_ignore"
         },
-        {
-            "name": "drupal/convert_entity_media_embed",
-            "version": "1.0.0-alpha5",
-            "version_normalized": "1.0.0.0-alpha5",
-            "source": {
-                "type": "git",
-                "url": "https://git.drupalcode.org/project/convert_entity_media_embed.git",
-                "reference": "1.0.0-alpha5"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://ftp.drupal.org/files/projects/convert_entity_media_embed-1.0.0-alpha5.zip",
-                "reference": "1.0.0-alpha5",
-                "shasum": "6373b7784d219d37151ef8e889f793c7b747fec3"
-            },
-            "require": {
-                "drupal/core": "^8.9 || ^9 || ^10"
-            },
-            "type": "drupal-module",
-            "extra": {
-                "drupal": {
-                    "version": "1.0.0-alpha5",
-                    "datestamp": "1699363463",
-                    "security-coverage": {
-                        "status": "not-covered",
-                        "message": "Project has not opted into security advisory coverage!"
-                    }
-                }
-            },
-            "installation-source": "dist",
-            "notification-url": "https://packages.drupal.org/8/downloads",
-            "license": [
-                "GPL-2.0-or-later"
-            ],
-            "authors": [
-                {
-                    "name": "eelkeblok",
-                    "homepage": "https://www.drupal.org/user/423078"
-                }
-            ],
-            "description": "Convert contrib entity embed tags to core media embed tags.",
-            "homepage": "https://www.drupal.org/project/convert_entity_media_embed",
-            "support": {
-                "source": "https://git.drupalcode.org/project/convert_entity_media_embed"
-            },
-            "install-path": "../../web/modules/convert_entity_media_embed"
-        },
         {
             "name": "drupal/core",
             "version": "10.1.7",
diff --git a/vendor/composer/installed.php b/vendor/composer/installed.php
index 5aa02c1b7bb10e342bba11477327d33245f2a866..997a7d7927437129cda0eabb81821487f4609d62 100644
--- a/vendor/composer/installed.php
+++ b/vendor/composer/installed.php
@@ -40,7 +40,7 @@
         'ckeditor/indentblock' => array(
             'pretty_version' => '4.8.0',
             'version' => '4.8.0.0',
-            'reference' => NULL,
+            'reference' => null,
             'type' => 'drupal-library',
             'install_path' => __DIR__ . '/../../web/libraries/indentblock',
             'aliases' => array(),
@@ -166,7 +166,7 @@
         'desandro/masonry' => array(
             'pretty_version' => '4.2.0',
             'version' => '4.2.0.0',
-            'reference' => NULL,
+            'reference' => null,
             'type' => 'drupal-library',
             'install_path' => __DIR__ . '/../../web/libraries/masonry',
             'aliases' => array(),
@@ -358,15 +358,6 @@
             'aliases' => array(),
             'dev_requirement' => false,
         ),
-        'drupal/convert_entity_media_embed' => array(
-            'pretty_version' => '1.0.0-alpha5',
-            'version' => '1.0.0.0-alpha5',
-            'reference' => '1.0.0-alpha5',
-            'type' => 'drupal-module',
-            'install_path' => __DIR__ . '/../../web/modules/convert_entity_media_embed',
-            'aliases' => array(),
-            'dev_requirement' => false,
-        ),
         'drupal/core' => array(
             'pretty_version' => '10.1.7',
             'version' => '10.1.7.0',
@@ -498,7 +489,7 @@
             'version' => '10.1.7.0',
             'reference' => 'e4726a4a0173a4b9acdac8cab5d4009d6085fd2e',
             'type' => 'metapackage',
-            'install_path' => NULL,
+            'install_path' => null,
             'aliases' => array(),
             'dev_requirement' => false,
         ),
@@ -595,9 +586,9 @@
         'drupal/entity_browser_entity_form' => array(
             'pretty_version' => '2.9.0',
             'version' => '2.9.0.0',
-            'reference' => NULL,
+            'reference' => null,
             'type' => 'metapackage',
-            'install_path' => NULL,
+            'install_path' => null,
             'aliases' => array(),
             'dev_requirement' => false,
         ),
@@ -1387,7 +1378,7 @@
         'northernco/ckeditor5-anchor-drupal' => array(
             'pretty_version' => '0.4.0',
             'version' => '0.4.0.0',
-            'reference' => NULL,
+            'reference' => null,
             'type' => 'drupal-library',
             'install_path' => __DIR__ . '/../../web/libraries/ckeditor5-anchor-drupal',
             'aliases' => array(),
diff --git a/web/modules/ckeditor/LICENSE.txt b/web/modules/ckeditor/LICENSE.txt
deleted file mode 100644
index d159169d1050894d3ea3b98e1c965c4058208fe1..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/LICENSE.txt
+++ /dev/null
@@ -1,339 +0,0 @@
-                    GNU GENERAL PUBLIC LICENSE
-                       Version 2, June 1991
-
- Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
- 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
-                            Preamble
-
-  The licenses for most software are designed to take away your
-freedom to share and change it.  By contrast, the GNU General Public
-License is intended to guarantee your freedom to share and change free
-software--to make sure the software is free for all its users.  This
-General Public License applies to most of the Free Software
-Foundation's software and to any other program whose authors commit to
-using it.  (Some other Free Software Foundation software is covered by
-the GNU Lesser General Public License instead.)  You can apply it to
-your programs, too.
-
-  When we speak of free software, we are referring to freedom, not
-price.  Our General Public Licenses are designed to make sure that you
-have the freedom to distribute copies of free software (and charge for
-this service if you wish), that you receive source code or can get it
-if you want it, that you can change the software or use pieces of it
-in new free programs; and that you know you can do these things.
-
-  To protect your rights, we need to make restrictions that forbid
-anyone to deny you these rights or to ask you to surrender the rights.
-These restrictions translate to certain responsibilities for you if you
-distribute copies of the software, or if you modify it.
-
-  For example, if you distribute copies of such a program, whether
-gratis or for a fee, you must give the recipients all the rights that
-you have.  You must make sure that they, too, receive or can get the
-source code.  And you must show them these terms so they know their
-rights.
-
-  We protect your rights with two steps: (1) copyright the software, and
-(2) offer you this license which gives you legal permission to copy,
-distribute and/or modify the software.
-
-  Also, for each author's protection and ours, we want to make certain
-that everyone understands that there is no warranty for this free
-software.  If the software is modified by someone else and passed on, we
-want its recipients to know that what they have is not the original, so
-that any problems introduced by others will not reflect on the original
-authors' reputations.
-
-  Finally, any free program is threatened constantly by software
-patents.  We wish to avoid the danger that redistributors of a free
-program will individually obtain patent licenses, in effect making the
-program proprietary.  To prevent this, we have made it clear that any
-patent must be licensed for everyone's free use or not licensed at all.
-
-  The precise terms and conditions for copying, distribution and
-modification follow.
-
-                    GNU GENERAL PUBLIC LICENSE
-   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
-  0. This License applies to any program or other work which contains
-a notice placed by the copyright holder saying it may be distributed
-under the terms of this General Public License.  The "Program", below,
-refers to any such program or work, and a "work based on the Program"
-means either the Program or any derivative work under copyright law:
-that is to say, a work containing the Program or a portion of it,
-either verbatim or with modifications and/or translated into another
-language.  (Hereinafter, translation is included without limitation in
-the term "modification".)  Each licensee is addressed as "you".
-
-Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope.  The act of
-running the Program is not restricted, and the output from the Program
-is covered only if its contents constitute a work based on the
-Program (independent of having been made by running the Program).
-Whether that is true depends on what the Program does.
-
-  1. You may copy and distribute verbatim copies of the Program's
-source code as you receive it, in any medium, provided that you
-conspicuously and appropriately publish on each copy an appropriate
-copyright notice and disclaimer of warranty; keep intact all the
-notices that refer to this License and to the absence of any warranty;
-and give any other recipients of the Program a copy of this License
-along with the Program.
-
-You may charge a fee for the physical act of transferring a copy, and
-you may at your option offer warranty protection in exchange for a fee.
-
-  2. You may modify your copy or copies of the Program or any portion
-of it, thus forming a work based on the Program, and copy and
-distribute such modifications or work under the terms of Section 1
-above, provided that you also meet all of these conditions:
-
-    a) You must cause the modified files to carry prominent notices
-    stating that you changed the files and the date of any change.
-
-    b) You must cause any work that you distribute or publish, that in
-    whole or in part contains or is derived from the Program or any
-    part thereof, to be licensed as a whole at no charge to all third
-    parties under the terms of this License.
-
-    c) If the modified program normally reads commands interactively
-    when run, you must cause it, when started running for such
-    interactive use in the most ordinary way, to print or display an
-    announcement including an appropriate copyright notice and a
-    notice that there is no warranty (or else, saying that you provide
-    a warranty) and that users may redistribute the program under
-    these conditions, and telling the user how to view a copy of this
-    License.  (Exception: if the Program itself is interactive but
-    does not normally print such an announcement, your work based on
-    the Program is not required to print an announcement.)
-
-These requirements apply to the modified work as a whole.  If
-identifiable sections of that work are not derived from the Program,
-and can be reasonably considered independent and separate works in
-themselves, then this License, and its terms, do not apply to those
-sections when you distribute them as separate works.  But when you
-distribute the same sections as part of a whole which is a work based
-on the Program, the distribution of the whole must be on the terms of
-this License, whose permissions for other licensees extend to the
-entire whole, and thus to each and every part regardless of who wrote it.
-
-Thus, it is not the intent of this section to claim rights or contest
-your rights to work written entirely by you; rather, the intent is to
-exercise the right to control the distribution of derivative or
-collective works based on the Program.
-
-In addition, mere aggregation of another work not based on the Program
-with the Program (or with a work based on the Program) on a volume of
-a storage or distribution medium does not bring the other work under
-the scope of this License.
-
-  3. You may copy and distribute the Program (or a work based on it,
-under Section 2) in object code or executable form under the terms of
-Sections 1 and 2 above provided that you also do one of the following:
-
-    a) Accompany it with the complete corresponding machine-readable
-    source code, which must be distributed under the terms of Sections
-    1 and 2 above on a medium customarily used for software interchange; or,
-
-    b) Accompany it with a written offer, valid for at least three
-    years, to give any third party, for a charge no more than your
-    cost of physically performing source distribution, a complete
-    machine-readable copy of the corresponding source code, to be
-    distributed under the terms of Sections 1 and 2 above on a medium
-    customarily used for software interchange; or,
-
-    c) Accompany it with the information you received as to the offer
-    to distribute corresponding source code.  (This alternative is
-    allowed only for noncommercial distribution and only if you
-    received the program in object code or executable form with such
-    an offer, in accord with Subsection b above.)
-
-The source code for a work means the preferred form of the work for
-making modifications to it.  For an executable work, complete source
-code means all the source code for all modules it contains, plus any
-associated interface definition files, plus the scripts used to
-control compilation and installation of the executable.  However, as a
-special exception, the source code distributed need not include
-anything that is normally distributed (in either source or binary
-form) with the major components (compiler, kernel, and so on) of the
-operating system on which the executable runs, unless that component
-itself accompanies the executable.
-
-If distribution of executable or object code is made by offering
-access to copy from a designated place, then offering equivalent
-access to copy the source code from the same place counts as
-distribution of the source code, even though third parties are not
-compelled to copy the source along with the object code.
-
-  4. You may not copy, modify, sublicense, or distribute the Program
-except as expressly provided under this License.  Any attempt
-otherwise to copy, modify, sublicense or distribute the Program is
-void, and will automatically terminate your rights under this License.
-However, parties who have received copies, or rights, from you under
-this License will not have their licenses terminated so long as such
-parties remain in full compliance.
-
-  5. You are not required to accept this License, since you have not
-signed it.  However, nothing else grants you permission to modify or
-distribute the Program or its derivative works.  These actions are
-prohibited by law if you do not accept this License.  Therefore, by
-modifying or distributing the Program (or any work based on the
-Program), you indicate your acceptance of this License to do so, and
-all its terms and conditions for copying, distributing or modifying
-the Program or works based on it.
-
-  6. Each time you redistribute the Program (or any work based on the
-Program), the recipient automatically receives a license from the
-original licensor to copy, distribute or modify the Program subject to
-these terms and conditions.  You may not impose any further
-restrictions on the recipients' exercise of the rights granted herein.
-You are not responsible for enforcing compliance by third parties to
-this License.
-
-  7. If, as a consequence of a court judgment or allegation of patent
-infringement or for any other reason (not limited to patent issues),
-conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License.  If you cannot
-distribute so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you
-may not distribute the Program at all.  For example, if a patent
-license would not permit royalty-free redistribution of the Program by
-all those who receive copies directly or indirectly through you, then
-the only way you could satisfy both it and this License would be to
-refrain entirely from distribution of the Program.
-
-If any portion of this section is held invalid or unenforceable under
-any particular circumstance, the balance of the section is intended to
-apply and the section as a whole is intended to apply in other
-circumstances.
-
-It is not the purpose of this section to induce you to infringe any
-patents or other property right claims or to contest validity of any
-such claims; this section has the sole purpose of protecting the
-integrity of the free software distribution system, which is
-implemented by public license practices.  Many people have made
-generous contributions to the wide range of software distributed
-through that system in reliance on consistent application of that
-system; it is up to the author/donor to decide if he or she is willing
-to distribute software through any other system and a licensee cannot
-impose that choice.
-
-This section is intended to make thoroughly clear what is believed to
-be a consequence of the rest of this License.
-
-  8. If the distribution and/or use of the Program is restricted in
-certain countries either by patents or by copyrighted interfaces, the
-original copyright holder who places the Program under this License
-may add an explicit geographical distribution limitation excluding
-those countries, so that distribution is permitted only in or among
-countries not thus excluded.  In such case, this License incorporates
-the limitation as if written in the body of this License.
-
-  9. The Free Software Foundation may publish revised and/or new versions
-of the General Public License from time to time.  Such new versions will
-be similar in spirit to the present version, but may differ in detail to
-address new problems or concerns.
-
-Each version is given a distinguishing version number.  If the Program
-specifies a version number of this License which applies to it and "any
-later version", you have the option of following the terms and conditions
-either of that version or of any later version published by the Free
-Software Foundation.  If the Program does not specify a version number of
-this License, you may choose any version ever published by the Free Software
-Foundation.
-
-  10. If you wish to incorporate parts of the Program into other free
-programs whose distribution conditions are different, write to the author
-to ask for permission.  For software which is copyrighted by the Free
-Software Foundation, write to the Free Software Foundation; we sometimes
-make exceptions for this.  Our decision will be guided by the two goals
-of preserving the free status of all derivatives of our free software and
-of promoting the sharing and reuse of software generally.
-
-                            NO WARRANTY
-
-  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
-FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
-OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
-PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
-OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
-TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
-PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
-REPAIR OR CORRECTION.
-
-  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
-WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
-REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
-INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
-OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
-TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
-YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
-PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGES.
-
-                     END OF TERMS AND CONDITIONS
-
-            How to Apply These Terms to Your New Programs
-
-  If you develop a new program, and you want it to be of the greatest
-possible use to the public, the best way to achieve this is to make it
-free software which everyone can redistribute and change under these terms.
-
-  To do so, attach the following notices to the program.  It is safest
-to attach them to the start of each source file to most effectively
-convey the exclusion of warranty; and each file should have at least
-the "copyright" line and a pointer to where the full notice is found.
-
-    <one line to give the program's name and a brief idea of what it does.>
-    Copyright (C) <year>  <name of author>
-
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-    the Free Software Foundation; either version 2 of the License, or
-    (at your option) any later version.
-
-    This program is distributed in the hope that it will be useful,
-    but WITHOUT ANY WARRANTY; without even the implied warranty of
-    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-    GNU General Public License for more details.
-
-    You should have received a copy of the GNU General Public License along
-    with this program; if not, write to the Free Software Foundation, Inc.,
-    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
-Also add information on how to contact you by electronic and paper mail.
-
-If the program is interactive, make it output a short notice like this
-when it starts in an interactive mode:
-
-    Gnomovision version 69, Copyright (C) year name of author
-    Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
-    This is free software, and you are welcome to redistribute it
-    under certain conditions; type `show c' for details.
-
-The hypothetical commands `show w' and `show c' should show the appropriate
-parts of the General Public License.  Of course, the commands you use may
-be called something other than `show w' and `show c'; they could even be
-mouse-clicks or menu items--whatever suits your program.
-
-You should also get your employer (if you work as a programmer) or your
-school, if any, to sign a "copyright disclaimer" for the program, if
-necessary.  Here is a sample; alter the names:
-
-  Yoyodyne, Inc., hereby disclaims all copyright interest in the program
-  `Gnomovision' (which makes passes at compilers) written by James Hacker.
-
-  <signature of Ty Coon>, 1 April 1989
-  Ty Coon, President of Vice
-
-This General Public License does not permit incorporating your program into
-proprietary programs.  If your program is a subroutine library, you may
-consider it more useful to permit linking proprietary applications with the
-library.  If this is what you want to do, use the GNU Lesser General
-Public License instead of this License.
diff --git a/web/modules/ckeditor/ckeditor.admin.inc b/web/modules/ckeditor/ckeditor.admin.inc
deleted file mode 100644
index b344edff9d4d5c349288dc11ff01540586b52b6b..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/ckeditor.admin.inc
+++ /dev/null
@@ -1,143 +0,0 @@
-<?php
-
-/**
- * @file
- * Callbacks and theming for the CKEditor toolbar configuration UI.
- */
-
-use Drupal\Component\Utility\Html;
-use Drupal\Core\Template\Attribute;
-use Drupal\Core\Language\LanguageInterface;
-
-/**
- * Prepares variables for CKEditor settings toolbar templates.
- *
- * Default template: ckeditor-settings-toolbar.html.twig.
- *
- * @param array $variables
- *   An associative array containing:
- *   - editor: An editor object.
- *   - plugins: A list of plugins.
- *   - active_buttons: A list of disabled buttons.
- *   - disabled_buttons: A list of disabled buttons.
- *   - multiple_buttons: A list of multiple buttons that may be added multiple
- *     times.
- */
-function template_preprocess_ckeditor_settings_toolbar(&$variables) {
-  $language_interface = \Drupal::languageManager()->getCurrentLanguage();
-
-  // Create lists of active and disabled buttons.
-  $editor = $variables['editor'];
-  $plugins = $variables['plugins'];
-  $buttons = [];
-  $multiple_buttons = [];
-  foreach ($plugins as $plugin_buttons) {
-    foreach ($plugin_buttons as $button_name => $button) {
-      $button['name'] = $button_name;
-      if (!empty($button['multiple'])) {
-        $multiple_buttons[$button_name] = $button;
-      }
-      $buttons[$button_name] = $button;
-    }
-  }
-  $button_groups = [];
-  $active_buttons = [];
-  $settings = $editor->getSettings();
-  foreach ($settings['toolbar']['rows'] as $row_number => $row) {
-    $button_groups[$row_number] = [];
-    foreach ($row as $group) {
-      foreach ($group['items'] as $button_name) {
-        if (isset($buttons[$button_name])) {
-          // Save a reference to the button's configured toolbar group.
-          $buttons[$button_name]['group'] = $group['name'];
-          $active_buttons[$row_number][] = $buttons[$button_name];
-          if (empty($buttons[$button_name]['multiple'])) {
-            unset($buttons[$button_name]);
-          }
-          // Create a list of all the toolbar button groups.
-          if (!in_array($group['name'], $button_groups[$row_number])) {
-            array_push($button_groups[$row_number], $group['name']);
-          }
-        }
-      }
-    }
-  }
-  $disabled_buttons = array_diff_key($buttons, $multiple_buttons);
-
-  $rtl = $language_interface->getDirection() === LanguageInterface::DIRECTION_RTL ? '_rtl' : '';
-
-  $build_button_item = function ($button, $rtl) {
-    // Value of the button item.
-    if (isset($button['image_alternative' . $rtl])) {
-      $value = $button['image_alternative' . $rtl];
-    }
-    elseif (isset($button['image_alternative'])) {
-      $value = $button['image_alternative'];
-    }
-    elseif (isset($button['image']) || isset($button['image' . $rtl])) {
-      $value = [
-        '#theme' => 'image',
-        '#uri' => $button['image' . $rtl] ?? $button['image'],
-        '#title' => $button['label'],
-        '#prefix' => '<a href="#" role="button" title="' . $button['label'] . '" aria-label="' . $button['label'] . '"><span class="cke_button_icon">',
-        '#suffix' => '</span></a>',
-      ];
-    }
-    else {
-      $value = '?';
-    }
-
-    // Build the button attributes.
-    $attributes = [
-      'data-drupal-ckeditor-button-name' => $button['name'],
-    ];
-    if (!empty($button['attributes'])) {
-      $attributes = array_merge($attributes, $button['attributes']);
-    }
-
-    // Build the button item.
-    $button_item = [
-      'value' => $value,
-      'attributes' => new Attribute($attributes),
-    ];
-    // If this button has group information, add it to the attributes.
-    if (!empty($button['group'])) {
-      $button_item['group'] = $button['group'];
-    }
-
-    // Set additional flag on the button if it can occur multiple times.
-    if (!empty($button['multiple'])) {
-      $button_item['multiple'] = TRUE;
-    }
-
-    return $button_item;
-  };
-
-  // Assemble list of disabled buttons (which are always a single row).
-  $variables['active_buttons'] = [];
-  foreach ($active_buttons as $row_number => $button_row) {
-    foreach ($button_groups[$row_number] as $group_name) {
-      $group_name = (string) $group_name;
-      $variables['active_buttons'][$row_number][$group_name] = [
-        'group_name_class' => Html::getClass($group_name),
-        'buttons' => [],
-      ];
-      $buttons = array_filter($button_row, function ($button) use ($group_name) {
-        return (string) $button['group'] === $group_name;
-      });
-      foreach ($buttons as $button) {
-        $variables['active_buttons'][$row_number][$group_name]['buttons'][] = $build_button_item($button, $rtl);
-      }
-    }
-  }
-  // Assemble list of disabled buttons (which are always a single row).
-  $variables['disabled_buttons'] = [];
-  foreach ($disabled_buttons as $button) {
-    $variables['disabled_buttons'][] = $build_button_item($button, $rtl);
-  }
-  // Assemble list of multiple buttons that may be added multiple times.
-  $variables['multiple_buttons'] = [];
-  foreach ($multiple_buttons as $button) {
-    $variables['multiple_buttons'][] = $build_button_item($button, $rtl);
-  }
-}
diff --git a/web/modules/ckeditor/ckeditor.api.php b/web/modules/ckeditor/ckeditor.api.php
deleted file mode 100644
index 657482b1362b75a53040181f38286213ea313825..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/ckeditor.api.php
+++ /dev/null
@@ -1,61 +0,0 @@
-<?php
-
-/**
- * @file
- * Documentation for CKEditor module APIs.
- */
-
-use Drupal\editor\Entity\Editor;
-
-/**
- * @addtogroup hooks
- * @{
- */
-
-/**
- * Modify the list of available CKEditor plugins.
- *
- * This hook may be used to modify plugin properties after they have been
- * specified by other modules.
- *
- * @param $plugins
- *   An array of all the existing plugin definitions, passed by reference.
- *
- * @see \Drupal\ckeditor\CKEditorPluginManager
- */
-function hook_ckeditor_plugin_info_alter(array &$plugins) {
-  $plugins['someplugin']['label'] = t('Better name');
-}
-
-/**
- * Modify the list of CSS files that will be added to a CKEditor instance.
- *
- * Modules may use this hook to provide their own custom CSS file without
- * providing a CKEditor plugin. This list of CSS files is only used in the
- * iframe versions of CKEditor.
- *
- * Front-end themes (and base themes) can easily specify CSS files to be used in
- * iframe instances of CKEditor through an entry in their .info.yml file:
- *
- * @code
- * ckeditor_stylesheets:
- *   - css/ckeditor-iframe.css
- * @endcode
- *
- * @param array &$css
- *   An array of CSS files, passed by reference. This is a flat list of file
- *   paths which can be either relative to the Drupal root or external URLs.
- * @param $editor
- *   The text editor object as returned by editor_load(), for which these files
- *   are being loaded. Based on this information, it is possible to load the
- *   corresponding text format object.
- *
- * @see _ckeditor_theme_css()
- */
-function hook_ckeditor_css_alter(array &$css, Editor $editor) {
-  $css[] = \Drupal::service('extension.list.module')->getPath('mymodule') . '/css/mymodule-ckeditor.css';
-}
-
-/**
- * @} End of "addtogroup hooks".
- */
diff --git a/web/modules/ckeditor/ckeditor.info.yml b/web/modules/ckeditor/ckeditor.info.yml
deleted file mode 100644
index 0d3a0fca8c3a3a94c52fc7fdf851dcd5f22c6fc2..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/ckeditor.info.yml
+++ /dev/null
@@ -1,15 +0,0 @@
-name: CKEditor 4 (contrib)
-type: module
-description: "WYSIWYG editing for rich text fields using CKEditor."
-lifecycle: deprecated
-lifecycle_link: https://www.drupal.org/node/3223395#s-ckeditor
-core_version_requirement: "^9.4 || ^10"
-dependencies:
-  - drupal:editor
-test_dependencies:
-  - drupal:classy
-
-# Information added by Drupal.org packaging script on 2023-06-20
-version: '1.0.2'
-project: 'ckeditor'
-datestamp: 1687261954
diff --git a/web/modules/ckeditor/ckeditor.libraries.yml b/web/modules/ckeditor/ckeditor.libraries.yml
deleted file mode 100644
index 17b3cb4c9c82279464b5abef41f2fa2eb434a6ec..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/ckeditor.libraries.yml
+++ /dev/null
@@ -1,111 +0,0 @@
-ckeditor:
-  remote: https://github.com/ckeditor/ckeditor4
-  version: "4.18.0"
-  license:
-    name: GNU-GPL-2.0-or-later
-    url: https://raw.githubusercontent.com/ckeditor/ckeditor4/4.18.0/LICENSE.md
-    gpl-compatible: true
-  js:
-    vendor/ckeditor.js: { preprocess: false, minified: true }
-
-drupal.ckeditor:
-  version: VERSION
-  js:
-    js/ckeditor.js: {}
-    js/ckeditor.off-canvas-css-reset.js: {}
-  css:
-    state:
-      css/ckeditor.css: {}
-  dependencies:
-    - core/jquery
-    - core/drupal
-    - core/drupalSettings
-    - core/drupal.debounce
-    - core/drupal.displace
-    - ckeditor/ckeditor
-    - editor/drupal.editor
-
-drupal.ckeditor.plugins.drupalimagecaption:
-  version: VERSION
-  css:
-    component:
-      css/plugins/drupalimagecaption/ckeditor.drupalimagecaption.css: {}
-  dependencies:
-    - filter/caption
-
-drupal.ckeditor.plugins.language:
-  version: VERSION
-  css:
-    component:
-      css/plugins/language/ckeditor.language.css: {}
-
-drupal.ckeditor.admin:
-  version: VERSION
-  js:
-    # Core.
-    js/ckeditor.admin.js: {}
-    # Models.
-    js/models/Model.js: {}
-    # Views.
-    js/views/AuralView.js: {}
-    js/views/KeyboardView.js: {}
-    js/views/ControllerView.js: {}
-    js/views/VisualView.js: {}
-  css:
-    theme:
-      css/ckeditor.admin.css: {}
-      vendor/skins/moono-lisa/editor.css: {}
-  dependencies:
-    - core/jquery
-    - core/drupal
-    - core/drupalSettings
-    - core/once
-    - core/jquery.once.bc
-    - core/internal.backbone
-    - core/drupal.dialog
-    - core/drupal.announce
-    - ckeditor/ckeditor
-    - core/sortable
-    - editor/drupal.editor.admin
-    # Ensure to run after core/drupal.vertical-tabs.
-    - core/drupal.vertical-tabs
-
-drupal.ckeditor.drupalimage.admin:
-  version: VERSION
-  js:
-    js/ckeditor.drupalimage.admin.js: {}
-  dependencies:
-    - core/jquery
-    - core/drupal
-    - core/once
-    - core/jquery.once.bc
-    - core/drupal.vertical-tabs
-    - core/drupalSettings
-
-drupal.ckeditor.stylescombo.admin:
-  version: VERSION
-  js:
-    js/ckeditor.stylescombo.admin.js: {}
-  dependencies:
-    - core/jquery
-    - core/drupal
-    - core/drupal.vertical-tabs
-    - core/drupalSettings
-    # Ensure to run after ckeditor/drupal.ckeditor.admin.
-    - ckeditor/drupal.ckeditor.admin
-
-drupal.ckeditor.language.admin:
-  version: VERSION
-  js:
-    js/ckeditor.language.admin.js: {}
-  dependencies:
-    - core/jquery
-    - core/drupal
-    - core/drupal.vertical-tabs
-
-drupal.ckeditor.plugins.drupalmedia:
-  version: VERSION
-  js:
-    js/ckeditor.drupalmedia.theme.js: {}
-  dependencies:
-    - core/drupal
diff --git a/web/modules/ckeditor/ckeditor.module b/web/modules/ckeditor/ckeditor.module
deleted file mode 100644
index 477bf816834403a5f8eece517079d596f044d694..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/ckeditor.module
+++ /dev/null
@@ -1,298 +0,0 @@
-<?php
-
-/**
- * @file
- * Provides integration with the CKEditor WYSIWYG editor.
- */
-
-use Drupal\Core\Url;
-use Drupal\Component\Serialization\Json;
-use Drupal\Component\Utility\UrlHelper;
-use Drupal\Core\Form\FormStateInterface;
-use Drupal\Core\Routing\RouteMatchInterface;
-use Drupal\ckeditor\CKEditorPluginButtonsInterface;
-use Drupal\ckeditor\CKEditorPluginContextualInterface;
-use Drupal\Core\StringTranslation\TranslatableMarkup;
-use Drupal\editor\Entity\Editor;
-use Drupal\editor\EditorInterface;
-
-/**
- * Implements hook_help().
- */
-function ckeditor_help($route_name, RouteMatchInterface $route_match) {
-  switch ($route_name) {
-    case 'help.page.ckeditor':
-      $output = '';
-      $output .= '<h3>' . t('About') . '</h3>';
-      $output .= '<p>' . t('The CKEditor module provides a highly-accessible, highly-usable visual text editor and adds a toolbar to text fields. Users can use buttons to format content and to create semantically correct and valid HTML. The CKEditor module uses the framework provided by the <a href=":text_editor">Text Editor module</a>. It requires JavaScript to be enabled in the browser. For more information, see the <a href=":doc_url">online documentation for the CKEditor module</a> and the <a href=":cke_url">CKEditor website</a>.', [':doc_url' => 'https://www.drupal.org/documentation/modules/ckeditor', ':cke_url' => 'http://ckeditor.com', ':text_editor' => Url::fromRoute('help.page', ['name' => 'editor'])->toString()]) . '</p>';
-      $output .= '<h3>' . t('Uses') . '</h3>';
-      $output .= '<dl>';
-      $output .= '<dt>' . t('Enabling CKEditor for individual text formats') . '</dt>';
-      $output .= '<dd>' . t('CKEditor has to be enabled and configured separately for individual text formats from the <a href=":formats">Text formats and editors page</a> because the filter settings for each text format can be different. For more information, see the <a href=":text_editor">Text Editor help page</a> and <a href=":filter">Filter help page</a>.', [':formats' => Url::fromRoute('filter.admin_overview')->toString(), ':text_editor' => Url::fromRoute('help.page', ['name' => 'editor'])->toString(), ':filter' => Url::fromRoute('help.page', ['name' => 'filter'])->toString()]) . '</dd>';
-      $output .= '<dt>' . t('Configuring the toolbar') . '</dt>';
-      $output .= '<dd>' . t('When CKEditor is chosen from the <em>Text editor</em> drop-down menu, its toolbar configuration is displayed. You can add and remove buttons from the <em>Active toolbar</em> by dragging and dropping them, and additional rows can be added to organize the buttons.') . '</dd>';
-      $output .= '<dt>' . t('Formatting content') . '</dt>';
-      $output .= '<dd>' . t('CKEditor only allow users to format content in accordance with the filter configuration of the specific text format. If a text format excludes certain HTML tags, the corresponding toolbar buttons are not displayed to users when they edit a text field in this format. For more information see the <a href=":filter">Filter help page</a>.', [':filter' => Url::fromRoute('help.page', ['name' => 'filter'])->toString()]) . '</dd>';
-      $output .= '<dt>' . t('Toggling between formatted text and HTML source') . '</dt>';
-      $output .= '<dd>' . t('If the <em>Source</em> button is available in the toolbar, users can click this button to disable the visual editor and edit the HTML source directly. After toggling back, the visual editor uses the allowed HTML tags to format the text — independent of whether buttons for these tags are available in the toolbar. If the text format is set to <em>limit the use of HTML tags</em>, then all excluded tags will be stripped out of the HTML source when the user toggles back to the text editor.') . '</dd>';
-      $output .= '<dt>' . t('Check my spelling as I type') . '</dt>';
-      $output .= '<dd>' . t("By default, CKEditor is configured to leverage your browser's spell check capability. Make sure your browser's spell checker is enabled in your browser's settings. To access suggested corrections for misspelled words, it may be necessary to hold the <em>Control</em> or <em>command</em> (Mac) key while right-clicking the misspelling.") . '</dd>';
-      $output .= '<dt>' . t('Accessibility features') . '</dt>';
-      $output .= '<dd>' . t('The built in WYSIWYG editor (CKEditor) comes with a number of <a href=":features">accessibility features</a>. CKEditor comes with built in <a href=":shortcuts">keyboard shortcuts</a>, which can be beneficial for both power users and keyboard only users.', [':features' => 'http://docs.ckeditor.com/#!/guide/dev_a11y', ':shortcuts' => 'http://docs.ckeditor.com/#!/guide/dev_shortcuts']) . '</dd>';
-      $output .= '<dt>' . t('Generating accessible content') . '</dt>';
-      $output .= '<dd>';
-      $output .= '<ul>';
-      $output .= '<li>' . t('HTML tables can be created with table headers and caption/summary elements.') . '</li>';
-      $output .= '<li>' . t('Alt text is required by default on images added through CKEditor (note that this can be overridden).') . '</li>';
-      $output .= '<li>' . t('Semantic HTML5 figure/figcaption are available to add captions to images.') . '</li>';
-      $output .= '<li>' . t('To support multilingual page content, CKEditor can be configured to include a language button in the toolbar.') . '</li>';
-      $output .= '</ul>';
-      $output .= '</dd>';
-      $output .= '</dl>';
-      return $output;
-  }
-}
-
-/**
- * Implements hook_theme().
- */
-function ckeditor_theme() {
-  return [
-    'ckeditor_settings_toolbar' => [
-      'file' => 'ckeditor.admin.inc',
-      'variables' => ['editor' => NULL, 'plugins' => NULL],
-    ],
-  ];
-}
-
-/**
- * Implements hook_ckeditor_css_alter().
- */
-function ckeditor_ckeditor_css_alter(array &$css, Editor $editor) {
-  if (!$editor->hasAssociatedFilterFormat()) {
-    return;
-  }
-
-  // Add the filter caption CSS if the text format associated with this text
-  // editor uses the filter_caption filter. This is used by the included
-  // CKEditor DrupalImageCaption plugin.
-  if ($editor->getFilterFormat()->filters('filter_caption')->status) {
-    $css[] = \Drupal::service('extension.list.module')->getPath('filter') . '/css/filter.caption.css';
-  }
-}
-
-/**
- * Retrieves the default theme's CKEditor stylesheets.
- *
- * Themes may specify iframe-specific CSS files for use with CKEditor by
- * including a "ckeditor_stylesheets" key in their .info.yml file.
- *
- * @code
- * ckeditor_stylesheets:
- *   - css/ckeditor-iframe.css
- * @endcode
- */
-function _ckeditor_theme_css($theme = NULL) {
-  $css = [];
-  if (!isset($theme)) {
-    $theme = \Drupal::config('system.theme')->get('default');
-  }
-  /** @var \Drupal\Core\Extension\ThemeExtensionList $theme_list */
-  $theme_list = \Drupal::service('extension.list.theme');
-  if (isset($theme) && $theme_path = $theme_list->getPath($theme)) {
-    $info = $theme_list->getExtensionInfo($theme);
-    if (isset($info['ckeditor_stylesheets'])) {
-      $css = $info['ckeditor_stylesheets'];
-      foreach ($css as $key => $url) {
-        // CSS url is external.
-        if (UrlHelper::isExternal($url)) {
-          $css[$key] = $url;
-        }
-        // CSS url is relative to Drupal root.
-        elseif ($url[0] === '/') {
-          $css[$key] = substr($url, 1);
-        }
-        // CSS url is relative to theme.
-        else {
-          $css[$key] = $theme_path . '/' . $url;
-        }
-      }
-    }
-    if (isset($info['base theme'])) {
-      $css = array_merge(_ckeditor_theme_css($info['base theme']), $css);
-    }
-  }
-  return $css;
-}
-
-/**
- * Gets all enabled CKEditor 4 plugins.
- *
- * @param \Drupal\editor\EditorInterface $editor
- *   A text editor config entity configured to use CKEditor 4.
- *
- * @return string[]
- *   The enabled CKEditor 4 plugin IDs.
- *
- * @internal
- */
-function _ckeditor_get_enabled_plugins(EditorInterface $editor): array {
-  assert($editor->getEditor() === 'ckeditor');
-
-  $cke4_plugin_manager = \Drupal::service('plugin.manager.ckeditor.plugin');
-
-  // This is largely copied from the CKEditor 4 plugin manager, because it
-  // unfortunately does not provide the API this needs.
-  // @see \Drupal\ckeditor\CKEditorPluginManager::getEnabledPluginFiles()
-  $plugins = array_keys($cke4_plugin_manager->getDefinitions());
-  $toolbar_buttons = $cke4_plugin_manager->getEnabledButtons($editor);
-  $enabled_plugins = [];
-  $additional_plugins = [];
-  foreach ($plugins as $plugin_id) {
-    $plugin = $cke4_plugin_manager->createInstance($plugin_id);
-
-    $enabled = FALSE;
-    // Plugin is enabled if it provides a button that has been enabled.
-    if ($plugin instanceof CKEditorPluginButtonsInterface) {
-      $plugin_buttons = array_keys($plugin->getButtons());
-      $enabled = (count(array_intersect($toolbar_buttons, $plugin_buttons)) > 0);
-    }
-    // Otherwise plugin is enabled if it declares itself as enabled.
-    if (!$enabled && $plugin instanceof CKEditorPluginContextualInterface) {
-      $enabled = $plugin->isEnabled($editor);
-    }
-
-    if ($enabled) {
-      $enabled_plugins[$plugin_id] = $plugin_id;
-      // Check if this plugin has dependencies that should be considered
-      // enabled.
-      $additional_plugins = array_merge($additional_plugins, array_diff($plugin->getDependencies($editor), $additional_plugins));
-    }
-  }
-
-  // Add the list of dependent plugins.
-  foreach ($additional_plugins as $plugin_id) {
-    $enabled_plugins[$plugin_id] = $plugin_id;
-  }
-
-  return $enabled_plugins;
-}
-
-/**
- * Implements hook_library_info_alter().
- */
-function ckeditor_library_info_alter(&$libraries, $extension) {
-  // Pass Drupal's JS cache-busting string via settings along to CKEditor.
-  // @see http://docs.ckeditor.com/#!/api/CKEDITOR-property-timestamp
-  if ($extension === 'ckeditor' && isset($libraries['drupal.ckeditor'])) {
-    $query_string = \Drupal::state()->get('system.css_js_query_string', '0');
-    $libraries['drupal.ckeditor']['drupalSettings']['ckeditor']['timestamp'] = $query_string;
-  }
-  // Add an alias to keep "core/ckeditor" working if it doesn't exist already.
-  if ($extension === 'core' && empty($libraries['ckeditor'])) {
-    $libraries['ckeditor'] = [
-      'dependencies' => ['ckeditor/ckeditor'],
-    ];
-  }
-}
-
-/**
- * Implements hook_form_FORM_ID_alter().
- */
-function ckeditor_form_filter_format_edit_form_alter(array &$form, FormStateInterface $form_state, $form_id) {
-  // Add an additional validate callback so we can ensure the media_embed filter
-  // is enabled when the DrupalMediaLibrary button is enabled.
-  $form['#validate'][] = 'ckeditor_filter_format_edit_form_validate';
-}
-
-/**
- * Implements hook_form_FORM_ID_alter().
- */
-function ckeditor_form_filter_format_add_form_alter(array &$form, FormStateInterface $form_state, $form_id) {
-  // Add an additional validate callback so we can ensure the media_embed filter
-  // is enabled when the DrupalMediaLibrary button is enabled.
-  $form['#validate'][] = 'ckeditor_filter_format_edit_form_validate';
-}
-
-/**
- * Validate callback to ensure the DrupalMediaLibrary button can work correctly.
- */
-function ckeditor_filter_format_edit_form_validate($form, FormStateInterface $form_state) {
-  if ($form_state->getTriggeringElement()['#name'] !== 'op') {
-    return;
-  }
-
-  // The "DrupalMediaLibrary" button is for the CKEditor text editor.
-  if ($form_state->getValue(['editor', 'editor']) !== 'ckeditor') {
-    return;
-  }
-
-  $button_group_path = [
-    'editor',
-    'settings',
-    'toolbar',
-    'button_groups',
-  ];
-
-  if ($button_groups = $form_state->getValue($button_group_path)) {
-    $buttons = [];
-    $button_groups = Json::decode($button_groups);
-
-    foreach ($button_groups as $button_row) {
-      foreach ($button_row as $button_group) {
-        $buttons = array_merge($buttons, array_values($button_group['items']));
-      }
-    }
-
-    $get_filter_label = function ($filter_plugin_id) use ($form) {
-      return (string) $form['filters']['order'][$filter_plugin_id]['filter']['#markup'];
-    };
-
-    if (in_array('DrupalMediaLibrary', $buttons, TRUE)) {
-      $media_embed_enabled = $form_state->getValue([
-        'filters',
-        'media_embed',
-        'status',
-      ]);
-
-      if (!$media_embed_enabled) {
-        $error_message = new TranslatableMarkup('The %media-embed-filter-label filter must be enabled to use the %drupal-media-library-button button.', [
-          '%media-embed-filter-label' => $get_filter_label('media_embed'),
-          '%drupal-media-library-button' => new TranslatableMarkup('Insert from Media Library'),
-        ]);
-        $form_state->setErrorByName('filters', $error_message);
-      }
-    }
-  }
-}
-
-/**
- * Implements hook_ENTITY_TYPE_presave().
- */
-function ckeditor_editor_presave(EditorInterface $editor) {
-  // Only try to update editors using CKEditor 4.
-  if ($editor->getEditor() !== 'ckeditor') {
-    return FALSE;
-  }
-
-  $enabled_plugins = _ckeditor_get_enabled_plugins($editor);
-
-  // Only update if the editor has plugin settings for disabled plugins.
-  $needs_update = FALSE;
-  $settings = $editor->getSettings();
-
-  // Updates are not needed if plugin settings are not defined for the editor.
-  if (!isset($settings['plugins'])) {
-    return;
-  }
-
-  foreach (array_keys($settings['plugins']) as $plugin_id) {
-    if (!in_array($plugin_id, $enabled_plugins, TRUE)) {
-      unset($settings['plugins'][$plugin_id]);
-      $needs_update = TRUE;
-    }
-  }
-  if ($needs_update) {
-    $editor->setSettings($settings);
-  }
-}
diff --git a/web/modules/ckeditor/ckeditor.post_update.php b/web/modules/ckeditor/ckeditor.post_update.php
deleted file mode 100644
index 224b5280d2909d33f133621c7a4226161b12cea1..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/ckeditor.post_update.php
+++ /dev/null
@@ -1,41 +0,0 @@
-<?php
-
-/**
- * @file
- * Post update functions for CKEditor.
- */
-
-use Drupal\Core\Config\Entity\ConfigEntityUpdater;
-use Drupal\editor\Entity\Editor;
-
-/**
- * Updates Text Editors using CKEditor 4 to omit settings for disabled plugins.
- */
-function ckeditor_post_update_omit_settings_for_disabled_plugins(&$sandbox = []) {
-  $config_entity_updater = \Drupal::classResolver(ConfigEntityUpdater::class);
-  $config_entity_updater->update($sandbox, 'editor', function (Editor $editor): bool {
-    // Only try to update editors using CKEditor 4.
-    if ($editor->getEditor() !== 'ckeditor') {
-      return FALSE;
-    }
-
-    $enabled_plugins = _ckeditor_get_enabled_plugins($editor);
-
-    // Only update if the editor has plugin settings for disabled plugins.
-    $needs_update = FALSE;
-    $settings = $editor->getSettings();
-
-    // Updates are not needed if plugin settings are not defined for the editor.
-    if (!isset($settings['plugins'])) {
-      return FALSE;
-    }
-
-    foreach (array_keys($settings['plugins']) as $plugin_id) {
-      if (!in_array($plugin_id, $enabled_plugins, TRUE)) {
-        $needs_update = TRUE;
-      }
-    }
-
-    return $needs_update;
-  });
-}
diff --git a/web/modules/ckeditor/ckeditor.services.yml b/web/modules/ckeditor/ckeditor.services.yml
deleted file mode 100644
index a905f782ad33e26b044b227d199ae01bb96e64c9..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/ckeditor.services.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-services:
-  plugin.manager.ckeditor.plugin:
-    class: Drupal\ckeditor\CKEditorPluginManager
-    parent: default_plugin_manager
diff --git a/web/modules/ckeditor/config/schema/ckeditor.schema.yml b/web/modules/ckeditor/config/schema/ckeditor.schema.yml
deleted file mode 100644
index 528919d41f0afff9b243329d24d3e70fcc9b705a..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/config/schema/ckeditor.schema.yml
+++ /dev/null
@@ -1,52 +0,0 @@
-# Schema for the configuration files of the CKEditor module.
-
-editor.settings.ckeditor:
-  type: mapping
-  label: 'CKEditor settings'
-  mapping:
-    toolbar:
-      type: mapping
-      label: 'Toolbar configuration'
-      mapping:
-        rows:
-          type: sequence
-          label: 'Rows'
-          sequence:
-            type: sequence
-            label: 'Button groups'
-            sequence:
-              type: mapping
-              label: 'Button group'
-              mapping:
-                name:
-                  type: string
-                  label: 'Button group name'
-                items:
-                  type: sequence
-                  label: 'Buttons'
-                  sequence:
-                    type: string
-                    label: 'Button'
-    plugins:
-      type: sequence
-      label: 'Plugins'
-      sequence:
-        type: ckeditor.plugin.[%key]
-
-# Plugin \Drupal\ckeditor\Plugin\CKEditorPlugin\Language
-ckeditor.plugin.language:
-  type: mapping
-  label: 'Language'
-  mapping:
-    language_list:
-      type: string
-      label: 'Language list ID'
-
-# Plugin \Drupal\ckeditor\Plugin\ckeditor\plugin\StylesCombo
-ckeditor.plugin.stylescombo:
-  type: mapping
-  label: 'Styles dropdown'
-  mapping:
-    styles:
-      type: text
-      label: 'List of styles'
diff --git a/web/modules/ckeditor/css/ckeditor-iframe.css b/web/modules/ckeditor/css/ckeditor-iframe.css
deleted file mode 100644
index aafa5f20553669dde22ad3fd6b1e040e9cec68c0..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/css/ckeditor-iframe.css
+++ /dev/null
@@ -1,25 +0,0 @@
-/**
- * CSS added to iframe-based instances only.
- */
-body {
-  margin: 8px;
-  color: #222;
-  background-color: #fff;
-  font-family: Arial, Verdana, sans-serif;
-  font-size: 15px;
-}
-
-@media screen and (max-width: 600px) {
-  /* A font-size of 16px prevents iOS from zooming. */
-  body {
-    font-size: 16px;
-  }
-}
-
-ol,
-ul,
-dl {
-  /* Preserved spaces for list items with text direction other than the list.
-   * (CKEditor issues #6249,#8049) */
-  padding: 0 40px;
-}
diff --git a/web/modules/ckeditor/css/ckeditor.admin.css b/web/modules/ckeditor/css/ckeditor.admin.css
deleted file mode 100644
index 51429c0f02562a7abff73ba73218933ce4a8ffea..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/css/ckeditor.admin.css
+++ /dev/null
@@ -1,334 +0,0 @@
-/**
- * @file
- * Styles for configuration of CKEditor module.
- *
- * Many of these styles are adapted directly from the default CKEditor theme
- * "moono".
- */
-
-.ckeditor-toolbar {
-  margin: 5px 0;
-  padding: 0.1667em 0.1667em 0.08em;
-  /* Disallow any user selections in the drag-and-drop toolbar config UI. */
-  -webkit-user-select: none;
-  -moz-user-select: none;
-  -ms-user-select: none;
-  user-select: none;
-  border: 1px solid #b6b6b6;
-  background: #cfd1cf;
-  background-image: -webkit-linear-gradient(top, whiteSmoke, #cfd1cf);
-  background-image: linear-gradient(top, whiteSmoke, #cfd1cf);
-  box-shadow: 0 1px 0 white inset;
-}
-.ckeditor-toolbar-active {
-  margin-top: 0.25em;
-}
-.ckeditor-toolbar-disabled {
-  margin-bottom: 0.5em;
-}
-.ckeditor-toolbar ul,
-.ckeditor-toolbar-disabled ul {
-  margin: 0;
-  padding: 0;
-  list-style: none;
-}
-/* This is required to win over specificity of [dir="rtl"] ul */
-[dir="rtl"] .ckeditor-toolbar ul,
-[dir="rtl"] .ckeditor-toolbar-disabled ul {
-  margin-right: 0;
-}
-
-.ckeditor-row {
-  padding: 2px 0 3px;
-  border-radius: 3px;
-}
-.ckeditor-group-names-are-visible .ckeditor-row {
-  border: 1px solid whitesmoke;
-}
-.ckeditor-row + .ckeditor-row {
-  margin-top: 0.25em;
-}
-.ckeditor-toolbar-group,
-.ckeditor-toolbar-group-placeholder,
-.ckeditor-add-new-group {
-  float: left; /* LTR */
-}
-[dir="rtl"] .ckeditor-toolbar-group,
-[dir="rtl"] .ckeditor-toolbar-group-placeholder,
-[dir="rtl"] .ckeditor-add-new-group {
-  float: right;
-}
-.ckeditor-toolbar-groups {
-  min-height: 2em;
-}
-.ckeditor-toolbar-group {
-  margin: 0 0.3333em;
-  cursor: move;
-}
-.ckeditor-group-names-are-visible .ckeditor-toolbar-group,
-.ckeditor-add-new-group {
-  padding: 0.2em 0.4em;
-  border: 1px dotted #a6a6a6;
-  border-radius: 3px;
-}
-.ckeditor-toolbar-group.placeholder,
-.ckeditor-toolbar-group.placeholder .ckeditor-toolbar-group-name {
-  cursor: not-allowed;
-}
-.ckeditor-toolbar-group.placeholder .ckeditor-toolbar-group-name {
-  font-style: italic;
-}
-.ckeditor-toolbar-group-name {
-  display: none;
-  margin: 0.25em 0;
-  font-size: 1em;
-  font-weight: normal;
-}
-.ckeditor-group-names-are-visible .ckeditor-toolbar-group-name {
-  display: block;
-  cursor: pointer;
-}
-.ckeditor-toolbar-active .placeholder,
-.ckeditor-toolbar-active .ckeditor-add-new-group {
-  display: none;
-}
-.ckeditor-group-names-are-visible .placeholder,
-.ckeditor-group-names-are-visible .ckeditor-add-new-group {
-  display: block;
-}
-.ckeditor-toolbar-group-buttons {
-  float: left; /* LTR */
-}
-[dir="rtl"] .ckeditor-toolbar-group-buttons {
-  float: right;
-}
-.ckeditor-groupnames-toggle {
-  float: right; /* LTR */
-  cursor: pointer;
-}
-[dir="rtl"] .ckeditor-groupnames-toggle {
-  float: left;
-}
-.ckeditor-toolbar .ckeditor-toolbar-group > li {
-  margin: 3px 6px;
-  padding: 3px;
-  border: 1px solid white;
-  border-radius: 5px;
-  background-image: -webkit-linear-gradient(transparent 60%, rgba(0, 0, 0, 0.1));
-  background-image: linear-gradient(transparent 60%, rgba(0, 0, 0, 0.1));
-}
-.ckeditor-toolbar-configuration .fieldset-description {
-  margin-bottom: 1em;
-}
-.ckeditor-toolbar-disabled .ckeditor-toolbar-available,
-.ckeditor-toolbar-disabled .ckeditor-toolbar-dividers {
-  box-sizing: border-box;
-}
-.ckeditor-toolbar-disabled .ckeditor-toolbar-available {
-  float: left; /* LTR */
-  width: 80%;
-}
-[dir="rtl"] .ckeditor-toolbar-disabled .ckeditor-toolbar-available {
-  float: right;
-}
-.ckeditor-toolbar-disabled .ckeditor-toolbar-dividers {
-  float: right; /* LTR */
-  width: 20%;
-}
-[dir="rtl"] .ckeditor-toolbar-disabled .ckeditor-toolbar-dividers {
-  float: left;
-}
-.ckeditor-toolbar-disabled .ckeditor-buttons li a,
-.ckeditor-toolbar .ckeditor-buttons,
-.ckeditor-add-new-group button {
-  border: 1px solid #a6a6a6;
-  border-bottom-color: #979797;
-  border-radius: 3px;
-  box-shadow: 0 1px 0 rgba(255, 255, 255, 0.5), 0 0 2px rgba(255, 255, 255, 0.15) inset, 0 1px 0 rgba(255, 255, 255, 0.15) inset;
-}
-.ckeditor-toolbar-disabled .ckeditor-buttons {
-  border: 0;
-}
-.ckeditor-toolbar-disabled .ckeditor-buttons li {
-  margin: 2px;
-}
-.ckeditor-buttons {
-  min-width: 26px;
-  min-height: 26px;
-}
-.ckeditor-buttons li {
-  float: left; /* LTR */
-  margin: 0;
-  padding: 0;
-}
-[dir="rtl"] .ckeditor-buttons li {
-  float: right;
-}
-.ckeditor-buttons li a,
-.ckeditor-add-new-group button {
-  color: #474747;
-  background: #e4e4e4;
-  background-image: -webkit-linear-gradient(top, white, #e4e4e4);
-  background-image: linear-gradient(top, white, #e4e4e4);
-}
-.ckeditor-buttons li a {
-  position: relative;
-  display: block;
-  min-height: 18px;
-  padding: 4px 6px;
-  cursor: move;
-  white-space: nowrap;
-  text-decoration: none;
-  border: 0;
-  text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5);
-  line-height: 1.4;
-}
-.ckeditor-toolbar-dividers {
-  float: right; /* LTR */
-}
-[dir="rtl"] .ckeditor-toolbar-dividers {
-  float: left;
-}
-.ckeditor-buttons li .cke-icon-only {
-  /* Firefox includes the offscreen text in the focus indicator, resulting in a
-     far too wide focus indicator. This fixes that. */
-  overflow: hidden;
-  width: 16px;
-  text-indent: -9999px;
-}
-.ckeditor-buttons .cke_button_icon img {
-  width: 16px;
-  height: 16px;
-}
-.ckeditor-buttons li .cke_ltr {
-  direction: ltr;
-}
-.ckeditor-buttons li .cke_rtl {
-  direction: rtl;
-}
-.ckeditor-buttons li a:focus,
-.ckeditor-buttons li a:active,
-.ckeditor-multiple-buttons li a:focus {
-  z-index: 11; /* Ensure focused buttons show their outline on all sides. */
-  outline: 1px dotted #212121;
-  outline: 5px auto Highlight;
-  outline: 5px auto -webkit-focus-ring-color;
-}
-.ckeditor-buttons li:first-child a {
-  border-top-left-radius: 2px; /* LTR */
-  border-bottom-left-radius: 2px; /* LTR */
-}
-[dir="rtl"] .ckeditor-buttons li:first-child a {
-  border-top-right-radius: 2px;
-  border-bottom-right-radius: 2px;
-}
-.ckeditor-buttons li:last-child a {
-  border-top-right-radius: 2px; /* LTR */
-  border-bottom-right-radius: 2px; /* LTR */
-}
-[dir="rtl"] .ckeditor-buttons li:last-child a {
-  border-top-left-radius: 2px;
-  border-bottom-left-radius: 2px;
-}
-.ckeditor-button-placeholder,
-.ckeditor-buttons .ckeditor-button-placeholder a,
-.ckeditor-toolbar-group-placeholder {
-  background: #9dcae7;
-}
-.ckeditor-toolbar-group-placeholder {
-  border-radius: 4px;
-}
-.ckeditor-multiple-buttons {
-  float: left; /* LTR */
-  margin: 5px;
-  padding: 1px 2px;
-  list-style: none;
-}
-[dir="rtl"] .ckeditor-multiple-buttons {
-  float: right;
-}
-.ckeditor-multiple-buttons li {
-  float: left; /* LTR */
-  margin: 0;
-  padding: 0;
-}
-[dir="rtl"] .ckeditor-multiple-buttons li {
-  float: right;
-}
-.ckeditor-multiple-buttons li a {
-  display: inline-block;
-  min-height: 18px;
-  margin: 0;
-  padding: 2px 0;
-  cursor: move;
-  line-height: 1.4;
-}
-.ckeditor-buttons .ckeditor-group-button-separator,
-.ckeditor-multiple-buttons .ckeditor-group-button-separator {
-  margin: -1px -3px -2px;
-}
-.ckeditor-buttons .ckeditor-group-button-separator a,
-.ckeditor-multiple-buttons .ckeditor-group-button-separator a {
-  position: relative;
-  z-index: 10;
-  width: 13px;
-  height: 29px;
-  padding: 0;
-  background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA0AAAAdCAMAAABG4xbVAAAAhFBMVEUAAACmpqampqampqb////l5eX////5+fmmpqatra2urq6vr6+1tbW2tra4uLi6urq8vLzb29ve3t7i4uLl5eXn5+fo6Ojp6enq6urr6+vs7Ozt7e3u7u7v7+/w8PDx8fHy8vLz8/P09PT19fX29vb39/f4+Pj5+fn6+vr7+/v8/Pz+/v7qIQO+AAAACHRSTlMATVmAi8XM29MuWToAAABjSURBVBiVrc5BCoAwDETRMKhtRBduev9LKm1xjItWRBBE6Nt9QkIwOTcUzk0Imi8aoMssxbgoTHMtqsFMLta0vPh2N49HyfdelPg6k9uvX/a+Bmggt1qJRNzQFVgjEnkUZDoBmH57VSypjg4AAAAASUVORK5CYII=) no-repeat center center;
-}
-ul.ckeditor-buttons li.ckeditor-button-separator a {
-  position: relative;
-  z-index: 10;
-  width: 1px;
-  height: 24px;
-  margin: 1px 0 0;
-  padding: 0;
-  background: #e4e4e4;
-  background-image: -webkit-linear-gradient(#e4e4e4, #b4b4b4);
-  background-image: linear-gradient(#e4e4e4, #b4b4b4);
-}
-.ckeditor-multiple-buttons .ckeditor-button-separator a {
-  width: 2px;
-  height: 26px;
-  margin: 0 10px;
-  padding: 0;
-}
-.ckeditor-separator {
-  display: block;
-  width: 1px;
-  height: 18px;
-  margin: 5px 0;
-  background-color: silver;
-  background-color: rgba(0, 0, 0, 0.2);
-  box-shadow: 1px 0 1px rgba(255, 255, 255, 0.5);
-}
-.ckeditor-button-arrow {
-  display: inline-block;
-  width: 0;
-  margin: 0 4px 2px;
-  text-align: center;
-  border-top: 3px solid #333;
-  border-right: 3px solid transparent;
-  border-left: 3px solid transparent;
-}
-.ckeditor-row-controls {
-  float: right; /* LTR */
-  width: 40px;
-  text-align: right; /* LTR */
-  font-size: 18px;
-}
-[dir="rtl"] .ckeditor-row-controls {
-  float: left;
-  text-align: left;
-}
-.ckeditor-row-controls a {
-  display: inline-block;
-  box-sizing: border-box;
-  width: 20px;
-  height: 28px;
-  padding: 6px 2px;
-  text-decoration: none;
-  color: #333;
-  font-weight: bold;
-  line-height: 0.9;
-}
diff --git a/web/modules/ckeditor/css/ckeditor.css b/web/modules/ckeditor/css/ckeditor.css
deleted file mode 100644
index 567d35a03354fbe3c6b1066f347f687d586c5447..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/css/ckeditor.css
+++ /dev/null
@@ -1,31 +0,0 @@
-.ckeditor-dialog-loading {
-  position: absolute;
-  top: 0;
-  width: 100%;
-  text-align: center;
-}
-
-.ckeditor-dialog-loading-link {
-  position: relative;
-  top: 0;
-  display: inline-block;
-  padding: 3px 10px;
-  -webkit-user-select: none;
-  -khtml-user-select: none;
-  -moz-user-select: none;
-  -ms-user-select: none;
-  user-select: none;
-  border: 1px solid #b6b6b6;
-  border-top: none;
-  border-radius: 0 0 5px 5px;
-  background: white;
-  box-shadow: 0 0 10px -3px #000;
-  font-size: 14px;
-  -webkit-touch-callout: none;
-}
-
-.cke.cke_chrome.cke_focus {
-  outline: 1px dotted #212121;
-  outline: 5px auto Highlight;
-  outline: 5px auto -webkit-focus-ring-color;
-}
diff --git a/web/modules/ckeditor/css/plugins/drupalimagecaption/ckeditor.drupalimagecaption.css b/web/modules/ckeditor/css/plugins/drupalimagecaption/ckeditor.drupalimagecaption.css
deleted file mode 100644
index 29f6a490e5c321cb2004cbbc3212ef32a01d9eff..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/css/plugins/drupalimagecaption/ckeditor.drupalimagecaption.css
+++ /dev/null
@@ -1,21 +0,0 @@
-/**
- * @file
- * Image Caption: overrides to make centered alignment work inside CKEditor.
- */
-
-/**
- * Since .align-center is set on the non-captioned image's parent block element
- * in CKEditor, the image must be centered separately.
- */
-p[data-widget="image"].align-center {
-  text-align: center;
-}
-
-/**
- * Since .align-center is set on captioned widget's wrapper element in CKEditor,
- * the alignment of internals must be set separately.
- */
-div[data-cke-widget-wrapper].align-center > figure[data-widget="image"] {
-  margin-right: auto;
-  margin-left: auto;
-}
diff --git a/web/modules/ckeditor/css/plugins/drupalmedia/ckeditor.drupalmedia.css b/web/modules/ckeditor/css/plugins/drupalmedia/ckeditor.drupalmedia.css
deleted file mode 100644
index 82923ff63e96111f8253b043392708d1639eb1d0..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/css/plugins/drupalmedia/ckeditor.drupalmedia.css
+++ /dev/null
@@ -1,41 +0,0 @@
-/**
- * @file
- * Media embed: overrides to make focus styles and alignment work in CKEditor.
- */
-
-/**
- * Allow the drupal-media element's width to collapse to the size of its
- * contents so that the outline has no extra white space (margin). This
- * emulates the image2 plugin's styles inherited by the drupallink CKEditor
- * plugin.
- */
-drupal-media {
-  display: inline-block;
-}
-
-/**
- * For center alignment, take advantage of drupal-media's inline-block
- * display and center it as if it were text.
- */
-.cke_widget_drupalmedia.align-center {
-  text-align: center;
-}
-
-/**
- * Fix positioning without delete button. Can be removed with this issue:
- * @see https://www.drupal.org/project/drupal/issues/3074859
- */
-drupal-media .media-library-item__edit {
-  right: 10px;
-}
-
-/**
- * Allow alignment to display in CKEditor.
- */
-drupal-media[data-align=left],
-drupal-media[data-align=right] {
-  display: inline;
-}
-drupal-media[data-align=center] {
-  display: flex;
-}
diff --git a/web/modules/ckeditor/css/plugins/language/ckeditor.language.css b/web/modules/ckeditor/css/plugins/language/ckeditor.language.css
deleted file mode 100644
index 41b75699523facef399cd9d3e439f00e50f05c7b..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/css/plugins/language/ckeditor.language.css
+++ /dev/null
@@ -1,19 +0,0 @@
-/**
- * @file
- * Language: add styling for elements that have a language attribute.
- */
-
-/**
- * Show the user that a 'lang' tag has been applied by adding a thin dotted
- * border. We also append the value of the tag between brackets, for example:
- * '(en)'. Since the html element has a 'lang' attribute too we only target
- * elements within the html scope.
- */
-html [lang] {
-  outline: 1px dotted gray;
-}
-html [lang]:after {
-  content: " ("attr(lang)")";
-  color: #666;
-  font-size: 10px;
-}
diff --git a/web/modules/ckeditor/js/ckeditor.admin.es6.js b/web/modules/ckeditor/js/ckeditor.admin.es6.js
deleted file mode 100644
index 77462288a9a842dafaa4547df226e11711fc6ddd..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/js/ckeditor.admin.es6.js
+++ /dev/null
@@ -1,565 +0,0 @@
-/**
- * @file
- * CKEditor button and group configuration user interface.
- */
-
-(function ($, Drupal, drupalSettings, _) {
-  Drupal.ckeditor = Drupal.ckeditor || {};
-
-  /**
-   * Sets config behavior and creates config views for the CKEditor toolbar.
-   *
-   * @type {Drupal~behavior}
-   *
-   * @prop {Drupal~behaviorAttach} attach
-   *   Attaches admin behavior to the CKEditor buttons.
-   * @prop {Drupal~behaviorDetach} detach
-   *   Detaches admin behavior from the CKEditor buttons on 'unload'.
-   */
-  Drupal.behaviors.ckeditorAdmin = {
-    attach(context) {
-      // Process the CKEditor configuration fragment once.
-      const configurationForm = once(
-        'ckeditor-configuration',
-        '.ckeditor-toolbar-configuration',
-        context,
-      );
-      if (configurationForm.length) {
-        const $configurationForm = $(configurationForm);
-        const $textarea = $configurationForm
-          // Hide the textarea that contains the serialized representation of the
-          // CKEditor configuration.
-          .find('.js-form-item-editor-settings-toolbar-button-groups')
-          .hide()
-          // Return the textarea child node from this expression.
-          .find('textarea');
-
-        // The HTML for the CKEditor configuration is assembled on the server
-        // and sent to the client as a serialized DOM fragment.
-        $configurationForm.append(drupalSettings.ckeditor.toolbarAdmin);
-
-        // Create a configuration model.
-        Drupal.ckeditor.models.Model = new Drupal.ckeditor.Model({
-          $textarea,
-          activeEditorConfig: JSON.parse($textarea[0].value),
-          hiddenEditorConfig: drupalSettings.ckeditor.hiddenCKEditorConfig,
-        });
-
-        // Create the configuration Views.
-        const viewDefaults = {
-          model: Drupal.ckeditor.models.Model,
-          el: $('.ckeditor-toolbar-configuration'),
-        };
-        Drupal.ckeditor.views = {
-          controller: new Drupal.ckeditor.ControllerView(viewDefaults),
-          visualView: new Drupal.ckeditor.VisualView(viewDefaults),
-          keyboardView: new Drupal.ckeditor.KeyboardView(viewDefaults),
-          auralView: new Drupal.ckeditor.AuralView(viewDefaults),
-        };
-      }
-    },
-    detach(context, settings, trigger) {
-      // Early-return if the trigger for detachment is something else than
-      // unload.
-      if (trigger !== 'unload') {
-        return;
-      }
-
-      // We're detaching because CKEditor as text editor has been disabled; this
-      // really means that all CKEditor toolbar buttons have been removed.
-      // Hence,all editor features will be removed, so any reactions from
-      // filters will be undone.
-      const configurationForm = once.filter(
-        'ckeditor-configuration',
-        '.ckeditor-toolbar-configuration',
-        context,
-      );
-      if (
-        configurationForm.length &&
-        Drupal.ckeditor.models &&
-        Drupal.ckeditor.models.Model
-      ) {
-        const config = Drupal.ckeditor.models.Model.toJSON().activeEditorConfig;
-        const buttons = Drupal.ckeditor.views.controller.getButtonList(config);
-        const $activeToolbar = $('.ckeditor-toolbar-configuration').find(
-          '.ckeditor-toolbar-active',
-        );
-        for (let i = 0; i < buttons.length; i++) {
-          $activeToolbar.trigger('CKEditorToolbarChanged', [
-            'removed',
-            buttons[i],
-          ]);
-        }
-      }
-    },
-  };
-
-  /**
-   * CKEditor configuration UI methods of Backbone objects.
-   *
-   * @namespace
-   */
-  Drupal.ckeditor = {
-    /**
-     * A hash of View instances.
-     *
-     * @type {object}
-     */
-    views: {},
-
-    /**
-     * A hash of Model instances.
-     *
-     * @type {object}
-     */
-    models: {},
-
-    /**
-     * Translates changes in CKEditor config DOM structure to the config model.
-     *
-     * If the button is moved within an existing group, the DOM structure is
-     * simply translated to a configuration model. If the button is moved into a
-     * new group placeholder, then a process is launched to name that group
-     * before the button move is translated into configuration.
-     *
-     * @param {Backbone.View} view
-     *   The Backbone View that invoked this function.
-     * @param {jQuery} $button
-     *   A jQuery set that contains an li element that wraps a button element.
-     * @param {function} callback
-     *   A callback to invoke after the button group naming modal dialog has
-     *   been closed.
-     *
-     */
-    registerButtonMove(view, $button, callback) {
-      const $group = $button.closest('.ckeditor-toolbar-group');
-
-      // If dropped in a placeholder button group, the user must name it.
-      if ($group.hasClass('placeholder')) {
-        if (view.isProcessing) {
-          return;
-        }
-        view.isProcessing = true;
-
-        Drupal.ckeditor.openGroupNameDialog(view, $group, callback);
-      } else {
-        view.model.set('isDirty', true);
-        callback(true);
-      }
-    },
-
-    /**
-     * Translates changes in CKEditor config DOM structure to the config model.
-     *
-     * Each row has a placeholder group at the end of the row. A user may not
-     * move an existing button group past the placeholder group at the end of a
-     * row.
-     *
-     * @param {Backbone.View} view
-     *   The Backbone View that invoked this function.
-     * @param {jQuery} $group
-     *   A jQuery set that contains an li element that wraps a group of buttons.
-     */
-    registerGroupMove(view, $group) {
-      // Remove placeholder classes if necessary.
-      let $row = $group.closest('.ckeditor-row');
-      if ($row.hasClass('placeholder')) {
-        $row.removeClass('placeholder');
-      }
-      // If there are any rows with just a placeholder group, mark the row as a
-      // placeholder.
-      $row
-        .parent()
-        .children()
-        .each(function () {
-          $row = $(this);
-          if (
-            $row.find('.ckeditor-toolbar-group').not('.placeholder').length ===
-            0
-          ) {
-            $row.addClass('placeholder');
-          }
-        });
-      view.model.set('isDirty', true);
-    },
-
-    /**
-     * Opens a dialog with a form for changing the title of a button group.
-     *
-     * @param {Backbone.View} view
-     *   The Backbone View that invoked this function.
-     * @param {jQuery} $group
-     *   A jQuery set that contains an li element that wraps a group of buttons.
-     * @param {function} callback
-     *   A callback to invoke after the button group naming modal dialog has
-     *   been closed.
-     */
-    openGroupNameDialog(view, $group, callback) {
-      callback = callback || function () {};
-
-      /**
-       * Validates the string provided as a button group title.
-       *
-       * @param {HTMLElement} form
-       *   The form DOM element that contains the input with the new button
-       *   group title string.
-       *
-       * @return {bool}
-       *   Returns true when an error exists, otherwise returns false.
-       */
-      function validateForm(form) {
-        if (form.elements[0].value.length === 0) {
-          const $form = $(form);
-          if (!$form.hasClass('errors')) {
-            $form
-              .addClass('errors')
-              .find('input')
-              .addClass('error')
-              .attr('aria-invalid', 'true');
-            $(
-              `<div class="description" >${Drupal.t(
-                'Please provide a name for the button group.',
-              )}</div>`,
-            ).insertAfter(form.elements[0]);
-          }
-          return true;
-        }
-        return false;
-      }
-
-      /**
-       * Attempts to close the dialog; Validates user input.
-       *
-       * @param {string} action
-       *   The dialog action chosen by the user: 'apply' or 'cancel'.
-       * @param {HTMLElement} form
-       *   The form DOM element that contains the input with the new button
-       *   group title string.
-       */
-      function closeDialog(action, form) {
-        /**
-         * Closes the dialog when the user cancels or supplies valid data.
-         */
-        function shutdown() {
-          // eslint-disable-next-line no-use-before-define
-          dialog.close(action);
-
-          // The processing marker can be deleted since the dialog has been
-          // closed.
-          delete view.isProcessing;
-        }
-
-        /**
-         * Applies a string as the name of a CKEditor button group.
-         *
-         * @param {jQuery} $group
-         *   A jQuery set that contains an li element that wraps a group of
-         *   buttons.
-         * @param {string} name
-         *   The new name of the CKEditor button group.
-         */
-        function namePlaceholderGroup($group, name) {
-          // If it's currently still a placeholder, then that means we're
-          // creating a new group, and we must do some extra work.
-          if ($group.hasClass('placeholder')) {
-            // Remove all whitespace from the name, lowercase it and ensure
-            // HTML-safe encoding, then use this as the group ID for CKEditor
-            // configuration UI accessibility purposes only.
-            const groupID = `ckeditor-toolbar-group-aria-label-for-${Drupal.checkPlain(
-              name.toLowerCase().replace(/\s/g, '-'),
-            )}`;
-            $group
-              // Update the group container.
-              .removeAttr('aria-label')
-              .attr('data-drupal-ckeditor-type', 'group')
-              .attr('tabindex', 0)
-              // Update the group heading.
-              .children('.ckeditor-toolbar-group-name')
-              .attr('id', groupID)
-              .end()
-              // Update the group items.
-              .children('.ckeditor-toolbar-group-buttons')
-              .attr('aria-labelledby', groupID);
-          }
-
-          $group
-            .attr('data-drupal-ckeditor-toolbar-group-name', name)
-            .children('.ckeditor-toolbar-group-name')
-            .each(function () {
-              this.textContent = name;
-            });
-        }
-
-        // Invoke a user-provided callback and indicate failure.
-        if (action === 'cancel') {
-          shutdown();
-          callback(false, $group);
-          return;
-        }
-
-        // Validate that a group name was provided.
-        if (form && validateForm(form)) {
-          return;
-        }
-
-        // React to application of a valid group name.
-        if (action === 'apply') {
-          shutdown();
-          // Apply the provided name to the button group label.
-          namePlaceholderGroup(
-            $group,
-            Drupal.checkPlain(form.elements[0].value),
-          );
-          // Remove placeholder classes so that new placeholders will be
-          // inserted.
-          $group
-            .closest('.ckeditor-row.placeholder')
-            .addBack()
-            .removeClass('placeholder');
-
-          // Invoke a user-provided callback and indicate success.
-          callback(true, $group);
-
-          // Signal that the active toolbar DOM structure has changed.
-          view.model.set('isDirty', true);
-        }
-      }
-
-      // Create a Drupal dialog that will get a button group name from the user.
-      const $ckeditorButtonGroupNameForm = $(
-        Drupal.theme('ckeditorButtonGroupNameForm'),
-      );
-      const dialog = Drupal.dialog($ckeditorButtonGroupNameForm.get(0), {
-        title: Drupal.t('Button group name'),
-        dialogClass: 'ckeditor-name-toolbar-group',
-        resizable: false,
-        buttons: [
-          {
-            text: Drupal.t('Apply'),
-            click() {
-              closeDialog('apply', this);
-            },
-            primary: true,
-          },
-          {
-            text: Drupal.t('Cancel'),
-            click() {
-              closeDialog('cancel');
-            },
-          },
-        ],
-        open() {
-          const form = this;
-          const $form = $(this);
-          const $widget = $form.parent();
-          $widget.find('.ui-dialog-titlebar-close').remove();
-          // Set a click handler on the input and button in the form.
-          $widget.on('keypress.ckeditor', 'input, button', (event) => {
-            // React to enter key press.
-            if (event.keyCode === 13) {
-              const $target = $(event.currentTarget);
-              const data = $target.data('ui-button');
-              let action = 'apply';
-              // Assume 'apply', but take into account that the user might have
-              // pressed the enter key on the dialog buttons.
-              if (data && data.options && data.options.label) {
-                action = data.options.label.toLowerCase();
-              }
-              closeDialog(action, form);
-              event.stopPropagation();
-              event.stopImmediatePropagation();
-              event.preventDefault();
-            }
-          });
-          // Announce to the user that a modal dialog is open.
-          let text = Drupal.t(
-            'Editing the name of the new button group in a dialog.',
-          );
-          if (
-            typeof $group.attr('data-drupal-ckeditor-toolbar-group-name') !==
-            'undefined'
-          ) {
-            text = Drupal.t(
-              'Editing the name of the "@groupName" button group in a dialog.',
-              {
-                '@groupName': $group.attr(
-                  'data-drupal-ckeditor-toolbar-group-name',
-                ),
-              },
-            );
-          }
-          Drupal.announce(text);
-        },
-        close(event) {
-          // Automatically destroy the DOM element that was used for the dialog.
-          $(event.target).remove();
-        },
-      });
-
-      // A modal dialog is used because the user must provide a button group
-      // name or cancel the button placement before taking any other action.
-      dialog.showModal();
-
-      $(
-        document
-          .querySelector('.ckeditor-name-toolbar-group')
-          .querySelector('input'),
-      )
-        // When editing, set the "group name" input in the form to the current
-        // value.
-        .attr('value', $group.attr('data-drupal-ckeditor-toolbar-group-name'))
-        // Focus on the "group name" input in the form.
-        .trigger('focus');
-    },
-  };
-
-  /**
-   * Automatically shows/hides settings of buttons-only CKEditor plugins.
-   *
-   * @type {Drupal~behavior}
-   *
-   * @prop {Drupal~behaviorAttach} attach
-   *   Attaches show/hide behavior to Plugin Settings buttons.
-   */
-  Drupal.behaviors.ckeditorAdminButtonPluginSettings = {
-    attach(context) {
-      const $context = $(context);
-      const ckeditorPluginSettings = once(
-        'ckeditor-plugin-settings',
-        '#ckeditor-plugin-settings',
-        context,
-      );
-      if (ckeditorPluginSettings.length) {
-        const $ckeditorPluginSettings = $(ckeditorPluginSettings);
-        // Hide all button-dependent plugin settings initially.
-        $ckeditorPluginSettings
-          .find('[data-ckeditor-buttons]')
-          .each(function () {
-            const $this = $(this);
-            if ($this.data('verticalTab')) {
-              $this.data('verticalTab').tabHide();
-            } else {
-              // On very narrow viewports, Vertical Tabs are disabled.
-              $this.hide();
-            }
-            $this.data('ckeditorButtonPluginSettingsActiveButtons', []);
-          });
-
-        // Whenever a button is added or removed, check if we should show or
-        // hide the corresponding plugin settings. (Note that upon
-        // initialization, each button that already is part of the toolbar still
-        // is considered "added", hence it also works correctly for buttons that
-        // were added previously.)
-        $context
-          .find('.ckeditor-toolbar-active')
-          .off('CKEditorToolbarChanged.ckeditorAdminPluginSettings')
-          .on(
-            'CKEditorToolbarChanged.ckeditorAdminPluginSettings',
-            (event, action, button) => {
-              const $pluginSettings = $ckeditorPluginSettings.find(
-                `[data-ckeditor-buttons~=${button}]`,
-              );
-
-              // No settings for this button.
-              if ($pluginSettings.length === 0) {
-                return;
-              }
-
-              const verticalTab = $pluginSettings.data('verticalTab');
-              const activeButtons = $pluginSettings.data(
-                'ckeditorButtonPluginSettingsActiveButtons',
-              );
-              if (action === 'added') {
-                activeButtons.push(button);
-                // Show this plugin's settings if >=1 of its buttons are active.
-                if (verticalTab) {
-                  verticalTab.tabShow();
-                } else {
-                  // On very narrow viewports, Vertical Tabs remain fieldsets.
-                  $pluginSettings.show();
-                }
-              } else {
-                // Remove this button from the list of active buttons.
-                activeButtons.splice(activeButtons.indexOf(button), 1);
-                // Show this plugin's settings 0 of its buttons are active.
-                if (activeButtons.length === 0) {
-                  if (verticalTab) {
-                    verticalTab.tabHide();
-                  } else {
-                    // On very narrow viewports, Vertical Tabs are disabled.
-                    $pluginSettings.hide();
-                  }
-                }
-              }
-              $pluginSettings.data(
-                'ckeditorButtonPluginSettingsActiveButtons',
-                activeButtons,
-              );
-            },
-          );
-      }
-    },
-  };
-
-  /**
-   * Themes a blank CKEditor row.
-   *
-   * @return {string}
-   *   A HTML string for a CKEditor row.
-   */
-  Drupal.theme.ckeditorRow = function () {
-    return '<li class="ckeditor-row placeholder" role="group"><ul class="ckeditor-toolbar-groups clearfix"></ul></li>';
-  };
-
-  /**
-   * Themes a blank CKEditor button group.
-   *
-   * @return {string}
-   *   A HTML string for a CKEditor button group.
-   */
-  Drupal.theme.ckeditorToolbarGroup = function () {
-    let group = '';
-    group += `<li class="ckeditor-toolbar-group placeholder" role="presentation" aria-label="${Drupal.t(
-      'Place a button to create a new button group.',
-    )}">`;
-    group += `<h3 class="ckeditor-toolbar-group-name">${Drupal.t(
-      'New group',
-    )}</h3>`;
-    group +=
-      '<ul class="ckeditor-buttons ckeditor-toolbar-group-buttons" role="toolbar" data-drupal-ckeditor-button-sorting="target"></ul>';
-    group += '</li>';
-    return group;
-  };
-
-  /**
-   * Themes a form for changing the title of a CKEditor button group.
-   *
-   * @return {string}
-   *   A HTML string for the form for the title of a CKEditor button group.
-   */
-  Drupal.theme.ckeditorButtonGroupNameForm = function () {
-    return '<form><input name="group-name" required="required"></form>';
-  };
-
-  /**
-   * Themes a button that will toggle the button group names in active config.
-   *
-   * @return {string}
-   *   A HTML string for the button to toggle group names.
-   */
-  Drupal.theme.ckeditorButtonGroupNamesToggle = function () {
-    return '<button class="link ckeditor-groupnames-toggle" aria-pressed="false"></button>';
-  };
-
-  /**
-   * Themes a button that will prompt the user to name a new button group.
-   *
-   * @return {string}
-   *   A HTML string for the button to create a name for a new button group.
-   */
-  Drupal.theme.ckeditorNewButtonGroup = function () {
-    return `<li class="ckeditor-add-new-group"><button aria-label="${Drupal.t(
-      'Add a CKEditor button group to the end of this row.',
-    )}">${Drupal.t('Add group')}</button></li>`;
-  };
-})(jQuery, Drupal, drupalSettings, _);
diff --git a/web/modules/ckeditor/js/ckeditor.admin.js b/web/modules/ckeditor/js/ckeditor.admin.js
deleted file mode 100644
index a1a0d1a64158fda04cf1bc993cdd7ab3c3b40f80..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/js/ckeditor.admin.js
+++ /dev/null
@@ -1,275 +0,0 @@
-/**
-* DO NOT EDIT THIS FILE.
-* See the following change record for more information,
-* https://www.drupal.org/node/2815083
-* @preserve
-**/
-
-(function ($, Drupal, drupalSettings, _) {
-  Drupal.ckeditor = Drupal.ckeditor || {};
-  Drupal.behaviors.ckeditorAdmin = {
-    attach: function attach(context) {
-      var configurationForm = once('ckeditor-configuration', '.ckeditor-toolbar-configuration', context);
-
-      if (configurationForm.length) {
-        var $configurationForm = $(configurationForm);
-        var $textarea = $configurationForm.find('.js-form-item-editor-settings-toolbar-button-groups').hide().find('textarea');
-        $configurationForm.append(drupalSettings.ckeditor.toolbarAdmin);
-        Drupal.ckeditor.models.Model = new Drupal.ckeditor.Model({
-          $textarea: $textarea,
-          activeEditorConfig: JSON.parse($textarea[0].value),
-          hiddenEditorConfig: drupalSettings.ckeditor.hiddenCKEditorConfig
-        });
-        var viewDefaults = {
-          model: Drupal.ckeditor.models.Model,
-          el: $('.ckeditor-toolbar-configuration')
-        };
-        Drupal.ckeditor.views = {
-          controller: new Drupal.ckeditor.ControllerView(viewDefaults),
-          visualView: new Drupal.ckeditor.VisualView(viewDefaults),
-          keyboardView: new Drupal.ckeditor.KeyboardView(viewDefaults),
-          auralView: new Drupal.ckeditor.AuralView(viewDefaults)
-        };
-      }
-    },
-    detach: function detach(context, settings, trigger) {
-      if (trigger !== 'unload') {
-        return;
-      }
-
-      var configurationForm = once.filter('ckeditor-configuration', '.ckeditor-toolbar-configuration', context);
-
-      if (configurationForm.length && Drupal.ckeditor.models && Drupal.ckeditor.models.Model) {
-        var config = Drupal.ckeditor.models.Model.toJSON().activeEditorConfig;
-        var buttons = Drupal.ckeditor.views.controller.getButtonList(config);
-        var $activeToolbar = $('.ckeditor-toolbar-configuration').find('.ckeditor-toolbar-active');
-
-        for (var i = 0; i < buttons.length; i++) {
-          $activeToolbar.trigger('CKEditorToolbarChanged', ['removed', buttons[i]]);
-        }
-      }
-    }
-  };
-  Drupal.ckeditor = {
-    views: {},
-    models: {},
-    registerButtonMove: function registerButtonMove(view, $button, callback) {
-      var $group = $button.closest('.ckeditor-toolbar-group');
-
-      if ($group.hasClass('placeholder')) {
-        if (view.isProcessing) {
-          return;
-        }
-
-        view.isProcessing = true;
-        Drupal.ckeditor.openGroupNameDialog(view, $group, callback);
-      } else {
-        view.model.set('isDirty', true);
-        callback(true);
-      }
-    },
-    registerGroupMove: function registerGroupMove(view, $group) {
-      var $row = $group.closest('.ckeditor-row');
-
-      if ($row.hasClass('placeholder')) {
-        $row.removeClass('placeholder');
-      }
-
-      $row.parent().children().each(function () {
-        $row = $(this);
-
-        if ($row.find('.ckeditor-toolbar-group').not('.placeholder').length === 0) {
-          $row.addClass('placeholder');
-        }
-      });
-      view.model.set('isDirty', true);
-    },
-    openGroupNameDialog: function openGroupNameDialog(view, $group, callback) {
-      callback = callback || function () {};
-
-      function validateForm(form) {
-        if (form.elements[0].value.length === 0) {
-          var $form = $(form);
-
-          if (!$form.hasClass('errors')) {
-            $form.addClass('errors').find('input').addClass('error').attr('aria-invalid', 'true');
-            $("<div class=\"description\" >".concat(Drupal.t('Please provide a name for the button group.'), "</div>")).insertAfter(form.elements[0]);
-          }
-
-          return true;
-        }
-
-        return false;
-      }
-
-      function closeDialog(action, form) {
-        function shutdown() {
-          dialog.close(action);
-          delete view.isProcessing;
-        }
-
-        function namePlaceholderGroup($group, name) {
-          if ($group.hasClass('placeholder')) {
-            var groupID = "ckeditor-toolbar-group-aria-label-for-".concat(Drupal.checkPlain(name.toLowerCase().replace(/\s/g, '-')));
-            $group.removeAttr('aria-label').attr('data-drupal-ckeditor-type', 'group').attr('tabindex', 0).children('.ckeditor-toolbar-group-name').attr('id', groupID).end().children('.ckeditor-toolbar-group-buttons').attr('aria-labelledby', groupID);
-          }
-
-          $group.attr('data-drupal-ckeditor-toolbar-group-name', name).children('.ckeditor-toolbar-group-name').each(function () {
-            this.textContent = name;
-          });
-        }
-
-        if (action === 'cancel') {
-          shutdown();
-          callback(false, $group);
-          return;
-        }
-
-        if (form && validateForm(form)) {
-          return;
-        }
-
-        if (action === 'apply') {
-          shutdown();
-          namePlaceholderGroup($group, Drupal.checkPlain(form.elements[0].value));
-          $group.closest('.ckeditor-row.placeholder').addBack().removeClass('placeholder');
-          callback(true, $group);
-          view.model.set('isDirty', true);
-        }
-      }
-
-      var $ckeditorButtonGroupNameForm = $(Drupal.theme('ckeditorButtonGroupNameForm'));
-      var dialog = Drupal.dialog($ckeditorButtonGroupNameForm.get(0), {
-        title: Drupal.t('Button group name'),
-        dialogClass: 'ckeditor-name-toolbar-group',
-        resizable: false,
-        buttons: [{
-          text: Drupal.t('Apply'),
-          click: function click() {
-            closeDialog('apply', this);
-          },
-          primary: true
-        }, {
-          text: Drupal.t('Cancel'),
-          click: function click() {
-            closeDialog('cancel');
-          }
-        }],
-        open: function open() {
-          var form = this;
-          var $form = $(this);
-          var $widget = $form.parent();
-          $widget.find('.ui-dialog-titlebar-close').remove();
-          $widget.on('keypress.ckeditor', 'input, button', function (event) {
-            if (event.keyCode === 13) {
-              var $target = $(event.currentTarget);
-              var data = $target.data('ui-button');
-              var action = 'apply';
-
-              if (data && data.options && data.options.label) {
-                action = data.options.label.toLowerCase();
-              }
-
-              closeDialog(action, form);
-              event.stopPropagation();
-              event.stopImmediatePropagation();
-              event.preventDefault();
-            }
-          });
-          var text = Drupal.t('Editing the name of the new button group in a dialog.');
-
-          if (typeof $group.attr('data-drupal-ckeditor-toolbar-group-name') !== 'undefined') {
-            text = Drupal.t('Editing the name of the "@groupName" button group in a dialog.', {
-              '@groupName': $group.attr('data-drupal-ckeditor-toolbar-group-name')
-            });
-          }
-
-          Drupal.announce(text);
-        },
-        close: function close(event) {
-          $(event.target).remove();
-        }
-      });
-      dialog.showModal();
-      $(document.querySelector('.ckeditor-name-toolbar-group').querySelector('input')).attr('value', $group.attr('data-drupal-ckeditor-toolbar-group-name')).trigger('focus');
-    }
-  };
-  Drupal.behaviors.ckeditorAdminButtonPluginSettings = {
-    attach: function attach(context) {
-      var $context = $(context);
-      var ckeditorPluginSettings = once('ckeditor-plugin-settings', '#ckeditor-plugin-settings', context);
-
-      if (ckeditorPluginSettings.length) {
-        var $ckeditorPluginSettings = $(ckeditorPluginSettings);
-        $ckeditorPluginSettings.find('[data-ckeditor-buttons]').each(function () {
-          var $this = $(this);
-
-          if ($this.data('verticalTab')) {
-            $this.data('verticalTab').tabHide();
-          } else {
-            $this.hide();
-          }
-
-          $this.data('ckeditorButtonPluginSettingsActiveButtons', []);
-        });
-        $context.find('.ckeditor-toolbar-active').off('CKEditorToolbarChanged.ckeditorAdminPluginSettings').on('CKEditorToolbarChanged.ckeditorAdminPluginSettings', function (event, action, button) {
-          var $pluginSettings = $ckeditorPluginSettings.find("[data-ckeditor-buttons~=".concat(button, "]"));
-
-          if ($pluginSettings.length === 0) {
-            return;
-          }
-
-          var verticalTab = $pluginSettings.data('verticalTab');
-          var activeButtons = $pluginSettings.data('ckeditorButtonPluginSettingsActiveButtons');
-
-          if (action === 'added') {
-            activeButtons.push(button);
-
-            if (verticalTab) {
-              verticalTab.tabShow();
-            } else {
-              $pluginSettings.show();
-            }
-          } else {
-            activeButtons.splice(activeButtons.indexOf(button), 1);
-
-            if (activeButtons.length === 0) {
-              if (verticalTab) {
-                verticalTab.tabHide();
-              } else {
-                $pluginSettings.hide();
-              }
-            }
-          }
-
-          $pluginSettings.data('ckeditorButtonPluginSettingsActiveButtons', activeButtons);
-        });
-      }
-    }
-  };
-
-  Drupal.theme.ckeditorRow = function () {
-    return '<li class="ckeditor-row placeholder" role="group"><ul class="ckeditor-toolbar-groups clearfix"></ul></li>';
-  };
-
-  Drupal.theme.ckeditorToolbarGroup = function () {
-    var group = '';
-    group += "<li class=\"ckeditor-toolbar-group placeholder\" role=\"presentation\" aria-label=\"".concat(Drupal.t('Place a button to create a new button group.'), "\">");
-    group += "<h3 class=\"ckeditor-toolbar-group-name\">".concat(Drupal.t('New group'), "</h3>");
-    group += '<ul class="ckeditor-buttons ckeditor-toolbar-group-buttons" role="toolbar" data-drupal-ckeditor-button-sorting="target"></ul>';
-    group += '</li>';
-    return group;
-  };
-
-  Drupal.theme.ckeditorButtonGroupNameForm = function () {
-    return '<form><input name="group-name" required="required"></form>';
-  };
-
-  Drupal.theme.ckeditorButtonGroupNamesToggle = function () {
-    return '<button class="link ckeditor-groupnames-toggle" aria-pressed="false"></button>';
-  };
-
-  Drupal.theme.ckeditorNewButtonGroup = function () {
-    return "<li class=\"ckeditor-add-new-group\"><button aria-label=\"".concat(Drupal.t('Add a CKEditor button group to the end of this row.'), "\">").concat(Drupal.t('Add group'), "</button></li>");
-  };
-})(jQuery, Drupal, drupalSettings, _);
\ No newline at end of file
diff --git a/web/modules/ckeditor/js/ckeditor.drupalimage.admin.es6.js b/web/modules/ckeditor/js/ckeditor.drupalimage.admin.es6.js
deleted file mode 100644
index f473b957487f84fde638a7fd7725a9e4b14d2c03..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/js/ckeditor.drupalimage.admin.es6.js
+++ /dev/null
@@ -1,58 +0,0 @@
-/**
- * @file
- * CKEditor 'drupalimage' plugin admin behavior.
- */
-
-(function ($, Drupal, drupalSettings) {
-  /**
-   * Provides the summary for the "drupalimage" plugin settings vertical tab.
-   *
-   * @type {Drupal~behavior}
-   *
-   * @prop {Drupal~behaviorAttach} attach
-   *   Attaches summary behavior to the "drupalimage" settings vertical tab.
-   */
-  Drupal.behaviors.ckeditorDrupalImageSettingsSummary = {
-    attach() {
-      $('[data-ckeditor-plugin-id="drupalimage"]').drupalSetSummary(
-        (context) => {
-          const root =
-            'input[name="editor[settings][plugins][drupalimage][image_upload]';
-          const $status = $(`${root}[status]"]`);
-          const maxFileSizeElement = document.querySelector(
-            `${root}[max_size]"]`,
-          );
-          const maxWidth = document.querySelector(
-            `${root}[max_dimensions][width]"]`,
-          );
-          const maxHeight = document.querySelector(
-            `${root}[max_dimensions][height]"]`,
-          );
-          const $scheme = $(`${root}[scheme]"]:checked`);
-
-          const maxFileSize = maxFileSizeElement.value
-            ? maxFileSizeElement.value
-            : maxFileSizeElement.getAttribute('placeholder');
-          const maxDimensions =
-            maxWidth.value && maxHeight.value
-              ? `(${maxWidth.value}x${maxHeight.value})`
-              : '';
-
-          if (!$status.is(':checked')) {
-            return Drupal.t('Uploads disabled');
-          }
-
-          let output = '';
-          output += Drupal.t('Uploads enabled, max size: @size @dimensions', {
-            '@size': maxFileSize,
-            '@dimensions': maxDimensions,
-          });
-          if ($scheme.length) {
-            output += `<br />${$scheme.attr('data-label')}`;
-          }
-          return output;
-        },
-      );
-    },
-  };
-})(jQuery, Drupal, drupalSettings);
diff --git a/web/modules/ckeditor/js/ckeditor.drupalimage.admin.js b/web/modules/ckeditor/js/ckeditor.drupalimage.admin.js
deleted file mode 100644
index 5ea1cd8cd40319261f75c7b9ac466f390df0987a..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/js/ckeditor.drupalimage.admin.js
+++ /dev/null
@@ -1,39 +0,0 @@
-/**
-* DO NOT EDIT THIS FILE.
-* See the following change record for more information,
-* https://www.drupal.org/node/2815083
-* @preserve
-**/
-
-(function ($, Drupal, drupalSettings) {
-  Drupal.behaviors.ckeditorDrupalImageSettingsSummary = {
-    attach: function attach() {
-      $('[data-ckeditor-plugin-id="drupalimage"]').drupalSetSummary(function (context) {
-        var root = 'input[name="editor[settings][plugins][drupalimage][image_upload]';
-        var $status = $("".concat(root, "[status]\"]"));
-        var maxFileSizeElement = document.querySelector("".concat(root, "[max_size]\"]"));
-        var maxWidth = document.querySelector("".concat(root, "[max_dimensions][width]\"]"));
-        var maxHeight = document.querySelector("".concat(root, "[max_dimensions][height]\"]"));
-        var $scheme = $("".concat(root, "[scheme]\"]:checked"));
-        var maxFileSize = maxFileSizeElement.value ? maxFileSizeElement.value : maxFileSizeElement.getAttribute('placeholder');
-        var maxDimensions = maxWidth.value && maxHeight.value ? "(".concat(maxWidth.value, "x").concat(maxHeight.value, ")") : '';
-
-        if (!$status.is(':checked')) {
-          return Drupal.t('Uploads disabled');
-        }
-
-        var output = '';
-        output += Drupal.t('Uploads enabled, max size: @size @dimensions', {
-          '@size': maxFileSize,
-          '@dimensions': maxDimensions
-        });
-
-        if ($scheme.length) {
-          output += "<br />".concat($scheme.attr('data-label'));
-        }
-
-        return output;
-      });
-    }
-  };
-})(jQuery, Drupal, drupalSettings);
\ No newline at end of file
diff --git a/web/modules/ckeditor/js/ckeditor.drupalmedia.theme.es6.js b/web/modules/ckeditor/js/ckeditor.drupalmedia.theme.es6.js
deleted file mode 100644
index fbc93079c2acbccba38484d19cb5c87eb4b0fcf0..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/js/ckeditor.drupalmedia.theme.es6.js
+++ /dev/null
@@ -1,17 +0,0 @@
-/**
- * @file
- * Theme elements for the Media Embed CKEditor plugin.
- */
-
-((Drupal) => {
-  /**
-   * Themes the edit button for a media embed.
-   *
-   * @return {string}
-   *   An HTML string to insert in the CKEditor.
-   */
-  Drupal.theme.mediaEmbedEditButton = () =>
-    `<button class="media-library-item__edit">${Drupal.t(
-      'Edit media',
-    )}</button>`;
-})(Drupal);
diff --git a/web/modules/ckeditor/js/ckeditor.drupalmedia.theme.js b/web/modules/ckeditor/js/ckeditor.drupalmedia.theme.js
deleted file mode 100644
index ed42a93604ba311295a36f7df2b909cbab9cad57..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/js/ckeditor.drupalmedia.theme.js
+++ /dev/null
@@ -1,12 +0,0 @@
-/**
-* DO NOT EDIT THIS FILE.
-* See the following change record for more information,
-* https://www.drupal.org/node/2815083
-* @preserve
-**/
-
-(function (Drupal) {
-  Drupal.theme.mediaEmbedEditButton = function () {
-    return "<button class=\"media-library-item__edit\">".concat(Drupal.t('Edit media'), "</button>");
-  };
-})(Drupal);
\ No newline at end of file
diff --git a/web/modules/ckeditor/js/ckeditor.es6.js b/web/modules/ckeditor/js/ckeditor.es6.js
deleted file mode 100644
index fe0ebb940ffba120872b629d7dd03cefceb58e70..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/js/ckeditor.es6.js
+++ /dev/null
@@ -1,392 +0,0 @@
-/**
- * @file
- * CKEditor implementation of {@link Drupal.editors} API.
- */
-
-(function (Drupal, debounce, CKEDITOR, $, displace, AjaxCommands) {
-  /**
-   * @namespace
-   */
-  Drupal.editors.ckeditor = {
-    /**
-     * Editor attach callback.
-     *
-     * @param {HTMLElement} element
-     *   The element to attach the editor to.
-     * @param {string} format
-     *   The text format for the editor.
-     *
-     * @return {bool}
-     *   Whether the call to `CKEDITOR.replace()` created an editor or not.
-     */
-    attach(element, format) {
-      this._loadExternalPlugins(format);
-      // Also pass settings that are Drupal-specific.
-      format.editorSettings.drupal = {
-        format: format.format,
-      };
-
-      // Set a title on the CKEditor instance that includes the text field's
-      // label so that screen readers say something that is understandable
-      // for end users.
-      const label = $(`label[for=${element.getAttribute('id')}]`).html();
-      format.editorSettings.title = Drupal.t('Rich Text Editor, !label field', {
-        '!label': label,
-      });
-
-      return !!CKEDITOR.replace(element, format.editorSettings);
-    },
-
-    /**
-     * Editor detach callback.
-     *
-     * @param {HTMLElement} element
-     *   The element to detach the editor from.
-     * @param {string} format
-     *   The text format used for the editor.
-     * @param {string} trigger
-     *   The event trigger for the detach.
-     *
-     * @return {bool}
-     *   Whether the call to `CKEDITOR.dom.element.get(element).getEditor()`
-     *   found an editor or not.
-     */
-    detach(element, format, trigger) {
-      const editor = CKEDITOR.dom.element.get(element).getEditor();
-      if (editor) {
-        if (trigger === 'serialize') {
-          editor.updateElement();
-        } else {
-          editor.destroy();
-          element.removeAttribute('contentEditable');
-        }
-      }
-      return !!editor;
-    },
-
-    /**
-     * Reacts on a change in the editor element.
-     *
-     * @param {HTMLElement} element
-     *   The element where the change occurred.
-     * @param {function} callback
-     *   Callback called with the value of the editor.
-     *
-     * @return {bool}
-     *   Whether the call to `CKEDITOR.dom.element.get(element).getEditor()`
-     *   found an editor or not.
-     */
-    onChange(element, callback) {
-      const editor = CKEDITOR.dom.element.get(element).getEditor();
-      if (editor) {
-        editor.on(
-          'change',
-          debounce(() => {
-            callback(editor.getData());
-          }, 400),
-        );
-
-        // A temporary workaround to control scrollbar appearance when using
-        // autoGrow event to control editor's height.
-        // @todo Remove when http://dev.ckeditor.com/ticket/12120 is fixed.
-        editor.on('mode', () => {
-          const editable = editor.editable();
-          if (!editable.isInline()) {
-            editor.on(
-              'autoGrow',
-              (evt) => {
-                const doc = evt.editor.document;
-                const scrollable = CKEDITOR.env.quirks
-                  ? doc.getBody()
-                  : doc.getDocumentElement();
-
-                if (scrollable.$.scrollHeight < scrollable.$.clientHeight) {
-                  scrollable.setStyle('overflow-y', 'hidden');
-                } else {
-                  scrollable.removeStyle('overflow-y');
-                }
-              },
-              null,
-              null,
-              10000,
-            );
-          }
-        });
-      }
-      return !!editor;
-    },
-
-    /**
-     * Attaches an inline editor to a DOM element.
-     *
-     * @param {HTMLElement} element
-     *   The element to attach the editor to.
-     * @param {object} format
-     *   The text format used in the editor.
-     * @param {string} [mainToolbarId]
-     *   The id attribute for the main editor toolbar, if any.
-     * @param {string} [floatedToolbarId]
-     *   The id attribute for the floated editor toolbar, if any.
-     *
-     * @return {bool}
-     *   Whether the call to `CKEDITOR.replace()` created an editor or not.
-     */
-    attachInlineEditor(element, format, mainToolbarId, floatedToolbarId) {
-      this._loadExternalPlugins(format);
-      // Also pass settings that are Drupal-specific.
-      format.editorSettings.drupal = {
-        format: format.format,
-      };
-
-      const settings = $.extend(true, {}, format.editorSettings);
-
-      // If a toolbar is already provided for "true WYSIWYG" (in-place editing),
-      // then use that toolbar instead: override the default settings to render
-      // CKEditor UI's top toolbar into mainToolbar, and don't render the bottom
-      // toolbar at all. (CKEditor doesn't need a floated toolbar.)
-      if (mainToolbarId) {
-        const settingsOverride = {
-          extraPlugins: 'sharedspace',
-          removePlugins: 'floatingspace,elementspath',
-          sharedSpaces: {
-            top: mainToolbarId,
-          },
-        };
-
-        // Find the "Source" button, if any, and replace it with "Sourcedialog".
-        // (The 'sourcearea' plugin only works in CKEditor's iframe mode.)
-        let sourceButtonFound = false;
-        for (
-          let i = 0;
-          !sourceButtonFound && i < settings.toolbar.length;
-          i++
-        ) {
-          if (settings.toolbar[i] !== '/') {
-            for (
-              let j = 0;
-              !sourceButtonFound && j < settings.toolbar[i].items.length;
-              j++
-            ) {
-              if (settings.toolbar[i].items[j] === 'Source') {
-                sourceButtonFound = true;
-                // Swap sourcearea's "Source" button for sourcedialog's.
-                settings.toolbar[i].items[j] = 'Sourcedialog';
-                settingsOverride.extraPlugins += ',sourcedialog';
-                settingsOverride.removePlugins += ',sourcearea';
-              }
-            }
-          }
-        }
-
-        settings.extraPlugins += `,${settingsOverride.extraPlugins}`;
-        settings.removePlugins += `,${settingsOverride.removePlugins}`;
-        settings.sharedSpaces = settingsOverride.sharedSpaces;
-      }
-
-      // CKEditor requires an element to already have the contentEditable
-      // attribute set to "true", otherwise it won't attach an inline editor.
-      element.setAttribute('contentEditable', 'true');
-
-      return !!CKEDITOR.inline(element, settings);
-    },
-
-    /**
-     * Loads the required external plugins for the editor.
-     *
-     * @param {object} format
-     *   The text format used in the editor.
-     */
-    _loadExternalPlugins(format) {
-      const externalPlugins = format.editorSettings.drupalExternalPlugins;
-      // Register and load additional CKEditor plugins as necessary.
-      if (externalPlugins) {
-        Object.keys(externalPlugins || {}).forEach((pluginName) => {
-          CKEDITOR.plugins.addExternal(
-            pluginName,
-            externalPlugins[pluginName],
-            '',
-          );
-        });
-        delete format.editorSettings.drupalExternalPlugins;
-      }
-    },
-  };
-
-  Drupal.ckeditor = {
-    /**
-     * Variable storing the current dialog's save callback.
-     *
-     * @type {?function}
-     */
-    saveCallback: null,
-
-    /**
-     * Open a dialog for a Drupal-based plugin.
-     *
-     * This dynamically loads jQuery UI (if necessary) using the Drupal AJAX
-     * framework, then opens a dialog at the specified Drupal path.
-     *
-     * @param {CKEditor} editor
-     *   The CKEditor instance that is opening the dialog.
-     * @param {string} url
-     *   The URL that contains the contents of the dialog.
-     * @param {object} existingValues
-     *   Existing values that will be sent via POST to the url for the dialog
-     *   contents.
-     * @param {function} saveCallback
-     *   A function to be called upon saving the dialog.
-     * @param {object} dialogSettings
-     *   An object containing settings to be passed to the jQuery UI.
-     */
-    openDialog(editor, url, existingValues, saveCallback, dialogSettings) {
-      // Locate a suitable place to display our loading indicator.
-      let $target = $(editor.container.$);
-      if (editor.elementMode === CKEDITOR.ELEMENT_MODE_REPLACE) {
-        $target = $target.find('.cke_contents');
-      }
-
-      // Remove any previous loading indicator.
-      $target
-        .css('position', 'relative')
-        .find('.ckeditor-dialog-loading')
-        .remove();
-
-      // Add a consistent dialog class.
-      const classes = dialogSettings.dialogClass
-        ? dialogSettings.dialogClass.split(' ')
-        : [];
-      classes.push('ui-dialog--narrow');
-      dialogSettings.dialogClass = classes.join(' ');
-      dialogSettings.autoResize =
-        window.matchMedia('(min-width: 600px)').matches;
-      dialogSettings.width = 'auto';
-
-      // Add a "Loading…" message, hide it underneath the CKEditor toolbar,
-      // create a Drupal.Ajax instance to load the dialog and trigger it.
-      const $content = $(
-        `<div class="ckeditor-dialog-loading"><span style="top: -40px;" class="ckeditor-dialog-loading-link">${Drupal.t(
-          'Loading...',
-        )}</span></div>`,
-      );
-      $content.appendTo($target);
-
-      const ckeditorAjaxDialog = Drupal.ajax({
-        dialog: dialogSettings,
-        dialogType: 'modal',
-        selector: '.ckeditor-dialog-loading-link',
-        url,
-        progress: { type: 'throbber' },
-        submit: {
-          editor_object: existingValues,
-        },
-      });
-      ckeditorAjaxDialog.execute();
-
-      // After a short delay, show "Loading…" message.
-      window.setTimeout(() => {
-        $content.find('span').animate({ top: '0px' });
-      }, 1000);
-
-      // Store the save callback to be executed when this dialog is closed.
-      Drupal.ckeditor.saveCallback = saveCallback;
-    },
-  };
-
-  // Moves the dialog to the top of the CKEDITOR stack.
-  $(window).on('dialogcreate', (e, dialog, $element, settings) => {
-    $('.ui-dialog--narrow').css('zIndex', CKEDITOR.config.baseFloatZIndex + 1);
-  });
-
-  // Respond to new dialogs that are opened by CKEditor, closing the AJAX loader.
-  $(window).on('dialog:beforecreate', (e, dialog, $element, settings) => {
-    $('.ckeditor-dialog-loading').animate({ top: '-40px' }, function () {
-      $(this).remove();
-    });
-  });
-
-  // Respond to dialogs that are saved, sending data back to CKEditor.
-  $(window).on('editor:dialogsave', (e, values) => {
-    if (Drupal.ckeditor.saveCallback) {
-      Drupal.ckeditor.saveCallback(values);
-    }
-  });
-
-  // Respond to dialogs that are closed, removing the current save handler.
-  $(window).on('dialog:afterclose', (e, dialog, $element) => {
-    if (Drupal.ckeditor.saveCallback) {
-      Drupal.ckeditor.saveCallback = null;
-    }
-  });
-
-  // Formulate a default formula for the maximum autoGrow height.
-  $(document).on('drupalViewportOffsetChange', () => {
-    CKEDITOR.config.autoGrow_maxHeight =
-      0.7 *
-      (window.innerHeight - displace.offsets.top - displace.offsets.bottom);
-  });
-
-  // Redirect on hash change when the original hash has an associated CKEditor.
-  function redirectTextareaFragmentToCKEditorInstance() {
-    const hash = window.location.hash.substr(1);
-    const element = document.getElementById(hash);
-    if (element) {
-      const editor = CKEDITOR.dom.element.get(element).getEditor();
-      if (editor) {
-        const id = editor.container.getAttribute('id');
-        window.location.replace(`#${id}`);
-      }
-    }
-  }
-  $(window).on(
-    'hashchange.ckeditor',
-    redirectTextareaFragmentToCKEditorInstance,
-  );
-
-  // Set autoGrow to make the editor grow the moment it is created.
-  CKEDITOR.config.autoGrow_onStartup = true;
-
-  // Default max height. Will be updated as the viewport changes.
-  CKEDITOR.config.autoGrow_maxHeight = 0.7 * window.innerHeight;
-
-  // Set the CKEditor cache-busting string to the same value as Drupal.
-  CKEDITOR.timestamp = drupalSettings.ckeditor.timestamp;
-
-  if (AjaxCommands) {
-    /**
-     * Command to add style sheets to a CKEditor instance.
-     *
-     * Works for both iframe and inline CKEditor instances.
-     *
-     * @param {Drupal.Ajax} [ajax]
-     *   {@link Drupal.Ajax} object created by {@link Drupal.ajax}.
-     * @param {object} response
-     *   The response from the Ajax request.
-     * @param {string} response.editor_id
-     *   The CKEditor instance ID.
-     * @param {number} [status]
-     *   The XMLHttpRequest status.
-     *
-     * @see http://docs.ckeditor.com/#!/api/CKEDITOR.dom.document
-     */
-    AjaxCommands.prototype.ckeditor_add_stylesheet = function (
-      ajax,
-      response,
-      status,
-    ) {
-      const editor = CKEDITOR.instances[response.editor_id];
-
-      if (editor) {
-        response.stylesheets.forEach((url) => {
-          editor.document.appendStyleSheet(url);
-        });
-      }
-    };
-  }
-})(
-  Drupal,
-  Drupal.debounce,
-  CKEDITOR,
-  jQuery,
-  Drupal.displace,
-  Drupal.AjaxCommands,
-);
diff --git a/web/modules/ckeditor/js/ckeditor.js b/web/modules/ckeditor/js/ckeditor.js
deleted file mode 100644
index be798f0e05385d8f295715f3e1471965acccf3e3..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/js/ckeditor.js
+++ /dev/null
@@ -1,205 +0,0 @@
-/**
-* DO NOT EDIT THIS FILE.
-* See the following change record for more information,
-* https://www.drupal.org/node/2815083
-* @preserve
-**/
-
-(function (Drupal, debounce, CKEDITOR, $, displace, AjaxCommands) {
-  Drupal.editors.ckeditor = {
-    attach: function attach(element, format) {
-      this._loadExternalPlugins(format);
-
-      format.editorSettings.drupal = {
-        format: format.format
-      };
-      var label = $("label[for=".concat(element.getAttribute('id'), "]")).html();
-      format.editorSettings.title = Drupal.t('Rich Text Editor, !label field', {
-        '!label': label
-      });
-      return !!CKEDITOR.replace(element, format.editorSettings);
-    },
-    detach: function detach(element, format, trigger) {
-      var editor = CKEDITOR.dom.element.get(element).getEditor();
-
-      if (editor) {
-        if (trigger === 'serialize') {
-          editor.updateElement();
-        } else {
-          editor.destroy();
-          element.removeAttribute('contentEditable');
-        }
-      }
-
-      return !!editor;
-    },
-    onChange: function onChange(element, callback) {
-      var editor = CKEDITOR.dom.element.get(element).getEditor();
-
-      if (editor) {
-        editor.on('change', debounce(function () {
-          callback(editor.getData());
-        }, 400));
-        editor.on('mode', function () {
-          var editable = editor.editable();
-
-          if (!editable.isInline()) {
-            editor.on('autoGrow', function (evt) {
-              var doc = evt.editor.document;
-              var scrollable = CKEDITOR.env.quirks ? doc.getBody() : doc.getDocumentElement();
-
-              if (scrollable.$.scrollHeight < scrollable.$.clientHeight) {
-                scrollable.setStyle('overflow-y', 'hidden');
-              } else {
-                scrollable.removeStyle('overflow-y');
-              }
-            }, null, null, 10000);
-          }
-        });
-      }
-
-      return !!editor;
-    },
-    attachInlineEditor: function attachInlineEditor(element, format, mainToolbarId, floatedToolbarId) {
-      this._loadExternalPlugins(format);
-
-      format.editorSettings.drupal = {
-        format: format.format
-      };
-      var settings = $.extend(true, {}, format.editorSettings);
-
-      if (mainToolbarId) {
-        var settingsOverride = {
-          extraPlugins: 'sharedspace',
-          removePlugins: 'floatingspace,elementspath',
-          sharedSpaces: {
-            top: mainToolbarId
-          }
-        };
-        var sourceButtonFound = false;
-
-        for (var i = 0; !sourceButtonFound && i < settings.toolbar.length; i++) {
-          if (settings.toolbar[i] !== '/') {
-            for (var j = 0; !sourceButtonFound && j < settings.toolbar[i].items.length; j++) {
-              if (settings.toolbar[i].items[j] === 'Source') {
-                sourceButtonFound = true;
-                settings.toolbar[i].items[j] = 'Sourcedialog';
-                settingsOverride.extraPlugins += ',sourcedialog';
-                settingsOverride.removePlugins += ',sourcearea';
-              }
-            }
-          }
-        }
-
-        settings.extraPlugins += ",".concat(settingsOverride.extraPlugins);
-        settings.removePlugins += ",".concat(settingsOverride.removePlugins);
-        settings.sharedSpaces = settingsOverride.sharedSpaces;
-      }
-
-      element.setAttribute('contentEditable', 'true');
-      return !!CKEDITOR.inline(element, settings);
-    },
-    _loadExternalPlugins: function _loadExternalPlugins(format) {
-      var externalPlugins = format.editorSettings.drupalExternalPlugins;
-
-      if (externalPlugins) {
-        Object.keys(externalPlugins || {}).forEach(function (pluginName) {
-          CKEDITOR.plugins.addExternal(pluginName, externalPlugins[pluginName], '');
-        });
-        delete format.editorSettings.drupalExternalPlugins;
-      }
-    }
-  };
-  Drupal.ckeditor = {
-    saveCallback: null,
-    openDialog: function openDialog(editor, url, existingValues, saveCallback, dialogSettings) {
-      var $target = $(editor.container.$);
-
-      if (editor.elementMode === CKEDITOR.ELEMENT_MODE_REPLACE) {
-        $target = $target.find('.cke_contents');
-      }
-
-      $target.css('position', 'relative').find('.ckeditor-dialog-loading').remove();
-      var classes = dialogSettings.dialogClass ? dialogSettings.dialogClass.split(' ') : [];
-      classes.push('ui-dialog--narrow');
-      dialogSettings.dialogClass = classes.join(' ');
-      dialogSettings.autoResize = window.matchMedia('(min-width: 600px)').matches;
-      dialogSettings.width = 'auto';
-      var $content = $("<div class=\"ckeditor-dialog-loading\"><span style=\"top: -40px;\" class=\"ckeditor-dialog-loading-link\">".concat(Drupal.t('Loading...'), "</span></div>"));
-      $content.appendTo($target);
-      var ckeditorAjaxDialog = Drupal.ajax({
-        dialog: dialogSettings,
-        dialogType: 'modal',
-        selector: '.ckeditor-dialog-loading-link',
-        url: url,
-        progress: {
-          type: 'throbber'
-        },
-        submit: {
-          editor_object: existingValues
-        }
-      });
-      ckeditorAjaxDialog.execute();
-      window.setTimeout(function () {
-        $content.find('span').animate({
-          top: '0px'
-        });
-      }, 1000);
-      Drupal.ckeditor.saveCallback = saveCallback;
-    }
-  };
-  $(window).on('dialogcreate', function (e, dialog, $element, settings) {
-    $('.ui-dialog--narrow').css('zIndex', CKEDITOR.config.baseFloatZIndex + 1);
-  });
-  $(window).on('dialog:beforecreate', function (e, dialog, $element, settings) {
-    $('.ckeditor-dialog-loading').animate({
-      top: '-40px'
-    }, function () {
-      $(this).remove();
-    });
-  });
-  $(window).on('editor:dialogsave', function (e, values) {
-    if (Drupal.ckeditor.saveCallback) {
-      Drupal.ckeditor.saveCallback(values);
-    }
-  });
-  $(window).on('dialog:afterclose', function (e, dialog, $element) {
-    if (Drupal.ckeditor.saveCallback) {
-      Drupal.ckeditor.saveCallback = null;
-    }
-  });
-  $(document).on('drupalViewportOffsetChange', function () {
-    CKEDITOR.config.autoGrow_maxHeight = 0.7 * (window.innerHeight - displace.offsets.top - displace.offsets.bottom);
-  });
-
-  function redirectTextareaFragmentToCKEditorInstance() {
-    var hash = window.location.hash.substr(1);
-    var element = document.getElementById(hash);
-
-    if (element) {
-      var editor = CKEDITOR.dom.element.get(element).getEditor();
-
-      if (editor) {
-        var id = editor.container.getAttribute('id');
-        window.location.replace("#".concat(id));
-      }
-    }
-  }
-
-  $(window).on('hashchange.ckeditor', redirectTextareaFragmentToCKEditorInstance);
-  CKEDITOR.config.autoGrow_onStartup = true;
-  CKEDITOR.config.autoGrow_maxHeight = 0.7 * window.innerHeight;
-  CKEDITOR.timestamp = drupalSettings.ckeditor.timestamp;
-
-  if (AjaxCommands) {
-    AjaxCommands.prototype.ckeditor_add_stylesheet = function (ajax, response, status) {
-      var editor = CKEDITOR.instances[response.editor_id];
-
-      if (editor) {
-        response.stylesheets.forEach(function (url) {
-          editor.document.appendStyleSheet(url);
-        });
-      }
-    };
-  }
-})(Drupal, Drupal.debounce, CKEDITOR, jQuery, Drupal.displace, Drupal.AjaxCommands);
\ No newline at end of file
diff --git a/web/modules/ckeditor/js/ckeditor.language.admin.es6.js b/web/modules/ckeditor/js/ckeditor.language.admin.es6.js
deleted file mode 100644
index 2ec193afccb61e6c4b89c2da97fb343fdd4450c5..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/js/ckeditor.language.admin.es6.js
+++ /dev/null
@@ -1,20 +0,0 @@
-(function ($, Drupal) {
-  /**
-   * Provides the summary for the "language" plugin settings vertical tab.
-   */
-  Drupal.behaviors.ckeditorLanguageSettingsSummary = {
-    attach() {
-      $('#edit-editor-settings-plugins-language').drupalSetSummary(
-        (context) => {
-          const $selected = $(
-            '#edit-editor-settings-plugins-language-language-list-type option:selected',
-          );
-          if ($selected.length) {
-            return $selected[0].textContent;
-          }
-          return '';
-        },
-      );
-    },
-  };
-})(jQuery, Drupal);
diff --git a/web/modules/ckeditor/js/ckeditor.language.admin.js b/web/modules/ckeditor/js/ckeditor.language.admin.js
deleted file mode 100644
index df9b5d794476fbf1d5e24b7e831f9210d5751921..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/js/ckeditor.language.admin.js
+++ /dev/null
@@ -1,22 +0,0 @@
-/**
-* DO NOT EDIT THIS FILE.
-* See the following change record for more information,
-* https://www.drupal.org/node/2815083
-* @preserve
-**/
-
-(function ($, Drupal) {
-  Drupal.behaviors.ckeditorLanguageSettingsSummary = {
-    attach: function attach() {
-      $('#edit-editor-settings-plugins-language').drupalSetSummary(function (context) {
-        var $selected = $('#edit-editor-settings-plugins-language-language-list-type option:selected');
-
-        if ($selected.length) {
-          return $selected[0].textContent;
-        }
-
-        return '';
-      });
-    }
-  };
-})(jQuery, Drupal);
\ No newline at end of file
diff --git a/web/modules/ckeditor/js/ckeditor.off-canvas-css-reset.es6.js b/web/modules/ckeditor/js/ckeditor.off-canvas-css-reset.es6.js
deleted file mode 100644
index 0ccc378bda709d00bb264ee8279c310a431acba4..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/js/ckeditor.off-canvas-css-reset.es6.js
+++ /dev/null
@@ -1,112 +0,0 @@
-/**
- * @file
- * Provides styles for CKEditor inside off-canvas dialogs.
- */
-
-(($, CKEDITOR) => {
-  /**
-   * Takes a string of CKEditor CSS and modifies it for use in off-canvas.
-   *
-   * @param {string} originalCss
-   *   The CSS rules from CKEditor.
-   * @return {string}
-   *   The rules from originalCss with extra specificity for off-canvas.
-   */
-  const convertToOffCanvasCss = (originalCss) => {
-    const selectorPrefix = '#drupal-off-canvas ';
-    const skinPath = `${CKEDITOR.basePath}${CKEDITOR.skinName}/`;
-    const css = originalCss
-      .substring(originalCss.indexOf('*/') + 2)
-      .trim()
-      .replace(/}/g, `}${selectorPrefix}`)
-      .replace(/,/g, `,${selectorPrefix}`)
-      .replace(/url\(/g, skinPath);
-    return `${selectorPrefix}${css}`;
-  };
-
-  /**
-   * Inserts CSS rules into DOM.
-   *
-   * @param {string} cssToInsert
-   *   CSS rules to be inserted
-   */
-  const insertCss = (cssToInsert) => {
-    const offCanvasCss = document.createElement('style');
-    offCanvasCss.innerHTML = cssToInsert;
-    offCanvasCss.setAttribute('id', 'ckeditor-off-canvas-reset');
-    document.body.appendChild(offCanvasCss);
-  };
-
-  /**
-   * Adds CSS so CKEditor is styled properly in off-canvas.
-   */
-  const addCkeditorOffCanvasCss = () => {
-    // If #ckeditor-off-canvas-reset exists, this has already run.
-    if (document.getElementById('ckeditor-off-canvas-reset')) {
-      return;
-    }
-    // CKEDITOR.skin.getPath() requires the CKEDITOR.skinName property.
-    // @see https://stackoverflow.com/a/17336982
-    CKEDITOR.skinName = CKEDITOR.skin.name;
-
-    // Get the paths to the css CKEditor is using.
-    const editorCssPath = CKEDITOR.skin.getPath('editor');
-    const dialogCssPath = CKEDITOR.skin.getPath('dialog');
-
-    // The key for cached CSS in localStorage is based on the CSS paths.
-    const storedOffCanvasCss = window.localStorage.getItem(
-      `Drupal.off-canvas.css.${editorCssPath}${dialogCssPath}`,
-    );
-
-    // See if CSS is cached in localStorage, and use that when available.
-    if (storedOffCanvasCss) {
-      insertCss(storedOffCanvasCss);
-      return;
-    }
-
-    // If CSS unavailable in localStorage, get the files via AJAX and parse.
-    $.when($.get(editorCssPath), $.get(dialogCssPath)).done(
-      (editorCss, dialogCss) => {
-        const offCanvasEditorCss = convertToOffCanvasCss(editorCss[0]);
-        const offCanvasDialogCss = convertToOffCanvasCss(dialogCss[0]);
-        const cssToInsert = `#drupal-off-canvas .cke_inner * {background: transparent;}
-          ${offCanvasEditorCss}
-          ${offCanvasDialogCss}`;
-        insertCss(cssToInsert);
-
-        // The localStorage key for accessing the cached CSS is based on the
-        // paths of the CKEditor CSS files. This prevents localStorage from
-        // providing outdated CSS. If new files are used due to using a new
-        // skin, a new localStorage key is created.
-        //
-        // The CSS paths also include the cache-busting query string that is
-        // stored in state and CKEDITOR.timestamp. This query string changes on
-        // update and cache clear  and prevents localStorage from providing
-        // stale CKEditor CSS.
-        //
-        // Before adding the CSS rules to localStorage, there is a check that
-        // confirms the cache-busting query (CKEDITOR.timestamp) is in the CSS
-        // paths. This prevents localStorage from caching something unbustable.
-        //
-        // @see ckeditor_library_info_alter()
-        if (
-          CKEDITOR.timestamp &&
-          editorCssPath.indexOf(CKEDITOR.timestamp) !== -1 &&
-          dialogCssPath.indexOf(CKEDITOR.timestamp) !== -1
-        ) {
-          Object.keys(window.localStorage).forEach((key) => {
-            if (key.indexOf('Drupal.off-canvas.css.') === 0) {
-              window.localStorage.removeItem(key);
-            }
-          });
-          window.localStorage.setItem(
-            `Drupal.off-canvas.css.${editorCssPath}${dialogCssPath}`,
-            cssToInsert,
-          );
-        }
-      },
-    );
-  };
-
-  addCkeditorOffCanvasCss();
-})(jQuery, CKEDITOR);
diff --git a/web/modules/ckeditor/js/ckeditor.off-canvas-css-reset.js b/web/modules/ckeditor/js/ckeditor.off-canvas-css-reset.js
deleted file mode 100644
index e278cd634cc30be9818e6e19987285574232933f..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/js/ckeditor.off-canvas-css-reset.js
+++ /dev/null
@@ -1,56 +0,0 @@
-/**
-* DO NOT EDIT THIS FILE.
-* See the following change record for more information,
-* https://www.drupal.org/node/2815083
-* @preserve
-**/
-
-(function ($, CKEDITOR) {
-  var convertToOffCanvasCss = function convertToOffCanvasCss(originalCss) {
-    var selectorPrefix = '#drupal-off-canvas ';
-    var skinPath = "".concat(CKEDITOR.basePath).concat(CKEDITOR.skinName, "/");
-    var css = originalCss.substring(originalCss.indexOf('*/') + 2).trim().replace(/}/g, "}".concat(selectorPrefix)).replace(/,/g, ",".concat(selectorPrefix)).replace(/url\(/g, skinPath);
-    return "".concat(selectorPrefix).concat(css);
-  };
-
-  var insertCss = function insertCss(cssToInsert) {
-    var offCanvasCss = document.createElement('style');
-    offCanvasCss.innerHTML = cssToInsert;
-    offCanvasCss.setAttribute('id', 'ckeditor-off-canvas-reset');
-    document.body.appendChild(offCanvasCss);
-  };
-
-  var addCkeditorOffCanvasCss = function addCkeditorOffCanvasCss() {
-    if (document.getElementById('ckeditor-off-canvas-reset')) {
-      return;
-    }
-
-    CKEDITOR.skinName = CKEDITOR.skin.name;
-    var editorCssPath = CKEDITOR.skin.getPath('editor');
-    var dialogCssPath = CKEDITOR.skin.getPath('dialog');
-    var storedOffCanvasCss = window.localStorage.getItem("Drupal.off-canvas.css.".concat(editorCssPath).concat(dialogCssPath));
-
-    if (storedOffCanvasCss) {
-      insertCss(storedOffCanvasCss);
-      return;
-    }
-
-    $.when($.get(editorCssPath), $.get(dialogCssPath)).done(function (editorCss, dialogCss) {
-      var offCanvasEditorCss = convertToOffCanvasCss(editorCss[0]);
-      var offCanvasDialogCss = convertToOffCanvasCss(dialogCss[0]);
-      var cssToInsert = "#drupal-off-canvas .cke_inner * {background: transparent;}\n          ".concat(offCanvasEditorCss, "\n          ").concat(offCanvasDialogCss);
-      insertCss(cssToInsert);
-
-      if (CKEDITOR.timestamp && editorCssPath.indexOf(CKEDITOR.timestamp) !== -1 && dialogCssPath.indexOf(CKEDITOR.timestamp) !== -1) {
-        Object.keys(window.localStorage).forEach(function (key) {
-          if (key.indexOf('Drupal.off-canvas.css.') === 0) {
-            window.localStorage.removeItem(key);
-          }
-        });
-        window.localStorage.setItem("Drupal.off-canvas.css.".concat(editorCssPath).concat(dialogCssPath), cssToInsert);
-      }
-    });
-  };
-
-  addCkeditorOffCanvasCss();
-})(jQuery, CKEDITOR);
\ No newline at end of file
diff --git a/web/modules/ckeditor/js/ckeditor.stylescombo.admin.es6.js b/web/modules/ckeditor/js/ckeditor.stylescombo.admin.es6.js
deleted file mode 100644
index 6717a65433ea7d702d2ba131fb0f3fba7850e327..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/js/ckeditor.stylescombo.admin.es6.js
+++ /dev/null
@@ -1,134 +0,0 @@
-/**
- * @file
- * CKEditor StylesCombo admin behavior.
- */
-
-(function ($, Drupal, drupalSettings, _) {
-  /**
-   * Ensures that the "stylescombo" button's metadata remains up-to-date.
-   *
-   * Triggers the CKEditorPluginSettingsChanged event whenever the "stylescombo"
-   * plugin settings change, to ensure that the corresponding feature metadata
-   * is immediately updated — i.e. ensure that HTML tags and classes entered
-   * here are known to be "required", which may affect filter settings.
-   *
-   * @type {Drupal~behavior}
-   *
-   * @prop {Drupal~behaviorAttach} attach
-   *   Attaches admin behavior to the "stylescombo" button.
-   */
-  Drupal.behaviors.ckeditorStylesComboSettings = {
-    attach(context) {
-      const $context = $(context);
-
-      // React to changes in the list of user-defined styles: calculate the new
-      // stylesSet setting up to 2 times per second, and if it is different,
-      // fire the CKEditorPluginSettingsChanged event with the updated parts of
-      // the CKEditor configuration. (This will, in turn, cause the hidden
-      // CKEditor instance to be updated and a drupalEditorFeatureModified event
-      // to fire.)
-      const $ckeditorActiveToolbar = $context
-        .find('.ckeditor-toolbar-configuration')
-        .find('.ckeditor-toolbar-active');
-      let previousStylesSet =
-        drupalSettings.ckeditor.hiddenCKEditorConfig.stylesSet;
-      const that = this;
-      $context
-        .find('[name="editor[settings][plugins][stylescombo][styles]"]')
-        .on('blur.ckeditorStylesComboSettings', function () {
-          const styles = this.value.trim();
-          const stylesSet = that._generateStylesSetSetting(styles);
-          if (!_.isEqual(previousStylesSet, stylesSet)) {
-            previousStylesSet = stylesSet;
-            $ckeditorActiveToolbar.trigger('CKEditorPluginSettingsChanged', [
-              { stylesSet },
-            ]);
-          }
-        });
-    },
-
-    /**
-     * Builds the "stylesSet" configuration part of the CKEditor JS settings.
-     *
-     * @see \Drupal\ckeditor\Plugin\ckeditor\plugin\StylesCombo::generateStylesSetSetting()
-     *
-     * Note that this is a more forgiving implementation than the PHP version:
-     * the parsing works identically, but instead of failing on invalid styles,
-     * we just ignore those.
-     *
-     * @param {string} styles
-     *   The "styles" setting.
-     *
-     * @return {Array}
-     *   An array containing the "stylesSet" configuration.
-     */
-    _generateStylesSetSetting(styles) {
-      const stylesSet = [];
-
-      styles = styles.replace(/\r/g, '\n');
-      const lines = styles.split('\n');
-      for (let i = 0; i < lines.length; i++) {
-        const style = lines[i].trim();
-
-        // Ignore empty lines in between non-empty lines.
-        if (style.length === 0) {
-          continue;
-        }
-
-        // Validate syntax: element[.class...]|label pattern expected.
-        if (
-          style.match(/^ *[a-zA-Z0-9]+ *(\.[a-zA-Z0-9_-]+ *)*\| *.+ *$/) ===
-          null
-        ) {
-          // Instead of failing, we just ignore any invalid styles.
-          continue;
-        }
-
-        // Parse.
-        const parts = style.split('|');
-        const selector = parts[0];
-        const label = parts[1];
-        const classes = selector.split('.');
-        const element = classes.shift();
-
-        // Build the data structure CKEditor's stylescombo plugin expects.
-        // @see https://ckeditor.com/docs/ckeditor4/latest/guide/dev_howtos_styles.html
-        stylesSet.push({
-          attributes: { class: classes.join(' ') },
-          element,
-          name: label,
-        });
-      }
-
-      return stylesSet;
-    },
-  };
-
-  /**
-   * Provides the summary for the "stylescombo" plugin settings vertical tab.
-   *
-   * @type {Drupal~behavior}
-   *
-   * @prop {Drupal~behaviorAttach} attach
-   *   Attaches summary behavior to the plugin settings vertical tab.
-   */
-  Drupal.behaviors.ckeditorStylesComboSettingsSummary = {
-    attach() {
-      $('[data-ckeditor-plugin-id="stylescombo"]').drupalSetSummary(
-        (context) => {
-          const stylesElement = document.querySelector(
-            '[data-drupal-selector="edit-editor-settings-plugins-stylescombo-styles"]',
-          );
-          const styles = stylesElement ? stylesElement.value.trim() : '';
-
-          if (styles.length === 0) {
-            return Drupal.t('No styles configured');
-          }
-
-          const count = styles.split('\n').length;
-          return Drupal.t('@count styles configured', { '@count': count });
-        },
-      );
-    },
-  };
-})(jQuery, Drupal, drupalSettings, _);
diff --git a/web/modules/ckeditor/js/ckeditor.stylescombo.admin.js b/web/modules/ckeditor/js/ckeditor.stylescombo.admin.js
deleted file mode 100644
index 3eb9cbb1e1000bc76b5905cd2f4ff91a35c4e9b0..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/js/ckeditor.stylescombo.admin.js
+++ /dev/null
@@ -1,78 +0,0 @@
-/**
-* DO NOT EDIT THIS FILE.
-* See the following change record for more information,
-* https://www.drupal.org/node/2815083
-* @preserve
-**/
-
-(function ($, Drupal, drupalSettings, _) {
-  Drupal.behaviors.ckeditorStylesComboSettings = {
-    attach: function attach(context) {
-      var $context = $(context);
-      var $ckeditorActiveToolbar = $context.find('.ckeditor-toolbar-configuration').find('.ckeditor-toolbar-active');
-      var previousStylesSet = drupalSettings.ckeditor.hiddenCKEditorConfig.stylesSet;
-      var that = this;
-      $context.find('[name="editor[settings][plugins][stylescombo][styles]"]').on('blur.ckeditorStylesComboSettings', function () {
-        var styles = this.value.trim();
-
-        var stylesSet = that._generateStylesSetSetting(styles);
-
-        if (!_.isEqual(previousStylesSet, stylesSet)) {
-          previousStylesSet = stylesSet;
-          $ckeditorActiveToolbar.trigger('CKEditorPluginSettingsChanged', [{
-            stylesSet: stylesSet
-          }]);
-        }
-      });
-    },
-    _generateStylesSetSetting: function _generateStylesSetSetting(styles) {
-      var stylesSet = [];
-      styles = styles.replace(/\r/g, '\n');
-      var lines = styles.split('\n');
-
-      for (var i = 0; i < lines.length; i++) {
-        var style = lines[i].trim();
-
-        if (style.length === 0) {
-          continue;
-        }
-
-        if (style.match(/^ *[a-zA-Z0-9]+ *(\.[a-zA-Z0-9_-]+ *)*\| *.+ *$/) === null) {
-          continue;
-        }
-
-        var parts = style.split('|');
-        var selector = parts[0];
-        var label = parts[1];
-        var classes = selector.split('.');
-        var element = classes.shift();
-        stylesSet.push({
-          attributes: {
-            class: classes.join(' ')
-          },
-          element: element,
-          name: label
-        });
-      }
-
-      return stylesSet;
-    }
-  };
-  Drupal.behaviors.ckeditorStylesComboSettingsSummary = {
-    attach: function attach() {
-      $('[data-ckeditor-plugin-id="stylescombo"]').drupalSetSummary(function (context) {
-        var stylesElement = document.querySelector('[data-drupal-selector="edit-editor-settings-plugins-stylescombo-styles"]');
-        var styles = stylesElement ? stylesElement.value.trim() : '';
-
-        if (styles.length === 0) {
-          return Drupal.t('No styles configured');
-        }
-
-        var count = styles.split('\n').length;
-        return Drupal.t('@count styles configured', {
-          '@count': count
-        });
-      });
-    }
-  };
-})(jQuery, Drupal, drupalSettings, _);
\ No newline at end of file
diff --git a/web/modules/ckeditor/js/models/Model.es6.js b/web/modules/ckeditor/js/models/Model.es6.js
deleted file mode 100644
index 08aaf7f7eb9dfac12f7495e28103be397f336f75..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/js/models/Model.es6.js
+++ /dev/null
@@ -1,73 +0,0 @@
-/**
- * @file
- * A Backbone Model for the state of a CKEditor toolbar configuration .
- */
-
-(function (Drupal, Backbone) {
-  /**
-   * Backbone model for the CKEditor toolbar configuration state.
-   *
-   * @constructor
-   *
-   * @augments Backbone.Model
-   */
-  Drupal.ckeditor.Model = Backbone.Model.extend(
-    /** @lends Drupal.ckeditor.Model# */ {
-      /**
-       * Default values.
-       *
-       * @type {object}
-       */
-      defaults: /** @lends Drupal.ckeditor.Model# */ {
-        /**
-         * The CKEditor configuration that is being manipulated through the UI.
-         */
-        activeEditorConfig: null,
-
-        /**
-         * The textarea that contains the serialized representation of the active
-         * CKEditor configuration.
-         */
-        $textarea: null,
-
-        /**
-         * Tracks whether the active toolbar DOM structure has been changed. When
-         * true, activeEditorConfig needs to be updated, and when that is updated,
-         * $textarea will also be updated.
-         */
-        isDirty: false,
-
-        /**
-         * The configuration for the hidden CKEditor instance that is used to
-         * build the features metadata.
-         */
-        hiddenEditorConfig: null,
-
-        /**
-         * A hash that maps buttons to features.
-         */
-        buttonsToFeatures: null,
-
-        /**
-         * A hash, keyed by a feature name, that details CKEditor plugin features.
-         */
-        featuresMetadata: null,
-
-        /**
-         * Whether the button group names are currently visible.
-         */
-        groupNamesVisible: false,
-      },
-
-      /**
-       * @method
-       */
-      sync() {
-        // Push the settings into the textarea.
-        this.get('$textarea').val(
-          JSON.stringify(this.get('activeEditorConfig')),
-        );
-      },
-    },
-  );
-})(Drupal, Backbone);
diff --git a/web/modules/ckeditor/js/models/Model.js b/web/modules/ckeditor/js/models/Model.js
deleted file mode 100644
index c38c580d7766258a1e5e7e4977e16be71919ca3d..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/js/models/Model.js
+++ /dev/null
@@ -1,23 +0,0 @@
-/**
-* DO NOT EDIT THIS FILE.
-* See the following change record for more information,
-* https://www.drupal.org/node/2815083
-* @preserve
-**/
-
-(function (Drupal, Backbone) {
-  Drupal.ckeditor.Model = Backbone.Model.extend({
-    defaults: {
-      activeEditorConfig: null,
-      $textarea: null,
-      isDirty: false,
-      hiddenEditorConfig: null,
-      buttonsToFeatures: null,
-      featuresMetadata: null,
-      groupNamesVisible: false
-    },
-    sync: function sync() {
-      this.get('$textarea').val(JSON.stringify(this.get('activeEditorConfig')));
-    }
-  });
-})(Drupal, Backbone);
\ No newline at end of file
diff --git a/web/modules/ckeditor/js/plugins/drupalimage/icons/drupalimage.png b/web/modules/ckeditor/js/plugins/drupalimage/icons/drupalimage.png
deleted file mode 100644
index 83cd553d9bb820362594b507b52d12129efe8608..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/js/plugins/drupalimage/icons/drupalimage.png
+++ /dev/null
@@ -1,7 +0,0 @@
-�PNG
-
-���
IHDR���������(-S����PLTE������������������������������������������������ZZZ```
-
-
-������			������&&&���"""###%%%)))***---666888999;;;<<<>>>@@@AAABBBDDDGGGIIIJJJKKKLLLNNNOOOPPPQQQRRRUUUYYYw����� tRNS�
-!*LPU`tv~�������������������=K����IDAT��W�`���W���*�2KV���G��]y�O����H�jZ��e��3��b��O��
��xt@�+��&0R����Պ��X{]Of���b�pٻy���t<og��۸��u۶WC@C׾=t�)�7O�Sw:z����IEND�B`�
\ No newline at end of file
diff --git a/web/modules/ckeditor/js/plugins/drupalimage/icons/hidpi/drupalimage.png b/web/modules/ckeditor/js/plugins/drupalimage/icons/hidpi/drupalimage.png
deleted file mode 100644
index 63e115dfdb08d60ab2e7f1d29aea7830f2d66dab..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/js/plugins/drupalimage/icons/hidpi/drupalimage.png
+++ /dev/null
@@ -1,8 +0,0 @@
-�PNG
-
-���
IHDR��� ��� ���szz���NIDATx^�WQL[e>��m��--k��딍V�N愕	[ η�a�fK|�ك��,1���f��ی:��a�.[fⓏ�A1��Y��F��m{=�ퟛ�4�HV������o�w�w����u|��Oب��#���u�+���(��*)L^cz���N�E*�Jd�����fÙZ���Mz�������"��P�vO��W�f��^��3g��ȱg�t	���OȚ2�v:��Jgʑ��m؁,kk���~�w��98>2R*9'��ѩ�E���S�p��<����l6�ܾ-J�BөSv"z�G�����W��kY)�P ����۩5 �f+�KX���1�pz���Z���\���"�癙����SS8|=+��vۮ���C��5���@��t��QR�T*E,,���\��;����mw�� f������V�Dؙ��X��Ɏ��*x,
-��L$�X__�t:��w�jdـ;���lV�[
(<T�̐k�Y+�	�M!#���L�>�?q�����Y<cm����*rK�mh@�a�k2ZOU
-L���q#b\~�…�y���4)�ݎ�RE�s�)
-���}���蓓����HYV�T�T���6��Rn�+��X��U�#�P8L��;�
'��hD$�����g�����5P��6�/�4l��-s����iט��C�G��"�Foj���boh�ztx8��n�xy�cV�7}z���G��.O�.(����%ƙus�#za�~��b�Q���G
-`�F��LeB�׶����a�7�%������.�EQ�	�3�@��9M&��<γ�K�KK���`� �q���<8�gG�,7���1�J5w��kP����hŢY�Je� y�<l�����Ⱦ}O�N�/,��@{;=Ϥm�P���DOO��/^��M���B�^O�ѧ���Ð_���Ox������X:��Wx��o��'��'D<�����’hm���xn�����@^q��p���$��������(� ՖV,X`rHo�\3.
9g+�U(��%��\$r��A�w�y.ʑ����"�+!��o(���j�����*�e�幗��N�lK�P���cG�{���c����	����4)�v�^GG���G-�HH�l�PP�p����b�s]��ʁ��9�ىg���T+a��F$��=N'�]�@`"���*��Pf��<%��İ6��Q|��Roww\��_#���#'J�g� �W����7^���,�k�ן56p��׆\�<��l��ܻu�ʳF�����8�M�7o�܍��2�	n���o�6�	nn6����'���k
-�z�����.+�B^c'�y�H}��������IEND�B`�
\ No newline at end of file
diff --git a/web/modules/ckeditor/js/plugins/drupalimage/plugin.es6.js b/web/modules/ckeditor/js/plugins/drupalimage/plugin.es6.js
deleted file mode 100644
index fda04cbff42eb950ce67e70e5a2227e5440b5a04..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/js/plugins/drupalimage/plugin.es6.js
+++ /dev/null
@@ -1,400 +0,0 @@
-/**
- * @file
- * Drupal Image plugin.
- *
- * This alters the existing CKEditor image2 widget plugin to:
- * - require a data-entity-type and a data-entity-uuid attribute (which Drupal
- *   uses to track where images are being used)
- * - use a Drupal-native dialog (that is in fact just an alterable Drupal form
- *   like any other) instead of CKEditor's own dialogs.
- *
- * @see \Drupal\editor\Form\EditorImageDialog
- *
- * @ignore
- */
-
-(function ($, Drupal, CKEDITOR) {
-  /**
-   * Gets the focused widget, if of the type specific for this plugin.
-   *
-   * @param {CKEDITOR.editor} editor
-   *   A CKEditor instance.
-   *
-   * @return {?CKEDITOR.plugins.widget}
-   *   The focused image2 widget instance, or null.
-   */
-  function getFocusedWidget(editor) {
-    const widget = editor.widgets.focused;
-
-    if (widget && widget.name === 'image') {
-      return widget;
-    }
-
-    return null;
-  }
-
-  /**
-   * Integrates the drupalimage widget with the drupallink plugin.
-   *
-   * Makes images linkable.
-   *
-   * @param {CKEDITOR.editor} editor
-   *   A CKEditor instance.
-   */
-  function linkCommandIntegrator(editor) {
-    // Nothing to integrate with if the drupallink plugin is not loaded.
-    if (!editor.plugins.drupallink) {
-      return;
-    }
-
-    CKEDITOR.plugins.drupallink.registerLinkableWidget('image');
-
-    // Override default behavior of 'drupalunlink' command.
-    editor.getCommand('drupalunlink').on('exec', function (evt) {
-      const widget = getFocusedWidget(editor);
-
-      // Override 'drupalunlink' only when link truly belongs to the widget. If
-      // wrapped inline widget in a link, let default unlink work.
-      // @see https://dev.ckeditor.com/ticket/11814
-      if (!widget || !widget.parts.link) {
-        return;
-      }
-
-      widget.setData('link', null);
-
-      // Selection (which is fake) may not change if unlinked image in focused
-      // widget, i.e. if captioned image. Let's refresh command state manually
-      // here.
-      this.refresh(editor, editor.elementPath());
-
-      evt.cancel();
-    });
-
-    // Override default refresh of 'drupalunlink' command.
-    editor.getCommand('drupalunlink').on('refresh', function (evt) {
-      const widget = getFocusedWidget(editor);
-
-      if (!widget) {
-        return;
-      }
-
-      // Note that widget may be wrapped in a link, which
-      // does not belong to that widget (#11814).
-      this.setState(
-        widget.data.link || widget.wrapper.getAscendant('a')
-          ? CKEDITOR.TRISTATE_OFF
-          : CKEDITOR.TRISTATE_DISABLED,
-      );
-
-      evt.cancel();
-    });
-  }
-
-  CKEDITOR.plugins.add('drupalimage', {
-    requires: 'image2',
-    icons: 'drupalimage',
-    hidpi: true,
-
-    beforeInit(editor) {
-      // Override the image2 widget definition to require and handle the
-      // additional data-entity-type and data-entity-uuid attributes.
-      editor.on('widgetDefinition', (event) => {
-        const widgetDefinition = event.data;
-        if (widgetDefinition.name !== 'image') {
-          return;
-        }
-
-        // First, convert requiredContent & allowedContent from the string
-        // format that image2 uses for both to formats that are better suited
-        // for extending, so that both this basic drupalimage plugin and Drupal
-        // modules can easily extend it.
-        // @see http://docs.ckeditor.com/#!/api/CKEDITOR.filter.allowedContentRules
-        // Mapped from image2's allowedContent. Unlike image2, we don't allow
-        // <figure>, <figcaption>, <div> or <p>  in our downcast, so we omit
-        // those. For the <img> tag, we list all attributes it lists, but omit
-        // the classes, because the listed classes are for alignment, and for
-        // alignment we use the data-align attribute.
-        widgetDefinition.allowedContent = {
-          img: {
-            attributes: {
-              '!src': true,
-              '!alt': true,
-              width: true,
-              height: true,
-            },
-            classes: {},
-          },
-        };
-        // Mapped from image2's requiredContent: "img[src,alt]". This does not
-        // use the object format unlike above, but a CKEDITOR.style instance,
-        // because requiredContent does not support the object format.
-        // @see https://www.drupal.org/node/2585173#comment-10456981
-        widgetDefinition.requiredContent = new CKEDITOR.style({
-          element: 'img',
-          attributes: {
-            src: '',
-            alt: '',
-          },
-        });
-
-        // Extend requiredContent & allowedContent.
-        // CKEDITOR.style is an immutable object: we cannot modify its
-        // definition to extend requiredContent. Hence we get the definition,
-        // modify it, and pass it to a new CKEDITOR.style instance.
-        const requiredContent =
-          widgetDefinition.requiredContent.getDefinition();
-        requiredContent.attributes['data-entity-type'] = '';
-        requiredContent.attributes['data-entity-uuid'] = '';
-        widgetDefinition.requiredContent = new CKEDITOR.style(requiredContent);
-        widgetDefinition.allowedContent.img.attributes[
-          '!data-entity-type'
-        ] = true;
-        widgetDefinition.allowedContent.img.attributes[
-          '!data-entity-uuid'
-        ] = true;
-
-        // Override downcast(): since we only accept <img> in our upcast method,
-        // the element is already correct. We only need to update the element's
-        // data-entity-uuid attribute.
-        widgetDefinition.downcast = function (element) {
-          element.attributes['data-entity-type'] =
-            this.data['data-entity-type'];
-          element.attributes['data-entity-uuid'] =
-            this.data['data-entity-uuid'];
-        };
-
-        // We want to upcast <img> elements to a DOM structure required by the
-        // image2 widget; we only accept an <img> tag, and that <img> tag MAY
-        // have a data-entity-type and a data-entity-uuid attribute.
-        widgetDefinition.upcast = function (element, data) {
-          if (element.name !== 'img') {
-            return;
-          }
-          // Don't initialize on pasted fake objects.
-          if (element.attributes['data-cke-realelement']) {
-            return;
-          }
-
-          // Parse the data-entity-type attribute.
-          data['data-entity-type'] = element.attributes['data-entity-type'];
-          // Parse the data-entity-uuid attribute.
-          data['data-entity-uuid'] = element.attributes['data-entity-uuid'];
-
-          return element;
-        };
-
-        // Overrides default implementation. Used to populate the "classes"
-        // property of the widget's "data" property, which is used for the
-        // "widget styles" functionality
-        // (http://docs.ckeditor.com/#!/guide/dev_styles-section-widget-styles).
-        // Is applied to whatever the main element of the widget is (<figure> or
-        // <img>). The classes in image2_captionedClass are always added due to
-        // a bug in CKEditor. In the case of drupalimage, we don't ever want to
-        // add that class, because the widget template already contains it.
-        // @see http://dev.ckeditor.com/ticket/13888
-        // @see https://www.drupal.org/node/2268941
-        const originalGetClasses = widgetDefinition.getClasses;
-        widgetDefinition.getClasses = function () {
-          const classes = originalGetClasses.call(this);
-          const captionedClasses = (
-            this.editor.config.image2_captionedClass || ''
-          ).split(/\s+/);
-
-          if (captionedClasses.length && classes) {
-            for (let i = 0; i < captionedClasses.length; i++) {
-              if (captionedClasses[i] in classes) {
-                delete classes[captionedClasses[i]];
-              }
-            }
-          }
-
-          return classes;
-        };
-
-        // Protected; keys of the widget data to be sent to the Drupal dialog.
-        // Keys in the hash are the keys for image2's data, values are the keys
-        // that the Drupal dialog uses.
-        widgetDefinition._mapDataToDialog = {
-          src: 'src',
-          alt: 'alt',
-          width: 'width',
-          height: 'height',
-          'data-entity-type': 'data-entity-type',
-          'data-entity-uuid': 'data-entity-uuid',
-        };
-
-        // Protected; transforms widget's data object to the format used by the
-        // \Drupal\editor\Form\EditorImageDialog dialog, keeping only the data
-        // listed in widgetDefinition._dataForDialog.
-        widgetDefinition._dataToDialogValues = function (data) {
-          const dialogValues = {};
-          const map = widgetDefinition._mapDataToDialog;
-          Object.keys(widgetDefinition._mapDataToDialog).forEach((key) => {
-            dialogValues[map[key]] = data[key];
-          });
-          return dialogValues;
-        };
-
-        // Protected; the inverse of _dataToDialogValues.
-        widgetDefinition._dialogValuesToData = function (dialogReturnValues) {
-          const data = {};
-          const map = widgetDefinition._mapDataToDialog;
-          Object.keys(widgetDefinition._mapDataToDialog).forEach((key) => {
-            if (dialogReturnValues.hasOwnProperty(map[key])) {
-              data[key] = dialogReturnValues[map[key]];
-            }
-          });
-          return data;
-        };
-
-        // Protected; creates Drupal dialog save callback.
-        widgetDefinition._createDialogSaveCallback = function (editor, widget) {
-          return function (dialogReturnValues) {
-            const firstEdit = !widget.ready;
-
-            // Dialog may have blurred the widget. Re-focus it first.
-            if (!firstEdit) {
-              widget.focus();
-            }
-
-            editor.fire('saveSnapshot');
-
-            // Pass `true` so DocumentFragment will also be returned.
-            const container = widget.wrapper.getParent(true);
-            const image = widget.parts.image;
-
-            // Set the updated widget data, after the necessary conversions from
-            // the dialog's return values.
-            // Note: on widget#setData this widget instance might be destroyed.
-            const data = widgetDefinition._dialogValuesToData(
-              dialogReturnValues.attributes,
-            );
-            widget.setData(data);
-
-            // Retrieve the widget once again. It could've been destroyed
-            // when shifting state, so might deal with a new instance.
-            widget = editor.widgets.getByElement(image);
-
-            // It's first edit, just after widget instance creation, but before
-            // it was inserted into DOM. So we need to retrieve the widget
-            // wrapper from inside the DocumentFragment which we cached above
-            // and finalize other things (like ready event and flag).
-            if (firstEdit) {
-              editor.widgets.finalizeCreation(container);
-            }
-
-            setTimeout(() => {
-              // (Re-)focus the widget.
-              widget.focus();
-              // Save snapshot for undo support.
-              editor.fire('saveSnapshot');
-            });
-
-            return widget;
-          };
-        };
-
-        const originalInit = widgetDefinition.init;
-        widgetDefinition.init = function () {
-          originalInit.call(this);
-
-          // Update data.link object with attributes if the link has been
-          // discovered.
-          // @see plugins/image2/plugin.js/init() in CKEditor; this is similar.
-          if (this.parts.link) {
-            this.setData(
-              'link',
-              CKEDITOR.plugins.image2.getLinkAttributesParser()(
-                editor,
-                this.parts.link,
-              ),
-            );
-          }
-        };
-      });
-
-      // Add a widget#edit listener to every instance of image2 widget in order
-      // to handle its editing with a Drupal-native dialog.
-      // This includes also a case just after the image was created
-      // and dialog should be opened for it for the first time.
-      editor.widgets.on('instanceCreated', (event) => {
-        const widget = event.data;
-
-        if (widget.name !== 'image') {
-          return;
-        }
-
-        widget.on('edit', (event) => {
-          // Cancel edit event to break image2's dialog binding
-          // (and also to prevent automatic insertion before opening dialog).
-          event.cancel();
-
-          // Open drupalimage dialog.
-          editor.execCommand('editdrupalimage', {
-            existingValues: widget.definition._dataToDialogValues(widget.data),
-            saveCallback: widget.definition._createDialogSaveCallback(
-              editor,
-              widget,
-            ),
-            // Drupal.t() will not work inside CKEditor plugins because CKEditor
-            // loads the JavaScript file instead of Drupal. Pull translated
-            // strings from the plugin settings that are translated server-side.
-            dialogTitle: widget.data.src
-              ? editor.config.drupalImage_dialogTitleEdit
-              : editor.config.drupalImage_dialogTitleAdd,
-          });
-        });
-      });
-
-      // Register the "editdrupalimage" command, which essentially just replaces
-      // the "image" command's CKEditor dialog with a Drupal-native dialog.
-      editor.addCommand('editdrupalimage', {
-        allowedContent:
-          'img[alt,!src,width,height,!data-entity-type,!data-entity-uuid]',
-        requiredContent: 'img[alt,src,data-entity-type,data-entity-uuid]',
-        modes: { wysiwyg: 1 },
-        canUndo: true,
-        exec(editor, data) {
-          const dialogSettings = {
-            title: data.dialogTitle,
-            dialogClass: 'editor-image-dialog',
-          };
-          Drupal.ckeditor.openDialog(
-            editor,
-            Drupal.url(`editor/dialog/image/${editor.config.drupal.format}`),
-            data.existingValues,
-            data.saveCallback,
-            dialogSettings,
-          );
-        },
-      });
-
-      // Register the toolbar button.
-      if (editor.ui.addButton) {
-        editor.ui.addButton('DrupalImage', {
-          label: Drupal.t('Image'),
-          // Note that we use the original image2 command!
-          command: 'image',
-        });
-      }
-    },
-
-    afterInit(editor) {
-      linkCommandIntegrator(editor);
-    },
-  });
-
-  // Override image2's integration with the official CKEditor link plugin:
-  // integrate with the drupallink plugin instead.
-  CKEDITOR.plugins.image2.getLinkAttributesParser = function () {
-    return CKEDITOR.plugins.drupallink.parseLinkAttributes;
-  };
-  CKEDITOR.plugins.image2.getLinkAttributesGetter = function () {
-    return CKEDITOR.plugins.drupallink.getLinkAttributes;
-  };
-
-  // Expose an API for other plugins to interact with drupalimage widgets.
-  CKEDITOR.plugins.drupalimage = {
-    getFocusedWidget,
-  };
-})(jQuery, Drupal, CKEDITOR);
diff --git a/web/modules/ckeditor/js/plugins/drupalimage/plugin.js b/web/modules/ckeditor/js/plugins/drupalimage/plugin.js
deleted file mode 100644
index 34b0cc05197c3e5a75dd91ef85be315367098b9b..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/js/plugins/drupalimage/plugin.js
+++ /dev/null
@@ -1,244 +0,0 @@
-/**
-* DO NOT EDIT THIS FILE.
-* See the following change record for more information,
-* https://www.drupal.org/node/2815083
-* @preserve
-**/
-
-(function ($, Drupal, CKEDITOR) {
-  function getFocusedWidget(editor) {
-    var widget = editor.widgets.focused;
-
-    if (widget && widget.name === 'image') {
-      return widget;
-    }
-
-    return null;
-  }
-
-  function linkCommandIntegrator(editor) {
-    if (!editor.plugins.drupallink) {
-      return;
-    }
-
-    CKEDITOR.plugins.drupallink.registerLinkableWidget('image');
-    editor.getCommand('drupalunlink').on('exec', function (evt) {
-      var widget = getFocusedWidget(editor);
-
-      if (!widget || !widget.parts.link) {
-        return;
-      }
-
-      widget.setData('link', null);
-      this.refresh(editor, editor.elementPath());
-      evt.cancel();
-    });
-    editor.getCommand('drupalunlink').on('refresh', function (evt) {
-      var widget = getFocusedWidget(editor);
-
-      if (!widget) {
-        return;
-      }
-
-      this.setState(widget.data.link || widget.wrapper.getAscendant('a') ? CKEDITOR.TRISTATE_OFF : CKEDITOR.TRISTATE_DISABLED);
-      evt.cancel();
-    });
-  }
-
-  CKEDITOR.plugins.add('drupalimage', {
-    requires: 'image2',
-    icons: 'drupalimage',
-    hidpi: true,
-    beforeInit: function beforeInit(editor) {
-      editor.on('widgetDefinition', function (event) {
-        var widgetDefinition = event.data;
-
-        if (widgetDefinition.name !== 'image') {
-          return;
-        }
-
-        widgetDefinition.allowedContent = {
-          img: {
-            attributes: {
-              '!src': true,
-              '!alt': true,
-              width: true,
-              height: true
-            },
-            classes: {}
-          }
-        };
-        widgetDefinition.requiredContent = new CKEDITOR.style({
-          element: 'img',
-          attributes: {
-            src: '',
-            alt: ''
-          }
-        });
-        var requiredContent = widgetDefinition.requiredContent.getDefinition();
-        requiredContent.attributes['data-entity-type'] = '';
-        requiredContent.attributes['data-entity-uuid'] = '';
-        widgetDefinition.requiredContent = new CKEDITOR.style(requiredContent);
-        widgetDefinition.allowedContent.img.attributes['!data-entity-type'] = true;
-        widgetDefinition.allowedContent.img.attributes['!data-entity-uuid'] = true;
-
-        widgetDefinition.downcast = function (element) {
-          element.attributes['data-entity-type'] = this.data['data-entity-type'];
-          element.attributes['data-entity-uuid'] = this.data['data-entity-uuid'];
-        };
-
-        widgetDefinition.upcast = function (element, data) {
-          if (element.name !== 'img') {
-            return;
-          }
-
-          if (element.attributes['data-cke-realelement']) {
-            return;
-          }
-
-          data['data-entity-type'] = element.attributes['data-entity-type'];
-          data['data-entity-uuid'] = element.attributes['data-entity-uuid'];
-          return element;
-        };
-
-        var originalGetClasses = widgetDefinition.getClasses;
-
-        widgetDefinition.getClasses = function () {
-          var classes = originalGetClasses.call(this);
-          var captionedClasses = (this.editor.config.image2_captionedClass || '').split(/\s+/);
-
-          if (captionedClasses.length && classes) {
-            for (var i = 0; i < captionedClasses.length; i++) {
-              if (captionedClasses[i] in classes) {
-                delete classes[captionedClasses[i]];
-              }
-            }
-          }
-
-          return classes;
-        };
-
-        widgetDefinition._mapDataToDialog = {
-          src: 'src',
-          alt: 'alt',
-          width: 'width',
-          height: 'height',
-          'data-entity-type': 'data-entity-type',
-          'data-entity-uuid': 'data-entity-uuid'
-        };
-
-        widgetDefinition._dataToDialogValues = function (data) {
-          var dialogValues = {};
-          var map = widgetDefinition._mapDataToDialog;
-          Object.keys(widgetDefinition._mapDataToDialog).forEach(function (key) {
-            dialogValues[map[key]] = data[key];
-          });
-          return dialogValues;
-        };
-
-        widgetDefinition._dialogValuesToData = function (dialogReturnValues) {
-          var data = {};
-          var map = widgetDefinition._mapDataToDialog;
-          Object.keys(widgetDefinition._mapDataToDialog).forEach(function (key) {
-            if (dialogReturnValues.hasOwnProperty(map[key])) {
-              data[key] = dialogReturnValues[map[key]];
-            }
-          });
-          return data;
-        };
-
-        widgetDefinition._createDialogSaveCallback = function (editor, widget) {
-          return function (dialogReturnValues) {
-            var firstEdit = !widget.ready;
-
-            if (!firstEdit) {
-              widget.focus();
-            }
-
-            editor.fire('saveSnapshot');
-            var container = widget.wrapper.getParent(true);
-            var image = widget.parts.image;
-
-            var data = widgetDefinition._dialogValuesToData(dialogReturnValues.attributes);
-
-            widget.setData(data);
-            widget = editor.widgets.getByElement(image);
-
-            if (firstEdit) {
-              editor.widgets.finalizeCreation(container);
-            }
-
-            setTimeout(function () {
-              widget.focus();
-              editor.fire('saveSnapshot');
-            });
-            return widget;
-          };
-        };
-
-        var originalInit = widgetDefinition.init;
-
-        widgetDefinition.init = function () {
-          originalInit.call(this);
-
-          if (this.parts.link) {
-            this.setData('link', CKEDITOR.plugins.image2.getLinkAttributesParser()(editor, this.parts.link));
-          }
-        };
-      });
-      editor.widgets.on('instanceCreated', function (event) {
-        var widget = event.data;
-
-        if (widget.name !== 'image') {
-          return;
-        }
-
-        widget.on('edit', function (event) {
-          event.cancel();
-          editor.execCommand('editdrupalimage', {
-            existingValues: widget.definition._dataToDialogValues(widget.data),
-            saveCallback: widget.definition._createDialogSaveCallback(editor, widget),
-            dialogTitle: widget.data.src ? editor.config.drupalImage_dialogTitleEdit : editor.config.drupalImage_dialogTitleAdd
-          });
-        });
-      });
-      editor.addCommand('editdrupalimage', {
-        allowedContent: 'img[alt,!src,width,height,!data-entity-type,!data-entity-uuid]',
-        requiredContent: 'img[alt,src,data-entity-type,data-entity-uuid]',
-        modes: {
-          wysiwyg: 1
-        },
-        canUndo: true,
-        exec: function exec(editor, data) {
-          var dialogSettings = {
-            title: data.dialogTitle,
-            dialogClass: 'editor-image-dialog'
-          };
-          Drupal.ckeditor.openDialog(editor, Drupal.url("editor/dialog/image/".concat(editor.config.drupal.format)), data.existingValues, data.saveCallback, dialogSettings);
-        }
-      });
-
-      if (editor.ui.addButton) {
-        editor.ui.addButton('DrupalImage', {
-          label: Drupal.t('Image'),
-          command: 'image'
-        });
-      }
-    },
-    afterInit: function afterInit(editor) {
-      linkCommandIntegrator(editor);
-    }
-  });
-
-  CKEDITOR.plugins.image2.getLinkAttributesParser = function () {
-    return CKEDITOR.plugins.drupallink.parseLinkAttributes;
-  };
-
-  CKEDITOR.plugins.image2.getLinkAttributesGetter = function () {
-    return CKEDITOR.plugins.drupallink.getLinkAttributes;
-  };
-
-  CKEDITOR.plugins.drupalimage = {
-    getFocusedWidget: getFocusedWidget
-  };
-})(jQuery, Drupal, CKEDITOR);
\ No newline at end of file
diff --git a/web/modules/ckeditor/js/plugins/drupalimagecaption/plugin.es6.js b/web/modules/ckeditor/js/plugins/drupalimagecaption/plugin.es6.js
deleted file mode 100644
index 733e7652129e35c29e88fbc5eb08aa53dc13eddb..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/js/plugins/drupalimagecaption/plugin.es6.js
+++ /dev/null
@@ -1,353 +0,0 @@
-/**
- * @file
- * Drupal Image Caption plugin.
- *
- * This alters the existing CKEditor image2 widget plugin, which is already
- * altered by the Drupal Image plugin, to:
- * - allow for the data-caption and data-align attributes to be set
- * - mimic the upcasting behavior of the caption_filter filter.
- *
- * @ignore
- */
-
-(function (CKEDITOR) {
-  /**
-   * Finds an element by its name.
-   *
-   * Function will check first the passed element itself and then all its
-   * children in DFS order.
-   *
-   * @param {CKEDITOR.htmlParser.element} element
-   *   The element to search.
-   * @param {string} name
-   *   The element name to search for.
-   *
-   * @return {?CKEDITOR.htmlParser.element}
-   *   The found element, or null.
-   */
-  function findElementByName(element, name) {
-    if (element.name === name) {
-      return element;
-    }
-
-    let found = null;
-    element.forEach((el) => {
-      if (el.name === name) {
-        found = el;
-        // Stop here.
-        return false;
-      }
-    }, CKEDITOR.NODE_ELEMENT);
-    return found;
-  }
-
-  CKEDITOR.plugins.add('drupalimagecaption', {
-    requires: 'drupalimage',
-
-    beforeInit(editor) {
-      // Disable default placeholder text that comes with CKEditor's image2
-      // plugin: it has an inferior UX (it requires the user to manually delete
-      // the place holder text).
-      editor.lang.image2.captionPlaceholder = '';
-
-      // Drupal.t() will not work inside CKEditor plugins because CKEditor loads
-      // the JavaScript file instead of Drupal. Pull translated strings from the
-      // plugin settings that are translated server-side.
-      const placeholderText =
-        editor.config.drupalImageCaption_captionPlaceholderText;
-
-      // Override the image2 widget definition to handle the additional
-      // data-align and data-caption attributes.
-      editor.on(
-        'widgetDefinition',
-        (event) => {
-          const widgetDefinition = event.data;
-          if (widgetDefinition.name !== 'image') {
-            return;
-          }
-
-          // Only perform the downcasting/upcasting for to the enabled filters.
-          const captionFilterEnabled =
-            editor.config.drupalImageCaption_captionFilterEnabled;
-          const alignFilterEnabled =
-            editor.config.drupalImageCaption_alignFilterEnabled;
-
-          // Override default features definitions for drupalimagecaption.
-          CKEDITOR.tools.extend(
-            widgetDefinition.features,
-            {
-              caption: {
-                requiredContent: 'img[data-caption]',
-              },
-              align: {
-                requiredContent: 'img[data-align]',
-              },
-            },
-            true,
-          );
-
-          // Extend requiredContent & allowedContent.
-          // CKEDITOR.style is an immutable object: we cannot modify its
-          // definition to extend requiredContent. Hence we get the definition,
-          // modify it, and pass it to a new CKEDITOR.style instance.
-          const requiredContent =
-            widgetDefinition.requiredContent.getDefinition();
-          requiredContent.attributes['data-align'] = '';
-          requiredContent.attributes['data-caption'] = '';
-          widgetDefinition.requiredContent = new CKEDITOR.style(
-            requiredContent,
-          );
-          widgetDefinition.allowedContent.img.attributes['!data-align'] = true;
-          widgetDefinition.allowedContent.img.attributes[
-            '!data-caption'
-          ] = true;
-
-          // Override allowedContent setting for the 'caption' nested editable.
-          // This must match what caption_filter enforces.
-          // @see \Drupal\filter\Plugin\Filter\FilterCaption::process()
-          // @see \Drupal\Component\Utility\Xss::filter()
-          widgetDefinition.editables.caption.allowedContent =
-            'a[!href]; em strong cite code br';
-
-          // Override downcast(): ensure we *only* output <img>, but also ensure
-          // we include the data-entity-type, data-entity-uuid, data-align and
-          // data-caption attributes.
-          const originalDowncast = widgetDefinition.downcast;
-          widgetDefinition.downcast = function (element) {
-            const img = findElementByName(element, 'img');
-            originalDowncast.call(this, img);
-
-            const caption = this.editables.caption;
-            const captionHtml = caption && caption.getData();
-            const attrs = img.attributes;
-
-            if (captionFilterEnabled) {
-              // If image contains a non-empty caption, serialize caption to the
-              // data-caption attribute.
-              if (captionHtml) {
-                attrs['data-caption'] = captionHtml;
-              }
-            }
-            if (alignFilterEnabled) {
-              if (this.data.align !== 'none') {
-                attrs['data-align'] = this.data.align;
-              }
-            }
-
-            // If img is wrapped with a link, we want to return that link.
-            if (img.parent.name === 'a') {
-              return img.parent;
-            }
-
-            return img;
-          };
-
-          // We want to upcast <img> elements to a DOM structure required by the
-          // image2 widget. Depending on a case it may be:
-          //   - just an <img> tag (non-captioned, not-centered image),
-          //   - <img> tag in a paragraph (non-captioned, centered image),
-          //   - <figure> tag (captioned image).
-          // We take the same attributes into account as downcast() does.
-          const originalUpcast = widgetDefinition.upcast;
-          widgetDefinition.upcast = function (element, data) {
-            if (
-              element.name !== 'img' ||
-              !element.attributes['data-entity-type'] ||
-              !element.attributes['data-entity-uuid']
-            ) {
-              return;
-            }
-            // Don't initialize on pasted fake objects.
-            if (element.attributes['data-cke-realelement']) {
-              return;
-            }
-
-            element = originalUpcast.call(this, element, data);
-            const attrs = element.attributes;
-
-            if (element.parent.name === 'a') {
-              element = element.parent;
-            }
-
-            let retElement = element;
-            let caption;
-
-            // We won't need the attributes during editing: we'll use widget.data
-            // to store them (except the caption, which is stored in the DOM).
-            if (captionFilterEnabled) {
-              caption = attrs['data-caption'];
-              delete attrs['data-caption'];
-            }
-            if (alignFilterEnabled) {
-              data.align = attrs['data-align'];
-              delete attrs['data-align'];
-            }
-            data['data-entity-type'] = attrs['data-entity-type'];
-            delete attrs['data-entity-type'];
-            data['data-entity-uuid'] = attrs['data-entity-uuid'];
-            delete attrs['data-entity-uuid'];
-
-            if (captionFilterEnabled) {
-              // Unwrap from <p> wrapper created by HTML parser for a captioned
-              // image. The captioned image will be transformed to <figure>, so we
-              // don't want the <p> anymore.
-              if (element.parent.name === 'p' && caption) {
-                let index = element.getIndex();
-                const splitBefore = index > 0;
-                const splitAfter = index + 1 < element.parent.children.length;
-
-                if (splitBefore) {
-                  element.parent.split(index);
-                }
-                index = element.getIndex();
-                if (splitAfter) {
-                  element.parent.split(index + 1);
-                }
-
-                element.parent.replaceWith(element);
-                retElement = element;
-              }
-
-              // If this image has a caption, create a full <figure> structure.
-              if (caption) {
-                const figure = new CKEDITOR.htmlParser.element('figure');
-                caption = new CKEDITOR.htmlParser.fragment.fromHtml(
-                  caption,
-                  'figcaption',
-                );
-
-                const captionFilter = new CKEDITOR.filter(
-                  widgetDefinition.editables.caption.allowedContent,
-                );
-                captionFilter.applyTo(caption);
-
-                // Use Drupal's data-placeholder attribute to insert a CSS-based,
-                // translation-ready placeholder for empty captions. Note that it
-                // also must to be done for new instances (see
-                // widgetDefinition._createDialogSaveCallback).
-                caption.attributes['data-placeholder'] = placeholderText;
-
-                element.replaceWith(figure);
-                figure.add(element);
-                figure.add(caption);
-                figure.attributes.class = editor.config.image2_captionedClass;
-                retElement = figure;
-              }
-            }
-
-            if (alignFilterEnabled) {
-              // If this image doesn't have a caption (or the caption filter is
-              // disabled), but it is centered, make sure that it's wrapped with
-              // <p>, which will become a part of the widget.
-              if (
-                data.align === 'center' &&
-                (!captionFilterEnabled || !caption)
-              ) {
-                const p = new CKEDITOR.htmlParser.element('p');
-                element.replaceWith(p);
-                p.add(element);
-                // Apply the class for centered images.
-                p.addClass(editor.config.image2_alignClasses[1]);
-                retElement = p;
-              }
-            }
-
-            // Return the upcasted element (<img>, <figure> or <p>).
-            return retElement;
-          };
-
-          // Protected; keys of the widget data to be sent to the Drupal dialog.
-          // Append to the values defined by the drupalimage plugin.
-          // @see core/modules/ckeditor/js/plugins/drupalimage/plugin.js
-          CKEDITOR.tools.extend(widgetDefinition._mapDataToDialog, {
-            align: 'data-align',
-            'data-caption': 'data-caption',
-            hasCaption: 'hasCaption',
-          });
-
-          // Override Drupal dialog save callback.
-          const originalCreateDialogSaveCallback =
-            widgetDefinition._createDialogSaveCallback;
-          widgetDefinition._createDialogSaveCallback = function (
-            editor,
-            widget,
-          ) {
-            const saveCallback = originalCreateDialogSaveCallback.call(
-              this,
-              editor,
-              widget,
-            );
-
-            return function (dialogReturnValues) {
-              // Ensure hasCaption is a boolean. image2 assumes it always works
-              // with booleans; if this is not the case, then
-              // CKEDITOR.plugins.image2.stateShifter() will incorrectly mark
-              // widget.data.hasCaption as "changed" (e.g. when hasCaption === 0
-              // instead of hasCaption === false). This causes image2's "state
-              // shifter" to enter the wrong branch of the algorithm and blow up.
-              dialogReturnValues.attributes.hasCaption =
-                !!dialogReturnValues.attributes.hasCaption;
-
-              const actualWidget = saveCallback(dialogReturnValues);
-
-              // By default, the template of captioned widget has no
-              // data-placeholder attribute. Note that it also must be done when
-              // upcasting existing elements (see widgetDefinition.upcast).
-              if (dialogReturnValues.attributes.hasCaption) {
-                actualWidget.editables.caption.setAttribute(
-                  'data-placeholder',
-                  placeholderText,
-                );
-
-                // Some browsers will add a <br> tag to a newly created DOM
-                // element with no content. Remove this <br> if it is the only
-                // thing in the caption. Our placeholder support requires the
-                // element be entirely empty. See filter-caption.css.
-                const captionElement = actualWidget.editables.caption.$;
-                if (
-                  captionElement.childNodes.length === 1 &&
-                  captionElement.childNodes.item(0).nodeName === 'BR'
-                ) {
-                  captionElement.removeChild(captionElement.childNodes.item(0));
-                }
-              }
-            };
-          };
-          // Low priority to ensure drupalimage's event handler runs first.
-        },
-        null,
-        null,
-        20,
-      );
-    },
-
-    afterInit(editor) {
-      const disableButtonIfOnWidget = function (evt) {
-        const widget = editor.widgets.focused;
-        if (widget && widget.name === 'image') {
-          this.setState(CKEDITOR.TRISTATE_DISABLED);
-          evt.cancel();
-        }
-      };
-
-      // Disable alignment buttons if the align filter is not enabled.
-      if (
-        editor.plugins.justify &&
-        !editor.config.drupalImageCaption_alignFilterEnabled
-      ) {
-        let cmd;
-        const commands = [
-          'justifyleft',
-          'justifycenter',
-          'justifyright',
-          'justifyblock',
-        ];
-        for (let n = 0; n < commands.length; n++) {
-          cmd = editor.getCommand(commands[n]);
-          cmd.contextSensitive = 1;
-          cmd.on('refresh', disableButtonIfOnWidget, null, null, 4);
-        }
-      }
-    },
-  });
-})(CKEDITOR);
diff --git a/web/modules/ckeditor/js/plugins/drupalimagecaption/plugin.js b/web/modules/ckeditor/js/plugins/drupalimagecaption/plugin.js
deleted file mode 100644
index 292f7b85b6e462a0a53e2cabcc0e460c428d500e..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/js/plugins/drupalimagecaption/plugin.js
+++ /dev/null
@@ -1,211 +0,0 @@
-/**
-* DO NOT EDIT THIS FILE.
-* See the following change record for more information,
-* https://www.drupal.org/node/2815083
-* @preserve
-**/
-
-(function (CKEDITOR) {
-  function findElementByName(element, name) {
-    if (element.name === name) {
-      return element;
-    }
-
-    var found = null;
-    element.forEach(function (el) {
-      if (el.name === name) {
-        found = el;
-        return false;
-      }
-    }, CKEDITOR.NODE_ELEMENT);
-    return found;
-  }
-
-  CKEDITOR.plugins.add('drupalimagecaption', {
-    requires: 'drupalimage',
-    beforeInit: function beforeInit(editor) {
-      editor.lang.image2.captionPlaceholder = '';
-      var placeholderText = editor.config.drupalImageCaption_captionPlaceholderText;
-      editor.on('widgetDefinition', function (event) {
-        var widgetDefinition = event.data;
-
-        if (widgetDefinition.name !== 'image') {
-          return;
-        }
-
-        var captionFilterEnabled = editor.config.drupalImageCaption_captionFilterEnabled;
-        var alignFilterEnabled = editor.config.drupalImageCaption_alignFilterEnabled;
-        CKEDITOR.tools.extend(widgetDefinition.features, {
-          caption: {
-            requiredContent: 'img[data-caption]'
-          },
-          align: {
-            requiredContent: 'img[data-align]'
-          }
-        }, true);
-        var requiredContent = widgetDefinition.requiredContent.getDefinition();
-        requiredContent.attributes['data-align'] = '';
-        requiredContent.attributes['data-caption'] = '';
-        widgetDefinition.requiredContent = new CKEDITOR.style(requiredContent);
-        widgetDefinition.allowedContent.img.attributes['!data-align'] = true;
-        widgetDefinition.allowedContent.img.attributes['!data-caption'] = true;
-        widgetDefinition.editables.caption.allowedContent = 'a[!href]; em strong cite code br';
-        var originalDowncast = widgetDefinition.downcast;
-
-        widgetDefinition.downcast = function (element) {
-          var img = findElementByName(element, 'img');
-          originalDowncast.call(this, img);
-          var caption = this.editables.caption;
-          var captionHtml = caption && caption.getData();
-          var attrs = img.attributes;
-
-          if (captionFilterEnabled) {
-            if (captionHtml) {
-              attrs['data-caption'] = captionHtml;
-            }
-          }
-
-          if (alignFilterEnabled) {
-            if (this.data.align !== 'none') {
-              attrs['data-align'] = this.data.align;
-            }
-          }
-
-          if (img.parent.name === 'a') {
-            return img.parent;
-          }
-
-          return img;
-        };
-
-        var originalUpcast = widgetDefinition.upcast;
-
-        widgetDefinition.upcast = function (element, data) {
-          if (element.name !== 'img' || !element.attributes['data-entity-type'] || !element.attributes['data-entity-uuid']) {
-            return;
-          }
-
-          if (element.attributes['data-cke-realelement']) {
-            return;
-          }
-
-          element = originalUpcast.call(this, element, data);
-          var attrs = element.attributes;
-
-          if (element.parent.name === 'a') {
-            element = element.parent;
-          }
-
-          var retElement = element;
-          var caption;
-
-          if (captionFilterEnabled) {
-            caption = attrs['data-caption'];
-            delete attrs['data-caption'];
-          }
-
-          if (alignFilterEnabled) {
-            data.align = attrs['data-align'];
-            delete attrs['data-align'];
-          }
-
-          data['data-entity-type'] = attrs['data-entity-type'];
-          delete attrs['data-entity-type'];
-          data['data-entity-uuid'] = attrs['data-entity-uuid'];
-          delete attrs['data-entity-uuid'];
-
-          if (captionFilterEnabled) {
-            if (element.parent.name === 'p' && caption) {
-              var index = element.getIndex();
-              var splitBefore = index > 0;
-              var splitAfter = index + 1 < element.parent.children.length;
-
-              if (splitBefore) {
-                element.parent.split(index);
-              }
-
-              index = element.getIndex();
-
-              if (splitAfter) {
-                element.parent.split(index + 1);
-              }
-
-              element.parent.replaceWith(element);
-              retElement = element;
-            }
-
-            if (caption) {
-              var figure = new CKEDITOR.htmlParser.element('figure');
-              caption = new CKEDITOR.htmlParser.fragment.fromHtml(caption, 'figcaption');
-              var captionFilter = new CKEDITOR.filter(widgetDefinition.editables.caption.allowedContent);
-              captionFilter.applyTo(caption);
-              caption.attributes['data-placeholder'] = placeholderText;
-              element.replaceWith(figure);
-              figure.add(element);
-              figure.add(caption);
-              figure.attributes.class = editor.config.image2_captionedClass;
-              retElement = figure;
-            }
-          }
-
-          if (alignFilterEnabled) {
-            if (data.align === 'center' && (!captionFilterEnabled || !caption)) {
-              var p = new CKEDITOR.htmlParser.element('p');
-              element.replaceWith(p);
-              p.add(element);
-              p.addClass(editor.config.image2_alignClasses[1]);
-              retElement = p;
-            }
-          }
-
-          return retElement;
-        };
-
-        CKEDITOR.tools.extend(widgetDefinition._mapDataToDialog, {
-          align: 'data-align',
-          'data-caption': 'data-caption',
-          hasCaption: 'hasCaption'
-        });
-        var originalCreateDialogSaveCallback = widgetDefinition._createDialogSaveCallback;
-
-        widgetDefinition._createDialogSaveCallback = function (editor, widget) {
-          var saveCallback = originalCreateDialogSaveCallback.call(this, editor, widget);
-          return function (dialogReturnValues) {
-            dialogReturnValues.attributes.hasCaption = !!dialogReturnValues.attributes.hasCaption;
-            var actualWidget = saveCallback(dialogReturnValues);
-
-            if (dialogReturnValues.attributes.hasCaption) {
-              actualWidget.editables.caption.setAttribute('data-placeholder', placeholderText);
-              var captionElement = actualWidget.editables.caption.$;
-
-              if (captionElement.childNodes.length === 1 && captionElement.childNodes.item(0).nodeName === 'BR') {
-                captionElement.removeChild(captionElement.childNodes.item(0));
-              }
-            }
-          };
-        };
-      }, null, null, 20);
-    },
-    afterInit: function afterInit(editor) {
-      var disableButtonIfOnWidget = function disableButtonIfOnWidget(evt) {
-        var widget = editor.widgets.focused;
-
-        if (widget && widget.name === 'image') {
-          this.setState(CKEDITOR.TRISTATE_DISABLED);
-          evt.cancel();
-        }
-      };
-
-      if (editor.plugins.justify && !editor.config.drupalImageCaption_alignFilterEnabled) {
-        var cmd;
-        var commands = ['justifyleft', 'justifycenter', 'justifyright', 'justifyblock'];
-
-        for (var n = 0; n < commands.length; n++) {
-          cmd = editor.getCommand(commands[n]);
-          cmd.contextSensitive = 1;
-          cmd.on('refresh', disableButtonIfOnWidget, null, null, 4);
-        }
-      }
-    }
-  });
-})(CKEDITOR);
\ No newline at end of file
diff --git a/web/modules/ckeditor/js/plugins/drupallink/icons/drupallink.png b/web/modules/ckeditor/js/plugins/drupallink/icons/drupallink.png
deleted file mode 100644
index 54e506a3d8246148f6713e0fd0f6851a9f3634dd..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/js/plugins/drupallink/icons/drupallink.png
+++ /dev/null
@@ -1,3 +0,0 @@
-�PNG
-
-���
IHDR���������(-S���lPLTE���������������������������������������XXX]]]���PPPPPP������������������������������������������������#tRNS�68abcd������������������������g������hIDATxڭ�G�0� ��{Z��dD���k���Wi�ILi�2�u��Ա*]�x������y2lބ����{m�6Ǫ��:`�ᘦ���R���	2$�:WYz����IEND�B`�
\ No newline at end of file
diff --git a/web/modules/ckeditor/js/plugins/drupallink/icons/drupalunlink.png b/web/modules/ckeditor/js/plugins/drupallink/icons/drupalunlink.png
deleted file mode 100644
index 64056ad6d89bb8dac5f0cf11e6cb0c2dd709331b..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/js/plugins/drupallink/icons/drupalunlink.png
+++ /dev/null
@@ -1,7 +0,0 @@
-�PNG
-
-���
IHDR�����������7�����IDAT(�c`��!��4�0l`���NEY!
-�/������ ����/���韫�N@��!�贈����������ïg��w!
-�0�I������������w/���c`��9�����s���{`�����2<f�	�!����	��M͏��chfx,��B#D����硶g�g�����������E
-�� m����a6e���/�_�;
-�0��,C�3���7��F�W-�%��
t˺����A�SL�2�����IEND�B`�
\ No newline at end of file
diff --git a/web/modules/ckeditor/js/plugins/drupallink/icons/hidpi/drupallink.png b/web/modules/ckeditor/js/plugins/drupallink/icons/hidpi/drupallink.png
deleted file mode 100644
index e9f60c572ac63b4951abef2d8d61c3b81201a73e..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/js/plugins/drupallink/icons/hidpi/drupallink.png
+++ /dev/null
@@ -1,6 +0,0 @@
-�PNG
-
-���
IHDR��� ��� ���D������PLTEԨ�222ۭ�ӥ�ܮ�緷ڬ�!!!թ����ӧ�...ȏ����������ʓ����׫����̗�HJJ������������������鸸Ӥ�///���EGG���'**������ҥ�������ը�<??���ث�BBB122������깹JJJ���___SVVڭ�@@@NNN�����Ɣ�����TTT8;;PQQ999���۬��������333DGG111MPP���&++���.11LMM		 &&BCCRRR������-99/88�������<>>@DD���'229;;ש�殮BFFԦ�נ�-99   ���������166$$$AAALLL255Η�͘����EHHDDD'//���.//٫�NJ����&&&ɒ����666GJJ���Р�������ppp�Ϟ����П����"""			Ӧ�677WWWϝ����FFF(44ݯ����ʒ�!!���������Ҥ�ݮ�����������������tRNS��������������b��������a�������������������������������������������������������������������������Z������������������������������������������������������[�������R���IDATx^��U[Q����ݨw!����������Jeh��P��{�͙�9��r�>M,�
-}����		8]�R	�=�����R�-��&�E�`�/���2�!J�dxL&[�(�NM]�����-��:��2��,^�p�j�����P
-�UU���HFmdd-[����*]8<ϰ�Krb��b��e��=.9���9I��Il���OK�Cq@C/9�M��م<^�M"��x�ُ�M�9/CP�S��CuM�A]M��[�S9�\eè;��������1�=ڠ�����\:����s���֡��Rs�`��Ȁ@ ��OL��ƨn��o^���ɬ��%���p��59���}+����
�������F�~qu���S��]'���� л�{�)+`�F�����W���I�ݜ�}uyq�6Nc ޑ����
-zo�[�#�N�F����//s�g�Qz�;�(ֿ1��{���u���8�G@���_���4���k0T����IEND�B`�
\ No newline at end of file
diff --git a/web/modules/ckeditor/js/plugins/drupallink/icons/hidpi/drupalunlink.png b/web/modules/ckeditor/js/plugins/drupallink/icons/hidpi/drupalunlink.png
deleted file mode 100644
index a000713e6e217db9c636c1b414cc26cdeeeb0c8c..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/js/plugins/drupallink/icons/hidpi/drupalunlink.png
+++ /dev/null
@@ -1,9 +0,0 @@
-�PNG
-
-���
IHDR��� ��� ���szz���?IDATX��VYOUW޴�`��{��\�A.�D�0�� 2�5��&$틏M��>�ZTT�Ί3�h�ZP@�2�pi4&)Q�X-����܋X�<؇��w�s�Z�w�Z{�#������M�ĉc�@���2�ZN�wϜm�������w`��	�[G=W#c��\���;�O��K�ij7�VU5��7ŋ��� +*D_i����e�yo,[ư�clr��*b����Hh

��
-8�rdjf� 8�����1m�A.��$Te!7�)S��||d���2f�b�� c��e,汖�+�q�\i!�����Ŏ>�f�bL�&��In��A,
�}8mZqbr����y���_�iZ�6�HMK���
-��g���X���� 9ɭ��y�-IJ�.�ӝ	��ی���dϘ�Mr����g��\��S�'/_.���`ܑ����5��v�ҥ2==]��	j�������-��"��ex�*�����7�p�ceHH��G.���ePP�P����~~~���W�s޳>�-}���Ř�������T)�O��k�N���/����h�ѱ�������;�/r/gyx�^c��C�(ȿ���Nw��������A��`�JJ�?�.���---�,���H��`�{�6��\�wvzt�����*� �30�3
-o����$<��� j��Z�֮\Z1\���y ȣ��.^��x �ŏ;v��/(f6"���+P�d	�VkMM�����ٹ���M�������0�aaa܂=�ǫ��H�<P"NN&YFR������|
�[Mǎ��u �Yyy��P0vz=;�j����t���߯Ŵ���9	>�3g ǫq��_�?��z{��\g��
-�J����Y��&?T3�gZz��1�����k���a_0��b�J����u��"H����S�@����b�5��	��h<rD���I\�^'g�:.�[�~ +77���!�KII�oos\\�LMM����
��r���˾~6vAJJ��BQ���u��~4R�G���]�(�($G��ٳ�mmm��z��K�t�c;;9��n[��ݳ\\̋-Rd�q�\
-�t]Ճ�}s;?_q�F(�G
-nn٢��E�یA�xk�6��-K����a���*R�STLL��|�A����x&sR�o�U��%?��VN�`��a?������O�q�p%xNDFF֍&�ںU�t�*B˗	E���/L�����E�W�<7a�U�P�����񩇧g�p����D�������k�擼�g��MHE
Ҁ�o7��}�MF���v7���hu�\��۫�N���Wю��k��Wq�ɓ�!�kxh�l7l5��pB�3�
�)�1�zG�g�������������c|�7��<t�а0k��{����m:]��}�S���h2����(�Hw7��U�ht�;Xw�����m��յ�s���hF
��@�ig~~9�������W����1=��o�<�.�y�.x4�����!�*`Ȳ=y�M�V^��ܼy��.��~����61l���I��!y��
�v�^q��a��k��+�_EV���?����+�X����IEND�B`�
\ No newline at end of file
diff --git a/web/modules/ckeditor/js/plugins/drupallink/plugin.es6.js b/web/modules/ckeditor/js/plugins/drupallink/plugin.es6.js
deleted file mode 100644
index 5293f183214e8ae1aca54458255dffdc1c6eb1e6..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/js/plugins/drupallink/plugin.es6.js
+++ /dev/null
@@ -1,364 +0,0 @@
-/**
- * @file
- * Drupal Link plugin.
- *
- * @ignore
- */
-
-(function ($, Drupal, drupalSettings, CKEDITOR) {
-  function parseAttributes(editor, element) {
-    const parsedAttributes = {};
-
-    const domElement = element.$;
-    let attribute;
-    let attributeName;
-    for (
-      let attrIndex = 0;
-      attrIndex < domElement.attributes.length;
-      attrIndex++
-    ) {
-      attribute = domElement.attributes.item(attrIndex);
-      attributeName = attribute.nodeName.toLowerCase();
-      // Ignore data-cke-* attributes; they're CKEditor internals.
-      if (attributeName.indexOf('data-cke-') === 0) {
-        continue;
-      }
-      // Store the value for this attribute, unless there's a data-cke-saved-
-      // alternative for it, which will contain the quirk-free, original value.
-      parsedAttributes[attributeName] =
-        element.data(`cke-saved-${attributeName}`) || attribute.nodeValue;
-    }
-
-    // Remove any cke_* classes.
-    if (parsedAttributes.class) {
-      parsedAttributes.class = CKEDITOR.tools.trim(
-        parsedAttributes.class.replace(/cke_\S+/, ''),
-      );
-    }
-
-    return parsedAttributes;
-  }
-
-  function getAttributes(editor, data) {
-    const set = {};
-    Object.keys(data || {}).forEach((attributeName) => {
-      set[attributeName] = data[attributeName];
-    });
-
-    // CKEditor tracks the *actual* saved href in a data-cke-saved-* attribute
-    // to work around browser quirks. We need to update it.
-    set['data-cke-saved-href'] = set.href;
-
-    // Remove all attributes which are not currently set.
-    const removed = {};
-    Object.keys(set).forEach((s) => {
-      delete removed[s];
-    });
-
-    return {
-      set,
-      removed: CKEDITOR.tools.objectKeys(removed),
-    };
-  }
-
-  const registeredLinkableWidgets = [];
-
-  /**
-   * Registers a widget name as linkable.
-   *
-   * @param {string} widgetName
-   *   The name of the widget to register as linkable.
-   */
-  function registerLinkableWidget(widgetName) {
-    registeredLinkableWidgets.push(widgetName);
-  }
-
-  /**
-   * Gets the focused widget, if one of the registered linkable widget names.
-   *
-   * @param {CKEDITOR.editor} editor
-   *   A CKEditor instance.
-   *
-   * @return {?CKEDITOR.plugins.widget}
-   *   The focused linkable widget instance, or null.
-   */
-  function getFocusedLinkableWidget(editor) {
-    const widget = editor.widgets.focused;
-    if (widget && registeredLinkableWidgets.indexOf(widget.name) !== -1) {
-      return widget;
-    }
-    return null;
-  }
-
-  /**
-   * Get the surrounding link element of current selection.
-   *
-   * The following selection will all return the link element.
-   *
-   * @example
-   *  <a href="#">li^nk</a>
-   *  <a href="#">[link]</a>
-   *  text[<a href="#">link]</a>
-   *  <a href="#">li[nk</a>]
-   *  [<b><a href="#">li]nk</a></b>]
-   *  [<a href="#"><b>li]nk</b></a>
-   *
-   * @param {CKEDITOR.editor} editor
-   *   The CKEditor editor object
-   *
-   * @return {?HTMLElement}
-   *   The selected link element, or null.
-   *
-   */
-  function getSelectedLink(editor) {
-    const selection = editor.getSelection();
-    const selectedElement = selection.getSelectedElement();
-    if (selectedElement && selectedElement.is('a')) {
-      return selectedElement;
-    }
-
-    const range = selection.getRanges(true)[0];
-
-    if (range) {
-      range.shrink(CKEDITOR.SHRINK_TEXT);
-      return editor.elementPath(range.getCommonAncestor()).contains('a', 1);
-    }
-    return null;
-  }
-
-  CKEDITOR.plugins.add('drupallink', {
-    icons: 'drupallink,drupalunlink',
-    hidpi: true,
-
-    init(editor) {
-      // Add the commands for link and unlink.
-      editor.addCommand('drupallink', {
-        allowedContent: {
-          a: {
-            attributes: {
-              '!href': true,
-            },
-            classes: {},
-          },
-        },
-        requiredContent: new CKEDITOR.style({
-          element: 'a',
-          attributes: {
-            href: '',
-          },
-        }),
-        modes: { wysiwyg: 1 },
-        canUndo: true,
-        exec(editor) {
-          const focusedLinkableWidget = getFocusedLinkableWidget(editor);
-          let linkElement = getSelectedLink(editor);
-
-          // Set existing values based on selected element.
-          let existingValues = {};
-          if (linkElement && linkElement.$) {
-            existingValues = parseAttributes(editor, linkElement);
-          }
-          // Or, if an image widget is focused, we're editing a link wrapping
-          // an image widget.
-          else if (focusedLinkableWidget && focusedLinkableWidget.data.link) {
-            existingValues = CKEDITOR.tools.clone(
-              focusedLinkableWidget.data.link,
-            );
-          }
-
-          // Prepare a save callback to be used upon saving the dialog.
-          const saveCallback = function (returnValues) {
-            // If an image widget is focused, we're not editing an independent
-            // link, but we're wrapping an image widget in a link.
-            if (focusedLinkableWidget) {
-              focusedLinkableWidget.setData(
-                'link',
-                CKEDITOR.tools.extend(
-                  returnValues.attributes,
-                  focusedLinkableWidget.data.link,
-                ),
-              );
-              editor.fire('saveSnapshot');
-              return;
-            }
-
-            editor.fire('saveSnapshot');
-
-            // Create a new link element if needed.
-            if (!linkElement && returnValues.attributes.href) {
-              const selection = editor.getSelection();
-              const range = selection.getRanges(1)[0];
-
-              // Use link URL as text with a collapsed cursor.
-              if (range.collapsed) {
-                // Shorten mailto URLs to just the email address.
-                const text = new CKEDITOR.dom.text(
-                  returnValues.attributes.href.replace(/^mailto:/, ''),
-                  editor.document,
-                );
-                range.insertNode(text);
-                range.selectNodeContents(text);
-              }
-
-              // Create the new link by applying a style to the new text.
-              const style = new CKEDITOR.style({
-                element: 'a',
-                attributes: returnValues.attributes,
-              });
-              style.type = CKEDITOR.STYLE_INLINE;
-              style.applyToRange(range);
-              range.select();
-
-              // Set the link so individual properties may be set below.
-              linkElement = getSelectedLink(editor);
-            }
-            // Update the link properties.
-            else if (linkElement) {
-              Object.keys(returnValues.attributes || {}).forEach((attrName) => {
-                // Update the property if a value is specified.
-                if (returnValues.attributes[attrName].length > 0) {
-                  const value = returnValues.attributes[attrName];
-                  linkElement.data(`cke-saved-${attrName}`, value);
-                  linkElement.setAttribute(attrName, value);
-                }
-                // Delete the property if set to an empty string.
-                else {
-                  linkElement.removeAttribute(attrName);
-                }
-              });
-            }
-
-            // Save snapshot for undo support.
-            editor.fire('saveSnapshot');
-          };
-          // Drupal.t() will not work inside CKEditor plugins because CKEditor
-          // loads the JavaScript file instead of Drupal. Pull translated
-          // strings from the plugin settings that are translated server-side.
-          const dialogSettings = {
-            title: linkElement
-              ? editor.config.drupalLink_dialogTitleEdit
-              : editor.config.drupalLink_dialogTitleAdd,
-            dialogClass: 'editor-link-dialog',
-          };
-
-          // Open the dialog for the edit form.
-          Drupal.ckeditor.openDialog(
-            editor,
-            Drupal.url(`editor/dialog/link/${editor.config.drupal.format}`),
-            existingValues,
-            saveCallback,
-            dialogSettings,
-          );
-        },
-      });
-      editor.addCommand('drupalunlink', {
-        contextSensitive: 1,
-        startDisabled: 1,
-        requiredContent: new CKEDITOR.style({
-          element: 'a',
-          attributes: {
-            href: '',
-          },
-        }),
-        exec(editor) {
-          const style = new CKEDITOR.style({
-            element: 'a',
-            type: CKEDITOR.STYLE_INLINE,
-            alwaysRemoveElement: 1,
-          });
-          editor.removeStyle(style);
-        },
-        refresh(editor, path) {
-          const element =
-            path.lastElement && path.lastElement.getAscendant('a', true);
-          if (
-            element &&
-            element.getName() === 'a' &&
-            element.getAttribute('href') &&
-            element.getChildCount()
-          ) {
-            this.setState(CKEDITOR.TRISTATE_OFF);
-          } else {
-            this.setState(CKEDITOR.TRISTATE_DISABLED);
-          }
-        },
-      });
-
-      // CTRL + K.
-      editor.setKeystroke(CKEDITOR.CTRL + 75, 'drupallink');
-
-      // Add buttons for link and unlink.
-      if (editor.ui.addButton) {
-        editor.ui.addButton('DrupalLink', {
-          label: Drupal.t('Link'),
-          command: 'drupallink',
-        });
-        editor.ui.addButton('DrupalUnlink', {
-          label: Drupal.t('Unlink'),
-          command: 'drupalunlink',
-        });
-      }
-
-      editor.on('doubleclick', (evt) => {
-        const element = getSelectedLink(editor) || evt.data.element;
-
-        if (!element.isReadOnly()) {
-          if (element.is('a')) {
-            editor.getSelection().selectElement(element);
-            editor.getCommand('drupallink').exec();
-          }
-        }
-      });
-
-      // If the "menu" plugin is loaded, register the menu items.
-      if (editor.addMenuItems) {
-        editor.addMenuItems({
-          link: {
-            label: Drupal.t('Edit Link'),
-            command: 'drupallink',
-            group: 'link',
-            order: 1,
-          },
-
-          unlink: {
-            label: Drupal.t('Unlink'),
-            command: 'drupalunlink',
-            group: 'link',
-            order: 5,
-          },
-        });
-      }
-
-      // If the "contextmenu" plugin is loaded, register the listeners.
-      if (editor.contextMenu) {
-        editor.contextMenu.addListener((element, selection) => {
-          if (!element || element.isReadOnly()) {
-            return null;
-          }
-          const anchor = getSelectedLink(editor);
-          if (!anchor) {
-            return null;
-          }
-
-          let menu = {};
-          if (anchor.getAttribute('href') && anchor.getChildCount()) {
-            menu = {
-              link: CKEDITOR.TRISTATE_OFF,
-              unlink: CKEDITOR.TRISTATE_OFF,
-            };
-          }
-          return menu;
-        });
-      }
-    },
-  });
-
-  // Expose an API for other plugins to interact with drupallink widgets.
-  // (Compatible with the official CKEditor link plugin's API:
-  // http://dev.ckeditor.com/ticket/13885.)
-  CKEDITOR.plugins.drupallink = {
-    parseLinkAttributes: parseAttributes,
-    getLinkAttributes: getAttributes,
-    registerLinkableWidget,
-  };
-})(jQuery, Drupal, drupalSettings, CKEDITOR);
diff --git a/web/modules/ckeditor/js/plugins/drupallink/plugin.js b/web/modules/ckeditor/js/plugins/drupallink/plugin.js
deleted file mode 100644
index b06b276757ee09bcba0ff121730c3aa70c892808..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/js/plugins/drupallink/plugin.js
+++ /dev/null
@@ -1,265 +0,0 @@
-/**
-* DO NOT EDIT THIS FILE.
-* See the following change record for more information,
-* https://www.drupal.org/node/2815083
-* @preserve
-**/
-
-(function ($, Drupal, drupalSettings, CKEDITOR) {
-  function parseAttributes(editor, element) {
-    var parsedAttributes = {};
-    var domElement = element.$;
-    var attribute;
-    var attributeName;
-
-    for (var attrIndex = 0; attrIndex < domElement.attributes.length; attrIndex++) {
-      attribute = domElement.attributes.item(attrIndex);
-      attributeName = attribute.nodeName.toLowerCase();
-
-      if (attributeName.indexOf('data-cke-') === 0) {
-        continue;
-      }
-
-      parsedAttributes[attributeName] = element.data("cke-saved-".concat(attributeName)) || attribute.nodeValue;
-    }
-
-    if (parsedAttributes.class) {
-      parsedAttributes.class = CKEDITOR.tools.trim(parsedAttributes.class.replace(/cke_\S+/, ''));
-    }
-
-    return parsedAttributes;
-  }
-
-  function getAttributes(editor, data) {
-    var set = {};
-    Object.keys(data || {}).forEach(function (attributeName) {
-      set[attributeName] = data[attributeName];
-    });
-    set['data-cke-saved-href'] = set.href;
-    var removed = {};
-    Object.keys(set).forEach(function (s) {
-      delete removed[s];
-    });
-    return {
-      set: set,
-      removed: CKEDITOR.tools.objectKeys(removed)
-    };
-  }
-
-  var registeredLinkableWidgets = [];
-
-  function registerLinkableWidget(widgetName) {
-    registeredLinkableWidgets.push(widgetName);
-  }
-
-  function getFocusedLinkableWidget(editor) {
-    var widget = editor.widgets.focused;
-
-    if (widget && registeredLinkableWidgets.indexOf(widget.name) !== -1) {
-      return widget;
-    }
-
-    return null;
-  }
-
-  function getSelectedLink(editor) {
-    var selection = editor.getSelection();
-    var selectedElement = selection.getSelectedElement();
-
-    if (selectedElement && selectedElement.is('a')) {
-      return selectedElement;
-    }
-
-    var range = selection.getRanges(true)[0];
-
-    if (range) {
-      range.shrink(CKEDITOR.SHRINK_TEXT);
-      return editor.elementPath(range.getCommonAncestor()).contains('a', 1);
-    }
-
-    return null;
-  }
-
-  CKEDITOR.plugins.add('drupallink', {
-    icons: 'drupallink,drupalunlink',
-    hidpi: true,
-    init: function init(editor) {
-      editor.addCommand('drupallink', {
-        allowedContent: {
-          a: {
-            attributes: {
-              '!href': true
-            },
-            classes: {}
-          }
-        },
-        requiredContent: new CKEDITOR.style({
-          element: 'a',
-          attributes: {
-            href: ''
-          }
-        }),
-        modes: {
-          wysiwyg: 1
-        },
-        canUndo: true,
-        exec: function exec(editor) {
-          var focusedLinkableWidget = getFocusedLinkableWidget(editor);
-          var linkElement = getSelectedLink(editor);
-          var existingValues = {};
-
-          if (linkElement && linkElement.$) {
-            existingValues = parseAttributes(editor, linkElement);
-          } else if (focusedLinkableWidget && focusedLinkableWidget.data.link) {
-            existingValues = CKEDITOR.tools.clone(focusedLinkableWidget.data.link);
-          }
-
-          var saveCallback = function saveCallback(returnValues) {
-            if (focusedLinkableWidget) {
-              focusedLinkableWidget.setData('link', CKEDITOR.tools.extend(returnValues.attributes, focusedLinkableWidget.data.link));
-              editor.fire('saveSnapshot');
-              return;
-            }
-
-            editor.fire('saveSnapshot');
-
-            if (!linkElement && returnValues.attributes.href) {
-              var selection = editor.getSelection();
-              var range = selection.getRanges(1)[0];
-
-              if (range.collapsed) {
-                var text = new CKEDITOR.dom.text(returnValues.attributes.href.replace(/^mailto:/, ''), editor.document);
-                range.insertNode(text);
-                range.selectNodeContents(text);
-              }
-
-              var style = new CKEDITOR.style({
-                element: 'a',
-                attributes: returnValues.attributes
-              });
-              style.type = CKEDITOR.STYLE_INLINE;
-              style.applyToRange(range);
-              range.select();
-              linkElement = getSelectedLink(editor);
-            } else if (linkElement) {
-              Object.keys(returnValues.attributes || {}).forEach(function (attrName) {
-                if (returnValues.attributes[attrName].length > 0) {
-                  var value = returnValues.attributes[attrName];
-                  linkElement.data("cke-saved-".concat(attrName), value);
-                  linkElement.setAttribute(attrName, value);
-                } else {
-                  linkElement.removeAttribute(attrName);
-                }
-              });
-            }
-
-            editor.fire('saveSnapshot');
-          };
-
-          var dialogSettings = {
-            title: linkElement ? editor.config.drupalLink_dialogTitleEdit : editor.config.drupalLink_dialogTitleAdd,
-            dialogClass: 'editor-link-dialog'
-          };
-          Drupal.ckeditor.openDialog(editor, Drupal.url("editor/dialog/link/".concat(editor.config.drupal.format)), existingValues, saveCallback, dialogSettings);
-        }
-      });
-      editor.addCommand('drupalunlink', {
-        contextSensitive: 1,
-        startDisabled: 1,
-        requiredContent: new CKEDITOR.style({
-          element: 'a',
-          attributes: {
-            href: ''
-          }
-        }),
-        exec: function exec(editor) {
-          var style = new CKEDITOR.style({
-            element: 'a',
-            type: CKEDITOR.STYLE_INLINE,
-            alwaysRemoveElement: 1
-          });
-          editor.removeStyle(style);
-        },
-        refresh: function refresh(editor, path) {
-          var element = path.lastElement && path.lastElement.getAscendant('a', true);
-
-          if (element && element.getName() === 'a' && element.getAttribute('href') && element.getChildCount()) {
-            this.setState(CKEDITOR.TRISTATE_OFF);
-          } else {
-            this.setState(CKEDITOR.TRISTATE_DISABLED);
-          }
-        }
-      });
-      editor.setKeystroke(CKEDITOR.CTRL + 75, 'drupallink');
-
-      if (editor.ui.addButton) {
-        editor.ui.addButton('DrupalLink', {
-          label: Drupal.t('Link'),
-          command: 'drupallink'
-        });
-        editor.ui.addButton('DrupalUnlink', {
-          label: Drupal.t('Unlink'),
-          command: 'drupalunlink'
-        });
-      }
-
-      editor.on('doubleclick', function (evt) {
-        var element = getSelectedLink(editor) || evt.data.element;
-
-        if (!element.isReadOnly()) {
-          if (element.is('a')) {
-            editor.getSelection().selectElement(element);
-            editor.getCommand('drupallink').exec();
-          }
-        }
-      });
-
-      if (editor.addMenuItems) {
-        editor.addMenuItems({
-          link: {
-            label: Drupal.t('Edit Link'),
-            command: 'drupallink',
-            group: 'link',
-            order: 1
-          },
-          unlink: {
-            label: Drupal.t('Unlink'),
-            command: 'drupalunlink',
-            group: 'link',
-            order: 5
-          }
-        });
-      }
-
-      if (editor.contextMenu) {
-        editor.contextMenu.addListener(function (element, selection) {
-          if (!element || element.isReadOnly()) {
-            return null;
-          }
-
-          var anchor = getSelectedLink(editor);
-
-          if (!anchor) {
-            return null;
-          }
-
-          var menu = {};
-
-          if (anchor.getAttribute('href') && anchor.getChildCount()) {
-            menu = {
-              link: CKEDITOR.TRISTATE_OFF,
-              unlink: CKEDITOR.TRISTATE_OFF
-            };
-          }
-
-          return menu;
-        });
-      }
-    }
-  });
-  CKEDITOR.plugins.drupallink = {
-    parseLinkAttributes: parseAttributes,
-    getLinkAttributes: getAttributes,
-    registerLinkableWidget: registerLinkableWidget
-  };
-})(jQuery, Drupal, drupalSettings, CKEDITOR);
\ No newline at end of file
diff --git a/web/modules/ckeditor/js/plugins/drupalmedia/plugin.es6.js b/web/modules/ckeditor/js/plugins/drupalmedia/plugin.es6.js
deleted file mode 100644
index 7a0c5a4213ec8cbddc728cfd6deb069942ff7544..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/js/plugins/drupalmedia/plugin.es6.js
+++ /dev/null
@@ -1,499 +0,0 @@
-/**
- * @file
- * Drupal Media embed plugin.
- */
-
-(function (jQuery, Drupal, CKEDITOR) {
-  /**
-   * Gets the focused widget, if of the type specific for this plugin.
-   *
-   * @param {CKEDITOR.editor} editor
-   *   A CKEditor instance.
-   *
-   * @return {?CKEDITOR.plugins.widget}
-   *   The focused drupalmedia widget instance, or null.
-   */
-  function getFocusedWidget(editor) {
-    const widget = editor.widgets.focused;
-
-    if (widget && widget.name === 'drupalmedia') {
-      return widget;
-    }
-    return null;
-  }
-
-  /**
-   * Makes embedded items linkable by integrating with the drupallink plugin.
-   *
-   * @param {CKEDITOR.editor} editor
-   *   A CKEditor instance.
-   */
-  function linkCommandIntegrator(editor) {
-    if (!editor.plugins.drupallink) {
-      return;
-    }
-
-    CKEDITOR.plugins.drupallink.registerLinkableWidget('drupalmedia');
-
-    editor.getCommand('drupalunlink').on('exec', function (evt) {
-      const widget = getFocusedWidget(editor);
-
-      if (!widget) {
-        return;
-      }
-
-      widget.setData('link', null);
-
-      this.refresh(editor, editor.elementPath());
-
-      evt.cancel();
-    });
-
-    editor.getCommand('drupalunlink').on('refresh', function (evt) {
-      const widget = getFocusedWidget(editor);
-
-      if (!widget) {
-        return;
-      }
-
-      this.setState(
-        widget.data.link ? CKEDITOR.TRISTATE_OFF : CKEDITOR.TRISTATE_DISABLED,
-      );
-
-      evt.cancel();
-    });
-
-    // Register context menu items for editing link.
-    if (editor.contextMenu) {
-      editor.contextMenu.addListener(() => {
-        const widget = getFocusedWidget(editor);
-
-        if (!widget) {
-          return;
-        }
-
-        if (widget.data.link) {
-          return {
-            link: CKEDITOR.TRISTATE_OFF,
-            unlink: CKEDITOR.TRISTATE_OFF,
-          };
-        }
-        return {};
-      });
-    }
-  }
-
-  CKEDITOR.plugins.add('drupalmedia', {
-    requires: 'widget',
-
-    beforeInit(editor) {
-      // Configure CKEditor DTD for custom drupal-media element.
-      // @see https://www.drupal.org/node/2448449#comment-9717735
-      const { dtd } = CKEDITOR;
-      // Allow text within the drupal-media tag.
-      dtd['drupal-media'] = { '#': 1 };
-      // Register drupal-media element as an allowed child in each tag that can
-      // contain a div element and as an allowed child of the a tag.
-      Object.keys(dtd).forEach((tagName) => {
-        if (dtd[tagName].div) {
-          dtd[tagName]['drupal-media'] = 1;
-        }
-      });
-      dtd.a['drupal-media'] = 1;
-
-      editor.widgets.add('drupalmedia', {
-        allowedContent: {
-          'drupal-media': {
-            attributes: {
-              '!data-entity-type': true,
-              '!data-entity-uuid': true,
-              'data-align': true,
-              'data-caption': true,
-              alt: true,
-              title: true,
-            },
-            classes: {},
-          },
-        },
-        // Minimum HTML which is required by this widget to work.
-        // This does not use the object format used above, but a
-        // CKEDITOR.style instance, because requiredContent does not support
-        // the object format.
-        // @see https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_filter_contentRule.html
-        requiredContent: new CKEDITOR.style({
-          element: 'drupal-media',
-          attributes: {
-            'data-entity-type': '',
-            'data-entity-uuid': '',
-          },
-        }),
-
-        pathName: Drupal.t('Embedded media'),
-
-        editables: {
-          caption: {
-            selector: 'figcaption',
-            allowedContent: 'a[!href]; em strong cite code br',
-            pathName: Drupal.t('Caption'),
-          },
-        },
-
-        getLabel() {
-          if (this.data.label) {
-            return this.data.label;
-          }
-          return Drupal.t('Embedded media');
-        },
-
-        upcast(element, data) {
-          const { attributes } = element;
-          // This matches the behavior of the corresponding server-side text filter plugin.
-          if (
-            element.name !== 'drupal-media' ||
-            attributes['data-entity-type'] !== 'media' ||
-            attributes['data-entity-uuid'] === undefined
-          ) {
-            return;
-          }
-          data.attributes = CKEDITOR.tools.copy(attributes);
-          data.hasCaption = data.attributes.hasOwnProperty('data-caption');
-          // Add space to the empty caption to allow the server-side text
-          // filter to render a caption, allowing the placeholder-rendering
-          // CSS to work.
-          if (data.hasCaption && data.attributes['data-caption'] === '') {
-            data.attributes['data-caption'] = ' ';
-          }
-          data.label = null;
-          data.link = null;
-          if (element.parent.name === 'a') {
-            data.link = CKEDITOR.tools.copy(element.parent.attributes);
-            // Omit CKEditor-internal attributes.
-            Object.keys(element.parent.attributes).forEach((attrName) => {
-              if (attrName.indexOf('data-cke-') !== -1) {
-                delete data.link[attrName];
-              }
-            });
-          }
-          // @see media_field_widget_single_element_form_alter()
-          const hostEntityLangcode = document
-            .getElementById(editor.name)
-            .getAttribute('data-media-embed-host-entity-langcode');
-          if (hostEntityLangcode) {
-            data.hostEntityLangcode = hostEntityLangcode;
-          }
-          return element;
-        },
-
-        destroy() {
-          this._tearDownDynamicEditables();
-        },
-
-        data(event) {
-          // Only run during changes.
-          if (this.oldData) {
-            // The server-side text filter plugin treats both an empty
-            // `data-caption` attribute and a non-existing one the same: it
-            // does not render a caption. But in the CKEditor Widget, we need
-            // to be able to show an empty caption with placeholder text using
-            // CSS even when technically there is no `data-caption` attribute
-            // value yet. That's why this CKEditor Widget has an independent
-            // `hasCaption` boolean (which is not an attribute) to know when
-            // to generate a non-empty `data-caption` attribute when the
-            // content creator has enabled caption: this makes the server-side
-            // text filter render a caption, allowing the placeholder-rendering
-            // CSS to work.
-            // @see core/modules/filter/css/filter.caption.css
-            // @see ckeditor_ckeditor_css_alter()
-            if (!this.data.hasCaption && this.oldData.hasCaption) {
-              delete this.data.attributes['data-caption'];
-            } else if (
-              this.data.hasCaption &&
-              !this.data.attributes['data-caption']
-            ) {
-              this.data.attributes['data-caption'] = ' ';
-            }
-          }
-
-          if (this._previewNeedsServerSideUpdate()) {
-            editor.fire('lockSnapshot');
-            this._tearDownDynamicEditables();
-
-            this._loadPreview((widget) => {
-              widget._setUpDynamicEditables();
-              widget._setUpEditButton();
-              editor.fire('unlockSnapshot');
-            });
-          }
-
-          // Remove old attributes from drupal-media element within the widget.
-          if (this.oldData) {
-            Object.keys(this.oldData.attributes).forEach((attrName) => {
-              this.element.removeAttribute(attrName);
-            });
-          }
-          // Add attributes to drupal-media element within the widget.
-          this.element.setAttributes(this.data.attributes);
-
-          // Track the previous state to allow checking if preview needs
-          // server side update.
-          this.oldData = CKEDITOR.tools.clone(this.data);
-        },
-
-        downcast() {
-          const downcastElement = new CKEDITOR.htmlParser.element(
-            'drupal-media',
-            this.data.attributes,
-          );
-          if (this.data.link) {
-            const link = new CKEDITOR.htmlParser.element('a', this.data.link);
-            link.add(downcastElement);
-            return link;
-          }
-          return downcastElement;
-        },
-
-        _setUpDynamicEditables() {
-          // Now that the caption is available in the DOM, make it editable.
-          if (this.initEditable('caption', this.definition.editables.caption)) {
-            const captionEditable = this.editables.caption;
-            // @see core/modules/filter/css/filter.caption.css
-            // @see ckeditor_ckeditor_css_alter()
-            captionEditable.setAttribute(
-              'data-placeholder',
-              Drupal.t('Enter caption here'),
-            );
-            // Ensure that any changes made to the caption are persisted in the
-            // widget's data-caption attribute.
-            this.captionObserver = new MutationObserver(() => {
-              const mediaAttributes = CKEDITOR.tools.clone(
-                this.data.attributes,
-              );
-              mediaAttributes['data-caption'] = captionEditable.getData();
-              this.setData('attributes', mediaAttributes);
-            });
-            this.captionObserver.observe(captionEditable.$, {
-              characterData: true,
-              attributes: true,
-              childList: true,
-              subtree: true,
-            });
-            // Some browsers will add a <br> tag to a newly created DOM element
-            // with no content. Remove this <br> if it is the only thing in the
-            // caption. Our placeholder support requires the element to be
-            // entirely empty.
-            // @see core/modules/filter/css/filter.caption.css
-            // @see core/modules/ckeditor/js/plugins/drupalimagecaption/plugin.es6.js
-            if (
-              captionEditable.$.childNodes.length === 1 &&
-              captionEditable.$.childNodes.item(0).nodeName === 'BR'
-            ) {
-              captionEditable.$.removeChild(
-                captionEditable.$.childNodes.item(0),
-              );
-            }
-          }
-        },
-
-        /**
-         * Injects HTML for edit button into the preview that was just loaded.
-         */
-        _setUpEditButton() {
-          // No buttons for missing media.
-          if (this.element.findOne('.media-embed-error')) {
-            return;
-          }
-
-          /**
-           * Determines if a node is an element node.
-           *
-           * @param {CKEDITOR.dom.node} n
-           *   A DOM node to evaluate.
-           *
-           * @return {bool}
-           *   Returns true if node is an element node and not a non-element
-           *   node (such as NODE_TEXT, NODE_COMMENT, NODE_DOCUMENT or
-           *   NODE_DOCUMENT_FRAGMENT).
-           *
-           * @see https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR.html#property-NODE_ELEMENT
-           */
-          const isElementNode = function (n) {
-            return n.type === CKEDITOR.NODE_ELEMENT;
-          };
-
-          // Find the actual embedded media in the DOM.
-          const embeddedMediaContainer = this.data.hasCaption
-            ? this.element.findOne('figure')
-            : this.element;
-          let embeddedMedia = embeddedMediaContainer.getFirst(isElementNode);
-          // If there is a link, the top-level element is the `a` tag, and the
-          // embedded media will be within the `a` tag.
-          if (this.data.link) {
-            embeddedMedia = embeddedMedia.getFirst(isElementNode);
-          }
-          // To allow the edit button to be absolutely positioned, the parent
-          // element must be positioned relative.
-          embeddedMedia.setStyle('position', 'relative');
-
-          const editButton = CKEDITOR.dom.element.createFromHtml(
-            Drupal.theme('mediaEmbedEditButton'),
-          );
-          embeddedMedia.getFirst().insertBeforeMe(editButton);
-
-          // Make the edit button do things.
-          const widget = this;
-          this.element
-            .findOne('.media-library-item__edit')
-            .on('click', (event) => {
-              const saveCallback = function (values) {
-                event.cancel();
-                editor.fire('saveSnapshot');
-                if (values.hasOwnProperty('attributes')) {
-                  // Combine the dialog attributes with the widget attributes.
-                  // This copies the properties from widget.data.attributes to
-                  // values.attributes. (Properties already present
-                  // in values.attributes are not overwritten.)
-                  CKEDITOR.tools.extend(
-                    values.attributes,
-                    widget.data.attributes,
-                  );
-                  // Allow the dialog to delete attributes by setting them
-                  // to `false` or `none`. For example: `alt`.
-                  Object.keys(values.attributes).forEach((prop) => {
-                    if (
-                      values.attributes[prop] === false ||
-                      (prop === 'data-align' &&
-                        values.attributes[prop] === 'none')
-                    ) {
-                      delete values.attributes[prop];
-                    }
-                  });
-                }
-                widget.setData({
-                  attributes: values.attributes,
-                  hasCaption: !!values.hasCaption,
-                });
-                editor.fire('saveSnapshot');
-              };
-
-              Drupal.ckeditor.openDialog(
-                editor,
-                Drupal.url(
-                  `editor/dialog/media/${editor.config.drupal.format}`,
-                ),
-                widget.data,
-                saveCallback,
-                {},
-              );
-            });
-
-          // Allow opening the dialog with the return key or the space bar
-          // by triggering a click event when a keydown event occurs on
-          // the edit button.
-          this.element
-            .findOne('.media-library-item__edit')
-            .on('keydown', (event) => {
-              // The character code for the return key.
-              const returnKey = 13;
-              // The character code for the space bar.
-              const spaceBar = 32;
-              if (typeof event.data !== 'undefined') {
-                const keypress = event.data.getKey();
-                if (keypress === returnKey || keypress === spaceBar) {
-                  // Clicks the edit button that triggered the 'keydown'
-                  // event.
-                  event.sender.$.click();
-                }
-                // Stop propagation to keep the return key from
-                // adding a line break.
-                event.data.$.stopPropagation();
-                event.data.$.stopImmediatePropagation();
-              }
-            });
-        },
-
-        _tearDownDynamicEditables() {
-          // If we are watching for changes to the caption, stop doing that.
-          if (this.captionObserver) {
-            this.captionObserver.disconnect();
-          }
-        },
-
-        /**
-         * Determines if the preview needs to be re-rendered by the server.
-         *
-         * @return {boolean}
-         *   Returns true if the data hashes differ.
-         */
-        _previewNeedsServerSideUpdate() {
-          // When the widget is first loading, it of course needs to still get a preview!
-          if (!this.ready) {
-            return true;
-          }
-
-          return this._hashData(this.oldData) !== this._hashData(this.data);
-        },
-
-        /**
-         * Computes a hash of the data that can only be previewed by the server.
-         *
-         * @return {string}
-         */
-        _hashData(data) {
-          const dataToHash = CKEDITOR.tools.clone(data);
-          // The caption does not need rendering.
-          delete dataToHash.attributes['data-caption'];
-          // The media entity's label is server-side data and cannot be
-          // modified by the content author.
-          delete dataToHash.label;
-          // Changed link destinations do not affect the visual preview.
-          if (dataToHash.link) {
-            delete dataToHash.link.href;
-          }
-          return JSON.stringify(dataToHash);
-        },
-
-        /**
-         * Loads an media embed preview and runs a callback after insertion.
-         *
-         * Note the absence of caching, that's because this uses a GET request (which is cacheable) and the server takes
-         * special care to make the responses privately cacheable (i.e. per session) in the browser.
-         *
-         * @see \Drupal\media\Controller\MediaFilterController::preview()
-         *
-         * @param {function} callback
-         *   A callback function that will be called after the preview has
-         *   loaded. Receives the widget instance.
-         */
-        _loadPreview(callback) {
-          jQuery.get({
-            url: Drupal.url(`media/${editor.config.drupal.format}/preview`),
-            data: {
-              text: this.downcast().getOuterHtml(),
-              uuid: this.data.attributes['data-entity-uuid'],
-            },
-            dataType: 'html',
-            headers: {
-              'X-Drupal-MediaPreview-CSRF-Token':
-                editor.config.drupalMedia_previewCsrfToken,
-            },
-            success: (previewHtml, textStatus, jqXhr) => {
-              this.element.setHtml(previewHtml);
-              this.setData(
-                'label',
-                jqXhr.getResponseHeader('Drupal-Media-Label'),
-              );
-              callback(this);
-            },
-            error: () => {
-              this.element.setHtml(Drupal.theme('mediaEmbedPreviewError'));
-            },
-          });
-        },
-      });
-    },
-
-    afterInit(editor) {
-      linkCommandIntegrator(editor);
-    },
-  });
-})(jQuery, Drupal, CKEDITOR);
diff --git a/web/modules/ckeditor/js/plugins/drupalmedia/plugin.js b/web/modules/ckeditor/js/plugins/drupalmedia/plugin.js
deleted file mode 100644
index 626931693ca1b104af71eb034c8f98c0b0c3da03..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/js/plugins/drupalmedia/plugin.js
+++ /dev/null
@@ -1,335 +0,0 @@
-/**
-* DO NOT EDIT THIS FILE.
-* See the following change record for more information,
-* https://www.drupal.org/node/2815083
-* @preserve
-**/
-
-(function (jQuery, Drupal, CKEDITOR) {
-  function getFocusedWidget(editor) {
-    var widget = editor.widgets.focused;
-
-    if (widget && widget.name === 'drupalmedia') {
-      return widget;
-    }
-
-    return null;
-  }
-
-  function linkCommandIntegrator(editor) {
-    if (!editor.plugins.drupallink) {
-      return;
-    }
-
-    CKEDITOR.plugins.drupallink.registerLinkableWidget('drupalmedia');
-    editor.getCommand('drupalunlink').on('exec', function (evt) {
-      var widget = getFocusedWidget(editor);
-
-      if (!widget) {
-        return;
-      }
-
-      widget.setData('link', null);
-      this.refresh(editor, editor.elementPath());
-      evt.cancel();
-    });
-    editor.getCommand('drupalunlink').on('refresh', function (evt) {
-      var widget = getFocusedWidget(editor);
-
-      if (!widget) {
-        return;
-      }
-
-      this.setState(widget.data.link ? CKEDITOR.TRISTATE_OFF : CKEDITOR.TRISTATE_DISABLED);
-      evt.cancel();
-    });
-
-    if (editor.contextMenu) {
-      editor.contextMenu.addListener(function () {
-        var widget = getFocusedWidget(editor);
-
-        if (!widget) {
-          return;
-        }
-
-        if (widget.data.link) {
-          return {
-            link: CKEDITOR.TRISTATE_OFF,
-            unlink: CKEDITOR.TRISTATE_OFF
-          };
-        }
-
-        return {};
-      });
-    }
-  }
-
-  CKEDITOR.plugins.add('drupalmedia', {
-    requires: 'widget',
-    beforeInit: function beforeInit(editor) {
-      var dtd = CKEDITOR.dtd;
-      dtd['drupal-media'] = {
-        '#': 1
-      };
-      Object.keys(dtd).forEach(function (tagName) {
-        if (dtd[tagName].div) {
-          dtd[tagName]['drupal-media'] = 1;
-        }
-      });
-      dtd.a['drupal-media'] = 1;
-      editor.widgets.add('drupalmedia', {
-        allowedContent: {
-          'drupal-media': {
-            attributes: {
-              '!data-entity-type': true,
-              '!data-entity-uuid': true,
-              'data-align': true,
-              'data-caption': true,
-              alt: true,
-              title: true
-            },
-            classes: {}
-          }
-        },
-        requiredContent: new CKEDITOR.style({
-          element: 'drupal-media',
-          attributes: {
-            'data-entity-type': '',
-            'data-entity-uuid': ''
-          }
-        }),
-        pathName: Drupal.t('Embedded media'),
-        editables: {
-          caption: {
-            selector: 'figcaption',
-            allowedContent: 'a[!href]; em strong cite code br',
-            pathName: Drupal.t('Caption')
-          }
-        },
-        getLabel: function getLabel() {
-          if (this.data.label) {
-            return this.data.label;
-          }
-
-          return Drupal.t('Embedded media');
-        },
-        upcast: function upcast(element, data) {
-          var attributes = element.attributes;
-
-          if (element.name !== 'drupal-media' || attributes['data-entity-type'] !== 'media' || attributes['data-entity-uuid'] === undefined) {
-            return;
-          }
-
-          data.attributes = CKEDITOR.tools.copy(attributes);
-          data.hasCaption = data.attributes.hasOwnProperty('data-caption');
-
-          if (data.hasCaption && data.attributes['data-caption'] === '') {
-            data.attributes['data-caption'] = ' ';
-          }
-
-          data.label = null;
-          data.link = null;
-
-          if (element.parent.name === 'a') {
-            data.link = CKEDITOR.tools.copy(element.parent.attributes);
-            Object.keys(element.parent.attributes).forEach(function (attrName) {
-              if (attrName.indexOf('data-cke-') !== -1) {
-                delete data.link[attrName];
-              }
-            });
-          }
-
-          var hostEntityLangcode = document.getElementById(editor.name).getAttribute('data-media-embed-host-entity-langcode');
-
-          if (hostEntityLangcode) {
-            data.hostEntityLangcode = hostEntityLangcode;
-          }
-
-          return element;
-        },
-        destroy: function destroy() {
-          this._tearDownDynamicEditables();
-        },
-        data: function data(event) {
-          var _this = this;
-
-          if (this.oldData) {
-            if (!this.data.hasCaption && this.oldData.hasCaption) {
-              delete this.data.attributes['data-caption'];
-            } else if (this.data.hasCaption && !this.data.attributes['data-caption']) {
-              this.data.attributes['data-caption'] = ' ';
-            }
-          }
-
-          if (this._previewNeedsServerSideUpdate()) {
-            editor.fire('lockSnapshot');
-
-            this._tearDownDynamicEditables();
-
-            this._loadPreview(function (widget) {
-              widget._setUpDynamicEditables();
-
-              widget._setUpEditButton();
-
-              editor.fire('unlockSnapshot');
-            });
-          }
-
-          if (this.oldData) {
-            Object.keys(this.oldData.attributes).forEach(function (attrName) {
-              _this.element.removeAttribute(attrName);
-            });
-          }
-
-          this.element.setAttributes(this.data.attributes);
-          this.oldData = CKEDITOR.tools.clone(this.data);
-        },
-        downcast: function downcast() {
-          var downcastElement = new CKEDITOR.htmlParser.element('drupal-media', this.data.attributes);
-
-          if (this.data.link) {
-            var link = new CKEDITOR.htmlParser.element('a', this.data.link);
-            link.add(downcastElement);
-            return link;
-          }
-
-          return downcastElement;
-        },
-        _setUpDynamicEditables: function _setUpDynamicEditables() {
-          var _this2 = this;
-
-          if (this.initEditable('caption', this.definition.editables.caption)) {
-            var captionEditable = this.editables.caption;
-            captionEditable.setAttribute('data-placeholder', Drupal.t('Enter caption here'));
-            this.captionObserver = new MutationObserver(function () {
-              var mediaAttributes = CKEDITOR.tools.clone(_this2.data.attributes);
-              mediaAttributes['data-caption'] = captionEditable.getData();
-
-              _this2.setData('attributes', mediaAttributes);
-            });
-            this.captionObserver.observe(captionEditable.$, {
-              characterData: true,
-              attributes: true,
-              childList: true,
-              subtree: true
-            });
-
-            if (captionEditable.$.childNodes.length === 1 && captionEditable.$.childNodes.item(0).nodeName === 'BR') {
-              captionEditable.$.removeChild(captionEditable.$.childNodes.item(0));
-            }
-          }
-        },
-        _setUpEditButton: function _setUpEditButton() {
-          if (this.element.findOne('.media-embed-error')) {
-            return;
-          }
-
-          var isElementNode = function isElementNode(n) {
-            return n.type === CKEDITOR.NODE_ELEMENT;
-          };
-
-          var embeddedMediaContainer = this.data.hasCaption ? this.element.findOne('figure') : this.element;
-          var embeddedMedia = embeddedMediaContainer.getFirst(isElementNode);
-
-          if (this.data.link) {
-            embeddedMedia = embeddedMedia.getFirst(isElementNode);
-          }
-
-          embeddedMedia.setStyle('position', 'relative');
-          var editButton = CKEDITOR.dom.element.createFromHtml(Drupal.theme('mediaEmbedEditButton'));
-          embeddedMedia.getFirst().insertBeforeMe(editButton);
-          var widget = this;
-          this.element.findOne('.media-library-item__edit').on('click', function (event) {
-            var saveCallback = function saveCallback(values) {
-              event.cancel();
-              editor.fire('saveSnapshot');
-
-              if (values.hasOwnProperty('attributes')) {
-                CKEDITOR.tools.extend(values.attributes, widget.data.attributes);
-                Object.keys(values.attributes).forEach(function (prop) {
-                  if (values.attributes[prop] === false || prop === 'data-align' && values.attributes[prop] === 'none') {
-                    delete values.attributes[prop];
-                  }
-                });
-              }
-
-              widget.setData({
-                attributes: values.attributes,
-                hasCaption: !!values.hasCaption
-              });
-              editor.fire('saveSnapshot');
-            };
-
-            Drupal.ckeditor.openDialog(editor, Drupal.url("editor/dialog/media/".concat(editor.config.drupal.format)), widget.data, saveCallback, {});
-          });
-          this.element.findOne('.media-library-item__edit').on('keydown', function (event) {
-            var returnKey = 13;
-            var spaceBar = 32;
-
-            if (typeof event.data !== 'undefined') {
-              var keypress = event.data.getKey();
-
-              if (keypress === returnKey || keypress === spaceBar) {
-                event.sender.$.click();
-              }
-
-              event.data.$.stopPropagation();
-              event.data.$.stopImmediatePropagation();
-            }
-          });
-        },
-        _tearDownDynamicEditables: function _tearDownDynamicEditables() {
-          if (this.captionObserver) {
-            this.captionObserver.disconnect();
-          }
-        },
-        _previewNeedsServerSideUpdate: function _previewNeedsServerSideUpdate() {
-          if (!this.ready) {
-            return true;
-          }
-
-          return this._hashData(this.oldData) !== this._hashData(this.data);
-        },
-        _hashData: function _hashData(data) {
-          var dataToHash = CKEDITOR.tools.clone(data);
-          delete dataToHash.attributes['data-caption'];
-          delete dataToHash.label;
-
-          if (dataToHash.link) {
-            delete dataToHash.link.href;
-          }
-
-          return JSON.stringify(dataToHash);
-        },
-        _loadPreview: function _loadPreview(callback) {
-          var _this3 = this;
-
-          jQuery.get({
-            url: Drupal.url("media/".concat(editor.config.drupal.format, "/preview")),
-            data: {
-              text: this.downcast().getOuterHtml(),
-              uuid: this.data.attributes['data-entity-uuid']
-            },
-            dataType: 'html',
-            headers: {
-              'X-Drupal-MediaPreview-CSRF-Token': editor.config.drupalMedia_previewCsrfToken
-            },
-            success: function success(previewHtml, textStatus, jqXhr) {
-              _this3.element.setHtml(previewHtml);
-
-              _this3.setData('label', jqXhr.getResponseHeader('Drupal-Media-Label'));
-
-              callback(_this3);
-            },
-            error: function error() {
-              _this3.element.setHtml(Drupal.theme('mediaEmbedPreviewError'));
-            }
-          });
-        }
-      });
-    },
-    afterInit: function afterInit(editor) {
-      linkCommandIntegrator(editor);
-    }
-  });
-})(jQuery, Drupal, CKEDITOR);
\ No newline at end of file
diff --git a/web/modules/ckeditor/js/plugins/drupalmedialibrary/icons/drupalmedialibrary.png b/web/modules/ckeditor/js/plugins/drupalmedialibrary/icons/drupalmedialibrary.png
deleted file mode 100644
index bcd36d441320e4d316b0c9c291a059dcd2526d6f..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/js/plugins/drupalmedialibrary/icons/drupalmedialibrary.png
+++ /dev/null
@@ -1,3 +0,0 @@
-�PNG
-
-���
IHDR�����������7�����IDATx�}СKA���("X�\<��@ny��b�\�&��`8�����A��(�A�����?q8eg]�_���g��d�c��Sm��?ȫ�`ȫ��*t�c�u��/��L��?�~2�9_��|'(S��8g����O�6�_���cF��ٺ�X�h�(���}]^Y��ؾc�n0�7Ve��9�R���2���L�G,�,���Ȅ�PR�_�}��jI������IEND�B`�
\ No newline at end of file
diff --git a/web/modules/ckeditor/js/plugins/drupalmedialibrary/icons/hidpi/drupalmedialibrary.png b/web/modules/ckeditor/js/plugins/drupalmedialibrary/icons/hidpi/drupalmedialibrary.png
deleted file mode 100644
index 6d5f1405cf2142432ae7a055d278866095182ad3..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/js/plugins/drupalmedialibrary/icons/hidpi/drupalmedialibrary.png
+++ /dev/null
@@ -1,4 +0,0 @@
-�PNG
-
-���
IHDR��� ��� ����s���3IDATx�c`�0�o�F�!h��䁻8V����0y@����.�����	�ӡE믻4v�Z��<����<X����$h����m��Z��ϸs�e��Z�vt�%���0l��e�C
Ԁ.~d��`7���k�f������PQW;�V��00x��s nqP��SԀ?�n���V�
_j����������%�����Z����������/�K;G"�;�i��)��g7��N�o��[��`���Y��o|f`p���	��L�W�5�����N�B�0�c~�v��?�"�i6+�h�k~ھ���V[�C
�����m(P��;7"��v���ggb�k�������0�`z7������>�ev�]����!��nJ���pD뿛��b1���k;�j�}��i��ć���hݯ);p�wʱou�5���f��((�e��"'����⇒�p��f���a��*,����[���
-��a`;9����"����pF*�4��Ђ7m�#�ډa�0���`�Yd�R���k˽8�b��������K�n����IEND�B`�
\ No newline at end of file
diff --git a/web/modules/ckeditor/js/plugins/drupalmedialibrary/plugin.es6.js b/web/modules/ckeditor/js/plugins/drupalmedialibrary/plugin.es6.js
deleted file mode 100644
index 1e270a66b79e8b580eb10384be8ec66b0cc43188..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/js/plugins/drupalmedialibrary/plugin.es6.js
+++ /dev/null
@@ -1,76 +0,0 @@
-/**
- * @file
- * Drupal Media Library plugin.
- */
-
-(function (Drupal, CKEDITOR) {
-  CKEDITOR.plugins.add('drupalmedialibrary', {
-    requires: 'drupalmedia',
-    icons: 'drupalmedialibrary',
-    hidpi: true,
-    beforeInit(editor) {
-      editor.addCommand('drupalmedialibrary', {
-        allowedContent: {
-          'drupal-media': {
-            attributes: {
-              '!data-entity-type': true,
-              '!data-entity-uuid': true,
-              '!data-view-mode': true,
-              '!data-align': true,
-              '!data-caption': true,
-              '!alt': true,
-              '!title': true,
-            },
-            classes: {},
-          },
-        },
-        // This does not use the object format used above, but a
-        // CKEDITOR.style instance, because requiredContent does not support
-        // the object format.
-        // @see https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_filter_contentRule.html
-        // eslint-disable-next-line new-cap
-        requiredContent: new CKEDITOR.style({
-          element: 'drupal-media',
-          attributes: {
-            'data-entity-type': '',
-            'data-entity-uuid': '',
-          },
-        }),
-        modes: { wysiwyg: 1 },
-        // There is an edge case related to the undo functionality that will
-        // be resolved in https://www.drupal.org/project/drupal/issues/3073294.
-        canUndo: true,
-        // eslint-disable-next-line no-shadow
-        exec(editor) {
-          const saveCallback = function (values) {
-            editor.fire('saveSnapshot');
-            const mediaElement = editor.document.createElement('drupal-media');
-            // eslint-disable-next-line prefer-destructuring
-            const attributes = values.attributes;
-            Object.keys(attributes).forEach((key) => {
-              mediaElement.setAttribute(key, attributes[key]);
-            });
-            editor.insertHtml(mediaElement.getOuterHtml());
-            editor.fire('saveSnapshot');
-          };
-
-          // @see \Drupal\media_library\MediaLibraryUiBuilder::dialogOptions()
-          Drupal.ckeditor.openDialog(
-            editor,
-            editor.config.DrupalMediaLibrary_url,
-            {},
-            saveCallback,
-            editor.config.DrupalMediaLibrary_dialogOptions,
-          );
-        },
-      });
-
-      if (editor.ui.addButton) {
-        editor.ui.addButton('DrupalMediaLibrary', {
-          label: Drupal.t('Insert from Media Library'),
-          command: 'drupalmedialibrary',
-        });
-      }
-    },
-  });
-})(Drupal, CKEDITOR);
diff --git a/web/modules/ckeditor/js/plugins/drupalmedialibrary/plugin.js b/web/modules/ckeditor/js/plugins/drupalmedialibrary/plugin.js
deleted file mode 100644
index bfb1e19529a27b8fb78893d5e2037ba566b8c2c1..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/js/plugins/drupalmedialibrary/plugin.js
+++ /dev/null
@@ -1,64 +0,0 @@
-/**
-* DO NOT EDIT THIS FILE.
-* See the following change record for more information,
-* https://www.drupal.org/node/2815083
-* @preserve
-**/
-
-(function (Drupal, CKEDITOR) {
-  CKEDITOR.plugins.add('drupalmedialibrary', {
-    requires: 'drupalmedia',
-    icons: 'drupalmedialibrary',
-    hidpi: true,
-    beforeInit: function beforeInit(editor) {
-      editor.addCommand('drupalmedialibrary', {
-        allowedContent: {
-          'drupal-media': {
-            attributes: {
-              '!data-entity-type': true,
-              '!data-entity-uuid': true,
-              '!data-view-mode': true,
-              '!data-align': true,
-              '!data-caption': true,
-              '!alt': true,
-              '!title': true
-            },
-            classes: {}
-          }
-        },
-        requiredContent: new CKEDITOR.style({
-          element: 'drupal-media',
-          attributes: {
-            'data-entity-type': '',
-            'data-entity-uuid': ''
-          }
-        }),
-        modes: {
-          wysiwyg: 1
-        },
-        canUndo: true,
-        exec: function exec(editor) {
-          var saveCallback = function saveCallback(values) {
-            editor.fire('saveSnapshot');
-            var mediaElement = editor.document.createElement('drupal-media');
-            var attributes = values.attributes;
-            Object.keys(attributes).forEach(function (key) {
-              mediaElement.setAttribute(key, attributes[key]);
-            });
-            editor.insertHtml(mediaElement.getOuterHtml());
-            editor.fire('saveSnapshot');
-          };
-
-          Drupal.ckeditor.openDialog(editor, editor.config.DrupalMediaLibrary_url, {}, saveCallback, editor.config.DrupalMediaLibrary_dialogOptions);
-        }
-      });
-
-      if (editor.ui.addButton) {
-        editor.ui.addButton('DrupalMediaLibrary', {
-          label: Drupal.t('Insert from Media Library'),
-          command: 'drupalmedialibrary'
-        });
-      }
-    }
-  });
-})(Drupal, CKEDITOR);
\ No newline at end of file
diff --git a/web/modules/ckeditor/js/views/AuralView.es6.js b/web/modules/ckeditor/js/views/AuralView.es6.js
deleted file mode 100644
index e3d0151669289888d6047567b834a0d56c46c103..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/js/views/AuralView.es6.js
+++ /dev/null
@@ -1,266 +0,0 @@
-/**
- * @file
- * A Backbone View that provides the aural view of CKEditor toolbar
- * configuration.
- */
-
-(function (Drupal, Backbone, $) {
-  Drupal.ckeditor.AuralView = Backbone.View.extend(
-    /** @lends Drupal.ckeditor.AuralView# */ {
-      /**
-       * @type {object}
-       */
-      events: {
-        'click .ckeditor-buttons a': 'announceButtonHelp',
-        'click .ckeditor-multiple-buttons a': 'announceSeparatorHelp',
-        'focus .ckeditor-button a': 'onFocus',
-        'focus .ckeditor-button-separator a': 'onFocus',
-        'focus .ckeditor-toolbar-group': 'onFocus',
-      },
-
-      /**
-       * Backbone View for CKEditor toolbar configuration; aural UX (output only).
-       *
-       * @constructs
-       *
-       * @augments Backbone.View
-       */
-      initialize() {
-        // Announce the button and group positions when the model is no longer
-        // dirty.
-        this.listenTo(this.model, 'change:isDirty', this.announceMove);
-      },
-
-      /**
-       * Calls announce on buttons and groups when their position is changed.
-       *
-       * @param {Drupal.ckeditor.ConfigurationModel} model
-       *   The ckeditor configuration model.
-       * @param {bool} isDirty
-       *   A model attribute that indicates if the changed toolbar configuration
-       *   has been stored or not.
-       */
-      announceMove(model, isDirty) {
-        // Announce the position of a button or group after the model has been
-        // updated.
-        if (!isDirty) {
-          const item = document.activeElement || null;
-          if (item) {
-            const $item = $(item);
-            if ($item.hasClass('ckeditor-toolbar-group')) {
-              this.announceButtonGroupPosition($item);
-            } else if ($item.parent().hasClass('ckeditor-button')) {
-              this.announceButtonPosition($item.parent());
-            }
-          }
-        }
-      },
-
-      /**
-       * Handles the focus event of elements in the active and available toolbars.
-       *
-       * @param {jQuery.Event} event
-       *   The focus event that was triggered.
-       */
-      onFocus(event) {
-        event.stopPropagation();
-
-        const $originalTarget = $(event.target);
-        const $currentTarget = $(event.currentTarget);
-        const $parent = $currentTarget.parent();
-        if (
-          $parent.hasClass('ckeditor-button') ||
-          $parent.hasClass('ckeditor-button-separator')
-        ) {
-          this.announceButtonPosition($currentTarget.parent());
-        } else if (
-          $originalTarget.attr('role') !== 'button' &&
-          $currentTarget.hasClass('ckeditor-toolbar-group')
-        ) {
-          this.announceButtonGroupPosition($currentTarget);
-        }
-      },
-
-      /**
-       * Announces the current position of a button group.
-       *
-       * @param {jQuery} $group
-       *   A jQuery set that contains an li element that wraps a group of buttons.
-       */
-      announceButtonGroupPosition($group) {
-        const $groups = $group.parent().children();
-        const $row = $group.closest('.ckeditor-row');
-        const $rows = $row.parent().children();
-        const position = $groups.index($group) + 1;
-        const positionCount = $groups.not('.placeholder').length;
-        const row = $rows.index($row) + 1;
-        const rowCount = $rows.not('.placeholder').length;
-        let text = Drupal.t(
-          '@groupName button group in position @position of @positionCount in row @row of @rowCount.',
-          {
-            '@groupName': $group.attr(
-              'data-drupal-ckeditor-toolbar-group-name',
-            ),
-            '@position': position,
-            '@positionCount': positionCount,
-            '@row': row,
-            '@rowCount': rowCount,
-          },
-        );
-        // If this position is the first in the last row then tell the user that
-        // pressing the down arrow key will create a new row.
-        if (position === 1 && row === rowCount) {
-          text += '\n';
-          text += Drupal.t('Press the down arrow key to create a new row.');
-        }
-        Drupal.announce(text, 'assertive');
-      },
-
-      /**
-       * Announces current button position.
-       *
-       * @param {jQuery} $button
-       *   A jQuery set that contains an li element that wraps a button.
-       */
-      announceButtonPosition($button) {
-        const $row = $button.closest('.ckeditor-row');
-        const $rows = $row.parent().children();
-        const $buttons = $button.closest('.ckeditor-buttons').children();
-        const $group = $button.closest('.ckeditor-toolbar-group');
-        const $groups = $group.parent().children();
-        const groupPosition = $groups.index($group) + 1;
-        const groupPositionCount = $groups.not('.placeholder').length;
-        const position = $buttons.index($button) + 1;
-        const positionCount = $buttons.length;
-        const row = $rows.index($row) + 1;
-        const rowCount = $rows.not('.placeholder').length;
-        // The name of the button separator is 'button separator' and its type
-        // is 'separator', so we do not want to print the type of this item,
-        // otherwise the UA will speak 'button separator separator'.
-        const type =
-          $button.attr('data-drupal-ckeditor-type') === 'separator'
-            ? ''
-            : Drupal.t('button');
-        let text;
-        // The button is located in the available button set.
-        if ($button.closest('.ckeditor-toolbar-disabled').length > 0) {
-          text = Drupal.t('@name @type.', {
-            '@name': $button.children().attr('aria-label'),
-            '@type': type,
-          });
-          text += `\n${Drupal.t('Press the down arrow key to activate.')}`;
-
-          Drupal.announce(text, 'assertive');
-        }
-        // The button is in the active toolbar.
-        else if ($group.not('.placeholder').length === 1) {
-          text = Drupal.t(
-            '@name @type in position @position of @positionCount in @groupName button group in row @row of @rowCount.',
-            {
-              '@name': $button.children().attr('aria-label'),
-              '@type': type,
-              '@position': position,
-              '@positionCount': positionCount,
-              '@groupName': $group.attr(
-                'data-drupal-ckeditor-toolbar-group-name',
-              ),
-              '@row': row,
-              '@rowCount': rowCount,
-            },
-          );
-          // If this position is the first in the last row then tell the user that
-          // pressing the down arrow key will create a new row.
-          if (groupPosition === 1 && position === 1 && row === rowCount) {
-            text += '\n';
-            text += Drupal.t(
-              'Press the down arrow key to create a new button group in a new row.',
-            );
-          }
-          // If this position is the last one in this row then tell the user that
-          // moving the button to the next group will create a new group.
-          if (
-            groupPosition === groupPositionCount &&
-            position === positionCount
-          ) {
-            text += '\n';
-            text += Drupal.t(
-              'This is the last group. Move the button forward to create a new group.',
-            );
-          }
-          Drupal.announce(text, 'assertive');
-        }
-      },
-
-      /**
-       * Provides help information when a button is clicked.
-       *
-       * @param {jQuery.Event} event
-       *   The click event for the button click.
-       */
-      announceButtonHelp(event) {
-        const $link = $(event.currentTarget);
-        const $button = $link.parent();
-        const enabled = $button.closest('.ckeditor-toolbar-active').length > 0;
-        let message;
-
-        if (enabled) {
-          message = Drupal.t('The "@name" button is currently enabled.', {
-            '@name': $link.attr('aria-label'),
-          });
-          message += `\n${Drupal.t(
-            'Use the keyboard arrow keys to change the position of this button.',
-          )}`;
-          message += `\n${Drupal.t(
-            'Press the up arrow key on the top row to disable the button.',
-          )}`;
-        } else {
-          message = Drupal.t('The "@name" button is currently disabled.', {
-            '@name': $link.attr('aria-label'),
-          });
-          message += `\n${Drupal.t(
-            'Use the down arrow key to move this button into the active toolbar.',
-          )}`;
-        }
-        Drupal.announce(message);
-        event.preventDefault();
-      },
-
-      /**
-       * Provides help information when a separator is clicked.
-       *
-       * @param {jQuery.Event} event
-       *   The click event for the separator click.
-       */
-      announceSeparatorHelp(event) {
-        const $link = $(event.currentTarget);
-        const $button = $link.parent();
-        const enabled = $button.closest('.ckeditor-toolbar-active').length > 0;
-        let message;
-
-        if (enabled) {
-          message = Drupal.t('This @name is currently enabled.', {
-            '@name': $link.attr('aria-label'),
-          });
-          message += `\n${Drupal.t(
-            'Use the keyboard arrow keys to change the position of this separator.',
-          )}`;
-        } else {
-          message = Drupal.t(
-            'Separators are used to visually split individual buttons.',
-          );
-          message += `\n${Drupal.t('This @name is currently disabled.', {
-            '@name': $link.attr('aria-label'),
-          })}`;
-          message += `\n${Drupal.t(
-            'Use the down arrow key to move this separator into the active toolbar.',
-          )}`;
-          message += `\n${Drupal.t(
-            'You may add multiple separators to each button group.',
-          )}`;
-        }
-        Drupal.announce(message);
-        event.preventDefault();
-      },
-    },
-  );
-})(Drupal, Backbone, jQuery);
diff --git a/web/modules/ckeditor/js/views/AuralView.js b/web/modules/ckeditor/js/views/AuralView.js
deleted file mode 100644
index 6ffd0e324090ed1297766298a76a6fe31e5cde7d..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/js/views/AuralView.js
+++ /dev/null
@@ -1,162 +0,0 @@
-/**
-* DO NOT EDIT THIS FILE.
-* See the following change record for more information,
-* https://www.drupal.org/node/2815083
-* @preserve
-**/
-
-(function (Drupal, Backbone, $) {
-  Drupal.ckeditor.AuralView = Backbone.View.extend({
-    events: {
-      'click .ckeditor-buttons a': 'announceButtonHelp',
-      'click .ckeditor-multiple-buttons a': 'announceSeparatorHelp',
-      'focus .ckeditor-button a': 'onFocus',
-      'focus .ckeditor-button-separator a': 'onFocus',
-      'focus .ckeditor-toolbar-group': 'onFocus'
-    },
-    initialize: function initialize() {
-      this.listenTo(this.model, 'change:isDirty', this.announceMove);
-    },
-    announceMove: function announceMove(model, isDirty) {
-      if (!isDirty) {
-        var item = document.activeElement || null;
-
-        if (item) {
-          var $item = $(item);
-
-          if ($item.hasClass('ckeditor-toolbar-group')) {
-            this.announceButtonGroupPosition($item);
-          } else if ($item.parent().hasClass('ckeditor-button')) {
-            this.announceButtonPosition($item.parent());
-          }
-        }
-      }
-    },
-    onFocus: function onFocus(event) {
-      event.stopPropagation();
-      var $originalTarget = $(event.target);
-      var $currentTarget = $(event.currentTarget);
-      var $parent = $currentTarget.parent();
-
-      if ($parent.hasClass('ckeditor-button') || $parent.hasClass('ckeditor-button-separator')) {
-        this.announceButtonPosition($currentTarget.parent());
-      } else if ($originalTarget.attr('role') !== 'button' && $currentTarget.hasClass('ckeditor-toolbar-group')) {
-        this.announceButtonGroupPosition($currentTarget);
-      }
-    },
-    announceButtonGroupPosition: function announceButtonGroupPosition($group) {
-      var $groups = $group.parent().children();
-      var $row = $group.closest('.ckeditor-row');
-      var $rows = $row.parent().children();
-      var position = $groups.index($group) + 1;
-      var positionCount = $groups.not('.placeholder').length;
-      var row = $rows.index($row) + 1;
-      var rowCount = $rows.not('.placeholder').length;
-      var text = Drupal.t('@groupName button group in position @position of @positionCount in row @row of @rowCount.', {
-        '@groupName': $group.attr('data-drupal-ckeditor-toolbar-group-name'),
-        '@position': position,
-        '@positionCount': positionCount,
-        '@row': row,
-        '@rowCount': rowCount
-      });
-
-      if (position === 1 && row === rowCount) {
-        text += '\n';
-        text += Drupal.t('Press the down arrow key to create a new row.');
-      }
-
-      Drupal.announce(text, 'assertive');
-    },
-    announceButtonPosition: function announceButtonPosition($button) {
-      var $row = $button.closest('.ckeditor-row');
-      var $rows = $row.parent().children();
-      var $buttons = $button.closest('.ckeditor-buttons').children();
-      var $group = $button.closest('.ckeditor-toolbar-group');
-      var $groups = $group.parent().children();
-      var groupPosition = $groups.index($group) + 1;
-      var groupPositionCount = $groups.not('.placeholder').length;
-      var position = $buttons.index($button) + 1;
-      var positionCount = $buttons.length;
-      var row = $rows.index($row) + 1;
-      var rowCount = $rows.not('.placeholder').length;
-      var type = $button.attr('data-drupal-ckeditor-type') === 'separator' ? '' : Drupal.t('button');
-      var text;
-
-      if ($button.closest('.ckeditor-toolbar-disabled').length > 0) {
-        text = Drupal.t('@name @type.', {
-          '@name': $button.children().attr('aria-label'),
-          '@type': type
-        });
-        text += "\n".concat(Drupal.t('Press the down arrow key to activate.'));
-        Drupal.announce(text, 'assertive');
-      } else if ($group.not('.placeholder').length === 1) {
-        text = Drupal.t('@name @type in position @position of @positionCount in @groupName button group in row @row of @rowCount.', {
-          '@name': $button.children().attr('aria-label'),
-          '@type': type,
-          '@position': position,
-          '@positionCount': positionCount,
-          '@groupName': $group.attr('data-drupal-ckeditor-toolbar-group-name'),
-          '@row': row,
-          '@rowCount': rowCount
-        });
-
-        if (groupPosition === 1 && position === 1 && row === rowCount) {
-          text += '\n';
-          text += Drupal.t('Press the down arrow key to create a new button group in a new row.');
-        }
-
-        if (groupPosition === groupPositionCount && position === positionCount) {
-          text += '\n';
-          text += Drupal.t('This is the last group. Move the button forward to create a new group.');
-        }
-
-        Drupal.announce(text, 'assertive');
-      }
-    },
-    announceButtonHelp: function announceButtonHelp(event) {
-      var $link = $(event.currentTarget);
-      var $button = $link.parent();
-      var enabled = $button.closest('.ckeditor-toolbar-active').length > 0;
-      var message;
-
-      if (enabled) {
-        message = Drupal.t('The "@name" button is currently enabled.', {
-          '@name': $link.attr('aria-label')
-        });
-        message += "\n".concat(Drupal.t('Use the keyboard arrow keys to change the position of this button.'));
-        message += "\n".concat(Drupal.t('Press the up arrow key on the top row to disable the button.'));
-      } else {
-        message = Drupal.t('The "@name" button is currently disabled.', {
-          '@name': $link.attr('aria-label')
-        });
-        message += "\n".concat(Drupal.t('Use the down arrow key to move this button into the active toolbar.'));
-      }
-
-      Drupal.announce(message);
-      event.preventDefault();
-    },
-    announceSeparatorHelp: function announceSeparatorHelp(event) {
-      var $link = $(event.currentTarget);
-      var $button = $link.parent();
-      var enabled = $button.closest('.ckeditor-toolbar-active').length > 0;
-      var message;
-
-      if (enabled) {
-        message = Drupal.t('This @name is currently enabled.', {
-          '@name': $link.attr('aria-label')
-        });
-        message += "\n".concat(Drupal.t('Use the keyboard arrow keys to change the position of this separator.'));
-      } else {
-        message = Drupal.t('Separators are used to visually split individual buttons.');
-        message += "\n".concat(Drupal.t('This @name is currently disabled.', {
-          '@name': $link.attr('aria-label')
-        }));
-        message += "\n".concat(Drupal.t('Use the down arrow key to move this separator into the active toolbar.'));
-        message += "\n".concat(Drupal.t('You may add multiple separators to each button group.'));
-      }
-
-      Drupal.announce(message);
-      event.preventDefault();
-    }
-  });
-})(Drupal, Backbone, jQuery);
\ No newline at end of file
diff --git a/web/modules/ckeditor/js/views/ControllerView.es6.js b/web/modules/ckeditor/js/views/ControllerView.es6.js
deleted file mode 100644
index 270442ee830039cd1811b4f4b4ccbc9833f6c538..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/js/views/ControllerView.es6.js
+++ /dev/null
@@ -1,419 +0,0 @@
-/**
- * @file
- * A Backbone View acting as a controller for CKEditor toolbar configuration.
- */
-
-(function ($, Drupal, Backbone, CKEDITOR, _) {
-  Drupal.ckeditor.ControllerView = Backbone.View.extend(
-    /** @lends Drupal.ckeditor.ControllerView# */ {
-      /**
-       * @type {object}
-       */
-      events: {},
-
-      /**
-       * Backbone View acting as a controller for CKEditor toolbar configuration.
-       *
-       * @constructs
-       *
-       * @augments Backbone.View
-       */
-      initialize() {
-        this.getCKEditorFeatures(
-          this.model.get('hiddenEditorConfig'),
-          this.disableFeaturesDisallowedByFilters.bind(this),
-        );
-
-        // Push the active editor configuration to the textarea.
-        this.model.listenTo(
-          this.model,
-          'change:activeEditorConfig',
-          this.model.sync,
-        );
-        this.listenTo(this.model, 'change:isDirty', this.parseEditorDOM);
-      },
-
-      /**
-       * Converts the active toolbar DOM structure to an object representation.
-       *
-       * @param {Drupal.ckeditor.ConfigurationModel} model
-       *   The state model for the CKEditor configuration.
-       * @param {bool} isDirty
-       *   Tracks whether the active toolbar DOM structure has been changed.
-       *   isDirty is toggled back to false in this method.
-       * @param {object} options
-       *   An object that includes:
-       * @param {bool} [options.broadcast]
-       *   A flag that controls whether a CKEditorToolbarChanged event should be
-       *   fired for configuration changes.
-       *
-       * @fires event:CKEditorToolbarChanged
-       */
-      parseEditorDOM(model, isDirty, options) {
-        if (isDirty) {
-          const currentConfig = this.model.get('activeEditorConfig');
-
-          // Process the rows.
-          const rows = [];
-          this.$el
-            .find('.ckeditor-active-toolbar-configuration')
-            .children('.ckeditor-row')
-            .each(function () {
-              const groups = [];
-              // Process the button groups.
-              $(this)
-                .find('.ckeditor-toolbar-group')
-                .each(function () {
-                  const $group = $(this);
-                  const $buttons = $group.find('.ckeditor-button');
-                  if ($buttons.length) {
-                    const group = {
-                      name: $group.attr(
-                        'data-drupal-ckeditor-toolbar-group-name',
-                      ),
-                      items: [],
-                    };
-                    $group
-                      .find('.ckeditor-button, .ckeditor-multiple-button')
-                      .each(function () {
-                        group.items.push(
-                          $(this).attr('data-drupal-ckeditor-button-name'),
-                        );
-                      });
-                    groups.push(group);
-                  }
-                });
-              if (groups.length) {
-                rows.push(groups);
-              }
-            });
-          this.model.set('activeEditorConfig', rows);
-          // Mark the model as clean. Whether or not the sync to the textfield
-          // occurs depends on the activeEditorConfig attribute firing a change
-          // event. The DOM has at least been processed and posted, so as far as
-          // the model is concerned, it is clean.
-          this.model.set('isDirty', false);
-
-          // Determine whether we should trigger an event.
-          if (options.broadcast !== false) {
-            const prev = this.getButtonList(currentConfig);
-            const next = this.getButtonList(rows);
-            if (prev.length !== next.length) {
-              this.$el
-                .find('.ckeditor-toolbar-active')
-                .trigger('CKEditorToolbarChanged', [
-                  prev.length < next.length ? 'added' : 'removed',
-                  _.difference(
-                    _.union(prev, next),
-                    _.intersection(prev, next),
-                  )[0],
-                ]);
-            }
-          }
-        }
-      },
-
-      /**
-       * Asynchronously retrieve the metadata for all available CKEditor features.
-       *
-       * In order to get a list of all features needed by CKEditor, we create a
-       * hidden CKEditor instance, then check the CKEditor's "allowedContent"
-       * filter settings. Because creating an instance is expensive, a callback
-       * must be provided that will receive a hash of {@link Drupal.EditorFeature}
-       * features keyed by feature (button) name.
-       *
-       * @param {object} CKEditorConfig
-       *   An object that represents the configuration settings for a CKEditor
-       *   editor component.
-       * @param {function} callback
-       *   A function to invoke when the instanceReady event is fired by the
-       *   CKEditor object.
-       */
-      getCKEditorFeatures(CKEditorConfig, callback) {
-        const getProperties = function (CKEPropertiesList) {
-          return _.isObject(CKEPropertiesList) ? _.keys(CKEPropertiesList) : [];
-        };
-
-        const convertCKERulesToEditorFeature = function (
-          feature,
-          CKEFeatureRules,
-        ) {
-          for (let i = 0; i < CKEFeatureRules.length; i++) {
-            const CKERule = CKEFeatureRules[i];
-            const rule = new Drupal.EditorFeatureHTMLRule();
-
-            // Tags.
-            const tags = getProperties(CKERule.elements);
-            rule.required.tags = CKERule.propertiesOnly ? [] : tags;
-            rule.allowed.tags = tags;
-            // Attributes.
-            rule.required.attributes = getProperties(
-              CKERule.requiredAttributes,
-            );
-            rule.allowed.attributes = getProperties(CKERule.attributes);
-            // Styles.
-            rule.required.styles = getProperties(CKERule.requiredStyles);
-            rule.allowed.styles = getProperties(CKERule.styles);
-            // Classes.
-            rule.required.classes = getProperties(CKERule.requiredClasses);
-            rule.allowed.classes = getProperties(CKERule.classes);
-            // Raw.
-            rule.raw = CKERule;
-
-            feature.addHTMLRule(rule);
-          }
-        };
-
-        // Create hidden CKEditor with all features enabled, retrieve metadata.
-        // @see \Drupal\ckeditor\Plugin\Editor\CKEditor::buildConfigurationForm().
-        const hiddenCKEditorID = 'ckeditor-hidden';
-        if (CKEDITOR.instances[hiddenCKEditorID]) {
-          CKEDITOR.instances[hiddenCKEditorID].destroy(true);
-        }
-        // Load external plugins, if any.
-        const hiddenEditorConfig = this.model.get('hiddenEditorConfig');
-        if (hiddenEditorConfig.drupalExternalPlugins) {
-          const externalPlugins = hiddenEditorConfig.drupalExternalPlugins;
-          Object.keys(externalPlugins || {}).forEach((pluginName) => {
-            CKEDITOR.plugins.addExternal(
-              pluginName,
-              externalPlugins[pluginName],
-              '',
-            );
-          });
-        }
-        CKEDITOR.inline($(`#${hiddenCKEditorID}`).get(0), CKEditorConfig);
-
-        // Once the instance is ready, retrieve the allowedContent filter rules
-        // and convert them to Drupal.EditorFeature objects.
-        CKEDITOR.once('instanceReady', (e) => {
-          if (e.editor.name === hiddenCKEditorID) {
-            // First collect all CKEditor allowedContent rules.
-            const CKEFeatureRulesMap = {};
-            const rules = e.editor.filter.allowedContent;
-            let rule;
-            let name;
-            for (let i = 0; i < rules.length; i++) {
-              rule = rules[i];
-              name = rule.featureName || ':(';
-              if (!CKEFeatureRulesMap[name]) {
-                CKEFeatureRulesMap[name] = [];
-              }
-              CKEFeatureRulesMap[name].push(rule);
-            }
-
-            // Now convert these to Drupal.EditorFeature objects. And track which
-            // buttons are mapped to which features.
-            // @see getFeatureForButton()
-            const features = {};
-            const buttonsToFeatures = {};
-            Object.keys(CKEFeatureRulesMap).forEach((featureName) => {
-              const feature = new Drupal.EditorFeature(featureName);
-              convertCKERulesToEditorFeature(
-                feature,
-                CKEFeatureRulesMap[featureName],
-              );
-              features[featureName] = feature;
-              const command = e.editor.getCommand(featureName);
-              if (command) {
-                buttonsToFeatures[command.uiItems[0].name] = featureName;
-              }
-            });
-
-            callback(features, buttonsToFeatures);
-          }
-        });
-      },
-
-      /**
-       * Retrieves the feature for a given button from featuresMetadata. Returns
-       * false if the given button is in fact a divider.
-       *
-       * @param {string} button
-       *   The name of a CKEditor button.
-       *
-       * @return {object}
-       *   The feature metadata object for a button.
-       */
-      getFeatureForButton(button) {
-        // Return false if the button being added is a divider.
-        if (button === '-') {
-          return false;
-        }
-
-        // Get a Drupal.editorFeature object that contains all metadata for
-        // the feature that was just added or removed. Not every feature has
-        // such metadata.
-        let featureName =
-          this.model.get('buttonsToFeatures')[button.toLowerCase()];
-        // Features without an associated command do not have a 'feature name' by
-        // default, so we use the lowercased button name instead.
-        if (!featureName) {
-          featureName = button.toLowerCase();
-        }
-        const featuresMetadata = this.model.get('featuresMetadata');
-        if (!featuresMetadata[featureName]) {
-          featuresMetadata[featureName] = new Drupal.EditorFeature(featureName);
-          this.model.set('featuresMetadata', featuresMetadata);
-        }
-        return featuresMetadata[featureName];
-      },
-
-      /**
-       * Checks buttons against filter settings; disables disallowed buttons.
-       *
-       * @param {object} features
-       *   A map of {@link Drupal.EditorFeature} objects.
-       * @param {object} buttonsToFeatures
-       *   Object containing the button-to-feature mapping.
-       *
-       * @see Drupal.ckeditor.ControllerView#getFeatureForButton
-       */
-      disableFeaturesDisallowedByFilters(features, buttonsToFeatures) {
-        this.model.set('featuresMetadata', features);
-        // Store the button-to-feature mapping. Needs to happen only once, because
-        // the same buttons continue to have the same features; only the rules for
-        // specific features may change.
-        // @see getFeatureForButton()
-        this.model.set('buttonsToFeatures', buttonsToFeatures);
-
-        // Ensure that toolbar configuration changes are broadcast.
-        this.broadcastConfigurationChanges(this.$el);
-
-        // Initialization: not all of the default toolbar buttons may be allowed
-        // by the current filter settings. Remove any of the default toolbar
-        // buttons that require more permissive filter settings. The remaining
-        // default toolbar buttons are marked as "added".
-        let existingButtons = [];
-        // Loop through each button group after flattening the groups from the
-        // toolbar row arrays.
-        const buttonGroups = _.flatten(this.model.get('activeEditorConfig'));
-        for (let i = 0; i < buttonGroups.length; i++) {
-          // Pull the button names from each toolbar button group.
-          const buttons = buttonGroups[i].items;
-          for (let k = 0; k < buttons.length; k++) {
-            existingButtons.push(buttons[k]);
-          }
-        }
-        // Remove duplicate buttons.
-        existingButtons = _.unique(existingButtons);
-        // Prepare the active toolbar and available-button toolbars.
-        for (let n = 0; n < existingButtons.length; n++) {
-          const button = existingButtons[n];
-          const feature = this.getFeatureForButton(button);
-          // Skip dividers.
-          if (feature === false) {
-            continue;
-          }
-
-          if (Drupal.editorConfiguration.featureIsAllowedByFilters(feature)) {
-            // Existing toolbar buttons are in fact "added features".
-            this.$el
-              .find('.ckeditor-toolbar-active')
-              .trigger('CKEditorToolbarChanged', ['added', existingButtons[n]]);
-          } else {
-            // Move the button element from the active the active toolbar to the
-            // list of available buttons.
-            $(
-              `.ckeditor-toolbar-active li[data-drupal-ckeditor-button-name="${button}"]`,
-            )
-              .detach()
-              .appendTo(
-                '.ckeditor-toolbar-disabled > .ckeditor-toolbar-available > ul',
-              );
-            // Update the toolbar value field.
-            this.model.set({ isDirty: true }, { broadcast: false });
-          }
-        }
-      },
-
-      /**
-       * Sets up broadcasting of CKEditor toolbar configuration changes.
-       *
-       * @param {jQuery} $ckeditorToolbar
-       *   The active toolbar DOM element wrapped in jQuery.
-       */
-      broadcastConfigurationChanges($ckeditorToolbar) {
-        const view = this;
-        const hiddenEditorConfig = this.model.get('hiddenEditorConfig');
-        const getFeatureForButton = this.getFeatureForButton.bind(this);
-        const getCKEditorFeatures = this.getCKEditorFeatures.bind(this);
-        $ckeditorToolbar
-          .find('.ckeditor-toolbar-active')
-          // Listen for CKEditor toolbar configuration changes. When a button is
-          // added/removed, call an appropriate Drupal.editorConfiguration method.
-          .on(
-            'CKEditorToolbarChanged.ckeditorAdmin',
-            (event, action, button) => {
-              const feature = getFeatureForButton(button);
-
-              // Early-return if the button being added is a divider.
-              if (feature === false) {
-                return;
-              }
-
-              // Trigger a standardized text editor configuration event to indicate
-              // whether a feature was added or removed, so that filters can react.
-              const configEvent =
-                action === 'added' ? 'addedFeature' : 'removedFeature';
-              Drupal.editorConfiguration[configEvent](feature);
-            },
-          )
-          // Listen for CKEditor plugin settings changes. When a plugin setting is
-          // changed, rebuild the CKEditor features metadata.
-          .on(
-            'CKEditorPluginSettingsChanged.ckeditorAdmin',
-            (event, settingsChanges) => {
-              // Update hidden CKEditor configuration.
-              Object.keys(settingsChanges || {}).forEach((key) => {
-                hiddenEditorConfig[key] = settingsChanges[key];
-              });
-
-              // Retrieve features for the updated hidden CKEditor configuration.
-              getCKEditorFeatures(hiddenEditorConfig, (features) => {
-                // Trigger a standardized text editor configuration event for each
-                // feature that was modified by the configuration changes.
-                const featuresMetadata = view.model.get('featuresMetadata');
-                Object.keys(features || {}).forEach((name) => {
-                  const feature = features[name];
-                  if (
-                    featuresMetadata.hasOwnProperty(name) &&
-                    !_.isEqual(featuresMetadata[name], feature)
-                  ) {
-                    Drupal.editorConfiguration.modifiedFeature(feature);
-                  }
-                });
-                // Update the CKEditor features metadata.
-                view.model.set('featuresMetadata', features);
-              });
-            },
-          );
-      },
-
-      /**
-       * Returns the list of buttons from an editor configuration.
-       *
-       * @param {object} config
-       *   A CKEditor configuration object.
-       *
-       * @return {Array}
-       *   A list of buttons in the CKEditor configuration.
-       */
-      getButtonList(config) {
-        const buttons = [];
-        // Remove the rows.
-        config = _.flatten(config);
-
-        // Loop through the button groups and pull out the buttons.
-        config.forEach((group) => {
-          group.items.forEach((button) => {
-            buttons.push(button);
-          });
-        });
-
-        // Remove the dividing elements if any.
-        return _.without(buttons, '-');
-      },
-    },
-  );
-})(jQuery, Drupal, Backbone, CKEDITOR, _);
diff --git a/web/modules/ckeditor/js/views/ControllerView.js b/web/modules/ckeditor/js/views/ControllerView.js
deleted file mode 100644
index 3194d62f65619a05a8968f507aa88ff95cd33a4c..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/js/views/ControllerView.js
+++ /dev/null
@@ -1,228 +0,0 @@
-/**
-* DO NOT EDIT THIS FILE.
-* See the following change record for more information,
-* https://www.drupal.org/node/2815083
-* @preserve
-**/
-
-(function ($, Drupal, Backbone, CKEDITOR, _) {
-  Drupal.ckeditor.ControllerView = Backbone.View.extend({
-    events: {},
-    initialize: function initialize() {
-      this.getCKEditorFeatures(this.model.get('hiddenEditorConfig'), this.disableFeaturesDisallowedByFilters.bind(this));
-      this.model.listenTo(this.model, 'change:activeEditorConfig', this.model.sync);
-      this.listenTo(this.model, 'change:isDirty', this.parseEditorDOM);
-    },
-    parseEditorDOM: function parseEditorDOM(model, isDirty, options) {
-      if (isDirty) {
-        var currentConfig = this.model.get('activeEditorConfig');
-        var rows = [];
-        this.$el.find('.ckeditor-active-toolbar-configuration').children('.ckeditor-row').each(function () {
-          var groups = [];
-          $(this).find('.ckeditor-toolbar-group').each(function () {
-            var $group = $(this);
-            var $buttons = $group.find('.ckeditor-button');
-
-            if ($buttons.length) {
-              var group = {
-                name: $group.attr('data-drupal-ckeditor-toolbar-group-name'),
-                items: []
-              };
-              $group.find('.ckeditor-button, .ckeditor-multiple-button').each(function () {
-                group.items.push($(this).attr('data-drupal-ckeditor-button-name'));
-              });
-              groups.push(group);
-            }
-          });
-
-          if (groups.length) {
-            rows.push(groups);
-          }
-        });
-        this.model.set('activeEditorConfig', rows);
-        this.model.set('isDirty', false);
-
-        if (options.broadcast !== false) {
-          var prev = this.getButtonList(currentConfig);
-          var next = this.getButtonList(rows);
-
-          if (prev.length !== next.length) {
-            this.$el.find('.ckeditor-toolbar-active').trigger('CKEditorToolbarChanged', [prev.length < next.length ? 'added' : 'removed', _.difference(_.union(prev, next), _.intersection(prev, next))[0]]);
-          }
-        }
-      }
-    },
-    getCKEditorFeatures: function getCKEditorFeatures(CKEditorConfig, callback) {
-      var getProperties = function getProperties(CKEPropertiesList) {
-        return _.isObject(CKEPropertiesList) ? _.keys(CKEPropertiesList) : [];
-      };
-
-      var convertCKERulesToEditorFeature = function convertCKERulesToEditorFeature(feature, CKEFeatureRules) {
-        for (var i = 0; i < CKEFeatureRules.length; i++) {
-          var CKERule = CKEFeatureRules[i];
-          var rule = new Drupal.EditorFeatureHTMLRule();
-          var tags = getProperties(CKERule.elements);
-          rule.required.tags = CKERule.propertiesOnly ? [] : tags;
-          rule.allowed.tags = tags;
-          rule.required.attributes = getProperties(CKERule.requiredAttributes);
-          rule.allowed.attributes = getProperties(CKERule.attributes);
-          rule.required.styles = getProperties(CKERule.requiredStyles);
-          rule.allowed.styles = getProperties(CKERule.styles);
-          rule.required.classes = getProperties(CKERule.requiredClasses);
-          rule.allowed.classes = getProperties(CKERule.classes);
-          rule.raw = CKERule;
-          feature.addHTMLRule(rule);
-        }
-      };
-
-      var hiddenCKEditorID = 'ckeditor-hidden';
-
-      if (CKEDITOR.instances[hiddenCKEditorID]) {
-        CKEDITOR.instances[hiddenCKEditorID].destroy(true);
-      }
-
-      var hiddenEditorConfig = this.model.get('hiddenEditorConfig');
-
-      if (hiddenEditorConfig.drupalExternalPlugins) {
-        var externalPlugins = hiddenEditorConfig.drupalExternalPlugins;
-        Object.keys(externalPlugins || {}).forEach(function (pluginName) {
-          CKEDITOR.plugins.addExternal(pluginName, externalPlugins[pluginName], '');
-        });
-      }
-
-      CKEDITOR.inline($("#".concat(hiddenCKEditorID)).get(0), CKEditorConfig);
-      CKEDITOR.once('instanceReady', function (e) {
-        if (e.editor.name === hiddenCKEditorID) {
-          var CKEFeatureRulesMap = {};
-          var rules = e.editor.filter.allowedContent;
-          var rule;
-          var name;
-
-          for (var i = 0; i < rules.length; i++) {
-            rule = rules[i];
-            name = rule.featureName || ':(';
-
-            if (!CKEFeatureRulesMap[name]) {
-              CKEFeatureRulesMap[name] = [];
-            }
-
-            CKEFeatureRulesMap[name].push(rule);
-          }
-
-          var features = {};
-          var buttonsToFeatures = {};
-          Object.keys(CKEFeatureRulesMap).forEach(function (featureName) {
-            var feature = new Drupal.EditorFeature(featureName);
-            convertCKERulesToEditorFeature(feature, CKEFeatureRulesMap[featureName]);
-            features[featureName] = feature;
-            var command = e.editor.getCommand(featureName);
-
-            if (command) {
-              buttonsToFeatures[command.uiItems[0].name] = featureName;
-            }
-          });
-          callback(features, buttonsToFeatures);
-        }
-      });
-    },
-    getFeatureForButton: function getFeatureForButton(button) {
-      if (button === '-') {
-        return false;
-      }
-
-      var featureName = this.model.get('buttonsToFeatures')[button.toLowerCase()];
-
-      if (!featureName) {
-        featureName = button.toLowerCase();
-      }
-
-      var featuresMetadata = this.model.get('featuresMetadata');
-
-      if (!featuresMetadata[featureName]) {
-        featuresMetadata[featureName] = new Drupal.EditorFeature(featureName);
-        this.model.set('featuresMetadata', featuresMetadata);
-      }
-
-      return featuresMetadata[featureName];
-    },
-    disableFeaturesDisallowedByFilters: function disableFeaturesDisallowedByFilters(features, buttonsToFeatures) {
-      this.model.set('featuresMetadata', features);
-      this.model.set('buttonsToFeatures', buttonsToFeatures);
-      this.broadcastConfigurationChanges(this.$el);
-      var existingButtons = [];
-
-      var buttonGroups = _.flatten(this.model.get('activeEditorConfig'));
-
-      for (var i = 0; i < buttonGroups.length; i++) {
-        var buttons = buttonGroups[i].items;
-
-        for (var k = 0; k < buttons.length; k++) {
-          existingButtons.push(buttons[k]);
-        }
-      }
-
-      existingButtons = _.unique(existingButtons);
-
-      for (var n = 0; n < existingButtons.length; n++) {
-        var button = existingButtons[n];
-        var feature = this.getFeatureForButton(button);
-
-        if (feature === false) {
-          continue;
-        }
-
-        if (Drupal.editorConfiguration.featureIsAllowedByFilters(feature)) {
-          this.$el.find('.ckeditor-toolbar-active').trigger('CKEditorToolbarChanged', ['added', existingButtons[n]]);
-        } else {
-          $(".ckeditor-toolbar-active li[data-drupal-ckeditor-button-name=\"".concat(button, "\"]")).detach().appendTo('.ckeditor-toolbar-disabled > .ckeditor-toolbar-available > ul');
-          this.model.set({
-            isDirty: true
-          }, {
-            broadcast: false
-          });
-        }
-      }
-    },
-    broadcastConfigurationChanges: function broadcastConfigurationChanges($ckeditorToolbar) {
-      var view = this;
-      var hiddenEditorConfig = this.model.get('hiddenEditorConfig');
-      var getFeatureForButton = this.getFeatureForButton.bind(this);
-      var getCKEditorFeatures = this.getCKEditorFeatures.bind(this);
-      $ckeditorToolbar.find('.ckeditor-toolbar-active').on('CKEditorToolbarChanged.ckeditorAdmin', function (event, action, button) {
-        var feature = getFeatureForButton(button);
-
-        if (feature === false) {
-          return;
-        }
-
-        var configEvent = action === 'added' ? 'addedFeature' : 'removedFeature';
-        Drupal.editorConfiguration[configEvent](feature);
-      }).on('CKEditorPluginSettingsChanged.ckeditorAdmin', function (event, settingsChanges) {
-        Object.keys(settingsChanges || {}).forEach(function (key) {
-          hiddenEditorConfig[key] = settingsChanges[key];
-        });
-        getCKEditorFeatures(hiddenEditorConfig, function (features) {
-          var featuresMetadata = view.model.get('featuresMetadata');
-          Object.keys(features || {}).forEach(function (name) {
-            var feature = features[name];
-
-            if (featuresMetadata.hasOwnProperty(name) && !_.isEqual(featuresMetadata[name], feature)) {
-              Drupal.editorConfiguration.modifiedFeature(feature);
-            }
-          });
-          view.model.set('featuresMetadata', features);
-        });
-      });
-    },
-    getButtonList: function getButtonList(config) {
-      var buttons = [];
-      config = _.flatten(config);
-      config.forEach(function (group) {
-        group.items.forEach(function (button) {
-          buttons.push(button);
-        });
-      });
-      return _.without(buttons, '-');
-    }
-  });
-})(jQuery, Drupal, Backbone, CKEDITOR, _);
\ No newline at end of file
diff --git a/web/modules/ckeditor/js/views/KeyboardView.es6.js b/web/modules/ckeditor/js/views/KeyboardView.es6.js
deleted file mode 100644
index 764889b66ce155493b055d5e7ba5b483e23ad39d..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/js/views/KeyboardView.es6.js
+++ /dev/null
@@ -1,307 +0,0 @@
-/**
- * @file
- * Backbone View providing the aural view of CKEditor keyboard UX configuration.
- */
-
-(function ($, Drupal, Backbone, _) {
-  Drupal.ckeditor.KeyboardView = Backbone.View.extend(
-    /** @lends Drupal.ckeditor.KeyboardView# */ {
-      /**
-       * Backbone View for CKEditor toolbar configuration; keyboard UX.
-       *
-       * @constructs
-       *
-       * @augments Backbone.View
-       */
-      initialize() {
-        // Add keyboard arrow support.
-        this.$el.on(
-          'keydown.ckeditor',
-          '.ckeditor-buttons a, .ckeditor-multiple-buttons a',
-          this.onPressButton.bind(this),
-        );
-        this.$el.on(
-          'keydown.ckeditor',
-          '[data-drupal-ckeditor-type="group"]',
-          this.onPressGroup.bind(this),
-        );
-      },
-
-      /**
-       * {@inheritdoc}
-       */
-      render() {},
-
-      /**
-       * Handles keypresses on a CKEditor configuration button.
-       *
-       * @param {jQuery.Event} event
-       *   The keypress event triggered.
-       */
-      onPressButton(event) {
-        const upDownKeys = [
-          38, // Up arrow.
-          63232, // Safari up arrow.
-          40, // Down arrow.
-          63233, // Safari down arrow.
-        ];
-        const leftRightKeys = [
-          37, // Left arrow.
-          63234, // Safari left arrow.
-          39, // Right arrow.
-          63235, // Safari right arrow.
-        ];
-
-        // Respond to an enter key press. Prevent the bubbling of the enter key
-        // press to the button group parent element.
-        if (event.keyCode === 13) {
-          event.stopPropagation();
-        }
-
-        // Only take action when a direction key is pressed.
-        if (_.indexOf(_.union(upDownKeys, leftRightKeys), event.keyCode) > -1) {
-          let view = this;
-          let $target = $(event.currentTarget);
-          let $button = $target.parent();
-          const $container = $button.parent();
-          let $group = $button.closest('.ckeditor-toolbar-group');
-          let $row;
-          const containerType = $container.data(
-            'drupal-ckeditor-button-sorting',
-          );
-          const $availableButtons = this.$el.find(
-            '[data-drupal-ckeditor-button-sorting="source"]',
-          );
-          const $activeButtons = this.$el.find('.ckeditor-toolbar-active');
-          // The current location of the button, just in case it needs to be put
-          // back.
-          const $originalGroup = $group;
-          let dir;
-
-          // Move available buttons between their container and the active
-          // toolbar.
-          if (containerType === 'source') {
-            // Move the button to the active toolbar configuration when the down
-            // or up keys are pressed.
-            if (_.indexOf([40, 63233], event.keyCode) > -1) {
-              // Move the button to the first row, first button group index
-              // position.
-              $activeButtons
-                .find('.ckeditor-toolbar-group-buttons')
-                .eq(0)
-                .prepend($button);
-            }
-          } else if (containerType === 'target') {
-            // Move buttons between sibling buttons in a group and between groups.
-            if (_.indexOf(leftRightKeys, event.keyCode) > -1) {
-              // Move left.
-              const $siblings = $container.children();
-              const index = $siblings.index($button);
-              if (_.indexOf([37, 63234], event.keyCode) > -1) {
-                // Move between sibling buttons.
-                if (index > 0) {
-                  $button.insertBefore($container.children().eq(index - 1));
-                }
-                // Move between button groups and rows.
-                else {
-                  // Move between button groups.
-                  $group = $container.parent().prev();
-                  if ($group.length > 0) {
-                    $group
-                      .find('.ckeditor-toolbar-group-buttons')
-                      .append($button);
-                  }
-                  // Wrap between rows.
-                  else {
-                    $container
-                      .closest('.ckeditor-row')
-                      .prev()
-                      .find('.ckeditor-toolbar-group')
-                      .not('.placeholder')
-                      .find('.ckeditor-toolbar-group-buttons')
-                      .eq(-1)
-                      .append($button);
-                  }
-                }
-              }
-              // Move right.
-              else if (_.indexOf([39, 63235], event.keyCode) > -1) {
-                // Move between sibling buttons.
-                if (index < $siblings.length - 1) {
-                  $button.insertAfter($container.children().eq(index + 1));
-                }
-                // Move between button groups. Moving right at the end of a row
-                // will create a new group.
-                else {
-                  $container
-                    .parent()
-                    .next()
-                    .find('.ckeditor-toolbar-group-buttons')
-                    .prepend($button);
-                }
-              }
-            }
-            // Move buttons between rows and the available button set.
-            else if (_.indexOf(upDownKeys, event.keyCode) > -1) {
-              dir =
-                _.indexOf([38, 63232], event.keyCode) > -1 ? 'prev' : 'next';
-              $row = $container.closest('.ckeditor-row')[dir]();
-              // Move the button back into the available button set.
-              if (dir === 'prev' && $row.length === 0) {
-                // If this is a divider, just destroy it.
-                if ($button.data('drupal-ckeditor-type') === 'separator') {
-                  $button.off().remove();
-                  // Focus on the first button in the active toolbar.
-                  $activeButtons
-                    .find('.ckeditor-toolbar-group-buttons')
-                    .eq(0)
-                    .children()
-                    .eq(0)
-                    .children()
-                    .trigger('focus');
-                }
-                // Otherwise, move it.
-                else {
-                  $availableButtons.prepend($button);
-                }
-              } else {
-                $row
-                  .find('.ckeditor-toolbar-group-buttons')
-                  .eq(0)
-                  .prepend($button);
-              }
-            }
-          }
-          // Move dividers between their container and the active toolbar.
-          else if (containerType === 'dividers') {
-            // Move the button to the active toolbar configuration when the down
-            // or up keys are pressed.
-            if (_.indexOf([40, 63233], event.keyCode) > -1) {
-              // Move the button to the first row, first button group index
-              // position.
-              $button = $button.clone(true);
-              $activeButtons
-                .find('.ckeditor-toolbar-group-buttons')
-                .eq(0)
-                .prepend($button);
-              $target = $button.children();
-            }
-          }
-
-          view = this;
-          // Attempt to move the button to the new toolbar position.
-          Drupal.ckeditor.registerButtonMove(this, $button, (result) => {
-            // Put the button back if the registration failed.
-            // If the button was in a row, then it was in the active toolbar
-            // configuration. The button was probably placed in a new group, but
-            // that action was canceled.
-            if (!result && $originalGroup) {
-              $originalGroup.find('.ckeditor-buttons').append($button);
-            }
-            // Refocus the target button so that the user can continue from a
-            // known place.
-            $target.trigger('focus');
-          });
-
-          event.preventDefault();
-          event.stopPropagation();
-        }
-      },
-
-      /**
-       * Handles keypresses on a CKEditor configuration group.
-       *
-       * @param {jQuery.Event} event
-       *   The keypress event triggered.
-       */
-      onPressGroup(event) {
-        const upDownKeys = [
-          38, // Up arrow.
-          63232, // Safari up arrow.
-          40, // Down arrow.
-          63233, // Safari down arrow.
-        ];
-        const leftRightKeys = [
-          37, // Left arrow.
-          63234, // Safari left arrow.
-          39, // Right arrow.
-          63235, // Safari right arrow.
-        ];
-
-        // Respond to an enter key press.
-        if (event.keyCode === 13) {
-          const view = this;
-          // Open the group renaming dialog in the next evaluation cycle so that
-          // this event can be cancelled and the bubbling wiped out. Otherwise,
-          // Firefox has issues because the page focus is shifted to the dialog
-          // along with the keydown event.
-          window.setTimeout(() => {
-            Drupal.ckeditor.openGroupNameDialog(view, $(event.currentTarget));
-          }, 0);
-          event.preventDefault();
-          event.stopPropagation();
-        }
-
-        // Respond to direction key presses.
-        if (_.indexOf(_.union(upDownKeys, leftRightKeys), event.keyCode) > -1) {
-          const $group = $(event.currentTarget);
-          const $container = $group.parent();
-          const $siblings = $container.children();
-          let index;
-          let dir;
-          // Move groups between sibling groups.
-          if (_.indexOf(leftRightKeys, event.keyCode) > -1) {
-            index = $siblings.index($group);
-            // Move left between sibling groups.
-            if (_.indexOf([37, 63234], event.keyCode) > -1) {
-              if (index > 0) {
-                $group.insertBefore($siblings.eq(index - 1));
-              }
-              // Wrap between rows. Insert the group before the placeholder group
-              // at the end of the previous row.
-              else {
-                const $rowChildElement = $container
-                  .closest('.ckeditor-row')
-                  .prev()
-                  .find('.ckeditor-toolbar-groups')
-                  .children()
-                  .eq(-1);
-                $group.insertBefore($rowChildElement);
-              }
-            }
-            // Move right between sibling groups.
-            else if (_.indexOf([39, 63235], event.keyCode) > -1) {
-              // Move to the right if the next group is not a placeholder.
-              if (!$siblings.eq(index + 1).hasClass('placeholder')) {
-                $group.insertAfter($container.children().eq(index + 1));
-              }
-              // Wrap group between rows.
-              else {
-                $container
-                  .closest('.ckeditor-row')
-                  .next()
-                  .find('.ckeditor-toolbar-groups')
-                  .prepend($group);
-              }
-            }
-          }
-          // Move groups between rows.
-          else if (_.indexOf(upDownKeys, event.keyCode) > -1) {
-            dir = _.indexOf([38, 63232], event.keyCode) > -1 ? 'prev' : 'next';
-            $group
-              .closest('.ckeditor-row')
-              [dir]()
-              .find('.ckeditor-toolbar-groups')
-              .eq(0)
-              .prepend($group);
-          }
-
-          Drupal.ckeditor.registerGroupMove(this, $group);
-          $group.trigger('focus');
-          event.preventDefault();
-          event.stopPropagation();
-        }
-      },
-    },
-  );
-})(jQuery, Drupal, Backbone, _);
diff --git a/web/modules/ckeditor/js/views/KeyboardView.js b/web/modules/ckeditor/js/views/KeyboardView.js
deleted file mode 100644
index c1761ac626f79282638f3128fabc413fa4e49a3d..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/js/views/KeyboardView.js
+++ /dev/null
@@ -1,148 +0,0 @@
-/**
-* DO NOT EDIT THIS FILE.
-* See the following change record for more information,
-* https://www.drupal.org/node/2815083
-* @preserve
-**/
-
-(function ($, Drupal, Backbone, _) {
-  Drupal.ckeditor.KeyboardView = Backbone.View.extend({
-    initialize: function initialize() {
-      this.$el.on('keydown.ckeditor', '.ckeditor-buttons a, .ckeditor-multiple-buttons a', this.onPressButton.bind(this));
-      this.$el.on('keydown.ckeditor', '[data-drupal-ckeditor-type="group"]', this.onPressGroup.bind(this));
-    },
-    render: function render() {},
-    onPressButton: function onPressButton(event) {
-      var upDownKeys = [38, 63232, 40, 63233];
-      var leftRightKeys = [37, 63234, 39, 63235];
-
-      if (event.keyCode === 13) {
-        event.stopPropagation();
-      }
-
-      if (_.indexOf(_.union(upDownKeys, leftRightKeys), event.keyCode) > -1) {
-        var view = this;
-        var $target = $(event.currentTarget);
-        var $button = $target.parent();
-        var $container = $button.parent();
-        var $group = $button.closest('.ckeditor-toolbar-group');
-        var $row;
-        var containerType = $container.data('drupal-ckeditor-button-sorting');
-        var $availableButtons = this.$el.find('[data-drupal-ckeditor-button-sorting="source"]');
-        var $activeButtons = this.$el.find('.ckeditor-toolbar-active');
-        var $originalGroup = $group;
-        var dir;
-
-        if (containerType === 'source') {
-          if (_.indexOf([40, 63233], event.keyCode) > -1) {
-            $activeButtons.find('.ckeditor-toolbar-group-buttons').eq(0).prepend($button);
-          }
-        } else if (containerType === 'target') {
-          if (_.indexOf(leftRightKeys, event.keyCode) > -1) {
-            var $siblings = $container.children();
-            var index = $siblings.index($button);
-
-            if (_.indexOf([37, 63234], event.keyCode) > -1) {
-              if (index > 0) {
-                $button.insertBefore($container.children().eq(index - 1));
-              } else {
-                $group = $container.parent().prev();
-
-                if ($group.length > 0) {
-                  $group.find('.ckeditor-toolbar-group-buttons').append($button);
-                } else {
-                  $container.closest('.ckeditor-row').prev().find('.ckeditor-toolbar-group').not('.placeholder').find('.ckeditor-toolbar-group-buttons').eq(-1).append($button);
-                }
-              }
-            } else if (_.indexOf([39, 63235], event.keyCode) > -1) {
-              if (index < $siblings.length - 1) {
-                $button.insertAfter($container.children().eq(index + 1));
-              } else {
-                $container.parent().next().find('.ckeditor-toolbar-group-buttons').prepend($button);
-              }
-            }
-          } else if (_.indexOf(upDownKeys, event.keyCode) > -1) {
-            dir = _.indexOf([38, 63232], event.keyCode) > -1 ? 'prev' : 'next';
-            $row = $container.closest('.ckeditor-row')[dir]();
-
-            if (dir === 'prev' && $row.length === 0) {
-              if ($button.data('drupal-ckeditor-type') === 'separator') {
-                $button.off().remove();
-                $activeButtons.find('.ckeditor-toolbar-group-buttons').eq(0).children().eq(0).children().trigger('focus');
-              } else {
-                $availableButtons.prepend($button);
-              }
-            } else {
-              $row.find('.ckeditor-toolbar-group-buttons').eq(0).prepend($button);
-            }
-          }
-        } else if (containerType === 'dividers') {
-          if (_.indexOf([40, 63233], event.keyCode) > -1) {
-            $button = $button.clone(true);
-            $activeButtons.find('.ckeditor-toolbar-group-buttons').eq(0).prepend($button);
-            $target = $button.children();
-          }
-        }
-
-        view = this;
-        Drupal.ckeditor.registerButtonMove(this, $button, function (result) {
-          if (!result && $originalGroup) {
-            $originalGroup.find('.ckeditor-buttons').append($button);
-          }
-
-          $target.trigger('focus');
-        });
-        event.preventDefault();
-        event.stopPropagation();
-      }
-    },
-    onPressGroup: function onPressGroup(event) {
-      var upDownKeys = [38, 63232, 40, 63233];
-      var leftRightKeys = [37, 63234, 39, 63235];
-
-      if (event.keyCode === 13) {
-        var view = this;
-        window.setTimeout(function () {
-          Drupal.ckeditor.openGroupNameDialog(view, $(event.currentTarget));
-        }, 0);
-        event.preventDefault();
-        event.stopPropagation();
-      }
-
-      if (_.indexOf(_.union(upDownKeys, leftRightKeys), event.keyCode) > -1) {
-        var $group = $(event.currentTarget);
-        var $container = $group.parent();
-        var $siblings = $container.children();
-        var index;
-        var dir;
-
-        if (_.indexOf(leftRightKeys, event.keyCode) > -1) {
-          index = $siblings.index($group);
-
-          if (_.indexOf([37, 63234], event.keyCode) > -1) {
-            if (index > 0) {
-              $group.insertBefore($siblings.eq(index - 1));
-            } else {
-              var $rowChildElement = $container.closest('.ckeditor-row').prev().find('.ckeditor-toolbar-groups').children().eq(-1);
-              $group.insertBefore($rowChildElement);
-            }
-          } else if (_.indexOf([39, 63235], event.keyCode) > -1) {
-            if (!$siblings.eq(index + 1).hasClass('placeholder')) {
-              $group.insertAfter($container.children().eq(index + 1));
-            } else {
-              $container.closest('.ckeditor-row').next().find('.ckeditor-toolbar-groups').prepend($group);
-            }
-          }
-        } else if (_.indexOf(upDownKeys, event.keyCode) > -1) {
-          dir = _.indexOf([38, 63232], event.keyCode) > -1 ? 'prev' : 'next';
-          $group.closest('.ckeditor-row')[dir]().find('.ckeditor-toolbar-groups').eq(0).prepend($group);
-        }
-
-        Drupal.ckeditor.registerGroupMove(this, $group);
-        $group.trigger('focus');
-        event.preventDefault();
-        event.stopPropagation();
-      }
-    }
-  });
-})(jQuery, Drupal, Backbone, _);
\ No newline at end of file
diff --git a/web/modules/ckeditor/js/views/VisualView.es6.js b/web/modules/ckeditor/js/views/VisualView.es6.js
deleted file mode 100644
index b0095d9c844dd4bf41e4432e9e0fd18b8dcba4c0..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/js/views/VisualView.es6.js
+++ /dev/null
@@ -1,302 +0,0 @@
-/**
- * @file
- * A Backbone View that provides the visual UX view of CKEditor toolbar
- *   configuration.
- */
-
-(function (Drupal, Backbone, $, Sortable) {
-  Drupal.ckeditor.VisualView = Backbone.View.extend(
-    /** @lends Drupal.ckeditor.VisualView# */ {
-      events: {
-        'click .ckeditor-toolbar-group-name': 'onGroupNameClick',
-        'click .ckeditor-groupnames-toggle': 'onGroupNamesToggleClick',
-        'click .ckeditor-add-new-group button': 'onAddGroupButtonClick',
-      },
-
-      /**
-       * Backbone View for CKEditor toolbar configuration; visual UX.
-       *
-       * @constructs
-       *
-       * @augments Backbone.View
-       */
-      initialize() {
-        this.listenTo(
-          this.model,
-          'change:isDirty change:groupNamesVisible',
-          this.render,
-        );
-
-        // Add a toggle for the button group names.
-        $(Drupal.theme('ckeditorButtonGroupNamesToggle')).prependTo(
-          this.$el.find('#ckeditor-active-toolbar').parent(),
-        );
-
-        this.render();
-      },
-
-      /**
-       * Render function for rendering the toolbar configuration.
-       *
-       * @param {*} model
-       *   Model used for the view.
-       * @param {string} [value]
-       *   The value that was changed.
-       * @param {object} changedAttributes
-       *   The attributes that was changed.
-       *
-       * @return {Drupal.ckeditor.VisualView}
-       *   The {@link Drupal.ckeditor.VisualView} object.
-       */
-      render(model, value, changedAttributes) {
-        this.insertPlaceholders();
-        this.applySorting();
-
-        // Toggle button group names.
-        let groupNamesVisible = this.model.get('groupNamesVisible');
-        // If a button was just placed in the active toolbar, ensure that the
-        // button group names are visible.
-        if (
-          changedAttributes &&
-          changedAttributes.changes &&
-          changedAttributes.changes.isDirty
-        ) {
-          this.model.set({ groupNamesVisible: true }, { silent: true });
-          groupNamesVisible = true;
-        }
-        this.$el
-          .find('[data-toolbar="active"]')
-          .toggleClass('ckeditor-group-names-are-visible', groupNamesVisible);
-        const $toggle = this.$el.find('.ckeditor-groupnames-toggle');
-        $toggle
-          .each((index, element) => {
-            element.textContent = groupNamesVisible
-              ? Drupal.t('Hide group names')
-              : Drupal.t('Show group names');
-          })
-          .attr('aria-pressed', groupNamesVisible);
-        return this;
-      },
-
-      /**
-       * Handles clicks to a button group name.
-       *
-       * @param {jQuery.Event} event
-       *   The click event on the button group.
-       */
-      onGroupNameClick(event) {
-        const $group = $(event.currentTarget).closest(
-          '.ckeditor-toolbar-group',
-        );
-        Drupal.ckeditor.openGroupNameDialog(this, $group);
-
-        event.stopPropagation();
-        event.preventDefault();
-      },
-
-      /**
-       * Handles clicks on the button group names toggle button.
-       *
-       * @param {jQuery.Event} event
-       *   The click event on the toggle button.
-       */
-      onGroupNamesToggleClick(event) {
-        this.model.set(
-          'groupNamesVisible',
-          !this.model.get('groupNamesVisible'),
-        );
-        event.preventDefault();
-      },
-
-      /**
-       * Prompts the user to provide a name for a new button group; inserts it.
-       *
-       * @param {jQuery.Event} event
-       *   The event of the button click.
-       */
-      onAddGroupButtonClick(event) {
-        /**
-         * Inserts a new button if the openGroupNameDialog function returns true.
-         *
-         * @param {bool} success
-         *   A flag that indicates if the user created a new group (true) or
-         *   canceled out of the dialog (false).
-         * @param {jQuery} $group
-         *   A jQuery DOM fragment that represents the new button group. It has
-         *   not been added to the DOM yet.
-         */
-        function insertNewGroup(success, $group) {
-          if (success) {
-            $group.appendTo(
-              $(event.currentTarget)
-                .closest('.ckeditor-row')
-                .children('.ckeditor-toolbar-groups'),
-            );
-            // Focus on the new group.
-            $group.trigger('focus');
-          }
-        }
-
-        // Pass in a DOM fragment of a placeholder group so that the new group
-        // name can be applied to it.
-        Drupal.ckeditor.openGroupNameDialog(
-          this,
-          $(Drupal.theme('ckeditorToolbarGroup')),
-          insertNewGroup,
-        );
-
-        event.preventDefault();
-      },
-
-      /**
-       * Handles Sortable stop sort of a button group.
-       *
-       * @param {CustomEvent} event
-       *   The event triggered on the group drag.
-       */
-      endGroupDrag(event) {
-        const $item = $(event.item);
-        Drupal.ckeditor.registerGroupMove(this, $item);
-      },
-
-      /**
-       * Handles Sortable start sort of a button.
-       *
-       * @param {CustomEvent} event
-       *   The event triggered on the button drag.
-       */
-      startButtonDrag(event) {
-        this.$el.find('a:focus').trigger('blur');
-
-        // Show the button group names as soon as the user starts dragging.
-        this.model.set('groupNamesVisible', true);
-      },
-
-      /**
-       * Handles Sortable stop sort of a button.
-       *
-       * @param {CustomEvent} event
-       *   The event triggered on the button drag.
-       */
-      endButtonDrag(event) {
-        const $item = $(event.item);
-
-        Drupal.ckeditor.registerButtonMove(this, $item, (success) => {
-          // Refocus the target button so that the user can continue
-          // from a known place.
-          $item.find('a').trigger('focus');
-        });
-      },
-
-      /**
-       * Invokes Sortable() on new buttons and groups in a CKEditor config.
-       * Array.prototype.forEach is used here because of the lack of support for
-       * NodeList.forEach in older browsers.
-       */
-      applySorting() {
-        // Make the buttons sortable.
-        Array.prototype.forEach.call(
-          this.el.querySelectorAll('.ckeditor-buttons:not(.js-sortable)'),
-          (buttons) => {
-            buttons.classList.add('js-sortable');
-            Sortable.create(buttons, {
-              ghostClass: 'ckeditor-button-placeholder',
-              group: 'ckeditor-buttons',
-              onStart: this.startButtonDrag.bind(this),
-              onEnd: this.endButtonDrag.bind(this),
-            });
-          },
-        );
-
-        Array.prototype.forEach.call(
-          this.el.querySelectorAll(
-            '.ckeditor-toolbar-groups:not(.js-sortable)',
-          ),
-          (buttons) => {
-            buttons.classList.add('js-sortable');
-            Sortable.create(buttons, {
-              ghostClass: 'ckeditor-toolbar-group-placeholder',
-              onEnd: this.endGroupDrag.bind(this),
-            });
-          },
-        );
-
-        Array.prototype.forEach.call(
-          this.el.querySelectorAll(
-            '.ckeditor-multiple-buttons:not(.js-sortable)',
-          ),
-          (buttons) => {
-            buttons.classList.add('js-sortable');
-            Sortable.create(buttons, {
-              group: {
-                name: 'ckeditor-buttons',
-                pull: 'clone',
-              },
-              onEnd: this.endButtonDrag.bind(this),
-            });
-          },
-        );
-      },
-
-      /**
-       * Wraps the invocation of methods to insert blank groups and rows.
-       */
-      insertPlaceholders() {
-        this.insertPlaceholderRow();
-        this.insertNewGroupButtons();
-      },
-
-      /**
-       * Inserts a blank row at the bottom of the CKEditor configuration.
-       */
-      insertPlaceholderRow() {
-        let $rows = this.$el.find('.ckeditor-row');
-        // Add a placeholder row. to the end of the list if one does not exist.
-        if (!$rows.eq(-1).hasClass('placeholder')) {
-          this.$el
-            .find('.ckeditor-toolbar-active')
-            .children('.ckeditor-active-toolbar-configuration')
-            .append(Drupal.theme('ckeditorRow'));
-        }
-        // Update the $rows variable to include the new row.
-        $rows = this.$el.find('.ckeditor-row');
-        // Remove blank rows except the last one.
-        const len = $rows.length;
-        $rows
-          .filter((index, row) => {
-            // Do not remove the last row.
-            if (index + 1 === len) {
-              return false;
-            }
-            return (
-              $(row).find('.ckeditor-toolbar-group').not('.placeholder')
-                .length === 0
-            );
-          })
-          // Then get all rows that are placeholders and remove them.
-          .remove();
-      },
-
-      /**
-       * Inserts a button in each row that will add a new CKEditor button group.
-       */
-      insertNewGroupButtons() {
-        // Insert an add group button to each row.
-        this.$el.find('.ckeditor-row').each(function () {
-          const $row = $(this);
-          const $groups = $row.find('.ckeditor-toolbar-group');
-          const $button = $row.find('.ckeditor-add-new-group');
-          if ($button.length === 0) {
-            $row
-              .children('.ckeditor-toolbar-groups')
-              .append(Drupal.theme('ckeditorNewButtonGroup'));
-          }
-          // If a placeholder group exists, make sure it's at the end of the row.
-          else if (!$groups.eq(-1).hasClass('ckeditor-add-new-group')) {
-            $button.appendTo($row.children('.ckeditor-toolbar-groups'));
-          }
-        });
-      },
-    },
-  );
-})(Drupal, Backbone, jQuery, Sortable);
diff --git a/web/modules/ckeditor/js/views/VisualView.js b/web/modules/ckeditor/js/views/VisualView.js
deleted file mode 100644
index e7125d9ac7f2ea69757835524fbbdb4c4ac72d7a..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/js/views/VisualView.js
+++ /dev/null
@@ -1,141 +0,0 @@
-/**
-* DO NOT EDIT THIS FILE.
-* See the following change record for more information,
-* https://www.drupal.org/node/2815083
-* @preserve
-**/
-
-(function (Drupal, Backbone, $, Sortable) {
-  Drupal.ckeditor.VisualView = Backbone.View.extend({
-    events: {
-      'click .ckeditor-toolbar-group-name': 'onGroupNameClick',
-      'click .ckeditor-groupnames-toggle': 'onGroupNamesToggleClick',
-      'click .ckeditor-add-new-group button': 'onAddGroupButtonClick'
-    },
-    initialize: function initialize() {
-      this.listenTo(this.model, 'change:isDirty change:groupNamesVisible', this.render);
-      $(Drupal.theme('ckeditorButtonGroupNamesToggle')).prependTo(this.$el.find('#ckeditor-active-toolbar').parent());
-      this.render();
-    },
-    render: function render(model, value, changedAttributes) {
-      this.insertPlaceholders();
-      this.applySorting();
-      var groupNamesVisible = this.model.get('groupNamesVisible');
-
-      if (changedAttributes && changedAttributes.changes && changedAttributes.changes.isDirty) {
-        this.model.set({
-          groupNamesVisible: true
-        }, {
-          silent: true
-        });
-        groupNamesVisible = true;
-      }
-
-      this.$el.find('[data-toolbar="active"]').toggleClass('ckeditor-group-names-are-visible', groupNamesVisible);
-      var $toggle = this.$el.find('.ckeditor-groupnames-toggle');
-      $toggle.each(function (index, element) {
-        element.textContent = groupNamesVisible ? Drupal.t('Hide group names') : Drupal.t('Show group names');
-      }).attr('aria-pressed', groupNamesVisible);
-      return this;
-    },
-    onGroupNameClick: function onGroupNameClick(event) {
-      var $group = $(event.currentTarget).closest('.ckeditor-toolbar-group');
-      Drupal.ckeditor.openGroupNameDialog(this, $group);
-      event.stopPropagation();
-      event.preventDefault();
-    },
-    onGroupNamesToggleClick: function onGroupNamesToggleClick(event) {
-      this.model.set('groupNamesVisible', !this.model.get('groupNamesVisible'));
-      event.preventDefault();
-    },
-    onAddGroupButtonClick: function onAddGroupButtonClick(event) {
-      function insertNewGroup(success, $group) {
-        if (success) {
-          $group.appendTo($(event.currentTarget).closest('.ckeditor-row').children('.ckeditor-toolbar-groups'));
-          $group.trigger('focus');
-        }
-      }
-
-      Drupal.ckeditor.openGroupNameDialog(this, $(Drupal.theme('ckeditorToolbarGroup')), insertNewGroup);
-      event.preventDefault();
-    },
-    endGroupDrag: function endGroupDrag(event) {
-      var $item = $(event.item);
-      Drupal.ckeditor.registerGroupMove(this, $item);
-    },
-    startButtonDrag: function startButtonDrag(event) {
-      this.$el.find('a:focus').trigger('blur');
-      this.model.set('groupNamesVisible', true);
-    },
-    endButtonDrag: function endButtonDrag(event) {
-      var $item = $(event.item);
-      Drupal.ckeditor.registerButtonMove(this, $item, function (success) {
-        $item.find('a').trigger('focus');
-      });
-    },
-    applySorting: function applySorting() {
-      var _this = this;
-
-      Array.prototype.forEach.call(this.el.querySelectorAll('.ckeditor-buttons:not(.js-sortable)'), function (buttons) {
-        buttons.classList.add('js-sortable');
-        Sortable.create(buttons, {
-          ghostClass: 'ckeditor-button-placeholder',
-          group: 'ckeditor-buttons',
-          onStart: _this.startButtonDrag.bind(_this),
-          onEnd: _this.endButtonDrag.bind(_this)
-        });
-      });
-      Array.prototype.forEach.call(this.el.querySelectorAll('.ckeditor-toolbar-groups:not(.js-sortable)'), function (buttons) {
-        buttons.classList.add('js-sortable');
-        Sortable.create(buttons, {
-          ghostClass: 'ckeditor-toolbar-group-placeholder',
-          onEnd: _this.endGroupDrag.bind(_this)
-        });
-      });
-      Array.prototype.forEach.call(this.el.querySelectorAll('.ckeditor-multiple-buttons:not(.js-sortable)'), function (buttons) {
-        buttons.classList.add('js-sortable');
-        Sortable.create(buttons, {
-          group: {
-            name: 'ckeditor-buttons',
-            pull: 'clone'
-          },
-          onEnd: _this.endButtonDrag.bind(_this)
-        });
-      });
-    },
-    insertPlaceholders: function insertPlaceholders() {
-      this.insertPlaceholderRow();
-      this.insertNewGroupButtons();
-    },
-    insertPlaceholderRow: function insertPlaceholderRow() {
-      var $rows = this.$el.find('.ckeditor-row');
-
-      if (!$rows.eq(-1).hasClass('placeholder')) {
-        this.$el.find('.ckeditor-toolbar-active').children('.ckeditor-active-toolbar-configuration').append(Drupal.theme('ckeditorRow'));
-      }
-
-      $rows = this.$el.find('.ckeditor-row');
-      var len = $rows.length;
-      $rows.filter(function (index, row) {
-        if (index + 1 === len) {
-          return false;
-        }
-
-        return $(row).find('.ckeditor-toolbar-group').not('.placeholder').length === 0;
-      }).remove();
-    },
-    insertNewGroupButtons: function insertNewGroupButtons() {
-      this.$el.find('.ckeditor-row').each(function () {
-        var $row = $(this);
-        var $groups = $row.find('.ckeditor-toolbar-group');
-        var $button = $row.find('.ckeditor-add-new-group');
-
-        if ($button.length === 0) {
-          $row.children('.ckeditor-toolbar-groups').append(Drupal.theme('ckeditorNewButtonGroup'));
-        } else if (!$groups.eq(-1).hasClass('ckeditor-add-new-group')) {
-          $button.appendTo($row.children('.ckeditor-toolbar-groups'));
-        }
-      });
-    }
-  });
-})(Drupal, Backbone, jQuery, Sortable);
\ No newline at end of file
diff --git a/web/modules/ckeditor/src/Ajax/AddStyleSheetCommand.php b/web/modules/ckeditor/src/Ajax/AddStyleSheetCommand.php
deleted file mode 100644
index 2ae2ed9d9c7a558195c613c3ce1ef1c1840e0ec6..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/src/Ajax/AddStyleSheetCommand.php
+++ /dev/null
@@ -1,64 +0,0 @@
-<?php
-
-namespace Drupal\ckeditor\Ajax;
-
-use Drupal\Core\Ajax\CommandInterface;
-
-/**
- * AJAX command to add style sheets to a CKEditor instance.
- */
-class AddStyleSheetCommand implements CommandInterface {
-
-  /**
-   * The CKEditor instance ID.
-   *
-   * @var string
-   */
-  protected $editorId;
-
-  /**
-   * The style sheet URLs to add to the CKEditor instance.
-   *
-   * @var string[]
-   */
-  protected $styleSheets = [];
-
-  /**
-   * AddStyleSheetCommand constructor.
-   *
-   * @param string $editor_id
-   *   The CKEditor instance ID.
-   * @param string[] $stylesheets
-   *   The style sheet URLs to add to the CKEditor instance.
-   */
-  public function __construct($editor_id, array $stylesheets = []) {
-    $this->editorId = $editor_id;
-    $this->styleSheets = $stylesheets;
-  }
-
-  /**
-   * Adds a style sheet to the CKEditor instance.
-   *
-   * @param string $stylesheet
-   *   The style sheet URL.
-   *
-   * @return $this
-   *   The called object, for chaining.
-   */
-  public function addStyleSheet($stylesheet) {
-    $this->styleSheets[] = $stylesheet;
-    return $this;
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  public function render() {
-    return [
-      'command' => 'ckeditor_add_stylesheet',
-      'editor_id' => $this->editorId,
-      'stylesheets' => $this->styleSheets,
-    ];
-  }
-
-}
diff --git a/web/modules/ckeditor/src/Annotation/CKEditorPlugin.php b/web/modules/ckeditor/src/Annotation/CKEditorPlugin.php
deleted file mode 100644
index 155d5dd496108e8a5fb123d499860fcf147b3b1a..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/src/Annotation/CKEditorPlugin.php
+++ /dev/null
@@ -1,44 +0,0 @@
-<?php
-
-namespace Drupal\ckeditor\Annotation;
-
-use Drupal\Component\Annotation\Plugin;
-
-/**
- * Defines a CKEditorPlugin annotation object.
- *
- * Plugin Namespace: Plugin\CKEditorPlugin
- *
- * For a working example, see \Drupal\ckeditor\Plugin\CKEditorPlugin\DrupalImage
- *
- * @see \Drupal\ckeditor\CKEditorPluginInterface
- * @see \Drupal\ckeditor\CKEditorPluginBase
- * @see \Drupal\ckeditor\CKEditorPluginManager
- * @see hook_ckeditor_plugin_info_alter()
- * @see plugin_api
- *
- * @Annotation
- */
-class CKEditorPlugin extends Plugin {
-
-  /**
-   * The plugin ID.
-   *
-   * This MUST match the name of the CKEditor plugin itself (written in
-   * JavaScript). Otherwise CKEditor will throw JavaScript errors when it runs,
-   * because it fails to load this CKEditor plugin.
-   *
-   * @var string
-   */
-  public $id;
-
-  /**
-   * The human-readable name of the CKEditor plugin.
-   *
-   * @ingroup plugin_translatable
-   *
-   * @var \Drupal\Core\Annotation\Translation
-   */
-  public $label;
-
-}
diff --git a/web/modules/ckeditor/src/CKEditorPluginBase.php b/web/modules/ckeditor/src/CKEditorPluginBase.php
deleted file mode 100644
index aa76200519cdc5bd2793145da4e4fcd69d341283..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/src/CKEditorPluginBase.php
+++ /dev/null
@@ -1,93 +0,0 @@
-<?php
-
-namespace Drupal\ckeditor;
-
-use Drupal\Core\Extension\ModuleExtensionList;
-use Drupal\Core\Plugin\PluginBase;
-use Drupal\editor\Entity\Editor;
-
-/**
- * Defines a base CKEditor plugin implementation.
- *
- * No other CKEditor plugins can be internal, unless a different CKEditor build
- * than the one provided by Drupal core is used. Most CKEditor plugins don't
- * need to provide additional settings forms.
- *
- * This base class assumes that your plugin has buttons that you want to be
- * enabled through the toolbar builder UI. It is still possible to also
- * implement the CKEditorPluginContextualInterface (for contextual enabling) and
- * CKEditorPluginConfigurableInterface interfaces (for configuring plugin
- * settings).
- *
- * NOTE: the Drupal plugin ID should correspond to the CKEditor plugin name.
- *
- * @see \Drupal\ckeditor\CKEditorPluginInterface
- * @see \Drupal\ckeditor\CKEditorPluginButtonsInterface
- * @see \Drupal\ckeditor\CKEditorPluginContextualInterface
- * @see \Drupal\ckeditor\CKEditorPluginConfigurableInterface
- * @see \Drupal\ckeditor\CKEditorPluginManager
- * @see \Drupal\ckeditor\Annotation\CKEditorPlugin
- * @see plugin_api
- */
-abstract class CKEditorPluginBase extends PluginBase implements CKEditorPluginInterface, CKEditorPluginButtonsInterface {
-
-  /**
-   * The module list service.
-   *
-   * @var \Drupal\Core\Extension\ModuleExtensionList
-   */
-  protected $moduleList;
-
-  /**
-   * Gets the module list service.
-   *
-   * @return \Drupal\Core\Extension\ModuleExtensionList
-   *   The module extension list service.
-   */
-  protected function getModuleList(): ModuleExtensionList {
-    if (!$this->moduleList) {
-      $this->moduleList = \Drupal::service('extension.list.module');
-    }
-    return $this->moduleList;
-  }
-
-  /**
-   * Gets the Drupal-root relative installation directory of a module.
-   *
-   * @param string $module_name
-   *   The machine name of the module.
-   *
-   * @return string
-   *   The module installation directory.
-   *
-   * @throws \InvalidArgumentException
-   *   If there is no extension with the supplied machine name.
-   *
-   * @see \Drupal\Core\Extension\ExtensionList::getPath()
-   */
-  protected function getModulePath(string $module_name): string {
-    return $this->getModuleList()->getPath($module_name);
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  public function isInternal() {
-    return FALSE;
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  public function getDependencies(Editor $editor) {
-    return [];
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  public function getLibraries(Editor $editor) {
-    return [];
-  }
-
-}
diff --git a/web/modules/ckeditor/src/CKEditorPluginButtonsInterface.php b/web/modules/ckeditor/src/CKEditorPluginButtonsInterface.php
deleted file mode 100644
index 4b2d1281e7760e19986eaccdae747c218e52e3a9..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/src/CKEditorPluginButtonsInterface.php
+++ /dev/null
@@ -1,58 +0,0 @@
-<?php
-
-namespace Drupal\ckeditor;
-
-/**
- * Defines an interface for CKEditor plugins with buttons.
- *
- * This allows a CKEditor plugin to define which buttons it provides, so that
- * users can configure a CKEditor toolbar instance via the toolbar builder UI.
- * If at least one button that this plugin provides is added to the toolbar via
- * the toolbar builder UI, then this plugin will be enabled automatically.
- *
- * If a CKEditor plugin implements this interface, it can still also implement
- * CKEditorPluginContextualInterface if it wants a button to conditionally be
- * added as well. The downside of conditionally adding buttons is that the user
- * cannot see these buttons in the toolbar builder UI.
- *
- * @see \Drupal\ckeditor\CKEditorPluginInterface
- * @see \Drupal\ckeditor\CKEditorPluginContextualInterface
- * @see \Drupal\ckeditor\CKEditorPluginConfigurableInterface
- * @see \Drupal\ckeditor\CKEditorPluginCssInterface
- * @see \Drupal\ckeditor\CKEditorPluginBase
- * @see \Drupal\ckeditor\CKEditorPluginManager
- * @see \Drupal\ckeditor\Annotation\CKEditorPlugin
- * @see plugin_api
- */
-interface CKEditorPluginButtonsInterface extends CKEditorPluginInterface {
-
-  /**
-   * Returns the buttons that this plugin provides, along with metadata.
-   *
-   * The metadata is used by the CKEditor module to generate a visual CKEditor
-   * toolbar builder UI.
-   *
-   * @return array
-   *   An array of buttons that are provided by this plugin. This will
-   *   only be used in the administrative section for assembling the toolbar.
-   *   Each button should be keyed by its CKEditor button name (you can look up
-   *   the button name up in the plugin.js file), and should contain an array of
-   *   button properties, including:
-   *   - label: A human-readable, translated button name.
-   *   - image: An image for the button to be used in the toolbar.
-   *   - image_rtl: If the image needs to have a right-to-left version, specify
-   *     an alternative file that will be used in RTL editors.
-   *   - image_alternative: If this button does not render as an image, specify
-   *     an HTML string representing the contents of this button.
-   *   - image_alternative_rtl: Similar to image_alternative, but a
-   *     right-to-left version.
-   *   - attributes: An array of HTML attributes which should be added to this
-   *     button when rendering the button in the administrative section for
-   *     assembling the toolbar.
-   *   - multiple: Boolean value indicating if this button may be added multiple
-   *     times to the toolbar. This typically is only applicable for dividers
-   *     and group indicators.
-   */
-  public function getButtons();
-
-}
diff --git a/web/modules/ckeditor/src/CKEditorPluginConfigurableInterface.php b/web/modules/ckeditor/src/CKEditorPluginConfigurableInterface.php
deleted file mode 100644
index 6c453cae3a5234a53224fe9789e99532247d85bc..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/src/CKEditorPluginConfigurableInterface.php
+++ /dev/null
@@ -1,46 +0,0 @@
-<?php
-
-namespace Drupal\ckeditor;
-
-use Drupal\Core\Form\FormStateInterface;
-use Drupal\editor\Entity\Editor;
-
-/**
- * Defines an interface for configurable CKEditor plugins.
- *
- * This allows a CKEditor plugin to define a settings form. These settings can
- * then be automatically passed on to the corresponding CKEditor instance via
- * CKEditorPluginInterface::getConfig().
- *
- * @see \Drupal\ckeditor\CKEditorPluginInterface
- * @see \Drupal\ckeditor\CKEditorPluginButtonsInterface
- * @see \Drupal\ckeditor\CKEditorPluginContextualInterface
- * @see \Drupal\ckeditor\CKEditorPluginCssInterface
- * @see \Drupal\ckeditor\CKEditorPluginBase
- * @see \Drupal\ckeditor\CKEditorPluginManager
- * @see \Drupal\ckeditor\Annotation\CKEditorPlugin
- * @see plugin_api
- */
-interface CKEditorPluginConfigurableInterface extends CKEditorPluginInterface {
-
-  /**
-   * Returns a settings form to configure this CKEditor plugin.
-   *
-   * If the plugin's behavior depends on extensive options and/or external data,
-   * then the implementing module can choose to provide a separate, global
-   * configuration page rather than per-text-editor settings. In that case, this
-   * form should provide a link to the separate settings page.
-   *
-   * @param array $form
-   *   An empty form array to be populated with a configuration form, if any.
-   * @param \Drupal\Core\Form\FormStateInterface $form_state
-   *   The state of the entire filter administration form.
-   * @param \Drupal\editor\Entity\Editor $editor
-   *   A configured text editor object.
-   *
-   * @return array
-   *   A render array for the settings form.
-   */
-  public function settingsForm(array $form, FormStateInterface $form_state, Editor $editor);
-
-}
diff --git a/web/modules/ckeditor/src/CKEditorPluginContextualInterface.php b/web/modules/ckeditor/src/CKEditorPluginContextualInterface.php
deleted file mode 100644
index 55d9d7a74c20c2ed6a63a51d314e1b22e0d89d64..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/src/CKEditorPluginContextualInterface.php
+++ /dev/null
@@ -1,42 +0,0 @@
-<?php
-
-namespace Drupal\ckeditor;
-
-use Drupal\editor\Entity\Editor;
-
-/**
- * Defines an interface for contextually enabled CKEditor plugins.
- *
- * Contextually enabled CKEditor plugins can be enabled via an explicit setting,
- * or enable themselves based on the configuration of another setting, such as
- * enabling based on a particular button being present in the toolbar.
- *
- * If a contextually enabled CKEditor plugin must also be configurable (for
- * instance, in the case where it must be enabled based on an explicit setting),
- * then one must also implement the CKEditorPluginConfigurableInterface
- * interface.
- *
- * @see \Drupal\ckeditor\CKEditorPluginInterface
- * @see \Drupal\ckeditor\CKEditorPluginButtonsInterface
- * @see \Drupal\ckeditor\CKEditorPluginConfigurableInterface
- * @see \Drupal\ckeditor\CKEditorPluginCssInterface
- * @see \Drupal\ckeditor\CKEditorPluginBase
- * @see \Drupal\ckeditor\CKEditorPluginManager
- * @see \Drupal\ckeditor\Annotation\CKEditorPlugin
- * @see plugin_api
- */
-interface CKEditorPluginContextualInterface extends CKEditorPluginInterface {
-
-  /**
-   * Checks if this plugin should be enabled based on the editor configuration.
-   *
-   * The editor's settings can be retrieved via $editor->getSettings().
-   *
-   * @param \Drupal\editor\Entity\Editor $editor
-   *   A configured text editor object.
-   *
-   * @return bool
-   */
-  public function isEnabled(Editor $editor);
-
-}
diff --git a/web/modules/ckeditor/src/CKEditorPluginCssInterface.php b/web/modules/ckeditor/src/CKEditorPluginCssInterface.php
deleted file mode 100644
index 171a26afabd9f46edb438f9c27a0922af10ef1b9..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/src/CKEditorPluginCssInterface.php
+++ /dev/null
@@ -1,39 +0,0 @@
-<?php
-
-namespace Drupal\ckeditor;
-
-use Drupal\editor\Entity\Editor;
-
-/**
- * Defines an interface for CKEditor plugins with associated CSS.
- *
- * This allows a CKEditor plugin to add additional CSS in iframe CKEditor
- * instances without needing to implement hook_ckeditor_css_alter().
- *
- * @see \Drupal\ckeditor\CKEditorPluginInterface
- * @see \Drupal\ckeditor\CKEditorPluginButtonsInterface
- * @see \Drupal\ckeditor\CKEditorPluginContextualInterface
- * @see \Drupal\ckeditor\CKEditorPluginConfigurableInterface
- * @see \Drupal\ckeditor\CKEditorPluginBase
- * @see \Drupal\ckeditor\CKEditorPluginManager
- * @see \Drupal\ckeditor\Annotation\CKEditorPlugin
- * @see plugin_api
- */
-interface CKEditorPluginCssInterface extends CKEditorPluginInterface {
-
-  /**
-   * Retrieves enabled plugins' iframe instance CSS files.
-   *
-   * Note: this does not use a Drupal asset library because this CSS will be
-   * loaded by CKEditor, not by Drupal.
-   *
-   * @param \Drupal\editor\Entity\Editor $editor
-   *   A configured text editor object.
-   *
-   * @return string[]
-   *   An array of CSS files. This is a flat list of file paths relative to
-   *   the Drupal root.
-   */
-  public function getCssFiles(Editor $editor);
-
-}
diff --git a/web/modules/ckeditor/src/CKEditorPluginInterface.php b/web/modules/ckeditor/src/CKEditorPluginInterface.php
deleted file mode 100644
index 1f3158b58b715229f2159853b621464a894b6661..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/src/CKEditorPluginInterface.php
+++ /dev/null
@@ -1,102 +0,0 @@
-<?php
-
-namespace Drupal\ckeditor;
-
-use Drupal\Component\Plugin\PluginInspectionInterface;
-use Drupal\editor\Entity\Editor;
-
-/**
- * Defines an interface for (loading of) CKEditor plugins.
- *
- * This is the most basic CKEditor plugin interface; it provides the bare
- * minimum information. Solely implementing this interface is not sufficient to
- * be able to enable the plugin though — a CKEditor plugin can either be enabled
- * automatically when a button it provides is present in the toolbar, or when
- * some programmatically defined condition is true. In the former case,
- * implement the CKEditorPluginButtonsInterface interface, in the latter case,
- * implement the CKEditorPluginContextualInterface interface. It is also
- * possible to implement both, for advanced use cases.
- *
- * Finally, if your plugin must be configurable, you can also implement the
- * CKEditorPluginConfigurableInterface interface.
- *
- * @see \Drupal\ckeditor\CKEditorPluginButtonsInterface
- * @see \Drupal\ckeditor\CKEditorPluginContextualInterface
- * @see \Drupal\ckeditor\CKEditorPluginConfigurableInterface
- * @see \Drupal\ckeditor\CKEditorPluginCssInterface
- * @see \Drupal\ckeditor\CKEditorPluginBase
- * @see \Drupal\ckeditor\CKEditorPluginManager
- * @see \Drupal\ckeditor\Annotation\CKEditorPlugin
- * @see plugin_api
- */
-interface CKEditorPluginInterface extends PluginInspectionInterface {
-
-  /**
-   * Indicates if this plugin is part of the optimized CKEditor build.
-   *
-   * Plugins marked as internal are implicitly loaded as part of CKEditor.
-   *
-   * @return bool
-   */
-  public function isInternal();
-
-  /**
-   * Returns a list of plugins this plugin requires.
-   *
-   * @param \Drupal\editor\Entity\Editor $editor
-   *   A configured text editor object.
-   *
-   * @return array
-   *   An unindexed array of plugin names this plugin requires. Each plugin is
-   *   is identified by its annotated ID.
-   */
-  public function getDependencies(Editor $editor);
-
-  /**
-   * Returns a list of libraries this plugin requires.
-   *
-   * These libraries will be attached to the text_format element on which the
-   * editor is being loaded.
-   *
-   * @param \Drupal\editor\Entity\Editor $editor
-   *   A configured text editor object.
-   *
-   * @return array
-   *   An array of libraries suitable for usage in a render API #attached
-   *   property.
-   */
-  public function getLibraries(Editor $editor);
-
-  /**
-   * Returns the Drupal root-relative file path to the plugin JavaScript file.
-   *
-   * Note: this does not use a Drupal library because this uses CKEditor's API.
-   * @see https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_resourceManager.html#method-addExternal
-   *
-   * @return string|false
-   *   The Drupal root-relative path to the file, FALSE if an internal plugin.
-   */
-  public function getFile();
-
-  /**
-   * Returns the additions to CKEDITOR.config for a specific CKEditor instance.
-   *
-   * The editor's settings can be retrieved via $editor->getSettings(), but be
-   * aware that it may not yet contain plugin-specific settings, because the
-   * user may not yet have configured the form.
-   * If there are plugin-specific settings (verify with isset()), they can be
-   * found at
-   * @code
-   * $settings = $editor->getSettings();
-   * $plugin_specific_settings = $settings['plugins'][$plugin_id];
-   * @endcode
-   *
-   * @param \Drupal\editor\Entity\Editor $editor
-   *   A configured text editor object.
-   *
-   * @return array
-   *   A keyed array, whose keys will end up as keys under CKEDITOR.config.
-   */
-  public function getConfig(Editor $editor);
-
-}
diff --git a/web/modules/ckeditor/src/CKEditorPluginManager.php b/web/modules/ckeditor/src/CKEditorPluginManager.php
deleted file mode 100644
index e3eda0d2b1b6baefaa2f2285673fd0946d52c639..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/src/CKEditorPluginManager.php
+++ /dev/null
@@ -1,222 +0,0 @@
-<?php
-
-namespace Drupal\ckeditor;
-
-use Drupal\Component\Utility\NestedArray;
-use Drupal\Core\Form\FormStateInterface;
-use Drupal\Core\Plugin\DefaultPluginManager;
-use Drupal\Core\Cache\CacheBackendInterface;
-use Drupal\Core\Extension\ModuleHandlerInterface;
-use Drupal\editor\Entity\Editor;
-
-/**
- * Provides a CKEditor Plugin plugin manager.
- *
- * @see \Drupal\ckeditor\CKEditorPluginInterface
- * @see \Drupal\ckeditor\CKEditorPluginButtonsInterface
- * @see \Drupal\ckeditor\CKEditorPluginContextualInterface
- * @see \Drupal\ckeditor\CKEditorPluginConfigurableInterface
- * @see \Drupal\ckeditor\CKEditorPluginCssInterface
- * @see \Drupal\ckeditor\CKEditorPluginBase
- * @see \Drupal\ckeditor\Annotation\CKEditorPlugin
- * @see plugin_api
- */
-class CKEditorPluginManager extends DefaultPluginManager {
-
-  /**
-   * Constructs a CKEditorPluginManager object.
-   *
-   * @param \Traversable $namespaces
-   *   An object that implements \Traversable which contains the root paths
-   *   keyed by the corresponding namespace to look for plugin implementations.
-   * @param \Drupal\Core\Cache\CacheBackendInterface $cache_backend
-   *   Cache backend instance to use.
-   * @param \Drupal\Core\Extension\ModuleHandlerInterface $module_handler
-   *   The module handler to invoke the alter hook with.
-   */
-  public function __construct(\Traversable $namespaces, CacheBackendInterface $cache_backend, ModuleHandlerInterface $module_handler) {
-    parent::__construct('Plugin/CKEditorPlugin', $namespaces, $module_handler, 'Drupal\ckeditor\CKEditorPluginInterface', 'Drupal\ckeditor\Annotation\CKEditorPlugin');
-    $this->alterInfo('ckeditor_plugin_info');
-    $this->setCacheBackend($cache_backend, 'ckeditor_plugins');
-  }
-
-  /**
-   * Retrieves enabled plugins' files, keyed by plugin ID.
-   *
-   * For CKEditor plugins that implement:
-   *  - CKEditorPluginButtonsInterface, not CKEditorPluginContextualInterface,
-   *     a plugin is enabled if at least one of its buttons is in the toolbar;
-   *  - CKEditorPluginContextualInterface, not CKEditorPluginButtonsInterface,
-   *     a plugin is enabled if its isEnabled() method returns TRUE
-   *  - both of these interfaces, a plugin is enabled if either is the case.
-   *
-   * Internal plugins (those that are part of the bundled build of CKEditor) are
-   * excluded by default, since they are loaded implicitly. If you need to know
-   * even implicitly loaded (i.e. internal) plugins, then set the optional
-   * second parameter.
-   *
-   * @param \Drupal\editor\Entity\Editor $editor
-   *   A configured text editor object.
-   * @param bool $include_internal_plugins
-   *   Defaults to FALSE. When set to TRUE, plugins whose isInternal() method
-   *   returns TRUE will also be included.
-   *
-   * @return array
-   *   A list of the enabled CKEditor plugins, with the plugin IDs as keys and
-   *   the Drupal root-relative plugin files as values.
-   *   For internal plugins, the value is NULL.
-   */
-  public function getEnabledPluginFiles(Editor $editor, $include_internal_plugins = FALSE) {
-    $plugins = array_keys($this->getDefinitions());
-    $toolbar_buttons = $this->getEnabledButtons($editor);
-    $enabled_plugins = [];
-    $additional_plugins = [];
-
-    foreach ($plugins as $plugin_id) {
-      $plugin = $this->createInstance($plugin_id);
-
-      if (!$include_internal_plugins && $plugin->isInternal()) {
-        continue;
-      }
-
-      $enabled = FALSE;
-      // Enable this plugin if it provides a button that has been enabled.
-      if ($plugin instanceof CKEditorPluginButtonsInterface) {
-        $plugin_buttons = array_keys($plugin->getButtons());
-        $enabled = (count(array_intersect($toolbar_buttons, $plugin_buttons)) > 0);
-      }
-      // Otherwise enable this plugin if it declares itself as enabled.
-      if (!$enabled && $plugin instanceof CKEditorPluginContextualInterface) {
-        $enabled = $plugin->isEnabled($editor);
-      }
-
-      if ($enabled) {
-        $enabled_plugins[$plugin_id] = ($plugin->isInternal()) ? NULL : $plugin->getFile();
-        // Check if this plugin has dependencies that also need to be enabled.
-        $additional_plugins = array_merge($additional_plugins, array_diff($plugin->getDependencies($editor), $additional_plugins));
-      }
-    }
-
-    // Add the list of dependent plugins.
-    foreach ($additional_plugins as $plugin_id) {
-      $plugin = $this->createInstance($plugin_id);
-      $enabled_plugins[$plugin_id] = ($plugin->isInternal()) ? NULL : $plugin->getFile();
-    }
-
-    // Always return plugins in the same order.
-    asort($enabled_plugins);
-
-    return $enabled_plugins;
-  }
-
-  /**
-   * Gets the enabled toolbar buttons in the given text editor instance.
-   *
-   * @param \Drupal\editor\Entity\Editor $editor
-   *   A configured text editor object.
-   *
-   * @return string[]
-   *   A list of the toolbar buttons enabled in the given text editor instance.
-   */
-  public static function getEnabledButtons(Editor $editor) {
-    $toolbar_rows = [];
-    $settings = $editor->getSettings();
-    foreach ($settings['toolbar']['rows'] as $row_number => $row) {
-      $toolbar_rows[] = array_reduce($settings['toolbar']['rows'][$row_number], function ($result, $button_group) {
-        return array_merge($result, $button_group['items']);
-      }, []);
-    }
-    return array_unique(NestedArray::mergeDeepArray($toolbar_rows));
-  }
-
-  /**
-   * Retrieves all available CKEditor buttons, keyed by plugin ID.
-   *
-   * @return array
-   *   All available CKEditor buttons, with plugin IDs as keys and button
-   *   metadata (as implemented by getButtons()) as values.
-   *
-   * @see \Drupal\ckeditor\CKEditorPluginButtonsInterface::getButtons()
-   */
-  public function getButtons() {
-    $plugins = array_keys($this->getDefinitions());
-    $buttons_plugins = [];
-
-    foreach ($plugins as $plugin_id) {
-      $plugin = $this->createInstance($plugin_id);
-      if ($plugin instanceof CKEditorPluginButtonsInterface) {
-        $buttons_plugins[$plugin_id] = $plugin->getButtons();
-      }
-    }
-
-    return $buttons_plugins;
-  }
-
-  /**
-   * Injects the CKEditor plugins settings forms as a vertical tabs subform.
-   *
-   * @param array &$form
-   *   A reference to an associative array containing the structure of the form.
-   * @param \Drupal\Core\Form\FormStateInterface $form_state
-   *   The current state of the form.
-   * @param \Drupal\editor\Entity\Editor $editor
-   *   A configured text editor object.
-   */
-  public function injectPluginSettingsForm(array &$form, FormStateInterface $form_state, Editor $editor) {
-    $definitions = $this->getDefinitions();
-
-    foreach (array_keys($definitions) as $plugin_id) {
-      $plugin = $this->createInstance($plugin_id);
-      if ($plugin instanceof CKEditorPluginConfigurableInterface) {
-        $plugin_settings_form = [];
-        $form['plugins'][$plugin_id] = [
-          '#type' => 'details',
-          '#title' => $definitions[$plugin_id]['label'],
-          '#open' => TRUE,
-          '#group' => 'editor][settings][plugin_settings',
-          '#attributes' => [
-            'data-ckeditor-plugin-id' => $plugin_id,
-          ],
-        ];
-        // Provide enough metadata for the drupal.ckeditor.admin library to
-        // allow it to automatically show/hide the vertical tab containing the
-        // settings for this plugin. Only do this if it's a CKEditor plugin that
-        // just provides buttons, don't do this if it's a contextually enabled
-        // CKEditor plugin. After all, in the latter case, we can't know when
-        // its settings should be shown!
-        if ($plugin instanceof CKEditorPluginButtonsInterface && !$plugin instanceof CKEditorPluginContextualInterface) {
-          $form['plugins'][$plugin_id]['#attributes']['data-ckeditor-buttons'] = implode(' ', array_keys($plugin->getButtons()));
-        }
-        $form['plugins'][$plugin_id] += $plugin->settingsForm($plugin_settings_form, $form_state, $editor);
-      }
-    }
-  }
-
-  /**
-   * Retrieves enabled plugins' iframe instance CSS files, keyed by plugin ID.
-   *
-   * @param \Drupal\editor\Entity\Editor $editor
-   *   A configured text editor object.
-   *
-   * @return string[]
-   *   Enabled plugins CKEditor CSS files, with plugin IDs as keys and CSS file
-   *   paths relative to the Drupal root (as implemented by getCssFiles()) as
-   *   values.
-   *
-   * @see \Drupal\ckeditor\CKEditorPluginCssInterface::getCssFiles()
-   */
-  public function getCssFiles(Editor $editor) {
-    $enabled_plugins = array_keys($this->getEnabledPluginFiles($editor, TRUE));
-    $css_files = [];
-
-    foreach ($enabled_plugins as $plugin_id) {
-      $plugin = $this->createInstance($plugin_id);
-      if ($plugin instanceof CKEditorPluginCssInterface) {
-        $css_files[$plugin_id] = $plugin->getCssFiles($editor);
-      }
-    }
-
-    return $css_files;
-  }
-
-}
diff --git a/web/modules/ckeditor/src/Plugin/CKEditorPlugin/DrupalImage.php b/web/modules/ckeditor/src/Plugin/CKEditorPlugin/DrupalImage.php
deleted file mode 100644
index 26e6300d13e226a3b7ad2b2219192f250682d299..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/src/Plugin/CKEditorPlugin/DrupalImage.php
+++ /dev/null
@@ -1,88 +0,0 @@
-<?php
-
-namespace Drupal\ckeditor\Plugin\CKEditorPlugin;
-
-use Drupal\ckeditor\CKEditorPluginBase;
-use Drupal\ckeditor\CKEditorPluginConfigurableInterface;
-use Drupal\Core\Form\FormStateInterface;
-use Drupal\editor\Entity\Editor;
-
-/**
- * Defines the "drupalimage" plugin.
- *
- * @CKEditorPlugin(
- *   id = "drupalimage",
- *   label = @Translation("Image"),
- *   module = "ckeditor"
- * )
- */
-class DrupalImage extends CKEditorPluginBase implements CKEditorPluginConfigurableInterface {
-
-  /**
-   * {@inheritdoc}
-   */
-  public function getFile() {
-    return $this->getModulePath('ckeditor') . '/js/plugins/drupalimage/plugin.js';
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  public function getLibraries(Editor $editor) {
-    return [
-      'core/drupal.ajax',
-    ];
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  public function getConfig(Editor $editor) {
-    return [
-      'drupalImage_dialogTitleAdd' => $this->t('Insert Image'),
-      'drupalImage_dialogTitleEdit' => $this->t('Edit Image'),
-    ];
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  public function getButtons() {
-    return [
-      'DrupalImage' => [
-        'label' => $this->t('Image'),
-        'image' => $this->getModulePath('ckeditor') . '/js/plugins/drupalimage/icons/drupalimage.png',
-      ],
-    ];
-  }
-
-  /**
-   * {@inheritdoc}
-   *
-   * @see \Drupal\editor\Form\EditorImageDialog
-   * @see editor_image_upload_settings_form()
-   */
-  public function settingsForm(array $form, FormStateInterface $form_state, Editor $editor) {
-    $form_state->loadInclude('editor', 'admin.inc');
-    $form['image_upload'] = editor_image_upload_settings_form($editor);
-    $form['image_upload']['#attached']['library'][] = 'ckeditor/drupal.ckeditor.drupalimage.admin';
-    $form['image_upload']['#element_validate'][] = [$this, 'validateImageUploadSettings'];
-    return $form;
-  }
-
-  /**
-   * #element_validate handler for the "image_upload" element in settingsForm().
-   *
-   * Moves the text editor's image upload settings from the DrupalImage plugin's
-   * own settings into $editor->image_upload.
-   *
-   * @see \Drupal\editor\Form\EditorImageDialog
-   * @see editor_image_upload_settings_form()
-   */
-  public function validateImageUploadSettings(array $element, FormStateInterface $form_state) {
-    $settings = &$form_state->getValue(['editor', 'settings', 'plugins', 'drupalimage', 'image_upload']);
-    $form_state->get('editor')->setImageUploadSettings($settings);
-    $form_state->unsetValue(['editor', 'settings', 'plugins', 'drupalimage']);
-  }
-
-}
diff --git a/web/modules/ckeditor/src/Plugin/CKEditorPlugin/DrupalImageCaption.php b/web/modules/ckeditor/src/Plugin/CKEditorPlugin/DrupalImageCaption.php
deleted file mode 100644
index 18afc56f3de48e1614743daed8f002a3d2315d04..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/src/Plugin/CKEditorPlugin/DrupalImageCaption.php
+++ /dev/null
@@ -1,129 +0,0 @@
-<?php
-
-namespace Drupal\ckeditor\Plugin\CKEditorPlugin;
-
-use Drupal\Core\Plugin\ContainerFactoryPluginInterface;
-use Drupal\Core\Plugin\PluginBase;
-use Drupal\editor\Entity\Editor;
-use Drupal\ckeditor\CKEditorPluginInterface;
-use Drupal\ckeditor\CKEditorPluginContextualInterface;
-use Drupal\ckeditor\CKEditorPluginCssInterface;
-use Symfony\Component\DependencyInjection\ContainerInterface;
-
-/**
- * Defines the "drupalimagecaption" plugin.
- *
- * @CKEditorPlugin(
- *   id = "drupalimagecaption",
- *   label = @Translation("Drupal image caption widget"),
- *   module = "ckeditor"
- * )
- */
-class DrupalImageCaption extends PluginBase implements CKEditorPluginInterface, CKEditorPluginContextualInterface, CKEditorPluginCssInterface, ContainerFactoryPluginInterface {
-
-  /**
-   * The module extension list.
-   *
-   * @var \Drupal\Core\Extension\ModuleExtensionList
-   */
-  protected $moduleList;
-
-  /**
-   * {@inheritdoc}
-   */
-  public static function create(ContainerInterface $container, array $configuration, $plugin_id, $plugin_definition) {
-    $instance = new static(
-      $configuration,
-      $plugin_id,
-      $plugin_definition,
-    );
-    $instance->moduleList = $container->get('extension.list.module');
-    return $instance;
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  public function isInternal() {
-    return FALSE;
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  public function getDependencies(Editor $editor) {
-    return [];
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  public function getLibraries(Editor $editor) {
-    return [
-      'ckeditor/drupal.ckeditor.plugins.drupalimagecaption',
-    ];
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  public function getFile() {
-    return $this->moduleList->getPath('ckeditor') . '/js/plugins/drupalimagecaption/plugin.js';
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  public function getConfig(Editor $editor) {
-    $format = $editor->getFilterFormat();
-    return [
-      'image2_captionedClass' => 'caption caption-img',
-      'image2_alignClasses' => ['align-left', 'align-center', 'align-right'],
-      'drupalImageCaption_captionPlaceholderText' => $this->t('Enter caption here'),
-      // Only enable those parts of DrupalImageCaption for which the
-      // corresponding Drupal text filters are enabled.
-      'drupalImageCaption_captionFilterEnabled' => $format->filters('filter_caption')->status,
-      'drupalImageCaption_alignFilterEnabled' => $format->filters('filter_align')->status,
-    ];
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  public function getCssFiles(Editor $editor) {
-    return [
-      $this->moduleList->getPath('ckeditor') . '/css/plugins/drupalimagecaption/ckeditor.drupalimagecaption.css',
-    ];
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  public function isEnabled(Editor $editor) {
-    if (!$editor->hasAssociatedFilterFormat()) {
-      return FALSE;
-    }
-
-    // Automatically enable this plugin if the text format associated with this
-    // text editor uses the filter_align or filter_caption filter and the
-    // DrupalImage button is enabled.
-    $format = $editor->getFilterFormat();
-    if ($format->filters('filter_align')->status || $format->filters('filter_caption')->status) {
-      $enabled = FALSE;
-      $settings = $editor->getSettings();
-      foreach ($settings['toolbar']['rows'] as $row) {
-        foreach ($row as $group) {
-          foreach ($group['items'] as $button) {
-            if ($button === 'DrupalImage') {
-              $enabled = TRUE;
-            }
-          }
-        }
-      }
-      return $enabled;
-    }
-
-    return FALSE;
-  }
-
-}
diff --git a/web/modules/ckeditor/src/Plugin/CKEditorPlugin/DrupalLink.php b/web/modules/ckeditor/src/Plugin/CKEditorPlugin/DrupalLink.php
deleted file mode 100644
index 55db9294b73c7a245104c47bfcf349f5f351abc0..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/src/Plugin/CKEditorPlugin/DrupalLink.php
+++ /dev/null
@@ -1,62 +0,0 @@
-<?php
-
-namespace Drupal\ckeditor\Plugin\CKEditorPlugin;
-
-use Drupal\ckeditor\CKEditorPluginBase;
-use Drupal\editor\Entity\Editor;
-
-/**
- * Defines the "drupallink" plugin.
- *
- * @CKEditorPlugin(
- *   id = "drupallink",
- *   label = @Translation("Drupal link"),
- *   module = "ckeditor"
- * )
- */
-class DrupalLink extends CKEditorPluginBase {
-
-  /**
-   * {@inheritdoc}
-   */
-  public function getFile() {
-    return $this->getModulePath('ckeditor') . '/js/plugins/drupallink/plugin.js';
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  public function getLibraries(Editor $editor) {
-    return [
-      'core/drupal.ajax',
-    ];
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  public function getConfig(Editor $editor) {
-    return [
-      'drupalLink_dialogTitleAdd' => $this->t('Add Link'),
-      'drupalLink_dialogTitleEdit' => $this->t('Edit Link'),
-    ];
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  public function getButtons() {
-    $path = $this->getModulePath('ckeditor') . '/js/plugins/drupallink';
-    return [
-      'DrupalLink' => [
-        'label' => $this->t('Link'),
-        'image' => $path . '/icons/drupallink.png',
-      ],
-      'DrupalUnlink' => [
-        'label' => $this->t('Unlink'),
-        'image' => $path . '/icons/drupalunlink.png',
-      ],
-    ];
-  }
-
-}
diff --git a/web/modules/ckeditor/src/Plugin/CKEditorPlugin/DrupalMedia.php b/web/modules/ckeditor/src/Plugin/CKEditorPlugin/DrupalMedia.php
deleted file mode 100644
index 9365b096dcdb4173ca98decdae4ec14f86c81bc7..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/src/Plugin/CKEditorPlugin/DrupalMedia.php
+++ /dev/null
@@ -1,136 +0,0 @@
-<?php
-
-namespace Drupal\ckeditor\Plugin\CKEditorPlugin;
-
-use Drupal\ckeditor\CKEditorPluginContextualInterface;
-use Drupal\ckeditor\CKEditorPluginCssInterface;
-use Drupal\Core\Extension\ModuleExtensionList;
-use Drupal\Core\Plugin\ContainerFactoryPluginInterface;
-use Symfony\Component\DependencyInjection\ContainerInterface;
-use Drupal\Core\Plugin\PluginBase;
-use Drupal\editor\Entity\Editor;
-
-/**
- * Defines the "drupalmedia" plugin.
- *
- * @CKEditorPlugin(
- *   id = "drupalmedia",
- *   label = @Translation("Media Embed"),
- *   provider = "media",
- * )
- *
- * @internal
- *   This is an internal part of the media system in Drupal core and may be
- *   subject to change in minor releases. This class should not be
- *   instantiated or extended by external code.
- */
-class DrupalMedia extends PluginBase implements ContainerFactoryPluginInterface, CKEditorPluginContextualInterface, CKEditorPluginCssInterface {
-
-  /**
-   * The module extension list.
-   *
-   * @var \Drupal\Core\Extension\ModuleExtensionList
-   */
-  protected $moduleExtensionList;
-
-  /**
-   * Constructs a new DrupalMedia plugin object.
-   *
-   * @param array $configuration
-   *   A configuration array containing information about the plugin instance.
-   * @param string $plugin_id
-   *   The plugin_id for the plugin instance.
-   * @param array $plugin_definition
-   *   The plugin implementation definition.
-   * @param \Drupal\Core\Extension\ModuleExtensionList $extension_list_module
-   *   The module extension list.
-   */
-  public function __construct(array $configuration, $plugin_id, $plugin_definition, ModuleExtensionList $extension_list_module) {
-    parent::__construct($configuration, $plugin_id, $plugin_definition);
-    $this->moduleExtensionList = $extension_list_module;
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  public static function create(ContainerInterface $container, array $configuration, $plugin_id, $plugin_definition) {
-    return new static(
-      $configuration,
-      $plugin_id,
-      $plugin_definition,
-      $container->get('extension.list.module')
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  public function isInternal() {
-    return FALSE;
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  public function getDependencies(Editor $editor) {
-    return [];
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  public function getLibraries(Editor $editor) {
-    return [
-      'core/jquery',
-      'core/drupal',
-      'core/drupal.ajax',
-      // @see Drupal.theme.mediaEmbedPreviewError()
-      'media/media_embed_ckeditor_theme',
-      // @see Drupal.theme.mediaEmbedEditButton()
-      'ckeditor/drupal.ckeditor.plugins.drupalmedia',
-    ];
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  public function getFile() {
-    return $this->moduleExtensionList->getPath('ckeditor') . '/js/plugins/drupalmedia/plugin.js';
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  public function getConfig(Editor $editor) {
-    return [
-      'drupalMedia_previewCsrfToken' => \Drupal::csrfToken()->get('X-Drupal-MediaPreview-CSRF-Token'),
-    ];
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  public function isEnabled(Editor $editor) {
-    if (!$editor->hasAssociatedFilterFormat()) {
-      return FALSE;
-    }
-
-    // Automatically enable this plugin if the text format associated with this
-    // text editor uses the media_embed filter.
-    $filters = $editor->getFilterFormat()->filters();
-    return $filters->has('media_embed') && $filters->get('media_embed')->status;
-  }
-
-  /**
-   * {@inheritdoc}
-   *
-   * @todo Improve this in https://www.drupal.org/project/drupal/issues/3072063
-   */
-  public function getCssFiles(Editor $editor) {
-    return [
-      $this->moduleExtensionList->getPath('ckeditor') . '/css/plugins/drupalmedia/ckeditor.drupalmedia.css',
-      $this->moduleExtensionList->getPath('system') . '/css/components/hidden.module.css',
-    ];
-  }
-
-}
diff --git a/web/modules/ckeditor/src/Plugin/CKEditorPlugin/DrupalMediaLibrary.php b/web/modules/ckeditor/src/Plugin/CKEditorPlugin/DrupalMediaLibrary.php
deleted file mode 100644
index bfff786dbe3d05421e502698bc70146f17fa17d6..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/src/Plugin/CKEditorPlugin/DrupalMediaLibrary.php
+++ /dev/null
@@ -1,171 +0,0 @@
-<?php
-
-namespace Drupal\ckeditor\Plugin\CKEditorPlugin;
-
-use Drupal\ckeditor\CKEditorPluginBase;
-use Drupal\Core\Entity\EntityTypeManagerInterface;
-use Drupal\Core\Extension\ModuleExtensionList;
-use Drupal\Core\Plugin\ContainerFactoryPluginInterface;
-use Drupal\Core\Url;
-use Drupal\editor\Entity\Editor;
-use Drupal\media_library\MediaLibraryState;
-use Drupal\media_library\MediaLibraryUiBuilder;
-use Symfony\Component\DependencyInjection\ContainerInterface;
-
-/**
- * Defines the "drupalmedialibrary" plugin.
- *
- * @CKEditorPlugin(
- *   id = "drupalmedialibrary",
- *   label = @Translation("Embed media from the Media Library"),
- *   provider = "media_library",
- * )
- *
- * @internal
- *   Plugin classes are internal.
- */
-class DrupalMediaLibrary extends CKEditorPluginBase implements ContainerFactoryPluginInterface {
-
-  /**
-   * The module extension list.
-   *
-   * @var \Drupal\Core\Extension\ModuleExtensionList
-   */
-  protected $moduleExtensionList;
-
-  /**
-   * The media type entity storage.
-   *
-   * @var \Drupal\Core\Config\Entity\ConfigEntityStorageInterface
-   */
-  protected $mediaTypeStorage;
-
-  /**
-   * Constructs a new DrupalMediaLibrary plugin object.
-   *
-   * @param array $configuration
-   *   A configuration array containing information about the plugin instance.
-   * @param string $plugin_id
-   *   The plugin_id for the plugin instance.
-   * @param array $plugin_definition
-   *   The plugin implementation definition.
-   * @param \Drupal\Core\Extension\ModuleExtensionList $extension_list_module
-   *   The module extension list.
-   * @param \Drupal\Core\Entity\EntityTypeManagerInterface $entity_type_manager
-   *   The entity type manager.
-   */
-  public function __construct(array $configuration, $plugin_id, array $plugin_definition, ModuleExtensionList $extension_list_module, EntityTypeManagerInterface $entity_type_manager) {
-    parent::__construct($configuration, $plugin_id, $plugin_definition);
-    $this->moduleExtensionList = $extension_list_module;
-    $this->mediaTypeStorage = $entity_type_manager->getStorage('media_type');
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  public static function create(ContainerInterface $container, array $configuration, $plugin_id, $plugin_definition) {
-    return new static(
-      $configuration,
-      $plugin_id,
-      $plugin_definition,
-      $container->get('extension.list.module'),
-      $container->get('entity_type.manager')
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  public function isInternal() {
-    return FALSE;
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  public function getDependencies(Editor $editor) {
-    return [
-      'drupalmedia',
-    ];
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  public function getLibraries(Editor $editor) {
-    return [
-      'editor/drupal.editor.dialog',
-    ];
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  public function getFile() {
-    return $this->moduleExtensionList->getPath('ckeditor') . '/js/plugins/drupalmedialibrary/plugin.js';
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  public function getConfig(Editor $editor) {
-    // If the editor has not been saved yet, we may not be able to create a
-    // coherent MediaLibraryState object, which is needed in order to generate
-    // the required configuration. But, if we're creating a new editor, we don't
-    // need to do that anyway, so just return an empty array.
-    if ($editor->isNew()) {
-      return [];
-    }
-
-    $media_type_ids = $this->mediaTypeStorage->getQuery()->execute();
-    if ($editor->hasAssociatedFilterFormat()) {
-      if ($media_embed_filter = $editor->getFilterFormat()->filters()->get('media_embed')) {
-        // Optionally limit the allowed media types based on the MediaEmbed
-        // setting. If the setting is empty, do not limit the options.
-        if (!empty($media_embed_filter->settings['allowed_media_types'])) {
-          $media_type_ids = array_intersect_key($media_type_ids, $media_embed_filter->settings['allowed_media_types']);
-        }
-      }
-    }
-
-    if (in_array('image', $media_type_ids, TRUE)) {
-      // Due to a bug where the active item styling and the focus styling
-      // create the visual appearance of two active items, we'll move
-      // the 'image' media type to first position, so that the focused item and
-      // the active item are the same.
-      // This workaround can be removed once this issue is fixed:
-      // @see https://www.drupal.org/project/drupal/issues/3073799
-      array_unshift($media_type_ids, 'image');
-      $media_type_ids = array_unique($media_type_ids);
-    }
-
-    $state = MediaLibraryState::create(
-      'media_library.opener.editor',
-      $media_type_ids,
-      reset($media_type_ids),
-      1,
-      ['filter_format_id' => $editor->getFilterFormat()->id()]
-    );
-
-    return [
-      'DrupalMediaLibrary_url' => Url::fromRoute('media_library.ui')
-        ->setOption('query', $state->all())
-        ->toString(TRUE)
-        ->getGeneratedUrl(),
-      'DrupalMediaLibrary_dialogOptions' => MediaLibraryUiBuilder::dialogOptions(),
-    ];
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  public function getButtons() {
-    return [
-      'DrupalMediaLibrary' => [
-        'label' => $this->t('Insert from Media Library'),
-        'image' => $this->moduleExtensionList->getPath('ckeditor') . '/js/plugins/drupalmedialibrary/icons/drupalmedialibrary.png',
-      ],
-    ];
-  }
-
-}
diff --git a/web/modules/ckeditor/src/Plugin/CKEditorPlugin/Internal.php b/web/modules/ckeditor/src/Plugin/CKEditorPlugin/Internal.php
deleted file mode 100644
index 5c2dce25b6b45ab1014a3b5e7385e4ebe1518645..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/src/Plugin/CKEditorPlugin/Internal.php
+++ /dev/null
@@ -1,609 +0,0 @@
-<?php
-
-namespace Drupal\ckeditor\Plugin\CKEditorPlugin;
-
-use Drupal\ckeditor\CKEditorPluginBase;
-use Drupal\ckeditor\CKEditorPluginContextualInterface;
-use Drupal\ckeditor\CKEditorPluginManager;
-use Drupal\Component\Utility\Html;
-use Drupal\Core\Cache\Cache;
-use Drupal\Core\Cache\CacheBackendInterface;
-use Drupal\Core\Plugin\ContainerFactoryPluginInterface;
-use Drupal\editor\Entity\Editor;
-use Drupal\filter\Plugin\FilterInterface;
-use Symfony\Component\DependencyInjection\ContainerInterface;
-
-/**
- * Defines the "internal" plugin (i.e. core plugins part of our CKEditor build).
- *
- * @CKEditorPlugin(
- *   id = "internal",
- *   label = @Translation("CKEditor core")
- * )
- */
-class Internal extends CKEditorPluginBase implements ContainerFactoryPluginInterface, CKEditorPluginContextualInterface {
-
-  /**
-   * The cache backend.
-   *
-   * @var \Drupal\Core\Cache\CacheBackendInterface
-   */
-  protected $cache;
-
-  /**
-   * Constructs a \Drupal\ckeditor\Plugin\CKEditorPlugin\Internal object.
-   *
-   * @param array $configuration
-   *   A configuration array containing information about the plugin instance.
-   * @param string $plugin_id
-   *   The plugin_id for the plugin instance.
-   * @param mixed $plugin_definition
-   *   The plugin implementation definition.
-   * @param \Drupal\Core\Cache\CacheBackendInterface $cache_backend
-   *   The cache backend.
-   */
-  public function __construct(array $configuration, $plugin_id, $plugin_definition, CacheBackendInterface $cache_backend) {
-    $this->cache = $cache_backend;
-    parent::__construct($configuration, $plugin_id, $plugin_definition);
-  }
-
-  /**
-   * Creates an instance of the plugin.
-   *
-   * @param \Symfony\Component\DependencyInjection\ContainerInterface $container
-   *   The container to pull out services used in the plugin.
-   * @param array $configuration
-   *   A configuration array containing information about the plugin instance.
-   * @param string $plugin_id
-   *   The plugin ID for the plugin instance.
-   * @param mixed $plugin_definition
-   *   The plugin implementation definition.
-   *
-   * @return static
-   *   Returns an instance of this plugin.
-   */
-  public static function create(ContainerInterface $container, array $configuration, $plugin_id, $plugin_definition) {
-    return new static(
-      $configuration,
-      $plugin_id,
-      $plugin_definition,
-      $container->get('cache.default')
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  public function isInternal() {
-    return TRUE;
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  public function isEnabled(Editor $editor) {
-    // This plugin represents the core CKEditor plugins. They're always enabled:
-    // its configuration is always necessary.
-    return TRUE;
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  public function getFile() {
-    // This plugin is already part of Drupal core's CKEditor build.
-    return FALSE;
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  public function getConfig(Editor $editor) {
-    // Reasonable defaults that provide expected basic behavior.
-    $config = [
-      // Don't load CKEditor's config.js file.
-      'customConfig' => '',
-      'pasteFromWordPromptCleanup' => TRUE,
-      'resize_dir' => 'vertical',
-      'justifyClasses' => ['text-align-left', 'text-align-center', 'text-align-right', 'text-align-justify'],
-      'entities' => FALSE,
-      'disableNativeSpellChecker' => FALSE,
-    ];
-
-    // Add the allowedContent setting, which ensures CKEditor only allows tags
-    // and attributes that are allowed by the text format for this text editor.
-    [$config['allowedContent'], $config['disallowedContent']] = $this->generateACFSettings($editor);
-
-    // Add the format_tags setting, if its button is enabled.
-    $toolbar_buttons = CKEditorPluginManager::getEnabledButtons($editor);
-    if (in_array('Format', $toolbar_buttons) && $format_string = $this->generateFormatTagsSetting($editor)) {
-      $config['format_tags'] = $format_string;
-    }
-
-    return $config;
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  public function getButtons() {
-    $button = function ($name, $direction = 'ltr') {
-      // In the markup below, we mostly use the name (which may include spaces),
-      // but in one spot we use it as a CSS class, so strip spaces.
-      // Note: this uses str_replace() instead of Html::cleanCssIdentifier()
-      // because we must provide these class names exactly how CKEditor expects
-      // them in its library, which cleanCssIdentifier() does not do.
-      $class_name = str_replace(' ', '', $name);
-      return [
-        '#type' => 'inline_template',
-        '#template' => '<a href="#" class="cke-icon-only cke_{{ direction }}" role="button" title="{{ name }}" aria-label="{{ name }}"><span class="cke_button_icon cke_button__{{ classname }}_icon">{{ name }}</span></a>',
-        '#context' => [
-          'direction' => $direction,
-          'name' => $name,
-          'classname' => $class_name,
-        ],
-      ];
-    };
-
-    return [
-      // "basicstyles" plugin.
-      'Bold' => [
-        'label' => $this->t('Bold'),
-        'image_alternative' => $button('bold'),
-        'image_alternative_rtl' => $button('bold', 'rtl'),
-      ],
-      'Italic' => [
-        'label' => $this->t('Italic'),
-        'image_alternative' => $button('italic'),
-        'image_alternative_rtl' => $button('italic', 'rtl'),
-      ],
-      'Underline' => [
-        'label' => $this->t('Underline'),
-        'image_alternative' => $button('underline'),
-        'image_alternative_rtl' => $button('underline', 'rtl'),
-      ],
-      'Strike' => [
-        'label' => $this->t('Strike-through'),
-        'image_alternative' => $button('strike'),
-        'image_alternative_rtl' => $button('strike', 'rtl'),
-      ],
-      'Superscript' => [
-        'label' => $this->t('Superscript'),
-        'image_alternative' => $button('super script'),
-        'image_alternative_rtl' => $button('super script', 'rtl'),
-      ],
-      'Subscript' => [
-        'label' => $this->t('Subscript'),
-        'image_alternative' => $button('sub script'),
-        'image_alternative_rtl' => $button('sub script', 'rtl'),
-      ],
-      // "removeformat" plugin.
-      'RemoveFormat' => [
-        'label' => $this->t('Remove format'),
-        'image_alternative' => $button('remove format'),
-        'image_alternative_rtl' => $button('remove format', 'rtl'),
-      ],
-      // "justify" plugin.
-      'JustifyLeft' => [
-        'label' => $this->t('Align left'),
-        'image_alternative' => $button('justify left'),
-        'image_alternative_rtl' => $button('justify left', 'rtl'),
-      ],
-      'JustifyCenter' => [
-        'label' => $this->t('Align center'),
-        'image_alternative' => $button('justify center'),
-        'image_alternative_rtl' => $button('justify center', 'rtl'),
-      ],
-      'JustifyRight' => [
-        'label' => $this->t('Align right'),
-        'image_alternative' => $button('justify right'),
-        'image_alternative_rtl' => $button('justify right', 'rtl'),
-      ],
-      'JustifyBlock' => [
-        'label' => $this->t('Justify'),
-        'image_alternative' => $button('justify block'),
-        'image_alternative_rtl' => $button('justify block', 'rtl'),
-      ],
-      // "list" plugin.
-      'BulletedList' => [
-        'label' => $this->t('Bullet list'),
-        'image_alternative' => $button('bulleted list'),
-        'image_alternative_rtl' => $button('bulleted list', 'rtl'),
-      ],
-      'NumberedList' => [
-        'label' => $this->t('Numbered list'),
-        'image_alternative' => $button('numbered list'),
-        'image_alternative_rtl' => $button('numbered list', 'rtl'),
-      ],
-      // "indent" plugin.
-      'Outdent' => [
-        'label' => $this->t('Outdent'),
-        'image_alternative' => $button('outdent'),
-        'image_alternative_rtl' => $button('outdent', 'rtl'),
-      ],
-      'Indent' => [
-        'label' => $this->t('Indent'),
-        'image_alternative' => $button('indent'),
-        'image_alternative_rtl' => $button('indent', 'rtl'),
-      ],
-      // "undo" plugin.
-      'Undo' => [
-        'label' => $this->t('Undo'),
-        'image_alternative' => $button('undo'),
-        'image_alternative_rtl' => $button('undo', 'rtl'),
-      ],
-      'Redo' => [
-        'label' => $this->t('Redo'),
-        'image_alternative' => $button('redo'),
-        'image_alternative_rtl' => $button('redo', 'rtl'),
-      ],
-      // "blockquote" plugin.
-      'Blockquote' => [
-        'label' => $this->t('Blockquote'),
-        'image_alternative' => $button('blockquote'),
-        'image_alternative_rtl' => $button('blockquote', 'rtl'),
-      ],
-      // "horizontalrule" plugin
-      'HorizontalRule' => [
-        'label' => $this->t('Horizontal rule'),
-        'image_alternative' => $button('horizontal rule'),
-        'image_alternative_rtl' => $button('horizontal rule', 'rtl'),
-      ],
-      // "clipboard" plugin.
-      'Cut' => [
-        'label' => $this->t('Cut'),
-        'image_alternative' => $button('cut'),
-        'image_alternative_rtl' => $button('cut', 'rtl'),
-      ],
-      'Copy' => [
-        'label' => $this->t('Copy'),
-        'image_alternative' => $button('copy'),
-        'image_alternative_rtl' => $button('copy', 'rtl'),
-      ],
-      'Paste' => [
-        'label' => $this->t('Paste'),
-        'image_alternative' => $button('paste'),
-        'image_alternative_rtl' => $button('paste', 'rtl'),
-      ],
-      // "pastetext" plugin.
-      'PasteText' => [
-        'label' => $this->t('Paste Text'),
-        'image_alternative' => $button('paste text'),
-        'image_alternative_rtl' => $button('paste text', 'rtl'),
-      ],
-      // "pastefromword" plugin.
-      'PasteFromWord' => [
-        'label' => $this->t('Paste from Word'),
-        'image_alternative' => $button('paste from word'),
-        'image_alternative_rtl' => $button('paste from word', 'rtl'),
-      ],
-      // "specialchar" plugin.
-      'SpecialChar' => [
-        'label' => $this->t('Character map'),
-        'image_alternative' => $button('special char'),
-        'image_alternative_rtl' => $button('special char', 'rtl'),
-      ],
-      'Format' => [
-        'label' => $this->t('HTML block format'),
-        'image_alternative' => [
-          '#type' => 'inline_template',
-          '#template' => '<a href="#" role="button" aria-label="{{ format_text }}"><span class="ckeditor-button-dropdown">{{ format_text }}<span class="ckeditor-button-arrow"></span></span></a>',
-          '#context' => [
-            'format_text' => $this->t('Format'),
-          ],
-        ],
-      ],
-      // "table" plugin.
-      'Table' => [
-        'label' => $this->t('Table'),
-        'image_alternative' => $button('table'),
-        'image_alternative_rtl' => $button('table', 'rtl'),
-      ],
-      // "showblocks" plugin.
-      'ShowBlocks' => [
-        'label' => $this->t('Show blocks'),
-        'image_alternative' => $button('show blocks'),
-        'image_alternative_rtl' => $button('show blocks', 'rtl'),
-      ],
-      // "sourcearea" plugin.
-      'Source' => [
-        'label' => $this->t('Source code'),
-        'image_alternative' => $button('source'),
-        'image_alternative_rtl' => $button('source', 'rtl'),
-      ],
-      // "maximize" plugin.
-      'Maximize' => [
-        'label' => $this->t('Maximize'),
-        'image_alternative' => $button('maximize'),
-        'image_alternative_rtl' => $button('maximize', 'rtl'),
-      ],
-      // No plugin, separator "button" for toolbar builder UI use only.
-      '-' => [
-        'label' => $this->t('Separator'),
-        'image_alternative' => [
-          '#type' => 'inline_template',
-          '#template' => '<a href="#" role="button" aria-label="{{ button_separator_text }}" class="ckeditor-separator"></a>',
-          '#context' => [
-            'button_separator_text' => $this->t('Button separator'),
-          ],
-        ],
-        'attributes' => [
-          'class' => ['ckeditor-button-separator'],
-          'data-drupal-ckeditor-type' => 'separator',
-        ],
-        'multiple' => TRUE,
-      ],
-    ];
-  }
-
-  /**
-   * Builds the "format_tags" configuration part of the CKEditor JS settings.
-   *
-   * @see getConfig()
-   *
-   * @param \Drupal\editor\Entity\Editor $editor
-   *   A configured text editor object.
-   *
-   * @return string|false
-   *   A string containing the "format_tags" configuration or FALSE if the
-   *   editor has not an associated filter format.
-   */
-  protected function generateFormatTagsSetting(Editor $editor) {
-    // When no text format is associated yet, assume no tag is allowed.
-    // @see \Drupal\editor\EditorInterface::hasAssociatedFilterFormat()
-    if (!$editor->hasAssociatedFilterFormat()) {
-      return FALSE;
-    }
-
-    $format = $editor->getFilterFormat();
-    $cid = 'ckeditor_internal_format_tags:' . $format->id();
-
-    if ($cached = $this->cache->get($cid)) {
-      $format_tags = $cached->data;
-    }
-    else {
-      // The <p> tag is always allowed — HTML without <p> tags is nonsensical.
-      $format_tags = ['p'];
-
-      // Given the list of possible format tags, automatically determine whether
-      // the current text format allows this tag, and thus whether it should show
-      // up in the "Format" dropdown.
-      $possible_format_tags = ['h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'pre'];
-      foreach ($possible_format_tags as $tag) {
-        $input = '<' . $tag . '>TEST</' . $tag . '>';
-        $output = trim(check_markup($input, $editor->id()));
-        if (Html::load($output)->getElementsByTagName($tag)->length !== 0) {
-          $format_tags[] = $tag;
-        }
-      }
-      $format_tags = implode(';', $format_tags);
-
-      // Cache the "format_tags" configuration. This cache item is infinitely
-      // valid; it only changes whenever the text format is changed, hence it's
-      // tagged with the text format's cache tag.
-      $this->cache->set($cid, $format_tags, Cache::PERMANENT, $format->getCacheTags());
-    }
-
-    return $format_tags;
-  }
-
-  /**
-   * Builds the ACF part of the CKEditor JS settings.
-   *
-   * This ensures that CKEditor obeys the HTML restrictions defined by Drupal's
-   * filter system, by enabling CKEditor's Advanced Content Filter (ACF)
-   * functionality: http://ckeditor.com/blog/CKEditor-4.1-RC-Released.
-   *
-   * @see getConfig()
-   *
-   * @param \Drupal\editor\Entity\Editor $editor
-   *   A configured text editor object.
-   *
-   * @return array
-   *   An array with two values:
-   *   - the first value is the "allowedContent" setting: a well-formatted array
-   *     or TRUE. The latter indicates that anything is allowed.
-   *   - the second value is the "disallowedContent" setting: a well-formatted
-   *     array or FALSE. The latter indicates that nothing is disallowed.
-   */
-  protected function generateACFSettings(Editor $editor) {
-    // When no text format is associated yet, assume nothing is disallowed, so
-    // set allowedContent to true.
-    if (!$editor->hasAssociatedFilterFormat()) {
-      return TRUE;
-    }
-
-    $format = $editor->getFilterFormat();
-    $filter_types = $format->getFilterTypes();
-
-    // When nothing is disallowed, set allowedContent to true.
-    if (!in_array(FilterInterface::TYPE_HTML_RESTRICTOR, $filter_types)) {
-      return [TRUE, FALSE];
-    }
-    // Generate setting that accurately reflects allowed tags and attributes.
-    else {
-      $get_attribute_values = function ($attribute_values, $allowed_values) {
-        $values = array_keys(array_filter($attribute_values, function ($value) use ($allowed_values) {
-          if ($allowed_values) {
-            return $value !== FALSE;
-          }
-          else {
-            return $value === FALSE;
-          }
-        }));
-        if (count($values)) {
-          return implode(',', $values);
-        }
-        else {
-          return NULL;
-        }
-      };
-
-      $html_restrictions = $format->getHtmlRestrictions();
-      // When all HTML is allowed, also set allowedContent to true and
-      // disallowedContent to false.
-      if ($html_restrictions === FALSE) {
-        return [TRUE, FALSE];
-      }
-      $allowed = [];
-      $disallowed = [];
-      if (isset($html_restrictions['forbidden_tags'])) {
-        foreach ($html_restrictions['forbidden_tags'] as $tag) {
-          $disallowed[$tag] = TRUE;
-        }
-      }
-      foreach ($html_restrictions['allowed'] as $tag => $attributes) {
-        // Tell CKEditor the tag is allowed, but no attributes.
-        if ($attributes === FALSE) {
-          $allowed[$tag] = [
-            'attributes' => FALSE,
-            'styles' => FALSE,
-            'classes' => FALSE,
-          ];
-        }
-        // Tell CKEditor the tag is allowed, as well as any attribute on it. The
-        // "style" and "class" attributes are handled separately by CKEditor:
-        // they are disallowed even if you specify it in the list of allowed
-        // attributes, unless you state specific values for them that are
-        // allowed. Or, in this case: any value for them is allowed.
-        elseif ($attributes === TRUE) {
-          $allowed[$tag] = [
-            'attributes' => TRUE,
-            'styles' => TRUE,
-            'classes' => TRUE,
-          ];
-          // We've just marked that any value for the "style" and "class"
-          // attributes is allowed. However, that may not be the case: the "*"
-          // tag may still apply restrictions.
-          // Since CKEditor's ACF follows the following principle:
-          // - Once validated, an element or its property cannot be
-          //   invalidated by another rule.
-          // That means that the most permissive setting wins. Which means that
-          // it will still be allowed by CKEditor, for instance, to define any
-          // style, no matter what the "*" tag's restrictions may be. If there
-          // is a setting for either the "style" or "class" attribute, it cannot
-          // possibly be more permissive than what was set above. Hence, inherit
-          // from the "*" tag where possible.
-          if (isset($html_restrictions['allowed']['*'])) {
-            $wildcard = $html_restrictions['allowed']['*'];
-            if (isset($wildcard['style'])) {
-              if (!is_array($wildcard['style'])) {
-                $allowed[$tag]['styles'] = $wildcard['style'];
-              }
-              else {
-                $allowed_styles = $get_attribute_values($wildcard['style'], TRUE);
-                if (isset($allowed_styles)) {
-                  $allowed[$tag]['styles'] = $allowed_styles;
-                }
-                else {
-                  unset($allowed[$tag]['styles']);
-                }
-              }
-            }
-            if (isset($wildcard['class'])) {
-              if (!is_array($wildcard['class'])) {
-                $allowed[$tag]['classes'] = $wildcard['class'];
-              }
-              else {
-                $allowed_classes = $get_attribute_values($wildcard['class'], TRUE);
-                if (isset($allowed_classes)) {
-                  $allowed[$tag]['classes'] = $allowed_classes;
-                }
-                else {
-                  unset($allowed[$tag]['classes']);
-                }
-              }
-            }
-          }
-        }
-        // Tell CKEditor the tag is allowed, along with some tags.
-        elseif (is_array($attributes)) {
-          // Set defaults (these will be overridden below if more specific
-          // values are present).
-          $allowed[$tag] = [
-            'attributes' => FALSE,
-            'styles' => FALSE,
-            'classes' => FALSE,
-          ];
-          // Configure allowed attributes, allowed "style" attribute values and
-          // allowed "class" attribute values.
-          // CKEditor only allows specific values for the "class" and "style"
-          // attributes; so ignore restrictions on other attributes, which
-          // Drupal filters may provide.
-          // NOTE: A Drupal contrib module can subclass this class, override the
-          // getConfig() method, and override the JavaScript at
-          // Drupal.editors.ckeditor to somehow make validation of values for
-          // attributes other than "class" and "style" work.
-          $allowed_attributes = array_filter($attributes, function ($value) {
-            return $value !== FALSE;
-          });
-          if (count($allowed_attributes)) {
-            $allowed[$tag]['attributes'] = implode(',', array_keys($allowed_attributes));
-          }
-          if (isset($allowed_attributes['style'])) {
-            if (is_bool($allowed_attributes['style'])) {
-              $allowed[$tag]['styles'] = $allowed_attributes['style'];
-            }
-            elseif (is_array($allowed_attributes['style'])) {
-              $allowed_classes = $get_attribute_values($allowed_attributes['style'], TRUE);
-              if (isset($allowed_classes)) {
-                $allowed[$tag]['styles'] = $allowed_classes;
-              }
-            }
-          }
-          if (isset($allowed_attributes['class'])) {
-            if (is_bool($allowed_attributes['class'])) {
-              $allowed[$tag]['classes'] = $allowed_attributes['class'];
-            }
-            elseif (is_array($allowed_attributes['class'])) {
-              $allowed_classes = $get_attribute_values($allowed_attributes['class'], TRUE);
-              if (isset($allowed_classes)) {
-                $allowed[$tag]['classes'] = $allowed_classes;
-              }
-            }
-          }
-
-          // Handle disallowed attributes analogously. However, to handle *dis-
-          // allowed* attribute values, we must look at *allowed* attributes'
-          // disallowed attribute values! After all, a disallowed attribute
-          // implies that all of its possible attribute values are disallowed,
-          // thus we must look at the disallowed attribute values on allowed
-          // attributes.
-          $disallowed_attributes = array_filter($attributes, function ($value) {
-            return $value === FALSE;
-          });
-          if (count($disallowed_attributes)) {
-            // No need to blacklist the 'class' or 'style' attributes; CKEditor
-            // handles them separately (if no specific class or style attribute
-            // values are allowed, then those attributes are disallowed).
-            if (isset($disallowed_attributes['class'])) {
-              unset($disallowed_attributes['class']);
-            }
-            if (isset($disallowed_attributes['style'])) {
-              unset($disallowed_attributes['style']);
-            }
-            $disallowed[$tag]['attributes'] = implode(',', array_keys($disallowed_attributes));
-          }
-          if (isset($allowed_attributes['style']) && is_array($allowed_attributes['style'])) {
-            $disallowed_styles = $get_attribute_values($allowed_attributes['style'], FALSE);
-            if (isset($disallowed_styles)) {
-              $disallowed[$tag]['styles'] = $disallowed_styles;
-            }
-          }
-          if (isset($allowed_attributes['class']) && is_array($allowed_attributes['class'])) {
-            $disallowed_classes = $get_attribute_values($allowed_attributes['class'], FALSE);
-            if (isset($disallowed_classes)) {
-              $disallowed[$tag]['classes'] = $disallowed_classes;
-            }
-          }
-        }
-      }
-
-      ksort($allowed);
-      ksort($disallowed);
-
-      return [$allowed, $disallowed];
-    }
-  }
-
-}
diff --git a/web/modules/ckeditor/src/Plugin/CKEditorPlugin/Language.php b/web/modules/ckeditor/src/Plugin/CKEditorPlugin/Language.php
deleted file mode 100644
index 5334bae991da5755d54fa6d010980464e2cb0f30..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/src/Plugin/CKEditorPlugin/Language.php
+++ /dev/null
@@ -1,136 +0,0 @@
-<?php
-
-namespace Drupal\ckeditor\Plugin\CKEditorPlugin;
-
-use Drupal\ckeditor\CKEditorPluginBase;
-use Drupal\ckeditor\CKEditorPluginConfigurableInterface;
-use Drupal\ckeditor\CKEditorPluginCssInterface;
-use Drupal\Core\Form\FormStateInterface;
-use Drupal\Core\Language\LanguageManager;
-use Drupal\Core\Language\LanguageInterface;
-use Drupal\editor\Entity\Editor;
-
-/**
- * Defines the "language" plugin.
- *
- * @CKEditorPlugin(
- *   id = "language",
- *   label = @Translation("Language")
- * )
- */
-class Language extends CKEditorPluginBase implements CKEditorPluginConfigurableInterface, CKEditorPluginCssInterface {
-
-  /**
-   * {@inheritdoc}
-   */
-  public function isInternal() {
-    return TRUE;
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  public function getFile() {
-    // This plugin is already part of Drupal core's CKEditor build.
-    return FALSE;
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  public function getLibraries(Editor $editor) {
-    return ['ckeditor/drupal.ckeditor.plugins.language'];
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  public function getConfig(Editor $editor) {
-    $language_list = [];
-    $config = ['language_list' => 'un'];
-    $settings = $editor->getSettings();
-    if (isset($settings['plugins']['language'])) {
-      $config = $settings['plugins']['language'];
-    }
-
-    $predefined_languages = ($config['language_list'] === 'all') ?
-      LanguageManager::getStandardLanguageList() :
-      LanguageManager::getUnitedNationsLanguageList();
-
-    // Generate the language_list setting as expected by the CKEditor Language
-    // plugin, but key the values by the full language name so that we can sort
-    // them later on.
-    foreach ($predefined_languages as $langcode => $language) {
-      $english_name = $language[0];
-      $direction = empty($language[2]) ? NULL : $language[2];
-      if ($direction === LanguageInterface::DIRECTION_RTL) {
-        $language_list[$english_name] = $langcode . ':' . $english_name . ':rtl';
-      }
-      else {
-        $language_list[$english_name] = $langcode . ':' . $english_name;
-      }
-    }
-
-    // Sort on full language name.
-    ksort($language_list);
-    $config = ['language_list' => array_values($language_list)];
-    return $config;
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  public function getButtons() {
-    $label = $this->t('Language');
-    return [
-      'Language' => [
-        'label' => $label,
-        'image_alternative' => [
-          '#type' => 'inline_template',
-          '#template' => '<a href="#" class="cke-icon-only" role="button" title="' . $label . '" aria-label="' . $label . '"><span class="cke_button_icon cke_button__language_icon">' . $label . '</span></a>',
-        ],
-      ],
-    ];
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  public function settingsForm(array $form, FormStateInterface $form_state, Editor $editor) {
-    // Defaults.
-    $config = ['language_list' => 'un'];
-    $settings = $editor->getSettings();
-    if (isset($settings['plugins']['language'])) {
-      $config = $settings['plugins']['language'];
-    }
-
-    $predefined_languages = LanguageManager::getStandardLanguageList();
-    $form['language_list'] = [
-      '#title' => $this->t('Language list'),
-      '#title_display' => 'invisible',
-      '#type' => 'select',
-      '#options' => [
-        'un' => $this->t("United Nations' official languages"),
-        'all' => $this->t('All @count languages', ['@count' => count($predefined_languages)]),
-      ],
-      '#default_value' => $config['language_list'],
-      '#description' => $this->t('The list of languages to show in the language dropdown. The basic list will only show the <a href=":url">six official languages of the UN</a>. The extended list will show all @count languages that are available in Drupal.', [
-        ':url' => 'https://www.un.org/en/sections/about-un/official-languages',
-        '@count' => count($predefined_languages),
-      ]),
-      '#attached' => ['library' => ['ckeditor/drupal.ckeditor.language.admin']],
-    ];
-
-    return $form;
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  public function getCssFiles(Editor $editor) {
-    return [
-      $this->getModulePath('ckeditor') . '/css/plugins/language/ckeditor.language.css',
-    ];
-  }
-
-}
diff --git a/web/modules/ckeditor/src/Plugin/CKEditorPlugin/StylesCombo.php b/web/modules/ckeditor/src/Plugin/CKEditorPlugin/StylesCombo.php
deleted file mode 100644
index e35c5ac1f51d31a694c2ea95c5111027d99564f6..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/src/Plugin/CKEditorPlugin/StylesCombo.php
+++ /dev/null
@@ -1,169 +0,0 @@
-<?php
-
-namespace Drupal\ckeditor\Plugin\CKEditorPlugin;
-
-use Drupal\ckeditor\CKEditorPluginBase;
-use Drupal\ckeditor\CKEditorPluginConfigurableInterface;
-use Drupal\Core\Form\FormStateInterface;
-use Drupal\editor\Entity\Editor;
-
-/**
- * Defines the "stylescombo" plugin.
- *
- * @CKEditorPlugin(
- *   id = "stylescombo",
- *   label = @Translation("Styles dropdown")
- * )
- */
-class StylesCombo extends CKEditorPluginBase implements CKEditorPluginConfigurableInterface {
-
-  /**
-   * {@inheritdoc}
-   */
-  public function isInternal() {
-    return TRUE;
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  public function getFile() {
-    // This plugin is already part of Drupal core's CKEditor build.
-    return FALSE;
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  public function getConfig(Editor $editor) {
-    $config = [];
-    $settings = $editor->getSettings();
-    if (!isset($settings['plugins']['stylescombo']['styles'])) {
-      return $config;
-    }
-    $styles = $settings['plugins']['stylescombo']['styles'];
-    $config['stylesSet'] = $this->generateStylesSetSetting($styles);
-    return $config;
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  public function getButtons() {
-    return [
-      'Styles' => [
-        'label' => $this->t('Font style'),
-        'image_alternative' => [
-          '#type' => 'inline_template',
-          '#template' => '<a href="#" role="button" aria-label="{{ styles_text }}"><span class="ckeditor-button-dropdown">{{ styles_text }}<span class="ckeditor-button-arrow"></span></span></a>',
-          '#context' => [
-            'styles_text' => $this->t('Styles'),
-          ],
-        ],
-      ],
-    ];
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  public function settingsForm(array $form, FormStateInterface $form_state, Editor $editor) {
-    // Defaults.
-    $config = ['styles' => ''];
-    $settings = $editor->getSettings();
-    if (isset($settings['plugins']['stylescombo'])) {
-      $config = $settings['plugins']['stylescombo'];
-    }
-
-    $form['styles'] = [
-      '#title' => $this->t('Styles'),
-      '#title_display' => 'invisible',
-      '#type' => 'textarea',
-      '#default_value' => $config['styles'],
-      '#description' => $this->t('A list of classes that will be provided in the "Styles" dropdown. Enter one or more classes on each line in the format: element.classA.classB|Label. Example: h1.title|Title. Advanced example: h1.fancy.title|Fancy title.<br />These styles should be available in your theme\'s CSS file.'),
-      '#attached' => [
-        'library' => ['ckeditor/drupal.ckeditor.stylescombo.admin'],
-      ],
-      '#element_validate' => [
-        [$this, 'validateStylesValue'],
-      ],
-    ];
-
-    return $form;
-  }
-
-  /**
-   * #element_validate handler for the "styles" element in settingsForm().
-   */
-  public function validateStylesValue(array $element, FormStateInterface $form_state) {
-    $styles_setting = $this->generateStylesSetSetting($element['#value']);
-    if ($styles_setting === FALSE) {
-      $form_state->setError($element, $this->t('The provided list of styles is syntactically incorrect.'));
-    }
-    else {
-      $style_names = array_map(function ($style) {
-        return $style['name'];
-      }, $styles_setting);
-      if (count($style_names) !== count(array_unique($style_names))) {
-        $form_state->setError($element, $this->t('Each style must have a unique label.'));
-      }
-    }
-  }
-
-  /**
-   * Builds the "stylesSet" configuration part of the CKEditor JS settings.
-   *
-   * @see getConfig()
-   *
-   * @param string $styles
-   *   The "styles" setting.
-   *
-   * @return array|false
-   *   An array containing the "stylesSet" configuration, or FALSE when the
-   *   syntax is invalid.
-   */
-  protected function generateStylesSetSetting($styles) {
-    $styles_set = [];
-
-    // Early-return when empty.
-    $styles = trim($styles);
-    if (empty($styles)) {
-      return $styles_set;
-    }
-
-    $styles = str_replace(["\r\n", "\r"], "\n", $styles);
-    foreach (explode("\n", $styles) as $style) {
-      $style = trim($style);
-
-      // Ignore empty lines in between non-empty lines.
-      if (empty($style)) {
-        continue;
-      }
-
-      // Validate syntax: element[.class...]|label pattern expected.
-      if (!preg_match('@^ *[a-zA-Z0-9-]+ *(\\.[a-zA-Z0-9_-]+ *)*\\| *.+ *$@', $style)) {
-        return FALSE;
-      }
-
-      // Parse.
-      [$selector, $label] = explode('|', $style);
-      $classes = explode('.', $selector);
-      $element = array_shift($classes);
-
-      // Build the data structure CKEditor's stylescombo plugin expects.
-      // @see https://ckeditor.com/docs/ckeditor4/latest/guide/dev_howtos_styles.html
-      $configured_style = [
-        'name' => trim($label),
-        'element' => trim($element),
-      ];
-      if (!empty($classes)) {
-        $configured_style['attributes'] = [
-          'class' => implode(' ', array_map('trim', $classes)),
-        ];
-      }
-      $styles_set[] = $configured_style;
-    }
-    return $styles_set;
-  }
-
-}
diff --git a/web/modules/ckeditor/src/Plugin/Editor/CKEditor.php b/web/modules/ckeditor/src/Plugin/Editor/CKEditor.php
deleted file mode 100644
index 91b9137342bfa78270b8b395e8d1b9f219e933c1..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/src/Plugin/Editor/CKEditor.php
+++ /dev/null
@@ -1,502 +0,0 @@
-<?php
-
-namespace Drupal\ckeditor\Plugin\Editor;
-
-use Drupal\Core\Extension\ExtensionPathResolver;
-use Drupal\Core\Extension\ModuleExtensionList;
-use Drupal\Core\Extension\ModuleHandlerInterface;
-use Drupal\ckeditor\CKEditorPluginManager;
-use Drupal\Core\File\FileUrlGeneratorInterface;
-use Drupal\Core\Form\FormStateInterface;
-use Drupal\Core\Language\LanguageManagerInterface;
-use Drupal\Core\Render\Element;
-use Drupal\Core\Render\RendererInterface;
-use Drupal\Core\State\StateInterface;
-use Drupal\editor\Plugin\EditorBase;
-use Drupal\Core\Plugin\ContainerFactoryPluginInterface;
-use Drupal\editor\Entity\Editor;
-use Symfony\Component\DependencyInjection\ContainerInterface;
-
-/**
- * Defines a CKEditor-based text editor for Drupal.
- *
- * @Editor(
- *   id = "ckeditor",
- *   label = @Translation("CKEditor"),
- *   supports_content_filtering = TRUE,
- *   supports_inline_editing = TRUE,
- *   is_xss_safe = FALSE,
- *   supported_element_types = {
- *     "textarea"
- *   }
- * )
- */
-class CKEditor extends EditorBase implements ContainerFactoryPluginInterface {
-
-  /**
-   * The module handler to invoke hooks on.
-   *
-   * @var \Drupal\Core\Extension\ModuleHandlerInterface
-   */
-  protected $moduleHandler;
-
-  /**
-   * The language manager.
-   *
-   * @var \Drupal\Core\Language\LanguageManagerInterface
-   */
-  protected $languageManager;
-
-  /**
-   * The CKEditor plugin manager.
-   *
-   * @var \Drupal\ckeditor\CKEditorPluginManager
-   */
-  protected $ckeditorPluginManager;
-
-  /**
-   * The renderer.
-   *
-   * @var \Drupal\Core\Render\RendererInterface
-   */
-  protected $renderer;
-
-  /**
-   * The file URL generator.
-   *
-   * @var \Drupal\Core\File\FileUrlGeneratorInterface
-   */
-  protected $fileUrlGenerator;
-
-  /**
-   * The state key/value store.
-   *
-   * @var \Drupal\Core\State\StateInterface
-   */
-  protected $state;
-
-  /**
-   * The module list service.
-   *
-   * @var \Drupal\Core\Extension\ModuleExtensionList
-   */
-  protected $moduleList;
-
-  /**
-   * Constructs a \Drupal\ckeditor\Plugin\Editor\CKEditor object.
-   *
-   * @param array $configuration
-   *   A configuration array containing information about the plugin instance.
-   * @param string $plugin_id
-   *   The plugin_id for the plugin instance.
-   * @param mixed $plugin_definition
-   *   The plugin implementation definition.
-   * @param \Drupal\ckeditor\CKEditorPluginManager $ckeditor_plugin_manager
-   *   The CKEditor plugin manager.
-   * @param \Drupal\Core\Extension\ModuleHandlerInterface $module_handler
-   *   The module handler to invoke hooks on.
-   * @param \Drupal\Core\Language\LanguageManagerInterface $language_manager
-   *   The language manager.
-   * @param \Drupal\Core\Render\RendererInterface $renderer
-   *   The renderer.
-   * @param \Drupal\Core\State\StateInterface $state
-   *   The state key/value store.
-   * @param \Drupal\Core\File\FileUrlGeneratorInterface $file_url_generator
-   *   The file URL generator.
-   * @param \Drupal\Core\Extension\ModuleExtensionList $module_list
-   *   The module list service.
-   */
-  public function __construct(array $configuration, $plugin_id, $plugin_definition, CKEditorPluginManager $ckeditor_plugin_manager, ModuleHandlerInterface $module_handler, LanguageManagerInterface $language_manager, RendererInterface $renderer, StateInterface $state, FileUrlGeneratorInterface $file_url_generator = NULL, ModuleExtensionList $module_list = NULL) {
-    parent::__construct($configuration, $plugin_id, $plugin_definition);
-    $this->ckeditorPluginManager = $ckeditor_plugin_manager;
-    $this->moduleHandler = $module_handler;
-    $this->languageManager = $language_manager;
-    $this->renderer = $renderer;
-    $this->state = $state;
-    if (!$file_url_generator) {
-      @trigger_error('Calling CKEditor::__construct() without the $file_url_generator argument is deprecated in drupal:9.3.0 and will be required before drupal:10.0.0. See https://www.drupal.org/node/2940031', E_USER_DEPRECATED);
-      $file_url_generator = \Drupal::service('file_url_generator');
-    }
-    $this->fileUrlGenerator = $file_url_generator;
-    if (!$module_list) {
-      @trigger_error('Calling CKEditor::__construct() without the $module_list argument is deprecated in drupal:9.3.0 and is required in drupal:10.0.0. See https://www.drupal.org/node/2940438', E_USER_DEPRECATED);
-      $module_list = \Drupal::service('extension.list.module');
-    }
-    $this->moduleList = $module_list;
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  public static function create(ContainerInterface $container, array $configuration, $plugin_id, $plugin_definition) {
-    return new static(
-      $configuration,
-      $plugin_id,
-      $plugin_definition,
-      $container->get('plugin.manager.ckeditor.plugin'),
-      $container->get('module_handler'),
-      $container->get('language_manager'),
-      $container->get('renderer'),
-      $container->get('state'),
-      $container->get('file_url_generator'),
-      $container->get('extension.list.module')
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  public function getDefaultSettings() {
-    return [
-      'toolbar' => [
-        'rows' => [
-          // Button groups.
-          [
-            [
-              'name' => $this->t('Formatting'),
-              'items' => ['Bold', 'Italic'],
-            ],
-            [
-              'name' => $this->t('Links'),
-              'items' => ['DrupalLink', 'DrupalUnlink'],
-            ],
-            [
-              'name' => $this->t('Lists'),
-              'items' => ['BulletedList', 'NumberedList'],
-            ],
-            [
-              'name' => $this->t('Media'),
-              'items' => ['Blockquote', 'DrupalImage'],
-            ],
-            [
-              'name' => $this->t('Tools'),
-              'items' => ['Source'],
-            ],
-          ],
-        ],
-      ],
-      'plugins' => [],
-    ];
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  public function buildConfigurationForm(array $form, FormStateInterface $form_state) {
-    $editor = $form_state->get('editor');
-    $settings = $editor->getSettings();
-
-    $ckeditor_settings_toolbar = [
-      '#theme' => 'ckeditor_settings_toolbar',
-      '#editor' => $editor,
-      '#plugins' => $this->ckeditorPluginManager->getButtons(),
-    ];
-    $form['toolbar'] = [
-      '#type' => 'container',
-      '#attached' => [
-        'library' => ['ckeditor/drupal.ckeditor.admin'],
-        'drupalSettings' => [
-          'ckeditor' => [
-            'toolbarAdmin' => (string) $this->renderer->renderPlain($ckeditor_settings_toolbar),
-          ],
-        ],
-      ],
-      '#attributes' => ['class' => ['ckeditor-toolbar-configuration']],
-    ];
-
-    $form['toolbar']['button_groups'] = [
-      '#type' => 'textarea',
-      '#title' => $this->t('Toolbar buttons'),
-      '#default_value' => json_encode($settings['toolbar']['rows']),
-      '#attributes' => ['class' => ['ckeditor-toolbar-textarea']],
-    ];
-
-    // CKEditor plugin settings, if any.
-    $form['plugin_settings'] = [
-      '#type' => 'vertical_tabs',
-      '#title' => $this->t('CKEditor plugin settings'),
-      '#attributes' => [
-        'id' => 'ckeditor-plugin-settings',
-      ],
-    ];
-    $this->ckeditorPluginManager->injectPluginSettingsForm($form, $form_state, $editor);
-    if (count(Element::children($form['plugins'])) === 0) {
-      unset($form['plugins']);
-      unset($form['plugin_settings']);
-    }
-
-    // Hidden CKEditor instance. We need a hidden CKEditor instance with all
-    // plugins enabled, so we can retrieve CKEditor's per-feature metadata (on
-    // which tags, attributes, styles and classes are enabled). This metadata is
-    // necessary for certain filters' (for instance, the html_filter filter)
-    // settings to be updated accordingly.
-    // Get a list of all external plugins and their corresponding files.
-    $plugins = array_keys($this->ckeditorPluginManager->getDefinitions());
-    $all_external_plugins = [];
-    foreach ($plugins as $plugin_id) {
-      $plugin = $this->ckeditorPluginManager->createInstance($plugin_id);
-      if (!$plugin->isInternal()) {
-        $all_external_plugins[$plugin_id] = $plugin->getFile();
-      }
-    }
-    // Get a list of all buttons that are provided by all plugins.
-    $all_buttons = array_reduce($this->ckeditorPluginManager->getButtons(), function ($result, $item) {
-      return array_merge($result, array_keys($item));
-    }, []);
-    // Build a fake Editor object, which we'll use to generate JavaScript
-    // settings for this fake Editor instance.
-    $fake_editor = Editor::create([
-      'format' => $editor->id(),
-      'editor' => 'ckeditor',
-      'settings' => [
-        // Single toolbar row, single button group, all existing buttons.
-        'toolbar' => [
-          'rows' => [
-            0 => [
-              0 => [
-                'name' => 'All existing buttons',
-                'items' => $all_buttons,
-              ],
-            ],
-          ],
-        ],
-        'plugins' => $settings['plugins'],
-      ],
-    ]);
-    $config = $this->getJSSettings($fake_editor);
-    // Remove the ACF configuration that is generated based on filter settings,
-    // because otherwise we cannot retrieve per-feature metadata.
-    unset($config['allowedContent']);
-    $form['hidden_ckeditor'] = [
-      '#markup' => '<div id="ckeditor-hidden" class="hidden"></div>',
-      '#attached' => [
-        'drupalSettings' => ['ckeditor' => ['hiddenCKEditorConfig' => $config]],
-      ],
-    ];
-
-    return $form;
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  public function validateConfigurationForm(array &$form, FormStateInterface $form_state) {
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  public function submitConfigurationForm(array &$form, FormStateInterface $form_state) {
-    // The rows key is not built into the form structure, so decode the button
-    // groups data into this new key and remove the button_groups key.
-    $form_state->setValue(['toolbar', 'rows'], json_decode($form_state->getValue(['toolbar', 'button_groups']), TRUE));
-    $form_state->unsetValue(['toolbar', 'button_groups']);
-
-    // Remove the plugin settings' vertical tabs state; no need to save that.
-    if ($form_state->hasValue('plugins')) {
-      $form_state->unsetValue('plugin_settings');
-    }
-
-    // Ensure plugin settings are only saved for plugins that are actually
-    // enabled.
-    $about_to_be_saved_editor = Editor::create([
-      'editor' => 'ckeditor',
-      'settings' => [
-        'toolbar' => $form_state->getValue('toolbar'),
-        'plugins' => $form_state->getValue('plugins'),
-      ],
-    ]);
-    $enabled_plugins = _ckeditor_get_enabled_plugins($about_to_be_saved_editor);
-    $plugin_settings = $form_state->getValue('plugins', []);
-    foreach (array_keys($plugin_settings) as $plugin_id) {
-      if (!in_array($plugin_id, $enabled_plugins, TRUE)) {
-        unset($plugin_settings[$plugin_id]);
-      }
-    }
-    $form_state->setValue('plugins', $plugin_settings);
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  public function getJSSettings(Editor $editor) {
-    $settings = [];
-
-    // Get the settings for all enabled plugins, even the internal ones.
-    $enabled_plugins = array_keys($this->ckeditorPluginManager->getEnabledPluginFiles($editor, TRUE));
-    foreach ($enabled_plugins as $plugin_id) {
-      $plugin = $this->ckeditorPluginManager->createInstance($plugin_id);
-      $settings += $plugin->getConfig($editor);
-    }
-
-    // Fall back on English if no matching language code was found.
-    $display_langcode = 'en';
-
-    // Map the interface language code to a CKEditor translation if interface
-    // translation is enabled.
-    if ($this->moduleHandler->moduleExists('locale')) {
-      $ckeditor_langcodes = $this->getLangcodes();
-      $language_interface = $this->languageManager->getCurrentLanguage();
-      if (isset($ckeditor_langcodes[$language_interface->getId()])) {
-        $display_langcode = $ckeditor_langcodes[$language_interface->getId()];
-      }
-    }
-
-    // Next, set the most fundamental CKEditor settings.
-    $external_plugin_files = $this->ckeditorPluginManager->getEnabledPluginFiles($editor);
-    $settings += [
-      'toolbar' => $this->buildToolbarJSSetting($editor),
-      'contentsCss' => $this->buildContentsCssJSSetting($editor),
-      'extraPlugins' => implode(',', array_keys($external_plugin_files)),
-      'language' => $display_langcode,
-      // Configure CKEditor to not load styles.js. The StylesCombo plugin will
-      // set stylesSet according to the user's settings, if the "Styles" button
-      // is enabled. We cannot get rid of this until CKEditor will stop loading
-      // styles.js by default.
-      // See http://dev.ckeditor.com/ticket/9992#comment:9.
-      'stylesSet' => FALSE,
-    ];
-
-    // Finally, set Drupal-specific CKEditor settings.
-    $settings += [
-      'drupalExternalPlugins' => array_map([$this->fileUrlGenerator, 'generateString'], $external_plugin_files),
-    ];
-
-    // Parse all CKEditor plugin JavaScript files for translations.
-    if ($this->moduleHandler->moduleExists('locale')) {
-      locale_js_translate(array_values($external_plugin_files));
-    }
-
-    ksort($settings);
-
-    return $settings;
-  }
-
-  /**
-   * Returns a list of language codes supported by CKEditor.
-   *
-   * @return array
-   *   An associative array keyed by language codes.
-   */
-  public function getLangcodes() {
-    // Cache the file system based language list calculation because this would
-    // be expensive to calculate all the time. The cache is cleared on core
-    // upgrades which is the only situation the CKEditor file listing should
-    // change.
-    $langcode_cache = \Drupal::cache()->get('ckeditor.langcodes');
-    if (!empty($langcode_cache)) {
-      $langcodes = $langcode_cache->data;
-    }
-    if (empty($langcodes)) {
-      $langcodes = [];
-      // Collect languages included with CKEditor based on file listing.
-      $extension_path_resolver = \Drupal::service('extension.path.resolver');
-      assert($extension_path_resolver instanceof ExtensionPathResolver);
-      $files = scandir($extension_path_resolver->getPath('module', 'ckeditor') . '/vendor/lang');
-      foreach ($files as $file) {
-        if ($file[0] !== '.' && preg_match('/\.js$/', $file)) {
-          $langcode = basename($file, '.js');
-          $langcodes[$langcode] = $langcode;
-        }
-      }
-      \Drupal::cache()->set('ckeditor.langcodes', $langcodes);
-    }
-
-    // Get language mapping if available to map to Drupal language codes.
-    // This is configurable in the user interface and not expensive to get, so
-    // we don't include it in the cached language list.
-    $language_mappings = $this->moduleHandler->moduleExists('language') ? language_get_browser_drupal_langcode_mappings() : [];
-    foreach ($langcodes as $langcode) {
-      // If this language code is available in a Drupal mapping, use that to
-      // compute a possibility for matching from the Drupal langcode to the
-      // CKEditor langcode.
-      // For instance, CKEditor uses the langcode 'no' for Norwegian, Drupal
-      // uses 'nb'. This would then remove the 'no' => 'no' mapping and replace
-      // it with 'nb' => 'no'. Now Drupal knows which CKEditor translation to
-      // load.
-      if (isset($language_mappings[$langcode]) && !isset($langcodes[$language_mappings[$langcode]])) {
-        $langcodes[$language_mappings[$langcode]] = $langcode;
-        unset($langcodes[$langcode]);
-      }
-    }
-
-    return $langcodes;
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  public function getLibraries(Editor $editor) {
-    $libraries = [
-      'ckeditor/drupal.ckeditor',
-    ];
-
-    // Get the required libraries for any enabled plugins.
-    $enabled_plugins = array_keys($this->ckeditorPluginManager->getEnabledPluginFiles($editor));
-    foreach ($enabled_plugins as $plugin_id) {
-      $plugin = $this->ckeditorPluginManager->createInstance($plugin_id);
-      $additional_libraries = array_diff($plugin->getLibraries($editor), $libraries);
-      $libraries = array_merge($libraries, $additional_libraries);
-    }
-
-    return $libraries;
-  }
-
-  /**
-   * Builds the "toolbar" configuration part of the CKEditor JS settings.
-   *
-   * @see getJSSettings()
-   *
-   * @param \Drupal\editor\Entity\Editor $editor
-   *   A configured text editor object.
-   *
-   * @return array
-   *   An array containing the "toolbar" configuration.
-   */
-  public function buildToolbarJSSetting(Editor $editor) {
-    $toolbar = [];
-
-    $settings = $editor->getSettings();
-    foreach ($settings['toolbar']['rows'] as $row) {
-      foreach ($row as $group) {
-        $toolbar[] = $group;
-      }
-      $toolbar[] = '/';
-    }
-    return $toolbar;
-  }
-
-  /**
-   * Builds the "contentsCss" configuration part of the CKEditor JS settings.
-   *
-   * @see getJSSettings()
-   *
-   * @param \Drupal\editor\Entity\Editor $editor
-   *   A configured text editor object.
-   *
-   * @return array
-   *   An array containing the "contentsCss" configuration.
-   */
-  public function buildContentsCssJSSetting(Editor $editor) {
-    $css = [
-      $this->moduleList->getPath('ckeditor') . '/css/ckeditor-iframe.css',
-      $this->moduleList->getPath('system') . '/css/components/align.module.css',
-    ];
-    $this->moduleHandler->alter('ckeditor_css', $css, $editor);
-    // Get a list of all enabled plugins' iframe instance CSS files.
-    $plugins_css = array_reduce($this->ckeditorPluginManager->getCssFiles($editor), function ($result, $item) {
-      return array_merge($result, array_values($item));
-    }, []);
-    $css = array_merge($css, $plugins_css);
-    $css = array_merge($css, _ckeditor_theme_css());
-    $query_string = $this->state->get('system.css_js_query_string', '0');
-    $css = array_map(function ($item) use ($query_string) {
-      $query_string_separator = (strpos($item, '?') !== FALSE) ? '&' : '?';
-      return $item . $query_string_separator . $query_string;
-    }, $css);
-    $css = array_map([$this->fileUrlGenerator, 'generateString'], $css);
-
-    return array_values($css);
-  }
-
-}
diff --git a/web/modules/ckeditor/templates/ckeditor-settings-toolbar.html.twig b/web/modules/ckeditor/templates/ckeditor-settings-toolbar.html.twig
deleted file mode 100644
index 3636bf06c543d4170831e44b6e79054d8304c992..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/templates/ckeditor-settings-toolbar.html.twig
+++ /dev/null
@@ -1,75 +0,0 @@
-{#
-/**
- * @file
- * Default theme implementation for the CKEditor settings toolbar.
- *
- * Available variables:
- * - multiple_buttons: A list of buttons that may be added multiple times.
- * - disabled_buttons: A list of disabled buttons.
- * - active_buttons: A list of active button rows.
- *
- * @see template_preprocess_ckeditor_settings_toolbar()
- *
- * @ingroup themeable
- */
-#}
-{% apply spaceless %}
-  <fieldset role="form" aria-labelledby="ckeditor-button-configuration ckeditor-button-description">
-    <legend id="ckeditor-button-configuration">{{ 'Toolbar configuration'|t }}</legend>
-    <div class="fieldset-wrapper">
-      <div id="ckeditor-button-description" class="fieldset-description">
-      {%- trans -%}
-        Move a button into the <em>Active toolbar</em> to enable it, or into the list of <em>Available buttons</em> to disable it. Buttons may be moved with the mouse or keyboard arrow keys. Toolbar group names are provided to support screen reader users. Empty toolbar groups will be removed upon save.
-      {%- endtrans -%}
-      </div>
-      <div class="ckeditor-toolbar-disabled clearfix">
-        {# Available buttons. #}
-        <div class="ckeditor-toolbar-available">
-          <label for="ckeditor-available-buttons">{{ 'Available buttons'|t }}</label>
-          <ul id="ckeditor-available-buttons" class="ckeditor-buttons clearfix" role="form" data-drupal-ckeditor-button-sorting="source">
-          {% for disabled_button in disabled_buttons %}
-             <li{{ disabled_button.attributes.addClass('ckeditor-button') }}>{{ disabled_button.value }}</li>
-          {% endfor %}
-          </ul>
-        </div>
-        {# Dividers. #}
-        <div class="ckeditor-toolbar-dividers">
-          <label for="ckeditor-multiple-buttons">{{ 'Button divider'|t }}</label>
-          <ul id="ckeditor-multiple-buttons" class="ckeditor-multiple-buttons" role="form" data-drupal-ckeditor-button-sorting="dividers">
-          {% for multiple_button in multiple_buttons %}
-            <li{{ multiple_button.attributes.addClass('ckeditor-multiple-button') }}>{{ multiple_button.value }}</li>
-          {% endfor %}
-          </ul>
-        </div>
-      </div>
-      {# Active toolbar. #}
-      <div class="clearfix">
-        <label id="ckeditor-active-toolbar">{{ 'Active toolbar'|t }}</label>
-      </div>
-      <div data-toolbar="active" role="form" class="ckeditor-toolbar ckeditor-toolbar-active clearfix">
-        <ul class="ckeditor-active-toolbar-configuration" role="presentation" aria-label="{{ 'CKEditor toolbar and button configuration.'|t }}">
-        {% for button_row in active_buttons %}
-          <li class="ckeditor-row" role="group" aria-labelledby="ckeditor-active-toolbar">
-            <ul class="ckeditor-toolbar-groups clearfix">
-            {% for group_name, button_group in button_row %}
-              <li class="ckeditor-toolbar-group" role="presentation" data-drupal-ckeditor-type="group" data-drupal-ckeditor-toolbar-group-name="{{ group_name }}" tabindex="0">
-                <h3 class="ckeditor-toolbar-group-name" id="ckeditor-toolbar-group-aria-label-for-{{ button_group.group_name_class }}">{{ group_name }}</h3>
-                <ul class="ckeditor-buttons ckeditor-toolbar-group-buttons" role="toolbar" data-drupal-ckeditor-button-sorting="target" aria-labelledby="ckeditor-toolbar-group-aria-label-for-{{ button_group.group_name_class }}">
-                {% for active_button in button_group.buttons %}
-                  <li{{ active_button.attributes.addClass(active_button.multiple ? 'ckeditor-multiple-button' : 'ckeditor-button') }}>{{ active_button.value }}</li>
-                {% endfor %}
-                </ul>
-              </li>
-            {% endfor %}
-            </ul>
-          </li>
-        {% else %}
-          <li>
-            <ul class="ckeditor-buttons"></ul>
-          </li>
-        {% endfor %}
-        </ul>
-      </div>
-    </div>
-  </fieldset>
-{% endapply %}
diff --git a/web/modules/ckeditor/tests/modules/ckeditor_test.info.yml b/web/modules/ckeditor/tests/modules/ckeditor_test.info.yml
deleted file mode 100644
index 585062b534ebc2d9fbdd81f124575ad7beae6247..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/tests/modules/ckeditor_test.info.yml
+++ /dev/null
@@ -1,10 +0,0 @@
-name: CKEditor test
-type: module
-description: Support module for the CKEditor module tests.
-package: Testing
-core_version_requirement: "^9.4 || ^10"
-
-# Information added by Drupal.org packaging script on 2023-06-20
-version: '1.0.2'
-project: 'ckeditor'
-datestamp: 1687261954
diff --git a/web/modules/ckeditor/tests/modules/ckeditor_test.libraries.yml b/web/modules/ckeditor/tests/modules/ckeditor_test.libraries.yml
deleted file mode 100644
index 82bd7eee4e29b9f576dbba747a5f24baddb82e60..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/tests/modules/ckeditor_test.libraries.yml
+++ /dev/null
@@ -1,5 +0,0 @@
-ajax_css:
-  js:
-    js/ajax-css.js: {}
-  dependencies:
-    - ckeditor/drupal.ckeditor
diff --git a/web/modules/ckeditor/tests/modules/ckeditor_test.module b/web/modules/ckeditor/tests/modules/ckeditor_test.module
deleted file mode 100644
index 44e68834aa301f6f8121a76e8e8700ce85f7dee6..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/tests/modules/ckeditor_test.module
+++ /dev/null
@@ -1,15 +0,0 @@
-<?php
-
-/**
- * @file
- * Helper module for the CKEditor tests.
- */
-
-use Drupal\editor\Entity\Editor;
-
-/**
- * Implements hook_ckeditor_css_alter().
- */
-function ckeditor_test_ckeditor_css_alter(array &$css, Editor $editor) {
-  $css[] = \Drupal::service('extension.list.module')->getPath('ckeditor_test') . '/ckeditor_test.css';
-}
diff --git a/web/modules/ckeditor/tests/modules/ckeditor_test.routing.yml b/web/modules/ckeditor/tests/modules/ckeditor_test.routing.yml
deleted file mode 100644
index 01aeca0e2dfb9da71ad845701094109b105d0b0a..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/tests/modules/ckeditor_test.routing.yml
+++ /dev/null
@@ -1,14 +0,0 @@
-ckeditor_test.ajax_css:
-  path: '/ckeditor_test/ajax_css'
-  defaults:
-    _title: 'AJAX CSS Test'
-    _form: '\Drupal\ckeditor_test\Form\AjaxCssForm'
-  requirements:
-    _access: 'TRUE'
-
-ckeditor_test.off_canvas:
-  path: '/ckeditor_test/off_canvas'
-  defaults:
-    _controller: '\Drupal\ckeditor_test\CkeditorOffCanvasTestController::testOffCanvas'
-  requirements:
-    _access: 'TRUE'
diff --git a/web/modules/ckeditor/tests/modules/config/schema/ckeditor_test.schema.yml b/web/modules/ckeditor/tests/modules/config/schema/ckeditor_test.schema.yml
deleted file mode 100644
index e7305a29181a8c7f3b8954b2543776fa96ec88da..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/tests/modules/config/schema/ckeditor_test.schema.yml
+++ /dev/null
@@ -1,16 +0,0 @@
-ckeditor.plugin.llama_contextual_and_button:
-  type: mapping
-  label: 'Contextual Llama With Button'
-  mapping:
-    ultra_llama_mode:
-      type: boolean
-      label: 'Ultra llama mode'
-
-filter_settings.test_attribute_filter:
-  type: filter
-  label: 'Test Attribute Filter'
-  mapping:
-    tags:
-      type: sequence
-      sequence:
-        type: string
diff --git a/web/modules/ckeditor/tests/modules/css/test.css b/web/modules/ckeditor/tests/modules/css/test.css
deleted file mode 100644
index 60f1eab97137f7dc51fc53c8e4f3e49f63342c38..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/tests/modules/css/test.css
+++ /dev/null
@@ -1,3 +0,0 @@
-body {
-  color: red;
-}
diff --git a/web/modules/ckeditor/tests/modules/js/ajax-css.es6.js b/web/modules/ckeditor/tests/modules/js/ajax-css.es6.js
deleted file mode 100644
index 3f36758539da8bd53021a5efa66757088c5e1479..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/tests/modules/js/ajax-css.es6.js
+++ /dev/null
@@ -1,19 +0,0 @@
-/**
- * @file
- * Contains client-side code for testing CSS delivered to CKEditor via AJAX.
- */
-
-(function (Drupal, ckeditor, editorSettings, $) {
-  Drupal.behaviors.ajaxCssForm = {
-    attach(context) {
-      // Initialize an inline CKEditor on the #edit-inline element if it
-      // isn't editable already.
-      $(context)
-        .find('#edit-inline')
-        .not('[contenteditable]')
-        .each(function () {
-          ckeditor.attachInlineEditor(this, editorSettings.formats.test_format);
-        });
-    },
-  };
-})(Drupal, Drupal.editors.ckeditor, drupalSettings.editor, jQuery);
diff --git a/web/modules/ckeditor/tests/modules/js/ajax-css.js b/web/modules/ckeditor/tests/modules/js/ajax-css.js
deleted file mode 100644
index bb7ba0fb9a76e57f55c0bbc39f91c5024dfde220..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/tests/modules/js/ajax-css.js
+++ /dev/null
@@ -1,16 +0,0 @@
-/**
-* DO NOT EDIT THIS FILE.
-* See the following change record for more information,
-* https://www.drupal.org/node/2815083
-* @preserve
-**/
-
-(function (Drupal, ckeditor, editorSettings, $) {
-  Drupal.behaviors.ajaxCssForm = {
-    attach: function attach(context) {
-      $(context).find('#edit-inline').not('[contenteditable]').each(function () {
-        ckeditor.attachInlineEditor(this, editorSettings.formats.test_format);
-      });
-    }
-  };
-})(Drupal, Drupal.editors.ckeditor, drupalSettings.editor, jQuery);
\ No newline at end of file
diff --git a/web/modules/ckeditor/tests/modules/src/CkeditorOffCanvasTestController.php b/web/modules/ckeditor/tests/modules/src/CkeditorOffCanvasTestController.php
deleted file mode 100644
index 7f02ced45a2cddc00956bffa5f0625c379014f08..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/tests/modules/src/CkeditorOffCanvasTestController.php
+++ /dev/null
@@ -1,33 +0,0 @@
-<?php
-
-namespace Drupal\ckeditor_test;
-
-use Drupal\Core\Url;
-
-/**
- * Provides controller for testing CKEditor in off-canvas dialogs.
- */
-class CkeditorOffCanvasTestController {
-
-  /**
-   * Returns a link that can open a node add form in an off-canvas dialog.
-   *
-   * @return array
-   *   A render array.
-   */
-  public function testOffCanvas() {
-    $build['link'] = [
-      '#type' => 'link',
-      '#title' => 'Add Node',
-      '#url' => Url::fromRoute('node.add', ['node_type' => 'page']),
-      '#attributes' => [
-        'class' => ['use-ajax'],
-        'data-dialog-type' => 'dialog',
-        'data-dialog-renderer' => 'off_canvas',
-      ],
-    ];
-    $build['#attached']['library'][] = 'core/drupal.dialog.off_canvas';
-    return $build;
-  }
-
-}
diff --git a/web/modules/ckeditor/tests/modules/src/Form/AjaxCssForm.php b/web/modules/ckeditor/tests/modules/src/Form/AjaxCssForm.php
deleted file mode 100644
index fd8ef0e58d77c604aa19a43f380620509ead233f..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/tests/modules/src/Form/AjaxCssForm.php
+++ /dev/null
@@ -1,138 +0,0 @@
-<?php
-
-namespace Drupal\ckeditor_test\Form;
-
-use Drupal\ckeditor\Ajax\AddStyleSheetCommand;
-use Drupal\Core\Ajax\AjaxResponse;
-use Drupal\Core\File\FileUrlGeneratorInterface;
-use Drupal\Core\Form\FormBase;
-use Drupal\Core\Form\FormStateInterface;
-use Symfony\Component\DependencyInjection\ContainerInterface;
-
-/**
- * A form for testing delivery of CSS to CKEditor via AJAX.
- *
- * @internal
- */
-class AjaxCssForm extends FormBase {
-
-  /**
-   * The file URL generator.
-   *
-   * @var \Drupal\Core\File\FileUrlGeneratorInterface
-   */
-  protected $fileUrlGenerator;
-
-  /**
-   * Constructs an AjaxCssForm.
-   *
-   * @param \Drupal\Core\File\FileUrlGeneratorInterface $file_url_generator
-   *   The file URL generator.
-   */
-  public function __construct(FileUrlGeneratorInterface $file_url_generator) {
-    $this->fileUrlGenerator = $file_url_generator;
-  }
-
-  /**
-   * @inheritDoc
-   */
-  public static function create(ContainerInterface $container) {
-    return new static($container->get('file_url_generator'));
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  public function getFormId() {
-    return 'ckeditor_test_ajax_css_form';
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  public function buildForm(array $form, FormStateInterface $form_state) {
-    // Create an inline and iframe CKEditor instance so we can test against
-    // both.
-    $form['inline'] = [
-      '#type' => 'container',
-      '#attached' => [
-        'library' => [
-          'ckeditor_test/ajax_css',
-        ],
-      ],
-      '#children' => $this->t('Here be dragons.'),
-    ];
-    $form['iframe'] = [
-      '#type' => 'text_format',
-      '#default_value' => $this->t('Here be llamas.'),
-    ];
-
-    // A pair of buttons to trigger the AJAX events.
-    $form['actions'] = [
-      'css_inline' => [
-        '#type' => 'submit',
-        '#value' => $this->t('Add CSS to inline CKEditor instance'),
-        '#ajax' => [
-          'callback' => [$this, 'addCssInline'],
-        ],
-      ],
-      'css_frame' => [
-        '#type' => 'submit',
-        '#value' => $this->t('Add CSS to iframe CKEditor instance'),
-        '#ajax' => [
-          'callback' => [$this, 'addCssIframe'],
-        ],
-      ],
-      '#type' => 'actions',
-    ];
-
-    return $form;
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  public function submitForm(array &$form, FormStateInterface $form_state) {
-    // Nothing to do here.
-  }
-
-  /**
-   * Generates an AJAX response to add CSS to a CKEditor Text Editor instance.
-   *
-   * @param string $editor_id
-   *   The Text Editor instance ID.
-   *
-   * @return \Drupal\Core\Ajax\AjaxResponse
-   *   An AJAX response.
-   */
-  protected function generateResponse($editor_id) {
-    // Build a URL to the style sheet that will be added.
-    $url = \Drupal::service('extension.list.module')->getPath('ckeditor_test') . '/css/test.css';
-    $url = $this->fileUrlGenerator->generateString($url);
-
-    $response = new AjaxResponse();
-    return $response
-      ->addCommand(new AddStyleSheetCommand($editor_id, [$url]));
-  }
-
-  /**
-   * Handles the AJAX request to add CSS to the inline editor.
-   *
-   * @return \Drupal\Core\Ajax\AjaxResponse
-   *   An AJAX response.
-   */
-  public function addCssInline() {
-    return $this->generateResponse('edit-inline');
-  }
-
-  /**
-   * Handles the AJAX request to add CSS to the iframe editor.
-   *
-   * @return \Drupal\Core\Ajax\AjaxResponse
-   *   An AJAX response.
-   */
-  public function addCssIframe() {
-    return $this->generateResponse('edit-iframe-value');
-  }
-
-}
diff --git a/web/modules/ckeditor/tests/modules/src/Plugin/CKEditorPlugin/Llama.php b/web/modules/ckeditor/tests/modules/src/Plugin/CKEditorPlugin/Llama.php
deleted file mode 100644
index b724ff159252115359919856ba138aceca6e467d..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/tests/modules/src/Plugin/CKEditorPlugin/Llama.php
+++ /dev/null
@@ -1,86 +0,0 @@
-<?php
-
-namespace Drupal\ckeditor_test\Plugin\CKEditorPlugin;
-
-use Drupal\ckeditor\CKEditorPluginInterface;
-use Drupal\Component\Plugin\PluginBase;
-use Drupal\Core\Plugin\ContainerFactoryPluginInterface;
-use Drupal\editor\Entity\Editor;
-use Symfony\Component\DependencyInjection\ContainerInterface;
-
-/**
- * Defines the "Llama" plugin, with a CKEditor "llama" feature.
- *
- * This feature does not correspond to a toolbar button. Because this plugin
- * does not implement the CKEditorPluginContextualInterface nor the
- * CKEditorPluginButtonsInterface interface, there is no way of actually loading
- * this plugin.
- *
- * @see \Drupal\ckeditor_test\Plugin\CKEditorPlugin\LlamaContextual
- * @see \Drupal\ckeditor_test\Plugin\CKEditorPlugin\LlamaButton
- * @see \Drupal\ckeditor_test\Plugin\CKEditorPlugin\LlamaContextualAndButton
- * @see \Drupal\ckeditor_test\Plugin\CKEditorPlugin\LlamaCss
- *
- * @CKEditorPlugin(
- *   id = "llama",
- *   label = @Translation("Llama")
- * )
- */
-class Llama extends PluginBase implements CKEditorPluginInterface, ContainerFactoryPluginInterface {
-
-  /**
-   * The module list service.
-   *
-   * @var \Drupal\Core\Extension\ModuleExtensionList
-   */
-  protected $moduleList;
-
-  /**
-   * {@inheritdoc}
-   */
-  public static function create(ContainerInterface $container, array $configuration, $plugin_id, $plugin_definition) {
-    $instance = new static(
-      $configuration,
-      $plugin_id,
-      $plugin_definition,
-    );
-    $instance->moduleList = $container->get('extension.list.module');
-    return $instance;
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  public function getDependencies(Editor $editor) {
-    return [];
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  public function getLibraries(Editor $editor) {
-    return [];
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  public function isInternal() {
-    return FALSE;
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  public function getFile() {
-    return $this->moduleList->getPath('ckeditor_test') . '/js/llama.js';
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  public function getConfig(Editor $editor) {
-    return [];
-  }
-
-}
diff --git a/web/modules/ckeditor/tests/modules/src/Plugin/CKEditorPlugin/LlamaButton.php b/web/modules/ckeditor/tests/modules/src/Plugin/CKEditorPlugin/LlamaButton.php
deleted file mode 100644
index 646eaa6d25da097f16c0a7b9c62f7336d920defe..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/tests/modules/src/Plugin/CKEditorPlugin/LlamaButton.php
+++ /dev/null
@@ -1,35 +0,0 @@
-<?php
-
-namespace Drupal\ckeditor_test\Plugin\CKEditorPlugin;
-
-use Drupal\ckeditor\CKEditorPluginButtonsInterface;
-
-/**
- * Defines a "LlamaButton" plugin, with a toolbar builder-enabled "llama" feature.
- *
- * @CKEditorPlugin(
- *   id = "llama_button",
- *   label = @Translation("Llama Button")
- * )
- */
-class LlamaButton extends Llama implements CKEditorPluginButtonsInterface {
-
-  /**
-   * {@inheritdoc}
-   */
-  public function getButtons() {
-    return [
-      'Llama' => [
-        'label' => t('Insert Llama'),
-      ],
-    ];
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  public function getFile() {
-    return $this->moduleList->getPath('ckeditor_test') . '/js/llama_button.js';
-  }
-
-}
diff --git a/web/modules/ckeditor/tests/modules/src/Plugin/CKEditorPlugin/LlamaContextual.php b/web/modules/ckeditor/tests/modules/src/Plugin/CKEditorPlugin/LlamaContextual.php
deleted file mode 100644
index 4fcbdb142b360e5b283ddefeb80663d4fa3056d2..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/tests/modules/src/Plugin/CKEditorPlugin/LlamaContextual.php
+++ /dev/null
@@ -1,41 +0,0 @@
-<?php
-
-namespace Drupal\ckeditor_test\Plugin\CKEditorPlugin;
-
-use Drupal\ckeditor\CKEditorPluginContextualInterface;
-use Drupal\editor\Entity\Editor;
-
-/**
- * Defines a "Llama" plugin, with a contextually enabled "llama" feature.
- *
- * @CKEditorPlugin(
- *   id = "llama_contextual",
- *   label = @Translation("Contextual Llama")
- * )
- */
-class LlamaContextual extends Llama implements CKEditorPluginContextualInterface {
-
-  /**
-   * {@inheritdoc}
-   */
-  public function isEnabled(Editor $editor) {
-    // Automatically enable this plugin if the Underline button is enabled.
-    $settings = $editor->getSettings();
-    foreach ($settings['toolbar']['rows'] as $row) {
-      foreach ($row as $group) {
-        if (in_array('Strike', $group['items'])) {
-          return TRUE;
-        }
-      }
-    }
-    return FALSE;
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  public function getFile() {
-    return $this->moduleList->getPath('ckeditor_test') . '/js/llama_contextual.js';
-  }
-
-}
diff --git a/web/modules/ckeditor/tests/modules/src/Plugin/CKEditorPlugin/LlamaContextualAndButton.php b/web/modules/ckeditor/tests/modules/src/Plugin/CKEditorPlugin/LlamaContextualAndButton.php
deleted file mode 100644
index 3033904f295281d7e8608ee23740399abeb3b7b0..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/tests/modules/src/Plugin/CKEditorPlugin/LlamaContextualAndButton.php
+++ /dev/null
@@ -1,76 +0,0 @@
-<?php
-
-namespace Drupal\ckeditor_test\Plugin\CKEditorPlugin;
-
-use Drupal\ckeditor\CKEditorPluginButtonsInterface;
-use Drupal\ckeditor\CKEditorPluginContextualInterface;
-use Drupal\ckeditor\CKEditorPluginConfigurableInterface;
-use Drupal\Core\Form\FormStateInterface;
-use Drupal\editor\Entity\Editor;
-
-/**
- * Defines a "LlamaContextualAndButton" plugin, with a contextually OR toolbar
- * builder-enabled "llama" feature.
- *
- * @CKEditorPlugin(
- *   id = "llama_contextual_and_button",
- *   label = @Translation("Contextual Llama With Button")
- * )
- */
-class LlamaContextualAndButton extends Llama implements CKEditorPluginContextualInterface, CKEditorPluginButtonsInterface, CKEditorPluginConfigurableInterface {
-
-  /**
-   * {@inheritdoc}
-   */
-  public function isEnabled(Editor $editor) {
-    // Automatically enable this plugin if the Strike button is enabled.
-    $settings = $editor->getSettings();
-    foreach ($settings['toolbar']['rows'] as $row) {
-      foreach ($row as $group) {
-        if (in_array('Strike', $group['items'])) {
-          return TRUE;
-        }
-      }
-    }
-    return FALSE;
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  public function getButtons() {
-    return [
-      'Llama' => [
-        'label' => t('Insert Llama'),
-      ],
-    ];
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  public function getFile() {
-    return $this->moduleList->getPath('ckeditor_test') . '/js/llama_contextual_and_button.js';
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  public function settingsForm(array $form, FormStateInterface $form_state, Editor $editor) {
-    // Defaults.
-    $config = ['ultra_llama_mode' => FALSE];
-    $settings = $editor->getSettings();
-    if (isset($settings['plugins']['llama_contextual_and_button'])) {
-      $config = $settings['plugins']['llama_contextual_and_button'];
-    }
-
-    $form['ultra_llama_mode'] = [
-      '#title' => t('Ultra llama mode'),
-      '#type' => 'checkbox',
-      '#default_value' => $config['ultra_llama_mode'],
-    ];
-
-    return $form;
-  }
-
-}
diff --git a/web/modules/ckeditor/tests/modules/src/Plugin/CKEditorPlugin/LlamaCss.php b/web/modules/ckeditor/tests/modules/src/Plugin/CKEditorPlugin/LlamaCss.php
deleted file mode 100644
index 23ffc8b5c96d3ba68fe52a8f7191b040a8ce93e2..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/tests/modules/src/Plugin/CKEditorPlugin/LlamaCss.php
+++ /dev/null
@@ -1,46 +0,0 @@
-<?php
-
-namespace Drupal\ckeditor_test\Plugin\CKEditorPlugin;
-
-use Drupal\ckeditor\CKEditorPluginButtonsInterface;
-use Drupal\ckeditor\CKEditorPluginCssInterface;
-use Drupal\editor\Entity\Editor;
-
-/**
- * Defines a "LlamaCss" plugin, with an associated "llama" CSS.
- *
- * @CKEditorPlugin(
- *   id = "llama_css",
- *   label = @Translation("Llama CSS")
- * )
- */
-class LlamaCss extends Llama implements CKEditorPluginButtonsInterface, CKEditorPluginCssInterface {
-
-  /**
-   * {@inheritdoc}
-   */
-  public function getButtons() {
-    return [
-      'LlamaCSS' => [
-        'label' => t('Insert Llama CSS'),
-      ],
-    ];
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  public function getCssFiles(Editor $editor) {
-    return [
-      $this->moduleList->getPath('ckeditor_test') . '/css/llama.css',
-    ];
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  public function getFile() {
-    return $this->moduleList->getPath('ckeditor_test') . '/js/llama_css.js';
-  }
-
-}
diff --git a/web/modules/ckeditor/tests/modules/src/Plugin/Filter/TestAttributeFilter.php b/web/modules/ckeditor/tests/modules/src/Plugin/Filter/TestAttributeFilter.php
deleted file mode 100644
index 885877b4b3a179724b7a69888a843e6afd32f280..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/tests/modules/src/Plugin/Filter/TestAttributeFilter.php
+++ /dev/null
@@ -1,38 +0,0 @@
-<?php
-
-namespace Drupal\ckeditor_test\Plugin\Filter;
-
-use Drupal\Component\Utility\Html;
-use Drupal\filter\FilterProcessResult;
-use Drupal\filter\Plugin\FilterBase;
-
-/**
- * A filter that adds a test attribute to any configured HTML tags.
- *
- * @Filter(
- *   id = "test_attribute_filter",
- *   title = @Translation("Test Attribute Filter"),
- *   type = Drupal\filter\Plugin\FilterInterface::TYPE_TRANSFORM_REVERSIBLE,
- *   settings = {
- *     "tags" = {},
- *   },
- *   weight = -10
- * )
- */
-class TestAttributeFilter extends FilterBase {
-
-  /**
-   * {@inheritdoc}
-   */
-  public function process($text, $langcode) {
-    $document = Html::load($text);
-    foreach ($this->settings['tags'] as $tag) {
-      $tag_elements = $document->getElementsByTagName($tag);
-      foreach ($tag_elements as $tag_element) {
-        $tag_element->setAttribute('test_attribute', 'test attribute value');
-      }
-    }
-    return new FilterProcessResult(Html::serialize($document));
-  }
-
-}
diff --git a/web/modules/ckeditor/tests/src/Functional/CKEditorAdminTest.php b/web/modules/ckeditor/tests/src/Functional/CKEditorAdminTest.php
deleted file mode 100644
index ded1d54c79f1384ad33ef9c48af11cdfb72ea672..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/tests/src/Functional/CKEditorAdminTest.php
+++ /dev/null
@@ -1,306 +0,0 @@
-<?php
-
-namespace Drupal\Tests\ckeditor\Functional;
-
-use Drupal\Component\Serialization\Json;
-use Drupal\editor\Entity\Editor;
-use Drupal\filter\FilterFormatInterface;
-use Drupal\filter\Entity\FilterFormat;
-use Drupal\Tests\BrowserTestBase;
-
-/**
- * Tests administration of CKEditor.
- *
- * @group ckeditor
- */
-class CKEditorAdminTest extends BrowserTestBase {
-
-  /**
-   * Modules to enable.
-   *
-   * @var array
-   */
-  protected static $modules = ['filter', 'editor', 'ckeditor'];
-
-  /**
-   * {@inheritdoc}
-   */
-  protected $defaultTheme = 'stark';
-
-  /**
-   * A user with the 'administer filters' permission.
-   *
-   * @var \Drupal\user\UserInterface
-   */
-  protected $adminUser;
-
-  protected function setUp(): void {
-    parent::setUp();
-
-    // Create text format.
-    $filtered_html_format = FilterFormat::create([
-      'format' => 'filtered_html',
-      'name' => 'Filtered HTML',
-      'weight' => 0,
-      'filters' => [],
-    ]);
-    $filtered_html_format->save();
-
-    // Create admin user.
-    $this->adminUser = $this->drupalCreateUser(['administer filters']);
-  }
-
-  /**
-   * Tests configuring a text editor for an existing text format.
-   */
-  public function testExistingFormat() {
-    $ckeditor = $this->container->get('plugin.manager.editor')->createInstance('ckeditor');
-
-    $this->drupalLogin($this->adminUser);
-    $this->drupalGet('admin/config/content/formats/manage/filtered_html');
-
-    // Ensure no Editor config entity exists yet.
-    $editor = Editor::load('filtered_html');
-    $this->assertNull($editor, 'No Editor config entity exists yet.');
-
-    // Verify the "Text Editor" <select> when a text editor is available.
-    $select = $this->assertSession()->selectExists('editor[editor]');
-    $this->assertFalse($select->hasAttribute('disabled'));
-    $options = $select->findAll('css', 'option');
-    $this->assertCount(2, $options);
-    $this->assertSame('None', $options[0]->getText());
-    $this->assertSame('CKEditor', $options[1]->getText());
-    $this->assertTrue($options[0]->isSelected());
-
-    // Select the "CKEditor" editor and click the "Save configuration" button.
-    $edit = [
-      'editor[editor]' => 'ckeditor',
-    ];
-    $this->submitForm($edit, 'Save configuration');
-    $this->assertSession()->pageTextContains('You must configure the selected text editor.');
-
-    // Ensure the CKEditor editor returns the expected default settings.
-    $expected_default_settings = [
-      'toolbar' => [
-        'rows' => [
-          // Button groups
-          [
-            [
-              'name' => 'Formatting',
-              'items' => ['Bold', 'Italic'],
-            ],
-            [
-              'name' => 'Links',
-              'items' => ['DrupalLink', 'DrupalUnlink'],
-            ],
-            [
-              'name' => 'Lists',
-              'items' => ['BulletedList', 'NumberedList'],
-            ],
-            [
-              'name' => 'Media',
-              'items' => ['Blockquote', 'DrupalImage'],
-            ],
-            [
-              'name' => 'Tools',
-              'items' => ['Source'],
-            ],
-          ],
-        ],
-      ],
-      'plugins' => [],
-    ];
-    $this->assertEquals($expected_default_settings, $ckeditor->getDefaultSettings());
-
-    // Keep the "CKEditor" editor selected and click the "Configure" button.
-    $this->submitForm($edit, 'editor_configure');
-    $editor = Editor::load('filtered_html');
-    $this->assertNull($editor, 'No Editor config entity exists yet.');
-
-    // Ensure that drupalSettings is correct.
-    $ckeditor_settings_toolbar = [
-      '#theme' => 'ckeditor_settings_toolbar',
-      '#editor' => Editor::create(['editor' => 'ckeditor']),
-      '#plugins' => $this->container->get('plugin.manager.ckeditor.plugin')->getButtons(),
-    ];
-    $settings = $this->getDrupalSettings();
-    $expected = $settings['ckeditor']['toolbarAdmin'];
-    $this->assertEquals(
-      $expected,
-      $this->container->get('renderer')->renderPlain($ckeditor_settings_toolbar),
-      'CKEditor toolbar settings are rendered as part of drupalSettings.'
-    );
-
-    // Ensure the toolbar buttons configuration value is initialized to the
-    // expected default value.
-    $expected_buttons_value = json_encode($expected_default_settings['toolbar']['rows']);
-    $this->assertSession()->fieldValueEquals('editor[settings][toolbar][button_groups]', $expected_buttons_value);
-
-    // Submit the form to save the selection of CKEditor as the chosen editor.
-    $this->submitForm($edit, 'Save configuration');
-
-    // Ensure an Editor object exists now, with the proper settings.
-    $expected_settings = $expected_default_settings;
-    $editor = Editor::load('filtered_html');
-    $this->assertInstanceOf(Editor::class, $editor);
-    $this->assertEquals($expected_settings, $editor->getSettings(), 'The Editor config entity has the correct settings.');
-
-    // Configure the Styles plugin, and ensure the updated settings are saved.
-    $this->drupalGet('admin/config/content/formats/manage/filtered_html');
-
-    // Ensure the styles textarea exists and is initialized empty.
-    $this->assertSession()->fieldValueEquals('editor[settings][plugins][stylescombo][styles]', '');
-
-    $expected_settings['toolbar']['rows'][0][] = [
-      'name' => 'Styles dropdown',
-      'items' => ['Styles'],
-    ];
-    $edit = [
-      'editor[settings][toolbar][button_groups]' => json_encode($expected_settings['toolbar']['rows']),
-      'editor[settings][plugins][stylescombo][styles]' => "h1.title|Title\np.callout|Callout\n\n",
-    ];
-    $this->submitForm($edit, 'Save configuration');
-    $expected_settings['plugins']['stylescombo']['styles'] = "h1.title|Title\np.callout|Callout\n\n";
-    $editor = Editor::load('filtered_html');
-    $this->assertInstanceOf(Editor::class, $editor);
-    $this->assertEquals($expected_settings, $editor->getSettings(), 'The Editor config entity has the correct settings.');
-
-    // Change the buttons that appear on the toolbar (in JavaScript, this is
-    // done via drag and drop, but here we can only emulate the end result of
-    // that interaction). Test multiple toolbar rows and a divider within a row.
-    $this->drupalGet('admin/config/content/formats/manage/filtered_html');
-    $expected_settings = $expected_default_settings;
-    $expected_settings['toolbar']['rows'][0][] = [
-      'name' => 'Action history',
-      'items' => ['Undo', '|', 'Redo', 'JustifyCenter'],
-    ];
-    $edit = [
-      'editor[settings][toolbar][button_groups]' => json_encode($expected_settings['toolbar']['rows']),
-    ];
-    $this->submitForm($edit, 'Save configuration');
-    $editor = Editor::load('filtered_html');
-    $this->assertInstanceOf(Editor::class, $editor);
-    $this->assertEquals($expected_settings, $editor->getSettings(), 'The Editor config entity has the correct settings.');
-
-    // Check that the markup we're setting for the toolbar buttons (actually in
-    // JavaScript's drupalSettings, and Unicode-escaped) is correctly rendered.
-    $this->drupalGet('admin/config/content/formats/manage/filtered_html');
-    // Create function to encode HTML as we expect it in drupalSettings.
-    $json_encode = function ($html) {
-      return trim(Json::encode($html), '"');
-    };
-    // Check the Button separator.
-    $this->assertSession()->responseContains($json_encode('<li data-drupal-ckeditor-button-name="-" class="ckeditor-button-separator ckeditor-multiple-button" data-drupal-ckeditor-type="separator"><a href="#" role="button" aria-label="Button separator" class="ckeditor-separator"></a></li>'));
-    // Check the Format dropdown.
-    $this->assertSession()->responseContains($json_encode('<li data-drupal-ckeditor-button-name="Format" class="ckeditor-button"><a href="#" role="button" aria-label="Format"><span class="ckeditor-button-dropdown">Format<span class="ckeditor-button-arrow"></span></span></a></li>'));
-    // Check the Styles dropdown.
-    $this->assertSession()->responseContains($json_encode('<li data-drupal-ckeditor-button-name="Styles" class="ckeditor-button"><a href="#" role="button" aria-label="Styles"><span class="ckeditor-button-dropdown">Styles<span class="ckeditor-button-arrow"></span></span></a></li>'));
-    // Check strikethrough.
-    $this->assertSession()->responseContains($json_encode('<li data-drupal-ckeditor-button-name="Strike" class="ckeditor-button"><a href="#" class="cke-icon-only cke_ltr" role="button" title="strike" aria-label="strike"><span class="cke_button_icon cke_button__strike_icon">strike</span></a></li>'));
-
-    // Now enable the ckeditor_test module, which provides one configurable
-    // CKEditor plugin — this should not affect the Editor config entity.
-    \Drupal::service('module_installer')->install(['ckeditor_test']);
-    $this->resetAll();
-    $this->container->get('plugin.manager.ckeditor.plugin')->clearCachedDefinitions();
-    $this->drupalGet('admin/config/content/formats/manage/filtered_html');
-    $this->assertSession()->checkboxNotChecked('editor[settings][plugins][llama_contextual_and_button][ultra_llama_mode]');
-    $editor = Editor::load('filtered_html');
-    $this->assertInstanceOf(Editor::class, $editor);
-    $this->assertEquals($expected_settings, $editor->getSettings(), 'The Editor config entity has the correct settings.');
-
-    // Finally, check the "Ultra llama mode" checkbox.
-    $this->drupalGet('admin/config/content/formats/manage/filtered_html');
-    $expected_settings['toolbar']['rows'][0][] = [
-      'name' => 'Ultra llama mode',
-      'items' => ['Llama'],
-    ];
-    $edit = [
-      'editor[settings][toolbar][button_groups]' => json_encode($expected_settings['toolbar']['rows']),
-      'editor[settings][plugins][llama_contextual_and_button][ultra_llama_mode]' => '1',
-    ];
-    $this->submitForm($edit, 'Save configuration');
-    $this->drupalGet('admin/config/content/formats/manage/filtered_html');
-    $this->assertSession()->checkboxChecked('editor[settings][plugins][llama_contextual_and_button][ultra_llama_mode]');
-    $expected_settings['plugins']['llama_contextual_and_button']['ultra_llama_mode'] = TRUE;
-    $editor = Editor::load('filtered_html');
-    $this->assertInstanceOf(Editor::class, $editor);
-    $this->assertEquals($expected_settings, $editor->getSettings());
-
-    $this->drupalGet('admin/config/content/formats/add');
-    // Now attempt to add another filter format with the same editor and same
-    // machine name.
-    $edit = [
-      'format' => 'filtered_html',
-      'name' => 'Filtered HTML',
-      'editor[editor]' => 'ckeditor',
-    ];
-    $this->submitForm($edit, 'editor_configure');
-    $this->submitForm($edit, 'Save configuration');
-    $this->assertSession()->statusCodeEquals(200);
-    $this->assertSession()->pageTextContains('The machine-readable name is already in use. It must be unique.');
-  }
-
-  /**
-   * Tests configuring a text editor for a new text format.
-   *
-   * This test only needs to ensure that the basics of the CKEditor
-   * configuration form work; details are tested in testExistingFormat().
-   */
-  public function testNewFormat() {
-    $this->drupalLogin($this->adminUser);
-    $this->drupalGet('admin/config/content/formats/add');
-
-    // Verify the "Text Editor" <select> when a text editor is available.
-    $select = $this->assertSession()->selectExists('editor[editor]');
-    $this->assertFalse($select->hasAttribute('disabled'));
-    $options = $select->findAll('css', 'option');
-    $this->assertCount(2, $options);
-    $this->assertSame('None', $options[0]->getText());
-    $this->assertSame('CKEditor', $options[1]->getText());
-    $this->assertTrue($options[0]->isSelected());
-
-    // Name our fancy new text format, select the "CKEditor" editor and click
-    // the "Configure" button.
-    $edit = [
-      'name' => 'My amazing text format',
-      'format' => 'amazing_format',
-      'editor[editor]' => 'ckeditor',
-    ];
-    $this->submitForm($edit, 'editor_configure');
-    $filter_format = FilterFormat::load('amazing_format');
-    $this->assertNull($filter_format, 'No FilterFormat config entity exists yet.');
-    $editor = Editor::load('amazing_format');
-    $this->assertNull($editor, 'No Editor config entity exists yet.');
-
-    // Ensure the toolbar buttons configuration value is initialized to the
-    // default value.
-    $ckeditor = $this->container->get('plugin.manager.editor')->createInstance('ckeditor');
-    $default_settings = $ckeditor->getDefaultSettings();
-    $expected_buttons_value = json_encode($default_settings['toolbar']['rows']);
-    $this->assertSession()->fieldValueEquals('editor[settings][toolbar][button_groups]', $expected_buttons_value);
-
-    // Regression test for https://www.drupal.org/node/2606460.
-    $settings = $this->getDrupalSettings();
-    $expected = $settings['ckeditor']['toolbarAdmin'];
-    $this->assertStringContainsString('<li data-drupal-ckeditor-button-name="Bold" class="ckeditor-button"><a href="#" class="cke-icon-only cke_ltr" role="button" title="bold" aria-label="bold"><span class="cke_button_icon cke_button__bold_icon">bold</span></a></li>', $expected);
-
-    // Ensure the styles textarea exists and is initialized empty.
-    $this->assertSession()->fieldValueEquals('editor[settings][plugins][stylescombo][styles]', '');
-
-    // Submit the form to create both a new text format and an associated text
-    // editor.
-    $this->submitForm($edit, 'Save configuration');
-
-    // Ensure a FilterFormat object exists now.
-    $filter_format = FilterFormat::load('amazing_format');
-    $this->assertInstanceOf(FilterFormatInterface::class, $filter_format);
-
-    // Ensure an Editor object exists now, with the proper settings.
-    $expected_settings = $default_settings;
-    $editor = Editor::load('amazing_format');
-    $this->assertInstanceOf(Editor::class, $editor);
-    $this->assertEquals($expected_settings, $editor->getSettings(), 'The Editor config entity has the correct settings.');
-  }
-
-}
diff --git a/web/modules/ckeditor/tests/src/Functional/CKEditorLoadingTest.php b/web/modules/ckeditor/tests/src/Functional/CKEditorLoadingTest.php
deleted file mode 100644
index eb56fc7220171718d7dc4f01283ed40a5eda58fd..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/tests/src/Functional/CKEditorLoadingTest.php
+++ /dev/null
@@ -1,233 +0,0 @@
-<?php
-
-namespace Drupal\Tests\ckeditor\Functional;
-
-use Drupal\editor\Entity\Editor;
-use Drupal\filter\Entity\FilterFormat;
-use Drupal\Tests\BrowserTestBase;
-
-/**
- * Tests loading of CKEditor.
- *
- * @group ckeditor
- */
-class CKEditorLoadingTest extends BrowserTestBase {
-
-  /**
-   * Modules to enable.
-   *
-   * @var array
-   */
-  protected static $modules = ['filter', 'editor', 'ckeditor', 'node'];
-
-  /**
-   * {@inheritdoc}
-   */
-  protected $defaultTheme = 'stark';
-
-  /**
-   * An untrusted user with access to only the 'plain_text' format.
-   *
-   * @var \Drupal\user\UserInterface
-   */
-  protected $untrustedUser;
-
-  /**
-   * A normal user with access to the 'plain_text' and 'filtered_html' formats.
-   *
-   * @var \Drupal\user\UserInterface
-   */
-  protected $normalUser;
-
-  protected function setUp(): void {
-    parent::setUp();
-
-    // Create text format, associate CKEditor.
-    $filtered_html_format = FilterFormat::create([
-      'format' => 'filtered_html',
-      'name' => 'Filtered HTML',
-      'weight' => 0,
-      'filters' => [],
-    ]);
-    $filtered_html_format->save();
-    $editor = Editor::create([
-      'format' => 'filtered_html',
-      'editor' => 'ckeditor',
-    ]);
-    $editor->save();
-
-    // Create a second format without an associated editor so a drop down select
-    // list is created when selecting formats.
-    $full_html_format = FilterFormat::create([
-      'format' => 'full_html',
-      'name' => 'Full HTML',
-      'weight' => 1,
-      'filters' => [],
-    ]);
-    $full_html_format->save();
-
-    // Create node type.
-    $this->drupalCreateContentType([
-      'type' => 'article',
-      'name' => 'Article',
-    ]);
-
-    $this->untrustedUser = $this->drupalCreateUser([
-      'create article content',
-      'edit any article content',
-    ]);
-    $this->normalUser = $this->drupalCreateUser([
-      'create article content',
-      'edit any article content',
-      'use text format filtered_html',
-      'use text format full_html',
-    ]);
-  }
-
-  /**
-   * Tests loading of CKEditor CSS, JS and JS settings.
-   */
-  public function testLoading() {
-    // The untrusted user:
-    // - has access to 1 text format (plain_text);
-    // - doesn't have access to the filtered_html text format, so: no text editor.
-    $this->drupalLogin($this->untrustedUser);
-    $this->drupalGet('node/add/article');
-    [$settings, $editor_settings_present, $editor_js_present] = $this->getThingsToCheck();
-    $this->assertFalse($editor_settings_present, 'No Text Editor module settings.');
-    $this->assertFalse($editor_js_present, 'No Text Editor JavaScript.');
-    $this->assertSession()->fieldExists('edit-body-0-value');
-    $this->assertSession()->elementNotExists('css', 'select.js-filter-list');
-    // Verify that a single text format hidden input does not exist on the page.
-    $this->assertSession()->elementNotExists('xpath', '//input[@type="hidden" and contains(@class, "editor")]');
-    // Verify that CKEditor glue JS is absent.
-    $this->assertSession()->responseNotContains($this->getModulePath('ckeditor') . '/js/ckeditor.js');
-
-    // On pages where there would never be a text editor, CKEditor JS is absent.
-    $this->drupalGet('user');
-    $this->assertSession()->responseNotContains($this->getModulePath('ckeditor') . '/js/ckeditor.js');
-
-    // The normal user:
-    // - has access to 2 text formats;
-    // - does have access to the filtered_html text format, so: CKEditor.
-    $this->drupalLogin($this->normalUser);
-    $this->drupalGet('node/add/article');
-    [$settings, $editor_settings_present, $editor_js_present] = $this->getThingsToCheck();
-    $ckeditor_plugin = $this->container->get('plugin.manager.editor')->createInstance('ckeditor');
-    $editor = Editor::load('filtered_html');
-    $expected = [
-      'formats' => [
-        'filtered_html' => [
-          'format' => 'filtered_html',
-          'editor' => 'ckeditor',
-          'editorSettings' => $ckeditor_plugin->getJSSettings($editor),
-          'editorSupportsContentFiltering' => TRUE,
-          'isXssSafe' => FALSE,
-        ],
-      ],
-    ];
-    $this->assertTrue($editor_settings_present, "Text Editor module's JavaScript settings are on the page.");
-    $this->assertEquals($expected, $settings['editor'], "Text Editor module's JavaScript settings on the page are correct.");
-    $this->assertTrue($editor_js_present, 'Text Editor JavaScript is present.');
-    $this->assertSession()->fieldExists('edit-body-0-value');
-    // Verify that a single text format selector exists on the page and has a
-    // "data-editor-for" attribute with the correct value.
-    $this->assertSession()->elementsCount('css', 'select.js-filter-list', 1);
-    $select = $this->assertSession()->elementExists('css', 'select.js-filter-list');
-    $this->assertSame('edit-body-0-value', $select->getAttribute('data-editor-for'));
-    $this->assertContains('ckeditor/drupal.ckeditor', explode(',', $settings['ajaxPageState']['libraries']), 'CKEditor glue library is present.');
-
-    // Enable the ckeditor_test module, customize configuration. In this case,
-    // there is additional CSS and JS to be loaded.
-    // NOTE: the tests in CKEditorTest already ensure that changing the
-    // configuration also results in modified CKEditor configuration, so we
-    // don't test that here.
-    \Drupal::service('module_installer')->install(['ckeditor_test']);
-    $this->container->get('plugin.manager.ckeditor.plugin')->clearCachedDefinitions();
-    $editor_settings = $editor->getSettings();
-    $editor_settings['toolbar']['rows'][0][0]['items'][] = 'Llama';
-    $editor->setSettings($editor_settings);
-    $editor->save();
-    $this->drupalGet('node/add/article');
-    [$settings, $editor_settings_present, $editor_js_present] = $this->getThingsToCheck();
-    $expected = [
-      'formats' => [
-        'filtered_html' => [
-          'format' => 'filtered_html',
-          'editor' => 'ckeditor',
-          'editorSettings' => $ckeditor_plugin->getJSSettings($editor),
-          'editorSupportsContentFiltering' => TRUE,
-          'isXssSafe' => FALSE,
-        ],
-      ],
-    ];
-    $this->assertTrue($editor_settings_present, "Text Editor module's JavaScript settings are on the page.");
-    $this->assertEquals($expected, $settings['editor'], "Text Editor module's JavaScript settings on the page are correct.");
-    $this->assertTrue($editor_js_present, 'Text Editor JavaScript is present.');
-    $this->assertContains('ckeditor/drupal.ckeditor', explode(',', $settings['ajaxPageState']['libraries']), 'CKEditor glue library is present.');
-
-    // Assert that CKEditor uses Drupal's cache-busting query string by
-    // comparing the setting sent with the page with the current query string.
-    $settings = $this->getDrupalSettings();
-    $expected = $settings['ckeditor']['timestamp'];
-    $this->assertSame($expected, \Drupal::state()->get('system.css_js_query_string'), "CKEditor scripts cache-busting string is correct before flushing all caches.");
-    // Flush all caches then make sure that $settings['ckeditor']['timestamp']
-    // still matches.
-    $this->resetAll();
-    $this->assertSame($expected, \Drupal::state()->get('system.css_js_query_string'), "CKEditor scripts cache-busting string is correct after flushing all caches.");
-  }
-
-  /**
-   * Tests presence of essential configuration even without Internal's buttons.
-   */
-  public function testLoadingWithoutInternalButtons() {
-    // Change the CKEditor text editor configuration to only have link buttons.
-    // This means:
-    // - 0 buttons are from \Drupal\ckeditor\Plugin\CKEditorPlugin\Internal
-    // - 2 buttons are from \Drupal\ckeditor\Plugin\CKEditorPlugin\DrupalLink
-    $filtered_html_editor = Editor::load('filtered_html');
-    $settings = $filtered_html_editor->getSettings();
-    $settings['toolbar']['rows'] = [
-      0 => [
-        0 => [
-          'name' => 'Links',
-          'items' => [
-            'DrupalLink',
-            'DrupalUnlink',
-          ],
-        ],
-      ],
-    ];
-    $filtered_html_editor->setSettings($settings)->save();
-
-    // Even when no buttons of \Drupal\ckeditor\Plugin\CKEditorPlugin\Internal
-    // are in use, its configuration (Internal::getConfig()) is still essential:
-    // this is configuration that is associated with the (custom, optimized)
-    // build of CKEditor that Drupal core ships with. For example, it configures
-    // CKEditor to not perform its default action of loading a config.js file,
-    // to not convert special characters into HTML entities, and the allowedContent
-    // setting to configure CKEditor's Advanced Content Filter.
-    $this->drupalLogin($this->normalUser);
-    $this->drupalGet('node/add/article');
-    $editor_settings = $this->getDrupalSettings()['editor']['formats']['filtered_html']['editorSettings'];
-    $this->assertTrue(isset($editor_settings['customConfig']));
-    $this->assertTrue(isset($editor_settings['entities']));
-    $this->assertTrue(isset($editor_settings['allowedContent']));
-    $this->assertTrue(isset($editor_settings['disallowedContent']));
-  }
-
-  protected function getThingsToCheck() {
-    $settings = $this->getDrupalSettings();
-    return [
-      // JavaScript settings.
-      $settings,
-      // Editor.module's JS settings present.
-      isset($settings['editor']),
-      // Editor.module's JS present. Note: ckeditor/drupal.ckeditor depends on
-      // editor/drupal.editor, hence presence of the former implies presence of
-      // the latter.
-      isset($settings['ajaxPageState']['libraries']) && in_array('ckeditor/drupal.ckeditor', explode(',', $settings['ajaxPageState']['libraries'])),
-    ];
-  }
-
-}
diff --git a/web/modules/ckeditor/tests/src/Functional/CKEditorStylesComboAdminTest.php b/web/modules/ckeditor/tests/src/Functional/CKEditorStylesComboAdminTest.php
deleted file mode 100644
index 10ef5c3163925991592e1d8bcb3a829766816920..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/tests/src/Functional/CKEditorStylesComboAdminTest.php
+++ /dev/null
@@ -1,114 +0,0 @@
-<?php
-
-namespace Drupal\Tests\ckeditor\Functional;
-
-use Drupal\editor\Entity\Editor;
-use Drupal\filter\Entity\FilterFormat;
-use Drupal\Tests\BrowserTestBase;
-
-/**
- * Tests administration of the CKEditor StylesCombo plugin.
- *
- * @group ckeditor
- */
-class CKEditorStylesComboAdminTest extends BrowserTestBase {
-
-  /**
-   * Modules to enable.
-   *
-   * @var array
-   */
-  protected static $modules = ['filter', 'editor', 'ckeditor'];
-
-  /**
-   * {@inheritdoc}
-   */
-  protected $defaultTheme = 'stark';
-
-  /**
-   * A user with the 'administer filters' permission.
-   *
-   * @var \Drupal\user\UserInterface
-   */
-  protected $adminUser;
-
-  /**
-   * A random generated format machine name.
-   *
-   * @var string
-   */
-  protected $format;
-
-  /**
-   * The default editor settings.
-   *
-   * @var array
-   */
-  protected $defaultSettings;
-
-  /**
-   * {@inheritdoc}
-   */
-  protected function setUp(): void {
-    parent::setUp();
-
-    $this->format = strtolower($this->randomMachineName());
-    $filter_format = FilterFormat::create([
-      'format' => $this->format,
-      'name' => $this->randomString(),
-      'filters' => [],
-    ]);
-    $filter_format->save();
-    $ckeditor = $this->container->get('plugin.manager.editor')->createInstance('ckeditor');
-    $this->defaultSettings = $ckeditor->getDefaultSettings();
-    $this->defaultSettings['toolbar']['rows'][0][] = [
-      'name' => 'Styles dropdown',
-      'items' => ['Styles'],
-    ];
-    $editor = Editor::create([
-      'format' => $this->format,
-      'editor' => 'ckeditor',
-      'settings' => $this->defaultSettings,
-    ]);
-    $editor->save();
-
-    $this->adminUser = $this->drupalCreateUser(['administer filters']);
-  }
-
-  /**
-   * Tests StylesCombo settings for an existing text format.
-   */
-  public function testExistingFormat() {
-    $this->drupalLogin($this->adminUser);
-    $this->drupalGet('admin/config/content/formats/manage/' . $this->format);
-
-    // Ensure an Editor config entity exists, with the proper settings.
-    $expected_settings = $this->defaultSettings;
-    $editor = Editor::load($this->format);
-    $this->assertEquals($expected_settings, $editor->getSettings(), 'The Editor config entity has the correct settings.');
-
-    // Case 1: Configure the Styles plugin with different labels for each style,
-    // and ensure the updated settings are saved.
-    $this->drupalGet('admin/config/content/formats/manage/' . $this->format);
-    $edit = [
-      'editor[settings][plugins][stylescombo][styles]' => "h1.title|Title\np.callout|Callout\ndrupal-entity.has-dashes|Allowing Dashes\n\n",
-    ];
-    $this->submitForm($edit, 'Save configuration');
-    $expected_settings['plugins']['stylescombo']['styles'] = "h1.title|Title\np.callout|Callout\ndrupal-entity.has-dashes|Allowing Dashes\n\n";
-    $editor = Editor::load($this->format);
-    $this->assertEquals($expected_settings, $editor->getSettings(), 'The Editor config entity has the correct settings.');
-
-    // Case 2: Configure the Styles plugin with same labels for each style, and
-    // ensure that an error is displayed and that the updated settings are not
-    // saved.
-    $this->drupalGet('admin/config/content/formats/manage/' . $this->format);
-    $edit = [
-      'editor[settings][plugins][stylescombo][styles]' => "h1.title|Title\np.callout|Title\n\n",
-    ];
-    $this->submitForm($edit, 'Save configuration');
-    $this->assertSession()->pageTextContains('Each style must have a unique label.');
-    $editor = Editor::load($this->format);
-    $this->assertEquals($expected_settings, $editor->getSettings(), 'The Editor config entity has the correct settings.');
-  }
-
-}
diff --git a/web/modules/ckeditor/tests/src/Functional/CKEditorStylesComboTranslationTest.php b/web/modules/ckeditor/tests/src/Functional/CKEditorStylesComboTranslationTest.php
deleted file mode 100644
index 0e4cba82e1b23b83d30d963d2145364fe2d98e2f..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/tests/src/Functional/CKEditorStylesComboTranslationTest.php
+++ /dev/null
@@ -1,96 +0,0 @@
-<?php
-
-namespace Drupal\Tests\ckeditor\Functional;
-
-use Drupal\editor\Entity\Editor;
-use Drupal\filter\Entity\FilterFormat;
-use Drupal\language\Entity\ConfigurableLanguage;
-use Drupal\Tests\BrowserTestBase;
-
-/**
- * Tests administration of the CKEditor StylesCombo plugin.
- *
- * @group ckeditor
- */
-class CKEditorStylesComboTranslationTest extends BrowserTestBase {
-
-  /**
-   * {@inheritdoc}
-   */
-  protected static $modules = ['ckeditor', 'config_translation'];
-
-  /**
-   * {@inheritdoc}
-   */
-  protected $defaultTheme = 'stark';
-
-  /**
-   * A user with the 'administer filters' permission.
-   *
-   * @var \Drupal\user\UserInterface
-   */
-  protected $adminUser;
-
-  /**
-   * A randomly generated format machine name.
-   *
-   * @var string
-   */
-  protected $format;
-
-  /**
-   * {@inheritdoc}
-   */
-  protected function setUp(): void {
-    parent::setUp();
-
-    $this->format = strtolower($this->randomMachineName());
-    $filter_format = FilterFormat::create([
-      'format' => $this->format,
-      'name' => $this->randomString(),
-      'filters' => [],
-    ]);
-    $filter_format->save();
-    $ckeditor = $this->container->get('plugin.manager.editor')->createInstance('ckeditor');
-    $settings = $ckeditor->getDefaultSettings();
-    $settings['toolbar']['rows'][0][] = [
-      'name' => 'Styles dropdown',
-      'items' => ['Styles'],
-    ];
-    $editor = Editor::create([
-      'format' => $this->format,
-      'editor' => 'ckeditor',
-      'settings' => $settings,
-    ]);
-    $editor->save();
-
-    $this->adminUser = $this->drupalCreateUser([
-      'administer filters',
-      'translate configuration',
-    ]);
-
-    ConfigurableLanguage::createFromLangcode('de')->save();
-  }
-
-  /**
-   * Tests translations of CKEditor styles configuration.
-   */
-  public function testExistingFormat() {
-    $this->drupalLogin($this->adminUser);
-    $edit = [
-      'editor[settings][plugins][stylescombo][styles]' => 'h1.title|Title',
-    ];
-    $this->drupalGet('admin/config/content/formats/manage/' . $this->format);
-    $this->submitForm($edit, 'Save configuration');
-
-    $this->drupalGet('admin/config/content/formats/manage/' . $this->format . '/translate/de/add');
-    $this->assertEquals('textarea', $this->assertSession()->fieldExists('List of styles')->getTagName());
-    $this->assertSession()->fieldValueEquals('List of styles', 'h1.title|Title');
-
-    $page = $this->getSession()->getPage();
-    $page->fillField('List of styles', 'h1.title|Titel');
-    $page->pressButton('Save translation');
-    $this->assertSession()->pageTextContains('Successfully saved German translation.');
-  }
-
-}
diff --git a/web/modules/ckeditor/tests/src/Functional/CKEditorToolbarButtonTest.php b/web/modules/ckeditor/tests/src/Functional/CKEditorToolbarButtonTest.php
deleted file mode 100644
index ebaa5a350f5382e85e0c9be740337209c8ecdb6b..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/tests/src/Functional/CKEditorToolbarButtonTest.php
+++ /dev/null
@@ -1,93 +0,0 @@
-<?php
-
-namespace Drupal\Tests\ckeditor\Functional;
-
-use Drupal\filter\Entity\FilterFormat;
-use Drupal\editor\Entity\Editor;
-use Drupal\Tests\BrowserTestBase;
-use Drupal\Component\Serialization\Json;
-
-/**
- * Tests CKEditor toolbar buttons when the language direction is RTL.
- *
- * @group ckeditor
- */
-class CKEditorToolbarButtonTest extends BrowserTestBase {
-
-  /**
-   * Modules to enable for this test.
-   *
-   * @var array
-   */
-  protected static $modules = ['filter', 'editor', 'ckeditor', 'locale'];
-
-  /**
-   * {@inheritdoc}
-   */
-  protected $defaultTheme = 'stark';
-
-  /**
-   * The admin user.
-   *
-   * @var \Drupal\user\Entity\User
-   */
-  protected $adminUser;
-
-  /**
-   * {@inheritdoc}
-   */
-  protected function setUp(): void {
-    parent::setUp();
-
-    // Create a text format and associate this with CKEditor.
-    FilterFormat::create([
-      'format' => 'full_html',
-      'name' => 'Full HTML',
-      'weight' => 1,
-      'filters' => [],
-    ])->save();
-    Editor::create([
-      'format' => 'full_html',
-      'editor' => 'ckeditor',
-    ])->save();
-
-    // Create a new user with admin rights.
-    $this->adminUser = $this->drupalCreateUser([
-      'administer languages',
-      'access administration pages',
-      'administer site configuration',
-      'administer filters',
-    ]);
-  }
-
-  /**
-   * Method tests CKEditor image buttons.
-   */
-  public function testImageButtonDisplay() {
-    $this->drupalLogin($this->adminUser);
-
-    // Install the Arabic language (which is RTL) and configure as the default.
-    $edit = [];
-    $edit['predefined_langcode'] = 'ar';
-    $this->drupalGet('admin/config/regional/language/add');
-    $this->submitForm($edit, 'Add language');
-
-    $edit = ['site_default_language' => 'ar'];
-    $this->drupalGet('admin/config/regional/language');
-    $this->submitForm($edit, 'Save configuration');
-    // Once the default language is changed, go to the tested text format
-    // configuration page.
-    $this->drupalGet('admin/config/content/formats/manage/full_html');
-
-    // Check if any image button is loaded in CKEditor json.
-    $json_encode = function ($html) {
-      return trim(Json::encode($html), '"');
-    };
-    /** @var \Drupal\Core\File\FileUrlGeneratorInterface $file_url_generator */
-    $file_url_generator = \Drupal::service('file_url_generator');
-    $ckeditor_module_path = $this->getModulePath('ckeditor');
-    $markup = $json_encode($file_url_generator->generateString("$ckeditor_module_path/js/plugins/drupalimage/icons/drupalimage.png"));
-    $this->assertSession()->responseContains($markup);
-  }
-
-}
diff --git a/web/modules/ckeditor/tests/src/Functional/Update/CKEditorUpdateOmitDisabledPluginSettings.php b/web/modules/ckeditor/tests/src/Functional/Update/CKEditorUpdateOmitDisabledPluginSettings.php
deleted file mode 100644
index d441b48e622830ad9fe2ce105fcbe512e6ee02a4..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/tests/src/Functional/Update/CKEditorUpdateOmitDisabledPluginSettings.php
+++ /dev/null
@@ -1,82 +0,0 @@
-<?php
-
-namespace Drupal\Tests\ckeditor\Functional\Update;
-
-use Drupal\Core\Database\Database;
-use Drupal\editor\Entity\Editor;
-use Drupal\FunctionalTests\Update\UpdatePathTestBase;
-
-/**
- * Tests the update path for CKEditor plugin settings for disabled plugins.
- *
- * @group Update
- */
-class CKEditorUpdateOmitDisabledPluginSettings extends UpdatePathTestBase {
-
-  /**
-   * {@inheritdoc}
-   */
-  protected $defaultTheme = 'stark';
-
-  /**
-   * {@inheritdoc}
-   */
-  protected function setDatabaseDumpFiles() {
-    // @see https://www.drupal.org/node/3306545
-    [$version] = explode('.', \Drupal::VERSION, 2);
-    $this->databaseDumpFiles = [
-      $version == 9
-        ? DRUPAL_ROOT . '/core/modules/system/tests/fixtures/update/drupal-9.3.0.bare.standard.php.gz'
-        : DRUPAL_ROOT . '/core/modules/system/tests/fixtures/update/drupal-9.4.0.bare.standard.php.gz',
-    ];
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  protected function doInstall() {
-    parent::doInstall();
-
-    // TRICKY: ::checkRequirements() runs too early.
-    $extensions = Database::getConnection()->select('config')
-      ->fields('config', ['data'])
-      ->condition('collection', '')
-      ->condition('name', 'core.extension')
-      ->execute()
-      ->fetchField();
-    $extensions = unserialize($extensions);
-    if (!array_key_exists('ckeditor', $extensions['module'])) {
-      $this->markTestSkipped('The CKEditor (4) module has already been uninstalled for this database fixture.');
-    }
-  }
-
-  /**
-   * Ensure settings for disabled CKEditor 4 plugins are omitted on post update.
-   */
-  public function testUpdateUpdateOmitDisabledSettingsPostUpdate() {
-    $editor = Editor::load('basic_html');
-    $settings = $editor->getSettings();
-    $this->assertArrayHasKey('stylescombo', $settings['plugins']);
-
-    $this->runUpdates();
-
-    $editor = Editor::load('basic_html');
-    $settings = $editor->getSettings();
-    $this->assertArrayNotHasKey('stylescombo', $settings['plugins']);
-  }
-
-  /**
-   * Ensure settings for disabled CKEditor 4 plugins are omitted on entity save.
-   */
-  public function testUpdateUpdateOmitDisabledSettingsEntitySave() {
-    $editor = Editor::load('basic_html');
-    $settings = $editor->getSettings();
-    $this->assertArrayHasKey('stylescombo', $settings['plugins']);
-    $editor->save();
-
-    $editor = Editor::load('basic_html');
-    $settings = $editor->getSettings();
-    $this->assertArrayNotHasKey('stylescombo', $settings['plugins']);
-  }
-
-}
diff --git a/web/modules/ckeditor/tests/src/FunctionalJavascript/AjaxCssTest.php b/web/modules/ckeditor/tests/src/FunctionalJavascript/AjaxCssTest.php
deleted file mode 100644
index dcd10351aadef4ec9e2bed7aa68a9e4a9ad49989..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/tests/src/FunctionalJavascript/AjaxCssTest.php
+++ /dev/null
@@ -1,128 +0,0 @@
-<?php
-
-namespace Drupal\Tests\ckeditor\FunctionalJavascript;
-
-use Drupal\editor\Entity\Editor;
-use Drupal\filter\Entity\FilterFormat;
-use Drupal\FunctionalJavascriptTests\WebDriverTestBase;
-
-/**
- * Tests delivery of CSS to CKEditor via AJAX.
- *
- * @group ckeditor
- */
-class AjaxCssTest extends WebDriverTestBase {
-
-  /**
-   * {@inheritdoc}
-   */
-  protected static $modules = ['ckeditor', 'ckeditor_test'];
-
-  /**
-   * {@inheritdoc}
-   */
-  protected $defaultTheme = 'stark';
-
-  /**
-   * {@inheritdoc}
-   */
-  protected function setUp(): void {
-    parent::setUp();
-
-    FilterFormat::create([
-      'format' => 'test_format',
-      'name' => $this->randomMachineName(),
-    ])->save();
-
-    Editor::create([
-      'editor' => 'ckeditor',
-      'format' => 'test_format',
-    ])->save();
-
-    user_role_grant_permissions('anonymous', ['use text format test_format']);
-  }
-
-  /**
-   * Tests adding style sheets dynamically to CKEditor.
-   */
-  public function testCkeditorAjaxAddCss() {
-    $this->drupalGet('/ckeditor_test/ajax_css');
-
-    $session = $this->getSession();
-    $page = $session->getPage();
-
-    $this->waitOnCkeditorInstance('edit-iframe-value');
-    $this->waitOnCkeditorInstance('edit-inline');
-
-    $style_color = 'rgb(255, 0, 0)';
-
-    // Add the inline CSS and assert that the style is applied to the main body,
-    // but not the iframe.
-    $page->pressButton('Add CSS to inline CKEditor instance');
-
-    $result = $page->waitFor(10, function () use ($style_color) {
-      return ($this->getEditorStyle('edit-inline', 'color') == $style_color)
-        && ($this->getEditorStyle('edit-iframe-value', 'color') != $style_color);
-    });
-    $this->assertTrue($result);
-
-    $session->reload();
-
-    $this->waitOnCkeditorInstance('edit-iframe-value');
-    $this->waitOnCkeditorInstance('edit-inline');
-
-    // Add the iframe CSS and assert that the style is applied to the iframe,
-    // but not the main body.
-    $page->pressButton('Add CSS to iframe CKEditor instance');
-
-    $result = $page->waitFor(10, function () use ($style_color) {
-      return ($this->getEditorStyle('edit-inline', 'color') != $style_color)
-        && ($this->getEditorStyle('edit-iframe-value', 'color') == $style_color);
-    });
-
-    $this->assertTrue($result);
-  }
-
-  /**
-   * Gets a computed style value for a CKEditor instance.
-   *
-   * @param string $instance_id
-   *   The CKEditor instance ID.
-   * @param string $attribute
-   *   The style attribute.
-   *
-   * @return string
-   *   The computed style value.
-   */
-  protected function getEditorStyle($instance_id, $attribute) {
-    $js = sprintf(
-      'CKEDITOR.instances["%s"].document.getBody().getComputedStyle("%s")',
-      $instance_id,
-      $attribute
-    );
-    return $this->getSession()->evaluateScript($js);
-  }
-
-  /**
-   * Wait for a CKEditor instance to finish loading and initializing.
-   *
-   * @param string $instance_id
-   *   The CKEditor instance ID.
-   * @param int $timeout
-   *   (optional) Timeout in milliseconds, defaults to 10000.
-   */
-  protected function waitOnCkeditorInstance($instance_id, $timeout = 10000) {
-    $condition = <<<JS
-      (function() {
-        return (
-          typeof CKEDITOR !== 'undefined'
-          && typeof CKEDITOR.instances["$instance_id"] !== 'undefined'
-          && CKEDITOR.instances["$instance_id"].instanceReady
-        );
-      }())
-JS;
-
-    $this->getSession()->wait($timeout, $condition);
-  }
-
-}
diff --git a/web/modules/ckeditor/tests/src/FunctionalJavascript/BigPipeRegressionTest.php b/web/modules/ckeditor/tests/src/FunctionalJavascript/BigPipeRegressionTest.php
deleted file mode 100644
index 188aef4ff4853b666ccd7f8f5a65cba1e78fddcd..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/tests/src/FunctionalJavascript/BigPipeRegressionTest.php
+++ /dev/null
@@ -1,119 +0,0 @@
-<?php
-
-namespace Drupal\Tests\ckeditor\FunctionalJavascript;
-
-use Drupal\comment\CommentInterface;
-use Drupal\comment\Entity\Comment;
-use Drupal\comment\Plugin\Field\FieldType\CommentItemInterface;
-use Drupal\comment\Tests\CommentTestTrait;
-use Drupal\editor\Entity\Editor;
-use Drupal\filter\Entity\FilterFormat;
-use Drupal\FunctionalJavascriptTests\WebDriverTestBase;
-use Drupal\Tests\node\Traits\ContentTypeCreationTrait;
-use Drupal\Tests\node\Traits\NodeCreationTrait;
-
-/**
- * BigPipe regression test for CKEditor 4.
- *
- * @group legacy
- */
-class BigPipeRegressionTest extends WebDriverTestBase {
-
-  use CommentTestTrait;
-  use ContentTypeCreationTrait;
-  use NodeCreationTrait;
-
-  /**
-   * {@inheritdoc}
-   */
-  protected static $modules = [
-    'big_pipe',
-    'big_pipe_regression_test',
-  ];
-
-  /**
-   * {@inheritdoc}
-   */
-  protected $defaultTheme = 'stark';
-
-  /**
-   * {@inheritdoc}
-   */
-  public function setUp(): void {
-    parent::setUp();
-
-    // Use the big_pipe_test_theme theme.
-    $this->container->get('theme_installer')->install(['big_pipe_test_theme']);
-    $this->container->get('config.factory')->getEditable('system.theme')->set('default', 'big_pipe_test_theme')->save();
-  }
-
-  /**
-   * Ensure comment form works with history and big_pipe modules.
-   *
-   * @see https://www.drupal.org/node/2698811
-   */
-  public function testCommentForm_2698811() {
-    $this->assertTrue($this->container->get('module_installer')->install(['comment', 'history', 'ckeditor'], TRUE), 'Installed modules.');
-
-    // Ensure an `article` node type exists.
-    $this->createContentType(['type' => 'article']);
-    $this->addDefaultCommentField('node', 'article');
-
-    // Enable CKEditor.
-    $format = $this->randomMachineName();
-    FilterFormat::create([
-      'format' => $format,
-      'name' => $this->randomString(),
-      'weight' => 1,
-      'filters' => [],
-    ])->save();
-    $settings['toolbar']['rows'] = [
-      [
-        [
-          'name' => 'Links',
-          'items' => [
-            'DrupalLink',
-            'DrupalUnlink',
-          ],
-        ],
-      ],
-    ];
-    $editor = Editor::create([
-      'format' => $format,
-      'editor' => 'ckeditor',
-    ]);
-    $editor->setSettings($settings);
-    $editor->save();
-
-    $admin_user = $this->drupalCreateUser([
-      'access comments',
-      'post comments',
-      'use text format ' . $format,
-    ]);
-    $this->drupalLogin($admin_user);
-
-    $node = $this->createNode([
-      'type' => 'article',
-      'comment' => CommentItemInterface::OPEN,
-    ]);
-    // Create some comments.
-    foreach (range(1, 5) as $i) {
-      $comment = Comment::create([
-        'status' => CommentInterface::PUBLISHED,
-        'field_name' => 'comment',
-        'entity_type' => 'node',
-        'entity_id' => $node->id(),
-      ]);
-      $comment->save();
-    }
-    $this->drupalGet($node->toUrl()->toString());
-    // Confirm that CKEditor loaded.
-    $javascript = <<<JS
-    (function(){
-      return window.CKEDITOR && Object.keys(CKEDITOR.instances).length > 0;
-    }())
-JS;
-    $this->assertJsCondition($javascript);
-  }
-
-}
diff --git a/web/modules/ckeditor/tests/src/FunctionalJavascript/CKEditor5CKEditor4Compatibility.php b/web/modules/ckeditor/tests/src/FunctionalJavascript/CKEditor5CKEditor4Compatibility.php
deleted file mode 100644
index aa3c14968f091653422ff24bac4a703f20471122..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/tests/src/FunctionalJavascript/CKEditor5CKEditor4Compatibility.php
+++ /dev/null
@@ -1,139 +0,0 @@
-<?php
-
-namespace Drupal\Tests\ckeditor\FunctionalJavascript;
-
-use Drupal\ckeditor5\Plugin\Editor\CKEditor5;
-use Drupal\Core\Entity\Entity\EntityFormDisplay;
-use Drupal\editor\Entity\Editor;
-use Drupal\field\Entity\FieldConfig;
-use Drupal\field\Entity\FieldStorageConfig;
-use Drupal\filter\Entity\FilterFormat;
-use Drupal\FunctionalJavascriptTests\WebDriverTestBase;
-use Symfony\Component\Validator\ConstraintViolation;
-
-/**
- * Ensures that CKEditor 5 can be used on the same page with CKEditor 4.
- *
- * @group ckeditor
- * @internal
- */
-class CKEditor5CKEditor4Compatibility extends WebDriverTestBase {
-
-  /**
-   * {@inheritdoc}
-   */
-  protected static $modules = [
-    'ckeditor',
-    'node',
-    'ckeditor5',
-    'ckeditor5_test',
-  ];
-
-  /**
-   * {@inheritdoc}
-   */
-  protected $defaultTheme = 'stark';
-
-  /**
-   * {@inheritdoc}
-   */
-  protected function setUp(): void {
-    parent::setUp();
-
-    $this->drupalCreateContentType(['type' => 'page']);
-
-    $this->drupalLogin($this->drupalCreateUser([
-      'administer filters',
-      'create page content',
-      'edit own page content',
-    ]));
-
-    $current_user_roles = $this->loggedInUser->getRoles(TRUE);
-
-    // Create text format, text editor and text fields for CKEditor 5 and 4.
-    foreach ([5 => 'ckeditor5', 4 => 'ckeditor'] as $version => $text_editor_plugin_id) {
-      $format_id = sprintf('test_format_for_ckeditor%d', $version);
-      $field_name = sprintf('field_text_ckeditor%d', $version);
-
-      FilterFormat::create([
-        'format' => $format_id,
-        'name' => sprintf('CKEditor %d editor', $version),
-        'roles' => $current_user_roles,
-        'filters' => [
-          'filter_html' => [
-            'status' => TRUE,
-            'settings' => [
-              'allowed_html' => '<p> <br> <h2> <h3> <h4> <h5> <h6> <strong> <em>',
-            ],
-          ],
-        ],
-      ])->save();
-      Editor::create([
-        'editor' => $text_editor_plugin_id,
-        'format' => $format_id,
-        'settings' => $version === 4 ? [] : [
-          'toolbar' => [
-            'items' => ['heading', 'bold', 'italic'],
-          ],
-          'plugins' => [
-            'ckeditor5_heading' => [
-              'enabled_headings' => [
-                'heading2',
-                'heading3',
-                'heading4',
-                'heading5',
-                'heading6',
-              ],
-            ],
-          ],
-        ],
-        'image_upload' => [
-          'status' => FALSE,
-        ],
-      ])->save();
-      if ($version === 5) {
-        $this->assertSame([], array_map(
-          function (ConstraintViolation $v) {
-            return (string) $v->getMessage();
-          },
-          iterator_to_array(CKEditor5::validatePair(
-            Editor::load($format_id),
-            FilterFormat::load($format_id)
-          ))
-        ));
-      }
-      $field_storage = FieldStorageConfig::create([
-        'field_name' => $field_name,
-        'entity_type' => 'node',
-        'type' => 'text_long',
-      ]);
-      $field_storage->save();
-      FieldConfig::create([
-        'field_storage' => $field_storage,
-        'entity_type' => 'node',
-        'bundle' => 'page',
-      ])->save();
-
-      // Add the new field to the default form display.
-      EntityFormDisplay::load('node.page.default')
-        ->setComponent($field_name, ['type' => 'text_textarea'])
-        ->save();
-    }
-  }
-
-  /**
-   * Ensures that CKEditor 5 and CKEditor 4 can be used on the same page.
-   */
-  public function testCkeCompatibility() {
-    $page = $this->getSession()->getPage();
-    $assert_session = $this->assertSession();
-
-    $this->drupalGet('node/add/page');
-    $page->selectFieldOption('field_text_ckeditor4[0][format]', 'test_format_for_ckeditor4');
-    $page->selectFieldOption('field_text_ckeditor5[0][format]', 'test_format_for_ckeditor5');
-
-    $this->assertNotEmpty($assert_session->waitForElement('css', '.cke_wysiwyg_frame'));
-    $this->assertNotEmpty($assert_session->waitForElement('css', '.ck-editor'));
-  }
-
-}
diff --git a/web/modules/ckeditor/tests/src/FunctionalJavascript/CKEditorIntegrationTest.php b/web/modules/ckeditor/tests/src/FunctionalJavascript/CKEditorIntegrationTest.php
deleted file mode 100644
index cd07517e5acc01db4be0d7552d55229a56421246..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/tests/src/FunctionalJavascript/CKEditorIntegrationTest.php
+++ /dev/null
@@ -1,244 +0,0 @@
-<?php
-
-namespace Drupal\Tests\ckeditor\FunctionalJavascript;
-
-use Drupal\Core\Entity\Entity\EntityFormDisplay;
-use Drupal\editor\Entity\Editor;
-use Drupal\field\Entity\FieldConfig;
-use Drupal\field\Entity\FieldStorageConfig;
-use Drupal\filter\Entity\FilterFormat;
-use Drupal\FunctionalJavascriptTests\WebDriverTestBase;
-use Drupal\node\Entity\NodeType;
-use Drupal\Tests\ckeditor\Traits\CKEditorTestTrait;
-
-/**
- * Tests the integration of CKEditor.
- *
- * @group ckeditor
- */
-class CKEditorIntegrationTest extends WebDriverTestBase {
-
-  use CKEditorTestTrait;
-
-  /**
-   * {@inheritdoc}
-   */
-  protected $defaultTheme = 'stark';
-
-  /**
-   * The account.
-   *
-   * @var \Drupal\user\UserInterface
-   */
-  protected $account;
-
-  /**
-   * The FilterFormat config entity used for testing.
-   *
-   * @var \Drupal\filter\FilterFormatInterface
-   */
-  protected $filterFormat;
-
-  /**
-   * {@inheritdoc}
-   */
-  protected static $modules = ['node', 'ckeditor', 'filter', 'ckeditor_test'];
-
-  /**
-   * The theme to install as the default for testing.
-   *
-   * @var string
-   *
-   * @todo This test's reliance on classes makes Stark a bad fit as a base theme.
-   *   Change the default theme to Starterkit once it is stable.
-   *
-   * @see https://www.drupal.org/project/drupal/issues/3275827
-   */
-  protected function setUp(): void {
-    parent::setUp();
-
-    // Create a text format and associate CKEditor.
-    $this->filterFormat = FilterFormat::create([
-      'format' => 'filtered_html',
-      'name' => 'Filtered HTML',
-      'weight' => 0,
-    ]);
-    $this->filterFormat->save();
-
-    Editor::create([
-      'format' => 'filtered_html',
-      'editor' => 'ckeditor',
-    ])->save();
-
-    // Create a node type for testing.
-    NodeType::create(['type' => 'page', 'name' => 'page'])->save();
-
-    $field_storage = FieldStorageConfig::loadByName('node', 'body');
-
-    // Create a body field instance for the 'page' node type.
-    FieldConfig::create([
-      'field_storage' => $field_storage,
-      'bundle' => 'page',
-      'label' => 'Body',
-      'settings' => ['display_summary' => TRUE],
-      'required' => TRUE,
-    ])->save();
-
-    // Assign widget settings for the 'default' form mode.
-    EntityFormDisplay::create([
-      'targetEntityType' => 'node',
-      'bundle' => 'page',
-      'mode' => 'default',
-      'status' => TRUE,
-    ])->setComponent('body', ['type' => 'text_textarea_with_summary'])
-      ->save();
-
-    $this->account = $this->drupalCreateUser([
-      'administer nodes',
-      'create page content',
-      'use text format filtered_html',
-    ]);
-    $this->drupalLogin($this->account);
-  }
-
-  /**
-   * Tests if the fragment link to a textarea works with CKEditor enabled.
-   */
-  public function testFragmentLink() {
-    $session = $this->getSession();
-    $web_assert = $this->assertSession();
-    $ckeditor_id = '#cke_edit-body-0-value';
-
-    $this->drupalGet('node/add/page');
-
-    $session->getPage();
-
-    // Add a bottom margin to the title field to be sure the body field is not
-    // visible.
-    $session->executeScript("document.getElementById('edit-title-0-value').style.marginBottom = window.innerHeight*2 +'px';");
-
-    $this->assertSession()->waitForElementVisible('css', $ckeditor_id);
-    // Check that the CKEditor-enabled body field is currently not visible in
-    // the viewport.
-    $web_assert->assertNotVisibleInViewport('css', $ckeditor_id, 'topLeft', 'CKEditor-enabled body field is visible.');
-
-    $before_url = $session->getCurrentUrl();
-
-    // Trigger a hash change with as target the hidden textarea.
-    $session->executeScript("location.hash = '#edit-body-0-value';");
-
-    // Check that the CKEditor-enabled body field is visible in the viewport.
-    $web_assert->assertVisibleInViewport('css', $ckeditor_id, 'topLeft', 'CKEditor-enabled body field is not visible.');
-
-    // Use JavaScript to go back in the history instead of
-    // \Behat\Mink\Session::back() because that function doesn't work after a
-    // hash change.
-    $session->executeScript("history.back();");
-
-    $after_url = $session->getCurrentUrl();
-
-    // Check that going back in the history worked.
-    self::assertEquals($before_url, $after_url, 'History back works.');
-  }
-
-  /**
-   * Tests if the Image button appears and works as expected.
-   */
-  public function testDrupalImageDialog() {
-    $session = $this->getSession();
-    $web_assert = $this->assertSession();
-
-    $this->drupalGet('node/add/page');
-    $session->getPage();
-
-    // Asserts the Image button is present in the toolbar.
-    $web_assert->elementExists('css', '#cke_edit-body-0-value .cke_button__drupalimage');
-
-    // Asserts the image dialog opens when clicking the Image button.
-    $this->click('.cke_button__drupalimage');
-    $this->assertNotEmpty($web_assert->waitForElement('css', '.ui-dialog'));
-
-    $web_assert->elementContains('css', '.ui-dialog .ui-dialog-titlebar', 'Insert Image');
-  }
-
-  /**
-   * Tests if the Drupal Image Caption plugin appears and works as expected.
-   */
-  public function testDrupalImageCaptionDialog() {
-    $web_assert = $this->assertSession();
-
-    // Disable the caption filter.
-    $this->filterFormat->setFilterConfig('filter_caption', [
-      'status' => FALSE,
-    ]);
-    $this->filterFormat->save();
-
-    // If the caption filter is disabled, its checkbox should be absent.
-    $this->drupalGet('node/add/page');
-    $this->waitForEditor();
-    $this->pressEditorButton('drupalimage');
-    $this->assertNotEmpty($web_assert->waitForElement('css', '.ui-dialog'));
-    $web_assert->elementNotExists('css', '.ui-dialog input[name="attributes[hasCaption]"]');
-
-    // Enable the caption filter again.
-    $this->filterFormat->setFilterConfig('filter_caption', [
-      'status' => TRUE,
-    ]);
-    $this->filterFormat->save();
-
-    // If the caption filter is enabled, its checkbox should be present.
-    $this->drupalGet('node/add/page');
-    $this->waitForEditor();
-    $this->pressEditorButton('drupalimage');
-    $this->assertNotEmpty($web_assert->waitForElement('css', '.ui-dialog'));
-    $web_assert->elementExists('css', '.ui-dialog input[name="attributes[hasCaption]"]');
-  }
-
-  /**
-   * Tests if CKEditor is properly styled inside an off-canvas dialog.
-   */
-  public function testOffCanvasStyles() {
-    $assert_session = $this->assertSession();
-    $page = $this->getSession()->getPage();
-
-    $this->drupalGet('/ckeditor_test/off_canvas');
-
-    // The "Add Node" link triggers an off-canvas dialog with an add node form
-    // that includes CKEditor.
-    $page->clickLink('Add Node');
-    $assert_session->waitForElementVisible('css', '#drupal-off-canvas');
-    $assert_session->assertWaitOnAjaxRequest();
-
-    // Check the background color of two CKEditor elements to confirm they are
-    // not overridden by the off-canvas css reset.
-    $assert_session->elementExists('css', '.cke_top');
-    $ckeditor_top_bg_color = $this->getSession()->evaluateScript('window.getComputedStyle(document.getElementsByClassName(\'cke_top\')[0]).backgroundColor');
-    $this->assertEquals('rgb(248, 248, 248)', $ckeditor_top_bg_color);
-
-    $assert_session->elementExists('css', '.cke_button__source');
-    $ckeditor_source_button_bg_color = $this->getSession()->evaluateScript('window.getComputedStyle(document.getElementsByClassName(\'cke_button__source\')[0]).backgroundColor');
-    $this->assertEquals('rgba(0, 0, 0, 0)', $ckeditor_source_button_bg_color);
-
-    // Check that only one off-canvas style is cached in local storage and that
-    // it gets updated with the cache-busting query string.
-    $get_cache_keys = 'Object.keys(window.localStorage).filter(function (i) {return i.indexOf(\'Drupal.off-canvas.css.\') === 0})';
-    $old_keys = $this->getSession()->evaluateScript($get_cache_keys);
-    // Flush the caches to ensure the new timestamp is altered into the
-    // drupal.ckeditor library's javascript settings.
-    $this->resetAll();
-    // Normally flushing caches regenerates the cache busting query string, but
-    // as it's based on the request time, it won't change within this test so
-    // explicitly set it.
-    \Drupal::state()->set('system.css_js_query_string', '0');
-    $this->drupalGet('/ckeditor_test/off_canvas');
-    $page->clickLink('Add Node');
-    $assert_session->waitForElementVisible('css', '#drupal-off-canvas');
-    $assert_session->assertWaitOnAjaxRequest();
-    $new_keys = $this->getSession()->evaluateScript($get_cache_keys);
-
-    $this->assertCount(1, $old_keys, 'Only one off-canvas style was cached before clearing caches.');
-    $this->assertCount(1, $new_keys, 'Only one off-canvas style was cached after clearing caches.');
-    $this->assertNotEquals($old_keys, $new_keys, 'Clearing caches changed the off-canvas style cache key.');
-  }
-
-}
diff --git a/web/modules/ckeditor/tests/src/FunctionalJavascript/FormErrorHandlerCKEditorTest.php b/web/modules/ckeditor/tests/src/FunctionalJavascript/FormErrorHandlerCKEditorTest.php
deleted file mode 100644
index 3500ef1a4f6691cafb2bc2ff82d82aa807bea703..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/tests/src/FunctionalJavascript/FormErrorHandlerCKEditorTest.php
+++ /dev/null
@@ -1,120 +0,0 @@
-<?php
-
-namespace Drupal\Tests\ckeditor\FunctionalJavascript;
-
-use Drupal\Core\Entity\Entity\EntityFormDisplay;
-use Drupal\editor\Entity\Editor;
-use Drupal\field\Entity\FieldConfig;
-use Drupal\field\Entity\FieldStorageConfig;
-use Drupal\filter\Entity\FilterFormat;
-use Drupal\FunctionalJavascriptTests\WebDriverTestBase;
-use Drupal\node\Entity\NodeType;
-
-/**
- * Tests the inline errors fragment link to a CKEditor-enabled textarea.
- *
- * @group ckeditor
- */
-class FormErrorHandlerCKEditorTest extends WebDriverTestBase {
-
-  /**
-   * {@inheritdoc}
-   */
-  protected static $modules = [
-    'node',
-    'ckeditor',
-    'inline_form_errors',
-    'filter',
-  ];
-
-  /**
-   * {@inheritdoc}
-   */
-  protected $defaultTheme = 'classy';
-
-  /**
-   * {@inheritdoc}
-   */
-  protected function setUp(): void {
-    parent::setUp();
-
-    // Create a text format and associate CKEditor.
-    $filtered_html_format = FilterFormat::create([
-      'format' => 'filtered_html',
-      'name' => 'Filtered HTML',
-      'weight' => 0,
-    ]);
-    $filtered_html_format->save();
-
-    Editor::create([
-      'format' => 'filtered_html',
-      'editor' => 'ckeditor',
-    ])->save();
-
-    // Create a node type for testing.
-    NodeType::create(['type' => 'page', 'name' => 'page'])->save();
-
-    $field_storage = FieldStorageConfig::loadByName('node', 'body');
-
-    // Create a body field instance for the 'page' node type.
-    FieldConfig::create([
-      'field_storage' => $field_storage,
-      'bundle' => 'page',
-      'label' => 'Body',
-      'settings' => ['display_summary' => TRUE],
-      'required' => TRUE,
-    ])->save();
-
-    // Assign widget settings for the 'default' form mode.
-    EntityFormDisplay::create([
-      'targetEntityType' => 'node',
-      'bundle' => 'page',
-      'mode' => 'default',
-      'status' => TRUE,
-    ])->setComponent('body', ['type' => 'text_textarea_with_summary'])
-      ->save();
-
-    $account = $this->drupalCreateUser([
-      'administer nodes',
-      'create page content',
-      'use text format filtered_html',
-    ]);
-    $this->drupalLogin($account);
-  }
-
-  /**
-   * Tests if the fragment link to a textarea works with CKEditor enabled.
-   */
-  public function testFragmentLink() {
-    $session = $this->getSession();
-    $web_assert = $this->assertSession();
-    $ckeditor_id = '#cke_edit-body-0-value';
-
-    $this->drupalGet('node/add/page');
-
-    // Only enter a title in the node add form and leave the body field empty.
-    $edit = ['edit-title-0-value' => 'Test inline form error with CKEditor'];
-
-    $this->submitForm($edit, 'Save');
-
-    $this->assertSession()->waitForElement('css', '#cke_edit-body-0-value');
-    // Add a bottom margin to the title field to be sure the body field is not
-    // visible.
-    $session->executeScript("document.getElementById('edit-title-0-value').style.marginBottom = window.innerHeight*2 + 'px';");
-
-    // Check that the CKEditor-enabled body field is currently not visible in
-    // the viewport.
-    $web_assert->assertNotVisibleInViewport('css', $ckeditor_id, 'topLeft', 'CKEditor-enabled body field is not visible.');
-
-    // Check if we can find the error fragment link within the errors summary
-    // message.
-    $errors_link = $this->assertSession()->waitForElementVisible('css', '.messages--error a[href="#edit-body-0-value"]');
-    $this->assertNotEmpty($errors_link, 'Error fragment link is visible.');
-
-    $errors_link->click();
-
-    // Check that the CKEditor-enabled body field is visible in the viewport.
-    $web_assert->assertVisibleInViewport('css', $ckeditor_id, 'topLeft', 'CKEditor-enabled body field is visible.');
-  }
-
-}
diff --git a/web/modules/ckeditor/tests/src/FunctionalJavascript/MediaLibraryTest.php b/web/modules/ckeditor/tests/src/FunctionalJavascript/MediaLibraryTest.php
deleted file mode 100644
index ca260313b86ea96fb363b9d61acd6d4d5b30dcd2..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/tests/src/FunctionalJavascript/MediaLibraryTest.php
+++ /dev/null
@@ -1,328 +0,0 @@
-<?php
-
-namespace Drupal\Tests\ckeditor\FunctionalJavascript;
-
-use Drupal\Component\Utility\Html;
-use Drupal\editor\Entity\Editor;
-use Drupal\file\Entity\File;
-use Drupal\filter\Entity\FilterFormat;
-use Drupal\FunctionalJavascriptTests\WebDriverTestBase;
-use Drupal\media\Entity\Media;
-use Drupal\Tests\ckeditor\Traits\CKEditorTestTrait;
-use Drupal\Tests\ckeditor\Traits\CKEditorAdminSortTrait;
-use Drupal\Tests\media\Traits\MediaTypeCreationTrait;
-use Drupal\Tests\TestFileCreationTrait;
-
-/**
- * @coversDefaultClass \Drupal\ckeditor\Plugin\CKEditorPlugin\DrupalMediaLibrary
- * @group ckeditor
- */
-class MediaLibraryTest extends WebDriverTestBase {
-
-  use CKEditorTestTrait;
-  use CKEditorAdminSortTrait;
-  use MediaTypeCreationTrait;
-  use TestFileCreationTrait;
-
-  /**
-   * {@inheritdoc}
-   */
-  protected $defaultTheme = 'classy';
-
-  /**
-   * The user to use during testing.
-   *
-   * @var \Drupal\user\UserInterface
-   */
-  protected $user;
-
-  /**
-   * The media item to embed.
-   *
-   * @var \Drupal\media\MediaInterface
-   */
-  protected $media;
-
-  /**
-   * {@inheritdoc}
-   */
-  protected static $modules = [
-    'ckeditor',
-    'media_library',
-    'node',
-    'text',
-  ];
-
-  /**
-   * {@inheritdoc}
-   */
-  protected function setUp(): void {
-    parent::setUp();
-
-    FilterFormat::create([
-      'format' => 'test_format',
-      'name' => 'Test format',
-      'filters' => [
-        'media_embed' => ['status' => TRUE],
-      ],
-    ])->save();
-    Editor::create([
-      'editor' => 'ckeditor',
-      'format' => 'test_format',
-      'settings' => [
-        'toolbar' => [
-          'rows' => [
-            [
-              [
-                'name' => 'Main',
-                'items' => [
-                  'Source',
-                  'Undo',
-                  'Redo',
-                ],
-              ],
-            ],
-            [
-              [
-                'name' => 'Embeds',
-                'items' => [
-                  'DrupalMediaLibrary',
-                ],
-              ],
-            ],
-          ],
-        ],
-      ],
-    ])->save();
-
-    $this->drupalCreateContentType(['type' => 'blog']);
-
-    // Note that media_install() grants 'view media' to all users by default.
-    $this->user = $this->drupalCreateUser([
-      'use text format test_format',
-      'access media overview',
-      'create blog content',
-    ]);
-
-    // Create a media type that starts with the letter a, to test tab order.
-    $this->createMediaType('image', ['id' => 'arrakis', 'label' => 'Arrakis']);
-
-    // Create a sample media entity to be embedded.
-    $this->createMediaType('image', ['id' => 'image', 'label' => 'Image']);
-    File::create([
-      'uri' => $this->getTestFiles('image')[0]->uri,
-    ])->save();
-    $this->media = Media::create([
-      'bundle' => 'image',
-      'name' => 'Fear is the mind-killer',
-      'field_media_image' => [
-        [
-          'target_id' => 1,
-          'alt' => 'default alt',
-          'title' => 'default title',
-        ],
-      ],
-    ]);
-    $this->media->save();
-
-    $arrakis_media = Media::create([
-      'bundle' => 'arrakis',
-      'name' => 'Le baron Vladimir Harkonnen',
-      'field_media_image' => [
-        [
-          'target_id' => 1,
-          'alt' => 'Il complote pour détruire le duc Leto',
-          'title' => 'Il complote pour détruire le duc Leto',
-        ],
-      ],
-    ]);
-    $arrakis_media->save();
-
-    $this->drupalLogin($this->user);
-  }
-
-  /**
-   * Tests validation that DrupalMediaLibrary requires media_embed filter.
-   */
-  public function testConfigurationValidation() {
-    $page = $this->getSession()->getPage();
-    $assert_session = $this->assertSession();
-    $admin_user = $this->drupalCreateUser([
-      'access administration pages',
-      'administer site configuration',
-      'administer filters',
-    ]);
-    $this->drupalLogin($admin_user);
-    $this->drupalGet('/admin/config/content/formats/manage/test_format');
-    $page->uncheckField('filters[media_embed][status]');
-    $page->pressButton('Save configuration');
-    $assert_session->pageTextContains('The Embed media filter must be enabled to use the Insert from Media Library button.');
-    $page->checkField('filters[media_embed][status]');
-    $page->pressButton('Save configuration');
-    $assert_session->pageTextContains('The text format Test format has been updated.');
-
-    // Now test adding a new format.
-    $this->drupalGet('/admin/config/content/formats/add');
-    $page->fillField('name', 'Sulaco');
-    // Wait for machine name to be filled in.
-    $this->assertNotEmpty($assert_session->waitForText('sulaco'));
-    $page->checkField('roles[authenticated]');
-    $page->selectFieldOption('editor[editor]', 'ckeditor');
-
-    $targetSelector = 'ul.ckeditor-toolbar-group-buttons';
-    $buttonSelector = 'li[data-drupal-ckeditor-button-name="DrupalMediaLibrary"]';
-    $this->assertNotEmpty($assert_session->waitForElementVisible('css', $targetSelector));
-    $this->assertNotEmpty($assert_session->elementExists('css', $buttonSelector));
-    $this->sortableTo($buttonSelector, 'ul.ckeditor-available-buttons', $targetSelector);
-    $page->pressButton('Save configuration');
-    $assert_session->pageTextContains('The Embed media filter must be enabled to use the Insert from Media Library button.');
-    $page->checkField('filters[media_embed][status]');
-    $page->pressButton('Save configuration');
-    $assert_session->pageTextContains('Added text format Sulaco.');
-
-    // Test that when adding the DrupalMediaLibrary button to the editor the
-    // correct attributes are added to the <drupal-media> tag in the Allowed
-    // HTML tags.
-    $this->drupalGet('/admin/config/content/formats/manage/sulaco');
-    $page->checkField('filters[filter_html][status]');
-    $expected = 'drupal-media data-entity-type data-entity-uuid data-view-mode data-align data-caption alt title';
-    $allowed_html = $assert_session->fieldExists('filters[filter_html][settings][allowed_html]')->getValue();
-    $this->assertStringContainsString($expected, $allowed_html);
-    $page->pressButton('Save configuration');
-    $assert_session->pageTextContains('The text format Sulaco has been updated.');
-
-    // Test that the config form allows removing non-required attributes from
-    // the <drupal-media> tag.
-    $this->drupalGet('/admin/config/content/formats/manage/sulaco');
-    $allowed_html_field = $assert_session->fieldExists('filters[filter_html][settings][allowed_html]');
-    $allowed_html = $allowed_html_field->getValue();
-    $search = 'drupal-media data-entity-type data-entity-uuid data-view-mode data-align data-caption alt title';
-    $replace = 'drupal-media data-entity-type data-entity-uuid';
-    $allowed_html = str_replace($search, $replace, $allowed_html);
-    $page->clickLink('Limit allowed HTML tags and correct faulty HTML');
-    $this->assertTrue($allowed_html_field->waitFor(10, function ($allowed_html_field) {
-      return $allowed_html_field->isVisible();
-    }));
-    $allowed_html_field->setValue($allowed_html);
-    $page->pressButton('Save configuration');
-    $assert_session->pageTextContains('The text format Sulaco has been updated.');
-  }
-
-  /**
-   * Tests using DrupalMediaLibrary button to embed media into CKEditor.
-   */
-  public function testButton() {
-    $this->drupalGet('/node/add/blog');
-    $this->waitForEditor();
-    $this->pressEditorButton('drupalmedialibrary');
-    $assert_session = $this->assertSession();
-    $page = $this->getSession()->getPage();
-    $this->assertNotEmpty($assert_session->waitForId('drupal-modal'));
-
-    // Test that the order is the order set in DrupalMediaLibrary::getConfig().
-    $tabs = $page->findAll('css', '.media-library-menu__link');
-    $expected_tab_order = [
-      'Show Image media (selected)',
-      'Show Arrakis media',
-    ];
-    foreach ($tabs as $key => $tab) {
-      $this->assertSame($expected_tab_order[$key], $tab->getText());
-    }
-
-    $assert_session->pageTextContains('0 of 1 item selected');
-    $assert_session->elementExists('css', '.js-media-library-item')->click();
-    $assert_session->pageTextContains('1 of 1 item selected');
-    $assert_session->elementExists('css', '.ui-dialog-buttonpane')->pressButton('Insert selected');
-    $this->assignNameToCkeditorIframe();
-    $this->getSession()->switchToIFrame('ckeditor');
-    $this->assertNotEmpty($assert_session->waitForElementVisible('css', '.cke_widget_drupalmedia drupal-media .media'));
-    $this->pressEditorButton('source');
-    $value = $assert_session->elementExists('css', 'textarea.cke_source')->getValue();
-    $dom = Html::load($value);
-    $xpath = new \DOMXPath($dom);
-    $drupal_media = $xpath->query('//drupal-media')[0];
-    $expected_attributes = [
-      'data-entity-type' => 'media',
-      'data-entity-uuid' => $this->media->uuid(),
-      'data-align' => 'center',
-    ];
-    foreach ($expected_attributes as $name => $expected) {
-      $this->assertSame($expected, $drupal_media->getAttribute($name));
-    }
-    $this->pressEditorButton('source');
-    // Why do we keep switching to the 'ckeditor' iframe? Because the buttons
-    // are in a separate iframe from the markup, so after calling
-    // ::pressEditorButton() (which switches to the button iframe), we'll need
-    // to switch back to the CKEditor iframe.
-    $this->assignNameToCkeditorIframe();
-    $this->getSession()->switchToIFrame('ckeditor');
-    $this->assertNotEmpty($assert_session->waitForElementVisible('css', '.cke_widget_drupalmedia drupal-media .media'));
-    $this->assertEditorButtonEnabled('undo');
-    $this->pressEditorButton('undo');
-    $this->getSession()->switchToIFrame('ckeditor');
-    $this->assertEmpty($assert_session->waitForElementVisible('css', '.cke_widget_drupalmedia drupal-media .media'));
-    $this->assertEditorButtonDisabled('undo');
-    $this->pressEditorButton('redo');
-    $this->getSession()->switchToIFrame('ckeditor');
-    $this->assertNotEmpty($assert_session->waitForElementVisible('css', '.cke_widget_drupalmedia drupal-media .media'));
-    $this->assertEditorButtonEnabled('undo');
-  }
-
-  /**
-   * Tests the allowed media types setting on the MediaEmbed filter.
-   */
-  public function testAllowedMediaTypes() {
-    $test_cases = [
-      'all_media_types' => [],
-      'only_image' => ['image' => 'image'],
-      'only_arrakis' => ['arrakis' => 'arrakis'],
-      'both_items_checked' => [
-        'image' => 'image',
-        'arrakis' => 'arrakis',
-      ],
-    ];
-
-    foreach ($test_cases as $allowed_media_types) {
-      // Update the filter format to set the allowed media types.
-      FilterFormat::load('test_format')
-        ->setFilterConfig('media_embed', [
-        'status' => TRUE,
-        'settings' => [
-          'default_view_mode' => 'view_mode_1',
-          'allowed_media_types' => $allowed_media_types,
-          'allowed_view_modes' => [
-            'view_mode_1' => 'view_mode_1',
-            'view_mode_2' => 'view_mode_2',
-          ],
-        ],
-      ])->save();
-
-      // Now test opening the media library from the CKEditor plugin, and
-      // verify the expected behavior.
-      $this->drupalGet('/node/add/blog');
-      $this->waitForEditor();
-      $this->pressEditorButton('drupalmedialibrary');
-      $assert_session = $this->assertSession();
-      $this->assertNotEmpty($assert_session->waitForId('media-library-wrapper'));
-
-      if (empty($allowed_media_types) || count($allowed_media_types) === 2) {
-        $assert_session->elementExists('css', 'li.media-library-menu-image');
-        $assert_session->elementExists('css', 'li.media-library-menu-arrakis');
-        $assert_session->elementTextContains('css', '.media-library-item__name', 'Fear is the mind-killer');
-      }
-      elseif (count($allowed_media_types) === 1 && !empty($allowed_media_types['image'])) {
-        // No tabs should appear if there's only one media type available.
-        $assert_session->elementNotExists('css', 'li.media-library-menu-image');
-        $assert_session->elementNotExists('css', 'li.media-library-menu-arrakis');
-        $assert_session->elementTextContains('css', '.media-library-item__name', 'Fear is the mind-killer');
-      }
-      elseif (count($allowed_media_types) === 1 && !empty($allowed_media_types['arrakis'])) {
-        // No tabs should appear if there's only one media type available.
-        $assert_session->elementNotExists('css', 'li.media-library-menu-image');
-        $assert_session->elementNotExists('css', 'li.media-library-menu-arrakis');
-        $assert_session->elementTextContains('css', '.media-library-item__name', 'Le baron Vladimir Harkonnen');
-      }
-    }
-  }
-
-}
diff --git a/web/modules/ckeditor/tests/src/FunctionalJavascript/MediaTest.php b/web/modules/ckeditor/tests/src/FunctionalJavascript/MediaTest.php
deleted file mode 100644
index e68edebd81cd28204030bbb974d7eecb1b358a89..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/tests/src/FunctionalJavascript/MediaTest.php
+++ /dev/null
@@ -1,1603 +0,0 @@
-<?php
-
-namespace Drupal\Tests\ckeditor\FunctionalJavascript;
-
-use Drupal\Component\Utility\Html;
-use Drupal\Core\Database\Database;
-use Drupal\Core\Entity\Entity\EntityViewDisplay;
-use Drupal\editor\Entity\Editor;
-use Drupal\field\Entity\FieldConfig;
-use Drupal\file\Entity\File;
-use Drupal\filter\Entity\FilterFormat;
-use Drupal\FunctionalJavascriptTests\WebDriverTestBase;
-use Drupal\language\Entity\ConfigurableLanguage;
-use Drupal\language\Entity\ContentLanguageSettings;
-use Drupal\media\Entity\Media;
-use Drupal\Tests\ckeditor\Traits\CKEditorTestTrait;
-use Drupal\Tests\media\Traits\MediaTypeCreationTrait;
-use Drupal\Tests\TestFileCreationTrait;
-use Drupal\user\Entity\Role;
-use Drupal\user\RoleInterface;
-use Drupal\Core\Entity\Entity\EntityViewMode;
-
-/**
- * @coversDefaultClass \Drupal\ckeditor\Plugin\CKEditorPlugin\DrupalMedia
- * @group ckeditor
- */
-class MediaTest extends WebDriverTestBase {
-
-  use CKEditorTestTrait;
-  use MediaTypeCreationTrait;
-  use TestFileCreationTrait;
-
-  /**
-   * The user to use during testing.
-   *
-   * @var \Drupal\user\UserInterface
-   */
-  protected $adminUser;
-
-  /**
-   * The sample Media entity to embed.
-   *
-   * @var \Drupal\media\MediaInterface
-   */
-  protected $media;
-
-  /**
-   * A host entity with a body field to embed media in.
-   *
-   * @var \Drupal\node\NodeInterface
-   */
-  protected $host;
-
-  /**
-   * The character code for the return key.
-   *
-   * @var int
-   */
-  const RETURN_KEY = 13;
-
-  /**
-   * The character code for the space bar.
-   *
-   * @var int
-   */
-  const SPACE_BAR = 32;
-
-  /**
-   * {@inheritdoc}
-   */
-  protected static $modules = [
-    'ckeditor',
-    'media',
-    'node',
-    'text',
-    'media_test_embed',
-  ];
-
-  /**
-   * {@inheritdoc}
-   */
-  protected $defaultTheme = 'classy';
-
-  /**
-   * {@inheritdoc}
-   */
-  protected function setUp(): void {
-    parent::setUp();
-
-    FilterFormat::create([
-      'format' => 'test_format',
-      'name' => 'Test format',
-      'filters' => [
-        'filter_align' => ['status' => TRUE],
-        'filter_caption' => ['status' => TRUE],
-        'media_embed' => ['status' => TRUE],
-      ],
-    ])->save();
-    Editor::create([
-      'editor' => 'ckeditor',
-      'format' => 'test_format',
-      'settings' => [
-        'toolbar' => [
-          'rows' => [
-            [
-              [
-                'name' => 'All the things',
-                'items' => [
-                  'Source',
-                  'Bold',
-                  'Italic',
-                  'DrupalLink',
-                  'DrupalUnlink',
-                  'DrupalImage',
-                ],
-              ],
-            ],
-          ],
-        ],
-      ],
-    ])->save();
-
-    // Note that media_install() grants 'view media' to all users by default.
-    $this->adminUser = $this->drupalCreateUser([
-      'use text format test_format',
-      'bypass node access',
-    ]);
-
-    // Create a sample media entity to be embedded.
-    $this->createMediaType('image', ['id' => 'image']);
-    File::create([
-      'uri' => $this->getTestFiles('image')[0]->uri,
-    ])->save();
-    $this->media = Media::create([
-      'bundle' => 'image',
-      'name' => 'Screaming hairy armadillo',
-      'field_media_image' => [
-        [
-          'target_id' => 1,
-          'alt' => 'default alt',
-          'title' => 'default title',
-        ],
-      ],
-    ]);
-    $this->media->save();
-
-    // Create a sample host entity to embed media in.
-    $this->drupalCreateContentType(['type' => 'blog']);
-    $this->host = $this->createNode([
-      'type' => 'blog',
-      'title' => 'Animals with strange names',
-      'body' => [
-        'value' => '<drupal-media data-caption="baz" data-entity-type="media" data-entity-uuid="' . $this->media->uuid() . '"></drupal-media>',
-        'format' => 'test_format',
-      ],
-    ]);
-    $this->host->save();
-
-    $this->drupalLogin($this->adminUser);
-  }
-
-  /**
-   * Tests that only <drupal-media> tags are processed.
-   *
-   * @see \Drupal\Tests\media\Kernel\MediaEmbedFilterTest::testOnlyDrupalMediaTagProcessed()
-   */
-  public function testOnlyDrupalMediaTagProcessed() {
-    $original_value = $this->host->body->value;
-    $this->host->body->value = str_replace('drupal-media', 'p', $original_value);
-    $this->host->save();
-
-    // Assert that `<p data-* …>` is not upcast into a CKEditor Widget.
-    $this->drupalGet($this->host->toUrl('edit-form'));
-    $this->waitForEditor();
-    $this->assignNameToCkeditorIframe();
-    $this->getSession()->switchToIFrame('ckeditor');
-    $assert_session = $this->assertSession();
-    $this->assertEmpty($assert_session->waitForElementVisible('css', 'img[src*="image-test.png"]', 1000));
-    $assert_session->elementNotExists('css', 'figure');
-
-    $this->host->body->value = $original_value;
-    $this->host->save();
-
-    // Assert that `<drupal-media data-* …>` is upcast into a CKEditor Widget.
-    $this->getSession()->reload();
-    $this->waitForEditor();
-    $this->assignNameToCkeditorIframe();
-    $this->getSession()->switchToIFrame('ckeditor');
-    $this->assertNotEmpty($assert_session->waitForElementVisible('css', 'img[src*="image-test.png"]'));
-    $assert_session->elementExists('css', 'figure');
-  }
-
-  /**
-   * Tests that failed media embed preview requests inform the end user.
-   */
-  public function testErrorMessages() {
-    // This test currently frequently causes the SQLite database to lock, so
-    // skip the test on SQLite until the issue can be resolved.
-    // @todo https://www.drupal.org/project/drupal/issues/3273626
-    if (Database::getConnection()->driver() === 'sqlite') {
-      $this->markTestSkipped('Test frequently causes a locked database on SQLite');
-    }
-
-    // Assert that a request to the `media.filter.preview` route that does not
-    // result in a 200 response (due to server error or network error) is
-    // handled in the JavaScript by displaying the expected error message.
-    // @see core/modules/media/js/media_embed_ckeditor.theme.js
-    // @see core/modules/media/js/plugins/drupalmedia/plugin.js
-    $this->container->get('state')->set('test_media_filter_controller_throw_error', TRUE);
-    $this->drupalGet($this->host->toUrl('edit-form'));
-    $this->waitForEditor();
-    $this->assignNameToCkeditorIframe();
-    $this->getSession()->switchToIFrame('ckeditor');
-    $assert_session = $this->assertSession();
-    $this->assertEmpty($assert_session->waitForElementVisible('css', 'img[src*="image-test.png"]', 1000));
-    $assert_session->elementNotExists('css', 'figure');
-    $this->assertNotEmpty($assert_session->waitForText('An error occurred while trying to preview the media. Please save your work and reload this page.'));
-    // Now assert that the error doesn't appear when the override to force an
-    // error is removed.
-    $this->container->get('state')->set('test_media_filter_controller_throw_error', FALSE);
-    $this->getSession()->reload();
-    $this->waitForEditor();
-    $this->assignNameToCkeditorIframe();
-    $this->getSession()->switchToIFrame('ckeditor');
-    $this->assertNotEmpty($assert_session->waitForElementVisible('css', 'img[src*="image-test.png"]'));
-
-    // There's a second kind of error message that comes from the back end
-    // that happens when the media uuid can't be converted to a media preview.
-    // In this case, the error will appear in a the themeable
-    // media-embed-error.html template.  We have a hook altering the css
-    // classes to test the twi template is working properly and picking up our
-    // extra class.
-    // @see \Drupal\media\Plugin\Filter\MediaEmbed::renderMissingMediaIndicator()
-    // @see core/modules/media/templates/media-embed-error.html.twig
-    // @see media_test_embed_preprocess_media_embed_error()
-    $original_value = $this->host->body->value;
-    $this->host->body->value = str_replace($this->media->uuid(), 'invalid_uuid', $original_value);
-    $this->host->save();
-    $this->drupalGet($this->host->toUrl('edit-form'));
-    $this->waitForEditor();
-    $this->assignNameToCkeditorIframe();
-    $this->getSession()->switchToIFrame('ckeditor');
-    $this->assertNotEmpty($assert_session->waitForElement('css', 'drupal-media figure.caption-drupal-media .this-error-message-is-themeable'));
-
-    // Test when using the classy theme, an additional class is added in
-    // classy/templates/content/media-embed-error.html.twig.
-    $this->assertTrue($this->container->get('theme_installer')->install(['classy']));
-    $this->config('system.theme')
-      ->set('default', 'classy')
-      ->save();
-    $this->drupalGet($this->host->toUrl('edit-form'));
-    $this->waitForEditor();
-    $this->assignNameToCkeditorIframe();
-    $this->getSession()->switchToIFrame('ckeditor');
-    $this->assertNotEmpty($assert_session->waitForElement('css', 'drupal-media figure.caption-drupal-media .this-error-message-is-themeable.media-embed-error--missing-source'));
-    $assert_session->responseContains('classy/css/components/media-embed-error.css');
-
-    // Test that restoring a valid UUID results in the media embed preview
-    // displaying.
-    $this->host->body->value = $original_value;
-    $this->host->save();
-    $this->drupalGet($this->host->toUrl('edit-form'));
-    $this->waitForEditor();
-    $this->assignNameToCkeditorIframe();
-    $this->getSession()->switchToIFrame('ckeditor');
-    $this->assertNotEmpty($assert_session->waitForElementVisible('css', 'img[src*="image-test.png"]'));
-    $assert_session->elementNotExists('css', 'drupal-media figure.caption-drupal-media .this-error-message-is-themeable');
-  }
-
-  /**
-   * The CKEditor Widget must load a preview generated using the default theme.
-   */
-  public function testPreviewUsesDefaultThemeAndIsClientCacheable() {
-    // Make the node edit form use the admin theme, like on most Drupal sites.
-    $this->config('node.settings')
-      ->set('use_admin_theme', TRUE)
-      ->save();
-
-    // Allow the test user to view the admin theme.
-    $this->adminUser->addRole($this->drupalCreateRole(['view the administration theme']));
-    $this->adminUser->save();
-
-    // Configure a different default and admin theme, like on most Drupal sites.
-    $this->config('system.theme')
-      ->set('default', 'stable')
-      ->set('admin', 'classy')
-      ->save();
-
-    // Assert that when looking at an embedded entity in the CKEditor Widget,
-    // the preview is generated using the default theme, not the admin theme.
-    // @see media_test_embed_entity_view_alter()
-    $this->drupalGet($this->host->toUrl('edit-form'));
-    $this->waitForEditor();
-    $this->assignNameToCkeditorIframe();
-    $this->getSession()->switchToIFrame('ckeditor');
-    $assert_session = $this->assertSession();
-    $this->assertNotEmpty($assert_session->waitForElementVisible('css', 'img[src*="image-test.png"]'));
-    $element = $assert_session->elementExists('css', '[data-media-embed-test-active-theme]');
-    $this->assertSame('stable', $element->getAttribute('data-media-embed-test-active-theme'));
-    // Assert that the first preview request transferred >500 B over the wire.
-    // Then toggle source mode on and off. This causes the CKEditor widget to be
-    // destroyed and then reconstructed. Assert that during this reconstruction,
-    // a second request is sent. This second request should have transferred 0
-    // bytes: the browser should have cached the response, thus resulting in a
-    // much better user experience.
-    $this->assertGreaterThan(500, $this->getLastPreviewRequestTransferSize());
-    $this->pressEditorButton('source');
-    $this->assertNotEmpty($assert_session->waitForElement('css', 'textarea.cke_source'));
-    $this->pressEditorButton('source');
-    $this->assignNameToCkeditorIframe();
-    $this->getSession()->switchToIFrame('ckeditor');
-    $this->assertNotEmpty($assert_session->waitForElementVisible('css', 'img[src*="image-test.png"]'));
-    $this->assertSame(0, $this->getLastPreviewRequestTransferSize());
-  }
-
-  /**
-   * Tests caption editing in the CKEditor widget.
-   */
-  public function testEditableCaption() {
-    $page = $this->getSession()->getPage();
-    $assert_session = $this->assertSession();
-    // Test that setting caption to blank string doesn't break 'Edit media'
-    // button.
-    $original_value = $this->host->body->value;
-    $this->host->body->value = str_replace('data-caption="baz"', 'data-caption=""', $original_value);
-    $this->host->save();
-    $this->drupalGet($this->host->toUrl('edit-form'));
-    $this->waitForEditor();
-    $this->assignNameToCkeditorIframe();
-    $this->getSession()->switchToIFrame('ckeditor');
-    $this->assertNotEmpty($assert_session->waitForButton('Edit media'));
-    // Test `aria-label` attribute appears on the widget wrapper.
-    $assert_session->elementExists('css', '.cke_widget_drupalmedia[aria-label="Screaming hairy armadillo"]');
-    $assert_session->elementContains('css', 'figcaption', '');
-    $assert_session->elementAttributeContains('css', 'figcaption', 'data-placeholder', 'Enter caption here');
-    // Test if you leave the caption blank, but change another attribute,
-    // such as the alt text, the editable caption is still there and the edit
-    // button still exists.
-    $this->fillFieldInMetadataDialogAndSubmit('attributes[alt]', 'Mama, life had just begun');
-    $this->assertNotEmpty($assert_session->waitForElementVisible('css', 'drupal-media img[alt*="Mama, life had just begun"]'));
-    $assert_session->buttonExists('Edit media');
-    $assert_session->elementContains('css', 'figcaption', '');
-    $assert_session->elementAttributeContains('css', 'figcaption', 'data-placeholder', 'Enter caption here');
-
-    // Restore caption in saved body value.
-    $original_value = $this->host->body->value;
-    $this->host->body->value = str_replace('data-caption=""', 'data-caption="baz"', $original_value);
-    $this->host->save();
-
-    $this->drupalGet($this->host->toUrl('edit-form'));
-    $this->waitForEditor();
-    $this->assignNameToCkeditorIframe();
-    $this->getSession()->switchToIFrame('ckeditor');
-    // Assert that figcaption element exists within the drupal-media element.
-    $this->assertNotEmpty($figcaption = $assert_session->waitForElement('css', 'drupal-media figcaption'));
-    $this->assertSame('baz', $figcaption->getHtml());
-
-    // Test that disabling the caption in the metadata dialog removes it
-    // from the drupal-media element.
-    $this->openMetadataDialogWithKeyPress(static::SPACE_BAR);
-    $page->uncheckField('hasCaption');
-    $this->submitDialog();
-    $this->getSession()->switchToIFrame('ckeditor');
-    $this->assertNotEmpty($drupal_media = $assert_session->waitForElementVisible('css', 'drupal-media'));
-
-    // Wait for element to update without figcaption.
-    $result = $page->waitFor(10, function () use ($drupal_media) {
-      return empty($drupal_media->find('css', 'figcaption'));
-    });
-    // Will be true if no figcaption exists within the drupal-media element.
-    $this->assertTrue($result);
-
-    // Test that enabling the caption in the metadata dialog adds an editable
-    // caption to the embedded media.
-    $this->openMetadataDialogWithKeyPress(static::SPACE_BAR);
-    $page->checkField('hasCaption');
-    $this->submitDialog();
-    $this->getSession()->switchToIFrame('ckeditor');
-    $this->assertNotEmpty($drupal_media = $assert_session->waitForElementVisible('css', 'drupal-media figcaption'));
-
-    // Type into the widget's caption element.
-    $this->assertNotEmpty($assert_session->waitForElement('css', 'figcaption'));
-    $this->setCaption('Caught in a <strong>landslide</strong>! No escape from <em>reality</em>!');
-    $this->getSession()->switchToIFrame('ckeditor');
-    $assert_session->elementExists('css', 'figcaption > em');
-    $assert_session->elementExists('css', 'figcaption > strong')->click();
-
-    // Select the <strong> element and unbold it.
-    $this->clickPathLinkByTitleAttribute("strong element");
-    $this->pressEditorButton('bold');
-    $this->getSession()->switchToIFrame('ckeditor');
-    $assert_session->elementExists('css', 'figcaption > em');
-    $assert_session->elementNotExists('css', 'figcaption > strong');
-
-    // Select the <em> element and unitalicize it.
-    $assert_session->elementExists('css', 'figcaption > em')->click();
-    $this->clickPathLinkByTitleAttribute("em element");
-    $this->pressEditorButton('italic');
-
-    // The "source" button should reveal the HTML source in a state matching
-    // what is shown in the CKEditor widget.
-    $this->pressEditorButton('source');
-    $source = $assert_session->elementExists('css', 'textarea.cke_source');
-    $value = $source->getValue();
-    $dom = Html::load($value);
-    $xpath = new \DOMXPath($dom);
-    $drupal_media = $xpath->query('//drupal-media')[0];
-    $this->assertSame('Caught in a landslide! No escape from reality!', $drupal_media->getAttribute('data-caption'));
-
-    // Change the caption by modifying the HTML source directly. When exiting
-    // "source" mode, this should be respected.
-    $poor_boy_text = "I'm just a <strong>poor boy</strong>, I need no sympathy!";
-    $drupal_media->setAttribute("data-caption", $poor_boy_text);
-    $source->setValue(Html::serialize($dom));
-    $this->pressEditorButton('source');
-    $this->assignNameToCkeditorIframe();
-    $this->getSession()->switchToIFrame('ckeditor');
-    $figcaption = $assert_session->waitForElement('css', 'figcaption');
-    $this->assertNotEmpty($figcaption);
-    $this->assertSame($poor_boy_text, $figcaption->getHtml());
-
-    // Select the <strong> element that we just set in "source" mode. This
-    // proves that it was indeed rendered by the CKEditor widget.
-    $strong = $figcaption->find('css', 'strong');
-    $this->assertNotEmpty($strong);
-    $strong->click();
-    $this->pressEditorButton('bold');
-
-    // Insert a link into the caption.
-    $this->clickPathLinkByTitleAttribute("Caption element");
-    $this->pressEditorButton('drupallink');
-    $field = $assert_session->waitForElementVisible('xpath', '//input[@name="attributes[href]"]');
-    $this->assertNotEmpty($field);
-    $field->setValue('https://www.drupal.org');
-    $assert_session->elementExists('css', 'button.form-submit')->press();
-
-    // Wait for the live preview in the CKEditor widget to finish loading, then
-    // edit the link; no `data-cke-saved-href` attribute should exist on it.
-    $this->getSession()->switchToIFrame('ckeditor');
-    $figcaption = $assert_session->waitForElement('css', 'figcaption');
-    $page = $this->getSession()->getPage();
-    // Wait for AJAX refresh.
-    $page->waitFor(10, function () use ($figcaption) {
-      return $figcaption->find('xpath', '//a[@href="https://www.drupal.org"]');
-    });
-    $assert_session->elementExists('css', 'a', $figcaption)->click();
-    $this->clickPathLinkByTitleAttribute("a element");
-    $this->pressEditorButton('drupallink');
-    $field = $assert_session->waitForElementVisible('xpath', '//input[@name="attributes[href]"]');
-    $this->assertNotEmpty($field);
-    $field->setValue('https://www.drupal.org/project/drupal');
-    $assert_session->elementExists('css', 'button.form-submit')->press();
-    $this->getSession()->switchToIFrame('ckeditor');
-    $figcaption = $assert_session->waitForElement('css', 'figcaption');
-    $page = $this->getSession()->getPage();
-    // Wait for AJAX refresh.
-    $page->waitFor(10, function () use ($figcaption) {
-      return $figcaption->find('xpath', '//a[@href="https://www.drupal.org/project/drupal"]');
-    });
-    $this->pressEditorButton('source');
-    $source = $assert_session->elementExists('css', "textarea.cke_source");
-    $value = $source->getValue();
-    $this->assertStringContainsString('https://www.drupal.org/project/drupal', $value);
-    $this->assertStringNotContainsString('data-cke-saved-href', $value);
-
-    // Save the entity.
-    $assert_session->buttonExists('Save')->press();
-
-    // Verify the saved entity when viewed also contains the captioned media.
-    $link = $assert_session->elementExists('css', 'figcaption > a');
-    $this->assertSame('https://www.drupal.org/project/drupal', $link->getAttribute('href'));
-    $this->assertSame("I'm just a poor boy, I need no sympathy!", $link->getText());
-
-    // Edit it again, type a different caption in the widget.
-    $this->drupalGet($this->host->toUrl('edit-form'));
-    $this->waitForEditor();
-    $this->assignNameToCkeditorIframe();
-    $this->getSession()->switchToIFrame('ckeditor');
-    $this->assertNotEmpty($assert_session->waitForElementVisible('css', 'figcaption'));
-    $this->setCaption('Scaramouch, <em>Scaramouch</em>, will you do the <strong>Fandango</strong>?');
-
-    // Erase the caption in the CKEditor Widget, verify the <figcaption> still
-    // exists and contains placeholder text, then type something else.
-    $this->setCaption('');
-    $this->getSession()->switchToIFrame('ckeditor');
-    $assert_session->elementContains('css', 'figcaption', '');
-    $assert_session->elementAttributeContains('css', 'figcaption', 'data-placeholder', 'Enter caption here');
-    $this->setCaption('Fin.');
-    $this->getSession()->switchToIFrame('ckeditor');
-    $assert_session->elementContains('css', 'figcaption', 'Fin.');
-  }
-
-  /**
-   * Tests the EditorMediaDialog's form elements' #access logic.
-   */
-  public function testDialogAccess() {
-    $page = $this->getSession()->getPage();
-    $assert_session = $this->assertSession();
-    $this->drupalGet($this->host->toUrl('edit-form'));
-    $this->waitForEditor();
-    $this->assignNameToCkeditorIframe();
-    $this->getSession()->switchToIFrame('ckeditor');
-
-    // Enable `filter_html` without "alt", "data-align" or "data-caption"
-    // attributes added to the drupal-media tag.
-    $allowed_html = "<a href hreflang> <em> <strong> <cite> <blockquote cite> <code> <ul type> <ol start type='1 A I'> <li> <dl> <dt> <dd> <h2 id='jump-*'> <h3 id> <h4 id> <h5 id> <h6 id> <drupal-media data-entity-type data-entity-uuid data-view-mode>";
-    $filter_format = FilterFormat::load('test_format');
-    $filter_format->setFilterConfig('filter_html', [
-      'status' => TRUE,
-      'settings' => [
-        'allowed_html' => $allowed_html,
-      ],
-    ])->save();
-
-    // Test the validation of attributes in the dialog.  If the alt,
-    // data-caption, and data-align attributes are not set on the drupal-media
-    // tag, the respective fields shouldn't display in the dialog.
-    $this->drupalGet($this->host->toUrl('edit-form'));
-    $this->waitForEditor();
-    $this->assignNameToCkeditorIframe();
-    $this->getSession()->switchToIFrame('ckeditor');
-    $this->assertNotEmpty($assert_session->waitForElementVisible('css', 'drupal-media', 2000));
-    // Test `aria-label` attribute appears on the widget wrapper.
-    $assert_session->elementExists('css', '.cke_widget_drupalmedia[aria-label="Screaming hairy armadillo"]');
-    $page->pressButton('Edit media');
-    $this->waitForMetadataDialog();
-    $assert_session->fieldNotExists('attributes[alt]');
-    $assert_session->fieldNotExists('attributes[align]');
-    $assert_session->fieldNotExists('hasCaption');
-    $assert_session->pageTextContains('There is nothing to configure for this media.');
-    // The edit link for the format shouldn't appear unless the user has
-    // permission to edit the text format.
-    $assert_session->pageTextNotContains('Edit the text format Test format to modify the attributes that can be overridden.');
-    $page->pressButton('Close');
-    $this->getSession()->switchToIFrame('ckeditor');
-
-    // Now test the same thing with a user who has access to edit text formats.
-    // An extra message containing a link to edit the text format should
-    // appear.
-    Role::load(RoleInterface::AUTHENTICATED_ID)
-      ->grantPermission('administer filters')
-      ->save();
-    $this->drupalGet($this->host->toUrl('edit-form'));
-    $this->waitForEditor();
-    $this->assignNameToCkeditorIframe();
-    $this->getSession()->switchToIFrame('ckeditor');
-    $this->assertNotEmpty($assert_session->waitForElementVisible('css', 'drupal-media', 2000));
-    $page->pressButton('Edit media');
-    $this->waitForMetadataDialog();
-    $assert_session->fieldNotExists('attributes[alt]');
-    $assert_session->fieldNotExists('attributes[align]');
-    $assert_session->fieldNotExists('hasCaption');
-    $assert_session->pageTextContains('There is nothing to configure for this media. Edit the text format Test format to modify the attributes that can be overridden.');
-    $assert_session->linkExists('Edit the text format Test format');
-    $page->pressButton('Close');
-    $this->getSession()->switchToIFrame('ckeditor');
-
-    // Now test that adding the attributes to the allowed HTML will allow
-    // the fields to display in the dialog.
-    $allowed_html = str_replace('<drupal-media data-entity-type data-entity-uuid data-view-mode>', '<drupal-media alt data-align data-caption data-entity-type data-entity-uuid data-view-mode>', $allowed_html);
-    $filter_format->setFilterConfig('filter_html', [
-      'status' => TRUE,
-      'settings' => [
-        'allowed_html' => $allowed_html,
-      ],
-    ])->save();
-    $this->assertNotEmpty($assert_session->waitForElementVisible('css', 'drupal-media', 2000));
-    $page->pressButton('Edit media');
-    $this->waitForMetadataDialog();
-    $assert_session->fieldExists('attributes[alt]');
-    $assert_session->fieldExists('attributes[data-align]');
-    $assert_session->fieldExists('hasCaption');
-    $page->pressButton('Close');
-    $this->getSession()->switchToIFrame('ckeditor');
-
-    // Test that setting the media image field to not display alt field also
-    // disables it in the dialog.
-    FieldConfig::loadByName('media', 'image', 'field_media_image')
-      ->setSetting('alt_field', FALSE)
-      ->save();
-    // @todo This manual cache clearing should not be necessary, fix in
-    // https://www.drupal.org/project/drupal/issues/3076544
-    $this->container
-      ->get('cache.discovery')
-      ->delete('entity_bundle_field_definitions:media:image:en');
-    // Wait for preview.
-    $this->assertNotEmpty($assert_session->waitForElementVisible('css', 'drupal-media', 2000));
-    $page->pressButton('Edit media');
-    $this->waitForMetadataDialog();
-    $assert_session->fieldNotExists('attributes[alt]');
-    $assert_session->fieldExists('attributes[data-align]');
-    $assert_session->fieldExists('hasCaption');
-    $page->pressButton('Close');
-    $this->getSession()->switchToIFrame('ckeditor');
-
-    // Test that enabling the alt field on the media image field restores
-    // the field in the dialog.
-    FieldConfig::loadByName('media', 'image', 'field_media_image')
-      ->setSetting('alt_field', TRUE)
-      ->save();
-    // @todo This manual cache clearing should not be necessary, fix in
-    // https://www.drupal.org/project/drupal/issues/3076544
-    $this->container
-      ->get('cache.discovery')
-      ->delete('entity_bundle_field_definitions:media:image:en');
-    // Wait for preview.
-    $this->assertNotEmpty($assert_session->waitForElementVisible('css', 'drupal-media', 2000));
-    $page->pressButton('Edit media');
-    $this->waitForMetadataDialog();
-    $assert_session->fieldExists('attributes[alt]');
-    $assert_session->fieldExists('attributes[data-align]');
-    $assert_session->fieldExists('hasCaption');
-    $page->pressButton('Close');
-    $this->getSession()->switchToIFrame('ckeditor');
-
-    // Test that disabling `filter_caption` and `filter_align` disables the
-    // respective fields in the dialog.
-    $filter_format
-      ->setFilterConfig('filter_caption', [
-        'status' => FALSE,
-      ])->setFilterConfig('filter_align', [
-        'status' => FALSE,
-      ])->save();
-    // Wait for preview.
-    $this->assertNotEmpty($assert_session->waitForElementVisible('css', 'drupal-media', 2000));
-    $page->pressButton('Edit media');
-    $this->waitForMetadataDialog();
-    $assert_session->fieldNotExists('attributes[data-align]');
-    $assert_session->fieldNotExists('hasCaption');
-    // The alt field should be unaffected.
-    $assert_session->fieldExists('attributes[alt]');
-    $page->pressButton('Close');
-    $this->getSession()->switchToIFrame('ckeditor');
-
-    // Test that enabling the two filters restores the fields in the dialog.
-    $filter_format
-      ->setFilterConfig('filter_caption', [
-        'status' => TRUE,
-      ])->setFilterConfig('filter_align', [
-        'status' => TRUE,
-      ])->save();
-    // Wait for preview.
-    $this->assertNotEmpty($assert_session->waitForElementVisible('css', 'drupal-media', 2000));
-    $page->pressButton('Edit media');
-    $this->waitForMetadataDialog();
-    $assert_session->fieldExists('attributes[data-align]');
-    $assert_session->fieldExists('hasCaption');
-    $assert_session->pageTextNotContains('There is nothing to configure for this media. Edit the text format Test format to modify the attributes that can be overridden.');
-    // The alt field should be unaffected.
-    $assert_session->fieldExists('attributes[alt]');
-  }
-
-  /**
-   * Tests the EditorMediaDialog can set the alt attribute.
-   */
-  public function testAlt() {
-    $page = $this->getSession()->getPage();
-    $assert_session = $this->assertSession();
-    $this->drupalGet($this->host->toUrl('edit-form'));
-    $this->waitForEditor();
-    $this->assignNameToCkeditorIframe();
-    $this->getSession()->switchToIFrame('ckeditor');
-    // Wait for the media preview to load.
-    $this->assertNotEmpty($assert_session->waitForElementVisible('css', 'drupal-media img'));
-    // Test that by default no alt attribute is present on the drupal-media
-    // element.
-    $this->pressEditorButton('source');
-    $this->assertSourceAttributeSame('alt', NULL);
-    $this->leaveSourceMode();
-    // Test that the preview shows the alt value from the media field's
-    // alt text.
-    $this->assertNotEmpty($assert_session->waitForElementVisible('css', 'drupal-media img[alt*="default alt"]'));
-    $this->openMetadataDialogWithKeyPress(static::RETURN_KEY);
-    // Assert that the placeholder is set to the value of the media field's
-    // alt text.
-    $assert_session->elementAttributeContains('named', ['field', 'attributes[alt]'], 'placeholder', 'default alt');
-
-    // Fill in the alt field, submit and return to CKEditor.
-    // cSpell:disable-next-line
-    $who_is_zartan = 'Zartan is the leader of the Dreadnoks.';
-    $page->fillField('attributes[alt]', $who_is_zartan);
-    $this->submitDialog();
-    $this->getSession()->switchToIFrame('ckeditor');
-
-    // Assert that the img within the media embed within the CKEditor contains
-    // the overridden alt text set in the dialog.
-    $this->assertNotEmpty($assert_session->waitForElementVisible('css', 'drupal-media img[alt*="' . $who_is_zartan . '"]'));
-    // Test `aria-label` attribute appears on the widget wrapper.
-    $assert_session->elementExists('css', '.cke_widget_drupalmedia[aria-label="Screaming hairy armadillo"]');
-
-    // Test that the downcast drupal-media element now has the alt attribute
-    // entered in the dialog.
-    $this->pressEditorButton('source');
-    $this->assertSourceAttributeSame('alt', $who_is_zartan);
-
-    // The alt field should now display the override instead of the default.
-    $this->leaveSourceMode();
-    $this->openMetadataDialog();
-    $assert_session->fieldValueEquals('attributes[alt]', $who_is_zartan);
-
-    // Test the process again with a different alt text to make sure it works
-    // the second time around.
-    $cobra_commander_bio = 'The supreme leader of the terrorist organization Cobra';
-    // Set the alt field to the new alt text.
-    $page->fillField('attributes[alt]', $cobra_commander_bio);
-    $this->submitDialog();
-    $this->getSession()->switchToIFrame('ckeditor');
-    // Assert that the img within the media embed preview
-    // within the CKEditor contains the overridden alt text set in the dialog.
-    $this->assertNotEmpty($assert_session->waitForElementVisible('css', 'drupal-media img[alt*="' . $cobra_commander_bio . '"]'));
-
-    // Test that the downcast drupal-media element now has the alt attribute
-    // entered in the dialog.
-    $this->pressEditorButton('source');
-    $this->assertSourceAttributeSame('alt', $cobra_commander_bio);
-
-    // The default value of the alt field should now display the override
-    // instead of the value on the media image field.
-    $this->leaveSourceMode();
-    $this->openMetadataDialogWithKeyPress(static::RETURN_KEY);
-    $assert_session->fieldValueEquals('attributes[alt]', $cobra_commander_bio);
-
-    // Test that setting alt value to two double quotes will signal to the
-    // MediaEmbed filter to unset the attribute on the media image field. We
-    // intentionally add a space after the two double quotes to test the string
-    // is trimmed to two quotes.
-    $page->fillField('attributes[alt]', '"" ');
-    $this->submitDialog();
-    $this->getSession()->switchToIFrame('ckeditor');
-    // Verify that the two double quote empty alt indicator ('""') set in
-    // the dialog has successfully resulted in a media image field with the
-    // alt attribute present but without a value.
-    $this->assertNotEmpty($assert_session->waitForElementVisible('css', 'drupal-media img[alt=""]'));
-
-    // Test that the downcast drupal-media element's alt attribute now has the
-    // empty string indicator.
-    $this->pressEditorButton('source');
-    $this->assertSourceAttributeSame('alt', '""');
-
-    // Test that setting alt to back to an empty string within the dialog will
-    // restore the default alt value saved in to the media image field of the
-    // media item.
-    $this->leaveSourceMode();
-    $this->openMetadataDialog();
-    $page->fillField('attributes[alt]', '');
-    $this->submitDialog();
-    $this->getSession()->switchToIFrame('ckeditor');
-    $this->assertNotEmpty($assert_session->waitForElementVisible('css', 'drupal-media img[alt*="default alt"]'));
-
-    // Test that the downcast drupal-media element no longer has an alt
-    // attribute.
-    $this->pressEditorButton('source');
-    $this->assertSourceAttributeSame('alt', NULL);
-  }
-
-  /**
-   * Tests that dialog loads appropriate translation's alt text.
-   */
-  public function testTranslationAlt() {
-    \Drupal::service('module_installer')->install(['language', 'content_translation']);
-    $this->resetAll();
-    ConfigurableLanguage::create(['id' => 'fr'])->save();
-    ContentLanguageSettings::loadByEntityTypeBundle('media', 'image')
-      ->setDefaultLangcode('en')
-      ->setLanguageAlterable(TRUE)
-      ->save();
-    $media = Media::create([
-      'bundle' => 'image',
-      'name' => 'Screaming hairy armadillo',
-      'field_media_image' => [
-        [
-          'target_id' => 1,
-          'alt' => 'default alt',
-          'title' => 'default title',
-        ],
-      ],
-    ]);
-    $media->save();
-    $media_fr = $media->addTranslation('fr');
-    $media_fr->name = "Tatou poilu hurlant";
-    $media_fr->field_media_image->setValue([
-      [
-        'target_id' => '1',
-        'alt' => "texte alternatif par défaut",
-        'title' => "titre alternatif par défaut",
-      ],
-    ]);
-    $media_fr->save();
-
-    ContentLanguageSettings::loadByEntityTypeBundle('node', 'blog')
-      ->setDefaultLangcode('en')
-      ->setLanguageAlterable(TRUE)
-      ->save();
-
-    $host = $this->createNode([
-      'type' => 'blog',
-      'title' => 'Animals with strange names',
-      'body' => [
-        'value' => '<drupal-media data-caption="baz" data-entity-type="media" data-entity-uuid="' . $media->uuid() . '"></drupal-media>',
-        'format' => 'test_format',
-      ],
-    ]);
-    $host->save();
-
-    $translation = $host->addTranslation('fr');
-    // cSpell:disable-next-line
-    $translation->title = 'Animaux avec des noms étranges';
-    $translation->body->value = $host->body->value;
-    $translation->body->format = $host->body->format;
-    $translation->save();
-
-    Role::load(RoleInterface::AUTHENTICATED_ID)
-      ->grantPermission('translate any entity')
-      ->save();
-
-    $page = $this->getSession()->getPage();
-    $assert_session = $this->assertSession();
-    $this->drupalGet('/fr/node/' . $host->id() . '/edit');
-    $this->waitForEditor();
-    $this->assignNameToCkeditorIframe();
-    $this->getSession()->switchToIFrame('ckeditor');
-
-    // Test that the default alt attribute displays without an override.
-    // cSpell:disable-next-line
-    $this->assertNotEmpty($assert_session->waitForElementVisible('xpath', '//img[contains(@alt, "texte alternatif par défaut")]'));
-    // Test `aria-label` attribute appears on the widget wrapper.
-    // cSpell:disable-next-line
-    $assert_session->elementExists('css', '.cke_widget_drupalmedia[aria-label="Tatou poilu hurlant"]');
-    $page->pressButton('Edit media');
-    $this->waitForMetadataDialog();
-    // Assert that the placeholder is set to the value of the media field's
-    // alt text.
-    // cSpell:disable-next-line
-    $assert_session->elementAttributeContains('named', ['field', 'attributes[alt]'], 'placeholder', 'texte alternatif par défaut');
-
-    // Fill in the alt field in the dialog.
-    // cSpell:disable-next-line
-    $qui_est_zartan = 'Zartan est le chef des Dreadnoks.';
-    $page->fillField('attributes[alt]', $qui_est_zartan);
-    $this->submitDialog();
-    $this->getSession()->switchToIFrame('ckeditor');
-
-    // Assert that the img within the media embed within CKEditor contains
-    // the overridden alt text set in the dialog.
-    $this->assertNotEmpty($assert_session->waitForElementVisible('xpath', '//img[contains(@alt, "' . $qui_est_zartan . '")]'));
-    $this->getSession()->switchToIFrame();
-    $page->pressButton('Save');
-    $assert_session->elementExists('xpath', '//img[contains(@alt, "' . $qui_est_zartan . '")]');
-  }
-
-  /**
-   * Tests linkability of the CKEditor widget.
-   *
-   * @dataProvider linkabilityProvider
-   */
-  public function testLinkability($drupalimage_is_enabled) {
-    if (!$drupalimage_is_enabled) {
-      // Remove the `drupalimage` plugin's `DrupalImage` button.
-      $editor = Editor::load('test_format');
-      $settings = $editor->getSettings();
-      $rows = $settings['toolbar']['rows'];
-      foreach ($rows as $row_key => $row) {
-        foreach ($row as $group_key => $group) {
-          foreach ($group['items'] as $item_key => $item) {
-            if ($item === 'DrupalImage') {
-              unset($settings['toolbar']['rows'][$row_key][$group_key]['items'][$item_key]);
-            }
-          }
-        }
-      }
-      $editor->setSettings($settings);
-      $editor->save();
-    }
-
-    $this->host->body->value .= '<p>The pirate is irate.</p><p>';
-    if ($drupalimage_is_enabled) {
-      // Add an image with a link wrapped around it.
-      $uri = $this->media->field_media_image->entity->getFileUri();
-      /** @var \Drupal\Core\File\FileUrlGeneratorInterface $file_url_generator */
-      $file_url_generator = \Drupal::service('file_url_generator');
-      $src = $file_url_generator->generateString($uri);
-      $this->host->body->value .= '<a href="http://www.drupal.org/association"><img alt="drupalimage test image" data-entity-type="" data-entity-uuid="" src="' . $src . '" /></a></p>';
-    }
-    $this->host->save();
-
-    $this->drupalGet($this->host->toUrl('edit-form'));
-    $this->waitForEditor();
-    $this->assignNameToCkeditorIframe();
-    $this->getSession()->switchToIFrame('ckeditor');
-    $assert_session = $this->assertSession();
-
-    // Select the CKEditor Widget.
-    $drupalmedia = $assert_session->waitForElementVisible('css', 'drupal-media');
-    $this->assertNotEmpty($drupalmedia);
-    $drupalmedia->click();
-
-    // While the CKEditor Widget is selected, assert the context menu does not
-    // contain link-related context menu items.
-    $this->openContextMenu();
-    $this->assignNameToCkeditorPanelIframe();
-    $this->getSession()->switchToIFrame('panel');
-    $this->assertContextMenuItemNotExists('Edit Link');
-    $this->assertContextMenuItemNotExists('Unlink');
-    $this->closeContextMenu();
-
-    // While the CKEditor Widget is selected, click the "link" button.
-    $this->pressEditorButton('drupallink');
-    $assert_session->waitForId('drupal-modal');
-
-    // Enter a link in the link dialog and save.
-    $field = $assert_session->waitForElementVisible('xpath', '//input[@name="attributes[href]"]');
-    $this->assertNotEmpty($field);
-    $field->setValue('https://www.drupal.org');
-    $assert_session->elementExists('css', 'button.form-submit')->press();
-    $this->getSession()->switchToIFrame('ckeditor');
-    $link = $assert_session->waitForElementVisible('css', 'a[href="https://www.drupal.org"]');
-    $this->assertNotEmpty($link);
-
-    // Select the CKEditor Widget again and assert the context menu now does
-    // contain link-related context menu items.
-    $drupalmedia = $assert_session->waitForElementVisible('css', 'drupal-media');
-    $this->assertNotEmpty($drupalmedia);
-    $drupalmedia->click();
-    $this->openContextMenu();
-    $this->getSession()->switchToIFrame('panel');
-    $this->assertContextMenuItemExists('Edit Link');
-    $this->assertContextMenuItemExists('Unlink');
-    $this->closeContextMenu();
-
-    // Save the entity.
-    $this->getSession()->switchToIFrame();
-    $assert_session->buttonExists('Save')->press();
-
-    // Verify the saved entity when viewed also contains the linked media.
-    $assert_session->elementExists('css', 'figure > a[href="https://www.drupal.org"] > .media--type-image > .field--type-image > img[src*="image-test.png"]');
-
-    // Test that `drupallink` also still works independently: inserting a link
-    // is possible.
-    $this->drupalGet($this->host->toUrl('edit-form'));
-    $this->waitForEditor();
-    $this->pressEditorButton('drupallink');
-    $assert_session->waitForId('drupal-modal');
-    $field = $assert_session->waitForElementVisible('xpath', '//input[@name="attributes[href]"]');
-    $this->assertNotEmpty($field);
-    $field->setValue('https://wikipedia.org');
-    $assert_session->elementExists('css', 'button.form-submit')->press();
-    $this->assignNameToCkeditorIframe();
-    $this->getSession()->switchToIFrame('ckeditor');
-    $link = $assert_session->waitForElementVisible('css', 'body > a[href="https://wikipedia.org"]');
-    $this->assertNotEmpty($link);
-    $assert_session->elementExists('css', 'body > .cke_widget_drupalmedia > drupal-media > figure > a[href="https://www.drupal.org"]');
-
-    // Select the CKEditor Widget again and assert the `drupalunlink` button is
-    // enabled. Also assert the context menu again contains link-related context
-    // menu items.
-    $drupalmedia = $assert_session->waitForElementVisible('css', 'drupal-media');
-    $this->assertNotEmpty($drupalmedia);
-    $drupalmedia->click();
-    $this->openContextMenu();
-    $this->getSession()->switchToIFrame();
-    $this->assertEditorButtonEnabled('drupalunlink');
-    $this->assignNameToCkeditorPanelIframe();
-    $this->getSession()->switchToIFrame('panel');
-    $this->assertContextMenuItemExists('Edit Link');
-    $this->assertContextMenuItemExists('Unlink');
-
-    // Test that moving focus to another element causes the `drupalunlink`
-    // button to become disabled and causes link-related context menu items to
-    // disappear.
-    $this->getSession()->switchToIFrame();
-    $this->getSession()->switchToIFrame('ckeditor');
-    $p = $assert_session->waitForElementVisible('xpath', "//p[contains(text(), 'The pirate is irate')]");
-    $this->assertNotEmpty($p);
-    $p->click();
-    $this->assertEditorButtonDisabled('drupalunlink');
-    $this->getSession()->switchToIFrame('panel');
-    $this->assertContextMenuItemExists('Edit Link');
-    $this->assertContextMenuItemExists('Unlink');
-
-    // To switch from the context menu iframe ("panel") back to the CKEditor
-    // iframe, we first have to reset to top frame.
-    $this->getSession()->switchToIFrame();
-    $this->getSession()->switchToIFrame('ckeditor');
-
-    // Test that moving focus to the `drupalimage` CKEditor Widget enables the
-    // `drupalunlink` button again, because it is a linked image.
-    if ($drupalimage_is_enabled) {
-      $drupalimage = $assert_session->waitForElementVisible('xpath', '//img[@alt="drupalimage test image"]');
-      $this->assertNotEmpty($drupalimage);
-      $drupalimage->click();
-      $this->assertEditorButtonEnabled('drupalunlink');
-      $this->getSession()->switchToIFrame('panel');
-      $this->assertContextMenuItemExists('Edit Link');
-      $this->assertContextMenuItemExists('Unlink');
-      $this->getSession()->switchToIFrame();
-      $this->getSession()->switchToIFrame('ckeditor');
-    }
-
-    // Tests the `drupalunlink` button for the `drupalmedia` CKEditor Widget.
-    $drupalmedia->click();
-    $this->assertEditorButtonEnabled('drupalunlink');
-    $this->getSession()->switchToIFrame('panel');
-    $this->assertContextMenuItemExists('Edit Link');
-    $this->assertContextMenuItemExists('Unlink');
-    $this->pressEditorButton('drupalunlink');
-    $this->assertEditorButtonDisabled('drupalunlink');
-    $this->getSession()->switchToIFrame('ckeditor');
-    $assert_session->elementNotExists('css', 'figure > a[href="https://www.drupal.org"] > .media--type-image > .field--type-image > img[src*="image-test.png"]');
-    $assert_session->elementExists('css', 'figure .media--type-image > .field--type-image > img[src*="image-test.png"]');
-    if ($drupalimage_is_enabled) {
-      // Tests the `drupalunlink` button for the `drupalimage` CKEditor Widget.
-      $drupalimage->click();
-      $this->assertEditorButtonEnabled('drupalunlink');
-      $this->pressEditorButton('drupalunlink');
-      $this->assertEditorButtonDisabled('drupalunlink');
-      $this->getSession()->switchToIFrame('ckeditor');
-      $assert_session->elementNotExists('css', 'p > a[href="https://www.drupal.org/association"] > img[src*="image-test.png"]');
-      $assert_session->elementExists('css', 'p > img[src*="image-test.png"]');
-    }
-  }
-
-  /**
-   * Data Provider for ::testLinkability.
-   */
-  public function linkabilityProvider() {
-    return [
-      'linkability when `drupalimage` is enabled' => [
-        TRUE,
-      ],
-      'linkability when `drupalimage` is disabled' => [
-        FALSE,
-      ],
-    ];
-  }
-
-  /**
-   * Tests preview route access.
-   *
-   * @param bool $media_embed_enabled
-   *   Whether to test with media_embed filter enabled on the text format.
-   * @param bool $can_use_format
-   *   Whether the logged in user is allowed to use the text format.
-   *
-   * @dataProvider previewAccessProvider
-   */
-  public function testEmbedPreviewAccess($media_embed_enabled, $can_use_format) {
-    // Reconfigure the host entity's text format to suit our needs.
-    /** @var \Drupal\filter\FilterFormatInterface $format */
-    $format = FilterFormat::load($this->host->body->format);
-    $format->set('filters', [
-      'filter_align' => ['status' => TRUE],
-      'filter_caption' => ['status' => TRUE],
-      'media_embed' => ['status' => $media_embed_enabled],
-    ]);
-    $format->save();
-
-    $permissions = [
-      'bypass node access',
-    ];
-    if ($can_use_format) {
-      $permissions[] = $format->getPermissionName();
-    }
-    $this->drupalLogin($this->drupalCreateUser($permissions));
-    $this->drupalGet($this->host->toUrl('edit-form'));
-
-    $assert_session = $this->assertSession();
-    if ($can_use_format) {
-      $this->waitForEditor();
-      $this->assignNameToCkeditorIframe();
-      $this->getSession()->switchToIFrame('ckeditor');
-      if ($media_embed_enabled) {
-        // The preview rendering, which in this test will use Classy's
-        // media.html.twig template, will fail without the CSRF token/header.
-        // @see ::testEmbeddedMediaPreviewWithCsrfToken()
-        $this->assertNotEmpty($assert_session->waitForElementVisible('css', 'article.media'));
-      }
-      else {
-        // If the filter isn't enabled, there won't be an error, but the
-        // preview shouldn't be rendered.
-        $assert_session->assertWaitOnAjaxRequest();
-        $assert_session->elementNotExists('css', 'article.media');
-      }
-    }
-    else {
-      $assert_session->pageTextContains('This field has been disabled because you do not have sufficient permissions to edit it.');
-    }
-  }
-
-  /**
-   * Data provider for ::testEmbedPreviewAccess.
-   */
-  public function previewAccessProvider() {
-    return [
-      'media_embed filter enabled' => [
-        TRUE,
-        TRUE,
-      ],
-      'media_embed filter disabled' => [
-        FALSE,
-        TRUE,
-      ],
-      'media_embed filter enabled, user not allowed to use text format' => [
-        TRUE,
-        FALSE,
-      ],
-    ];
-  }
-
-  /**
-   * Tests alignment integration.
-   *
-   * Tests that alignment is reflected onto the CKEditor Widget wrapper, that
-   * the EditorMediaDialog allows altering the alignment and that the changes
-   * are reflected on the widget and downcast drupal-media tag.
-   */
-  public function testAlignment() {
-    $assert_session = $this->assertSession();
-
-    $this->drupalGet($this->host->toUrl('edit-form'));
-    $this->waitForEditor();
-    $this->assignNameToCkeditorIframe();
-    $this->getSession()->switchToIFrame('ckeditor');
-    // Wait for preview to load.
-    $this->assertNotEmpty($assert_session->waitForElement('css', 'drupal-media img'));
-    // Assert the drupal-media element starts without a data-align attribute.
-    $drupal_media = $assert_session->elementExists('css', 'drupal-media');
-    $this->assertFalse($drupal_media->hasAttribute('data-align'));
-
-    // Assert that setting the data-align property in the dialog adds the
-    // `align-right', `align-left` or `align-center' class on the widget,
-    // caption figure and drupal-media element.
-    $alignments = [
-      'right',
-      'left',
-      'center',
-    ];
-    foreach ($alignments as $alignment) {
-      $this->fillFieldInMetadataDialogAndSubmit('attributes[data-align]', $alignment);
-      // Wait for preview to load.
-      $this->assertNotEmpty($assert_session->waitForElement('css', 'drupal-media img'));
-      // Now verify the result. Assert the first element within the
-      // <drupal-media> element has the alignment class.
-      $selector = sprintf('drupal-media[data-align="%s"] .caption-drupal-media.align-%s', $alignment, $alignment);
-      $this->assertNotEmpty($assert_session->waitForElementVisible('css', $selector, 2000));
-
-      // Assert that the resultant downcast drupal-media element has the proper
-      // `data-align` attribute.
-      $this->pressEditorButton('source');
-      $this->assertSourceAttributeSame('data-align', $alignment);
-      $this->leaveSourceMode();
-    }
-    // Test that setting the "Align" field to "none" in the dialog will
-    // remove the attribute from the drupal-media element in the CKEditor.
-    $this->fillFieldInMetadataDialogAndSubmit('attributes[data-align]', 'none');
-
-    // Assert the drupal-media element no longer has data-align attribute.
-    $this->assertNotEmpty($assert_session->waitForElementVisible('css', 'drupal-media .caption-drupal-media:not(.align-center)', 2000));
-    $drupal_media = $assert_session->elementExists('css', 'drupal-media');
-    $this->assertFalse($drupal_media->hasAttribute('data-align'));
-    // Assert that the resultant downcast <drupal-media> tag has no data-align
-    // attribute.
-    $this->pressEditorButton('source');
-    $this->assertNotEmpty($drupal_media = $this->getDrupalMediaFromSource());
-    $this->assertFalse($drupal_media->hasAttribute('data-align'));
-  }
-
-  /**
-   * Tests the EditorMediaDialog can set the data-view-mode attribute.
-   */
-  public function testViewMode() {
-    EntityViewMode::create([
-      'id' => 'media.view_mode_1',
-      'targetEntityType' => 'media',
-      'status' => TRUE,
-      'enabled' => TRUE,
-      'label' => 'View Mode 1',
-    ])->save();
-    EntityViewMode::create([
-      'id' => 'media.22222',
-      'targetEntityType' => 'media',
-      'status' => TRUE,
-      'enabled' => TRUE,
-      'label' => 'View Mode 2 has Numeric ID',
-    ])->save();
-    EntityViewMode::create([
-      'id' => 'media.view_mode_3',
-      'targetEntityType' => 'media',
-      'status' => TRUE,
-      'enabled' => TRUE,
-      'label' => 'View Mode 3',
-    ])->save();
-
-    // Only enable view mode 1 & 2 for Image.
-    EntityViewDisplay::create([
-      'id' => 'media.image.view_mode_1',
-      'targetEntityType' => 'media',
-      'status' => TRUE,
-      'bundle' => 'image',
-      'mode' => 'view_mode_1',
-    ])->save();
-    EntityViewDisplay::create([
-      'id' => 'media.image.22222',
-      'targetEntityType' => 'media',
-      'status' => TRUE,
-      'bundle' => 'image',
-      'mode' => '22222',
-    ])->save();
-
-    $filter_format = FilterFormat::load('test_format');
-    $filter_format->setFilterConfig('media_embed', [
-      'status' => TRUE,
-      'settings' => [
-        'default_view_mode' => 'view_mode_1',
-        'allowed_media_types' => [],
-        'allowed_view_modes' => [
-          'view_mode_1' => 'view_mode_1',
-          '22222' => '22222',
-          'view_mode_3' => 'view_mode_3',
-        ],
-      ],
-    ])->save();
-
-    // Test that view mode dependencies are returned from the MediaEmbed
-    // filter's ::getDependencies() method.
-    $expected_config_dependencies = [
-      'core.entity_view_mode.media.view_mode_1',
-      'core.entity_view_mode.media.22222',
-      'core.entity_view_mode.media.view_mode_3',
-    ];
-    $dependencies = $filter_format->getDependencies();
-    $this->assertArrayHasKey('config', $dependencies);
-    $this->assertEqualsCanonicalizing($expected_config_dependencies, $dependencies['config']);
-
-    // Test MediaEmbed's allowed_view_modes option setting enables a view mode
-    // selection field.
-    $page = $this->getSession()->getPage();
-    $assert_session = $this->assertSession();
-    $this->drupalGet($this->host->toUrl('edit-form'));
-    $this->waitForEditor();
-    $this->assignNameToCkeditorIframe();
-    $this->getSession()->switchToIFrame('ckeditor');
-    $this->assertNotEmpty($assert_session->waitForElementVisible('css', 'drupal-media'));
-    $assert_session->elementExists('css', '.cke_widget_drupalmedia[aria-label="Screaming hairy armadillo"]');
-    $page->pressButton('Edit media');
-    $this->waitForMetadataDialog();
-    $assert_session->optionExists('attributes[data-view-mode]', 'view_mode_1');
-    $assert_session->optionExists('attributes[data-view-mode]', '22222');
-    $assert_session->optionNotExists('attributes[data-view-mode]', 'view_mode_3');
-    $assert_session->selectExists('attributes[data-view-mode]')->selectOption('22222');
-    $this->submitDialog();
-    $this->getSession()->switchToIFrame('ckeditor');
-    $this->assertNotEmpty($assert_session->waitForElementVisible('css', 'article.media--view-mode-_2222'));
-    // Test that the downcast drupal-media element contains the
-    // `data-view-mode` attribute set in the dialog.
-    $this->pressEditorButton('source');
-    $this->assertNotEmpty($drupal_media = $this->getDrupalMediaFromSource());
-    $this->assertSame('22222', $drupal_media->getAttribute('data-view-mode'));
-
-    // Press the source button again to leave source mode.
-    $this->pressEditorButton('source');
-    // Having entered source mode means we need to reassign an ID to the
-    // CKEditor iframe.
-    $this->assignNameToCkeditorIframe();
-    $this->getSession()->switchToIFrame('ckeditor');
-
-    // Test that setting the allowed_view_modes option to only one option hides
-    // the field (it requires more than one option).
-    $filter_format->setFilterConfig('media_embed', [
-      'status' => TRUE,
-      'settings' => [
-        'default_view_mode' => 'view_mode_1',
-        'allowed_media_types' => [],
-        'allowed_view_modes' => [
-          'view_mode_1' => 'view_mode_1',
-        ],
-      ],
-    ])->save();
-
-    // Test that the dependencies change when the allowed_view_modes change.
-    $dependencies = $filter_format->getDependencies();
-    $this->assertArrayHasKey('config', $dependencies);
-    $this->assertSame(['core.entity_view_mode.media.view_mode_1'], $dependencies['config']);
-
-    $this->assertNotEmpty($assert_session->waitForElementVisible('css', 'drupal-media'));
-    $page->pressButton('Edit media');
-    $this->waitForMetadataDialog();
-    $assert_session->fieldNotExists('attributes[data-view-mode]');
-    $page->pressButton('Close');
-    $this->getSession()->switchToIFrame('ckeditor');
-
-    // Test that setting allowed_view_modes back to two items restores the
-    // field.
-    $filter_format->setFilterConfig('media_embed', [
-      'status' => TRUE,
-      'settings' => [
-        'default_view_mode' => 'view_mode_1',
-        'allowed_media_types' => [],
-        'allowed_view_modes' => [
-          'view_mode_1' => 'view_mode_1',
-          '22222' => '22222',
-        ],
-      ],
-    ])->save();
-
-    // Test that the dependencies change when the allowed_view_modes change.
-    $expected_config_dependencies = [
-      'core.entity_view_mode.media.view_mode_1',
-      'core.entity_view_mode.media.22222',
-    ];
-    $dependencies = $filter_format->getDependencies();
-    $this->assertArrayHasKey('config', $dependencies);
-    $this->assertEqualsCanonicalizing($expected_config_dependencies, $dependencies['config']);
-
-    // Test that setting the view mode back to the default removes the
-    // `data-view-mode` attribute.
-    $this->assertNotEmpty($assert_session->waitForElementVisible('css', 'drupal-media'));
-    $page->pressButton('Edit media');
-    $this->waitForMetadataDialog();
-    $assert_session->optionExists('attributes[data-view-mode]', 'view_mode_1');
-    $assert_session->optionExists('attributes[data-view-mode]', '22222');
-    $assert_session->selectExists('attributes[data-view-mode]')->selectOption('view_mode_1');
-    $this->submitDialog();
-    $this->getSession()->switchToIFrame('ckeditor');
-    $this->assertNotEmpty($assert_session->waitForElementVisible('css', 'article.media--view-mode-view-mode-1'));
-    $this->pressEditorButton('source');
-    $this->assertNotEmpty($drupal_media = $this->getDrupalMediaFromSource());
-    $this->assertFalse($drupal_media->hasAttribute('data-view-mode'));
-
-    // Test that changing the view mode with an empty editable caption
-    // preserves the empty editable caption when the preview reloads.
-    $original_value = $this->host->body->value;
-    $this->host->body->value = str_replace('data-caption="baz"', '', $original_value);
-    $this->host->save();
-    $this->drupalGet($this->host->toUrl('edit-form'));
-    $this->waitForEditor();
-    $this->assignNameToCkeditorIframe();
-    $this->getSession()->switchToIFrame('ckeditor');
-    // Wait for preview to load with default view mode.
-    $this->assertNotEmpty($assert_session->waitForElementVisible('css', 'article.media--view-mode-view-mode-1'));
-  }
-
-  /**
-   * Waits for the form that allows editing metadata.
-   *
-   * @see \Drupal\media\Form\EditorMediaDialog
-   */
-  protected function waitForMetadataDialog() {
-    $page = $this->getSession()->getPage();
-    $this->getSession()->switchToIFrame();
-    // Wait for the dialog to open.
-    $result = $page->waitFor(10, function ($page) {
-      $metadata_editor = $page->find('css', 'form.editor-media-dialog');
-      return !empty($metadata_editor);
-    });
-    $this->assertTrue($result);
-  }
-
-  /**
-   * Fills in a field in the metadata dialog for an embedded media item.
-   *
-   * This method assumes that the calling code has already switched into the
-   * CKEditor iframe.
-   *
-   * @param string $locator
-   *   The field ID, name, or label.
-   * @param string $value
-   *   The value to set on the field.
-   */
-  protected function fillFieldInMetadataDialogAndSubmit($locator, $value) {
-    // Wait for the drupal-media which holds the "Edit media" button which
-    // opens the dialog.
-    $this->openMetadataDialog();
-    $this->getSession()->getPage()->fillField($locator, $value);
-    $this->submitDialog();
-    // Since ::waitforMetadataDialog() switches back to the main iframe, we'll
-    // need to switch back.
-    $this->getSession()->switchToIFrame('ckeditor');
-  }
-
-  /**
-   * Clicks the `Edit media` button and waits for the metadata dialog.
-   *
-   * This method assumes that the calling code has already switched into the
-   * CKEditor iframe.
-   */
-  protected function openMetadataDialog() {
-    $this->assertNotEmpty($embedded_media = $this->assertSession()->waitForElementVisible('css', 'drupal-media'));
-    $embedded_media->pressButton('Edit media');
-    $this->waitForMetadataDialog();
-  }
-
-  /**
-   * Focuses on `Edit media` button and presses the given key.
-   *
-   * @param int $char
-   *   The character code to press.
-   *
-   *   This method assumes that the calling code has already switched into the
-   *   CKEditor iframe.
-   */
-  protected function openMetadataDialogWithKeyPress($char) {
-    $this->assertNotEmpty($button = $this->assertSession()->waitForButton('Edit media'));
-    $button->keyDown($char);
-    $this->waitForMetadataDialog();
-  }
-
-  /**
-   * Leaves source mode and returns to the CKEditor iframe.
-   */
-  protected function leaveSourceMode() {
-    // Press the source button again to leave source mode.
-    $this->pressEditorButton('source');
-    // Having entered source mode means we need to reassign an ID to the
-    // CKEditor iframe.
-    $this->assignNameToCkeditorIframe();
-    $this->getSession()->switchToIFrame('ckeditor');
-  }
-
-  /**
-   * Verifies value of an attribute on the downcast <drupal-media> element.
-   *
-   * Assumes CKEditor is in source mode.
-   *
-   * @param string $attribute
-   *   The attribute to check.
-   * @param string|null $value
-   *   Either a string value or if NULL, asserts that <drupal-media> element
-   *   doesn't have the attribute.
-   *
-   * @internal
-   */
-  protected function assertSourceAttributeSame(string $attribute, ?string $value): void {
-    $this->assertNotEmpty($drupal_media = $this->getDrupalMediaFromSource());
-    if ($value === NULL) {
-      $this->assertFalse($drupal_media->hasAttribute($attribute));
-    }
-    else {
-      $this->assertSame($value, $drupal_media->getAttribute($attribute));
-    }
-  }
-
-  /**
-   * Closes and submits the metadata dialog.
-   */
-  protected function submitDialog() {
-    $this->assertNotEmpty($dialog_buttons = $this->assertSession()->elementExists('css', 'div.ui-dialog-buttonpane'));
-    $dialog_buttons->pressButton('Save');
-  }
-
-  /**
-   * Closes the metadata dialog.
-   */
-  protected function closeDialog() {
-    $page = $this->getSession()->getPage();
-    $page->pressButton('Close');
-    $result = $page->waitFor(10, function ($page) {
-      $metadata_editor = $page->find('css', 'form.editor-media-dialog');
-      return empty($metadata_editor);
-    });
-    $this->assertTrue($result);
-  }
-
-  /**
-   * Gets the transfer size of the last preview request.
-   *
-   * @return int
-   *   The size of the bytes transferred.
-   */
-  protected function getLastPreviewRequestTransferSize() {
-    $this->getSession()->switchToIFrame();
-    $javascript = <<<JS
-(function(){
-  return window.performance
-    .getEntries()
-    .filter(function (entry) {
-      return entry.initiatorType == 'xmlhttprequest' && entry.name.indexOf('/media/test_format/preview') !== -1;
-    })
-    .pop()
-    .transferSize;
-})()
-JS;
-    return $this->getSession()->evaluateScript($javascript);
-  }
-
-  /**
-   * Sets the text of the editable caption to the given text.
-   *
-   * @param string $text
-   *   The text to set in the caption.
-   */
-  protected function setCaption($text) {
-    $this->getSession()->switchToIFrame();
-    $select_and_edit_caption = "var editor = CKEDITOR.instances['edit-body-0-value'];
-       var figcaption = editor.widgets.getByElement(editor.editable().findOne('figcaption'));
-       figcaption.editables.caption.setData('" . $text . "')";
-    $this->getSession()->executeScript($select_and_edit_caption);
-  }
-
-  /**
-   * Assigns a name to the CKEditor context menu iframe.
-   *
-   * Note that this iframe doesn't appear until context menu appears.
-   *
-   * @see \Behat\Mink\Session::switchToIFrame()
-   */
-  protected function assignNameToCkeditorPanelIframe() {
-    $javascript = <<<JS
-(function(){
-  document.getElementsByClassName('cke_panel_frame')[0].id = 'panel';
-})()
-JS;
-    $this->getSession()->evaluateScript($javascript);
-  }
-
-  /**
-   * Opens the context menu for the currently selected widget.
-   *
-   * @param string $instance_id
-   *   The CKEditor instance ID.
-   */
-  protected function openContextMenu($instance_id = 'edit-body-0-value') {
-    $this->getSession()->switchToIFrame();
-    $script = <<<JS
-      (function() {
-        var editor = CKEDITOR.instances["$instance_id"];
-        editor.contextMenu.open(editor.widgets.selected[0].element);
-      }());
-JS;
-    $this->getSession()->executeScript($script);
-  }
-
-  /**
-   * Asserts that a context menu item exists by aria-label attribute.
-   *
-   * @param string $label
-   *   The `aria-label` attribute value of the context menu item.
-   *
-   * @internal
-   */
-  protected function assertContextMenuItemExists(string $label): void {
-    $this->assertSession()->elementExists('xpath', '//a[@aria-label="' . $label . '"]');
-  }
-
-  /**
-   * Asserts that a context menu item does not exist by aria-label attribute.
-   *
-   * @param string $label
-   *   The `aria-label` attribute value of the context menu item.
-   *
-   * @internal
-   */
-  protected function assertContextMenuItemNotExists(string $label): void {
-    $this->assertSession()->elementNotExists('xpath', '//a[@aria-label="' . $label . '"]');
-  }
-
-  /**
-   * Closes the open context menu.
-   *
-   * @param string $instance_id
-   *   The CKEditor instance ID.
-   */
-  protected function closeContextMenu($instance_id = 'edit-body-0-value') {
-    $this->getSession()->switchToIFrame();
-    $script = <<<JS
-      (function() {
-        var editor = CKEDITOR.instances["$instance_id"];
-        editor.contextMenu.hide();
-      }());
-JS;
-    $this->getSession()->executeScript($script);
-  }
-
-  /**
-   * Clicks a link in the editor's path links with the given title text.
-   *
-   * @param string $text
-   *   The title attribute of the link to click.
-   */
-  protected function clickPathLinkByTitleAttribute($text) {
-    $this->getSession()->switchToIFrame();
-    $selector = '//span[@id="cke_1_path"]//a[@title="' . $text . '"]';
-    $this->assertSession()->elementExists('xpath', $selector)->click();
-  }
-
-  /**
-   * Parses the <drupal-media> element from CKEditor's "source" view.
-   *
-   * Assumes CKEditor is in source mode.
-   *
-   * @return \DOMNode|null
-   *   The drupal-media element or NULL if it can't be found.
-   */
-  protected function getDrupalMediaFromSource() {
-    $value = $this->assertSession()
-      ->elementExists('css', 'textarea.cke_source')
-      ->getValue();
-    $dom = Html::load($value);
-    $xpath = new \DOMXPath($dom);
-    $list = $xpath->query('//drupal-media');
-    return count($list) > 0 ? $list[0] : NULL;
-  }
-
-}
diff --git a/web/modules/ckeditor/tests/src/Kernel/CKEditorPluginManagerTest.php b/web/modules/ckeditor/tests/src/Kernel/CKEditorPluginManagerTest.php
deleted file mode 100644
index 8de0c7038676e7ae99d1678149014f1cd8a0d8e5..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/tests/src/Kernel/CKEditorPluginManagerTest.php
+++ /dev/null
@@ -1,165 +0,0 @@
-<?php
-
-namespace Drupal\Tests\ckeditor\Kernel;
-
-use Drupal\editor\Entity\Editor;
-use Drupal\KernelTests\KernelTestBase;
-use Drupal\filter\Entity\FilterFormat;
-
-/**
- * Tests different ways of enabling CKEditor plugins.
- *
- * @group ckeditor
- */
-class CKEditorPluginManagerTest extends KernelTestBase {
-
-  /**
-   * Modules to enable.
-   *
-   * @var array
-   */
-  protected static $modules = [
-    'system',
-    'user',
-    'filter',
-    'editor',
-    'ckeditor',
-  ];
-
-  /**
-   * The manager for "CKEditor plugin" plugins.
-   *
-   * @var \Drupal\Component\Plugin\PluginManagerInterface
-   */
-  protected $manager;
-
-  protected function setUp(): void {
-    parent::setUp();
-
-    // Install the Filter module.
-
-    // Create text format, associate CKEditor.
-    $filtered_html_format = FilterFormat::create([
-      'format' => 'filtered_html',
-      'name' => 'Filtered HTML',
-      'weight' => 0,
-      'filters' => [],
-    ]);
-    $filtered_html_format->save();
-    $editor = Editor::create([
-      'format' => 'filtered_html',
-      'editor' => 'ckeditor',
-    ]);
-    $editor->save();
-  }
-
-  /**
-   * Tests the enabling of plugins.
-   */
-  public function testEnabledPlugins() {
-    $this->manager = $this->container->get('plugin.manager.ckeditor.plugin');
-    $editor = Editor::load('filtered_html');
-
-    // Case 1: no CKEditor plugins.
-    $definitions = array_keys($this->manager->getDefinitions());
-    sort($definitions);
-    $this->assertSame(['drupalimage', 'drupalimagecaption', 'drupallink', 'internal', 'language', 'stylescombo'], $definitions, 'No CKEditor plugins found besides the built-in ones.');
-    $enabled_plugins = [
-      'drupalimage' => $this->getModulePath('ckeditor') . '/js/plugins/drupalimage/plugin.js',
-      'drupallink' => $this->getModulePath('ckeditor') . '/js/plugins/drupallink/plugin.js',
-    ];
-    $this->assertSame($enabled_plugins, $this->manager->getEnabledPluginFiles($editor), 'Only built-in plugins are enabled.');
-    $this->assertSame(['internal' => NULL] + $enabled_plugins, $this->manager->getEnabledPluginFiles($editor, TRUE), 'Only the "internal" plugin is enabled.');
-
-    // Enable the CKEditor Test module, which has the Llama plugin (plus four
-    // variations of it, to cover all possible ways a plugin can be enabled) and
-    // clear the editor manager's cache so it is picked up.
-    $this->enableModules(['ckeditor_test']);
-    $this->manager = $this->container->get('plugin.manager.ckeditor.plugin');
-    $this->manager->clearCachedDefinitions();
-
-    // Case 2: CKEditor plugins are available.
-    $plugin_ids = array_keys($this->manager->getDefinitions());
-    sort($plugin_ids);
-    $this->assertSame(['drupalimage', 'drupalimagecaption', 'drupallink', 'internal', 'language', 'llama', 'llama_button', 'llama_contextual', 'llama_contextual_and_button', 'llama_css', 'stylescombo'], $plugin_ids, 'Additional CKEditor plugins found.');
-    $this->assertSame($enabled_plugins, $this->manager->getEnabledPluginFiles($editor), 'Only the internal plugins are enabled.');
-    $this->assertSame(['internal' => NULL] + $enabled_plugins, $this->manager->getEnabledPluginFiles($editor, TRUE), 'Only the "internal" plugin is enabled.');
-
-    // Case 3: enable each of the newly available plugins, if possible:
-    // 1. Llama: cannot be enabled, since it does not implement
-    //    CKEditorPluginContextualInterface nor CKEditorPluginButtonsInterface.
-    // 2. LlamaContextual: enabled by adding the 'Strike' button, which is
-    //    part of another plugin!
-    // 3. LlamaButton: automatically enabled by adding its 'Llama' button.
-    // 4. LlamaContextualAndButton: enabled by either 2 or 3.
-    // 5. LlamaCSS: automatically enabled by add its 'LlamaCSS' button.
-    // Below, we will first enable the "Llama" button, which will cause the
-    // LlamaButton and LlamaContextualAndButton plugins to be enabled. Then we
-    // will remove the "Llama" button and add the "Strike" button, which will
-    // cause the LlamaContextual and LlamaContextualAndButton plugins to be
-    // enabled. Then we will add the "Strike" button back again, which would
-    // cause LlamaButton, LlamaContextual and LlamaContextualAndButton to be
-    // enabled. Finally, we will add the "LlamaCSS" button which would cause
-    // all four plugins to be enabled.
-    $settings = $editor->getSettings();
-    $original_toolbar = $settings['toolbar'];
-    $settings['toolbar']['rows'][0][0]['items'][] = 'Llama';
-    $editor->setSettings($settings);
-    $editor->save();
-    $file = [];
-    $file['b'] = $this->getModulePath('ckeditor_test') . '/js/llama_button.js';
-    $file['c'] = $this->getModulePath('ckeditor_test') . '/js/llama_contextual.js';
-    $file['cb'] = $this->getModulePath('ckeditor_test') . '/js/llama_contextual_and_button.js';
-    $file['css'] = $this->getModulePath('ckeditor_test') . '/js/llama_css.js';
-    $expected = $enabled_plugins + ['llama_button' => $file['b'], 'llama_contextual_and_button' => $file['cb']];
-    $this->assertSame($expected, $this->manager->getEnabledPluginFiles($editor), 'The LlamaButton and LlamaContextualAndButton plugins are enabled.');
-    $this->assertSame(['internal' => NULL] + $expected, $this->manager->getEnabledPluginFiles($editor, TRUE), 'The LlamaButton and LlamaContextualAndButton plugins are enabled.');
-    $settings['toolbar'] = $original_toolbar;
-    $settings['toolbar']['rows'][0][0]['items'][] = 'Strike';
-    $editor->setSettings($settings);
-    $editor->save();
-    $expected = $enabled_plugins + ['llama_contextual' => $file['c'], 'llama_contextual_and_button' => $file['cb']];
-    $this->assertSame($expected, $this->manager->getEnabledPluginFiles($editor), 'The  LLamaContextual and LlamaContextualAndButton plugins are enabled.');
-    $this->assertSame(['internal' => NULL] + $expected, $this->manager->getEnabledPluginFiles($editor, TRUE), 'The LlamaContextual and LlamaContextualAndButton plugins are enabled.');
-    $settings['toolbar']['rows'][0][0]['items'][] = 'Llama';
-    $editor->setSettings($settings);
-    $editor->save();
-    $expected = $enabled_plugins + ['llama_button' => $file['b'], 'llama_contextual' => $file['c'], 'llama_contextual_and_button' => $file['cb']];
-    $this->assertSame($expected, $this->manager->getEnabledPluginFiles($editor), 'The LlamaButton, LlamaContextual and LlamaContextualAndButton plugins are enabled.');
-    $this->assertSame(['internal' => NULL] + $expected, $this->manager->getEnabledPluginFiles($editor, TRUE), 'The LLamaButton, LlamaContextual and LlamaContextualAndButton plugins are enabled.');
-    $settings['toolbar']['rows'][0][0]['items'][] = 'LlamaCSS';
-    $editor->setSettings($settings);
-    $editor->save();
-    $expected = $enabled_plugins + ['llama_button' => $file['b'], 'llama_contextual' => $file['c'], 'llama_contextual_and_button' => $file['cb'], 'llama_css' => $file['css']];
-    $this->assertSame($expected, $this->manager->getEnabledPluginFiles($editor), 'The LlamaButton, LlamaContextual, LlamaContextualAndButton and LlamaCSS plugins are enabled.');
-    $this->assertSame(['internal' => NULL] + $expected, $this->manager->getEnabledPluginFiles($editor, TRUE), 'The LLamaButton, LlamaContextual, LlamaContextualAndButton and LlamaCSS plugins are enabled.');
-  }
-
-  /**
-   * Tests the iframe instance CSS files of plugins.
-   */
-  public function testCssFiles() {
-    $this->manager = $this->container->get('plugin.manager.ckeditor.plugin');
-    $editor = Editor::load('filtered_html');
-
-    // Case 1: no CKEditor iframe instance CSS file.
-    $this->assertSame([], $this->manager->getCssFiles($editor), 'No iframe instance CSS file found.');
-
-    // Enable the CKEditor Test module, which has the LlamaCss plugin and
-    // clear the editor manager's cache so it is picked up.
-    $this->enableModules(['ckeditor_test']);
-    $this->manager = $this->container->get('plugin.manager.ckeditor.plugin');
-    $settings = $editor->getSettings();
-    // LlamaCss: automatically enabled by adding its 'LlamaCSS' button.
-    $settings['toolbar']['rows'][0][0]['items'][] = 'LlamaCSS';
-    $editor->setSettings($settings);
-    $editor->save();
-
-    // Case 2: CKEditor iframe instance CSS file.
-    $expected = [
-      'llama_css' => [$this->getModulePath('ckeditor_test') . '/css/llama.css'],
-    ];
-    $this->assertSame($expected, $this->manager->getCssFiles($editor), 'Iframe instance CSS file found.');
-  }
-
-}
diff --git a/web/modules/ckeditor/tests/src/Kernel/CKEditorTest.php b/web/modules/ckeditor/tests/src/Kernel/CKEditorTest.php
deleted file mode 100644
index 85b2cba1fec1b6d645b599eda28c1123aa7b0da9..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/tests/src/Kernel/CKEditorTest.php
+++ /dev/null
@@ -1,578 +0,0 @@
-<?php
-
-namespace Drupal\Tests\ckeditor\Kernel;
-
-use Drupal\KernelTests\KernelTestBase;
-use Drupal\language\Entity\ConfigurableLanguage;
-use Drupal\editor\Entity\Editor;
-use Drupal\filter\Entity\FilterFormat;
-
-/**
- * Tests for the 'CKEditor' text editor plugin.
- *
- * @group ckeditor
- */
-class CKEditorTest extends KernelTestBase {
-
-  /**
-   * Modules to enable.
-   *
-   * @var array
-   */
-  protected static $modules = [
-    'system',
-    'user',
-    'filter',
-    'editor',
-    'ckeditor',
-    'filter_test',
-  ];
-
-  /**
-   * An instance of the "CKEditor" text editor plugin.
-   *
-   * @var \Drupal\ckeditor\Plugin\Editor\CKEditor
-   */
-  protected $ckeditor;
-
-  /**
-   * The file URL generator.
-   *
-   * @var \Drupal\Core\File\FileUrlGeneratorInterface
-   */
-  protected $fileUrlGenerator;
-
-  /**
-   * The Editor Plugin Manager.
-   *
-   * @var \Drupal\editor\Plugin\EditorManager
-   */
-  protected $manager;
-
-  protected function setUp(): void {
-    parent::setUp();
-    $this->fileUrlGenerator = $this->container->get('file_url_generator');
-
-    // Install the Filter module.
-
-    // Create text format, associate CKEditor.
-    $filtered_html_format = FilterFormat::create([
-      'format' => 'filtered_html',
-      'name' => 'Filtered HTML',
-      'weight' => 0,
-      'filters' => [
-        'filter_html' => [
-          'status' => 1,
-          'settings' => [
-            'allowed_html' => '<h2 id> <h3> <h4> <h5> <h6> <p> <br> <strong> <a href hreflang>',
-          ],
-        ],
-      ],
-    ]);
-    $filtered_html_format->save();
-    $editor = Editor::create([
-      'format' => 'filtered_html',
-      'editor' => 'ckeditor',
-    ]);
-    $editor->save();
-
-    // Create "CKEditor" text editor plugin instance.
-    $this->ckeditor = $this->container->get('plugin.manager.editor')->createInstance('ckeditor');
-  }
-
-  /**
-   * Tests CKEditor::getJSSettings().
-   */
-  public function testGetJSSettings() {
-    $editor = Editor::load('filtered_html');
-    $query_string = '?0=';
-
-    // Default toolbar.
-    $ckeditor_module_path = $this->getModulePath('ckeditor');
-    $expected_config = $this->getDefaultInternalConfig() + [
-      'drupalImage_dialogTitleAdd' => 'Insert Image',
-      'drupalImage_dialogTitleEdit' => 'Edit Image',
-      'drupalLink_dialogTitleAdd' => 'Add Link',
-      'drupalLink_dialogTitleEdit' => 'Edit Link',
-      'allowedContent' => $this->getDefaultAllowedContentConfig(),
-      'disallowedContent' => $this->getDefaultDisallowedContentConfig(),
-      'toolbar' => $this->getDefaultToolbarConfig(),
-      'contentsCss' => $this->getDefaultContentsCssConfig(),
-      'extraPlugins' => 'drupalimage,drupallink',
-      'language' => 'en',
-      'stylesSet' => FALSE,
-      'drupalExternalPlugins' => [
-        'drupalimage' => $this->fileUrlGenerator->generateString("$ckeditor_module_path/js/plugins/drupalimage/plugin.js"),
-        'drupallink' => $this->fileUrlGenerator->generateString("$ckeditor_module_path/js/plugins/drupallink/plugin.js"),
-      ],
-    ];
-    $this->assertEquals($expected_config, $this->ckeditor->getJSSettings($editor), 'Generated JS settings are correct for default configuration.');
-
-    // Customize the configuration: add button, have two contextually enabled
-    // buttons, and configure a CKEditor plugin setting.
-    $this->enableModules(['ckeditor_test']);
-    $this->container->get('plugin.manager.editor')->clearCachedDefinitions();
-    $this->ckeditor = $this->container->get('plugin.manager.editor')->createInstance('ckeditor');
-    $this->container->get('plugin.manager.ckeditor.plugin')->clearCachedDefinitions();
-    $settings = $editor->getSettings();
-    $settings['toolbar']['rows'][0][0]['items'][] = 'Strike';
-    $settings['toolbar']['rows'][0][0]['items'][] = 'Format';
-    $editor->setSettings($settings);
-    $editor->save();
-    $expected_config['toolbar'][0]['items'][] = 'Strike';
-    $expected_config['toolbar'][0]['items'][] = 'Format';
-    $expected_config['format_tags'] = 'p;h2;h3;h4;h5;h6';
-    $expected_config['extraPlugins'] .= ',llama_contextual,llama_contextual_and_button';
-    $expected_config['drupalExternalPlugins']['llama_contextual'] = $this->fileUrlGenerator->generateString("$ckeditor_module_path/tests/modules/js/llama_contextual.js");
-    $expected_config['drupalExternalPlugins']['llama_contextual_and_button'] = $this->fileUrlGenerator->generateString("$ckeditor_module_path/tests/modules/js/llama_contextual_and_button.js");
-    $expected_config['contentsCss'][] = $this->fileUrlGenerator->generateString("$ckeditor_module_path/tests/modules/ckeditor_test.css") . $query_string;
-    $this->assertEquals($expected_config, $this->ckeditor->getJSSettings($editor), 'Generated JS settings are correct for customized configuration.');
-
-    // Change the allowed HTML tags; the "allowedContent" and "format_tags"
-    // settings for CKEditor should automatically be updated as well.
-    $format = $editor->getFilterFormat();
-    $format->filters('filter_html')->settings['allowed_html'] .= '<pre class> <h1> <blockquote class="*"> <address class="foo bar-* *">';
-    $format->save();
-
-    $expected_config['allowedContent']['pre'] = ['attributes' => 'class', 'styles' => FALSE, 'classes' => TRUE];
-    $expected_config['allowedContent']['h1'] = ['attributes' => FALSE, 'styles' => FALSE, 'classes' => FALSE];
-    $expected_config['allowedContent']['blockquote'] = ['attributes' => 'class', 'styles' => FALSE, 'classes' => TRUE];
-    $expected_config['allowedContent']['address'] = ['attributes' => 'class', 'styles' => FALSE, 'classes' => 'foo,bar-*'];
-    $expected_config['format_tags'] = 'p;h1;h2;h3;h4;h5;h6;pre';
-    $this->assertEquals($expected_config, $this->ckeditor->getJSSettings($editor), 'Generated JS settings are correct for customized configuration.');
-
-    // Disable the filter_html filter: allow *all *tags.
-    $format->setFilterConfig('filter_html', ['status' => 0]);
-    $format->save();
-
-    $expected_config['allowedContent'] = TRUE;
-    $expected_config['disallowedContent'] = FALSE;
-    $expected_config['format_tags'] = 'p;h1;h2;h3;h4;h5;h6;pre';
-    $this->assertEquals($expected_config, $this->ckeditor->getJSSettings($editor), 'Generated JS settings are correct for customized configuration.');
-
-    // Enable the filter_test_restrict_tags_and_attributes filter.
-    $format->setFilterConfig('filter_test_restrict_tags_and_attributes', [
-      'status' => 1,
-      'settings' => [
-        'restrictions' => [
-          'allowed' => [
-            'p' => TRUE,
-            'a' => [
-              'href' => TRUE,
-              'rel' => ['nofollow' => TRUE],
-              'class' => ['external' => TRUE],
-              'target' => ['_blank' => FALSE],
-            ],
-            'span' => [
-              'class' => ['dodo' => FALSE],
-              'property' => ['dc:*' => TRUE],
-              'rel' => ['foaf:*' => FALSE],
-              'style' => ['underline' => FALSE, 'color' => FALSE, 'font-size' => TRUE],
-            ],
-            '*' => [
-              'style' => FALSE,
-              'on*' => FALSE,
-              'class' => ['is-a-hipster-llama' => TRUE, 'and-more' => TRUE],
-              'data-*' => TRUE,
-            ],
-            'del' => FALSE,
-          ],
-        ],
-      ],
-    ]);
-    $format->save();
-
-    $expected_config['allowedContent'] = [
-      'p' => [
-        'attributes' => TRUE,
-        'styles' => FALSE,
-        'classes' => 'is-a-hipster-llama,and-more',
-      ],
-      'a' => [
-        'attributes' => 'href,rel,class,target',
-        'styles' => FALSE,
-        'classes' => 'external',
-      ],
-      'span' => [
-        'attributes' => 'class,property,rel,style',
-        'styles' => 'font-size',
-        'classes' => FALSE,
-      ],
-      '*' => [
-        'attributes' => 'class,data-*',
-        'styles' => FALSE,
-        'classes' => 'is-a-hipster-llama,and-more',
-      ],
-      'del' => [
-        'attributes' => FALSE,
-        'styles' => FALSE,
-        'classes' => FALSE,
-      ],
-    ];
-    $expected_config['disallowedContent'] = [
-      'span' => [
-        'styles' => 'underline,color',
-        'classes' => 'dodo',
-      ],
-      '*' => [
-        'attributes' => 'on*',
-      ],
-    ];
-    $expected_config['format_tags'] = 'p';
-    $this->assertEquals($expected_config, $this->ckeditor->getJSSettings($editor), 'Generated JS settings are correct for customized configuration.');
-  }
-
-  /**
-   * Tests CKEditor::buildToolbarJSSetting().
-   */
-  public function testBuildToolbarJSSetting() {
-    $editor = Editor::load('filtered_html');
-
-    // Default toolbar.
-    $expected = $this->getDefaultToolbarConfig();
-    $this->assertSame($expected, $this->ckeditor->buildToolbarJSSetting($editor), '"toolbar" configuration part of JS settings built correctly for default toolbar.');
-
-    // Customize the configuration.
-    $settings = $editor->getSettings();
-    $settings['toolbar']['rows'][0][0]['items'][] = 'Strike';
-    $editor->setSettings($settings);
-    $editor->save();
-    $expected[0]['items'][] = 'Strike';
-    $this->assertEquals($expected, $this->ckeditor->buildToolbarJSSetting($editor), '"toolbar" configuration part of JS settings built correctly for customized toolbar.');
-
-    // Enable the editor_test module, customize further.
-    $this->enableModules(['ckeditor_test']);
-    $this->container->get('plugin.manager.ckeditor.plugin')->clearCachedDefinitions();
-    // Override the label of a toolbar component.
-    $settings['toolbar']['rows'][0][0]['name'] = 'JunkScience';
-    $settings['toolbar']['rows'][0][0]['items'][] = 'Llama';
-    $editor->setSettings($settings);
-    $editor->save();
-    $expected[0]['name'] = 'JunkScience';
-    $expected[0]['items'][] = 'Llama';
-    $this->assertEquals($expected, $this->ckeditor->buildToolbarJSSetting($editor), '"toolbar" configuration part of JS settings built correctly for customized toolbar with contrib module-provided CKEditor plugin.');
-  }
-
-  /**
-   * Tests CKEditor::buildContentsCssJSSetting().
-   */
-  public function testBuildContentsCssJSSetting() {
-    $editor = Editor::load('filtered_html');
-    $query_string = '?0=';
-
-    // Default toolbar.
-    $expected = $this->getDefaultContentsCssConfig();
-    $this->assertEquals($expected, $this->ckeditor->buildContentsCssJSSetting($editor), '"contentsCss" configuration part of JS settings built correctly for default toolbar.');
-
-    // Enable the editor_test module, which implements hook_ckeditor_css_alter().
-    $this->enableModules(['ckeditor_test']);
-    $expected[] = $this->fileUrlGenerator->generateString($this->getModulePath('ckeditor_test') . '/ckeditor_test.css') . $query_string;
-    $this->assertSame($expected, $this->ckeditor->buildContentsCssJSSetting($editor), '"contentsCss" configuration part of JS settings built correctly while a hook_ckeditor_css_alter() implementation exists.');
-
-    // Enable LlamaCss plugin, which adds an additional CKEditor stylesheet.
-    $this->container->get('plugin.manager.editor')->clearCachedDefinitions();
-    $this->ckeditor = $this->container->get('plugin.manager.editor')->createInstance('ckeditor');
-    $this->container->get('plugin.manager.ckeditor.plugin')->clearCachedDefinitions();
-    $settings = $editor->getSettings();
-    // LlamaCss: automatically enabled by adding its 'LlamaCSS' button.
-    $settings['toolbar']['rows'][0][0]['items'][] = 'LlamaCSS';
-    $editor->setSettings($settings);
-    $editor->save();
-    $expected[] = $this->fileUrlGenerator->generateString($this->getModulePath('ckeditor_test') . '/css/llama.css') . $query_string;
-    $this->assertSame($expected, $this->ckeditor->buildContentsCssJSSetting($editor), '"contentsCss" configuration part of JS settings built correctly while a CKEditorPluginInterface implementation exists.');
-
-    // Some things cannot be tested in Drupal 10 anymore.
-    // @see https://www.drupal.org/project/drupal/issues/3270438
-    [$version] = explode('.', \Drupal::VERSION, 2);
-    if ($version == 10) {
-      return;
-    }
-
-    // Enable the Olivero theme, which specifies a CKEditor stylesheet.
-    \Drupal::service('theme_installer')->install(['olivero']);
-    $this->config('system.theme')->set('default', 'olivero')->save();
-    $expected[] = $this->fileUrlGenerator->generateString('core/themes/olivero/css/base/fonts.css') . $query_string;
-    $expected[] = $this->fileUrlGenerator->generateString('core/themes/olivero/css/base/base.css') . $query_string;
-    $expected[] = $this->fileUrlGenerator->generateString('core/themes/olivero/css/components/embedded-media.css') . $query_string;
-    $expected[] = $this->fileUrlGenerator->generateString('core/themes/olivero/css/components/table.css') . $query_string;
-    $expected[] = $this->fileUrlGenerator->generateString('core/themes/olivero/css/components/text-content.css') . $query_string;
-    $expected[] = $this->fileUrlGenerator->generateString('core/themes/olivero/css/theme/ckeditor-frame.css') . $query_string;
-    $this->assertSame($expected, $this->ckeditor->buildContentsCssJSSetting($editor), '"contentsCss" configuration part of JS settings built correctly while a theme providing a CKEditor stylesheet exists.');
-  }
-
-  /**
-   * Tests Internal::getConfig().
-   */
-  public function testInternalGetConfig() {
-    $editor = Editor::load('filtered_html');
-    $internal_plugin = $this->container->get('plugin.manager.ckeditor.plugin')->createInstance('internal');
-
-    // Default toolbar.
-    $expected = $this->getDefaultInternalConfig();
-    $expected['disallowedContent'] = $this->getDefaultDisallowedContentConfig();
-    $expected['allowedContent'] = $this->getDefaultAllowedContentConfig();
-    $this->assertEquals($expected, $internal_plugin->getConfig($editor), '"Internal" plugin configuration built correctly for default toolbar.');
-
-    // Format dropdown/button enabled: new setting should be present.
-    $settings = $editor->getSettings();
-    $settings['toolbar']['rows'][0][0]['items'][] = 'Format';
-    $editor->setSettings($settings);
-    $expected['format_tags'] = 'p;h2;h3;h4;h5;h6';
-    $this->assertEquals($expected, $internal_plugin->getConfig($editor), '"Internal" plugin configuration built correctly for customized toolbar.');
-  }
-
-  /**
-   * Tests StylesCombo::getConfig().
-   */
-  public function testStylesComboGetConfig() {
-    $editor = Editor::load('filtered_html');
-    $stylescombo_plugin = $this->container->get('plugin.manager.ckeditor.plugin')->createInstance('stylescombo');
-
-    // Styles dropdown/button enabled: new setting should be present.
-    $settings = $editor->getSettings();
-    $settings['toolbar']['rows'][0][0]['items'][] = 'Styles';
-    $settings['plugins']['stylescombo']['styles'] = '';
-    $editor->setSettings($settings);
-    $editor->save();
-    $expected['stylesSet'] = [];
-    $this->assertSame($expected, $stylescombo_plugin->getConfig($editor), '"StylesCombo" plugin configuration built correctly for customized toolbar.');
-
-    // Configure the optional "styles" setting in odd ways that shouldn't affect
-    // the end result.
-    $settings['plugins']['stylescombo']['styles'] = "   \n";
-    $editor->setSettings($settings);
-    $editor->save();
-    $this->assertSame($expected, $stylescombo_plugin->getConfig($editor));
-    $settings['plugins']['stylescombo']['styles'] = "\r\n  \n  \r  \n ";
-    $editor->setSettings($settings);
-    $editor->save();
-    $this->assertSame($expected, $stylescombo_plugin->getConfig($editor), '"StylesCombo" plugin configuration built correctly for customized toolbar.');
-
-    // Now configure it properly, the end result should change.
-    $settings['plugins']['stylescombo']['styles'] = "h1.title|Title\np.mAgical.Callout|Callout";
-    $editor->setSettings($settings);
-    $editor->save();
-    $expected['stylesSet'] = [
-      ['name' => 'Title', 'element' => 'h1', 'attributes' => ['class' => 'title']],
-      ['name' => 'Callout', 'element' => 'p', 'attributes' => ['class' => 'mAgical Callout']],
-    ];
-    $this->assertSame($expected, $stylescombo_plugin->getConfig($editor), '"StylesCombo" plugin configuration built correctly for customized toolbar.');
-
-    // Same configuration, but now interspersed with nonsense. Should yield the
-    // same result.
-    $settings['plugins']['stylescombo']['styles'] = "  h1 .title   |  Title \r \n\r  \np.mAgical  .Callout|Callout\r";
-    $editor->setSettings($settings);
-    $editor->save();
-    $this->assertSame($expected, $stylescombo_plugin->getConfig($editor), '"StylesCombo" plugin configuration built correctly for customized toolbar.');
-
-    // Slightly different configuration: class names are optional.
-    $settings['plugins']['stylescombo']['styles'] = "      h1 |  Title ";
-    $editor->setSettings($settings);
-    $editor->save();
-    $expected['stylesSet'] = [['name' => 'Title', 'element' => 'h1']];
-    $this->assertSame($expected, $stylescombo_plugin->getConfig($editor), '"StylesCombo" plugin configuration built correctly for customized toolbar.');
-
-    // Invalid syntax should cause stylesSet to be set to FALSE.
-    $settings['plugins']['stylescombo']['styles'] = "h1";
-    $editor->setSettings($settings);
-    $editor->save();
-    $expected['stylesSet'] = FALSE;
-    $this->assertSame($expected, $stylescombo_plugin->getConfig($editor), '"StylesCombo" plugin configuration built correctly for customized toolbar.');
-
-    // Configuration that includes a dash in either the element or class name.
-    $settings['plugins']['stylescombo']['styles'] = "drupal-entity.has-dashes|Allowing Dashes";
-    $editor->setSettings($settings);
-    $editor->save();
-    $expected['stylesSet'] = [
-      [
-        'name' => 'Allowing Dashes',
-        'element' => 'drupal-entity',
-        'attributes' => ['class' => 'has-dashes'],
-      ],
-    ];
-    $this->assertSame($expected, $stylescombo_plugin->getConfig($editor), '"StylesCombo" plugin configuration built correctly for customized toolbar.');
-
-  }
-
-  /**
-   * Tests language list availability in CKEditor.
-   */
-  public function testLanguages() {
-    // Get CKEditor supported language codes and spot-check.
-    $this->enableModules(['language']);
-    $this->installConfig(['language']);
-    $langcodes = $this->ckeditor->getLangcodes();
-
-    // Language codes transformed with browser mappings.
-    $this->assertSame('pt', $langcodes['pt-pt'], '"pt" properly resolved');
-    $this->assertSame('zh-cn', $langcodes['zh-hans'], '"zh-hans" properly resolved');
-
-    // Language code both in Drupal and CKEditor.
-    $this->assertSame('gl', $langcodes['gl'], '"gl" properly resolved');
-
-    // Language codes only in CKEditor.
-    $this->assertSame('en-au', $langcodes['en-au'], '"en-au" properly resolved');
-    $this->assertSame('sr-latn', $langcodes['sr-latn'], '"sr-latn" properly resolved');
-
-    // No locale module, so even though languages are enabled, CKEditor should
-    // still be in English.
-    $this->assertCKEditorLanguage('en');
-  }
-
-  /**
-   * Tests that CKEditor plugins participate in JS translation.
-   */
-  public function testJSTranslation() {
-    $this->enableModules(['language', 'locale']);
-    $this->installSchema('locale', 'locales_source');
-    $this->installSchema('locale', 'locales_location');
-    $this->installSchema('locale', 'locales_target');
-    $editor = Editor::load('filtered_html');
-    $this->ckeditor->getJSSettings($editor);
-    $localeStorage = $this->container->get('locale.storage');
-    $string = $localeStorage->findString(['source' => 'Edit Link', 'context' => '']);
-    $this->assertNotEmpty($string, 'String from JavaScript file saved.');
-
-    // With locale module, CKEditor should not adhere to the language selected.
-    $this->assertCKEditorLanguage();
-  }
-
-  /**
-   * Tests loading of theme's CKEditor stylesheets defined in the .info file.
-   */
-  public function testExternalStylesheets() {
-    /** @var \Drupal\Core\Extension\ThemeInstallerInterface $theme_installer */
-    $theme_installer = \Drupal::service('theme_installer');
-    // Case 1: Install theme which has an absolute external CSS URL.
-    $theme_installer->install(['test_ckeditor_stylesheets_external']);
-    $this->config('system.theme')->set('default', 'test_ckeditor_stylesheets_external')->save();
-    $expected = [
-      'https://fonts.googleapis.com/css?family=Open+Sans',
-    ];
-    $this->assertSame($expected, _ckeditor_theme_css('test_ckeditor_stylesheets_external'));
-
-    // Case 2: Install theme which has an external protocol-relative CSS URL.
-    $theme_installer->install(['test_ckeditor_stylesheets_protocol_relative']);
-    $this->config('system.theme')->set('default', 'test_ckeditor_stylesheets_protocol_relative')->save();
-    $expected = [
-      '//fonts.googleapis.com/css?family=Open+Sans',
-    ];
-    $this->assertSame($expected, _ckeditor_theme_css('test_ckeditor_stylesheets_protocol_relative'));
-
-    // Case 3: Install theme which has a relative CSS URL.
-    $theme_installer->install(['test_ckeditor_stylesheets_relative']);
-    $this->config('system.theme')->set('default', 'test_ckeditor_stylesheets_relative')->save();
-    $expected = [
-      'core/modules/system/tests/themes/test_ckeditor_stylesheets_relative/css/yokotsoko.css',
-    ];
-    $this->assertSame($expected, _ckeditor_theme_css('test_ckeditor_stylesheets_relative'));
-
-    // Some things cannot be tested in Drupal 10 anymore.
-    // @see https://www.drupal.org/project/drupal/issues/3270438
-    [$version] = explode('.', \Drupal::VERSION, 2);
-    if ($version == 10) {
-      return;
-    }
-
-    // Case 4: Install theme which has a Drupal root CSS URL.
-    $theme_installer->install(['test_ckeditor_stylesheets_drupal_root']);
-    $this->config('system.theme')->set('default', 'test_ckeditor_stylesheets_drupal_root')->save();
-    $expected = [
-      'core/modules/system/tests/themes/test_ckeditor_stylesheets_drupal_root/css/yokotsoko.css',
-    ];
-    $this->assertSame($expected, _ckeditor_theme_css('test_ckeditor_stylesheets_drupal_root'));
-  }
-
-  /**
-   * Assert that CKEditor picks the expected language when French is default.
-   *
-   * @param string $langcode
-   *   Language code to assert for. Defaults to French. That is the default
-   *   language set in this assertion.
-   *
-   * @internal
-   */
-  protected function assertCKEditorLanguage(string $langcode = 'fr'): void {
-    // Set French as the site default language.
-    ConfigurableLanguage::createFromLangcode('fr')->save();
-    $this->config('system.site')->set('default_langcode', 'fr')->save();
-
-    // Reset the language manager so new negotiations attempts will fall back on
-    // French. Reinject the language manager CKEditor to use the current one.
-    $this->container->get('language_manager')->reset();
-    $this->ckeditor = $this->container->get('plugin.manager.editor')->createInstance('ckeditor');
-
-    // Test that we now get the expected language.
-    $editor = Editor::load('filtered_html');
-    $settings = $this->ckeditor->getJSSettings($editor);
-    $this->assertEquals($langcode, $settings['language']);
-  }
-
-  protected function getDefaultInternalConfig() {
-    return [
-      'customConfig' => '',
-      'pasteFromWordPromptCleanup' => TRUE,
-      'resize_dir' => 'vertical',
-      'justifyClasses' => ['text-align-left', 'text-align-center', 'text-align-right', 'text-align-justify'],
-      'entities' => FALSE,
-      'disableNativeSpellChecker' => FALSE,
-    ];
-  }
-
-  protected function getDefaultAllowedContentConfig() {
-    return [
-      'h2' => ['attributes' => 'id', 'styles' => FALSE, 'classes' => FALSE],
-      'h3' => ['attributes' => FALSE, 'styles' => FALSE, 'classes' => FALSE],
-      'h4' => ['attributes' => FALSE, 'styles' => FALSE, 'classes' => FALSE],
-      'h5' => ['attributes' => FALSE, 'styles' => FALSE, 'classes' => FALSE],
-      'h6' => ['attributes' => FALSE, 'styles' => FALSE, 'classes' => FALSE],
-      'p' => ['attributes' => FALSE, 'styles' => FALSE, 'classes' => FALSE],
-      'br' => ['attributes' => FALSE, 'styles' => FALSE, 'classes' => FALSE],
-      'strong' => ['attributes' => FALSE, 'styles' => FALSE, 'classes' => FALSE],
-      'a' => ['attributes' => 'href,hreflang', 'styles' => FALSE, 'classes' => FALSE],
-      '*' => ['attributes' => 'lang,dir', 'styles' => FALSE, 'classes' => FALSE],
-    ];
-  }
-
-  protected function getDefaultDisallowedContentConfig() {
-    return [
-      '*' => ['attributes' => 'on*'],
-    ];
-  }
-
-  protected function getDefaultToolbarConfig() {
-    return [
-      [
-        'name' => 'Formatting',
-        'items' => ['Bold', 'Italic'],
-      ],
-      [
-        'name' => 'Links',
-        'items' => ['DrupalLink', 'DrupalUnlink'],
-      ],
-      [
-        'name' => 'Lists',
-        'items' => ['BulletedList', 'NumberedList'],
-      ],
-      [
-        'name' => 'Media',
-        'items' => ['Blockquote', 'DrupalImage'],
-      ],
-      [
-        'name' => 'Tools',
-        'items' => ['Source'],
-      ],
-      '/',
-    ];
-  }
-
-  protected function getDefaultContentsCssConfig() {
-    $ckeditor_module_path = $this->getModulePath('ckeditor');
-    $query_string = '?0=';
-    return [
-      $this->fileUrlGenerator->generateString("$ckeditor_module_path/css/ckeditor-iframe.css") . $query_string,
-      $this->fileUrlGenerator->generateString('core/modules/system/css/components/align.module.css') . $query_string,
-    ];
-  }
-
-}
diff --git a/web/modules/ckeditor/tests/src/Kernel/Plugin/CKEditorPlugin/InternalTest.php b/web/modules/ckeditor/tests/src/Kernel/Plugin/CKEditorPlugin/InternalTest.php
deleted file mode 100644
index 1de3df5f7e5fb4510756a789836e5b44b448004f..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/tests/src/Kernel/Plugin/CKEditorPlugin/InternalTest.php
+++ /dev/null
@@ -1,140 +0,0 @@
-<?php
-
-namespace Drupal\Tests\ckeditor\Kernel\Plugin\CKEditorPlugin;
-
-use Drupal\editor\Entity\Editor;
-use Drupal\filter\Entity\FilterFormat;
-use Drupal\KernelTests\KernelTestBase;
-
-/**
- * @coversDefaultClass \Drupal\ckeditor\Plugin\CKEditorPlugin\Internal
- *
- * @group ckeditor
- */
-class InternalTest extends KernelTestBase {
-
-  /**
-   * Modules to enable.
-   *
-   * @var array
-   */
-  protected static $modules = [
-    'ckeditor',
-    'ckeditor_test',
-    'filter',
-    'editor',
-  ];
-
-  /**
-   * A testing text format.
-   *
-   * @var \Drupal\filter\Entity\FilterFormat
-   */
-  protected $format;
-
-  /**
-   * A testing text editor.
-   *
-   * @var \Drupal\editor\Entity\Editor
-   */
-  protected $editor;
-
-  /**
-   * The CKEditor plugin manager.
-   *
-   * @var \Drupal\Component\Plugin\PluginManagerInterface
-   */
-  protected $ckeditorPluginManager;
-
-  /**
-   * {@inheritdoc}
-   */
-  protected function setUp(): void {
-    parent::setUp();
-    $this->installEntitySchema('editor');
-    $this->installEntitySchema('filter_format');
-
-    $this->format = FilterFormat::create([
-      'format' => 'test_format',
-      'name' => $this->randomMachineName(),
-    ]);
-    $this->format->save();
-
-    $this->editor = Editor::create([
-      'editor' => 'ckeditor',
-      'format' => 'test_format',
-      'settings' => [
-        'toolbar' => [
-          'rows' => [
-            [
-              [
-                'name' => 'Enabled Buttons',
-                'items' => [
-                  'Format',
-                ],
-              ],
-            ],
-          ],
-        ],
-      ],
-    ]);
-    $this->editor->save();
-
-    $this->ckeditorPluginManager = $this->container->get('plugin.manager.ckeditor.plugin');
-  }
-
-  /**
-   * Tests the format tags settings.
-   *
-   * @dataProvider formatTagsSettingsTestCases
-   */
-  public function testFormatTagsSettings($filter_plugins, $expected_format_tags) {
-    foreach ($filter_plugins as $filter_plugin_id => $filter_plugin_settings) {
-      $this->format->setFilterConfig($filter_plugin_id, $filter_plugin_settings);
-    }
-    $this->format->save();
-
-    $internal_plugin = $this->ckeditorPluginManager->createInstance('internal', []);
-    $plugin_config = $internal_plugin->getConfig($this->editor);
-    $this->assertEquals($expected_format_tags, explode(';', $plugin_config['format_tags']));
-  }
-
-  /**
-   * A data provider for testFormatTagsSettings.
-   */
-  public function formatTagsSettingsTestCases() {
-    $all_tags = ['p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'pre'];
-
-    return [
-      'No filter plugins enabled (all tags allowed)' => [
-        [],
-        $all_tags,
-      ],
-      'HTML filter plugin enabled (some tags filtered out)' => [
-        [
-          'filter_html' => [
-            'status' => 1,
-            'settings' => [
-              'allowed_html' => '<h1> <h2>',
-              'filter_html_help' => 1,
-              'filter_html_nofollow' => 0,
-            ],
-          ],
-        ],
-        ['p', 'h1', 'h2'],
-      ],
-      'Test attribute filter enabled (all tags allowed)' => [
-        [
-          'test_attribute_filter' => [
-            'status' => 1,
-            'settings' => [
-              'tags' => ['h1', 'h2'],
-            ],
-          ],
-        ],
-        $all_tags,
-      ],
-    ];
-  }
-
-}
diff --git a/web/modules/ckeditor/tests/src/Traits/CKEditorAdminSortTrait.php b/web/modules/ckeditor/tests/src/Traits/CKEditorAdminSortTrait.php
deleted file mode 100644
index adbafc2df6c287d2bbc0ecc775304005445b18d8..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/tests/src/Traits/CKEditorAdminSortTrait.php
+++ /dev/null
@@ -1,34 +0,0 @@
-<?php
-
-namespace Drupal\Tests\ckeditor\Traits;
-
-use Drupal\FunctionalJavascriptTests\SortableTestTrait;
-
-/**
- * Provides callback for simulated CKEditor toolbar configuration change.
- */
-trait CKEditorAdminSortTrait {
-
-  use SortableTestTrait;
-
-  /**
-   * {@inheritdoc}
-   */
-  protected function sortableUpdate($item, $from, $to = NULL) {
-    $script = <<<JS
-(function () {
-  // Set backbone model after a DOM change.
-  Drupal.ckeditor.models.Model.set('isDirty', true);
-})()
-
-JS;
-
-    $options = [
-      'script' => $script,
-      'args'   => [],
-    ];
-
-    $this->getSession()->getDriver()->getWebDriverSession()->execute($options);
-  }
-
-}
diff --git a/web/modules/ckeditor/tests/src/Traits/CKEditorTestTrait.php b/web/modules/ckeditor/tests/src/Traits/CKEditorTestTrait.php
deleted file mode 100644
index 0048d7df3aa996eb030f04ec7dcf66e3edaef5e0..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/tests/src/Traits/CKEditorTestTrait.php
+++ /dev/null
@@ -1,111 +0,0 @@
-<?php
-
-namespace Drupal\Tests\ckeditor\Traits;
-
-/**
- * Provides methods to test CKEditor.
- *
- * This trait is meant to be used only by functional JavaScript test classes.
- */
-trait CKEditorTestTrait {
-
-  /**
-   * Waits for CKEditor to initialize.
-   *
-   * @param string $instance_id
-   *   (optional) The CKEditor instance ID. Defaults to 'edit-body-0-value'.
-   * @param int $timeout
-   *   (optional) Timeout in milliseconds, defaults to 10000.
-   */
-  protected function waitForEditor($instance_id = 'edit-body-0-value', $timeout = 10000) {
-    $condition = <<<JS
-      (function() {
-        return (
-          typeof CKEDITOR !== 'undefined'
-          && typeof CKEDITOR.instances["{$instance_id}"] !== 'undefined'
-          && CKEDITOR.instances["{$instance_id}"].instanceReady
-        );
-      }())
-JS;
-    $this->assertJsCondition($condition, $timeout);
-  }
-
-  /**
-   * Assigns a name to the CKEditor iframe.
-   *
-   * @param string $id
-   *   (optional) The id to assign the iframe element. Defaults to 'ckeditor'.
-   * @param string $instance_id
-   *   (optional) The CKEditor instance ID. Defaults to 'edit-body-0-value'.
-   *
-   * @see \Behat\Mink\Session::switchToIFrame()
-   */
-  protected function assignNameToCkeditorIframe($id = 'ckeditor', $instance_id = 'edit-body-0-value') {
-    $javascript = <<<JS
-(function(){
-  CKEDITOR.instances['{$instance_id}'].element.getParent().find('.cke_wysiwyg_frame').$[0].id = '{$id}';
-})()
-JS;
-    $this->getSession()->evaluateScript($javascript);
-  }
-
-  /**
-   * Clicks a CKEditor button.
-   *
-   * @param string $name
-   *   The name of the button, such as `drupallink`, `source`, etc.
-   * @param string $instance_id
-   *   (optional) The CKEditor instance ID. Defaults to 'edit-body-0-value'.
-   */
-  protected function pressEditorButton($name, $instance_id = 'edit-body-0-value') {
-    $this->getEditorButton($name, $instance_id)->click();
-  }
-
-  /**
-   * Waits for a CKEditor button and returns it when available and visible.
-   *
-   * @param string $name
-   *   The name of the button, such as `drupallink`, `source`, etc.
-   * @param string $instance_id
-   *   (optional) The CKEditor instance ID. Defaults to 'edit-body-0-value'.
-   *
-   * @return \Behat\Mink\Element\NodeElement|null
-   *   The page element node if found, NULL if not.
-   */
-  protected function getEditorButton($name, $instance_id = 'edit-body-0-value') {
-    $this->getSession()->switchToIFrame();
-    $button = $this->assertSession()->waitForElementVisible('css', "#cke_$instance_id a.cke_button__" . $name);
-    $this->assertNotEmpty($button);
-
-    return $button;
-  }
-
-  /**
-   * Asserts a CKEditor button is disabled.
-   *
-   * @param string $name
-   *   The name of the button, such as `drupallink`, `source`, etc.
-   * @param string $instance_id
-   *   (optional) The CKEditor instance ID. Defaults to 'edit-body-0-value'.
-   */
-  protected function assertEditorButtonDisabled($name, $instance_id = 'edit-body-0-value') {
-    $button = $this->getEditorButton($name, $instance_id);
-    $this->assertTrue($button->hasClass('cke_button_disabled'));
-    $this->assertSame('true', $button->getAttribute('aria-disabled'));
-  }
-
-  /**
-   * Asserts a CKEditor button is enabled.
-   *
-   * @param string $name
-   *   The name of the button, such as `drupallink`, `source`, etc.
-   * @param string $instance_id
-   *   (optional) The CKEditor instance ID. Defaults to 'edit-body-0-value'.
-   */
-  protected function assertEditorButtonEnabled($name, $instance_id = 'edit-body-0-value') {
-    $button = $this->getEditorButton($name, $instance_id);
-    $this->assertFalse($button->hasClass('cke_button_disabled'));
-    $this->assertSame('false', $button->getAttribute('aria-disabled'));
-  }
-
-}
diff --git a/web/modules/ckeditor/tests/src/Unit/CKEditorPluginManagerTest.php b/web/modules/ckeditor/tests/src/Unit/CKEditorPluginManagerTest.php
deleted file mode 100644
index dfa1f163f7ea918852edf300d65ac81c47c2b1d6..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/tests/src/Unit/CKEditorPluginManagerTest.php
+++ /dev/null
@@ -1,97 +0,0 @@
-<?php
-
-namespace Drupal\Tests\ckeditor\Unit;
-
-use Drupal\ckeditor\CKEditorPluginManager;
-use Drupal\editor\Entity\Editor;
-use Drupal\Tests\UnitTestCase;
-
-/**
- * @coversDefaultClass \Drupal\ckeditor\CKEditorPluginManager
- *
- * @group ckeditor
- */
-class CKEditorPluginManagerTest extends UnitTestCase {
-
-  /**
-   * Provides a list of configs to test.
-   */
-  public function providerGetEnabledButtons() {
-    return [
-      'empty' => [
-        [],
-        [],
-      ],
-      '1 row, 1 group' => [
-        [
-          // Row 1.
-          [
-            // Group 1.
-            ['name' => 'Formatting', 'items' => ['Bold', 'Italic']],
-          ],
-        ],
-        ['Bold', 'Italic'],
-      ],
-      '1 row, >1 groups' => [
-        [
-          // Row 1.
-          [
-            // Group 1.
-            ['name' => 'Formatting', 'items' => ['Bold', 'Italic']],
-            // Group 2.
-            ['name' => 'Linking', 'items' => ['Link']],
-          ],
-        ],
-        ['Bold', 'Italic', 'Link'],
-      ],
-      '2 rows, 1 group each' => [
-        [
-          // Row 1.
-          [
-            // Group 1.
-            ['name' => 'Formatting', 'items' => ['Bold', 'Italic']],
-          ],
-          // Row 2.
-          [
-            // Group 1.
-            ['name' => 'Tools', 'items' => ['Source']],
-          ],
-        ],
-        ['Bold', 'Italic', 'Source'],
-      ],
-      '2 rows, >1 groups each' => [
-        [
-          // Row 1.
-          [
-            // Group 1.
-            ['name' => 'Formatting', 'items' => ['Bold', 'Italic']],
-            // Group 2.
-            ['name' => 'Linking', 'items' => ['Link']],
-        ],
-          // Row 2.
-          [
-            // Group 1.
-            ['name' => 'Tools', 'items' => ['Source']],
-            // Group 2.
-            ['name' => 'Advanced', 'items' => ['Llama']],
-          ],
-        ],
-        ['Bold', 'Italic', 'Link', 'Source', 'Llama'],
-      ],
-    ];
-  }
-
-  /**
-   * @covers ::getEnabledButtons
-   * @dataProvider providerGetEnabledButtons
-   */
-  public function testGetEnabledButtons(array $toolbar_rows, array $expected_buttons) {
-    $editor = $this->prophesize(Editor::class);
-    $editor->getSettings()
-      ->willReturn(['toolbar' => ['rows' => $toolbar_rows]]);
-
-    $enabled_buttons = CKEditorPluginManager::getEnabledButtons($editor->reveal());
-    $this->assertEquals($expected_buttons, $enabled_buttons);
-  }
-
-}
diff --git a/web/modules/ckeditor/tests/src/Unit/Plugin/CKEditorPlugin/LanguageTest.php b/web/modules/ckeditor/tests/src/Unit/Plugin/CKEditorPlugin/LanguageTest.php
deleted file mode 100644
index 1c6b56bb12fb2fe18d4552410f8297ffeb567b18..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/tests/src/Unit/Plugin/CKEditorPlugin/LanguageTest.php
+++ /dev/null
@@ -1,65 +0,0 @@
-<?php
-
-namespace Drupal\Tests\ckeditor\Unit\Plugin\CKEditorPlugin;
-
-use Drupal\ckeditor\Plugin\CKEditorPlugin\Language;
-use Drupal\Core\Language\LanguageManager;
-use Drupal\Tests\UnitTestCase;
-
-/**
- * @coversDefaultClass \Drupal\ckeditor\Plugin\CKEditorPlugin\Language
- *
- * @group ckeditor
- */
-class LanguageTest extends UnitTestCase {
-
-  /**
-   * The plugin under test.
-   *
-   * @var \Drupal\ckeditor\Plugin\CKEditorPlugin\Language
-   */
-  protected $plugin;
-
-  /**
-   * {@inheritdoc}
-   */
-  public function setUp(): void {
-    $this->plugin = new Language([], $this->randomMachineName(), []);
-  }
-
-  /**
-   * Provides a list of configs to test.
-   */
-  public function providerGetConfig() {
-    return [
-      ['un', LanguageManager::getUnitedNationsLanguageList()],
-      ['all', LanguageManager::getStandardLanguageList()],
-    ];
-  }
-
-  /**
-   * @covers ::getConfig
-   *
-   * @dataProvider providerGetConfig
-   */
-  public function testGetConfig($language_list, $expected_languages) {
-    $editor = $this->getMockBuilder('Drupal\editor\Entity\Editor')
-      ->disableOriginalConstructor()
-      ->getMock();
-    $editor->expects($this->once())
-      ->method('getSettings')
-      ->willReturn(['plugins' => ['language' => ['language_list' => $language_list]]]);
-
-    $config = $this->plugin->getConfig($editor);
-
-    $this->assertIsArray($config);
-    $this->assertContains('ar:Arabic:rtl', $config['language_list']);
-    $this->assertContains('zh-hans:Chinese, Simplified', $config['language_list']);
-    $this->assertContains('en:English', $config['language_list']);
-    $this->assertContains('fr:French', $config['language_list']);
-    $this->assertContains('ru:Russian', $config['language_list']);
-    $this->assertContains('ar:Arabic:rtl', $config['language_list']);
-    $this->assertSameSize($expected_languages, $config['language_list']);
-  }
-
-}
diff --git a/web/modules/ckeditor/vendor/CHANGES.md b/web/modules/ckeditor/vendor/CHANGES.md
deleted file mode 100644
index 94ecf8517b989c86f17434c27f7e052dc0e94e88..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/CHANGES.md
+++ /dev/null
@@ -1,2182 +0,0 @@
-CKEditor 4 Changelog
-====================
-
-## CKEditor 4.18.0
-
-**Security Updates:**
-
-* Fixed an XSS vulnerability in the core module reported by GitHub Security Lab team member [Kevin Backhouse](https://github.com/kevinbackhouse).
-
-	Issue summary: The vulnerability allowed to inject malformed HTML bypassing content sanitization, which could result in executing a JavaScript code. See [CVE-2022-24728](https://github.com/ckeditor/ckeditor4/security/advisories/GHSA-4fc4-4p5g-6w89) for more details.
-
-* Fixed a Regular expression Denial of Service (ReDoS) vulnerability in dialog plugin discovered by the CKEditor 4 team during our regular security audit.
-
-	Issue summary: The vulnerability allowed to abuse a dialog input validator regular expression, which could cause a significant performance drop resulting in a browser tab freeze. See [CVE-2022-24729](https://github.com/ckeditor/ckeditor4/security/advisories/GHSA-f6rf-9m92-x2hh) for more details.
-
-You can read more details in the relevant security advisory and [contact us](security@cksource.com) if you have more questions.
-
-**An upgrade is highly recommended!**
-
-**Highlights:**
-
-[Web Spell Checker](https://webspellchecker.com/) ended support for WebSpellChecker Dialog on December 31st, 2021. This means the plugin is not supported any longer. Therefore, we decided to deprecate and remove the WebSpellChecker Dialog plugin from CKEditor 4 presets.
-
-We strongly encourage everyone to choose one of the other available spellchecking solutions - [Spell Check As You Type (SCAYT)](https://ckeditor.com/cke4/addon/scayt) or [WProofreader](https://ckeditor.com/cke4/addon/wproofreader).
-
-Fixed issues:
-
-* [#5097](https://github.com/ckeditor/ckeditor4/issues/5097): [Chrome] Fixed: Incorrect conversion of points to pixels while using [`CKEDITOR.tools.convertToPx()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_tools.html#method-convertToPx).
-* [#5044](https://github.com/ckeditor/ckeditor4/issues/5044): Fixed: `select` elements with `multiple` attribute had incorrect styling. Thanks to [John R. D'Orazio](https://github.com/JohnRDOrazio)!
-
-Other changes:
-
-* [#5093](https://github.com/ckeditor/ckeditor4/issues/5093): Deprecated and removed WebSpellChecker Dialog from presets.
-* [#5127](https://github.com/ckeditor/ckeditor4/issues/5127): Deprecated the [`CKEDITOR.rnd`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR.html#property-rnd) property to discourage using it in a security-sensitive context.
-* [#5087](https://github.com/ckeditor/ckeditor4/issues/5087): Improved the jQuery adapter by replacing a deprecated jQuery API with existing counterparts. Thanks to [Fran Boon](https://github.com/flavour)!
-* [#5128](https://github.com/ckeditor/ckeditor4/issues/5128): Improved the [Emoji](https://ckeditor.com/cke4/addon/emoji) definitions encoding set by the [`config.emoji_emojiListUrl`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_config.html#cfg-emoji_emojiListUrl) configuration option.
-
-## CKEditor 4.17.2
-
-Fixed issues:
-
-* [#4934](https://github.com/ckeditor/ckeditor4/issues/4934): Fixed: Active focus in dialog tabs is not visible in the High Contrast mode.
-* [#547](https://github.com/ckeditor/ckeditor4/issues/547): Fixed: Dragging and dropping elements like images within a table is no longer available.
-* [#4875](https://github.com/ckeditor/ckeditor4/issues/4875): Fixed: It is not possible to delete multiple selected lists.
-* [#4873](https://github.com/ckeditor/ckeditor4/issues/4873): Fixed: Pasting content from MS Word and Outlook with horizontal lines prevents images from being uploaded.
-* [#4952](https://github.com/ckeditor/ckeditor4/issues/4952): Fixed: Dragging and dropping images within a table cell appends additional elements.
-* [#4761](https://github.com/ckeditor/ckeditor4/issues/4761): Fixed: Some CSS files are missing unique timestamp used to prevent browser to cache static resources between editor releases.
-* [#4987](https://github.com/ckeditor/ckeditor4/issues/4987): Fixed: [Find/Replace](https://ckeditor.com/cke4/addon/find) is not recognizing more than one space character.
-* [#5061](https://github.com/ckeditor/ckeditor4/issues/5061): Fixed: [Find/Replace](https://ckeditor.com/cke4/addon/find) plugin incorrectly handles multiple whitespace during replacing text.
-* [#5004](https://github.com/ckeditor/ckeditor4/issues/5004): Fixed: `MutationObserver` used in [IFrame Editing Area](https://ckeditor.com/cke4/addon/wysiwygarea) plugin causes memory leaks.
-* [#4994](https://github.com/ckeditor/ckeditor4/issues/4994): Fixed: [Easy Image](https://ckeditor.com/cke4/addon/easyimage) plugin caused content pasted from Word to turn into an image.
-
-API changes:
-
-* [#4918](https://github.com/ckeditor/ckeditor4/issues/4918): Explicitly set the [`config.useComputedState`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_config.html#cfg-useComputedState) default value to `true`. Thanks to [Shabab Karim](https://github.com/shabab477)!
-* [#4761](https://github.com/ckeditor/ckeditor4/issues/4761): The [`CKEDITOR.appendTimestamp()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR.html#method-appendTimestamp) function was added.
-* [#4761](https://github.com/ckeditor/ckeditor4/issues/4761): [`CKEDITOR.dom.document#appendStyleSheet()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_dom_document.html#method-appendStyleSheet) and [`CKEDITOR.tools.buildStyleHtml()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_tools.html#method-buildStyleHtml) now use the newly added [`CKEDITOR.appendTimestamp()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR.html#method-appendTimestamp) function to correctly handle caching of CSS files.
-
-Other changes:
-
-* [#5014](https://github.com/ckeditor/ckeditor4/issues/5014): Fixed: Toolbar configurator fails when plugin does not define a toolbar group. Thanks to [SuperPat](https://github.com/SuperPat45)!
-
-## CKEditor 4.17.1
-
-**Highlights:**
-
-Due to a regression in CKEeditor 4.17.0 version that was only revealed after the release and affected a limited area of operation, CSS assets loaded via relative links started to point into invalid location when loaded from external resources.
-
-We have therefore decided to immediately release CKEditor 4.17.1 that fixed this problem. If you have already upgraded to v4.17.0, make sure to upgrade to v4.17.1 to avoid this regression.
-
-Fixed issues:
-
-* [#4979](https://github.com/ckeditor/ckeditor4/issues/3757): Fixed: Added cache key in [#4761](https://github.com/ckeditor/ckeditor4/issues/4761) started to breaking relative links for external CSS resources. The fix has been reverted and will be corrected in the next editor version.
-
-## CKEditor 4.17
-
-**Security Updates:**
-
-* Fixed XSS vulnerability in the core module reported by [William Bowling](https://github.com/wbowling).
-
-	Issue summary: The vulnerability allowed to inject malformed comments HTML bypassing content sanitization, which could result in executing JavaScript code. See [CVE-2021-41165](https://github.com/ckeditor/ckeditor4/security/advisories/GHSA-7h26-63m7-qhf2) for more details.
-
-* Fixed XSS vulnerability in the core module reported by [Maurice Dauer](https://twitter.com/laytonctf).
-
-	Issue summary: The vulnerability allowed to inject malformed HTML bypassing content sanitization, which could result in executing JavaScript code. See [CVE-2021-41164](https://github.com/ckeditor/ckeditor4/security/advisories/GHSA-pvmx-g8h5-cprj) for more details.
-
-You can read more details in the relevant security advisory and [contact us](security@cksource.com) if you have more questions.
-
-**An upgrade is highly recommended!**
-
-**Highlights:**
-
-Adobe [ended support of Flash Player](https://www.adobe.com/products/flashplayer/end-of-life.html) on December 31, 2020 and blocked Flash content from running in Flash Player beginning January 12, 2021.
-We have decided to deprecate and remove the [Flash](https://ckeditor.com/cke4/addon/flash) plugin from CKEditor 4 to help protect users' systems and discourage using insecure software.
-
-New Features:
-
-* [#3433](https://github.com/ckeditor/ckeditor4/issues/3433): Marked required fields in dialogs with asterisk (`*`) symbol.
-* [#4374](https://github.com/ckeditor/ckeditor4/issues/4374): Integrated the [Maximize](https://ckeditor.com/cke4/addon/maximize) plugin with browser's History API.
-* [#4461](https://github.com/ckeditor/ckeditor4/issues/4461): Introduced the possibility to delay editor initialization while it is in a detached DOM element.
-* [#4462](https://github.com/ckeditor/ckeditor4/issues/4462): Introduced support for reattaching editor container element to DOM.
-* [#4612](https://github.com/ckeditor/ckeditor4/issues/4612): Allow pasting images as Base64 from [clipboard](https://ckeditor.com/cke4/addon/clipboard) in all browsers except IE.
-* [#4681](https://github.com/ckeditor/ckeditor4/issues/4681): Allow drag and drop images as Base64.
-* [#4750](https://github.com/ckeditor/ckeditor4/issues/4750): Added notification for pasting and dropping unsupported file types into the editor.
-* [#4807](https://github.com/ckeditor/ckeditor4/issues/4807): [Chrome] Improved the performance of pasting large images. Thanks to [FlowIT-JIT](https://github.com/FlowIT-JIT)!
-* [#4850](https://github.com/ckeditor/ckeditor4/issues/4850): Added support for loading [content templates](https://ckeditor.com/cke4/addon/templates) from HTML files. Thanks to [Fynn96](https://github.com/Fynn96)!
-* [#4874](https://github.com/ckeditor/ckeditor4/issues/4874): Added the [`config.clipboard_handleImages`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_config.html#cfg-clipboard_handleImages) configuration option for enabling and disabling built-in support for pasting and dropping images in the [Clipboard](https://ckeditor.com/cke4/addon/clipboard) plugin. Thanks to [FlowIT-JIT](https://github.com/FlowIT-JIT)!
-* [#4026](https://github.com/ckeditor/ckeditor4/issues/4026): [Preview](https://ckeditor.com/cke4/addon/preview) plugin now uses the [`editor#title`](http://localhost/ckeditor4-docs/build/docs/ckeditor4/latest/api/CKEDITOR_editor.html#property-title) property for the title of the preview window. Thanks to [Ely](https://github.com/Elyasin)!
-* [#4467](https://github.com/ckeditor/ckeditor4/issues/4467): Added support for inserting content next to a block [widgets](https://ckeditor.com/cke4/addon/widget) using keyboard navigation. Thanks to [bunglegrind](https://github.com/bunglegrind)!
-
-Fixed Issues:
-
-* [#3757](https://github.com/ckeditor/ckeditor4/issues/3757): [Firefox] Fixed: images pasted from [clipboard](https://ckeditor.com/cke4/addon/clipboard) are not inserted as Base64-encoded images.
-* [#3876](https://github.com/ckeditor/ckeditor4/issues/3876): Fixed: The [Print](https://ckeditor.com/cke4/addon/print) plugin incorrectly prints links and images.
-* [#4444](https://github.com/ckeditor/ckeditor4/issues/4444): [Firefox] Fixed: Print preview is incorrectly loaded from CDN.
-* [#4596](https://github.com/ckeditor/ckeditor4/issues/4596): Fixed: Incorrect handling of HSL/HSLA values in [`CKEDITOR.tools.color`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_tools_color.html).
-* [#4597](https://github.com/ckeditor/ckeditor4/issues/4597): Fixed: Incorrect color conversion for HSL/HSLA values in [`CKEDITOR.tools.color`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_tools_color.html).
-* [#4604](https://github.com/ckeditor/ckeditor4/issues/4604): Fixed: [`CKEDITOR.plugins.clipboard.dataTransfer#getTypes()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_plugins_clipboard_dataTransfer.html#method-getTypes) returns no types.
-* [#4761](https://github.com/ckeditor/ckeditor4/issues/4761): Fixed: Not all resources loaded by the editor respect the cache key.
-* [#4783](https://github.com/ckeditor/ckeditor4/issues/4783): Fixed: The [Accessibility Help](https://ckeditor.com/cke4/addon/a11yhelp) dialog does not contain info about focus being moved back to the editing area upon activating a toolbar button.
-* [#4790](https://github.com/ckeditor/ckeditor4/issues/4790): Fixed: Printing page is invoked before the printed page is fully loaded.
-* [#4874](https://github.com/ckeditor/ckeditor4/issues/4874): Fixed: Built-in support for pasting and dropping images in the [Clipboard](https://ckeditor.com/cke4/addon/clipboard) plugin restricts third party plugins from handling image pasting. Thanks to [FlowIT-JIT](https://github.com/FlowIT-JIT)!
-* [#4888](https://github.com/ckeditor/ckeditor4/issues/4888): Fixed: The [`CKEDITOR.dialog#setState()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_dialog.html#method-setState) method throws error when there is no "OK" button in the dialog.
-* [#4858](https://github.com/ckeditor/ckeditor4/issues/4858): Fixed: The [Autolink](https://ckeditor.com/cke4/addon/autolink) plugin incorrectly escapes the `&` characters when pasting links into the editor.
-* [#4892](https://github.com/ckeditor/ckeditor4/issues/4892): Fixed: Focus of buttons in dialogs is not visible enough in High Contrast mode.
-* [#3858](https://github.com/ckeditor/ckeditor4/issues/3858): Fixed: Pasting content in `ENTER_BR` [enter mode](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_config.html#cfg-enterMode) crashes the editor.
-* [#4891](https://github.com/ckeditor/ckeditor4/issues/4891): Fixed: The [Autogrow](https://ckeditor.com/cke4/addon/autogrow) plugin applies fixed width to the editor.
-
-API Changes:
-
-* [#4462](https://github.com/ckeditor/ckeditor4/issues/4462): [`CKEDITOR.editor#getSelection()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_editor.html#method-getSelection) now returns `null` if the editor is in recreating state.
-* [#4583](https://github.com/ckeditor/ckeditor4/issues/4583): Added support for new, comma-less color syntax to [`CKEDITOR.tools.color`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_tools_color.html).
-* [#4604](https://github.com/ckeditor/ckeditor4/issues/4604): Added the [`CKEDITOR.plugins.clipboard.dataTransfer#isFileTransfer()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_plugins_clipboard_dataTransfer.html#method-isFileTransfer) method.
-* [#4790](https://github.com/ckeditor/ckeditor4/issues/4790): Added `callback` parameter to [`CKEDITOR.plugins.preview#createPreview()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_plugins_preview.html#method-createPreview) method.
-
-Other Changes:
-
-* [#4866](https://github.com/ckeditor/ckeditor4/issues/#4866): The [Flash](https://ckeditor.com/cke4/addon/flash) plugin is now deprecated and has been removed from CKEditor 4.
-* [#4901](https://github.com/ckeditor/ckeditor4/issues/4901): Redesigned buttons placement in the [Content templates](https://ckeditor.com/cke4/addon/templates) dialog to make it more UX friendly. Thanks to [Fynn96](https://github.com/Fynn96)!
-
-## CKEditor 4.16.2
-
-**Security Updates:**
-
-* Fixed XSS vulnerability in the [Clipboard](https://ckeditor.com/cke4/addon/clipboard) plugin reported by [Anton Subbotin](https://github.com/skavans).
-
-	Issue summary: The vulnerability allowed to abuse paste functionality using malformed HTML, which could result in injecting arbitrary HTML into the editor. See [CVE-2021-32809](https://github.com/ckeditor/ckeditor4/security/advisories/GHSA-7889-rm5j-hpgg) for more details.
-
-* Fixed XSS vulnerability in the [Widget](https://ckeditor.com/cke4/addon/widget) plugin reported by [Anton Subbotin](https://github.com/skavans).
-
-	Issue summary: The vulnerability allowed to abuse undo functionality using malformed [Widget](https://ckeditor.com/cke4/addon/widget) HTML, which could result in executing JavaScript code. See [CVE-2021-32808](https://github.com/ckeditor/ckeditor4/security/advisories/GHSA-6226-h7ff-ch6c) for more details.
-
-* Fixed XSS vulnerability in the [Fake Objects](https://ckeditor.com/cke4/addon/fakeobjects) plugin reported by [Mika Kulmala](https://github.com/kulmik).
-
-	Issue summary: The vulnerability allowed to inject malformed [Fake Objects](https://ckeditor.com/cke4/addon/fakeobjects) HTML, which could result in executing JavaScript code. See [CVE-2021-37695](https://github.com/ckeditor/ckeditor4/security/advisories/GHSA-m94c-37g6-cjhc) for more details.
-
-You can read more details in the relevant security advisory and [contact us](security@cksource.com) if you have more questions.
-
-**An upgrade is highly recommended!**
-
-Fixed Issues:
-* [#4777](https://github.com/ckeditor/ckeditor4/issues/4777): Fixed: HTML comments in widgets not processed correctly.
-* [#4733](https://github.com/ckeditor/ckeditor4/pull/4733): Fixed: [Link](https://ckeditor.com/cke4/addon/link) prevent duplicate anchors in text with styles.
-	* [#4728](https://github.com/ckeditor/ckeditor4/issues/4728): Fixed: Multiple anchors in one line and multi-line with text style.
-	* [#3863](https://github.com/ckeditor/ckeditor4/issues/3863): Fixed: Multiple anchors in single word with text style.
-* [#3819](https://github.com/ckeditor/ckeditor4/issues/3819): [Chrome] Fixed: After removing one of the two consecutive spaces, the `&nbsp;` character appears in the editor instead of a space.
-* [#4666](https://github.com/ckeditor/ckeditor4/pull/4666): [IE] Introduce CSS.escape polyfill. Thanks to [limingli0707](https://github.com/limingli0707)!
-	* [#681](https://github.com/ckeditor/ckeditor4/issues/681): Fixed: Table elements (td, tr, th, ..) with an id that starts with dot (.) causes javascript runtime err.
-	* [#641](https://github.com/ckeditor/ckeditor4/issues/641): Fixed: UploadImage Plugin Widgets not working in IE, Opera, Safari, PhantomJS.
-* [#3638](https://github.com/ckeditor/ckeditor4/issues/3638): Fixed: Opening the same dialog twice causes it to become hidden under the dialog's page cover.
-* [#4247](https://github.com/ckeditor/ckeditor4/issues/4247): Fixed: [Color Button](https://ckeditor.com/cke4/addon/colorbutton)'s incorrect rendering on the first opening.
-* [#4555](https://github.com/ckeditor/ckeditor4/issues/4555): Fixed: [Font](https://ckeditor.com/cke4/addon/font) styles with attributes are not applied correctly when used multiple times over the same selection.
-* [#4782](https://github.com/ckeditor/ckeditor4/issues/4782): [Firefox] Fixed: `TypeError` is thrown when switching to Source View and back while [Autocomplete](https://ckeditor.com/cke4/addon/autocomplete) plugin is enabled.
-
-## CKEditor 4.16.1
-
-Fixed Issues:
-* [#4617](https://github.com/ckeditor/ckeditor4/issues/4617): Fixed: [Autocomplete](https://ckeditor.com/cke4/addon/autocomplete) is not accessible in inline editors.
-* [#4493](https://github.com/ckeditor/ckeditor4/issues/4493): Fixed: The [drop-down](https://ckeditor.com/cke4/addon/richcombo) label does not reflect the current value of the drop-down.
-* [#1572](https://github.com/ckeditor/ckeditor4/issues/1572): Fixed: A paragraph before or after a [widget](https://ckeditor.com/cke4/addon/widget) cannot be removed. Thanks to [bunglegrind](https://github.com/bunglegrind)!
-* [#4301](https://github.com/ckeditor/ckeditor4/issues/4301): Fixed: Pasted content is overwritten when pasted in an initially empty editor with the [`div` Enter mode](https://ckeditor.com/docs/ckeditor4/latest/features/enterkey.html).
-* [#4351](https://github.com/ckeditor/ckeditor4/issues/4351): Fixed: Incorrect values for RGBA/HSLA colors in [Color Dialog](https://ckeditor.com/cke4/addon/colordialog).
-* [#4509](https://github.com/ckeditor/ckeditor4/issues/4509): Fixed: Incorrect handling of drag & drop inside [widgets](https://ckeditor.com/cke4/addon/widget) and nested editables.
-* [#4611](https://github.com/ckeditor/ckeditor4/issues/4611): [Android, iOS] Fixed: Incorrect hover styles for buttons in the toolbar on mobile devices.
-* [#4652](https://github.com/ckeditor/ckeditor4/issues/4652): Fixed: [Event data](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_eventInfo.html) set to `false` is treated as an event cancellation.
-* [#4659](https://github.com/ckeditor/ckeditor4/issues/4659): Fixed: [`CKEDITOR.htmlParser`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_htmlParser.html) does not treat `--!>` as a comment end tag correctly.
-
-## CKEditor 4.16
-
-**Security Updates:**
-
-* Fixed ReDoS vulnerability in the [Autolink](https://ckeditor.com/cke4/addon/autolink) plugin.
-
-	Issue summary: It was possible to execute a ReDoS-type attack inside CKEditor 4 by persuading a victim to paste a specially crafted URL-like text into the editor and press <kbd>Enter</kbd> or <kbd>Space</kbd>.
-
-* Fixed ReDoS vulnerability in the [Advanced Tab for Dialogs](https://ckeditor.com/cke4/addon/dialogadvtab) plugin.
-
-	Issue summary: It was possible to execute a ReDoS-type attack inside CKEditor 4 by persuading a victim to paste a specially crafted text into the Styles dialog.
-
-**An upgrade is highly recommended!**
-
-New Features:
-
-* [#2800](https://github.com/ckeditor/ckeditor4/issues/2800): Unsupported image formats are now gracefully handled by the [Paste from Word](https://ckeditor.com/cke4/addon/pastefromword) plugin on paste, additionally showing descriptive error messages.
-* [#2800](https://github.com/ckeditor/ckeditor4/issues/2800): Unsupported image formats are now gracefully handled by the [Paste from LibreOffice](https://ckeditor.com/cke4/addon/pastefromlibreoffice) plugin on paste, additionally showing descriptive error messages.
-* [#3582](https://github.com/ckeditor/ckeditor4/issues/3582): Introduced smart positioning of the [Autocomplete](https://ckeditor.com/cke4/addon/autocomplete) panel used by the [Mentions](https://ckeditor.com/cke4/addon/mentions) and [Emoji](https://ckeditor.com/cke4/addon/emoji) plugins. The panel will now be additionally positioned related to the browser viewport to be always fully visible.
-* [#4388](https://github.com/ckeditor/ckeditor4/issues/4388): Added the option to remove an iframe created with the [IFrame Dialog](https://ckeditor.com/cke4/addon/iframe) plugin from the sequential keyboard navigation using the `tabindex` attribute. Thanks to [Timo Kirkkala](https://github.com/kirkkala)!
-
-Fixed Issues:
-
-* [#1134](https://github.com/ckeditor/ckeditor4/issues/1134): [Safari] Fixed: [Paste from Word](https://ckeditor.com/cke4/addon/pastefromword) does not embed images.
-* [#2800](https://github.com/ckeditor/ckeditor4/issues/2800): Fixed: No images are imported from Microsoft Word when the content is pasted via the [Paste from Word](https://ckeditor.com/cke4/addon/pastefromword) plugin if there is at least one image of unsupported format.
-* [#4379](https://github.com/ckeditor/ckeditor4/issues/4379): [Edge] Fixed: Incorrect detection of the [high contrast mode](https://ckeditor.com/docs/ckeditor4/latest/guide/dev_a11y.html#high-contrast-mode).
-* [#4422](https://github.com/ckeditor/ckeditor4/issues/4422): Fixed: Missing space between the button name and the keyboard shortcut inside the button label in the [high contrast mode](https://ckeditor.com/docs/ckeditor4/latest/guide/dev_a11y.html#high-contrast-mode).
-* [#2208](https://github.com/ckeditor/ckeditor4/issues/2208): [IE] Fixed: The [Autolink](https://ckeditor.com/cke4/addon/autolink) plugin duplicates the native browser implementation.
-* [#1824](https://github.com/ckeditor/ckeditor4/issues/1824): Fixed: The [Autolink](https://ckeditor.com/cke4/addon/autolink) plugin should require the [Link](https://ckeditor.com/cke4/addon/link) plugin.
-* [#4253](https://github.com/ckeditor/ckeditor4/issues/4253): Fixed: The [Editor Placeholder](https://ckeditor.com/cke4/addon/editorplaceholder) plugin throws an error during the editor initialization with [`config.fullPage`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_config.html#cfg-fullPage) enabled when there is no `<body>` tag in the editor content.
-* [#4372](https://github.com/ckeditor/ckeditor4/issues/4372): Fixed: The [Autogrow](https://ckeditor.com/cke4/addon/autogrow) plugin changes the editor's width when used with an absolute [`config.width`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_config.html#cfg-width) value.
-
-API Changes:
-
-* [#4358](https://github.com/ckeditor/ckeditor4/issues/4358): Introduced the [`CKEDITOR.tools.color`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_tools_color.html) class which adds colors validation and methods for converting colors between various formats: named colors, HEX, RGB, RGBA, HSL and HSLA.
-* [#3782](https://github.com/ckeditor/ckeditor4/issues/3782): Moved the [`CKEDITOR.plugins.pastetools.filters.word.images`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_plugins_pastetools_filters_word_images.html) filters to the [`CKEDITOR.plugins.pastetools.filters.image`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_plugins_pastetools_filters_image.html) namespace.
-* [#4297](https://github.com/ckeditor/ckeditor4/issues/4297): All [`CKEDITOR.plugins.pastetools.filters`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_plugins_pastetools_filters.html) are now available under the [`CKEDITOR.pasteTools`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR.html#property-pasteTools) alias.
-* [#4394](https://github.com/ckeditor/ckeditor4/issues/4394): Introduced [`CKEDITOR.ajax`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_ajax.html) specialized loading methods for loading binary ([`CKEDITOR.ajax.loadBinary()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_ajax.html#method-loadBinary)) and text ([`CKEDITOR.ajax.loadText()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_ajax.html#method-loadText)) data.
-
-Other Changes:
-
-* The [WebSpellChecker](https://ckeditor.com/cke4/addon/wsc) (WSC) plugin is now disabled by default in [Standard and Full presets](https://ckeditor.com/cke4/presets). It can be enabled via [`extraPlugins`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_config.html#cfg-extraPlugins) configuration option.
-
-## CKEditor 4.15.1
-
-**Security Updates:**
-
-* Fixed XSS vulnerability in the [Color History feature](https://ckeditor.com/docs/ckeditor4/latest/features/colorbutton.html#color-history) reported by [Mark Wade](https://github.com/mark-wade).
-
-	Issue summary: It was possible to execute an XSS-type attack inside CKEditor 4 by persuading a victim to paste a specially crafted HTML code into the [Color Button](https://ckeditor.com/cke4/addon/colorbutton) dialog.
-
-**An upgrade is highly recommended!**
-
-Fixed Issues:
-
-* [#4293](https://github.com/ckeditor/ckeditor4/issues/4293): Fixed: The [`CKEDITOR.inlineAll()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR.html#method-inlineAll) method tries to initialize inline editor also on elements with an editor already attached to them.
-* [#3961](https://github.com/ckeditor/ckeditor4/issues/3961): Fixed: The [Table Resize](https://ckeditor.com/cke4/addon/tableresize) plugin prevents editing of merged cells.
-* [#3649](https://github.com/ckeditor/ckeditor4/issues/3649): Fixed: Applying a [block format](https://ckeditor.com/docs/ckeditor4/latest/features/format.html) should remove existing block styles.
-* [#4282](https://github.com/ckeditor/ckeditor4/issues/4282): Fixed: The [script loader](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_scriptLoader.html) does not execute callback for scripts already loaded when called for the second time. Thanks to [Alexander Korotkevich](https://github.com/aldoom)!
-* [#4273](https://github.com/ckeditor/ckeditor4/issues/4273): Fixed: A memory leak in the [`CKEDITOR.domReady()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR.html#method-domReady) method connected with not removing `load` event listeners. Thanks to [rohit1](https://github.com/rohit1)!
-* [#1330](https://github.com/ckeditor/ckeditor4/issues/1330): Fixed: Incomplete CSS margin parsing if an `auto` or `0` value is used.
-* [#4286](https://github.com/ckeditor/ckeditor4/issues/4286): Fixed: The [Auto Grow](https://ckeditor.com/cke4/addon/autogrow) plugin causes the editor width to be set to `0` on editor resize.
-* [#848](https://github.com/ckeditor/ckeditor4/issues/848): Fixed: Arabic text not being "bound" correctly when pasting. Thanks to [Thomas Hunkapiller](https://github.com/devoidfury) and [J. Ivan Duarte Rodríguez](https://github.com/jidrone-mbm)!
-
-API Changes:
-
-* [#3649](https://github.com/ckeditor/ckeditor4/issues/3649): Added a new [`stylesRemove`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_editor.html#event-stylesRemove) editor event.
-
-Other Changes:
-
-* [#4262](https://github.com/ckeditor/ckeditor4/issues/4262): Removed the global reference to the `stylesLoaded` variable. Thanks to [Levi Carter](https://github.com/swiftMessenger)!
-* Updated the [Export to PDF](https://ckeditor.com/cke4/addon/exportpdf) plugin to `1.0.1` version:
-	* Improved external CSS support for [classic editor](https://ckeditor.com/docs/ckeditor4/latest/examples/classic.html) by handling exceptions and displaying convenient [error messages](https://ckeditor.com/docs/ckeditor4/latest/guide/dev_errors.html#exportpdf-stylesheets-incaccessible).
-
-## CKEditor 4.15
-
-New features:
-
-* [#3940](https://github.com/ckeditor/ckeditor4/issues/3940): Introduced the `colorName` property for customizing foreground and background styles in the [Color Button](https://ckeditor.com/cke4/addon/colorbutton) plugin via the [`config.colorButton_foreStyle`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_config.html#cfg-colorButton_foreStyle) and [`config.colorButton_backStyle`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_config.html#cfg-colorButton_backStyle) configuration options.
-* [#3793](https://github.com/ckeditor/ckeditor4/issues/3793): Introduced the [Editor Placeholder](https://ckeditor.com/cke4/addon/editorplaceholder) plugin.
-* [#1795](https://github.com/ckeditor/ckeditor4/issues/1795): The colors picked from the [Color Dialog](https://ckeditor.com/cke4/addon/colordialog) are now stored in the [Color Button](https://ckeditor.com/cke4/addon/colorbutton) palette and can be reused easily.
-* [#3783](https://github.com/ckeditor/ckeditor4/issues/3783): The colors used in the document are now displayed as a part of the [Color Button](https://ckeditor.com/cke4/addon/colorbutton) palette.
-
-Fixed Issues:
-
-* [#4060](https://github.com/ckeditor/ckeditor4/issues/4060): Fixed: The content inside a [widget](https://ckeditor.com/cke4/addon/widget) nested editable is escaped twice.
-* [#4183](https://github.com/ckeditor/ckeditor4/issues/4183): [Safari] Fixed: Incorrect image dimensions when using the [Easy Image](https://ckeditor.com/cke4/addon/easyimage) plugin alongside the [IFrame Editing Area](https://ckeditor.com/cke4/addon/wysiwygarea) plugin.
-* [#3693](https://github.com/ckeditor/ckeditor4/issues/3693): Fixed: Incorrect default values for several [Color Button](https://ckeditor.com/cke4/addon/colorbutton) configuration variables in the API documentation.
-* [#3795](https://github.com/ckeditor/ckeditor4/issues/3795): Fixed: Setting the [`config.dataIndentationChars`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_config.html#cfg-dataIndentationChars) configuration option to an empty string is ignored and replaced by a tab (`\t`) character. Thanks to [Thomas Grinderslev](https://github.com/Znegl)!
-* [#4107](https://github.com/ckeditor/ckeditor4/issues/4107): Fixed: Multiple [Autocomplete](https://ckeditor.com/cke4/addon/autocomplete) instances cause keyboard navigation issues.
-* [#4041](https://github.com/ckeditor/ckeditor4/issues/4041): Fixed: The[`selection.scrollIntoView`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_dom_selection.html#method-scrollIntoView) method throws an error when the editor selection is not set.
-* [#3361](https://github.com/ckeditor/ckeditor4/issues/3361): Fixed: Loading multiple [custom editor configurations](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_config.html#cfg-customConfig) is prone to a race condition between these.
-* [#4007](https://github.com/ckeditor/ckeditor4/issues/4007): Fixed: Screen readers do not announce the [Rich Combo](https://ckeditor.com/cke4/addon/richcombo) plugin is collapsed or expanded.
-* [#4141](https://github.com/ckeditor/ckeditor4/issues/4141): Fixed: The styles are incorrectly applied when there is a `<select>` element inside the editor.
-
-## CKEditor 4.14.1
-
-Fixed Issues:
-
-* [#2607](https://github.com/ckeditor/ckeditor4/issues/2607): Fixed: The [Emoji](https://ckeditor.com/cke4/addon/emoji) plugin SVG icons file is not loaded in CORS context.
-* [#3866](https://github.com/ckeditor/ckeditor4/issues/3866): Fixed: The [`config.readOnly`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_config.html#cfg-readOnly) configuration option not considered for startup read-only mode of inline editor.
-* [#3931](https://github.com/ckeditor/ckeditor4/issues/3931): [IE] Fixed: An error is thrown when pasting using the Paste button after accepting the browser Clipboard Access Prompt dialog.
-* [#3938](https://github.com/ckeditor/ckeditor4/issues/3938): Fixed: Cannot navigate the [Autocomplete](https://ckeditor.com/cke4/addon/autocomplete) panel with the keyboard after switching to source mode.
-* [#2823](https://github.com/ckeditor/ckeditor4/issues/2823): [IE] Fixed: Cannot resize the last table column using the [Table Resize](https://ckeditor.com/cke4/addon/tableresize) plugin.
-* [#909](https://github.com/ckeditor/ckeditor4/issues/909): Fixed: The [Table Resize](https://ckeditor.com/cke4/addon/tableresize) plugin does not work when the editor is placed in an absolutely positioned container. Thanks to [Roland Petto](https://github.com/arpi68)!
-* [#1959](https://github.com/ckeditor/ckeditor4/issues/1959): Fixed: The [Table Resize](https://ckeditor.com/cke4/addon/tableresize) plugin does not work in a [maximized](https://ckeditor.com/cke4/addon/maximize) editor when the [Div Editing Area](https://ckeditor.com/cke4/addon/divarea) feature is enabled. Thanks to [Roland Petto](https://github.com/arpi68)!
-* [#3156](https://github.com/ckeditor/ckeditor4/issues/3156): Fixed: [Autolink](https://ckeditor.com/cke4/addon/autolink) [`config.autolink_urlRegex`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_config.html#cfg-autolink_urlRegex) and [`config.autolink_emailRegex`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_config.html#cfg-autolink_emailRegex) options are not customizable. Thanks to [Sergiy Dobrovolsky](https://github.com/serggoodwill)!
-* [#624](https://github.com/ckeditor/ckeditor4/issues/624): Fixed: [Notification](https://ckeditor.com/cke4/addon/notification) does not work with the [bottom toolbar location](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_config.html#cfg-toolbarLocation).
-* [#3000](https://github.com/ckeditor/ckeditor4/issues/3000): Fixed: [Auto Embed](https://ckeditor.com/cke4/addon/autoembed) does not work with the [bottom toolbar location](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_config.html#cfg-toolbarLocation).
-* [#1883](https://github.com/ckeditor/ckeditor4/issues/1883): Fixed: The [`editor.resize()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_editor.html#method-resize) method does not work with CSS units.
-* [#3926](https://github.com/ckeditor/ckeditor4/issues/3926): Fixed: Dragging and dropping a [widget](https://ckeditor.com/cke4/addon/widget) sometimes produces an error.
-* [#4008](https://github.com/ckeditor/ckeditor4/issues/4008): Fixed: [Remove Format](https://ckeditor.com/cke4/addon/removeformat) does not work with a collapsed selection.
-* [#3998](https://github.com/ckeditor/ckeditor4/issues/3998): Fixed: An error is thrown when switching to the [source mode](https://ckeditor.com/cke4/addon/sourcearea) using a custom <kbd>Ctrl</kbd> + <kbd>Enter</kbd> [keystroke](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_editor.html#method-setKeystroke) with the [Widget](https://ckeditor.com/cke4/addon/widget) plugin present.
-
-Other Changes:
-
-* Updated [WebSpellChecker](https://ckeditor.com/cke4/addon/wsc) (WSC) and [SpellCheckAsYouType](https://ckeditor.com/cke4/addon/scayt) (SCAYT) plugins:
-	* Fixed: Active [Autocomplete](https://ckeditor.com/cke4/addon/autocomplete) panel causes active suggestions to be unnecessarily checked by the SCAYT spell checking mechanism.
-
-## CKEditor 4.14
-
-**Security Updates:**
-
-* Fixed XSS vulnerability in the HTML data processor reported by [Michał Bentkowski](https://twitter.com/securitymb) of Securitum.
-
-	Issue summary: It was possible to execute XSS inside CKEditor after persuading the victim to: (i) switch CKEditor to source mode, then (ii) paste a specially crafted HTML code, prepared by the attacker, into the opened CKEditor source area, and (iii) switch back to WYSIWYG mode or (i) copy the specially crafted HTML code, prepared by the attacker and (ii) paste it into CKEditor in WYSIWYG mode.
-
-* Fixed XSS vulnerability in the WebSpellChecker Dialog plugin reported by [Pham Van Khanh](https://twitter.com/rskvp93) from Viettel Cyber Security.
-
-	Issue summary: It was possible to execute XSS using CKEditor after persuading the victim to: (i) switch CKEditor to source mode, then (ii) paste a specially crafted HTML code, prepared by the attacker, into the opened CKEditor source area, then (iii) switch back to WYSIWYG mode, and (iv) preview CKEditor content outside CKEditor editable area.
-
-**An upgrade is highly recommended!**
-
-New features:
-
-* [#2374](https://github.com/ckeditor/ckeditor4/issues/2374): Added support for pasting rich content from LibreOffice Writer with the [Paste from LibreOffice](https://ckeditor.com/cke4/addon/pastefromlibreoffice) plugin.
-* [#2583](https://github.com/ckeditor/ckeditor4/issues/2583): Changed [emoji](https://ckeditor.com/cke4/addon/emoji) suggestion box to show the matched emoji name instead of an ID.
-* [#3748](https://github.com/ckeditor/ckeditor4/issues/3748): Improved the [color button](https://ckeditor.com/cke4/addon/colorbutton) state to reflect the selected editor content colors.
-* [#3661](https://github.com/ckeditor/ckeditor4/issues/3661): Improved the [Print](https://ckeditor.com/cke4/addon/print) plugin to respect styling rendered by the [Preview](https://ckeditor.com/cke4/addon/preview) plugin.
-* [#3547](https://github.com/ckeditor/ckeditor4/issues/3547): Active [dialog](https://ckeditor.com/cke4/addon/dialog) tab now has the `aria-selected="true"` attribute.
-* [#3441](https://github.com/ckeditor/ckeditor4/issues/3441): Improved [`widget.getClipboardHtml()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_plugins_widget.html#method-getClipboardHtml) support for dragging and dropping multiple [widgets](https://ckeditor.com/cke4/addon/widget).
-
-Fixed Issues:
-
-* [#3587](https://github.com/ckeditor/ckeditor4/issues/3587): [Edge, IE] Fixed: [Widget](https://ckeditor.com/cke4/addon/widget) with form input elements loses focus during typing.
-* [#3705](https://github.com/ckeditor/ckeditor4/issues/3705): [Safari] Fixed: Safari incorrectly removes blocks with the [`editor.extractSelectedHtml()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_editor.html#method-extractSelectedHtml) method after selecting all content.
-* [#1306](https://github.com/ckeditor/ckeditor4/issues/1306): Fixed: The [Font](https://ckeditor.com/cke4/addon/font) plugin creates nested HTML `<span>` tags when reapplying the same font multiple times.
-* [#3498](https://github.com/ckeditor/ckeditor4/issues/3498): Fixed: The editor throws an error during the copy operation when a [widget](https://ckeditor.com/cke4/addon/widget) is partially selected.
-* [#2517](https://github.com/ckeditor/ckeditor4/issues/2517): [Chrome, Firefox, Safari] Fixed: Inserting a new image when the selection partially covers an existing [enhanced image](https://ckeditor.com/cke4/addon/image2) widget throws an error.
-* [#3007](https://github.com/ckeditor/ckeditor4/issues/3007): [Chrome, Firefox, Safari] Fixed: Cannot modify the editor content once the selection is released over a [widget](https://ckeditor.com/cke4/addon/widget).
-* [#3698](https://github.com/ckeditor/ckeditor4/issues/3698): Fixed: Cutting the selected text when a [widget](https://ckeditor.com/cke4/addon/widget) is partially selected merges paragraphs.
-
-API Changes:
-
-* [#3387](https://github.com/ckeditor/ckeditor4/issues/3387): Added the [CKEDITOR.ui.richCombo.select()](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_ui_richCombo.html#method-select) method.
-* [#3727](https://github.com/ckeditor/ckeditor4/issues/3727): Added new `textColor` and `bgColor` commands that apply the selected color chosen by the [Color Button](https://ckeditor.com/cke4/addon/colorbutton) plugin.
-* [#3728](https://github.com/ckeditor/ckeditor4/issues/3728): Added new `font` and `fontSize` commands that apply the selected font style chosen by the [Font](https://ckeditor.com/cke4/addon/colorbutton) plugin.
-* [#3842](https://github.com/ckeditor/ckeditor4/issues/3842): Added the [`editor.getSelectedRanges()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_editor.html#method-getSelectedRanges) alias.
-* [#3775](https://github.com/ckeditor/ckeditor4/issues/3775): Widget [mask](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_plugins_widget.html#property-mask) and [parts](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_plugins_widget.html#property-parts) can now be refreshed dynamically via API calls.
-
-## 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/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/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/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/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/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/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/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/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/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/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/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:
-
-* Updated [WebSpellChecker](https://ckeditor.com/cke4/addon/wsc) (WSC) and [SpellCheckAsYouType](https://ckeditor.com/cke4/addon/scayt) (SCAYT) plugins:
-	* Language dictionary update: German language was extended with over 600k new words.
-	* Language dictionary update: Swedish language was extended with over 300k new words.
-	* Grammar support added for Australian and New Zealand English, Polish, Slovak, Slovenian and Austrian languages.
-	* Changed wavy red and green lines that underline spelling and grammar errors to straight ones.
-	* [#55](https://github.com/WebSpellChecker/ckeditor-plugin-wsc/issues/55): Fixed: WSC does not use [`CKEDITOR.getUrl()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR.html#method-getUrl) when referencing style sheets.
-	* [#166](https://github.com/WebSpellChecker/ckeditor-plugin-scayt/issues/166): Fixed: SCAYT does not use [`CKEDITOR.getUrl()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR.html#method-getUrl) when referencing style sheets.
-	* [#56](https://github.com/WebSpellChecker/ckeditor-plugin-wsc/issues/56): [Chrome] Fixed: SCAYT/WSC throws errors when running inside a  Chrome extension.
-	* Fixed: After removing a dictionary, the words are not underlined and considered as incorrect.
-	* Fixed: The Slovenian (`sl_SL`) language does not work.
-	* Fixed: Quotes with code `U+2019` (Right single quotation mark) are considered separators.
-	* Fixed: Wrong error message formatting when the service ID is invalid.
-	* Fixed: Absent languages in the Languages tab when using SCAYT with the [Shared Spaces](https://ckeditor.com/cke4/addon/sharedspace) plugin.
-
-## CKEditor 4.11.3
-
-Fixed Issues:
-
-* [#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/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/ckeditor4/issues/2603): Corrected the GPL license entry in the `package.json` file.
-
-## CKEditor 4.11.1
-
-Fixed Issues:
-
-* [#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
-
-**Security Updates:**
-
-* Fixed XSS vulnerability in the HTML parser reported by [maxarr](https://hackerone.com/maxarr).
-
-	Issue summary: It was possible to execute XSS inside CKEditor after persuading the victim to: (i) switch CKEditor to source mode, then (ii) paste a specially crafted HTML code, prepared by the attacker, into the opened CKEditor source area, and (iii) switch back to WYSIWYG mode.
-
-**An upgrade is highly recommended!**
-
-New Features:
-
-* [#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/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/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/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/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/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/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/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/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/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/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:
-
-* Updated [SCAYT](https://ckeditor.com/cke4/addon/scayt) (Spell Check As You Type) and [WebSpellChecker](https://ckeditor.com/cke4/addon/wsc) (WSC) plugins:
-	* Language dictionary update: Added support for the Uzbek Latin language.
-	* Languages no longer supported as additional languages: Manx - Isle of Man (`gv_GB`) and Interlingua (`ia_XR`).
-	* Extended and improved language dictionaries: Georgian and Swedish. Also added the missing word _"Ensure"_ to the American, British and Canada English language.
-	* [#141](https://github.com/WebSpellChecker/ckeditor-plugin-scayt/issues/141) Fixed: SCAYT throws "Uncaught Error: Error in RangyWrappedRange module: createRange(): Parameter must be a Window object or DOM node".
-	* [#153](https://github.com/WebSpellChecker/ckeditor-plugin-scayt/issues/153) [Chrome] Fixed: Correcting a word in the widget in SCAYT moves focus to another editable.
-	* [#155](https://github.com/WebSpellChecker/ckeditor-plugin-scayt/issues/155) [IE8] Fixed: SCAYT throws an error and does not work.
-	* [#156](https://github.com/WebSpellChecker/ckeditor-plugin-scayt/issues/156) [IE10] Fixed: SCAYT does not seem to work.
-	* Fixed: After some text is dragged and dropped, the markup is not refreshed for grammar problems in SCAYT.
-	* Fixed: Request to FastCGI fails when the user tries to replace a word with non-English characters with a proper suggestion in WSC.
-	* [Firefox] Fixed: <kbd>Ctrl</kbd>+<kbd>Z</kbd> removes focus in SCAYT.
-	* Grammar support for default languages was improved.
-	* New application source URL was added in SCAYT.
-	* Removed green marks and legend related to grammar-supported languages in the Languages tab of SCAYT. Grammar is now supported for almost all the anguages in the list for an additional fee.
-	* Fixed: JavaScript error in the console: "Cannot read property 'split' of undefined" in SCAYT and WSC.
-	* [IE10] Fixed: Markup is not set for a specific case in SCAYT.
-	* Fixed: Accessibility issue: No `alt` attribute for the logo image in the About tab of SCAYT.
-
-## CKEditor 4.9.2
-
-**Security Updates:**
-
-* Fixed XSS vulnerability in the [Enhanced Image](https://ckeditor.com/cke4/addon/image2) (`image2`) plugin reported by [Kyaw Min Thein](https://twitter.com/kyawminthein99).
-
-	Issue summary: It was possible to execute XSS inside CKEditor using the `<img>` tag and specially crafted HTML. Please note that the default presets (Basic/Standard/Full) do not include this plugin, so you are only at risk if you made a custom build and enabled this plugin.
-
-We would like to thank the [Drupal security team](https://www.drupal.org/drupal-security-team) for bringing this matter to our attention and coordinating the fix and release process!
-
-## CKEditor 4.9.1
-
-Fixed Issues:
-
-* [#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/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/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/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/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:
-
-* Updated [SCAYT](https://ckeditor.com/cke4/addon/scayt) (Spell Check As You Type) and [WebSpellChecker](https://ckeditor.com/cke4/addon/wsc) (WSC) plugins:
-	* SCAYT [`scayt_minWordLength`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_config.html#scayt_minWordLength) configuration option now defaults to 3 instead of 4.
-	* SCAYT default number of suggested words in the context menu changed to 3.
-	* [#90](https://github.com/WebSpellChecker/ckeditor-plugin-scayt/issues/90): Fixed: Selection is lost on link creation if SCAYT highlights the word.
-	* Fixed: SCAYT crashes when the browser `localStorage` is disabled.
-	* [IE11] Fixed: `Unable to get property type of undefined or null reference` error in the browser console when SCAYT is disabled/enabled.
-	* [#46](https://github.com/WebSpellChecker/ckeditor-plugin-wsc/issues/46): Fixed: Editing is blocked when remote spell checker server is offline.
-	* 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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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
-
-**Important Notes:**
-
-* [#13793](https://dev.ckeditor.com/ticket/13793): The [`embed_provider`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_config.html#cfg-embed_provider) configuration option for the [Media Embed](https://ckeditor.com/cke4/addon/embed) and [Semantic Media Embed](https://ckeditor.com/cke4/addon/embedsemantic) plugins is no longer preset by default.
-* The [UI Color](https://ckeditor.com/cke4/addon/uicolor) plugin now uses a custom color picker instead of the `YUI 2.7.0` library which has some known vulnerabilities (it's a security precaution, there was no security issue in CKEditor due to the way it was used).
-
-New Features:
-
-* [#16755](https://dev.ckeditor.com/ticket/16755): Added the [Table Selection](https://ckeditor.com/cke4/addon/tableselection) plugin that lets you select and manipulate an arbitrary rectangular table fragment (a few cells, a row or a column).
-* [#16961](https://dev.ckeditor.com/ticket/16961): Added support for pasting from Microsoft Excel.
-* [#13381](https://dev.ckeditor.com/ticket/13381): Dynamic code evaluation call in [`CKEDITOR.template`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR.template.html) removed. CKEditor can now be used without the `unsafe-eval` Content Security Policy. Thanks to [Caridy Patiño](http://caridy.name)!
-* [#16971](https://dev.ckeditor.com/ticket/16971): Added support for color in the `background` property containing also other styles for table cells in the [Table Tools](https://ckeditor.com/cke4/addon/tabletools) plugin.
-* [#16847](https://dev.ckeditor.com/ticket/16847): Added support for parsing and inlining any formatting created using the Microsoft Word style system to the [Paste from Word](https://ckeditor.com/cke4/addon/pastefromword) plugin.
-* [#16818](https://dev.ckeditor.com/ticket/16818): Added table cell height parsing in the [Paste from Word](https://ckeditor.com/cke4/addon/pastefromword) plugin.
-* [#16850](https://dev.ckeditor.com/ticket/16850): Added a new [`config.enableContextMenu`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_config.html#cfg-enableContextMenu) configuration option for enabling and disabling the [context menu](https://ckeditor.com/cke4/addon/contextmenu).
-* [#16937](https://dev.ckeditor.com/ticket/16937): The `command` parameter in [`CKEDITOR.editor.getCommandKeystroke()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_editor.html#method-getCommandKeystroke) now also accepts a command name as an argument.
-* [#17010](https://dev.ckeditor.com/ticket/17010): The [`CKEDITOR.dom.range.shrink()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_dom_range.html#method-shrink) method now allows for skipping bogus `<br>` elements.
-
-Fixed Issues:
-
-* [#16935](https://dev.ckeditor.com/ticket/16935): [Chrome] Fixed: Blurring the editor in [Source Mode](https://ckeditor.com/cke4/addon/sourcearea) throws an error.
-* [#16825](https://dev.ckeditor.com/ticket/16825): [Chrome] Fixed: Error thrown when destroying a focused inline editor.
-* [#16857](https://dev.ckeditor.com/ticket/16857): Fixed: <kbd>Ctrl+Shift+V</kbd> blocked by [Copy Formatting](https://ckeditor.com/cke4/addon/copyformatting).
-* [#16845](https://dev.ckeditor.com/ticket/16845): [IE] Fixed: Cursor jumps to the top of the scrolled editor after focusing it when the [Copy Formatting](https://ckeditor.com/cke4/addon/copyformatting) plugin is enabled.
-* [#16786](https://dev.ckeditor.com/ticket/16786): Fixed: Added missing translations for the [Copy Formatting](https://ckeditor.com/cke4/addon/copyformatting) plugin.
-* [#14714](https://dev.ckeditor.com/ticket/14714): [WebKit/Blink] Fixed: Exception thrown on refocusing a blurred inline editor.
-* [#16913](https://dev.ckeditor.com/ticket/16913): [Firefox, IE] Fixed: [Paste as Plain Text](https://ckeditor.com/cke4/addon/pastetext) keystroke does not work.
-* [#16968](https://dev.ckeditor.com/ticket/16968): Fixed: [Safari] [Paste as Plain Text](https://ckeditor.com/cke4/addon/pastetext) is not handled by the editor.
-* [#16912](https://dev.ckeditor.com/ticket/16912): Fixed: Exception thrown when a single image is pasted using [Paste from Word](https://ckeditor.com/cke4/addon/pastefromword).
-* [#16821](https://dev.ckeditor.com/ticket/16821): Fixed: Extraneous `<span>` elements with `height` style stacked when [pasting from Word](https://ckeditor.com/cke4/addon/pastefromword).
-* [#16866](https://dev.ckeditor.com/ticket/16866): [IE, Edge] Fixed: Whitespaces not preserved when [pasting from Word](https://ckeditor.com/cke4/addon/pastefromword).
-* [#16860](https://dev.ckeditor.com/ticket/16860): Fixed: Paragraphs which only look like lists incorrectly transformed into them when [pasting from Word](https://ckeditor.com/cke4/addon/pastefromword).
-* [#16817](https://dev.ckeditor.com/ticket/16817): Fixed: When [pasting from Word](https://ckeditor.com/cke4/addon/pastefromword), paragraphs are transformed into lists with some corrupted data.
-* [#16833](https://dev.ckeditor.com/ticket/16833): [IE11] Fixed: Malformed list with headers [pasted from Word](https://ckeditor.com/cke4/addon/pastefromword).
-* [#16826](https://dev.ckeditor.com/ticket/16826): [IE] Fixed: Superfluous paragraphs within lists [pasted from Word](https://ckeditor.com/cke4/addon/pastefromword).
-* [#12465](https://dev.ckeditor.com/ticket/12465): Fixed: Cannot change the state of checkboxes or radio buttons if the properties dialog was invoked with a double-click.
-* [#13062](https://dev.ckeditor.com/ticket/13062): Fixed: Impossible to unlink when the caret is at the edge of the link.
-* [#13585](https://dev.ckeditor.com/ticket/13585): Fixed: Error when wrapping two adjacent `<div>` elements with a `<div>`.
-* [#16811](https://dev.ckeditor.com/ticket/16811): Fixed: Table alignment is not preserved by the [Paste from Word](https://ckeditor.com/cke4/addon/pastefromword) plugin.
-* [#16810](https://dev.ckeditor.com/ticket/16810): Fixed: Vertical align in tables is not supported by the [Paste from Word](https://ckeditor.com/cke4/addon/pastefromword) plugin.
-* [#11956](https://dev.ckeditor.com/ticket/11956): [Blink, IE] Fixed: [Link](https://ckeditor.com/cke4/addon/link) dialog does not open on a double click on the second word of the link with a background color or other styles.
-* [#10472](https://dev.ckeditor.com/ticket/10472): Fixed: Unable to use [Table Resize](https://ckeditor.com/cke4/addon/tableresize) on table header and footer.
-* [#14762](https://dev.ckeditor.com/ticket/14762): Fixed: Hovering over an empty table (without rows or cells) throws an error when the [Table Resize](https://ckeditor.com/cke4/addon/tableresize) plugin is active.
-* [#16777](https://dev.ckeditor.com/ticket/16777): [Edge] Fixed: The [Clipboard](https://ckeditor.com/cke4/addon/clipboard) plugin does not allow to drop widgets into the editor.
-* [#14894](https://dev.ckeditor.com/ticket/14894): [Chrome] Fixed: The editor scrolls to the top after focusing or when a dialog is opened.
-* [#14769](https://dev.ckeditor.com/ticket/14769): Fixed: URLs with '-' in host are not detected by the [Auto Link](https://ckeditor.com/cke4/addon/autolink) plugin.
-* [#16804](https://dev.ckeditor.com/ticket/16804): Fixed: Focus is not on the first menu item when the user opens a context menu or a drop-down list from the editor toolbar.
-* [#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/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.
-
-Other Changes:
-
-* Updated [SCAYT](https://ckeditor.com/cke4/addon/scayt) (Spell Check As You Type) and [WebSpellChecker](https://ckeditor.com/cke4/addon/wsc) plugins:
-	* Fixed: DOM Exception after clicking "Remove Language" on a selected word with enabled [Language](https://ckeditor.com/cke4/addon/language) plugin in SCAYT.
-* [#16958](https://dev.ckeditor.com/ticket/16958): Switched the default MathJax CDN provider for the [Mathematical Formulas](https://ckeditor.com/cke4/addon/mathjax) plugin from `cdn.mathjax.org` to [cdnjs](https://cdnjs.com/), due to closing of `cdn.mathjax.org` scheduled for April 30, 2017.
-* [#16954](https://dev.ckeditor.com/ticket/16954): Removed the paste dialog.
-* [#16982](https://dev.ckeditor.com/ticket/16982): Latest Safari now supports enhanced Clipboard API introduced in CKEditor 4.5.0.
-* [#17025](https://dev.ckeditor.com/ticket/17025): Updated [Bender.js](https://github.com/benderjs/benderjs) to 0.4.2.
-
-## CKEditor 4.6.2
-
-New Features:
-
-* [#16733](https://dev.ckeditor.com/ticket/16733): Added a new pastel color palette for the [Color Button](https://ckeditor.com/cke4/addon/colorbutton) plugin and a new [`config.colorButton_colorsPerRow`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_config.html#cfg-colorButton_colorsPerRow) configuration option for setting the number of rows in the color selector.
-* [#16752](https://dev.ckeditor.com/ticket/16752): Added a new Azerbaijani localization. Thanks to the [Azerbaijani language team](https://www.transifex.com/ckeditor/teams/11143/az/)!
-* [#13818](https://dev.ckeditor.com/ticket/13818): It is now possible to group [Widget](https://ckeditor.com/cke4/addon/widget) [style definitions](https://ckeditor.com/docs/ckeditor4/latest/guide/dev_styles.html#widget-styles), so applying one style disables the other.
-
-Fixed Issues:
-
-* [#13446](https://dev.ckeditor.com/ticket/13446): [Chrome] Fixed: It is possible to type in an unfocused inline editor.
-* [#14856](https://dev.ckeditor.com/ticket/14856): Fixed: [Font size and font family](https://ckeditor.com/cke4/addon/font) reset each other when modified at certain positions.
-* [#16745](https://dev.ckeditor.com/ticket/16745): [Edge] Fixed: List items are lost when [pasted from Word](https://ckeditor.com/cke4/addon/pastefromword).
-* [#16682](https://dev.ckeditor.com/ticket/16682): [Edge] Fixed: A list gets [pasted from Word](https://ckeditor.com/cke4/addon/pastefromword) as a set of paragraphs. Added the [`config.pasteFromWord_heuristicsEdgeList`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_config.html#cfg-pasteFromWord_heuristicsEdgeList) configuration option.
-* [#10373](https://dev.ckeditor.com/ticket/10373): Fixed: Context menu items can be dragged into the editor.
-* [#16728](https://dev.ckeditor.com/ticket/16728): [IE] Fixed: [Copy Formatting](https://ckeditor.com/cke4/addon/copyformatting) breaks the editor in Quirks Mode.
-* [#16795](https://dev.ckeditor.com/ticket/16795): [IE] Fixed: [Copy Formatting](https://ckeditor.com/cke4/addon/copyformatting) breaks the editor in Compatibility Mode.
-* [#16675](https://dev.ckeditor.com/ticket/16675): Fixed: Styles applied with [Copy Formatting](https://ckeditor.com/cke4/addon/copyformatting) to a single table cell are applied to the whole table.
-* [#16753](https://dev.ckeditor.com/ticket/16753): Fixed: [`element.setSize()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_dom_element.html#method-setSize) sets incorrect editor dimensions if the border width is represented as a fraction of pixels.
-* [#16705](https://dev.ckeditor.com/ticket/16705): [Firefox] Fixed: Unable to paste images as Base64 strings when using [Clipboard](https://ckeditor.com/cke4/addon/clipboard).
-* [#14869](https://dev.ckeditor.com/ticket/14869): Fixed: JavaScript error is thrown when trying to use [Find](https://ckeditor.com/cke4/addon/find) in a [`<div>`-based editor](https://ckeditor.com/cke4/addon/divarea).
-
-## CKEditor 4.6.1
-
-New Features:
-
-* [#16639](https://dev.ckeditor.com/ticket/16639): The `callback` parameter in the [`CKEDITOR.ajax.post()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_ajax.html#method-post) method became optional.
-
-Fixed Issues:
-
-* [#11064](https://dev.ckeditor.com/ticket/11064): [Blink, WebKit] Fixed: Cannot select all editor content when a widget or a non-editable element is the first or last element of the content. Also fixes this issue in the [Select All](https://ckeditor.com/cke4/addon/selectall) plugin.
-* [#14755](https://dev.ckeditor.com/ticket/14755): [Blink, WebKit, IE8] Fixed: Browser hangs when a table is inserted in the place of a selected list with an empty last item.
-* [#16624](https://dev.ckeditor.com/ticket/16624): Fixed: Improved the [Color Button](https://ckeditor.com/cke4/addon/colorbutton) plugin which will now normalize the CSS `background` property if it only contains a color value. This fixes missing background colors when using [Paste from Word](https://ckeditor.com/cke4/addon/pastefromword).
-* [#16600](https://dev.ckeditor.com/ticket/16600): [Blink, WebKit] Fixed: Error thrown occasionally by an uninitialized editable for multiple CKEditor instances on the same page.
-
-## CKEditor 4.6
-
-New Features:
-
-* [#14569](https://dev.ckeditor.com/ticket/14569): Added a new, flat, default CKEditor skin called [Moono-Lisa](https://ckeditor.com/cke4/addon/moono-lisa). Refreshed default colors available in the [Color Button](https://ckeditor.com/cke4/addon/colorbutton) plugin ([Text Color and Background Color](https://ckeditor.com/docs/ckeditor4/latest/guide/dev_colorbutton.html) feature).
-* [#14707](https://dev.ckeditor.com/ticket/14707): Added a new [Copy Formatting](https://ckeditor.com/cke4/addon/copyformatting) feature to enable easy copying of styles between your document parts.
-* Introduced the completely rewritten [Paste from Word](https://ckeditor.com/cke4/addon/pastefromword) plugin:
-	* Backward incompatibility: The [`config.pasteFromWordRemoveFontStyles`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_config.html#cfg-pasteFromWordRemoveFontStyles) option now defaults to `false`. This option will be deprecated in the future. Use [Advanced Content Filter](https://ckeditor.com/docs/ckeditor4/latest/guide/dev_acf.html) to replicate the effect of setting it to `true`.
-	* Backward incompatibility: The [`config.pasteFromWordNumberedHeadingToList`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_config.html#cfg-pasteFromWordNumberedHeadingToList) and [`config.pasteFromWordRemoveStyles`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_config.html#cfg-pasteFromWordRemoveStyles) options were dropped and no longer have any effect on pasted content.
-	* Major improvements in preservation of list numbering, styling and indentation (nested lists with multiple levels).
-	* Major improvements in document structure parsing that fix plenty of issues with distorted or missing content after paste.
-* Added new translation: Occitan. Thanks to [Cédric Valmary](https://totenoc.eu/)!
-* [#10015](https://dev.ckeditor.com/ticket/10015): Keyboard shortcuts (relevant to the operating system in use) will now be displayed in tooltips and context menus.
-* [#13794](https://dev.ckeditor.com/ticket/13794): The [Upload Image](https://ckeditor.com/cke4/addon/uploadimage) feature now uses `uploaded.width/height` if set.
-* [#12541](https://dev.ckeditor.com/ticket/12541): Added the [Upload File](https://ckeditor.com/cke4/addon/uploadfile) plugin that lets you upload a file by drag&amp;dropping it into the editor content.
-* [#14449](https://dev.ckeditor.com/ticket/14449): Introduced the [Balloon Panel](https://ckeditor.com/cke4/addon/balloonpanel) plugin that lets you create stylish floating UI elements for the editor.
-* [#12077](https://dev.ckeditor.com/ticket/12077): Added support for the HTML5 `download` attribute in link (`<a>`) elements. Selecting the "Force Download" checkbox in the [Link](https://ckeditor.com/cke4/addon/link) dialog will cause the linked file to be downloaded automatically. Thanks to [sbusse](https://github.com/sbusse)!
-* [#13518](https://dev.ckeditor.com/ticket/13518): Introduced the [`additionalRequestParameters`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_fileTools_uploadWidgetDefinition.html#property-additionalRequestParameters) property for file uploads to make it possible to send additional information about the uploaded file to the server.
-* [#14889](https://dev.ckeditor.com/ticket/14889): Added the [`config.image2_altRequired`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_config.html#cfg-image2_altRequired) option for the [Enhanced Image](https://ckeditor.com/cke4/addon/image2) plugin to allow making alternative text a mandatory field. Thanks to [Andrey Fedoseev](https://github.com/andreyfedoseev)!
-
-Fixed Issues:
-
-* [#9991](https://dev.ckeditor.com/ticket/9991): Fixed: [Paste from Word](https://ckeditor.com/cke4/addon/pastefromword) should only normalize input data.
-* [#7209](https://dev.ckeditor.com/ticket/7209): Fixed: Lists with 3 levels not [pasted from Word](https://ckeditor.com/cke4/addon/pastefromword) correctly.
-* [#14335](https://dev.ckeditor.com/ticket/14335): Fixed: Pasting a numbered list starting with a value different from "1" from Microsoft Word does not work correctly.
-* [#14542](https://dev.ckeditor.com/ticket/14542): Fixed: Copying a numbered list from Microsoft Word does not preserve list formatting.
-* [#14544](https://dev.ckeditor.com/ticket/14544): Fixed: Copying a nested list from Microsoft Word results in an empty list.
-* [#14660](https://dev.ckeditor.com/ticket/14660): Fixed: [Pasting text from  Word](https://ckeditor.com/cke4/addon/pastefromword) breaks the styling in some cases.
-* [#14867](https://dev.ckeditor.com/ticket/14867): [Firefox] Fixed: Text gets stripped when [pasting content from Word](https://ckeditor.com/cke4/addon/pastefromword).
-* [#2507](https://dev.ckeditor.com/ticket/2507): Fixed: [Paste from Word](https://ckeditor.com/cke4/addon/pastefromword) does not detect pasting a part of a paragraph.
-* [#3336](https://dev.ckeditor.com/ticket/3336): Fixed: Extra blank row added on top of the content [pasted from Word](https://ckeditor.com/cke4/addon/pastefromword).
-* [#6115](https://dev.ckeditor.com/ticket/6115): Fixed: When Right-to-Left text direction is applied to a table [pasted from Word](https://ckeditor.com/cke4/addon/pastefromword), borders are missing on one side.
-* [#6342](https://dev.ckeditor.com/ticket/6342): Fixed: [Paste from Word](https://ckeditor.com/cke4/addon/pastefromword) filters out a basic text style when it is [configured to use attributes](https://ckeditor.com/docs/ckeditor4/latest/guide/dev_basicstyles.html#custom-basic-text-style-definition).
-* [#6457](https://dev.ckeditor.com/ticket/6457): [IE] Fixed: [Pasting from Word](https://ckeditor.com/cke4/addon/pastefromword) is extremely slow.
-* [#6789](https://dev.ckeditor.com/ticket/6789): Fixed: The `mso-list: ignore` style is not handled properly when [pasting from Word](https://ckeditor.com/cke4/addon/pastefromword).
-* [#7262](https://dev.ckeditor.com/ticket/7262): Fixed: Lists in preformatted body disappear when [pasting from Word](https://ckeditor.com/cke4/addon/pastefromword).
-* [#7662](https://dev.ckeditor.com/ticket/7662): [Opera] Fixed: Extra empty number/bullet shown in the editor body when editing a multi-level list [pasted from Word](https://ckeditor.com/cke4/addon/pastefromword).
-* [#7807](https://dev.ckeditor.com/ticket/7807): Fixed: Last item in a list not converted to a `<li>` element after [pasting from Word](https://ckeditor.com/cke4/addon/pastefromword).
-* [#7950](https://dev.ckeditor.com/ticket/7950): [IE] Fixed: Content [from Word pasted](https://ckeditor.com/cke4/addon/pastefromword) differently than in other browsers.
-* [#7982](https://dev.ckeditor.com/ticket/7982): Fixed: Multi-level lists get split into smaller ones when [pasting from Word](https://ckeditor.com/cke4/addon/pastefromword).
-* [#8231](https://dev.ckeditor.com/ticket/8231): [WebKit, Opera] Fixed: [Paste from Word](https://ckeditor.com/cke4/addon/pastefromword) inserts empty paragraphs.
-* [#8266](https://dev.ckeditor.com/ticket/8266): Fixed: [Paste from Word](https://ckeditor.com/cke4/addon/pastefromword) inserts a blank line at the top.
-* [#8341](https://dev.ckeditor.com/ticket/8341), [#7646](https://dev.ckeditor.com/ticket/7646): Fixed: Faulty removal of empty `<span>` elements in [Paste from Word](https://ckeditor.com/cke4/addon/pastefromword) content cleanup breaking content formatting.
-* [#8754](https://dev.ckeditor.com/ticket/8754): [Firefox] Fixed: Incorrect pasting of multiple nested lists in [Paste from Word](https://ckeditor.com/cke4/addon/pastefromword).
-* [#8983](https://dev.ckeditor.com/ticket/8983): Fixed: Alignment lost when [pasting from Word](https://ckeditor.com/cke4/addon/pastefromword) with [`config.enterMode`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_config.html#cfg-enterMode) set to [`CKEDITOR.ENTER_BR`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR.html#property-ENTER_BR).
-* [#9331](https://dev.ckeditor.com/ticket/9331): [IE] Fixed: [Pasting text from Word](https://ckeditor.com/cke4/addon/pastefromword) creates a simple Caesar cipher.
-* [#9422](https://dev.ckeditor.com/ticket/9422): Fixed: [Paste from Word](https://ckeditor.com/cke4/addon/pastefromword) leaves an unwanted `color:windowtext` style.
-* [#10011](https://dev.ckeditor.com/ticket/10011): [IE9-10] Fixed: [`config.pasteFromWordRemoveFontStyles`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_config.html#cfg-pasteFromWordRemoveFontStyles) is ignored under certain conditions.
-* [#10643](https://dev.ckeditor.com/ticket/10643): Fixed: Differences between using <kbd>Ctrl+V</kbd> and pasting from the [Paste from Word](https://ckeditor.com/cke4/addon/pastefromword) dialog.
-* [#10784](https://dev.ckeditor.com/ticket/10784): Fixed: Lines missing when [pasting from Word](https://ckeditor.com/cke4/addon/pastefromword).
-* [#11294](https://dev.ckeditor.com/ticket/11294): [IE10] Fixed: Font size is not preserved when [pasting from Word](https://ckeditor.com/cke4/addon/pastefromword).
-* [#11627](https://dev.ckeditor.com/ticket/11627): Fixed: Missing words when [pasting from Word](https://ckeditor.com/cke4/addon/pastefromword).
-* [#12784](https://dev.ckeditor.com/ticket/12784): Fixed: Bulleted list with custom bullets gets changed to a numbered list when [pasting from Word](https://ckeditor.com/cke4/addon/pastefromword).
-* [#13174](https://dev.ckeditor.com/ticket/13174): Fixed: Data loss after [pasting from Word](https://ckeditor.com/cke4/addon/pastefromword).
-* [#13828](https://dev.ckeditor.com/ticket/13828): Fixed: Widget classes should be added to the wrapper rather than the widget element.
-* [#13829](https://dev.ckeditor.com/ticket/13829): Fixed: No class in [Widget](https://ckeditor.com/cke4/addon/widget) wrapper to identify the widget type.
-* [#13519](https://dev.ckeditor.com/ticket/13519): Server response received when uploading files should be more flexible.
-
-Other Changes:
-
-* Updated [SCAYT](https://ckeditor.com/cke4/addon/scayt) (Spell Check As You Type) and [WebSpellChecker](https://ckeditor.com/cke4/addon/wsc) plugins:
- 	* Support for the new default Moono-Lisa skin.
- 	* [#121](https://github.com/WebSpellChecker/ckeditor-plugin-scayt/issues/121): Fixed: [Basic Styles](https://ckeditor.com/cke4/addon/basicstyles) do not work when SCAYT is enabled.
- 	* [#125](https://github.com/WebSpellChecker/ckeditor-plugin-scayt/issues/125): Fixed: Inline styles are not continued when writing multiple lines of styled text with SCAYT enabled.
- 	* [#127](https://github.com/WebSpellChecker/ckeditor-plugin-scayt/issues/127): Fixed: Uncaught TypeError after enabling SCAYT in the CKEditor `<div>` element.
- 	* [#128](https://github.com/WebSpellChecker/ckeditor-plugin-scayt/issues/128): Fixed: Error thrown after enabling SCAYT caused by conflicts with RequireJS.
-
-## CKEditor 4.5.11
-
-**Security Updates:**
-
-* [Severity: minor] Fixed the `target="_blank"` vulnerability reported by James Gaskell.
-
-	Issue summary: If a victim had access to a spoofed version of ckeditor.com via HTTP (e.g. due to DNS spoofing, using a hacked public network or mailicious hotspot), then when using a link to the ckeditor.com website it was possible for the attacker to change the current URL of the opening page, even if the opening page was protected with SSL.
-
-  An upgrade is recommended.
-
-New Features:
-
-* [#14747](https://dev.ckeditor.com/ticket/14747): The [Enhanced Image](https://ckeditor.com/cke4/addon/image2) caption now supports the link `target` attribute.
-* [#7154](https://dev.ckeditor.com/ticket/7154): Added support for the "Display Text" field to the [Link](https://ckeditor.com/cke4/addon/link) dialog. Thanks to [Ryan Guill](https://github.com/ryanguill)!
-
-Fixed Issues:
-
-* [#13362](https://dev.ckeditor.com/ticket/13362): [Blink, WebKit] Fixed: Active widget element is not cached when it is losing focus and it is inside an editable element.
-* [#13755](https://dev.ckeditor.com/ticket/13755): [Edge] Fixed: Pasting images does not work.
-* [#13548](https://dev.ckeditor.com/ticket/13548): [IE] Fixed: Clicking the [elements path](https://ckeditor.com/cke4/addon/elementspath) disables Cut and Copy icons.
-* [#13812](https://dev.ckeditor.com/ticket/13812): Fixed: When aborting file upload the placeholder for image is left.
-* [#14659](https://dev.ckeditor.com/ticket/14659): [Blink] Fixed: Content scrolled to the top after closing the dialog in a [`<div>`-based editor](https://ckeditor.com/cke4/addon/divarea).
-* [#14825](https://dev.ckeditor.com/ticket/14825): [Edge] Fixed: Focusing the editor causes unwanted scrolling due to dropped support for the `setActive()` method.
-
-## CKEditor 4.5.10
-
-Fixed Issues:
-
-* [#10750](https://dev.ckeditor.com/ticket/10750): Fixed: The editor does not escape the `font-style` family property correctly, removing quotes and whitespace from font names.
-* [#14413](https://dev.ckeditor.com/ticket/14413): Fixed: The [Auto Grow](https://ckeditor.com/cke4/addon/autogrow) plugin with the [`config.autoGrow_onStartup`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_config.html#cfg-autoGrow_onStartup) option set to `true` does not work properly for an editor that is not visible.
-* [#14451](https://dev.ckeditor.com/ticket/14451): Fixed: Numeric element ID not escaped properly. Thanks to [Jakub Chalupa](https://github.com/chaluja7)!
-* [#14590](https://dev.ckeditor.com/ticket/14590): Fixed: Additional line break appearing after inline elements when switching modes. Thanks to [dpidcock](https://github.com/dpidcock)!
-* [#14539](https://dev.ckeditor.com/ticket/14539): Fixed: JAWS reads "selected Blank" instead of "selected <widget name>" when selecting a widget.
-* [#14701](https://dev.ckeditor.com/ticket/14701): Fixed: More precise labels for [Enhanced Image](https://ckeditor.com/cke4/addon/image2) and [Placeholder](https://ckeditor.com/cke4/addon/placeholder) widgets.
-* [#14667](https://dev.ckeditor.com/ticket/14667): [IE] Fixed: Removing background color from selected text removes background color from the whole paragraph.
-* [#14252](https://dev.ckeditor.com/ticket/14252): [IE] Fixed: Styles drop-down list does not always reflect the current style of the text line.
-* [#14275](https://dev.ckeditor.com/ticket/14275): [IE9+] Fixed: `onerror` and `onload` events are not used in browsers it could have been used when loading scripts dynamically.
-
-## CKEditor 4.5.9
-
-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/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.
-* [#14602](https://dev.ckeditor.com/ticket/14602): Fixed: The [`dom.element.removeAttribute()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_dom_element.html#method-removeAttribute) method does not remove all attributes if no parameter is given.
-* [#8679](https://dev.ckeditor.com/ticket/8679): Fixed: Better focus indication and ability to style the selected color in the [color picker dialog](https://ckeditor.com/cke4/addon/colordialog).
-* [#11697](https://dev.ckeditor.com/ticket/11697): Fixed: Content is replaced ignoring the letter case setting in the [Find and Replace](https://ckeditor.com/cke4/addon/find) dialog window.
-* [#13886](https://dev.ckeditor.com/ticket/13886): Fixed: Invalid handling of the [`CKEDITOR.style`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR.style.html) instance with the `styles` property by [`CKEDITOR.filter`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR.filter.html).
-* [#14535](https://dev.ckeditor.com/ticket/14535): Fixed: CSS syntax corrections. Thanks to [mdjdenormandie](https://github.com/mdjdenormandie)!
-
-## CKEditor 4.5.8
-
-New Features:
-
-* [#12440](https://dev.ckeditor.com/ticket/12440): Added the [`config.colorButton_enableAutomatic`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_config.html#cfg-colorButton_enableAutomatic) option to allow hiding the "Automatic" option in the [color picker](https://ckeditor.com/cke4/addon/colorbutton).
-
-Fixed Issues:
-
-* [#10448](https://dev.ckeditor.com/ticket/10448): Fixed: Lack of scrollbar in the [right-to-left text direction](https://ckeditor.com/cke4/addon/bidi).
-* [#12707](https://dev.ckeditor.com/ticket/12707): Fixed: The order of table elements does not comply with the HTML specification.
-* [#13756](https://dev.ckeditor.com/ticket/13756): [Edge] Fixed: Context menus are cut-off.
-
-## CKEditor 4.5.7
-
-New Features:
-
-* [#14327](https://dev.ckeditor.com/ticket/14327): Added Swiss German localization. Thanks to [Miro Grenda](https://twitter.com/mirogrenda)!
-
-Fixed Issues:
-
-* [#13816](https://dev.ckeditor.com/ticket/13816): Introduced a new strategy for Filling Character handling to avoid changes in DOM. This fixes the following issues:
-	* [#12727](https://dev.ckeditor.com/ticket/12727): [Blink] `IndexSizeError` when using the [Div Editing Area](https://ckeditor.com/cke4/addon/divarea) and [Content Templates](https://ckeditor.com/cke4/addon/templates) plugins.
-	* [#13377](https://dev.ckeditor.com/ticket/13377): [Widget](https://ckeditor.com/cke4/addon/widget) plugin issue when typing in Korean.
-	* [#13389](https://dev.ckeditor.com/ticket/13389): [Blink] [`editor.getData()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_editor.html#method-getData) fails when the cursor is next to an `<hr>` tag.
-	* [#13513](https://dev.ckeditor.com/ticket/13513): [Blink, WebKit] [Div Editing Area](https://ckeditor.com/cke4/addon/divarea) and [`editor.getData()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_editor.html#method-getData) throw an error when an image is the only data in the editor.
-* [#13884](https://dev.ckeditor.com/ticket/13884): [Firefox] Fixed: Copying and pasting a table results in just the first cell being pasted.
-* [#14234](https://dev.ckeditor.com/ticket/14234): Fixed: URL input field is not marked as required in the [Media Embed](https://ckeditor.com/cke4/addon/embed) dialog.
-
-## CKEditor 4.5.6
-
-New Features:
-
-* Introduced the [`CKEDITOR.tools.getCookie()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_tools.html#method-getCookie) and [`CKEDITOR.tools.setCookie()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_tools.html#method-setCookie) methods for accessing cookies.
-* Introduced the [`CKEDITOR.tools.getCsrfToken()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_tools.html#method-getCsrfToken) method. The CSRF token is now automatically sent by the [File Browser](https://ckeditor.com/cke4/addon/filebrowser) and [File Tools](https://ckeditor.com/cke4/addon/filetools) plugins during file uploads. The server-side upload handlers may check it and use it to additionally secure the communication.
-
-Other Changes:
-
-* Updated [SCAYT](https://ckeditor.com/cke4/addon/scayt) (Spell Check As You Type):
-	- New features:
-		- CKEditor [Language](https://ckeditor.com/cke4/addon/language) plugin support.
-		- CKEditor [Placeholder](https://ckeditor.com/cke4/addon/placeholder) plugin support.
-		- [Drag&Drop](https://ckeditor.com/docs/ckeditor4/latest/examples/fileupload.html) support.
-		- **Experimental** [GRAYT](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_config.html#cfg-grayt_autoStartup) (Grammar As You Type) functionality.
-	- Fixed issues:
-		* [#98](https://github.com/WebSpellChecker/ckeditor-plugin-scayt/issues/98): SCAYT affects dialog double-click. Fixed in SCAYT core.
-		* [#102](https://github.com/WebSpellChecker/ckeditor-plugin-scayt/issues/102): SCAYT core performance enhancements.
-		* [#104](https://github.com/WebSpellChecker/ckeditor-plugin-scayt/issues/104): SCAYT's spans leak into the clipboard and after pasting.
-		* [#105](https://github.com/WebSpellChecker/ckeditor-plugin-scayt/issues/105): A JavaScript error fired in case of multiple instances of CKEditor on one page.
-		* [#107](https://github.com/WebSpellChecker/ckeditor-plugin-scayt/issues/107): SCAYT should not check non-editable parts of content.
-		* [#108](https://github.com/WebSpellChecker/ckeditor-plugin-scayt/issues/108): Latest SCAYT copies the ID of the editor element to the iframe.
-		* SCAYT stops working when CKEditor [Undo plugin](https://ckeditor.com/cke4/addon/undo) not enabled.
-		* Issue with pasting SCAYT markup in CKEditor.
-		* SCAYT stops working after pressing the *Cancel* button in the WSC dialog.
-
-## CKEditor 4.5.5
-
-Fixed Issues:
-
-* [#13887](https://dev.ckeditor.com/ticket/13887): Fixed: [Link](https://ckeditor.com/cke4/addon/link) plugin alters the `target` attribute value. Thanks to [SamZiemer](https://github.com/SamZiemer)!
-* [#12189](https://dev.ckeditor.com/ticket/12189): Fixed: The [Link](https://ckeditor.com/cke4/addon/link) plugin dialog does not display the subject of email links if the subject parameter is not lowercase.
-* [#9192](https://dev.ckeditor.com/ticket/9192): Fixed: An `undefined` string is appended to an email address added with the [Link](https://ckeditor.com/cke4/addon/link) plugin if subject and email body are empty and [`config.emailProtection`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_config.html#cfg-emailProtection) is set to `encode`.
-* [#13790](https://dev.ckeditor.com/ticket/13790): Fixed: It is not possible to destroy the editor `<iframe>` after the editor was detached from DOM. Thanks to [Stefan Rijnhart](https://github.com/StefanRijnhart)!
-* [#13803](https://dev.ckeditor.com/ticket/13803): Fixed: The editor cannot be destroyed before being fully initialized. Thanks to [Cyril Fluck](https://github.com/cyril-sf)!
-* [#13867](https://dev.ckeditor.com/ticket/13867): Fixed: CKEditor does not work when the `classList` polyfill is used.
-* [#13885](https://dev.ckeditor.com/ticket/13885): Fixed: [Enhanced Image](https://ckeditor.com/cke4/addon/image2) requires the [Link](https://ckeditor.com/cke4/addon/link) plugin to link an image.
-* [#13883](https://dev.ckeditor.com/ticket/13883): Fixed: Copying a table using the context menu strips off styles.
-* [#13872](https://dev.ckeditor.com/ticket/13872): Fixed: Cutting is possible in the [read-only](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_editor.html#property-readOnly) mode.
-* [#12848](https://dev.ckeditor.com/ticket/12848): [Blink] Fixed: Opening the [Find and Replace](https://ckeditor.com/cke4/addon/find) dialog window in the [read-only](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_editor.html#property-readOnly) mode throws an exception.
-* [#13879](https://dev.ckeditor.com/ticket/13879): Fixed: It is not possible to prevent the [`editor.drop`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_editor.html#event-drop) event.
-* [#13361](https://dev.ckeditor.com/ticket/13361): Fixed: Skin images fail when the site path includes parentheses because the `background-image` path needs single quotes around the URL value.
-* [#13771](https://dev.ckeditor.com/ticket/13771): Fixed: The `contents.css` style is not used if the [IFrame Editing Area](https://ckeditor.com/cke4/addon/wysiwygarea) plugin is missing.
-* [#13782](https://dev.ckeditor.com/ticket/13782): Fixed: Unclear log messages.
-* [#13919](https://dev.ckeditor.com/ticket/13919): [Edge] Fixed: Browser window crashes when accessing the `isContentEditable` property of an `<input>` DOM element.
-
-Other Changes:
-
-* [#13859](https://dev.ckeditor.com/ticket/13859): Test cases created with `bender.tools.createTestsForEditors` will also receive editor bot as a second parameter.
-
-## CKEditor 4.5.4
-
-New Features:
-
-* [#13632](https://dev.ckeditor.com/ticket/13632): Introduce error logging mechanism.
-* [#13730](https://dev.ckeditor.com/ticket/13730): Switch to the new error logging mechanism.
-
-Fixed Issues:
-
-* [#9856](https://dev.ckeditor.com/ticket/9856): Fixed: Cannot use the native context menu together with the [Div Editing Area](https://ckeditor.com/cke4/addon/divarea) plugin. Thanks to [Mark Wade](https://github.com/mark-wade)!
-* [#12733](https://dev.ckeditor.com/ticket/12733): [IE9+] Fixed: Radio button `onChange` does not work. Thanks to [Iliya Kostadinov](https://github.com/iliyakostadinov)!
-* [#13142](https://dev.ckeditor.com/ticket/13142): [Edge] Fixed: *Ctrl+A* and then *Backspace* result in an empty `<div>` element.
-* [#13599](https://dev.ckeditor.com/ticket/13599): Fixed: Cross-editor drag and drop of an inline widget results in error/artifacts.
-* [#13640](https://dev.ckeditor.com/ticket/13640): [IE] Fixed: Dropping a widget outside the `<body>` element is not handled correctly.
-* [#13533](https://dev.ckeditor.com/ticket/13533): Fixed: No progress during upload.
-* [#13680](https://dev.ckeditor.com/ticket/13680): Fixed: The parser should allow the `<h1-6>` element to be a child of the `<summary>` element.
-* [#11724](https://dev.ckeditor.com/ticket/11724): [Touch devices] Fixed: Drop-downs often hide right after opening them.
-* [#13690](https://dev.ckeditor.com/ticket/13690): Fixed: Copying content from IE to Chrome adds an extra paragraph.
-* [#13284](https://dev.ckeditor.com/ticket/13284): Fixed: Cannot drag and drop a widget if the text caret is placed just after the widget instance.
-* [#13516](https://dev.ckeditor.com/ticket/13516): Fixed: CKEditor removes empty HTML5 anchors without the `name` attribute.
-* [#13765](https://dev.ckeditor.com/ticket/13765): [Safari 9] Fixed: Problems with rendering samples.
-
-Other Changes:
-
-* [#11725](https://dev.ckeditor.com/ticket/11725): Marked [`CKEDITOR.env.mobile`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_env.html#property-mobile) as deprecated. The reason is that it is no longer clear what "mobile" means.
-* [#13737](https://dev.ckeditor.com/ticket/13737): Upgraded [Bender.js](https://github.com/benderjs/benderjs) to 0.4.1.
-
-## CKEditor 4.5.3
-
-New Features:
-
-* [#13501](https://dev.ckeditor.com/ticket/13501): Added the [`config.fileTools_defaultFileName`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_config.html#cfg-fileTools_defaultFileName) option to allow setting a default file name for paste uploads.
-* [#13603](https://dev.ckeditor.com/ticket/13603): Added support for uploading dropped BMP images.
-
-Fixed Issues:
-
-* [#13590](https://dev.ckeditor.com/ticket/13590): Fixed: Various issues related to the [Paste from Word](https://ckeditor.com/cke4/addon/pastefromword) feature. Fixes also:
-  * [#11215](https://dev.ckeditor.com/ticket/11215),
-  * [#8780](https://dev.ckeditor.com/ticket/8780),
-  * [#12762](https://dev.ckeditor.com/ticket/12762).
-* [#13386](https://dev.ckeditor.com/ticket/13386): [Edge] Fixed: Issues with selecting and editing images.
-* [#13568](https://dev.ckeditor.com/ticket/13568): Fixed: The [`editor.getSelectedHtml()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_editor.html#method-getSelectedHtml) method returns invalid results for entire content selection.
-* [#13453](https://dev.ckeditor.com/ticket/13453): Fixed: Drag&drop of entire editor content throws an error.
-* [#13465](https://dev.ckeditor.com/ticket/13465): Fixed: Error is thrown and the widget is lost on drag&drop if it is the only content of the editor.
-* [#13414](https://dev.ckeditor.com/ticket/13414): Fixed: Content auto paragraphing in a nested editable despite editor configuration.
-* [#13429](https://dev.ckeditor.com/ticket/13429): Fixed: Incorrect selection after content insertion by the [Auto Embed](https://ckeditor.com/cke4/addon/autoembed) plugin.
-* [#13388](https://dev.ckeditor.com/ticket/13388): Fixed: [Table Resize](https://ckeditor.com/cke4/addon/tableresize) integration with [Undo](https://ckeditor.com/cke4/addon/undo) is broken.
-
-Other Changes:
-
-* [#13637](https://dev.ckeditor.com/ticket/13637): Several icons were refactored.
-* Updated [Bender.js](https://github.com/benderjs/benderjs) to 0.3.0 and introduced the ability to run tests via HTTPs ([#13265](https://dev.ckeditor.com/ticket/13265)).
-
-## CKEditor 4.5.2
-
-Fixed Issues:
-
-* [#13609](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/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*.
-* [#13434](https://dev.ckeditor.com/ticket/13434): Fixed: Dialog state indicator broken in Right–To–Left environments.
-* [#13460](https://dev.ckeditor.com/ticket/13460): [IE8] Fixed: Copying inline widgets is broken when [Advanced Content Filter](https://ckeditor.com/docs/ckeditor4/latest/guide/dev_acf.html) is disabled.
-* [#13495](https://dev.ckeditor.com/ticket/13495): [Firefox, IE] Fixed: Text is not word-wrapped in the Paste dialog window.
-* [#13528](https://dev.ckeditor.com/ticket/13528): [Firefox@Windows] Fixed: Content copied from Microsoft Word and other external applications is pasted as a plain text. Removed the `CKEDITOR.plugins.clipboard.isHtmlInExternalDataTransfer` property as the check must be dynamic.
-* [#13583](https://dev.ckeditor.com/ticket/13583): Fixed: [`DataTransfer.getData()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_plugins_clipboard_dataTransfer.html#method-getData) should work consistently in all browsers and should not strip valuable content. Fixed pasting tables from Microsoft Excel on Chrome.
-* [#13468](https://dev.ckeditor.com/ticket/13468): [IE] Fixed: Binding drag&drop `dataTransfer` does not work if `text` data was set in the meantime.
-* [#13451](https://dev.ckeditor.com/ticket/13451): [IE8-9] Fixed: One drag&drop operation may affect following ones.
-* [#13184](https://dev.ckeditor.com/ticket/13184): Fixed: Web page reloaded after a drop on editor UI.
-* [#13129](https://dev.ckeditor.com/ticket/13129) Fixed: Block widget blurred after a drop followed by an undo.
-* [#13397](https://dev.ckeditor.com/ticket/13397): Fixed: Drag&drop of a widget inside its nested widget crashes the editor.
-* [#13385](https://dev.ckeditor.com/ticket/13385): Fixed: [`editor.getSnapshot()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_editor.html#method-getSnapshot) may return a non-string value.
-* [#13419](https://dev.ckeditor.com/ticket/13419): Fixed: The [Auto Link](https://ckeditor.com/cke4/addon/autolink) plugin does not encode double quotes in URLs.
-* [#13420](https://dev.ckeditor.com/ticket/13420): Fixed: The [Auto Embed](https://ckeditor.com/cke4/addon/autoembed) plugin ignores encoded characters in URL parameters.
-* [#13410](https://dev.ckeditor.com/ticket/13410): Fixed: Error thrown in the [Auto Embed](https://ckeditor.com/cke4/addon/autoembed) plugin when undoing right after pasting a link.
-* [#13566](https://dev.ckeditor.com/ticket/13566): Fixed: Suppressed notifications in the [Media Embed Base](https://ckeditor.com/cke4/addon/embedbase) plugin.
-* [#11616](https://dev.ckeditor.com/ticket/11616): [Chrome] Fixed: Resizing the editor while it is not displayed breaks the editable. Fixes also [#9160](https://dev.ckeditor.com/ticket/9160) and [#9715](https://dev.ckeditor.com/ticket/9715).
-* [#11376](https://dev.ckeditor.com/ticket/11376): [IE11] Fixed: Loss of text when pasting bulleted lists from Microsoft Word.
-* [#13143](https://dev.ckeditor.com/ticket/13143): [Edge] Fixed: Focus lost when opening the panel.
-* [#13387](https://dev.ckeditor.com/ticket/13387): [Edge] Fixed: "Permission denied" error thrown when loading the editor with developer tools open.
-* [#13574](https://dev.ckeditor.com/ticket/13574): [Edge] Fixed: "Permission denied" error thrown when opening editor dialog windows.
-* [#13441](https://dev.ckeditor.com/ticket/13441): [Edge] Fixed: The [Clipboard](https://ckeditor.com/cke4/addon/clipboard) plugin breaks the state of [Undo](https://ckeditor.com/cke4/addon/undo) commands after a paste.
-* [#13554](https://dev.ckeditor.com/ticket/13554): [Edge] Fixed: Paste dialog's iframe does not receive focus on show.
-* [#13440](https://dev.ckeditor.com/ticket/13440): [Edge] Fixed: Unable to paste a widget.
-
-Other Changes:
-
-* [#13421](https://dev.ckeditor.com/ticket/13421): UX improvements to notifications in the [Auto Embed](https://ckeditor.com/cke4/addon/autoembed) plugin.
-
-## CKEditor 4.5.1
-
-Fixed Issues:
-
-* [#13486](https://dev.ckeditor.com/ticket/13486): Fixed: The [Upload Image](https://ckeditor.com/cke4/addon/uploadimage) plugin should log an error, not throw an error when upload URL is not set.
-
-## CKEditor 4.5
-
-New Features:
-
-* [#13304](https://dev.ckeditor.com/ticket/13304): Added support for passing DOM elements to [`config.sharedSpaces`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_config.html#cfg-sharedSpaces). Thanks to [Undergrounder](https://github.com/Undergrounder)!
-* [#13215](https://dev.ckeditor.com/ticket/13215): Added ability to cancel fetching a resource by the Embed plugins.
-* [#13213](https://dev.ckeditor.com/ticket/13213): Added the [`dialog#setState()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_dialog.html#method-setState) method and used it in the [Embed](https://ckeditor.com/cke4/addon/embed) dialog to indicate that a resource is being loaded.
-* [#13337](https://dev.ckeditor.com/ticket/13337): Added the [`repository.onWidget()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_plugins_widget_repository.html#method-onWidget) method &mdash; a convenient way to listen to [widget](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR.plugins.widget.html) events through the [repository](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR.plugins.widget.repository.html).
-* [#13214](https://dev.ckeditor.com/ticket/13214): Added support for pasting links that convert into embeddable resources on the fly.
-
-Fixed Issues:
-
-* [#13334](https://dev.ckeditor.com/ticket/13334): Fixed: Error after nesting widgets and playing with undo/redo.
-* [#13118](https://dev.ckeditor.com/ticket/13118): Fixed: The [`editor.getSelectedHtml()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_editor.html#method-getSelectedHtml) method throws an error when called in the source mode.
-* [#13158](https://dev.ckeditor.com/ticket/13158): Fixed: Error after canceling a dialog when creating a widget.
-* [#13197](https://dev.ckeditor.com/ticket/13197): Fixed: Linked inline [Enhanced Image](https://ckeditor.com/cke4/addon/image2) alignment class is not transferred to the widget wrapper.
-* [#13199](https://dev.ckeditor.com/ticket/13199): Fixed: [Semantic Embed](https://ckeditor.com/cke4/addon/embedsemantic) does not support widget classes.
-* [#13003](https://dev.ckeditor.com/ticket/13003): Fixed: Anchors are uploaded when moving them by drag and drop.
-* [#13032](https://dev.ckeditor.com/ticket/13032): Fixed: When upload is done, notification update should be marked as important.
-* [#13300](https://dev.ckeditor.com/ticket/13300): Fixed: The `internalCommit` argument in the [Image](https://ckeditor.com/cke4/addon/image) dialog seems to be never used.
-* [#13036](https://dev.ckeditor.com/ticket/13036): Fixed: Notifications are moved 10px to the right.
-* [#13280](https://dev.ckeditor.com/ticket/13280): [IE8] Fixed: Undo after inline widget drag&drop throws an error.
-* [#13186](https://dev.ckeditor.com/ticket/13186): Fixed: Content dropped into a nested editable is not filtered by [Advanced Content Filter](https://ckeditor.com/docs/ckeditor4/latest/guide/dev_acf.html).
-* [#13140](https://dev.ckeditor.com/ticket/13140): Fixed: Error thrown when dropping a block widget right after itself.
-* [#13176](https://dev.ckeditor.com/ticket/13176): [IE8] Fixed: Errors on drag&drop of embed widgets.
-* [#13015](https://dev.ckeditor.com/ticket/13015): Fixed: Dropping an image file on [Enhanced Image](https://ckeditor.com/cke4/addon/image2) causes a page reload.
-* [#13080](https://dev.ckeditor.com/ticket/13080): Fixed: Ugly notification shown when the response contains HTML content.
-* [#13011](https://dev.ckeditor.com/ticket/13011): [IE8] Fixed: Anchors are duplicated on drag&drop in specific locations.
-* [#13105](https://dev.ckeditor.com/ticket/13105): Fixed: Various issues related to [`CKEDITOR.tools.htmlEncode()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_tools.html#method-htmlEncode) and [`CKEDITOR.tools.htmlDecode()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_tools.html#method-htmlDecode) methods.
-* [#11976](https://dev.ckeditor.com/ticket/11976): [Chrome] Fixed: Copy&paste and drag&drop lists from Microsoft Word.
-* [#13128](https://dev.ckeditor.com/ticket/13128): Fixed: Various issues with cloning element IDs:
-  * Fixed the default behavior of [`range.cloneContents()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_dom_range.html#method-cloneContents) and [`range.extractContents()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_dom_range.html#method-extractContents) methods which now clone IDs similarly to their native counterparts.
-  * Added `cloneId` arguments to the above methods, [`range.splitBlock()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_dom_range.html#method-splitBlock) and [`element.breakParent()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_dom_element.html#method-breakParent). Mind the default values and special behavior in the `extractContents()` method!
-  * Fixed issues where IDs were lost on copy&paste and drag&drop.
-* Toolbar configurators:
-  * [#13185](https://dev.ckeditor.com/ticket/13185): Fixed: Wrong position of the suggestion box if there is not enough space below the caret.
-  * [#13138](https://dev.ckeditor.com/ticket/13138): Fixed: The "Toggle empty elements" button label is unclear.
-  * [#13136](https://dev.ckeditor.com/ticket/13136): Fixed: Autocompleter is far too intrusive.
-  * [#13133](https://dev.ckeditor.com/ticket/13133): Fixed: Tab leaves the editor.
-  * [#13173](https://dev.ckeditor.com/ticket/13173): Fixed: [`config.removeButtons`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_config.html#cfg-removeButtons) is ignored by the advanced toolbar configurator.
-
-Other Changes:
-
-* [#13119](https://dev.ckeditor.com/ticket/13119): Improved compatibility of editor skins ([Moono](https://ckeditor.com/cke4/addon/moono) and [Kama](https://ckeditor.com/cke4/addon/kama)) with external web page style sheets.
-* Toolbar configurators:
-  * [#13147](https://dev.ckeditor.com/ticket/13147): Added buttons to the sticky toolbar.
-  * [#13207](https://dev.ckeditor.com/ticket/13207): Used modal window to display toolbar configurator help.
-* [#13316](https://dev.ckeditor.com/ticket/13316): Made [`CKEDITOR.env.isCompatible`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_env.html#property-isCompatible) a blacklist rather than a whitelist. More about the change in the [Browser Compatibility](https://ckeditor.com/docs/ckeditor4/latest/guide/dev_browsers.html) guide.
-* [#13398](https://dev.ckeditor.com/ticket/13398): Renamed `CKEDITOR.fileTools.UploadsRepository` to [`CKEDITOR.fileTools.UploadRepository`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR.fileTools.uploadRepository.html) and changed all related properties.
-* [#13279](https://dev.ckeditor.com/ticket/13279): Reviewed CSS vendor prefixes.
-* [#13454](https://dev.ckeditor.com/ticket/13454): Removed unused `lang.image.alertUrl` token from the [Image](https://ckeditor.com/cke4/addon/image) plugin.
-
-## CKEditor 4.5 Beta
-
-New Features:
-
-* Clipboard (copy&paste, drag&drop) and file uploading features and improvements ([#11437](https://dev.ckeditor.com/ticket/11437)).
-
-  * Major features:
-    * Support for dropping and pasting files into the editor was introduced. Through a set of new facades for native APIs it is now possible to easily intercept and process inserted files.
-    * [File upload tools](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR.fileTools.html) were introduced in order to simplify controlling the loading, uploading and handling server response, properly handle [new upload configuration](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_config.html#cfg-uploadUrl) options, etc.
-    * [Upload Image](https://ckeditor.com/cke4/addon/uploadimage) widget was introduced to upload dropped images. A base class for the [upload widget](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR.fileTools.uploadWidgetDefinition.html) was exposed, too, to make it simple to create new types of upload widgets which can handle any type of dropped file, show the upload progress and update the content when the process is done. It also handles editing and undo/redo operations when a file is being uploaded and integrates with the [notification aggregator](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR.plugins.notificationAggregator.html) to show progress and success or error.
-    * All drag and drop operations were integrated with the editor. All dropped content is passed through the [`editor#paste`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_editor.html#event-paste) event and a set of new editor events was introduced &mdash; [`dragstart`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_editor.html#event-dragstart), [`drop`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_editor.html#event-drop), [`dragend`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_editor.html#event-dragend).
-    * The [Data Transfer](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR.plugins.clipboard.dataTransfer.html) facade was introduced to unify access to data in various types and files. [Data Transfer](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR.plugins.clipboard.dataTransfer.html) is now always available in the [`editor#paste`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_editor.html#event-paste) event.
-    * Switched from the pastebin to using the native clipboard access whenever possible. This solved many issues related to pastebin such as unnecessary scrolling or data loss. Additionally, on copy and cut from the editor the clipboard data is set. Therefore, on paste the editor has access to clean data, undisturbed by the browsers.
-    * Drag and drop of inline and block widgets was integrated with the standard clipboard APIs. By listening to drag events you will thus be notified about widgets, too. This opens a possibility to filter pasted and dropped widgets.
-    * The [`editor#paste`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_editor.html#event-paste) event can have the `range` parameter so it is possible to change the paste position in the listener or paste in the not selectable position. Also the [`editor.insertHtml()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_editor.html#method-insertHtml) method now accepts `range` as an additional parameter.
-    * [#11621](https://dev.ckeditor.com/ticket/11621): A configurable [paste filter](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_config.html#cfg-pasteFilter) was introduced. The filter is by default turned to `'semantic-content'` on Webkit and Blink for all pasted content coming from external sources because of the low quality of HTML that these engines put into the clipboard. Internal and cross-editor paste is safe due to the change explained in the previous point.
-
-  * Other changes and related fixes:
-    * [#12095](https://dev.ckeditor.com/ticket/12095): On drag and copy of widgets [the same method](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_editor.html#method-getSelectedHtml) is used to get selected HTML as in the normal case. Thanks to that styles applied to inline widgets are not lost.
-    * [#11219](https://dev.ckeditor.com/ticket/11219): Fixed: Dragging a [captioned image](https://ckeditor.com/cke4/addon/image2) does not fire the [`editor#paste`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_editor.html#event-paste) event.
-    * [#9554](https://dev.ckeditor.com/ticket/9554): [Webkit Mac] Fixed: Editor scrolls on paste.
-    * [#9898](https://dev.ckeditor.com/ticket/9898): [Webkit&Divarea] Fixed: Pasting causes undesirable scrolling.
-    * [#11993](https://dev.ckeditor.com/ticket/11993): [Chrome] Fixed: Pasting content scrolls the document.
-    * [#12613](https://dev.ckeditor.com/ticket/12613): Show the user that they can not drop on editor UI (toolbar, bottom bar).
-    * [#12851](https://dev.ckeditor.com/ticket/12851): [Blink/Webkit] Fixed: Formatting disappears when pasting content into cells.
-    * [#12914](https://dev.ckeditor.com/ticket/12914): Fixed: Copy/Paste of table broken in `div`-based editor.
-
-  * Browser support.<br>Browser support for related features varies significantly (see http://caniuse.com/clipboard).
-    * File APIs needed to operate and file upload is not supported in Internet Explorer 9 and below.
-    * Only Chrome and Safari on Mac OS support setting custom data items in the clipboard, so currently it is possible to recognize the origin of the copied content in these browsers only. All drag and drop operations can be identified thanks to the new Data Transfer facade.
-    * No Internet Explorer browser supports the standard clipboard API which results in small glitches like where only plain text can be dropped from outside the editor. Thanks to the new Data Transfer facade, internal and cross-editor drag and drop supports the full range of data.
-    * Direct access to clipboard could only be implemented in Chrome, Safari on Mac OS, Opera and Firefox. In other browsers the pastebin must still be used.
-
-* [#12875](https://dev.ckeditor.com/ticket/12875): Samples and toolbar configuration tools.
-  * The old set of samples shipped with every CKEditor package was replaced with a shiny new single-page sample. This change concluded a long term plan which started from introducing the [CKEditor SDK](https://ckeditor.com/docs/ckeditor4/latest/examples/index.html) and [CKEditor Features Overview](https://ckeditor.com/docs/ckeditor4/latest/features.html) section in the documentation which essentially redefined the old samples.
-  * Toolbar configurators with live previews were introduced. They will be shipped with every CKEditor package and are meant to help in configuring toolbar layouts.
-
-* [#10925](https://dev.ckeditor.com/ticket/10925): The [Media Embed](https://ckeditor.com/cke4/addon/embed) and [Semantic Media Embed](https://ckeditor.com/cke4/addon/embedsemantic) plugins were introduced. Read more about the new features in the [Embedding Content](https://ckeditor.com/docs/ckeditor4/latest/guide/dev_media_embed.html) article.
-* [#10931](https://dev.ckeditor.com/ticket/10931): Added support for nesting widgets. It is now possible to insert one widget into another widget's nested editable. Note that unless nested editable's [allowed content](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_plugins_widget_nestedEditable_definition.html#property-allowedContent) is defined precisely, starting from CKEditor 4.5 some widget buttons may become enabled. This feature is not supported in IE8. Included issues:
-  * [#12018](https://dev.ckeditor.com/ticket/12018): Fixed and reviewed: Nested widgets garbage collection.
-  * [#12024](https://dev.ckeditor.com/ticket/12024): [Firefox] Fixed: Outline is extended to the left by unpositioned drag handlers.
-  * [#12006](https://dev.ckeditor.com/ticket/12006): Fixed: Drag and drop of nested block widgets.
-  * [#12008](https://dev.ckeditor.com/ticket/12008): Fixed various cases of inserting a single non-editable element using the [`editor.insertHtml()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_editor.html#method-insertHtml) method. Fixes pasting a widget with a nested editable inside another widget's nested editable.
-
-* Notification system:
-  * [#11580](https://dev.ckeditor.com/ticket/11580): Introduced the [notification system](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR.plugins.notification.html).
-  * [#12810](https://dev.ckeditor.com/ticket/12810): Introduced a [notification aggregator](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR.plugins.notificationAggregator.html) for the [notification system](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR.plugins.notification.html) which simplifies displaying progress of many concurrent tasks.
-* [#11636](https://dev.ckeditor.com/ticket/11636): Introduced new, UX-focused, methods for getting selected HTML and deleting it &mdash; [`editor.getSelectedHtml()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_editor.html#method-getSelectedHtml) and [`editor.extractSelectedHtml()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_editor.html#method-extractSelectedHtml).
-* [#12416](https://dev.ckeditor.com/ticket/12416): Added the [`widget.definition.upcastPriority`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_plugins_widget_definition.html#property-upcastPriority) property which gives more control over widget upcasting order to the widget author.
-* [#12036](https://dev.ckeditor.com/ticket/12036): Initialize the editor in [read-only](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_editor.html#property-readOnly) mode when the `<textarea>` element has a `readonly` attribute.
-* [#11905](https://dev.ckeditor.com/ticket/11905): The [`resize` event](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_editor.html#event-resize) passes the current dimensions in its data.
-* [#12126](https://dev.ckeditor.com/ticket/12126): Introduced [`config.image_prefillDimensions`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_config.html#cfg-image_prefillDimensions) and [`config.image2_prefillDimensions`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_config.html#cfg-image2_prefillDimensions) to make pre-filling `width` and `height` configurable for the [Enhanced Image](https://ckeditor.com/cke4/addon/image2).
-* [#12746](https://dev.ckeditor.com/ticket/12746): Added a new configuration option to hide the [Enhanced Image](https://ckeditor.com/cke4/addon/image2) resizer.
-* [#12150](https://dev.ckeditor.com/ticket/12150): Exposed the [`getNestedEditable()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_plugins_widget.html#static-method-getNestedEditable) and `is*` [widget helper](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR.plugins.widget.html) functions (see the static methods).
-* [#12448](https://dev.ckeditor.com/ticket/12448): Introduced the [`editable.insertHtmlIntoRange`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_editable.html#method-insertHtmlIntoRange) method.
-* [#12143](https://dev.ckeditor.com/ticket/12143): Added the [`config.floatSpacePreferRight`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_config.html#cfg-floatSpacePreferRight) configuration option that switches the alignment of the floating toolbar. Thanks to [InvisibleBacon](http://github.com/InvisibleBacon)!
-* [#10986](https://dev.ckeditor.com/ticket/10986): Added support for changing dialog input and textarea text directions by using the *Shift+Alt+Home/End* keystrokes. The direction is stored in the value of the input by prepending the [`\u202A`](http://unicode.org/cldr/utility/character.jsp?a=202A) or [`\u202B`](http://unicode.org/cldr/utility/character.jsp?a=202B) marker to it. Read more in the [documentation](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_dialog_definition_textInput.html#property-bidi). Thanks to [edithkk](https://github.com/edithkk)!
-* [#12770](https://dev.ckeditor.com/ticket/12770): Added support for passing [widget](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR.plugins.widget.html)'s startup data as a widget command's argument. Thanks to [Rebrov Boris](https://github.com/zipp3r) and [Tieme van Veen](https://github.com/tiemevanveen)!
-* [#11583](https://dev.ckeditor.com/ticket/11583): Added support for the HTML5 `required` attribute in various form elements. Thanks to [Steven Busse](https://github.com/sbusse)!
-
-Changes:
-
-* [#12858](https://dev.ckeditor.com/ticket/12858): Basic [Spartan](http://blogs.windows.com/bloggingwindows/2015/03/30/introducing-project-spartan-the-new-browser-built-for-windows-10/) browser compatibility. Full compatibility will be introduced later, because at the moment Spartan is still too unstable to be used for tests and we see many changes from version to version.
-* [#12948](https://dev.ckeditor.com/ticket/12948): The [`config.mathJaxLibrary`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_config.html#cfg-mathJaxLib) option does not default to the MathJax CDN any more. It needs to be configured to enable the [Mathematical Formulas](https://ckeditor.com/cke4/addon/mathjax) plugin now.
-* [#13069](https://dev.ckeditor.com/ticket/13069): Fixed inconsistencies between [`editable.insertHtml()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_editable.html#method-insertElement) and [`editable.insertElement()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_editable.html#method-insertElement) when the `range` parameter is used. Now, the `editor.insertElement()` method works on a higher level, which means that it saves undo snapshots and sets the selection after insertion. Use the [`editable.insertElementIntoRange()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_editable.html#method-insertElementIntoRange) method directly for the pre 4.5 behavior of `editable.insertElement()`.
-* [#12870](https://dev.ckeditor.com/ticket/12870): Use [`editor.showNotification()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_editor.html#method-showNotification) instead of `alert()` directly whenever possible. When the [Notification plugin](https://ckeditor.com/cke4/addon/notification) is loaded, the notification system is used automatically. Otherwise, the native `alert()` is displayed.
-* [#8024](https://dev.ckeditor.com/ticket/8024): Swapped behavior of the Split Cell Vertically and Horizontally features of the [Table Tools](https://ckeditor.com/cke4/addon/tabletools) plugin to be more intuitive. Thanks to [kevinisagit](https://github.com/kevinisagit)!
-* [#10903](https://dev.ckeditor.com/ticket/10903): Performance improvements for the [`dom.element.addClass()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_dom_element.html#method-addClass), [`dom.element.removeClass()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_dom_element.html#method-removeClass) and [`dom.element.hasClass()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_dom_element.html#method-hasClass) methods. Note: The previous implementation allowed passing multiple classes to `addClass()` although it was only a side effect of that implementation. The new implementation does not allow this.
-* [#11856](https://dev.ckeditor.com/ticket/11856): The jQuery adapter throws a meaningful error if CKEditor or jQuery are not loaded.
-
-Fixed issues:
-
-* [#11586](https://dev.ckeditor.com/ticket/11586): Fixed: [`range.cloneContents()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_dom_range.html#method-cloneContents) should not change the DOM in order not to affect selection.
-* [#12148](https://dev.ckeditor.com/ticket/12148): Fixed: [`dom.element.getChild()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_dom_element.html#method-getChild) should not modify a passed array.
-* [#12503](https://dev.ckeditor.com/ticket/12503): [Blink/Webkit] Fixed: Incorrect result of Select All and *Backspace* or *Delete*.
-* [#13001](https://dev.ckeditor.com/ticket/13001): [Firefox] Fixed: The `<br />` filler is placed in the wrong position by the [`range.fixBlock()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_dom_range.html#method-fixBlock) method due to quirky Firefox behavior.
-* [#13101](https://dev.ckeditor.com/ticket/13101): [IE8] Fixed: Colons are prepended to HTML5 element names when cloning them.
-
-## CKEditor 4.4.8
-
-**Security Updates:**
-
-* Fixed XSS vulnerability in the HTML parser reported by [Dheeraj Joshi](https://twitter.com/dheerajhere) and [Prem Kumar](https://twitter.com/iAmPr3m).
-
-	Issue summary: It was possible to execute XSS inside CKEditor after persuading the victim to: (i) switch CKEditor to source mode, then (ii) paste a specially crafted HTML code, prepared by the attacker, into the opened CKEditor source area, and (iii) switch back to WYSIWYG mode.
-
-**An upgrade is highly recommended!**
-
-Fixed Issues:
-
-* [#12899](https://dev.ckeditor.com/ticket/12899): Fixed: Corrected wrong tag ending for horizontal box definition in the [Dialog User Interface](https://ckeditor.com/cke4/addon/dialogui) plugin. Thanks to [mizafish](https://github.com/mizafish)!
-* [#13254](https://dev.ckeditor.com/ticket/13254): Fixed: Cannot outdent block after indent when using the [Div Editing Area](https://ckeditor.com/cke4/addon/divarea) plugin. Thanks to [Jonathan Cottrill](https://github.com/jcttrll)!
-* [#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/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)!
-* [#12885](https://dev.ckeditor.com/ticket/12885): Added missing [`editor.getData()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_editor.html#method-getData) parameter documentation.
-* [#11982](https://dev.ckeditor.com/ticket/11982): Fixed: Bullet added in a wrong position after the *Enter* key is pressed in a nested list.
-* [#13027](https://dev.ckeditor.com/ticket/13027): Fixed: Keyboard navigation in dialog windows with multiple tabs not following IBM CI 162 instructions or [ARIA Authoring Practices](http://www.w3.org/TR/2013/WD-wai-aria-practices-20130307/#tabpanel).
-* [#12256](https://dev.ckeditor.com/ticket/12256): Fixed: Basic styles classes are lost when pasting from Microsoft Word if [basic styles](https://ckeditor.com/cke4/addon/basicstyles) were configured to use classes.
-* [#12729](https://dev.ckeditor.com/ticket/12729): Fixed: Incorrect structure created when merging a block into a list item on *Backspace* and *Delete*.
-* [#13031](https://dev.ckeditor.com/ticket/13031): [Firefox] Fixed: No more line breaks in source view since Firefox 36.
-* [#13131](https://dev.ckeditor.com/ticket/13131): Fixed: The [Code Snippet](https://ckeditor.com/cke4/addon/codesnippet) plugin cannot be used without the [IFrame Editing Area](https://ckeditor.com/cke4/addon/wysiwygarea) plugin.
-* [#9086](https://dev.ckeditor.com/ticket/9086): Fixed: Invalid ARIA property used on paste area `<iframe>`.
-* [#13164](https://dev.ckeditor.com/ticket/13164): Fixed: Error when inserting a hidden field.
-* [#13155](https://dev.ckeditor.com/ticket/13155): Fixed: Incorrect [Line Utilities](https://ckeditor.com/cke4/addon/lineutils) positioning when `<body>` has a margin.
-* [#13351](https://dev.ckeditor.com/ticket/13351): Fixed: Link lost when editing a linked image with the Link tab disabled. This also fixed a bug when inserting an image into a fully selected link would throw an error ([#12847](https://dev.ckeditor.com/ticket/12847)).
-* [#13344](https://dev.ckeditor.com/ticket/13344): [WebKit/Blink] Fixed: It is possible to remove or change editor content in [read-only mode](https://ckeditor.com/docs/ckeditor4/latest/guide/dev_readonly.html).
-
-Other Changes:
-
-* [#12844](https://dev.ckeditor.com/ticket/12844) and [#13103](https://dev.ckeditor.com/ticket/13103): Upgraded the [testing environment](https://ckeditor.com/docs/ckeditor4/latest/guide/dev_tests.html) to [Bender.js](https://github.com/benderjs/benderjs) `0.2.3`.
-* [#12930](https://dev.ckeditor.com/ticket/12930): Because of licensing issues, `truncated-mathjax/` is now removed from the `tests/` directory. Now `bender.config.mathJaxLibPath` must be configured manually in order to run [Mathematical Formulas](https://ckeditor.com/cke4/addon/mathjax) plugin tests.
-* [#13266](https://dev.ckeditor.com/ticket/13266): Added more shades of gray in the [Color Dialog](https://ckeditor.com/cke4/addon/colordialog) window. Thanks to [mizafish](https://github.com/mizafish)!
-
-
-## CKEditor 4.4.7
-
-Fixed Issues:
-
-* [#12825](https://dev.ckeditor.com/ticket/12825): Fixed: Preventing the [Table Resize](https://ckeditor.com/cke4/addon/tableresize) plugin from operating on elements outside the editor. Thanks to [Paul Martin](https://github.com/Paul-Martin)!
-* [#12157](https://dev.ckeditor.com/ticket/12157): Fixed: Lost text formatting on pressing *Tab* when the [`config.tabSpaces`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_config.html#cfg-tabSpaces) configuration option value was greater than zero.
-* [#12777](https://dev.ckeditor.com/ticket/12777): Fixed: The `table-layout` CSS property should be reset by skins. Thanks to [vita10gy](https://github.com/vita10gy)!
-* [#12812](https://dev.ckeditor.com/ticket/12812): Fixed: An uncaught security exception is thrown when [Line Utilities](https://ckeditor.com/cke4/addon/lineutils) are used in an inline editor loaded in a cross-domain `iframe`. Thanks to [Vitaliy Zurian](https://github.com/thecatontheflat)!
-* [#12735](https://dev.ckeditor.com/ticket/12735): Fixed: [`config.fillEmptyBlocks`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_config.html#cfg-fillEmptyBlocks) should only apply when outputting data.
-* [#10032](https://dev.ckeditor.com/ticket/10032): Fixed: [Paste from Word](https://ckeditor.com/cke4/addon/pastefromword) filter is executed for every paste after using the button.
-* [#12597](https://dev.ckeditor.com/ticket/12597): [Blink/WebKit] Fixed: Multi-byte Japanese characters entry not working properly after *Shift+Enter*.
-* [#12387](https://dev.ckeditor.com/ticket/12387): Fixed: An error is thrown if a skin does not have the [`chameleon`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_skin.html#method-chameleon) property defined and [`config.uiColor`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_config.html#cfg-uiColor) is defined.
-* [#12747](https://dev.ckeditor.com/ticket/12747): [IE8-10] Fixed: Opening a drop-down for a specific selection when the editor is maximized results in incorrect drop-down panel position.
-* [#12850](https://dev.ckeditor.com/ticket/12850): [IEQM] Fixed: An error is thrown after focusing the editor.
-
-## CKEditor 4.4.6
-
-**Security Updates:**
-
-* Fixed XSS vulnerability in the HTML parser reported by [Maco Cortes](https://www.facebook.com/Maaacoooo).
-
-	Issue summary: It was possible to execute XSS inside CKEditor after persuading the victim to: (i) switch CKEditor to source mode, then (ii) paste a specially crafted HTML code, prepared by the attacker, into the opened CKEditor source area, and (iii) switch back to WYSIWYG mode.
-
-**An upgrade is highly recommended!**
-
-New Features:
-
-* [#12501](https://dev.ckeditor.com/ticket/12501): Allowed dashes in element names in the [string format of allowed content rules](https://ckeditor.com/docs/ckeditor4/latest/guide/dev_allowed_content_rules.html#string-format).
-* [#12550](https://dev.ckeditor.com/ticket/12550): Added the `<main>` element to the [`CKEDITOR.dtd`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR.dtd.html).
-
-Fixed Issues:
-
-* [#12506](https://dev.ckeditor.com/ticket/12506): [Safari] Fixed: Cannot paste into inline editor if the page has `user-select: none` style. Thanks to [shaohua](https://github.com/shaohua)!
-* [#12683](https://dev.ckeditor.com/ticket/12683): Fixed: [Filter](https://ckeditor.com/docs/ckeditor4/latest/guide/dev_acf.html) fails to remove custom tags. Thanks to [timselier](https://github.com/timselier)!
-* [#12489](https://dev.ckeditor.com/ticket/12489) and [#12491](https://dev.ckeditor.com/ticket/12491): Fixed: Various issues related to restoring the selection after performing operations on filler character. See the [fixed cases](https://dev.ckeditor.com/ticket/12491#comment:4).
-* [#12621](https://dev.ckeditor.com/ticket/12621): Fixed: Cannot remove inline styles (bold, italic, etc.) in empty lines.
-* [#12630](https://dev.ckeditor.com/ticket/12630): [Chrome] Fixed: Selection is placed outside the paragraph when the [New Page](https://ckeditor.com/cke4/addon/newpage) button is clicked. This patch significantly simplified the way how the initial selection (a selection after the content of the editable is overwritten) is being fixed. That might have fixed many related scenarios in all browsers.
-* [#11647](https://dev.ckeditor.com/ticket/11647): Fixed: The [`editor.blur`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_editor.html#event-blur) event is not fired on first blur after initializing the inline editor on an already focused element.
-* [#12601](https://dev.ckeditor.com/ticket/12601): Fixed: [Strikethrough](https://ckeditor.com/cke4/addon/basicstyles) button tooltip spelling.
-* [#12546](https://dev.ckeditor.com/ticket/12546): Fixed: The Preview tab in the [Document Properties](https://ckeditor.com/cke4/addon/docprops) dialog window is always disabled.
-* [#12300](https://dev.ckeditor.com/ticket/12300): Fixed: The [`editor.change`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_editor.html#event-change) event fired on first navigation key press after typing.
-* [#12141](https://dev.ckeditor.com/ticket/12141): Fixed: List items are lost when indenting a list item with content wrapped with a block element.
-* [#12515](https://dev.ckeditor.com/ticket/12515): Fixed: Cursor is in the wrong position when undoing after adding an image and typing some text.
-* [#12484](https://dev.ckeditor.com/ticket/12484): [Blink/WebKit] Fixed: DOM is changed outside the editor area in a certain case.
-* [#12688](https://dev.ckeditor.com/ticket/12688): Improved the tests of the [styles system](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR.style.html) and fixed two minor issues.
-* [#12403](https://dev.ckeditor.com/ticket/12403): Fixed: Changing the [font](https://ckeditor.com/cke4/addon/font) style should not lead to nesting it in the previous style element.
-* [#12609](https://dev.ckeditor.com/ticket/12609): Fixed: Incorrect `config.magicline_putEverywhere` name used for a [Magic Line](https://ckeditor.com/cke4/addon/magicline) all-encompassing [`config.magicline_everywhere`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_config.html#cfg-magicline_everywhere) configuration option.
-
-
-## CKEditor 4.4.5
-
-New Features:
-
-* [#12279](https://dev.ckeditor.com/ticket/12279): Added a possibility to pass a custom evaluator to [`node.getAscendant()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_dom_node.html#method-getAscendant).
-
-Fixed Issues:
-
-* [#12423](https://dev.ckeditor.com/ticket/12423): [Safari7.1+] Fixed: *Enter* key moved cursor to a strange position.
-* [#12381](https://dev.ckeditor.com/ticket/12381): [iOS] Fixed: Selection issue. Thanks to [Remiremi](https://github.com/Remiremi)!
-* [#10804](https://dev.ckeditor.com/ticket/10804): Fixed: `CKEDITOR_GETURL` is not used with some plugins where it should be used. Thanks to [Thomas Andraschko](https://github.com/tandraschko)!
-* [#9137](https://dev.ckeditor.com/ticket/9137): Fixed: The `<base>` tag is not created when `<head>` has an attribute. Thanks to [naoki.fujikawa](https://github.com/naoki-fujikawa)!
-* [#12377](https://dev.ckeditor.com/ticket/12377): Fixed: Errors thrown in the [Image](https://ckeditor.com/cke4/addon/image) plugin when removing preview from the dialog window definition. Thanks to [Axinet](https://github.com/Axinet)!
-* [#12162](https://dev.ckeditor.com/ticket/12162): Fixed: Auto paragraphing and *Enter* key in nested editables.
-* [#12315](https://dev.ckeditor.com/ticket/12315): Fixed: Marked [`config.autoParagraph`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_config.html#cfg-autoParagraph) as deprecated.
-* [#12113](https://dev.ckeditor.com/ticket/12113): Fixed: A [code snippet](https://ckeditor.com/cke4/addon/codesnippet) should be presented in the [elements path](https://ckeditor.com/cke4/addon/elementspath) as "code snippet" (translatable).
-* [#12311](https://dev.ckeditor.com/ticket/12311): Fixed: [Remove Format](https://ckeditor.com/cke4/addon/removeformat) should also remove `<cite>` elements.
-* [#12261](https://dev.ckeditor.com/ticket/12261): Fixed: The filter is not destroyed and removed from [`CKEDITOR.filter.instances`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_filter.html#static-property-instances) on editor destroy.
-* [#12398](https://dev.ckeditor.com/ticket/12398): Fixed: [Maximize](https://ckeditor.com/cke4/addon/maximize) does not work on an instance without a [title](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_config.html#cfg-title).
-* [#12097](https://dev.ckeditor.com/ticket/12097): Fixed: JAWS not reading the number of options correctly in the [Text Color and Background Color](https://ckeditor.com/cke4/addon/colorbutton) button menu.
-* [#12411](https://dev.ckeditor.com/ticket/12411): Fixed: [Page Break](https://ckeditor.com/cke4/addon/pagebreak) used directly in the editable breaks the editor.
-* [#12354](https://dev.ckeditor.com/ticket/12354): Fixed: Various issues in undo manager when holding keys.
-* [#12324](https://dev.ckeditor.com/ticket/12324): [IE8] Fixed: Undo steps are not recorded when changing the caret position by clicking below the body.
-* [#12332](https://dev.ckeditor.com/ticket/12332): Fixed: Lowered DOM events listeners' priorities in undo manager in order to avoid ambiguity.
-* [#12402](https://dev.ckeditor.com/ticket/12402): [Blink] Fixed: Workaround for Blink bug with `document.title` which breaks updating title in the full HTML mode.
-* [#12338](https://dev.ckeditor.com/ticket/12338): Fixed: The CKEditor package contains unoptimized images.
-
-
-## CKEditor 4.4.4
-
-Fixed Issues:
-
-* [#12268](https://dev.ckeditor.com/ticket/12268): Cleanup of [UI Color](https://ckeditor.com/cke4/addon/uicolor) YUI styles. Thanks to [CasherWest](https://github.com/CasherWest)!
-* [#12263](https://dev.ckeditor.com/ticket/12263): Fixed: [Paste from Word](https://ckeditor.com/cke4/addon/pastefromword) filter does not properly normalize semicolons style text. Thanks to [Alin Purcaru](https://github.com/mesmerizero)!
-* [#12243](https://dev.ckeditor.com/ticket/12243): Fixed: Text formatting lost when pasting from Word. Thanks to [Alin Purcaru](https://github.com/mesmerizero)!
-* [#111739](https://dev.ckeditor.com/ticket/11739): Fixed: `keypress` listeners should not be used in the undo manager. A complete rewrite of keyboard handling in the undo manager was made. Numerous smaller issues were fixed, among others:
-  * [#10926](https://dev.ckeditor.com/ticket/10926): [Chrome@Android] Fixed: Typing does not record snapshots and does not fire the [`editor.change`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_editor.html#event-change) event.
-  * [#11611](https://dev.ckeditor.com/ticket/11611): [Firefox] Fixed: The [`editor.change`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_editor.html#event-change) event is fired when pressing Arrow keys.
-  * [#12219](https://dev.ckeditor.com/ticket/12219): [Safari] Fixed: Some modifications of the [`UndoManager.locked`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_plugins_undo_UndoManager.html#property-locked) property violate strict mode in the [Undo](https://ckeditor.com/cke4/addon/undo) plugin.
-* [#10916](https://dev.ckeditor.com/ticket/10916): Fixed: [Magic Line](https://ckeditor.com/cke4/addon/magicline) icon in Right-To-Left environments.
-* [#11970](https://dev.ckeditor.com/ticket/11970): [IE] Fixed: CKEditor `paste` event is not fired when pasting with *Shift+Ins*.
-* [#12111](https://dev.ckeditor.com/ticket/12111): Fixed: Linked image attributes are not read when opening the image dialog window by doubleclicking.
-* [#10030](https://dev.ckeditor.com/ticket/10030): [IE] Fixed: Prevented "Unspecified Error" thrown in various cases when IE8-9 does not allow access to `document.activeElement`.
-* [#12273](https://dev.ckeditor.com/ticket/12273): Fixed: Applying block style in a description list breaks it.
-* [#12218](https://dev.ckeditor.com/ticket/12218): Fixed: Minor syntax issue in CSS files.
-* [#12178](https://dev.ckeditor.com/ticket/12178): [Blink/WebKit] Fixed: Iterator does not return the block if the selection is located at the end of it.
-* [#12185](https://dev.ckeditor.com/ticket/12185): [IE9QM] Fixed: Error thrown when moving the mouse over focused editor's scrollbar.
-* [#12215](https://dev.ckeditor.com/ticket/12215): Fixed: Basepath resolution does not recognize semicolon as a query separator.
-* [#12135](https://dev.ckeditor.com/ticket/12135): Fixed: [Remove Format](https://ckeditor.com/cke4/addon/removeformat) does not work on widgets.
-* [#12298](https://dev.ckeditor.com/ticket/12298): [IE11] Fixed: Clicking below `<body>` in Compatibility Mode will no longer reset selection to the first line.
-* [#12204](https://dev.ckeditor.com/ticket/12204): Fixed: Editor's voice label is not affected by [`config.title`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_config.html#cfg-title).
-* [#11915](https://dev.ckeditor.com/ticket/11915): Fixed: With [SCAYT](https://ckeditor.com/cke4/addon/scayt) enabled, cursor moves to the beginning of the first highlighted, misspelled word after typing or pasting into the editor.
-* [SCAYT](https://github.com/WebSpellChecker/ckeditor-plugin-scayt/issues/69): Fixed: Error thrown in the console after enabling [SCAYT](https://ckeditor.com/cke4/addon/scayt) and trying to add a new image.
-
-
-Other Changes:
-
-* [#12296](https://dev.ckeditor.com/ticket/12296): Merged `benderjs-ckeditor` into the main CKEditor repository.
-
-## CKEditor 4.4.3
-
-**Security Updates:**
-
-* Fixed XSS vulnerability in the Preview plugin reported by Mario Heiderich of [Cure53](https://cure53.de/).
-
-**An upgrade is highly recommended!**
-
-New Features:
-
-* [#12164](https://dev.ckeditor.com/ticket/12164): Added the "Justify" option to the "Horizontal Alignment" drop-down in the Table Cell Properties dialog window.
-
-Fixed Issues:
-
-* [#12110](https://dev.ckeditor.com/ticket/12110): Fixed: Editor crash after deleting a table. Thanks to [Alin Purcaru](https://github.com/mesmerizero)!
-* [#11897](https://dev.ckeditor.com/ticket/11897): Fixed: *Enter* key used in an empty list item creates a new line instead of breaking the list. Thanks to [noam-si](https://github.com/noam-si)!
-* [#12140](https://dev.ckeditor.com/ticket/12140): Fixed: Double-clicking linked widgets opens two dialog windows.
-* [#12132](https://dev.ckeditor.com/ticket/12132): Fixed: Image is inserted with `width` and `height` styles even when they are not allowed.
-* [#9317](https://dev.ckeditor.com/ticket/9317): [IE] Fixed: [`config.disableObjectResizing`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_config.html#cfg-disableObjectResizing) does not work on IE. **Note**: We were not able to fix this issue on IE11+ because necessary events stopped working. See a [last resort workaround](https://dev.ckeditor.com/ticket/9317#comment:16) and make sure to [support our complaint to Microsoft](https://connect.microsoft.com/IE/feedback/details/742593/please-respect-execcommand-enableobjectresizing-in-contenteditable-elements).
-* [#9638](https://dev.ckeditor.com/ticket/9638): Fixed: There should be no information about accessibility help available under the *Alt+0* keyboard shortcut if the [Accessibility Help](https://ckeditor.com/cke4/addon/a11yhelp) plugin is not available.
-* [#8117](https://dev.ckeditor.com/ticket/8117) and [#9186](https://dev.ckeditor.com/ticket/9186): Fixed: In HTML5 `<meta>` tags should be allowed everywhere, including inside the `<body>` element.
-* [#10422](https://dev.ckeditor.com/ticket/10422): Fixed: [`config.fillEmptyBlocks`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_config.html#cfg-fillEmptyBlocks) not working properly if a function is specified.
-
-## CKEditor 4.4.2
-
-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/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:
-
-* [#11909](https://dev.ckeditor.com/ticket/11909): Introduced a parameter to prevent the [`editor.setData()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_editor.html#method-setData) method from recording undo snapshots.
-
-Fixed Issues:
-
-* [#11757](https://dev.ckeditor.com/ticket/11757): Fixed: Imperfections in the [Moono](https://ckeditor.com/cke4/addon/moono) skin. Thanks to [danyaPostfactum](https://github.com/danyaPostfactum)!
-* [#10091](https://dev.ckeditor.com/ticket/10091): Blockquote should be treated like an object by the styles system. Thanks to [dan-james-deeson](https://github.com/dan-james-deeson)!
-* [#11478](https://dev.ckeditor.com/ticket/11478): Fixed: Issue with passing jQuery objects to [adapter](https://ckeditor.com/docs/ckeditor4/latest/guide/dev_jquery.html) configuration.
-* [#10867](https://dev.ckeditor.com/ticket/10867): Fixed: Issue with setting encoded URI as image link.
-* [#11983](https://dev.ckeditor.com/ticket/11983): Fixed: Clicking a nested widget does not focus it. Additionally, performance of the [`widget.repository.getByElement()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_plugins_widget_repository.html#method-getByElement) method was improved.
-* [#12000](https://dev.ckeditor.com/ticket/12000): Fixed: Nested widgets should be initialized on [`editor.setData()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_editor.html#method-setData) and [`nestedEditable.setData()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_plugins_widget_nestedEditable.html#method-setData).
-* [#12022](https://dev.ckeditor.com/ticket/12022): Fixed: Outer widget's drag handler is not created at all if it has any nested widgets inside.
-* [#11960](https://dev.ckeditor.com/ticket/11960): [Blink/WebKit] Fixed: The caret should be scrolled into view on *Backspace* and *Delete* (covers only the merging blocks case).
-* [#11306](https://dev.ckeditor.com/ticket/11306): [OSX][Blink/WebKit] Fixed: No widget entries in the context menu on widget right-click.
-* [#11957](https://dev.ckeditor.com/ticket/11957): Fixed: Alignment labels in the [Enhanced Image](https://ckeditor.com/cke4/addon/image2) dialog window are not translated.
-* [#11980](https://dev.ckeditor.com/ticket/11980): [Blink/WebKit] Fixed: `<span>` elements created when joining adjacent elements (non-collapsed selection).
-* [#12009](https://dev.ckeditor.com/ticket/12009): [Nested widgets] Integration with the [Magic Line](https://ckeditor.com/cke4/addon/magicline) plugin.
-* [#11387](https://dev.ckeditor.com/ticket/11387): Fixed: `role="radiogroup"` should be applied only to radio inputs' container.
-* [#7975](https://dev.ckeditor.com/ticket/7975): [IE8] Fixed: Errors when trying to select an empty table cell.
-* [#11947](https://dev.ckeditor.com/ticket/11947): [Firefox+IE11] Fixed: *Shift+Enter* in lists produces two line breaks.
-* [#11972](https://dev.ckeditor.com/ticket/11972): Fixed: Feature detection in the [`element.setText()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_dom_element.html#method-setText) method should not trigger the layout engine.
-* [#7634](https://dev.ckeditor.com/ticket/7634): Fixed: The [Flash Dialog](https://ckeditor.com/cke4/addon/flash) plugin omits the `allowFullScreen` parameter in the editor data if set to `true`.
-* [#11910](https://dev.ckeditor.com/ticket/11910): Fixed: [Enhanced Image](https://ckeditor.com/cke4/addon/image2) does not take [`config.baseHref`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_config.html#cfg-baseHref) into account when updating image dimensions.
-* [#11753](https://dev.ckeditor.com/ticket/11753): Fixed: Wrong [`checkDirty()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_editor.html#method-checkDirty) method value after focusing or blurring a widget.
-* [#11830](https://dev.ckeditor.com/ticket/11830): Fixed: Impossible to pass some arguments to [CKBuilder](https://github.com/ckeditor/ckbuilder) when using the `/dev/builder/build.sh` script.
-* [#11945](https://dev.ckeditor.com/ticket/11945): Fixed: [Form Elements](https://ckeditor.com/cke4/addon/forms) plugin should not change a core method.
-* [#11384](https://dev.ckeditor.com/ticket/11384): [IE9+] Fixed: `IndexSizeError` thrown when pasting into a non-empty selection anchored in one text node.
-
-## CKEditor 4.4.1
-
-New Features:
-
-* [#9661](https://dev.ckeditor.com/ticket/9661): Added the option to [configure](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_config.html#cfg-linkJavaScriptLinksAllowed) anchor tags with JavaScript code in the `href` attribute.
-
-Fixed Issues:
-
-* [#11861](https://dev.ckeditor.com/ticket/11861): [WebKit/Blink] Fixed: Span elements created while joining adjacent elements. **Note:** This patch only covers cases when *Backspace* or *Delete* is pressed on a collapsed (empty) selection. The remaining case, with a non-empty selection, will be fixed in the next release.
-* [#10714](https://dev.ckeditor.com/ticket/10714): [iOS] Fixed: Selection and drop-downs are broken if a touch event listener is used due to a [WebKit bug](https://bugs.webkit.org/show_bug.cgi?id=128924). Thanks to [Arty Gus](https://github.com/artygus)!
-* [#11911](https://dev.ckeditor.com/ticket/11911): Fixed setting the `dir` attribute for a preloaded language in [CKEDITOR.lang](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR.lang.html). Thanks to [Akash Mohapatra](https://github.com/akashmohapatra)!
-* [#11926](https://dev.ckeditor.com/ticket/11926): Fixed: [Code Snippet](https://ckeditor.com/cke4/addon/codesnippet) does not decode HTML entities when loading code from the `<code>` element.
-* [#11223](https://dev.ckeditor.com/ticket/11223): Fixed: Issue when [Protected Source](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_config.html#cfg-protectedSource) was not working in the `<title>` element.
-* [#11859](https://dev.ckeditor.com/ticket/11859): Fixed: Removed the [Source Dialog](https://ckeditor.com/cke4/addon/sourcedialog) plugin dependency from the [Code Snippet](https://ckeditor.com/cke4/addon/codesnippet) sample.
-* [#11754](https://dev.ckeditor.com/ticket/11754): [Chrome] Fixed: Infinite loop when content includes not closed attributes.
-* [#11848](https://dev.ckeditor.com/ticket/11848): [IE] Fixed: [`editor.insertElement()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_editor.html#method-insertElement) throwing an exception when there was no selection in the editor.
-* [#11801](https://dev.ckeditor.com/ticket/11801): Fixed: Editor anchors unavailable when linking the [Enhanced Image](https://ckeditor.com/cke4/addon/image2) widget.
-* [#11626](https://dev.ckeditor.com/ticket/11626): Fixed: [Table Resize](https://ckeditor.com/cke4/addon/tableresize) sets invalid column width.
-* [#11872](https://dev.ckeditor.com/ticket/11872): Made [`element.addClass()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_dom_element.html#method-addClass) chainable symmetrically to [`element.removeClass()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_dom_element.html#method-removeClass).
-* [#11813](https://dev.ckeditor.com/ticket/11813): Fixed: Link lost while pasting a captioned image and restoring an undo snapshot ([Enhanced Image](https://ckeditor.com/cke4/addon/image2)).
-* [#11814](https://dev.ckeditor.com/ticket/11814): Fixed: _Link_ and _Unlink_ entries persistently displayed in the [Enhanced Image](https://ckeditor.com/cke4/addon/image2) context menu.
-* [#11839](https://dev.ckeditor.com/ticket/11839): [IE9] Fixed: The caret jumps out of the editable area when resizing the editor in the source mode.
-* [#11822](https://dev.ckeditor.com/ticket/11822): [WebKit] Fixed: Editing anchors by double-click is broken in some cases.
-* [#11823](https://dev.ckeditor.com/ticket/11823): [IE8] Fixed: [Table Resize](https://ckeditor.com/cke4/addon/tableresize) throws an error over scrollbar.
-* [#11788](https://dev.ckeditor.com/ticket/11788): Fixed: It is not possible to change the language back to _Not set_ in the [Code Snippet](https://ckeditor.com/cke4/addon/codesnippet) dialog window.
-* [#11788](https://dev.ckeditor.com/ticket/11788): Fixed: [Filter](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR.htmlParser.filter.html) rules are not applied inside elements with the `contenteditable` attribute set to `true`.
-* [#11798](https://dev.ckeditor.com/ticket/11798): Fixed: Inserting a non-editable element inside a table cell breaks the table.
-* [#11793](https://dev.ckeditor.com/ticket/11793): Fixed: Drop-down is not "on" when clicking it while the editor is blurred.
-* [#11850](https://dev.ckeditor.com/ticket/11850): Fixed: Fake objects with the `contenteditable` attribute set to `false` are not downcasted properly.
-* [#11811](https://dev.ckeditor.com/ticket/11811): Fixed: Widget's data is not encoded correctly when passed to an attribute.
-* [#11777](https://dev.ckeditor.com/ticket/11777): Fixed encoding ampersand in the [Mathematical Formulas](https://ckeditor.com/cke4/addon/mathjax) plugin.
-* [#11880](https://dev.ckeditor.com/ticket/11880): [IE8-9] Fixed: Linked image has a default thick border.
-
-Other Changes:
-
-* [#11807](https://dev.ckeditor.com/ticket/11807): Updated jQuery version used in the sample to 1.11.0 and tested CKEditor jQuery Adapter with version 1.11.0 and 2.1.0.
-* [#9504](https://dev.ckeditor.com/ticket/9504): Stopped using deprecated `attribute.specified` in all browsers except Internet Explorer.
-* [#11809](https://dev.ckeditor.com/ticket/11809): Changed tab size in `<pre>` to 4 spaces.
-
-## CKEditor 4.4
-
-**Important Notes:**
-
-* Marked the [`editor.beforePaste`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_editor.html#event-beforePaste) event as deprecated.
-* The default class of captioned images has changed to `image` (was: `caption`). Please note that once edited in CKEditor 4.4+, all existing images of the `caption` class (`<figure class="caption">`) will be [filtered out](https://ckeditor.com/docs/ckeditor4/latest/guide/dev_advanced_content_filter.html) unless the [`config.image2_captionedClass`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_config.html#cfg-image2_captionedClass) option is set to `caption`. For backward compatibility (i.e. when upgrading), it is highly recommended to use this setting, which also helps prevent CSS conflicts, etc. This does not apply to new CKEditor integrations.
-* Widgets without defined buttons are no longer registered automatically to the [Advanced Content Filter](https://ckeditor.com/docs/ckeditor4/latest/guide/dev_advanced_content_filter.html). Before CKEditor 4.4 widgets were registered to the ACF which was an incorrect behavior ([#11567](https://dev.ckeditor.com/ticket/11567)). This change should not have any impact on standard scenarios, but if your button does not execute the widget command, you need to set [`allowedContent`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_feature.html#property-allowedContent) and [`requiredContent`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_feature.html#property-requiredContent) properties for it manually, because the editor will not be able to find them.
-* The [Show Borders](https://ckeditor.com/cke4/addon/showborders) plugin was added to the Standard installation package in order to ensure that unstyled tables are still visible for the user ([#11665](https://dev.ckeditor.com/ticket/11665)).
-* Since CKEditor 4.4 the editor instance should be passed to [`CKEDITOR.style`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR.style.html) methods to ensure full compatibility with other features (e.g. applying styles to widgets requires that). We ensured backward compatibility though, so the [`CKEDITOR.style`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR.style.html) will work even when the editor instance is not provided.
-
-New Features:
-
-* [#11297](https://dev.ckeditor.com/ticket/11297): Styles can now be applied to widgets. The definition of a style which can be applied to a specific widget must contain two additional properties &mdash; `type` and `widget`. Read more in the [Widget Styles](https://ckeditor.com/docs/ckeditor4/latest/guide/dev_styles.html#widget-styles) section of the "Styles Drop-down" guide. Note that by default, widgets support only classes and no other attributes or styles. Related changes and features:
-  * Introduced the [`CKEDITOR.style.addCustomHandler()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_style.html#static-method-addCustomHandler) method for registering custom style handlers.
-  * The [`CKEDITOR.style.apply()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_style.html#method-apply) and [`CKEDITOR.style.remove()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_style.html#method-remove) methods are now called with an editor instance instead of the document so they can be reused by the [`CKEDITOR.editor.applyStyle()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_editor.html#method-applyStyle) and [`CKEDITOR.editor.removeStyle()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_editor.html#method-removeStyle) methods. Backward compatibility was preserved, but from CKEditor 4.4 it is highly recommended to pass an editor instead of a document to these methods.
-  * Many new methods and properties were introduced in the [Widget API](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR.plugins.widget.html) to make the handling of styles by widgets fully customizable. See: [`widget.definition.styleableElements`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_plugins_widget_definition.html#property-styleableElements), [`widget.definition.styleToAllowedContentRule`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_plugins_widget_definition.html#property-styleToAllowedContentRules), [`widget.addClass()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_plugins_widget.html#method-addClass), [`widget.removeClass()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_plugins_widget.html#method-removeClass), [`widget.getClasses()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_plugins_widget.html#method-getClasses), [`widget.hasClass()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_plugins_widget.html#method-hasClass), [`widget.applyStyle()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_plugins_widget.html#method-applyStyle), [`widget.removeStyle()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_plugins_widget.html#method-removeStyle), [`widget.checkStyleActive()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_plugins_widget.html#method-checkStyleActive).
-  * Integration with the [Allowed Content Filter](https://ckeditor.com/docs/ckeditor4/latest/guide/dev_advanced_content_filter.html) required an introduction of the [`CKEDITOR.style.toAllowedContent()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_style.html#method-toAllowedContentRules) method which can be implemented by the custom style handler and if exists, it is used by the [`CKEDITOR.filter`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR.filter.html) to translate a style to [allowed content rules](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR.filter.allowedContentRules.html).
-* [#11300](https://dev.ckeditor.com/ticket/11300): Various changes in the [Enhanced Image](https://ckeditor.com/cke4/addon/image2) plugin:
-  * Introduced the [`config.image2_captionedClass`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_config.html#cfg-image2_captionedClass) option to configure the class of captioned images.
-  * Introduced the [`config.image2_alignClasses`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_config.html#cfg-image2_alignClasses) option to configure the way images are aligned with CSS classes.
-  If this setting is defined, the editor produces classes instead of inline styles for aligned images.
-  * Default image caption can be translated (customized) with the `editor.lang.image2.captionPlaceholder` string.
-* [#11341](https://dev.ckeditor.com/ticket/11341): [Enhanced Image](https://ckeditor.com/cke4/addon/image2) plugin: It is now possible to add a link to any image type.
-* [#10202](https://dev.ckeditor.com/ticket/10202): Introduced wildcard support in the [Allowed Content Rules](https://ckeditor.com/docs/ckeditor4/latest/guide/dev_allowed_content_rules.html) format.
-* [#10276](https://dev.ckeditor.com/ticket/10276): Introduced blacklisting in the [Allowed Content Filter](https://ckeditor.com/docs/ckeditor4/latest/guide/dev_advanced_content_filter.html).
-* [#10480](https://dev.ckeditor.com/ticket/10480): Introduced code snippets with code highlighting. There are two versions available so far &mdash; the default [Code Snippet](https://ckeditor.com/cke4/addon/codesnippet) which uses the [highlight.js](https://highlightjs.org) library and the [Code Snippet GeSHi](https://ckeditor.com/cke4/addon/codesnippetgeshi) which uses the [GeSHi](http://qbnz.com/highlighter/) library.
-* [#11737](https://dev.ckeditor.com/ticket/11737): Introduced an option to prevent [filtering](https://ckeditor.com/docs/ckeditor4/latest/guide/dev_advanced_content_filter.html) of an element that matches custom criteria (see [`filter.addElementCallback()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_filter.html#method-addElementCallback)).
-* [#11532](https://dev.ckeditor.com/ticket/11532): Introduced the [`editor.addContentsCss()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_editor.html#method-addContentsCss) method that can be used for [adding custom CSS files](https://ckeditor.com/docs/ckeditor4/latest/guide/plugin_sdk_styles.html).
-* [#11536](https://dev.ckeditor.com/ticket/11536): Added the [`CKEDITOR.tools.htmlDecode()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_tools.html#method-htmlDecode) method for decoding HTML entities.
-* [#11225](https://dev.ckeditor.com/ticket/11225): Introduced the [`CKEDITOR.tools.transparentImageData`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_tools.html#property-transparentImageData) property which contains transparent image data to be used in CSS or as image source.
-
-Other Changes:
-
-* [#11377](https://dev.ckeditor.com/ticket/11377): Unified internal representation of empty anchors using the [fake objects](https://ckeditor.com/cke4/addon/fakeobjects).
-* [#11422](https://dev.ckeditor.com/ticket/11422): Removed Firefox 3.x, Internet Explorer 6 and Opera 12.x leftovers in code.
-* [#5217](https://dev.ckeditor.com/ticket/5217): Setting data (including switching between modes) creates a new undo snapshot. Besides that:
-  * Introduced the [`editable.status`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_editable.html#property-status) property.
-  * Introduced a new `forceUpdate` option for the [`editor.lockSnapshot`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_editor.html#event-lockSnapshot) event.
-  * Fixed: Selection not being unlocked in inline editor after setting data ([#11500](https://dev.ckeditor.com/ticket/11500)).
-* The [WebSpellChecker](https://ckeditor.com/cke4/addon/wsc) plugin was updated to the latest version.
-
-Fixed Issues:
-
-* [#10190](https://dev.ckeditor.com/ticket/10190): Fixed: Removing block style with [`editor.removeStyle()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_editor.html#method-removeStyle) should result in a paragraph and not a div.
-* [#11727](https://dev.ckeditor.com/ticket/11727): Fixed: The editor tries to select a non-editable image which was clicked.
-
-## CKEditor 4.3.5
-
-New Features:
-
-* Added new translation: Tatar.
-
-Fixed Issues:
-
-* [#11677](https://dev.ckeditor.com/ticket/11677): Fixed: Undo/Redo keystrokes are blocked in the source mode.
-* [#11717](https://dev.ckeditor.com/ticket/11717): [Document Properties](https://ckeditor.com/cke4/addon/docprops) plugin requires the [Color Dialog](https://ckeditor.com/cke4/addon/colordialog) plugin to work.
-
-## CKEditor 4.3.4
-
-Fixed Issues:
-
-* [#11597](https://dev.ckeditor.com/ticket/11597): [IE11] Fixed: Error thrown when trying to open the [preview](https://ckeditor.com/cke4/addon/preview) using the keyboard.
-* [#11544](https://dev.ckeditor.com/ticket/11544): [Placeholders](https://ckeditor.com/cke4/addon/placeholder) will no longer be upcasted in parents not accepting `<span>` elements.
-* [#8663](https://dev.ckeditor.com/ticket/8663): Fixed [`element.renameNode()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_dom_element.html#method-renameNode) not clearing the [`element.getName()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_dom_element.html#method-getName) cache.
-* [#11574](https://dev.ckeditor.com/ticket/11574): Fixed: *Backspace* destroying the DOM structure if an inline editable is placed in a list item.
-* [#11603](https://dev.ckeditor.com/ticket/11603): Fixed: [Table Resize](https://ckeditor.com/cke4/addon/tableresize) attaches to tables outside the editable.
-* [#9205](https://dev.ckeditor.com/ticket/9205), [#7805](https://dev.ckeditor.com/ticket/7805), [#8216](https://dev.ckeditor.com/ticket/8216): Fixed: `{cke_protected_1}` appearing in data in various cases where HTML comments are placed next to `"` or `'`.
-* [#11635](https://dev.ckeditor.com/ticket/11635): Fixed: Some attributes are not protected before the content is passed through the fix bin.
-* [#11660](https://dev.ckeditor.com/ticket/11660): [IE] Fixed: Table content is lost when some extra markup is inside the table.
-* [#11641](https://dev.ckeditor.com/ticket/11641): Fixed: Switching between modes in the classic editor removes content styles for the inline editor.
-* [#11568](https://dev.ckeditor.com/ticket/11568): Fixed: [Styles](https://ckeditor.com/cke4/addon/stylescombo) drop-down list is not enabled on selection change.
-
-## CKEditor 4.3.3
-
-Fixed Issues:
-
-* [#11500](https://dev.ckeditor.com/ticket/11500): [WebKit/Blink] Fixed: Selection lost when setting data in another inline editor. Additionally, [`selection.removeAllRanges()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_dom_selection.html#method-removeAllRanges) is now scoped to selection's [root](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_dom_selection.html#property-root).
-* [#11104](https://dev.ckeditor.com/ticket/11104): [IE] Fixed: Various issues with scrolling and selection when focusing widgets.
-* [#11487](https://dev.ckeditor.com/ticket/11487): Moving mouse over the [Enhanced Image](https://ckeditor.com/cke4/addon/image2) widget will no longer change the value returned by the [`editor.checkDirty()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_editor.html#method-checkDirty) method.
-* [#8673](https://dev.ckeditor.com/ticket/8673): [WebKit] Fixed: Cannot select and remove the [Page Break](https://ckeditor.com/cke4/addon/pagebreak).
-* [#11413](https://dev.ckeditor.com/ticket/11413): Fixed: Incorrect [`editor.execCommand()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_editor.html#method-execCommand) behavior.
-* [#11438](https://dev.ckeditor.com/ticket/11438): Splitting table cells vertically is no longer changing table structure.
-* [#8899](https://dev.ckeditor.com/ticket/8899): Fixed: Links in the [About CKEditor](https://ckeditor.com/cke4/addon/about) dialog window now open in a new browser window or tab.
-* [#11490](https://dev.ckeditor.com/ticket/11490): Fixed: [Menu button](https://ckeditor.com/cke4/addon/menubutton) panel not showing in the source mode.
-* [#11417](https://dev.ckeditor.com/ticket/11417): The [`widget.doubleclick`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_plugins_widget.html#event-doubleclick) event is not canceled anymore after editing was triggered.
-* [#11253](https://dev.ckeditor.com/ticket/11253): [IE] Fixed: Clipped upload button in the [Enhanced Image](https://ckeditor.com/cke4/addon/image2) dialog window.
-* [#11359](https://dev.ckeditor.com/ticket/11359): Standardized the way anchors are discovered by the [Link](https://ckeditor.com/cke4/addon/link) plugin.
-* [#11058](https://dev.ckeditor.com/ticket/11058): [IE8] Fixed: Error when deleting a table row.
-* [#11508](https://dev.ckeditor.com/ticket/11508): Fixed: [`htmlDataProcessor`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR.htmlDataProcessor.html) discovering protected attributes within other attributes' values.
-* [#11533](https://dev.ckeditor.com/ticket/11533): Widgets: Avoid recurring upcasts if the DOM structure was modified during an upcast.
-* [#11400](https://dev.ckeditor.com/ticket/11400): Fixed: The [`domObject.removeAllListeners()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_dom_domObject.html#method-removeAllListeners) method does not remove custom listeners completely.
-* [#11493](https://dev.ckeditor.com/ticket/11493): Fixed: The [`selection.getRanges()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_dom_selection.html#method-getRanges) method does not override cached ranges when used with the `onlyEditables` argument.
-* [#11390](https://dev.ckeditor.com/ticket/11390): [IE] All [XML](https://ckeditor.com/cke4/addon/xml) plugin [methods](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR.xml.html) now work in IE10+.
-* [#11542](https://dev.ckeditor.com/ticket/11542): [IE11] Fixed: Blurry toolbar icons when Right-to-Left UI language is set.
-* [#11504](https://dev.ckeditor.com/ticket/11504): Fixed: When [`config.fullPage`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_config.html#cfg-fullPage) is set to `true`, entities are not encoded in editor output.
-* [#11004](https://dev.ckeditor.com/ticket/11004): Integrated [Enhanced Image](https://ckeditor.com/cke4/addon/image2) dialog window with [Advanced Content Filter](https://ckeditor.com/docs/ckeditor4/latest/guide/dev_advanced_content_filter.html).
-* [#11439](https://dev.ckeditor.com/ticket/11439): Fixed: Properties get cloned in the Cell Properties dialog window if multiple cells are selected.
-
-## CKEditor 4.3.2
-
-Fixed Issues:
-
-* [#11331](https://dev.ckeditor.com/ticket/11331): A menu button will have a changed label when selected instead of using the `aria-pressed` attribute.
-* [#11177](https://dev.ckeditor.com/ticket/11177): Widget drag handler improvements:
-  * [#11176](https://dev.ckeditor.com/ticket/11176): Fixed: Initial position is not updated when the widget data object is empty.
-  * [#11001](https://dev.ckeditor.com/ticket/11001): Fixed: Multiple synchronous layout recalculations are caused by initial drag handler positioning causing performance issues.
-  * [#11161](https://dev.ckeditor.com/ticket/11161): Fixed: Drag handler is not repositioned in various situations.
-  * [#11281](https://dev.ckeditor.com/ticket/11281): Fixed: Drag handler and mask are duplicated after widget reinitialization.
-* [#11207](https://dev.ckeditor.com/ticket/11207): [Firefox] Fixed: Misplaced [Enhanced Image](https://ckeditor.com/cke4/addon/image2) resizer in the inline editor.
-* [#11102](https://dev.ckeditor.com/ticket/11102): `CKEDITOR.template` improvements:
-  * [#11102](https://dev.ckeditor.com/ticket/11102): Added newline character support.
-  * [#11216](https://dev.ckeditor.com/ticket/11216): Added "\\'" substring support.
-* [#11121](https://dev.ckeditor.com/ticket/11121): [Firefox] Fixed: High Contrast mode is enabled when the editor is loaded in a hidden iframe.
-* [#11350](https://dev.ckeditor.com/ticket/11350): The default value of [`config.contentsCss`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_config.html#cfg-contentsCss) is affected by [`CKEDITOR.getUrl()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR.html#method-getUrl).
-* [#11097](https://dev.ckeditor.com/ticket/11097): Improved the [Autogrow](https://ckeditor.com/cke4/addon/autogrow) plugin performance when dealing with very big tables.
-* [#11290](https://dev.ckeditor.com/ticket/11290): Removed redundant code in the [Source Dialog](https://ckeditor.com/cke4/addon/sourcedialog) plugin.
-* [#11133](https://dev.ckeditor.com/ticket/11133): [Page Break](https://ckeditor.com/cke4/addon/pagebreak) becomes editable if pasted.
-* [#11126](https://dev.ckeditor.com/ticket/11126): Fixed: Native Undo executed once the bottom of the snapshot stack is reached.
-* [#11131](https://dev.ckeditor.com/ticket/11131): [Div Editing Area](https://ckeditor.com/cke4/addon/divarea): Fixed: Error thrown when switching to source mode if the selection was in widget's nested editable.
-* [#11139](https://dev.ckeditor.com/ticket/11139): [Div Editing Area](https://ckeditor.com/cke4/addon/divarea): Fixed: Elements Path is not cleared after switching to source mode.
-* [#10778](https://dev.ckeditor.com/ticket/10778): Fixed a bug with range enlargement. The range no longer expands to visible whitespace.
-* [#11146](https://dev.ckeditor.com/ticket/11146): [IE] Fixed: Preview window switches Internet Explorer to Quirks Mode.
-* [#10762](https://dev.ckeditor.com/ticket/10762): [IE] Fixed: JavaScript code displayed in preview window's URL bar.
-* [#11186](https://dev.ckeditor.com/ticket/11186): Introduced the [`widgets.repository.addUpcastCallback()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_plugins_widget_repository.html#method-addUpcastCallback) method that allows to block upcasting given element to a widget.
-* [#11307](https://dev.ckeditor.com/ticket/11307): Fixed: Paste as Plain Text conflict with the [MooTools](http://mootools.net) library.
-* [#11140](https://dev.ckeditor.com/ticket/11140): [IE11] Fixed: Anchors are not draggable.
-* [#11379](https://dev.ckeditor.com/ticket/11379): Changed default contents `line-height` to unitless values to avoid huge text overlapping (like in [#9696](https://dev.ckeditor.com/ticket/9696)).
-* [#10787](https://dev.ckeditor.com/ticket/10787): [Firefox] Fixed: Broken replacement of text while pasting into `div`-based editor.
-* [#10884](https://dev.ckeditor.com/ticket/10884): Widgets integration with the [Show Blocks](https://ckeditor.com/cke4/addon/showblocks) plugin.
-* [#11021](https://dev.ckeditor.com/ticket/11021): Fixed: An error thrown when selecting entire editable contents while fake selection is on.
-* [#11086](https://dev.ckeditor.com/ticket/11086): [IE8] Re-enable inline widgets drag&drop in Internet Explorer 8.
-* [#11372](https://dev.ckeditor.com/ticket/11372): Widgets: Special characters encoded twice in nested editables.
-* [#10068](https://dev.ckeditor.com/ticket/10068): Fixed: Support for protocol-relative URLs.
-* [#11283](https://dev.ckeditor.com/ticket/11283): [Enhanced Image](https://ckeditor.com/cke4/addon/image2): A `<div>` element with `text-align: center` and an image inside is not recognised correctly.
-* [#11196](https://dev.ckeditor.com/ticket/11196): [Accessibility Instructions](https://ckeditor.com/cke4/addon/a11yhelp): Allowed additional keyboard button labels to be translated in the dialog window.
-
-## CKEditor 4.3.1
-
-**Important Notes:**
-
-* To match the naming convention, the `language` button is now `Language` ([#11201](https://dev.ckeditor.com/ticket/11201)).
-* [Enhanced Image](https://ckeditor.com/cke4/addon/image2) button, context menu, command, and icon names match those of the [Image](https://ckeditor.com/cke4/addon/image) plugin ([#11222](https://dev.ckeditor.com/ticket/11222)).
-
-Fixed Issues:
-
-* [#11244](https://dev.ckeditor.com/ticket/11244): Changed: The [`widget.repository.checkWidgets()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_plugins_widget_repository.html#method-checkWidgets) method now fires the [`widget.repository.checkWidgets`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_plugins_widget_repository.html#event-checkWidgets) event, so from CKEditor 4.3.1 it is preferred to use the method rather than fire the event.
-* [#11171](https://dev.ckeditor.com/ticket/11171): Fixed: [`editor.insertElement()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_editor.html#method-insertElement) and [`editor.insertText()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_editor.html#method-insertText) methods do not call the [`widget.repository.checkWidgets()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_plugins_widget_repository.html#method-checkWidgets) method.
-* [#11085](https://dev.ckeditor.com/ticket/11085): [IE8] Replaced preview generated by the [Mathematical Formulas](https://ckeditor.com/cke4/addon/mathjax) widget with a placeholder.
-* [#11044](https://dev.ckeditor.com/ticket/11044): Enhanced WAI-ARIA support for the [Language](https://ckeditor.com/cke4/addon/language) plugin drop-down menu.
-* [#11075](https://dev.ckeditor.com/ticket/11075): With drop-down menu button focused, pressing the *Down Arrow* key will now open the menu and focus its first option.
-* [#11165](https://dev.ckeditor.com/ticket/11165): Fixed: The [File Browser](https://ckeditor.com/cke4/addon/filebrowser) plugin cannot be removed from the editor.
-* [#11159](https://dev.ckeditor.com/ticket/11159): [IE9-10] [Enhanced Image](https://ckeditor.com/cke4/addon/image2): Fixed buggy discovery of image dimensions.
-* [#11101](https://dev.ckeditor.com/ticket/11101): Drop-down lists no longer break when given double quotes.
-* [#11077](https://dev.ckeditor.com/ticket/11077): [Enhanced Image](https://ckeditor.com/cke4/addon/image2): Empty undo step recorded when resizing the image.
-* [#10853](https://dev.ckeditor.com/ticket/10853): [Enhanced Image](https://ckeditor.com/cke4/addon/image2): Widget has paragraph wrapper when de-captioning unaligned image.
-* [#11198](https://dev.ckeditor.com/ticket/11198): Widgets: Drag handler is not fully visible when an inline widget is in a heading.
-* [#11132](https://dev.ckeditor.com/ticket/11132): [Firefox] Fixed: Caret is lost after drag and drop of an inline widget.
-* [#11182](https://dev.ckeditor.com/ticket/11182): [IE10-11] Fixed: Editor crashes (IE11) or works with minor issues (IE10) if a page is loaded in Quirks Mode. See [`env.quirks`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_env.html#property-quirks) for more details.
-* [#11204](https://dev.ckeditor.com/ticket/11204): Added `figure` and `figcaption` styles to the `contents.css` file so [Enhanced Image](https://ckeditor.com/cke4/addon/image2) looks nicer.
-* [#11202](https://dev.ckeditor.com/ticket/11202): Fixed: No newline in [BBCode](https://ckeditor.com/cke4/addon/bbcode) mode.
-* [#10890](https://dev.ckeditor.com/ticket/10890): Fixed: Error thrown when pressing the *Delete* key in a list item.
-* [#10055](https://dev.ckeditor.com/ticket/10055): [IE8-10] Fixed: *Delete* pressed on a selected image causes the browser to go back.
-* [#11183](https://dev.ckeditor.com/ticket/11183): Fixed: Inserting a horizontal rule or a table in multiple row selection causes a browser crash. Additionally, the [`editor.insertElement()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_editor.html#method-insertElement) method does not insert the element into every range of a selection any more.
-* [#11042](https://dev.ckeditor.com/ticket/11042): Fixed: Selection made on an element containing a non-editable element was not auto faked.
-* [#11125](https://dev.ckeditor.com/ticket/11125): Fixed: Keyboard navigation through menu and drop-down items will now cycle.
-* [#11011](https://dev.ckeditor.com/ticket/11011): Fixed: The [`editor.applyStyle()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_editor.html#method-applyStyle) method removes attributes from nested elements.
-* [#11179](https://dev.ckeditor.com/ticket/11179): Fixed: [`editor.destroy()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_editor.html#method-destroy) does not cleanup content generated by the [Table Resize](https://ckeditor.com/cke4/addon/tableresize) plugin for inline editors.
-* [#11237](https://dev.ckeditor.com/ticket/11237): Fixed: Table border attribute value is deleted when pasting content from Microsoft Word.
-* [#11250](https://dev.ckeditor.com/ticket/11250): Fixed: HTML entities inside the `<textarea>` element are not encoded.
-* [#11260](https://dev.ckeditor.com/ticket/11260): Fixed: Initially disabled buttons are not read by JAWS as disabled.
-* [#11200](https://dev.ckeditor.com/ticket/11200):  Added [Clipboard](https://ckeditor.com/cke4/addon/clipboard) plugin as a dependency for [Widget](https://ckeditor.com/cke4/addon/widget) to fix drag and drop.
-
-## CKEditor 4.3
-
-New Features:
-
-* [#10612](https://dev.ckeditor.com/ticket/10612): Internet Explorer 11 support.
-* [#10869](https://dev.ckeditor.com/ticket/10869): Widgets: Added better integration with the [Elements Path](https://ckeditor.com/cke4/addon/elementspath) plugin.
-* [#10886](https://dev.ckeditor.com/ticket/10886): Widgets: Added tooltip to the drag handle.
-* [#10933](https://dev.ckeditor.com/ticket/10933): Widgets: Introduced drag and drop of block widgets with the [Line Utilities](https://ckeditor.com/cke4/addon/lineutils) plugin.
-* [#10936](https://dev.ckeditor.com/ticket/10936): Widget System changes for easier integration with other dialog systems.
-* [#10895](https://dev.ckeditor.com/ticket/10895): [Enhanced Image](https://ckeditor.com/cke4/addon/image2): Added file browser integration.
-* [#11002](https://dev.ckeditor.com/ticket/11002): Added the [`draggable`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_plugins_widget_definition.html#property-draggable) option to disable drag and drop support for widgets.
-* [#10937](https://dev.ckeditor.com/ticket/10937): [Mathematical Formulas](https://ckeditor.com/cke4/addon/mathjax) widget improvements:
-  * loading indicator ([#10948](https://dev.ckeditor.com/ticket/10948)),
-  * applying paragraph changes (like font color change) to iframe ([#10841](https://dev.ckeditor.com/ticket/10841)),
-  * Firefox and IE9 clipboard fixes ([#10857](https://dev.ckeditor.com/ticket/10857)),
-  * fixing same origin policy issue ([#10840](https://dev.ckeditor.com/ticket/10840)),
-  * fixing undo bugs ([#10842](https://dev.ckeditor.com/ticket/10842), [#10930](https://dev.ckeditor.com/ticket/10930)),
-  * fixing other minor bugs.
-* [#10862](https://dev.ckeditor.com/ticket/10862): [Placeholder](https://ckeditor.com/cke4/addon/placeholder) plugin was rewritten as a widget.
-* [#10822](https://dev.ckeditor.com/ticket/10822): Added styles system integration with non-editable elements (for example widgets) and their nested editables. Styles cannot change non-editable content and are applied in nested editable only if allowed by its type and content filter.
-* [#10856](https://dev.ckeditor.com/ticket/10856): Menu buttons will now toggle the visibility of their panels when clicked multiple times. [Language](https://ckeditor.com/cke4/addon/language) plugin fixes: Added active language highlighting, added an option to remove the language.
-* [#10028](https://dev.ckeditor.com/ticket/10028): New [`config.dialog_noConfirmCancel`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_config.html#cfg-dialog_noConfirmCancel) configuration option that eliminates the need to confirm closing of a dialog window when the user changed any of its fields.
-* [#10848](https://dev.ckeditor.com/ticket/10848): Integrate remaining plugins ([Styles](https://ckeditor.com/cke4/addon/stylescombo), [Format](https://ckeditor.com/cke4/addon/format), [Font](https://ckeditor.com/cke4/addon/font), [Color Button](https://ckeditor.com/cke4/addon/colorbutton), [Language](https://ckeditor.com/cke4/addon/language) and [Indent](https://ckeditor.com/cke4/addon/indent)) with [active filter](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_editor.html#property-activeFilter).
-* [#10855](https://dev.ckeditor.com/ticket/10855): Change the extension of emoticons in the [BBCode](https://ckeditor.com/cke4/addon/bbcode) sample from GIF to PNG.
-
-Fixed Issues:
-
-* [#10831](https://dev.ckeditor.com/ticket/10831): [Enhanced Image](https://ckeditor.com/cke4/addon/image2): Merged `image2inline` and `image2block` into one `image2` widget.
-* [#10835](https://dev.ckeditor.com/ticket/10835): [Enhanced Image](https://ckeditor.com/cke4/addon/image2): Improved visibility of the resize handle.
-* [#10836](https://dev.ckeditor.com/ticket/10836): [Enhanced Image](https://ckeditor.com/cke4/addon/image2): Preserve custom mouse cursor while resizing the image.
-* [#10939](https://dev.ckeditor.com/ticket/10939): [Firefox] [Enhanced Image](https://ckeditor.com/cke4/addon/image2): hovering the image causes it to change.
-* [#10866](https://dev.ckeditor.com/ticket/10866): Fixed: Broken *Tab* key navigation in the [Enhanced Image](https://ckeditor.com/cke4/addon/image2) dialog window.
-* [#10833](https://dev.ckeditor.com/ticket/10833): Fixed: *Lock ratio* option should be on by default in the [Enhanced Image](https://ckeditor.com/cke4/addon/image2) dialog window.
-* [#10881](https://dev.ckeditor.com/ticket/10881): Various improvements to *Enter* key behavior in nested editables.
-* [#10879](https://dev.ckeditor.com/ticket/10879): [Remove Format](https://ckeditor.com/cke4/addon/removeformat) should not leak from a nested editable.
-* [#10877](https://dev.ckeditor.com/ticket/10877): Fixed: [WebSpellChecker](https://ckeditor.com/cke4/addon/wsc) fails to apply changes if a nested editable was focused.
-* [#10877](https://dev.ckeditor.com/ticket/10877): Fixed: [SCAYT](https://ckeditor.com/cke4/addon/wsc) blocks typing in nested editables.
-* [#11079](https://dev.ckeditor.com/ticket/11079): Add button icons to the [Placeholder](https://ckeditor.com/cke4/addon/placeholder) sample.
-* [#10870](https://dev.ckeditor.com/ticket/10870): The `paste` command is no longer being disabled when the clipboard is empty.
-* [#10854](https://dev.ckeditor.com/ticket/10854): Fixed: Firefox prepends `<br>` to `<body>`, so it is stripped by the HTML data processor.
-* [#10823](https://dev.ckeditor.com/ticket/10823): Fixed: [Link](https://ckeditor.com/cke4/addon/link) plugin does not work with non-editable content.
-* [#10828](https://dev.ckeditor.com/ticket/10828): [Magic Line](https://ckeditor.com/cke4/addon/magicline) integration with the Widget System.
-* [#10865](https://dev.ckeditor.com/ticket/10865): Improved hiding copybin, so copying widgets works smoothly.
-* [#11066](https://dev.ckeditor.com/ticket/11066): Widget's private parts use CSS reset.
-* [#11027](https://dev.ckeditor.com/ticket/11027): Fixed: Block commands break on widgets; added the [`contentDomInvalidated`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_editor.html#event-contentDomInvalidated) event.
-* [#10430](https://dev.ckeditor.com/ticket/10430): Resolve dependence of the [Image](https://ckeditor.com/cke4/addon/image) plugin on the [Form Elements](https://ckeditor.com/cke4/addon/forms) plugin.
-* [#10911](https://dev.ckeditor.com/ticket/10911): Fixed: Browser *Alt* hotkeys will no longer be blocked while a widget is focused.
-* [#11082](https://dev.ckeditor.com/ticket/11082): Fixed: Selected widget is not copied or cut when using toolbar buttons or context menu.
-* [#11083](https://dev.ckeditor.com/ticket/11083): Fixed list and div element application to block widgets.
-* [#10887](https://dev.ckeditor.com/ticket/10887): Internet Explorer 8 compatibility issues related to the Widget System.
-* [#11074](https://dev.ckeditor.com/ticket/11074): Temporarily disabled inline widget drag and drop, because of seriously buggy native `range#moveToPoint` method.
-* [#11098](https://dev.ckeditor.com/ticket/11098): Fixed: Wrong selection position after undoing widget drag and drop.
-* [#11110](https://dev.ckeditor.com/ticket/11110): Fixed: IFrame and Flash objects are being incorrectly pasted in certain conditions.
-* [#11129](https://dev.ckeditor.com/ticket/11129): Page break is lost when loading data.
-* [#11123](https://dev.ckeditor.com/ticket/11123): [Firefox] Widget is destroyed after being dragged outside of `<body>`.
-* [#11124](https://dev.ckeditor.com/ticket/11124): Fixed the [Elements Path](https://ckeditor.com/cke4/addon/elementspath) in an editor using the [Div Editing Area](https://ckeditor.com/cke4/addon/divarea).
-
-## CKEditor 4.3 Beta
-
-New Features:
-
-* [#9764](https://dev.ckeditor.com/ticket/9764): Widget System.
-  * [Widget plugin](https://ckeditor.com/cke4/addon/widget) introducing the [Widget API](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR.plugins.widget.html).
-  * New [`editor.enterMode`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_editor.html#property-enterMode) and [`editor.shiftEnterMode`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_editor.html#property-shiftEnterMode) properties &ndash; normalized versions of [`config.enterMode`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_config.html#cfg-enterMode) and [`config.shiftEnterMode`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_config.html#cfg-shiftEnterMode).
-  * Dynamic editor settings. Starting from CKEditor 4.3 Beta, *Enter* mode values and [content filter](https://ckeditor.com/docs/ckeditor4/latest/guide/dev_advanced_content_filter.html) instances may be changed dynamically (for example when the caret was placed in an element in which editor features should be adjusted). When you are implementing a new editor feature, you should base its behavior on [dynamic](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_editor.html#property-activeEnterMode) or [static](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_editor.html#property-enterMode) *Enter* mode values depending on whether this feature works in selection context or globally on editor content.
-      * Dynamic *Enter* mode values &ndash; [`editor.setActiveEnterMode()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_editor.html#method-setActiveEnterMode) method, [`editor.activeEnterModeChange`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_editor.html#event-activeEnterModeChange) event, and two properties: [`editor.activeEnterMode`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_editor.html#property-activeEnterMode) and [`editor.activeShiftEnterMode`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_editor.html#property-activeShiftEnterMode).
-      * Dynamic content filter instances &ndash; [`editor.setActiveFilter()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_editor.html#method-setActiveFilter) method, [`editor.activeFilterChange`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_editor.html#event-activeFilterChange) event, and [`editor.activeFilter`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_editor.html#property-activeFilter) property.
-  * "Fake" selection was introduced. It makes it possible to virtually select any element when the real selection remains hidden. See the  [`selection.fake()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_dom_selection.html#method-fake) method.
-  * Default [`htmlParser.filter`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR.htmlParser.filter.html) rules are not applied to non-editable elements (elements with `contenteditable` attribute set to `false` and their descendants) anymore. To add a rule which will be applied to all elements you need to pass an additional argument to the [`filter.addRules()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_htmlParser_filter.html#method-addRules) method.
-  * Dozens of new methods were introduced &ndash; most interesting ones:
-      * [`document.find()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_dom_document.html#method-find),
-      * [`document.findOne()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_dom_document.html#method-findOne),
-      * [`editable.insertElementIntoRange()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_editable.html#method-insertElementIntoRange),
-      * [`range.moveToClosestEditablePosition()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_dom_range.html#method-moveToClosestEditablePosition),
-      * New methods for [`htmlParser.node`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR.htmlParser.node.html) and [`htmlParser.element`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR.htmlParser.element.html).
-* [#10659](https://dev.ckeditor.com/ticket/10659): New [Enhanced Image](https://ckeditor.com/cke4/addon/image2) plugin that introduces a widget with integrated image captions, an option to center images, and dynamic "click and drag" resizing.
-* [#10664](https://dev.ckeditor.com/ticket/10664): New [Mathematical Formulas](https://ckeditor.com/cke4/addon/mathjax) plugin that introduces the MathJax widget.
-* [#7987](https://dev.ckeditor.com/ticket/7987): New [Language](https://ckeditor.com/cke4/addon/language) plugin that implements Language toolbar button to support [WCAG 3.1.2 Language of Parts](http://www.w3.org/TR/UNDERSTANDING-WCAG20/meaning-other-lang-id.html).
-* [#10708](https://dev.ckeditor.com/ticket/10708): New [smileys](https://ckeditor.com/cke4/addon/smiley).
-
-## CKEditor 4.2.3
-
-Fixed Issues:
-
-* [#10994](https://dev.ckeditor.com/ticket/10994): Fixed: Loading external jQuery library when opening the [jQuery Adapter](https://ckeditor.com/docs/ckeditor4/latest/guide/dev_jquery.html) sample directly from file.
-* [#10975](https://dev.ckeditor.com/ticket/10975): [IE] Fixed: Error thrown while opening the color palette.
-* [#9929](https://dev.ckeditor.com/ticket/9929): [Blink/WebKit] Fixed: A non-breaking space is created once a character is deleted and a regular space is typed.
-* [#10963](https://dev.ckeditor.com/ticket/10963): Fixed: JAWS issue with the keyboard shortcut for [Magic Line](https://ckeditor.com/cke4/addon/magicline).
-* [#11096](https://dev.ckeditor.com/ticket/11096): Fixed: TypeError: Object has no method 'is'.
-
-## CKEditor 4.2.2
-
-Fixed Issues:
-
-* [#9314](https://dev.ckeditor.com/ticket/9314): Fixed: Incorrect error message on closing a dialog window without saving changs.
-* [#10308](https://dev.ckeditor.com/ticket/10308): [IE10] Fixed: Unspecified error when deleting a row.
-* [#10945](https://dev.ckeditor.com/ticket/10945): [Chrome] Fixed: Clicking with a mouse inside the editor does not show the caret.
-* [#10912](https://dev.ckeditor.com/ticket/10912): Prevent default action when content of a non-editable link is clicked.
-* [#10913](https://dev.ckeditor.com/ticket/10913): Fixed [`CKEDITOR.plugins.addExternal()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_resourceManager.html#method-addExternal) not handling paths including file name specified.
-* [#10666](https://dev.ckeditor.com/ticket/10666): Fixed [`CKEDITOR.tools.isArray()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_tools.html#method-isArray) not working cross frame.
-* [#10910](https://dev.ckeditor.com/ticket/10910): [IE9] Fixed JavaScript error thrown in Compatibility Mode when clicking and/or typing in the editing area.
-* [#10868](https://dev.ckeditor.com/ticket/10868): [IE8] Prevent the browser from crashing when applying the Inline Quotation style.
-* [#10915](https://dev.ckeditor.com/ticket/10915): Fixed: Invalid CSS filter in the Kama skin.
-* [#10914](https://dev.ckeditor.com/ticket/10914): Plugins [Indent List](https://ckeditor.com/cke4/addon/indentlist) and [Indent Block](https://ckeditor.com/cke4/addon/indentblock) are now included in the build configuration.
-* [#10812](https://dev.ckeditor.com/ticket/10812): Fixed [`range.createBookmark2()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_dom_range.html#method-createBookmark2) incorrectly normalizing offsets. This bug was causing many issues: [#10850](https://dev.ckeditor.com/ticket/10850), [#10842](https://dev.ckeditor.com/ticket/10842).
-* [#10951](https://dev.ckeditor.com/ticket/10951): Reviewed and optimized focus handling on panels (combo, menu buttons, color buttons, and context menu) to enhance accessibility. Fixed [#10705](https://dev.ckeditor.com/ticket/10705), [#10706](https://dev.ckeditor.com/ticket/10706) and [#10707](https://dev.ckeditor.com/ticket/10707).
-* [#10704](https://dev.ckeditor.com/ticket/10704): Fixed a JAWS issue with the Select Color dialog window title not being announced.
-* [#10753](https://dev.ckeditor.com/ticket/10753): The floating toolbar in inline instances now has a dedicated accessibility label.
-
-## CKEditor 4.2.1
-
-Fixed Issues:
-
-* [#10301](https://dev.ckeditor.com/ticket/10301): [IE9-10] Undo fails after 3+ consecutive paste actions with a JavaScript error.
-* [#10689](https://dev.ckeditor.com/ticket/10689): Save toolbar button saves only the first editor instance.
-* [#10368](https://dev.ckeditor.com/ticket/10368): Move language reading direction definition (`dir`) from main language file to core.
-* [#9330](https://dev.ckeditor.com/ticket/9330): Fixed pasting anchors from MS Word.
-* [#8103](https://dev.ckeditor.com/ticket/8103): Fixed pasting nested lists from MS Word.
-* [#9958](https://dev.ckeditor.com/ticket/9958): [IE9] Pressing the "OK" button will trigger the `onbeforeunload` event in the popup dialog.
-* [#10662](https://dev.ckeditor.com/ticket/10662): Fixed styles from the Styles drop-down list not registering to the ACF in case when the [Shared Spaces plugin](https://ckeditor.com/cke4/addon/sharedspace) is used.
-* [#9654](https://dev.ckeditor.com/ticket/9654): Problems with Internet Explorer 10 Quirks Mode.
-* [#9816](https://dev.ckeditor.com/ticket/9816): Floating toolbar does not reposition vertically in several cases.
-* [#10646](https://dev.ckeditor.com/ticket/10646): Removing a selected sublist or nested table with *Backspace/Delete* removes the parent element.
-* [#10623](https://dev.ckeditor.com/ticket/10623): [WebKit] Page is scrolled when opening a drop-down list.
-* [#10004](https://dev.ckeditor.com/ticket/10004): [ChromeVox] Button names are not announced.
-* [#10731](https://dev.ckeditor.com/ticket/10731): [WebSpellChecker](https://ckeditor.com/cke4/addon/wsc) plugin breaks cloning of editor configuration.
-* It is now possible to set per instance [WebSpellChecker](https://ckeditor.com/cke4/addon/wsc) plugin configuration instead of setting the configuration globally.
-
-## CKEditor 4.2
-
-**Important Notes:**
-
-* Dropped compatibility support for Internet Explorer 7 and Firefox 3.6.
-
-* Both the Basic and the Standard distribution packages will not contain the new [Indent Block](https://ckeditor.com/cke4/addon/indentblock) plugin. Because of this the [Advanced Content Filter](https://ckeditor.com/docs/ckeditor4/latest/guide/dev_advanced_content_filter.html) might remove block indentations from existing contents. If you want to prevent this, either [add an appropriate ACF rule to your filter](https://ckeditor.com/docs/ckeditor4/latest/guide/dev_allowed_content_rules.html) or create a custom build based on the Basic/Standard package and add the Indent Block plugin in [CKBuilder](https://ckeditor.com/cke4/builder).
-
-New Features:
-
-* [#10027](https://dev.ckeditor.com/ticket/10027): Separated list and block indentation into two plugins: [Indent List](https://ckeditor.com/cke4/addon/indentlist) and [Indent Block](https://ckeditor.com/cke4/addon/indentblock).
-* [#8244](https://dev.ckeditor.com/ticket/8244): Use *(Shift+)Tab* to indent and outdent lists.
-* [#10281](https://dev.ckeditor.com/ticket/10281): The [jQuery Adapter](https://ckeditor.com/docs/ckeditor4/latest/guide/dev_jquery.html) is now available. Several jQuery-related issues fixed: [#8261](https://dev.ckeditor.com/ticket/8261), [#9077](https://dev.ckeditor.com/ticket/9077), [#8710](https://dev.ckeditor.com/ticket/8710), [#8530](https://dev.ckeditor.com/ticket/8530), [#9019](https://dev.ckeditor.com/ticket/9019), [#6181](https://dev.ckeditor.com/ticket/6181), [#7876](https://dev.ckeditor.com/ticket/7876), [#6906](https://dev.ckeditor.com/ticket/6906).
-* [#10042](https://dev.ckeditor.com/ticket/10042): Introduced [`config.title`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_config.html#cfg-title) setting to change the human-readable title of the editor.
-* [#9794](https://dev.ckeditor.com/ticket/9794): Added [`editor.change`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_editor.html#event-change) event.
-* [#9923](https://dev.ckeditor.com/ticket/9923): HiDPI support in the editor UI. HiDPI icons for [Moono skin](https://ckeditor.com/cke4/addon/moono) added.
-* [#8031](https://dev.ckeditor.com/ticket/8031): Handle `required` attributes on `<textarea>` elements &mdash; introduced [`editor.required`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_editor.html#event-required) event.
-* [#10280](https://dev.ckeditor.com/ticket/10280): Ability to replace `<textarea>` elements with the inline editor.
-
-Fixed Issues:
-
-* [#10599](https://dev.ckeditor.com/ticket/10599): [Indent](https://ckeditor.com/cke4/addon/indent) plugin is no longer required by the [List](https://ckeditor.com/cke4/addon/list) plugin.
-* [#10370](https://dev.ckeditor.com/ticket/10370): Inconsistency in data events between framed and inline editors.
-* [#10438](https://dev.ckeditor.com/ticket/10438): [FF, IE] No selection is done on an editable element on executing [`editor.setData()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_editor.html#method-setData).
-
-## CKEditor 4.1.3
-
-New Features:
-
-* Added new translation: Indonesian.
-
-Fixed Issues:
-
-* [#10644](https://dev.ckeditor.com/ticket/10644): Fixed a critical bug when pasting plain text in Blink-based browsers.
-* [#5189](https://dev.ckeditor.com/ticket/5189): [Find/Replace](https://ckeditor.com/cke4/addon/find) dialog window: rename "Cancel" button to "Close".
-* [#10562](https://dev.ckeditor.com/ticket/10562): [Housekeeping] Unified CSS gradient filter formats in the [Moono](https://ckeditor.com/cke4/addon/moono) skin.
-* [#10537](https://dev.ckeditor.com/ticket/10537): Advanced Content Filter should register a default rule for [`config.shiftEnterMode`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_config.html#cfg-shiftEnterMode).
-* [#10610](https://dev.ckeditor.com/ticket/10610): [`CKEDITOR.dialog.addIframe()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_dialog.html#static-method-addIframe) incorrectly sets the iframe size in dialog windows.
-
-## CKEditor 4.1.2
-
-New Features:
-
-* Added new translation: Sinhala.
-
-Fixed Issues:
-
-* [#10339](https://dev.ckeditor.com/ticket/10339): Fixed: Error thrown when inserted data was totally stripped out after filtering and processing.
-* [#10298](https://dev.ckeditor.com/ticket/10298): Fixed: Data processor breaks attributes containing protected parts.
-* [#10367](https://dev.ckeditor.com/ticket/10367): Fixed: [`editable.insertText()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_editable.html#method-insertText) loses characters when `RegExp` replace controls are being inserted.
-* [#10165](https://dev.ckeditor.com/ticket/10165): [IE] Access denied error when `document.domain` has been altered.
-* [#9761](https://dev.ckeditor.com/ticket/9761): Update the *Backspace* key state in [`keystrokeHandler.blockedKeystrokes`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_keystrokeHandler.html#property-blockedKeystrokes) when calling [`editor.setReadOnly()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_editor.html#method-setReadOnly).
-* [#6504](https://dev.ckeditor.com/ticket/6504): Fixed: Race condition while loading several [`config.customConfig`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_config.html#cfg-customConfig) files.
-* [#10146](https://dev.ckeditor.com/ticket/10146): [Firefox] Empty lines are being removed while [`config.enterMode`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_config.html#cfg-enterMode) is [`CKEDITOR.ENTER_BR`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR.html#property-ENTER_BR).
-* [#10360](https://dev.ckeditor.com/ticket/10360): Fixed: ARIA `role="application"` should not be used for dialog windows.
-* [#10361](https://dev.ckeditor.com/ticket/10361): Fixed: ARIA `role="application"` should not be used for floating panels.
-* [#10510](https://dev.ckeditor.com/ticket/10510): Introduced unique voice labels to differentiate between different editor instances.
-* [#9945](https://dev.ckeditor.com/ticket/9945): [iOS] Scrolling not possible on iPad.
-* [#10389](https://dev.ckeditor.com/ticket/10389): Fixed: Invalid HTML in the "Text and Table" template.
-* [WebSpellChecker](https://ckeditor.com/cke4/addon/wsc) plugin user interface was changed to match CKEditor 4 style.
-
-## CKEditor 4.1.1
-
-New Features:
-
-* Added new translation: Albanian.
-
-Fixed Issues:
-
-* [#10172](https://dev.ckeditor.com/ticket/10172): Pressing *Delete* or *Backspace* in an empty table cell moves the cursor to the next/previous cell.
-* [#10219](https://dev.ckeditor.com/ticket/10219): Error thrown when destroying an editor instance in parallel with a `mouseup` event.
-* [#10265](https://dev.ckeditor.com/ticket/10265): Wrong loop type in the [File Browser](https://ckeditor.com/cke4/addon/filebrowser) plugin.
-* [#10249](https://dev.ckeditor.com/ticket/10249): Wrong undo/redo states at start.
-* [#10268](https://dev.ckeditor.com/ticket/10268): [Show Blocks](https://ckeditor.com/cke4/addon/showblocks) does not recover after switching to Source view.
-* [#9995](https://dev.ckeditor.com/ticket/9995): HTML code in the `<textarea>` should not be modified by the [`htmlDataProcessor`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR.htmlDataProcessor.html).
-* [#10320](https://dev.ckeditor.com/ticket/10320): [Justify](https://ckeditor.com/cke4/addon/justify) plugin should add elements to Advanced Content Filter based on current [Enter mode](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_config.html#cfg-enterMode).
-* [#10260](https://dev.ckeditor.com/ticket/10260): Fixed: Advanced Content Filter blocks [`tabSpaces`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_config.html#cfg-tabSpaces). Unified `data-cke-*` attributes filtering.
-* [#10315](https://dev.ckeditor.com/ticket/10315): [WebKit] [Undo manager](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR.plugins.undo.UndoManager.html) should not record snapshots after a filling character was added/removed.
-* [#10291](https://dev.ckeditor.com/ticket/10291): [WebKit] Space after a filling character should be secured.
-* [#10330](https://dev.ckeditor.com/ticket/10330): [WebKit] The filling character is not removed on `keydown` in specific cases.
-* [#10285](https://dev.ckeditor.com/ticket/10285): Fixed: Styled text pasted from MS Word causes an infinite loop.
-* [#10131](https://dev.ckeditor.com/ticket/10131): Fixed: [`undoManager.update()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_plugins_undo_UndoManager.html#method-update) does not refresh the command state.
-* [#10337](https://dev.ckeditor.com/ticket/10337): Fixed: Unable to remove `<s>` using [Remove Format](https://ckeditor.com/cke4/addon/removeformat).
-
-## CKEditor 4.1
-
-Fixed Issues:
-
-* [#10192](https://dev.ckeditor.com/ticket/10192): Closing lists with the *Enter* key does not work with [Advanced Content Filter](https://ckeditor.com/docs/ckeditor4/latest/guide/dev_advanced_content_filter.html) in several cases.
-* [#10191](https://dev.ckeditor.com/ticket/10191): Fixed allowed content rules unification, so the [`filter.allowedContent`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_filter.html#property-allowedContent) property always contains rules in the same format.
-* [#10224](https://dev.ckeditor.com/ticket/10224): Advanced Content Filter does not remove non-empty `<a>` elements anymore.
-* Minor issues in plugin integration with Advanced Content Filter:
-  * [#10166](https://dev.ckeditor.com/ticket/10166): Added transformation from the `align` attribute to `float` style to preserve backward compatibility after the introduction of Advanced Content Filter.
-  * [#10195](https://dev.ckeditor.com/ticket/10195): [Image](https://ckeditor.com/cke4/addon/image) plugin no longer registers rules for links to Advanced Content Filter.
-  * [#10213](https://dev.ckeditor.com/ticket/10213): [Justify](https://ckeditor.com/cke4/addon/justify) plugin is now correctly registering rules to Advanced Content Filter when [`config.justifyClasses`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_config.html#cfg-justifyClasses) is defined.
-
-## CKEditor 4.1 RC
-
-New Features:
-
-* [#9829](https://dev.ckeditor.com/ticket/9829): Advanced Content Filter - data and features activation based on editor configuration.
-
-  Brand new data filtering system that works in 2 modes:
-
-  * Based on loaded features (toolbar items, plugins) - the data will be filtered according to what the editor in its
-  current configuration can handle.
-  * Based on [`config.allowedContent`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_config.html#cfg-allowedContent) rules - the data
-  will be filtered and the editor features (toolbar items, commands, keystrokes) will be enabled if they are allowed.
-
-  See the `datafiltering.html` sample, [guides](https://ckeditor.com/docs/ckeditor4/latest/guide/dev_advanced_content_filter.html) and [`CKEDITOR.filter` API documentation](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR.filter.html).
-* [#9387](https://dev.ckeditor.com/ticket/9387): Reintroduced [Shared Spaces](https://ckeditor.com/cke4/addon/sharedspace) - the ability to display toolbar and bottom editor space in selected locations and to share them by different editor instances.
-* [#9907](https://dev.ckeditor.com/ticket/9907): Added the [`contentPreview`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR.html#event-contentPreview) event for preview data manipulation.
-* [#9713](https://dev.ckeditor.com/ticket/9713): Introduced the [Source Dialog](https://ckeditor.com/cke4/addon/sourcedialog) plugin that brings raw HTML editing for inline editor instances.
-* Included in [#9829](https://dev.ckeditor.com/ticket/9829): Introduced new events, [`toHtml`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_editor.html#event-toHtml) and [`toDataFormat`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_editor.html#event-toDataFormat), allowing for better integration with data processing.
-* [#9981](https://dev.ckeditor.com/ticket/9981): Added ability to filter [`htmlParser.fragment`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR.htmlParser.fragment.html), [`htmlParser.element`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR.htmlParser.element.html) etc. by many [`htmlParser.filter`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR.htmlParser.filter.html)s before writing structure to an HTML string.
-* Included in [#10103](https://dev.ckeditor.com/ticket/10103):
-  * Introduced the [`editor.status`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_editor.html#property-status) property to make it easier to check the current status of the editor.
-  * Default [`command`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR.command.html) state is now [`CKEDITOR.TRISTATE_DISABLE`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR.html#property-TRISTATE_DISABLED). It will be activated on [`editor.instanceReady`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR.html#event-instanceReady) or immediately after being added if the editor is already initialized.
-* [#9796](https://dev.ckeditor.com/ticket/9796): Introduced `<s>` as a default tag for strikethrough, which replaces obsolete `<strike>` in HTML5.
-
-## CKEditor 4.0.3
-
-Fixed Issues:
-
-* [#10196](https://dev.ckeditor.com/ticket/10196): Fixed context menus not opening with keyboard shortcuts when [Autogrow](https://ckeditor.com/cke4/addon/autogrow) is enabled.
-* [#10212](https://dev.ckeditor.com/ticket/10212): [IE7-10] Undo command throws errors after multiple switches between Source and WYSIWYG view.
-* [#10219](https://dev.ckeditor.com/ticket/10219): [Inline editor] Error thrown after calling [`editor.destroy()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_editor.html#method-destroy).
-
-## CKEditor 4.0.2
-
-Fixed Issues:
-
-* [#9779](https://dev.ckeditor.com/ticket/9779): Fixed overriding [`CKEDITOR.getUrl()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR.html#method-getUrl) with `CKEDITOR_GETURL`.
-* [#9772](https://dev.ckeditor.com/ticket/9772): Custom buttons in the dialog window footer have different look and size ([Moono](https://ckeditor.com/cke4/addon/moono), [Kama](https://ckeditor.com/cke4/addon/kama) skins).
-* [#9029](https://dev.ckeditor.com/ticket/9029): Custom styles added with the [`stylesSet.add()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_stylesSet.html#method-add) are displayed in the wrong order.
-* [#9887](https://dev.ckeditor.com/ticket/9887): Disable [Magic Line](https://ckeditor.com/cke4/addon/magicline) when [`editor.readOnly`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_editor.html#property-readOnly) is set.
-* [#9882](https://dev.ckeditor.com/ticket/9882): Fixed empty document title on [`editor.getData()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_editor.html#method-getData) if set via the Document Properties dialog window.
-* [#9773](https://dev.ckeditor.com/ticket/9773): Fixed rendering problems with selection fields in the Kama skin.
-* [#9851](https://dev.ckeditor.com/ticket/9851): The [`selectionChange`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_editor.html#event-selectionChange) event is not fired when mouse selection ended outside editable.
-* [#9903](https://dev.ckeditor.com/ticket/9903): [Inline editor] Bad positioning of floating space with page horizontal scroll.
-* [#9872](https://dev.ckeditor.com/ticket/9872): [`editor.checkDirty()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_editor.html#method-checkDirty) returns `true` when called onload. Removed the obsolete `editor.mayBeDirty` flag.
-* [#9893](https://dev.ckeditor.com/ticket/9893): [IE] Fixed broken toolbar when editing mixed direction content in Quirks mode.
-* [#9845](https://dev.ckeditor.com/ticket/9845): Fixed TAB navigation in the [Link](https://ckeditor.com/cke4/addon/link) dialog window when the Anchor option is used and no anchors are available.
-* [#9883](https://dev.ckeditor.com/ticket/9883): Maximizing was making the entire page editable with [divarea](https://ckeditor.com/cke4/addon/divarea)-based editors.
-* [#9940](https://dev.ckeditor.com/ticket/9940): [Firefox] Navigating back to a page with the editor was making the entire page editable.
-* [#9966](https://dev.ckeditor.com/ticket/9966): Fixed: Unable to type square brackets with French keyboard layout. Changed [Magic Line](https://ckeditor.com/cke4/addon/magicline) keystrokes.
-* [#9507](https://dev.ckeditor.com/ticket/9507): [Firefox] Selection is moved before editable position when the editor is focused for the first time.
-* [#9947](https://dev.ckeditor.com/ticket/9947): [WebKit] Editor overflows parent container in some edge cases.
-* [#10105](https://dev.ckeditor.com/ticket/10105): Fixed: Broken [sourcearea](https://ckeditor.com/cke4/addon/sourcearea) view when an RTL language is set.
-* [#10123](https://dev.ckeditor.com/ticket/10123): [WebKit] Fixed: Several dialog windows have broken layout since the latest WebKit release.
-* [#10152](https://dev.ckeditor.com/ticket/10152): Fixed: Invalid ARIA property used on menu items.
-
-## CKEditor 4.0.1.1
-
-Fixed Issues:
-
-* Security update: Added protection against XSS attack and possible path disclosure in the PHP sample.
-
-## CKEditor 4.0.1
-
-Fixed Issues:
-
-* [#9655](https://dev.ckeditor.com/ticket/9655): Support for IE Quirks Mode in the new [Moono skin](https://ckeditor.com/cke4/addon/moono).
-* Accessibility issues (mainly in inline editor): [#9364](https://dev.ckeditor.com/ticket/9364), [#9368](https://dev.ckeditor.com/ticket/9368), [#9369](https://dev.ckeditor.com/ticket/9369), [#9370](https://dev.ckeditor.com/ticket/9370), [#9541](https://dev.ckeditor.com/ticket/9541), [#9543](https://dev.ckeditor.com/ticket/9543), [#9841](https://dev.ckeditor.com/ticket/9841), [#9844](https://dev.ckeditor.com/ticket/9844).
-* [Magic Line](https://ckeditor.com/cke4/addon/magicline) plugin:
-    * [#9481](https://dev.ckeditor.com/ticket/9481): Added accessibility support for Magic Line.
-    * [#9509](https://dev.ckeditor.com/ticket/9509): Added Magic Line support for forms.
-    * [#9573](https://dev.ckeditor.com/ticket/9573): Magic Line does not disappear on `mouseout` in a specific case.
-* [#9754](https://dev.ckeditor.com/ticket/9754): [WebKit] Cutting & pasting simple unformatted text generates an inline wrapper in WebKit browsers.
-* [#9456](https://dev.ckeditor.com/ticket/9456): [Chrome] Properly paste bullet list style from MS Word.
-* [#9699](https://dev.ckeditor.com/ticket/9699), [#9758](https://dev.ckeditor.com/ticket/9758): Improved selection locking when selecting by dragging.
-* Context menu:
-    * [#9712](https://dev.ckeditor.com/ticket/9712): Opening the context menu destroys editor focus.
-    * [#9366](https://dev.ckeditor.com/ticket/9366): Context menu should be displayed over the floating toolbar.
-    * [#9706](https://dev.ckeditor.com/ticket/9706): Context menu generates a JavaScript error in inline mode when the editor is attached to a header element.
-* [#9800](https://dev.ckeditor.com/ticket/9800): Hide float panel when resizing the window.
-* [#9721](https://dev.ckeditor.com/ticket/9721): Padding in content of div-based editor puts the editing area under the bottom UI space.
-* [#9528](https://dev.ckeditor.com/ticket/9528): Host page `box-sizing` style should not influence the editor UI elements.
-* [#9503](https://dev.ckeditor.com/ticket/9503): [Form Elements](https://ckeditor.com/cke4/addon/forms) plugin adds context menu listeners only on supported input types. Added support for `tel`, `email`, `search` and `url` input types.
-* [#9769](https://dev.ckeditor.com/ticket/9769): Improved floating toolbar positioning in a narrow window.
-* [#9875](https://dev.ckeditor.com/ticket/9875): Table dialog window does not populate width correctly.
-* [#8675](https://dev.ckeditor.com/ticket/8675): Deleting cells in a nested table removes the outer table cell.
-* [#9815](https://dev.ckeditor.com/ticket/9815): Cannot edit dialog window fields in an editor initialized in the jQuery UI modal dialog.
-* [#8888](https://dev.ckeditor.com/ticket/8888): CKEditor dialog windows do not show completely in a small window.
-* [#9360](https://dev.ckeditor.com/ticket/9360): [Inline editor] Blocks shown for a `<div>` element stay permanently even after the user exits editing the `<div>`.
-* [#9531](https://dev.ckeditor.com/ticket/9531): [Firefox & Inline editor] Toolbar is lost when closing the Format drop-down list by clicking its button.
-* [#9553](https://dev.ckeditor.com/ticket/9553): Table width incorrectly set when the `border-width` style is specified.
-* [#9594](https://dev.ckeditor.com/ticket/9594): Cannot tab past CKEditor when it is in read-only mode.
-* [#9658](https://dev.ckeditor.com/ticket/9658): [IE9] Justify not working on selected images.
-* [#9686](https://dev.ckeditor.com/ticket/9686): Added missing contents styles for `<pre>` elements.
-* [#9709](https://dev.ckeditor.com/ticket/9709): [Paste from Word](https://ckeditor.com/cke4/addon/pastefromword) should not depend on configuration from other styles.
-* [#9726](https://dev.ckeditor.com/ticket/9726): Removed [Color Dialog](https://ckeditor.com/cke4/addon/colordialog) plugin dependency from [Table Tools](https://ckeditor.com/cke4/addon/tabletools).
-* [#9765](https://dev.ckeditor.com/ticket/9765): Toolbar Collapse command documented incorrectly in the [Accessibility Instructions](https://ckeditor.com/cke4/addon/a11yhelp) dialog window.
-* [#9771](https://dev.ckeditor.com/ticket/9771): [WebKit & Opera] Fixed scrolling issues when pasting.
-* [#9787](https://dev.ckeditor.com/ticket/9787): [IE9] `onChange` is not fired for checkboxes in dialogs.
-* [#9842](https://dev.ckeditor.com/ticket/9842): [Firefox 17] When opening a toolbar menu for the first time and pressing the *Down Arrow* key, focus goes to the next toolbar button instead of the menu options.
-* [#9847](https://dev.ckeditor.com/ticket/9847): [Elements Path](https://ckeditor.com/cke4/addon/elementspath) should not be initialized in the inline editor.
-* [#9853](https://dev.ckeditor.com/ticket/9853): [`editor.addRemoveFormatFilter()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_editor.html#method-addRemoveFormatFilter) is exposed before it really works.
-* [#8893](https://dev.ckeditor.com/ticket/8893): Value of the [`pasteFromWordCleanupFile`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_config.html#cfg-pasteFromWordCleanupFile) configuration option is now taken from the instance configuration.
-* [#9693](https://dev.ckeditor.com/ticket/9693): Removed "Live Preview" checkbox from UI color picker.
-
-
-## CKEditor 4.0
-
-The first stable release of the new CKEditor 4 code line.
-
-The CKEditor JavaScript API has been kept compatible with CKEditor 4, whenever
-possible. The list of relevant changes can be found in the [API Changes page of
-the CKEditor 4 documentation][1].
-
-[1]: https://ckeditor.com/docs/ckeditor4/latest/guide/dev_api_changes.html "API Changes"
diff --git a/web/modules/ckeditor/vendor/LICENSE.md b/web/modules/ckeditor/vendor/LICENSE.md
deleted file mode 100644
index 4056b1f214ed088883aabf2d5a745a70411990be..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/LICENSE.md
+++ /dev/null
@@ -1,1436 +0,0 @@
-Software License Agreement
-==========================
-
-CKEditor - The text editor for Internet - https://ckeditor.com/
-Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
-
-Licensed under the terms of any of the following licenses at your
-choice:
-
- - GNU General Public License Version 2 or later (the "GPL")
-   https://www.gnu.org/licenses/gpl.html
-   (See Appendix A)
-
- - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
-   https://www.gnu.org/licenses/lgpl.html
-   (See Appendix B)
-
- - Mozilla Public License Version 1.1 or later (the "MPL")
-   https://www.mozilla.org/MPL/MPL-1.1.html
-   (See Appendix C)
-
-You are not required to, but if you want to explicitly declare the
-license you have chosen to be bound to when using, reproducing,
-modifying and distributing this software, just include a text file
-titled "legal.txt" in your version of this software, indicating your
-license choice. In any case, your choice will not restrict any
-recipient of your version of this software to use, reproduce, modify
-and distribute this software under any of the above licenses.
-
-Sources of Intellectual Property Included in CKEditor
------------------------------------------------------
-
-Where not otherwise indicated, all CKEditor content is authored by
-CKSource engineers and consists of CKSource-owned intellectual
-property. In some specific instances, CKEditor will incorporate work
-done by developers outside of CKSource with their express permission.
-
-The following libraries are included in CKEditor under the MIT license (see Appendix D):
-
-* CKSource Samples Framework (included in the samples) - Copyright (c) 2014-2022, CKSource Holding sp. z o.o.
-* PicoModal (included in `samples/js/sf.js`) - Copyright (c) 2012 James Frasca.
-* CodeMirror (included in the samples) - Copyright (C) 2014 by Marijn Haverbeke <marijnh@gmail.com> and others.
-* ES6Promise - Copyright (c) 2014 Yehuda Katz, Tom Dale, Stefan Penner and contributors.
-* A polyfill for `CSS.escape` (adopted with modifications in `core/tools.js`), Mathias Bynens, v1.5.1, https://mths.be/cssescape.
-
-Parts of code taken from the following libraries are included in CKEditor under the MIT license (see Appendix D):
-
-* jQuery (inspired the domReady function, ckeditor_base.js) - Copyright (c) 2011 John Resig, https://jquery.com/
-
-The following libraries are included in CKEditor under the SIL Open Font License, Version 1.1 (see Appendix E):
-
-* Font Awesome (included in the toolbar configurator) - Copyright (C) 2012 by Dave Gandy.
-
-The following libraries are included in CKEditor under the BSD-3 License (see Appendix F):
-
-* highlight.js (included in the `codesnippet` plugin) - Copyright (c) 2006, Ivan Sagalaev.
-* YUI Library (included in the `uicolor` plugin) - Copyright (c) 2009, Yahoo! Inc.
-
-
-Trademarks
-----------
-
-CKEditor is a trademark of CKSource Holding sp. z o.o. All other brand
-and product names are trademarks, registered trademarks or service
-marks of their respective holders.
-
----
-
-Appendix A: The GPL License
----------------------------
-
-```
-GNU GENERAL PUBLIC LICENSE
-Version 2, June 1991
-
- Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
- 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
-Preamble
-
-  The licenses for most software are designed to take away your
-freedom to share and change it.  By contrast, the GNU General Public
-License is intended to guarantee your freedom to share and change free
-software-to make sure the software is free for all its users.  This
-General Public License applies to most of the Free Software
-Foundation's software and to any other program whose authors commit to
-using it.  (Some other Free Software Foundation software is covered by
-the GNU Lesser General Public License instead.)  You can apply it to
-your programs, too.
-
-  When we speak of free software, we are referring to freedom, not
-price.  Our General Public Licenses are designed to make sure that you
-have the freedom to distribute copies of free software (and charge for
-this service if you wish), that you receive source code or can get it
-if you want it, that you can change the software or use pieces of it
-in new free programs; and that you know you can do these things.
-
-  To protect your rights, we need to make restrictions that forbid
-anyone to deny you these rights or to ask you to surrender the rights.
-These restrictions translate to certain responsibilities for you if you
-distribute copies of the software, or if you modify it.
-
-  For example, if you distribute copies of such a program, whether
-gratis or for a fee, you must give the recipients all the rights that
-you have.  You must make sure that they, too, receive or can get the
-source code.  And you must show them these terms so they know their
-rights.
-
-  We protect your rights with two steps: (1) copyright the software, and
-(2) offer you this license which gives you legal permission to copy,
-distribute and/or modify the software.
-
-  Also, for each author's protection and ours, we want to make certain
-that everyone understands that there is no warranty for this free
-software.  If the software is modified by someone else and passed on, we
-want its recipients to know that what they have is not the original, so
-that any problems introduced by others will not reflect on the original
-authors' reputations.
-
-  Finally, any free program is threatened constantly by software
-patents.  We wish to avoid the danger that redistributors of a free
-program will individually obtain patent licenses, in effect making the
-program proprietary.  To prevent this, we have made it clear that any
-patent must be licensed for everyone's free use or not licensed at all.
-
-  The precise terms and conditions for copying, distribution and
-modification follow.
-
-GNU GENERAL PUBLIC LICENSE
-TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
-  0. This License applies to any program or other work which contains
-a notice placed by the copyright holder saying it may be distributed
-under the terms of this General Public License.  The "Program", below,
-refers to any such program or work, and a "work based on the Program"
-means either the Program or any derivative work under copyright law:
-that is to say, a work containing the Program or a portion of it,
-either verbatim or with modifications and/or translated into another
-language.  (Hereinafter, translation is included without limitation in
-the term "modification".)  Each licensee is addressed as "you".
-
-Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope.  The act of
-running the Program is not restricted, and the output from the Program
-is covered only if its contents constitute a work based on the
-Program (independent of having been made by running the Program).
-Whether that is true depends on what the Program does.
-
-  1. You may copy and distribute verbatim copies of the Program's
-source code as you receive it, in any medium, provided that you
-conspicuously and appropriately publish on each copy an appropriate
-copyright notice and disclaimer of warranty; keep intact all the
-notices that refer to this License and to the absence of any warranty;
-and give any other recipients of the Program a copy of this License
-along with the Program.
-
-You may charge a fee for the physical act of transferring a copy, and
-you may at your option offer warranty protection in exchange for a fee.
-
-  2. You may modify your copy or copies of the Program or any portion
-of it, thus forming a work based on the Program, and copy and
-distribute such modifications or work under the terms of Section 1
-above, provided that you also meet all of these conditions:
-
-    a) You must cause the modified files to carry prominent notices
-    stating that you changed the files and the date of any change.
-
-    b) You must cause any work that you distribute or publish, that in
-    whole or in part contains or is derived from the Program or any
-    part thereof, to be licensed as a whole at no charge to all third
-    parties under the terms of this License.
-
-    c) If the modified program normally reads commands interactively
-    when run, you must cause it, when started running for such
-    interactive use in the most ordinary way, to print or display an
-    announcement including an appropriate copyright notice and a
-    notice that there is no warranty (or else, saying that you provide
-    a warranty) and that users may redistribute the program under
-    these conditions, and telling the user how to view a copy of this
-    License.  (Exception: if the Program itself is interactive but
-    does not normally print such an announcement, your work based on
-    the Program is not required to print an announcement.)
-
-These requirements apply to the modified work as a whole.  If
-identifiable sections of that work are not derived from the Program,
-and can be reasonably considered independent and separate works in
-themselves, then this License, and its terms, do not apply to those
-sections when you distribute them as separate works.  But when you
-distribute the same sections as part of a whole which is a work based
-on the Program, the distribution of the whole must be on the terms of
-this License, whose permissions for other licensees extend to the
-entire whole, and thus to each and every part regardless of who wrote it.
-
-Thus, it is not the intent of this section to claim rights or contest
-your rights to work written entirely by you; rather, the intent is to
-exercise the right to control the distribution of derivative or
-collective works based on the Program.
-
-In addition, mere aggregation of another work not based on the Program
-with the Program (or with a work based on the Program) on a volume of
-a storage or distribution medium does not bring the other work under
-the scope of this License.
-
-  3. You may copy and distribute the Program (or a work based on it,
-under Section 2) in object code or executable form under the terms of
-Sections 1 and 2 above provided that you also do one of the following:
-
-    a) Accompany it with the complete corresponding machine-readable
-    source code, which must be distributed under the terms of Sections
-    1 and 2 above on a medium customarily used for software interchange; or,
-
-    b) Accompany it with a written offer, valid for at least three
-    years, to give any third party, for a charge no more than your
-    cost of physically performing source distribution, a complete
-    machine-readable copy of the corresponding source code, to be
-    distributed under the terms of Sections 1 and 2 above on a medium
-    customarily used for software interchange; or,
-
-    c) Accompany it with the information you received as to the offer
-    to distribute corresponding source code.  (This alternative is
-    allowed only for noncommercial distribution and only if you
-    received the program in object code or executable form with such
-    an offer, in accord with Subsection b above.)
-
-The source code for a work means the preferred form of the work for
-making modifications to it.  For an executable work, complete source
-code means all the source code for all modules it contains, plus any
-associated interface definition files, plus the scripts used to
-control compilation and installation of the executable.  However, as a
-special exception, the source code distributed need not include
-anything that is normally distributed (in either source or binary
-form) with the major components (compiler, kernel, and so on) of the
-operating system on which the executable runs, unless that component
-itself accompanies the executable.
-
-If distribution of executable or object code is made by offering
-access to copy from a designated place, then offering equivalent
-access to copy the source code from the same place counts as
-distribution of the source code, even though third parties are not
-compelled to copy the source along with the object code.
-
-  4. You may not copy, modify, sublicense, or distribute the Program
-except as expressly provided under this License.  Any attempt
-otherwise to copy, modify, sublicense or distribute the Program is
-void, and will automatically terminate your rights under this License.
-However, parties who have received copies, or rights, from you under
-this License will not have their licenses terminated so long as such
-parties remain in full compliance.
-
-  5. You are not required to accept this License, since you have not
-signed it.  However, nothing else grants you permission to modify or
-distribute the Program or its derivative works.  These actions are
-prohibited by law if you do not accept this License.  Therefore, by
-modifying or distributing the Program (or any work based on the
-Program), you indicate your acceptance of this License to do so, and
-all its terms and conditions for copying, distributing or modifying
-the Program or works based on it.
-
-  6. Each time you redistribute the Program (or any work based on the
-Program), the recipient automatically receives a license from the
-original licensor to copy, distribute or modify the Program subject to
-these terms and conditions.  You may not impose any further
-restrictions on the recipients' exercise of the rights granted herein.
-You are not responsible for enforcing compliance by third parties to
-this License.
-
-  7. If, as a consequence of a court judgment or allegation of patent
-infringement or for any other reason (not limited to patent issues),
-conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License.  If you cannot
-distribute so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you
-may not distribute the Program at all.  For example, if a patent
-license would not permit royalty-free redistribution of the Program by
-all those who receive copies directly or indirectly through you, then
-the only way you could satisfy both it and this License would be to
-refrain entirely from distribution of the Program.
-
-If any portion of this section is held invalid or unenforceable under
-any particular circumstance, the balance of the section is intended to
-apply and the section as a whole is intended to apply in other
-circumstances.
-
-It is not the purpose of this section to induce you to infringe any
-patents or other property right claims or to contest validity of any
-such claims; this section has the sole purpose of protecting the
-integrity of the free software distribution system, which is
-implemented by public license practices.  Many people have made
-generous contributions to the wide range of software distributed
-through that system in reliance on consistent application of that
-system; it is up to the author/donor to decide if he or she is willing
-to distribute software through any other system and a licensee cannot
-impose that choice.
-
-This section is intended to make thoroughly clear what is believed to
-be a consequence of the rest of this License.
-
-  8. If the distribution and/or use of the Program is restricted in
-certain countries either by patents or by copyrighted interfaces, the
-original copyright holder who places the Program under this License
-may add an explicit geographical distribution limitation excluding
-those countries, so that distribution is permitted only in or among
-countries not thus excluded.  In such case, this License incorporates
-the limitation as if written in the body of this License.
-
-  9. The Free Software Foundation may publish revised and/or new versions
-of the General Public License from time to time.  Such new versions will
-be similar in spirit to the present version, but may differ in detail to
-address new problems or concerns.
-
-Each version is given a distinguishing version number.  If the Program
-specifies a version number of this License which applies to it and "any
-later version", you have the option of following the terms and conditions
-either of that version or of any later version published by the Free
-Software Foundation.  If the Program does not specify a version number of
-this License, you may choose any version ever published by the Free Software
-Foundation.
-
-  10. If you wish to incorporate parts of the Program into other free
-programs whose distribution conditions are different, write to the author
-to ask for permission.  For software which is copyrighted by the Free
-Software Foundation, write to the Free Software Foundation; we sometimes
-make exceptions for this.  Our decision will be guided by the two goals
-of preserving the free status of all derivatives of our free software and
-of promoting the sharing and reuse of software generally.
-
-NO WARRANTY
-
-  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
-FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
-OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
-PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
-OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
-TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
-PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
-REPAIR OR CORRECTION.
-
-  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
-WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
-REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
-INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
-OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
-TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
-YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
-PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGES.
-
-END OF TERMS AND CONDITIONS
-```
-
-Appendix B: The LGPL License
-----------------------------
-
-```
-GNU LESSER GENERAL PUBLIC LICENSE
-Version 2.1, February 1999
-
- Copyright (C) 1991, 1999 Free Software Foundation, Inc.
-     59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
-[This is the first released version of the Lesser GPL.  It also counts
- as the successor of the GNU Library Public License, version 2, hence
- the version number 2.1.]
-
-Preamble
-
-  The licenses for most software are designed to take away your
-freedom to share and change it.  By contrast, the GNU General Public
-Licenses are intended to guarantee your freedom to share and change
-free software-to make sure the software is free for all its users.
-
-  This license, the Lesser General Public License, applies to some
-specially designated software packages-typically libraries-of the
-Free Software Foundation and other authors who decide to use it.  You
-can use it too, but we suggest you first think carefully about whether
-this license or the ordinary General Public License is the better
-strategy to use in any particular case, based on the explanations below.
-
-  When we speak of free software, we are referring to freedom of use,
-not price.  Our General Public Licenses are designed to make sure that
-you have the freedom to distribute copies of free software (and charge
-for this service if you wish); that you receive source code or can get
-it if you want it; that you can change the software and use pieces of
-it in new free programs; and that you are informed that you can do
-these things.
-
-  To protect your rights, we need to make restrictions that forbid
-distributors to deny you these rights or to ask you to surrender these
-rights.  These restrictions translate to certain responsibilities for
-you if you distribute copies of the library or if you modify it.
-
-  For example, if you distribute copies of the library, whether gratis
-or for a fee, you must give the recipients all the rights that we gave
-you.  You must make sure that they, too, receive or can get the source
-code.  If you link other code with the library, you must provide
-complete object files to the recipients, so that they can relink them
-with the library after making changes to the library and recompiling
-it.  And you must show them these terms so they know their rights.
-
-  We protect your rights with a two-step method: (1) we copyright the
-library, and (2) we offer you this license, which gives you legal
-permission to copy, distribute and/or modify the library.
-
-  To protect each distributor, we want to make it very clear that
-there is no warranty for the free library.  Also, if the library is
-modified by someone else and passed on, the recipients should know
-that what they have is not the original version, so that the original
-author's reputation will not be affected by problems that might be
-introduced by others.
-
-  Finally, software patents pose a constant threat to the existence of
-any free program.  We wish to make sure that a company cannot
-effectively restrict the users of a free program by obtaining a
-restrictive license from a patent holder.  Therefore, we insist that
-any patent license obtained for a version of the library must be
-consistent with the full freedom of use specified in this license.
-
-  Most GNU software, including some libraries, is covered by the
-ordinary GNU General Public License.  This license, the GNU Lesser
-General Public License, applies to certain designated libraries, and
-is quite different from the ordinary General Public License.  We use
-this license for certain libraries in order to permit linking those
-libraries into non-free programs.
-
-  When a program is linked with a library, whether statically or using
-a shared library, the combination of the two is legally speaking a
-combined work, a derivative of the original library.  The ordinary
-General Public License therefore permits such linking only if the
-entire combination fits its criteria of freedom.  The Lesser General
-Public License permits more lax criteria for linking other code with
-the library.
-
-  We call this license the "Lesser" General Public License because it
-does Less to protect the user's freedom than the ordinary General
-Public License.  It also provides other free software developers Less
-of an advantage over competing non-free programs.  These disadvantages
-are the reason we use the ordinary General Public License for many
-libraries.  However, the Lesser license provides advantages in certain
-special circumstances.
-
-  For example, on rare occasions, there may be a special need to
-encourage the widest possible use of a certain library, so that it becomes
-a de-facto standard.  To achieve this, non-free programs must be
-allowed to use the library.  A more frequent case is that a free
-library does the same job as widely used non-free libraries.  In this
-case, there is little to gain by limiting the free library to free
-software only, so we use the Lesser General Public License.
-
-  In other cases, permission to use a particular library in non-free
-programs enables a greater number of people to use a large body of
-free software.  For example, permission to use the GNU C Library in
-non-free programs enables many more people to use the whole GNU
-operating system, as well as its variant, the GNU/Linux operating
-system.
-
-  Although the Lesser General Public License is Less protective of the
-users' freedom, it does ensure that the user of a program that is
-linked with the Library has the freedom and the wherewithal to run
-that program using a modified version of the Library.
-
-  The precise terms and conditions for copying, distribution and
-modification follow.  Pay close attention to the difference between a
-"work based on the library" and a "work that uses the library".  The
-former contains code derived from the library, whereas the latter must
-be combined with the library in order to run.
-
-GNU LESSER GENERAL PUBLIC LICENSE
-TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
-  0. This License Agreement applies to any software library or other
-program which contains a notice placed by the copyright holder or
-other authorized party saying it may be distributed under the terms of
-this Lesser General Public License (also called "this License").
-Each licensee is addressed as "you".
-
-  A "library" means a collection of software functions and/or data
-prepared so as to be conveniently linked with application programs
-(which use some of those functions and data) to form executables.
-
-  The "Library", below, refers to any such software library or work
-which has been distributed under these terms.  A "work based on the
-Library" means either the Library or any derivative work under
-copyright law: that is to say, a work containing the Library or a
-portion of it, either verbatim or with modifications and/or translated
-straightforwardly into another language.  (Hereinafter, translation is
-included without limitation in the term "modification".)
-
-  "Source code" for a work means the preferred form of the work for
-making modifications to it.  For a library, complete source code means
-all the source code for all modules it contains, plus any associated
-interface definition files, plus the scripts used to control compilation
-and installation of the library.
-
-  Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope.  The act of
-running a program using the Library is not restricted, and output from
-such a program is covered only if its contents constitute a work based
-on the Library (independent of the use of the Library in a tool for
-writing it).  Whether that is true depends on what the Library does
-and what the program that uses the Library does.
-
-  1. You may copy and distribute verbatim copies of the Library's
-complete source code as you receive it, in any medium, provided that
-you conspicuously and appropriately publish on each copy an
-appropriate copyright notice and disclaimer of warranty; keep intact
-all the notices that refer to this License and to the absence of any
-warranty; and distribute a copy of this License along with the
-Library.
-
-  You may charge a fee for the physical act of transferring a copy,
-and you may at your option offer warranty protection in exchange for a
-fee.
-
-  2. You may modify your copy or copies of the Library or any portion
-of it, thus forming a work based on the Library, and copy and
-distribute such modifications or work under the terms of Section 1
-above, provided that you also meet all of these conditions:
-
-    a) The modified work must itself be a software library.
-
-    b) You must cause the files modified to carry prominent notices
-    stating that you changed the files and the date of any change.
-
-    c) You must cause the whole of the work to be licensed at no
-    charge to all third parties under the terms of this License.
-
-    d) If a facility in the modified Library refers to a function or a
-    table of data to be supplied by an application program that uses
-    the facility, other than as an argument passed when the facility
-    is invoked, then you must make a good faith effort to ensure that,
-    in the event an application does not supply such function or
-    table, the facility still operates, and performs whatever part of
-    its purpose remains meaningful.
-
-    (For example, a function in a library to compute square roots has
-    a purpose that is entirely well-defined independent of the
-    application.  Therefore, Subsection 2d requires that any
-    application-supplied function or table used by this function must
-    be optional: if the application does not supply it, the square
-    root function must still compute square roots.)
-
-These requirements apply to the modified work as a whole.  If
-identifiable sections of that work are not derived from the Library,
-and can be reasonably considered independent and separate works in
-themselves, then this License, and its terms, do not apply to those
-sections when you distribute them as separate works.  But when you
-distribute the same sections as part of a whole which is a work based
-on the Library, the distribution of the whole must be on the terms of
-this License, whose permissions for other licensees extend to the
-entire whole, and thus to each and every part regardless of who wrote
-it.
-
-Thus, it is not the intent of this section to claim rights or contest
-your rights to work written entirely by you; rather, the intent is to
-exercise the right to control the distribution of derivative or
-collective works based on the Library.
-
-In addition, mere aggregation of another work not based on the Library
-with the Library (or with a work based on the Library) on a volume of
-a storage or distribution medium does not bring the other work under
-the scope of this License.
-
-  3. You may opt to apply the terms of the ordinary GNU General Public
-License instead of this License to a given copy of the Library.  To do
-this, you must alter all the notices that refer to this License, so
-that they refer to the ordinary GNU General Public License, version 2,
-instead of to this License.  (If a newer version than version 2 of the
-ordinary GNU General Public License has appeared, then you can specify
-that version instead if you wish.)  Do not make any other change in
-these notices.
-
-  Once this change is made in a given copy, it is irreversible for
-that copy, so the ordinary GNU General Public License applies to all
-subsequent copies and derivative works made from that copy.
-
-  This option is useful when you wish to copy part of the code of
-the Library into a program that is not a library.
-
-  4. You may copy and distribute the Library (or a portion or
-derivative of it, under Section 2) in object code or executable form
-under the terms of Sections 1 and 2 above provided that you accompany
-it with the complete corresponding machine-readable source code, which
-must be distributed under the terms of Sections 1 and 2 above on a
-medium customarily used for software interchange.
-
-  If distribution of object code is made by offering access to copy
-from a designated place, then offering equivalent access to copy the
-source code from the same place satisfies the requirement to
-distribute the source code, even though third parties are not
-compelled to copy the source along with the object code.
-
-  5. A program that contains no derivative of any portion of the
-Library, but is designed to work with the Library by being compiled or
-linked with it, is called a "work that uses the Library".  Such a
-work, in isolation, is not a derivative work of the Library, and
-therefore falls outside the scope of this License.
-
-  However, linking a "work that uses the Library" with the Library
-creates an executable that is a derivative of the Library (because it
-contains portions of the Library), rather than a "work that uses the
-library".  The executable is therefore covered by this License.
-Section 6 states terms for distribution of such executables.
-
-  When a "work that uses the Library" uses material from a header file
-that is part of the Library, the object code for the work may be a
-derivative work of the Library even though the source code is not.
-Whether this is true is especially significant if the work can be
-linked without the Library, or if the work is itself a library.  The
-threshold for this to be true is not precisely defined by law.
-
-  If such an object file uses only numerical parameters, data
-structure layouts and accessors, and small macros and small inline
-functions (ten lines or less in length), then the use of the object
-file is unrestricted, regardless of whether it is legally a derivative
-work.  (Executables containing this object code plus portions of the
-Library will still fall under Section 6.)
-
-  Otherwise, if the work is a derivative of the Library, you may
-distribute the object code for the work under the terms of Section 6.
-Any executables containing that work also fall under Section 6,
-whether or not they are linked directly with the Library itself.
-
-  6. As an exception to the Sections above, you may also combine or
-link a "work that uses the Library" with the Library to produce a
-work containing portions of the Library, and distribute that work
-under terms of your choice, provided that the terms permit
-modification of the work for the customer's own use and reverse
-engineering for debugging such modifications.
-
-  You must give prominent notice with each copy of the work that the
-Library is used in it and that the Library and its use are covered by
-this License.  You must supply a copy of this License.  If the work
-during execution displays copyright notices, you must include the
-copyright notice for the Library among them, as well as a reference
-directing the user to the copy of this License.  Also, you must do one
-of these things:
-
-    a) Accompany the work with the complete corresponding
-    machine-readable source code for the Library including whatever
-    changes were used in the work (which must be distributed under
-    Sections 1 and 2 above); and, if the work is an executable linked
-    with the Library, with the complete machine-readable "work that
-    uses the Library", as object code and/or source code, so that the
-    user can modify the Library and then relink to produce a modified
-    executable containing the modified Library.  (It is understood
-    that the user who changes the contents of definitions files in the
-    Library will not necessarily be able to recompile the application
-    to use the modified definitions.)
-
-    b) Use a suitable shared library mechanism for linking with the
-    Library.  A suitable mechanism is one that (1) uses at run time a
-    copy of the library already present on the user's computer system,
-    rather than copying library functions into the executable, and (2)
-    will operate properly with a modified version of the library, if
-    the user installs one, as long as the modified version is
-    interface-compatible with the version that the work was made with.
-
-    c) Accompany the work with a written offer, valid for at
-    least three years, to give the same user the materials
-    specified in Subsection 6a, above, for a charge no more
-    than the cost of performing this distribution.
-
-    d) If distribution of the work is made by offering access to copy
-    from a designated place, offer equivalent access to copy the above
-    specified materials from the same place.
-
-    e) Verify that the user has already received a copy of these
-    materials or that you have already sent this user a copy.
-
-  For an executable, the required form of the "work that uses the
-Library" must include any data and utility programs needed for
-reproducing the executable from it.  However, as a special exception,
-the materials to be distributed need not include anything that is
-normally distributed (in either source or binary form) with the major
-components (compiler, kernel, and so on) of the operating system on
-which the executable runs, unless that component itself accompanies
-the executable.
-
-  It may happen that this requirement contradicts the license
-restrictions of other proprietary libraries that do not normally
-accompany the operating system.  Such a contradiction means you cannot
-use both them and the Library together in an executable that you
-distribute.
-
-  7. You may place library facilities that are a work based on the
-Library side-by-side in a single library together with other library
-facilities not covered by this License, and distribute such a combined
-library, provided that the separate distribution of the work based on
-the Library and of the other library facilities is otherwise
-permitted, and provided that you do these two things:
-
-    a) Accompany the combined library with a copy of the same work
-    based on the Library, uncombined with any other library
-    facilities.  This must be distributed under the terms of the
-    Sections above.
-
-    b) Give prominent notice with the combined library of the fact
-    that part of it is a work based on the Library, and explaining
-    where to find the accompanying uncombined form of the same work.
-
-  8. You may not copy, modify, sublicense, link with, or distribute
-the Library except as expressly provided under this License.  Any
-attempt otherwise to copy, modify, sublicense, link with, or
-distribute the Library is void, and will automatically terminate your
-rights under this License.  However, parties who have received copies,
-or rights, from you under this License will not have their licenses
-terminated so long as such parties remain in full compliance.
-
-  9. You are not required to accept this License, since you have not
-signed it.  However, nothing else grants you permission to modify or
-distribute the Library or its derivative works.  These actions are
-prohibited by law if you do not accept this License.  Therefore, by
-modifying or distributing the Library (or any work based on the
-Library), you indicate your acceptance of this License to do so, and
-all its terms and conditions for copying, distributing or modifying
-the Library or works based on it.
-
-  10. Each time you redistribute the Library (or any work based on the
-Library), the recipient automatically receives a license from the
-original licensor to copy, distribute, link with or modify the Library
-subject to these terms and conditions.  You may not impose any further
-restrictions on the recipients' exercise of the rights granted herein.
-You are not responsible for enforcing compliance by third parties with
-this License.
-
-  11. If, as a consequence of a court judgment or allegation of patent
-infringement or for any other reason (not limited to patent issues),
-conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License.  If you cannot
-distribute so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you
-may not distribute the Library at all.  For example, if a patent
-license would not permit royalty-free redistribution of the Library by
-all those who receive copies directly or indirectly through you, then
-the only way you could satisfy both it and this License would be to
-refrain entirely from distribution of the Library.
-
-If any portion of this section is held invalid or unenforceable under any
-particular circumstance, the balance of the section is intended to apply,
-and the section as a whole is intended to apply in other circumstances.
-
-It is not the purpose of this section to induce you to infringe any
-patents or other property right claims or to contest validity of any
-such claims; this section has the sole purpose of protecting the
-integrity of the free software distribution system which is
-implemented by public license practices.  Many people have made
-generous contributions to the wide range of software distributed
-through that system in reliance on consistent application of that
-system; it is up to the author/donor to decide if he or she is willing
-to distribute software through any other system and a licensee cannot
-impose that choice.
-
-This section is intended to make thoroughly clear what is believed to
-be a consequence of the rest of this License.
-
-  12. If the distribution and/or use of the Library is restricted in
-certain countries either by patents or by copyrighted interfaces, the
-original copyright holder who places the Library under this License may add
-an explicit geographical distribution limitation excluding those countries,
-so that distribution is permitted only in or among countries not thus
-excluded.  In such case, this License incorporates the limitation as if
-written in the body of this License.
-
-  13. The Free Software Foundation may publish revised and/or new
-versions of the Lesser General Public License from time to time.
-Such new versions will be similar in spirit to the present version,
-but may differ in detail to address new problems or concerns.
-
-Each version is given a distinguishing version number.  If the Library
-specifies a version number of this License which applies to it and
-"any later version", you have the option of following the terms and
-conditions either of that version or of any later version published by
-the Free Software Foundation.  If the Library does not specify a
-license version number, you may choose any version ever published by
-the Free Software Foundation.
-
-  14. If you wish to incorporate parts of the Library into other free
-programs whose distribution conditions are incompatible with these,
-write to the author to ask for permission.  For software which is
-copyrighted by the Free Software Foundation, write to the Free
-Software Foundation; we sometimes make exceptions for this.  Our
-decision will be guided by the two goals of preserving the free status
-of all derivatives of our free software and of promoting the sharing
-and reuse of software generally.
-
-NO WARRANTY
-
-  15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
-WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
-EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
-OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
-KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
-LIBRARY IS WITH YOU.  SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
-THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
-
-  16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
-WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
-AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
-FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
-CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
-LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
-RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
-FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
-SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
-DAMAGES.
-
-END OF TERMS AND CONDITIONS
-```
-
-Appendix C: The MPL License
----------------------------
-
-```
-MOZILLA PUBLIC LICENSE
-Version 1.1
-
-1. Definitions.
-
-     1.0.1. "Commercial Use" means distribution or otherwise making the
-     Covered Code available to a third party.
-
-     1.1. "Contributor" means each entity that creates or contributes to
-     the creation of Modifications.
-
-     1.2. "Contributor Version" means the combination of the Original
-     Code, prior Modifications used by a Contributor, and the Modifications
-     made by that particular Contributor.
-
-     1.3. "Covered Code" means the Original Code or Modifications or the
-     combination of the Original Code and Modifications, in each case
-     including portions thereof.
-
-     1.4. "Electronic Distribution Mechanism" means a mechanism generally
-     accepted in the software development community for the electronic
-     transfer of data.
-
-     1.5. "Executable" means Covered Code in any form other than Source
-     Code.
-
-     1.6. "Initial Developer" means the individual or entity identified
-     as the Initial Developer in the Source Code notice required by Exhibit
-     A.
-
-     1.7. "Larger Work" means a work which combines Covered Code or
-     portions thereof with code not governed by the terms of this License.
-
-     1.8. "License" means this document.
-
-     1.8.1. "Licensable" means having the right to grant, to the maximum
-     extent possible, whether at the time of the initial grant or
-     subsequently acquired, any and all of the rights conveyed herein.
-
-     1.9. "Modifications" means any addition to or deletion from the
-     substance or structure of either the Original Code or any previous
-     Modifications. When Covered Code is released as a series of files, a
-     Modification is:
-          A. Any addition to or deletion from the contents of a file
-          containing Original Code or previous Modifications.
-
-          B. Any new file that contains any part of the Original Code or
-          previous Modifications.
-
-     1.10. "Original Code" means Source Code of computer software code
-     which is described in the Source Code notice required by Exhibit A as
-     Original Code, and which, at the time of its release under this
-     License is not already Covered Code governed by this License.
-
-     1.10.1. "Patent Claims" means any patent claim(s), now owned or
-     hereafter acquired, including without limitation,  method, process,
-     and apparatus claims, in any patent Licensable by grantor.
-
-     1.11. "Source Code" means the preferred form of the Covered Code for
-     making modifications to it, including all modules it contains, plus
-     any associated interface definition files, scripts used to control
-     compilation and installation of an Executable, or source code
-     differential comparisons against either the Original Code or another
-     well known, available Covered Code of the Contributor's choice. The
-     Source Code can be in a compressed or archival form, provided the
-     appropriate decompression or de-archiving software is widely available
-     for no charge.
-
-     1.12. "You" (or "Your")  means an individual or a legal entity
-     exercising rights under, and complying with all of the terms of, this
-     License or a future version of this License issued under Section 6.1.
-     For legal entities, "You" includes any entity which controls, is
-     controlled by, or is under common control with You. For purposes of
-     this definition, "control" means (a) the power, direct or indirect,
-     to cause the direction or management of such entity, whether by
-     contract or otherwise, or (b) ownership of more than fifty percent
-     (50%) of the outstanding shares or beneficial ownership of such
-     entity.
-
-2. Source Code License.
-
-     2.1. The Initial Developer Grant.
-     The Initial Developer hereby grants You a world-wide, royalty-free,
-     non-exclusive license, subject to third party intellectual property
-     claims:
-          (a)  under intellectual property rights (other than patent or
-          trademark) Licensable by Initial Developer to use, reproduce,
-          modify, display, perform, sublicense and distribute the Original
-          Code (or portions thereof) with or without Modifications, and/or
-          as part of a Larger Work; and
-
-          (b) under Patents Claims infringed by the making, using or
-          selling of Original Code, to make, have made, use, practice,
-          sell, and offer for sale, and/or otherwise dispose of the
-          Original Code (or portions thereof).
-
-          (c) the licenses granted in this Section 2.1(a) and (b) are
-          effective on the date Initial Developer first distributes
-          Original Code under the terms of this License.
-
-          (d) Notwithstanding Section 2.1(b) above, no patent license is
-          granted: 1) for code that You delete from the Original Code; 2)
-          separate from the Original Code;  or 3) for infringements caused
-          by: i) the modification of the Original Code or ii) the
-          combination of the Original Code with other software or devices.
-
-     2.2. Contributor Grant.
-     Subject to third party intellectual property claims, each Contributor
-     hereby grants You a world-wide, royalty-free, non-exclusive license
-
-          (a)  under intellectual property rights (other than patent or
-          trademark) Licensable by Contributor, to use, reproduce, modify,
-          display, perform, sublicense and distribute the Modifications
-          created by such Contributor (or portions thereof) either on an
-          unmodified basis, with other Modifications, as Covered Code
-          and/or as part of a Larger Work; and
-
-          (b) under Patent Claims infringed by the making, using, or
-          selling of  Modifications made by that Contributor either alone
-          and/or in combination with its Contributor Version (or portions
-          of such combination), to make, use, sell, offer for sale, have
-          made, and/or otherwise dispose of: 1) Modifications made by that
-          Contributor (or portions thereof); and 2) the combination of
-          Modifications made by that Contributor with its Contributor
-          Version (or portions of such combination).
-
-          (c) the licenses granted in Sections 2.2(a) and 2.2(b) are
-          effective on the date Contributor first makes Commercial Use of
-          the Covered Code.
-
-          (d)    Notwithstanding Section 2.2(b) above, no patent license is
-          granted: 1) for any code that Contributor has deleted from the
-          Contributor Version; 2)  separate from the Contributor Version;
-          3)  for infringements caused by: i) third party modifications of
-          Contributor Version or ii)  the combination of Modifications made
-          by that Contributor with other software  (except as part of the
-          Contributor Version) or other devices; or 4) under Patent Claims
-          infringed by Covered Code in the absence of Modifications made by
-          that Contributor.
-
-3. Distribution Obligations.
-
-     3.1. Application of License.
-     The Modifications which You create or to which You contribute are
-     governed by the terms of this License, including without limitation
-     Section 2.2. The Source Code version of Covered Code may be
-     distributed only under the terms of this License or a future version
-     of this License released under Section 6.1, and You must include a
-     copy of this License with every copy of the Source Code You
-     distribute. You may not offer or impose any terms on any Source Code
-     version that alters or restricts the applicable version of this
-     License or the recipients' rights hereunder. However, You may include
-     an additional document offering the additional rights described in
-     Section 3.5.
-
-     3.2. Availability of Source Code.
-     Any Modification which You create or to which You contribute must be
-     made available in Source Code form under the terms of this License
-     either on the same media as an Executable version or via an accepted
-     Electronic Distribution Mechanism to anyone to whom you made an
-     Executable version available; and if made available via Electronic
-     Distribution Mechanism, must remain available for at least twelve (12)
-     months after the date it initially became available, or at least six
-     (6) months after a subsequent version of that particular Modification
-     has been made available to such recipients. You are responsible for
-     ensuring that the Source Code version remains available even if the
-     Electronic Distribution Mechanism is maintained by a third party.
-
-     3.3. Description of Modifications.
-     You must cause all Covered Code to which You contribute to contain a
-     file documenting the changes You made to create that Covered Code and
-     the date of any change. You must include a prominent statement that
-     the Modification is derived, directly or indirectly, from Original
-     Code provided by the Initial Developer and including the name of the
-     Initial Developer in (a) the Source Code, and (b) in any notice in an
-     Executable version or related documentation in which You describe the
-     origin or ownership of the Covered Code.
-
-     3.4. Intellectual Property Matters
-          (a) Third Party Claims.
-          If Contributor has knowledge that a license under a third party's
-          intellectual property rights is required to exercise the rights
-          granted by such Contributor under Sections 2.1 or 2.2,
-          Contributor must include a text file with the Source Code
-          distribution titled "LEGAL" which describes the claim and the
-          party making the claim in sufficient detail that a recipient will
-          know whom to contact. If Contributor obtains such knowledge after
-          the Modification is made available as described in Section 3.2,
-          Contributor shall promptly modify the LEGAL file in all copies
-          Contributor makes available thereafter and shall take other steps
-          (such as notifying appropriate mailing lists or newsgroups)
-          reasonably calculated to inform those who received the Covered
-          Code that new knowledge has been obtained.
-
-          (b) Contributor APIs.
-          If Contributor's Modifications include an application programming
-          interface and Contributor has knowledge of patent licenses which
-          are reasonably necessary to implement that API, Contributor must
-          also include this information in the LEGAL file.
-
-               (c)    Representations.
-          Contributor represents that, except as disclosed pursuant to
-          Section 3.4(a) above, Contributor believes that Contributor's
-          Modifications are Contributor's original creation(s) and/or
-          Contributor has sufficient rights to grant the rights conveyed by
-          this License.
-
-     3.5. Required Notices.
-     You must duplicate the notice in Exhibit A in each file of the Source
-     Code.  If it is not possible to put such notice in a particular Source
-     Code file due to its structure, then You must include such notice in a
-     location (such as a relevant directory) where a user would be likely
-     to look for such a notice.  If You created one or more Modification(s)
-     You may add your name as a Contributor to the notice described in
-     Exhibit A.  You must also duplicate this License in any documentation
-     for the Source Code where You describe recipients' rights or ownership
-     rights relating to Covered Code.  You may choose to offer, and to
-     charge a fee for, warranty, support, indemnity or liability
-     obligations to one or more recipients of Covered Code. However, You
-     may do so only on Your own behalf, and not on behalf of the Initial
-     Developer or any Contributor. You must make it absolutely clear than
-     any such warranty, support, indemnity or liability obligation is
-     offered by You alone, and You hereby agree to indemnify the Initial
-     Developer and every Contributor for any liability incurred by the
-     Initial Developer or such Contributor as a result of warranty,
-     support, indemnity or liability terms You offer.
-
-     3.6. Distribution of Executable Versions.
-     You may distribute Covered Code in Executable form only if the
-     requirements of Section 3.1-3.5 have been met for that Covered Code,
-     and if You include a notice stating that the Source Code version of
-     the Covered Code is available under the terms of this License,
-     including a description of how and where You have fulfilled the
-     obligations of Section 3.2. The notice must be conspicuously included
-     in any notice in an Executable version, related documentation or
-     collateral in which You describe recipients' rights relating to the
-     Covered Code. You may distribute the Executable version of Covered
-     Code or ownership rights under a license of Your choice, which may
-     contain terms different from this License, provided that You are in
-     compliance with the terms of this License and that the license for the
-     Executable version does not attempt to limit or alter the recipient's
-     rights in the Source Code version from the rights set forth in this
-     License. If You distribute the Executable version under a different
-     license You must make it absolutely clear that any terms which differ
-     from this License are offered by You alone, not by the Initial
-     Developer or any Contributor. You hereby agree to indemnify the
-     Initial Developer and every Contributor for any liability incurred by
-     the Initial Developer or such Contributor as a result of any such
-     terms You offer.
-
-     3.7. Larger Works.
-     You may create a Larger Work by combining Covered Code with other code
-     not governed by the terms of this License and distribute the Larger
-     Work as a single product. In such a case, You must make sure the
-     requirements of this License are fulfilled for the Covered Code.
-
-4. Inability to Comply Due to Statute or Regulation.
-
-     If it is impossible for You to comply with any of the terms of this
-     License with respect to some or all of the Covered Code due to
-     statute, judicial order, or regulation then You must: (a) comply with
-     the terms of this License to the maximum extent possible; and (b)
-     describe the limitations and the code they affect. Such description
-     must be included in the LEGAL file described in Section 3.4 and must
-     be included with all distributions of the Source Code. Except to the
-     extent prohibited by statute or regulation, such description must be
-     sufficiently detailed for a recipient of ordinary skill to be able to
-     understand it.
-
-5. Application of this License.
-
-     This License applies to code to which the Initial Developer has
-     attached the notice in Exhibit A and to related Covered Code.
-
-6. Versions of the License.
-
-     6.1. New Versions.
-     Netscape Communications Corporation ("Netscape") may publish revised
-     and/or new versions of the License from time to time. Each version
-     will be given a distinguishing version number.
-
-     6.2. Effect of New Versions.
-     Once Covered Code has been published under a particular version of the
-     License, You may always continue to use it under the terms of that
-     version. You may also choose to use such Covered Code under the terms
-     of any subsequent version of the License published by Netscape. No one
-     other than Netscape has the right to modify the terms applicable to
-     Covered Code created under this License.
-
-     6.3. Derivative Works.
-     If You create or use a modified version of this License (which you may
-     only do in order to apply it to code which is not already Covered Code
-     governed by this License), You must (a) rename Your license so that
-     the phrases "Mozilla", "MOZILLAPL", "MOZPL", "Netscape",
-     "MPL", "NPL" or any confusingly similar phrase do not appear in your
-     license (except to note that your license differs from this License)
-     and (b) otherwise make it clear that Your version of the license
-     contains terms which differ from the Mozilla Public License and
-     Netscape Public License. (Filling in the name of the Initial
-     Developer, Original Code or Contributor in the notice described in
-     Exhibit A shall not of themselves be deemed to be modifications of
-     this License.)
-
-7. DISCLAIMER OF WARRANTY.
-
-     COVERED CODE IS PROVIDED UNDER THIS LICENSE ON AN "AS IS" BASIS,
-     WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
-     WITHOUT LIMITATION, WARRANTIES THAT THE COVERED CODE IS FREE OF
-     DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING.
-     THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE COVERED CODE
-     IS WITH YOU. SHOULD ANY COVERED CODE PROVE DEFECTIVE IN ANY RESPECT,
-     YOU (NOT THE INITIAL DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME THE
-     COST OF ANY NECESSARY SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER
-     OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF
-     ANY COVERED CODE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER.
-
-8. TERMINATION.
-
-     8.1.  This License and the rights granted hereunder will terminate
-     automatically if You fail to comply with terms herein and fail to cure
-     such breach within 30 days of becoming aware of the breach. All
-     sublicenses to the Covered Code which are properly granted shall
-     survive any termination of this License. Provisions which, by their
-     nature, must remain in effect beyond the termination of this License
-     shall survive.
-
-     8.2.  If You initiate litigation by asserting a patent infringement
-     claim (excluding declatory judgment actions) against Initial Developer
-     or a Contributor (the Initial Developer or Contributor against whom
-     You file such action is referred to as "Participant")  alleging that:
-
-     (a)  such Participant's Contributor Version directly or indirectly
-     infringes any patent, then any and all rights granted by such
-     Participant to You under Sections 2.1 and/or 2.2 of this License
-     shall, upon 60 days notice from Participant terminate prospectively,
-     unless if within 60 days after receipt of notice You either: (i)
-     agree in writing to pay Participant a mutually agreeable reasonable
-     royalty for Your past and future use of Modifications made by such
-     Participant, or (ii) withdraw Your litigation claim with respect to
-     the Contributor Version against such Participant.  If within 60 days
-     of notice, a reasonable royalty and payment arrangement are not
-     mutually agreed upon in writing by the parties or the litigation claim
-     is not withdrawn, the rights granted by Participant to You under
-     Sections 2.1 and/or 2.2 automatically terminate at the expiration of
-     the 60 day notice period specified above.
-
-     (b)  any software, hardware, or device, other than such Participant's
-     Contributor Version, directly or indirectly infringes any patent, then
-     any rights granted to You by such Participant under Sections 2.1(b)
-     and 2.2(b) are revoked effective as of the date You first made, used,
-     sold, distributed, or had made, Modifications made by that
-     Participant.
-
-     8.3.  If You assert a patent infringement claim against Participant
-     alleging that such Participant's Contributor Version directly or
-     indirectly infringes any patent where such claim is resolved (such as
-     by license or settlement) prior to the initiation of patent
-     infringement litigation, then the reasonable value of the licenses
-     granted by such Participant under Sections 2.1 or 2.2 shall be taken
-     into account in determining the amount or value of any payment or
-     license.
-
-     8.4.  In the event of termination under Sections 8.1 or 8.2 above,
-     all end user license agreements (excluding distributors and resellers)
-     which have been validly granted by You or any distributor hereunder
-     prior to termination shall survive termination.
-
-9. LIMITATION OF LIABILITY.
-
-     UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT
-     (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE INITIAL
-     DEVELOPER, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF COVERED CODE,
-     OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON FOR
-     ANY INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY
-     CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL,
-     WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER
-     COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN
-     INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF
-     LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR PERSONAL INJURY
-     RESULTING FROM SUCH PARTY'S NEGLIGENCE TO THE EXTENT APPLICABLE LAW
-     PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO NOT ALLOW THE
-     EXCLUSION OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO
-     THIS EXCLUSION AND LIMITATION MAY NOT APPLY TO YOU.
-
-10. U.S. GOVERNMENT END USERS.
-
-     The Covered Code is a "commercial item," as that term is defined in
-     48 C.F.R. 2.101 (Oct. 1995), consisting of "commercial computer
-     software" and "commercial computer software documentation," as such
-     terms are used in 48 C.F.R. 12.212 (Sept. 1995). Consistent with 48
-     C.F.R. 12.212 and 48 C.F.R. 227.7202-1 through 227.7202-4 (June 1995),
-     all U.S. Government End Users acquire Covered Code with only those
-     rights set forth herein.
-
-11. MISCELLANEOUS.
-
-     This License represents the complete agreement concerning subject
-     matter hereof. If any provision of this License is held to be
-     unenforceable, such provision shall be reformed only to the extent
-     necessary to make it enforceable. This License shall be governed by
-     California law provisions (except to the extent applicable law, if
-     any, provides otherwise), excluding its conflict-of-law provisions.
-     With respect to disputes in which at least one party is a citizen of,
-     or an entity chartered or registered to do business in the United
-     States of America, any litigation relating to this License shall be
-     subject to the jurisdiction of the Federal Courts of the Northern
-     District of California, with venue lying in Santa Clara County,
-     California, with the losing party responsible for costs, including
-     without limitation, court costs and reasonable attorneys' fees and
-     expenses. The application of the United Nations Convention on
-     Contracts for the International Sale of Goods is expressly excluded.
-     Any law or regulation which provides that the language of a contract
-     shall be construed against the drafter shall not apply to this
-     License.
-
-12. RESPONSIBILITY FOR CLAIMS.
-
-     As between Initial Developer and the Contributors, each party is
-     responsible for claims and damages arising, directly or indirectly,
-     out of its utilization of rights under this License and You agree to
-     work with Initial Developer and Contributors to distribute such
-     responsibility on an equitable basis. Nothing herein is intended or
-     shall be deemed to constitute any admission of liability.
-
-13. MULTIPLE-LICENSED CODE.
-
-     Initial Developer may designate portions of the Covered Code as
-     "Multiple-Licensed".  "Multiple-Licensed" means that the Initial
-     Developer permits you to utilize portions of the Covered Code under
-     Your choice of the NPL or the alternative licenses, if any, specified
-     by the Initial Developer in the file described in Exhibit A.
-
-EXHIBIT A -Mozilla Public License.
-
-     ``The contents of this file are subject to the Mozilla Public License
-     Version 1.1 (the "License"); you may not use this file except in
-     compliance with the License. You may obtain a copy of the License at
-     http://www.mozilla.org/MPL/
-
-     Software distributed under the License is distributed on an "AS IS"
-     basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
-     License for the specific language governing rights and limitations
-     under the License.
-
-     The Original Code is ______________________________________.
-
-     The Initial Developer of the Original Code is ________________________.
-     Portions created by ______________________ are Copyright (C) ______
-     _______________________. All Rights Reserved.
-
-     Contributor(s): ______________________________________.
-
-     Alternatively, the contents of this file may be used under the terms
-     of the _____ license (the  "[___] License"), in which case the
-     provisions of [______] License are applicable instead of those
-     above.  If you wish to allow use of your version of this file only
-     under the terms of the [____] License and not to allow others to use
-     your version of this file under the MPL, indicate your decision by
-     deleting  the provisions above and replace  them with the notice and
-     other provisions required by the [___] License.  If you do not delete
-     the provisions above, a recipient may use your version of this file
-     under either the MPL or the [___] License."
-
-     [NOTE: The text of this Exhibit A may differ slightly from the text of
-     the notices in the Source Code files of the Original Code. You should
-     use the text of this Exhibit A rather than the text found in the
-     Original Code Source Code for Your Modifications.]
-```
-
-Appendix D: The MIT License
----------------------------
-
-```
-The MIT License (MIT)
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
-```
-
-Appendix E: The SIL Open Font License Version 1.1
----------------------------------------------
-
-```
-SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
------------------------------------------------------------
-
-PREAMBLE
-The goals of the Open Font License (OFL) are to stimulate worldwide
-development of collaborative font projects, to support the font creation
-efforts of academic and linguistic communities, and to provide a free and
-open framework in which fonts may be shared and improved in partnership
-with others.
-
-The OFL allows the licensed fonts to be used, studied, modified and
-redistributed freely as long as they are not sold by themselves. The
-fonts, including any derivative works, can be bundled, embedded,
-redistributed and/or sold with any software provided that any reserved
-names are not used by derivative works. The fonts and derivatives,
-however, cannot be released under any other type of license. The
-requirement for fonts to remain under this license does not apply
-to any document created using the fonts or their derivatives.
-
-DEFINITIONS
-"Font Software" refers to the set of files released by the Copyright
-Holder(s) under this license and clearly marked as such. This may
-include source files, build scripts and documentation.
-
-"Reserved Font Name" refers to any names specified as such after the
-copyright statement(s).
-
-"Original Version" refers to the collection of Font Software components as
-distributed by the Copyright Holder(s).
-
-"Modified Version" refers to any derivative made by adding to, deleting,
-or substituting -- in part or in whole -- any of the components of the
-Original Version, by changing formats or by porting the Font Software to a
-new environment.
-
-"Author" refers to any designer, engineer, programmer, technical
-writer or other person who contributed to the Font Software.
-
-PERMISSION & CONDITIONS
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of the Font Software, to use, study, copy, merge, embed, modify,
-redistribute, and sell modified and unmodified copies of the Font
-Software, subject to the following conditions:
-
-1) Neither the Font Software nor any of its individual components,
-in Original or Modified Versions, may be sold by itself.
-
-2) Original or Modified Versions of the Font Software may be bundled,
-redistributed and/or sold with any software, provided that each copy
-contains the above copyright notice and this license. These can be
-included either as stand-alone text files, human-readable headers or
-in the appropriate machine-readable metadata fields within text or
-binary files as long as those fields can be easily viewed by the user.
-
-3) No Modified Version of the Font Software may use the Reserved Font
-Name(s) unless explicit written permission is granted by the corresponding
-Copyright Holder. This restriction only applies to the primary font name as
-presented to the users.
-
-4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
-Software shall not be used to promote, endorse or advertise any
-Modified Version, except to acknowledge the contribution(s) of the
-Copyright Holder(s) and the Author(s) or with their explicit written
-permission.
-
-5) The Font Software, modified or unmodified, in part or in whole,
-must be distributed entirely under this license, and must not be
-distributed under any other license. The requirement for fonts to
-remain under this license does not apply to any document created
-using the Font Software.
-
-TERMINATION
-This license becomes null and void if any of the above conditions are
-not met.
-
-DISCLAIMER
-THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
-OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
-COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
-DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
-OTHER DEALINGS IN THE FONT SOFTWARE.
-```
-
-Appendix F: The BSD-3 License
------------------------------
-
-```
-Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
-
-1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
-
-2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
-
-3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER 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.
-```
-
-
-Appendix H: The BSD-2 License
------------------------------
-
-```
-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.
-
-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 HOLDER 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.
-```
-
-(Ignore this line: %REMOVE_START%)
diff --git a/web/modules/ckeditor/vendor/SECURITY.md b/web/modules/ckeditor/vendor/SECURITY.md
deleted file mode 100644
index 6e04d5a186cac5b43bbc8c607116cf6bf6394de7..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/SECURITY.md
+++ /dev/null
@@ -1,10 +0,0 @@
-# Reporting a security issues
-
-If you believe you have found a security issue in the CKEditor 4 software, please contact us immediately.
-
-When reporting a potential security problem, please bear this in mind:
-
-*   Make sure to provide as many details as possible about the vulnerability.
-*   Please do not disclose publicly any security issues until we fix them and publish security releases.
-
-Contact the security team at security@cksource.com. As soon as we receive the security report, we will work promptly to confirm the issue and then to provide a security fix.
diff --git a/web/modules/ckeditor/vendor/build-config.js b/web/modules/ckeditor/vendor/build-config.js
deleted file mode 100644
index cd579e38c3cc3260f1f1d7e91fb02fb87b9e4cfa..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/build-config.js
+++ /dev/null
@@ -1,109 +0,0 @@
-/**
- * This is a Drupal-optimized build of CKEditor.
- *
- * To re-create this build:
- * 1. Clone the development repo of CKEditor to your machine
- * 2. Check out the version you'd like to build
- * 3. Copy PATH/TO/DRUPAL/core/assets/vendor/ckeditor/build-config.js ./dev/builder/
- * 4. Run ./dev/builder/build.sh -s
- *
- * Then, replace this directory (core/assets/vendor/ckeditor) with your build.
- *
- * Also: Remember to update core/core.libraries.yml if you are doing an update of the version of CKEditor for Drupal
- * Core.
- *
- * If you are developing or debugging CKEditor plugins, you may want to work
- * against an unoptimized (unminified) CKEditor build. To do so,
- * run the build command with the --leave-js-unminified flag.
- *
- * NOTE:
- *    This file is not used by CKEditor, you may remove it.
- *    Changing this file will not change your CKEditor configuration.
- */
-
-/* exported CKBUILDER_CONFIG */
-
-var CKBUILDER_CONFIG = {
-	skin: 'moono-lisa',
-	ignore: [
-		// CKEditor repository structure: unrelated to the usage of CKEditor itself.
-		'bender.js',
-		'bender.ci.js',
-		'.bender',
-		'bender-err.log',
-		'bender-out.log',
-		'bender-runner.config.json',
-		'.travis.yml',
-		'dev',
-		'docs',
-		'.DS_Store',
-		'.editorconfig',
-		'.gitignore',
-		'.gitattributes',
-		'.github',
-		'gruntfile.js',
-		'.idea',
-		'.jscsrc',
-		'.jshintignore',
-		'.jshintrc',
-		'less',
-		'.mailmap',
-		'node_modules',
-		'.nvmrc',
-		'package.json',
-		'README.md',
-		'tests',
-		// Parts of CKEditor that we consciously don't ship with Drupal.
-		'adapters',
-		'config.js',
-		'contents.css',
-		'styles.js',
-		'samples',
-		'skins/moono-lisa/readme.md'
-	],
-	plugins: {
-		a11yhelp: 1,
-		about: 1,
-		autogrow: 1,
-		basicstyles: 1,
-		blockquote: 1,
-		clipboard: 1,
-		contextmenu: 1,
-		elementspath: 1,
-		enterkey: 1,
-		entities: 1,
-		filebrowser: 1,
-		floatingspace: 1,
-		format: 1,
-		horizontalrule: 1,
-		htmlwriter: 1,
-		image2: 1,
-		indent: 1,
-		indentlist: 1,
-		justify: 1,
-		language: 1,
-		list: 1,
-		magicline: 1,
-		maximize: 1,
-    pastefromgdocs: 1,
-    pastefromlibreoffice: 1,
-		pastefromword: 1,
-		pastetext: 1,
-		removeformat: 1,
-		sharedspace: 1,
-		showblocks: 1,
-		showborders: 1,
-		sourcearea: 1,
-		sourcedialog: 1,
-		specialchar: 1,
-		stylescombo: 1,
-		tab: 1,
-		table: 1,
-		tableresize: 1,
-		tabletools: 1,
-		toolbar: 1,
-		undo: 1,
-		widget: 1,
-		wysiwygarea: 1
-	}
-};
diff --git a/web/modules/ckeditor/vendor/ckeditor.js b/web/modules/ckeditor/vendor/ckeditor.js
deleted file mode 100644
index 5014225e814917e263bca3a31822ab690bab2c24..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/ckeditor.js
+++ /dev/null
@@ -1,1231 +0,0 @@
-/*
-Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
-For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license/
-*/
-(function(){window.CKEDITOR&&window.CKEDITOR.dom||(window.CKEDITOR||(window.CKEDITOR=function(){var b=/(^|.*[\\\/])ckeditor\.js(?:\?.*|;.*)?$/i,h={timestamp:"M2GD",version:"4.18.0",revision:"5fe059002f",rnd:Math.floor(900*Math.random())+100,_:{pending:[],basePathSrcPattern:b},status:"unloaded",basePath:function(){var a=window.CKEDITOR_BASEPATH||"";if(!a)for(var e=document.getElementsByTagName("script"),f=0;f<e.length;f++){var m=e[f].src.match(b);if(m){a=m[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);return a=this.appendTimestamp(a)},appendTimestamp:function(a){if(!this.timestamp||"/"===a.charAt(a.length-1)||/[&?]t=/.test(a))return a;
-var b=0<=a.indexOf("?")?"\x26":"?";return a+b+"t\x3d"+this.timestamp},domReady:function(){function a(){try{document.addEventListener?(document.removeEventListener("DOMContentLoaded",a,!1),window.removeEventListener("load",a,!1),b()):document.attachEvent&&"complete"===document.readyState&&(document.detachEvent("onreadystatechange",a),window.detachEvent("onload",a),b())}catch(e){}}function b(){for(var a;a=e.shift();)a()}var e=[];return function(b){function c(){try{document.documentElement.doScroll("left")}catch(g){setTimeout(c,
-1);return}a()}e.push(b);"complete"===document.readyState&&setTimeout(a,1);if(1==e.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);b=!1;try{b=!window.frameElement}catch(d){}document.documentElement.doScroll&&b&&c()}}}()},f=window.CKEDITOR_GETURL;if(f){var e=h.getUrl;h.getUrl=function(a){return f.call(h,a)||e.call(h,a)}}return h}()),
-function(){var b={};CKEDITOR.event||(CKEDITOR.event=function(){},CKEDITOR.event.implementOn=function(b){var f=CKEDITOR.event.prototype,e;for(e in f)null==b[e]&&(b[e]=f[e])},CKEDITOR.event.prototype=function(){function h(a){var b=f(this);return b[a]||(b[a]=new e(a))}var f=function(a){a=a.getPrivate&&a.getPrivate()||a._||(a._={});return a.events||(a.events={})},e=function(a){this.name=a;this.listeners=[]};e.prototype={getListenerIndex:function(a){for(var b=0,e=this.listeners;b<e.length;b++)if(e[b].fn==
-a)return b;return-1}};return{define:function(a,b){var e=h.call(this,a);CKEDITOR.tools.extend(e,b,!0)},on:function(a,e,f,m,c){function d(n,c,d,v){n={name:a,sender:this,editor:n,data:c,listenerData:m,stop:d,cancel:v,removeListener:g};return!1===e.call(f,n)?b:n.data}function g(){n.removeListener(a,e)}var n=this,v=h.call(this,a);if(0>v.getListenerIndex(e)){v=v.listeners;f||(f=this);isNaN(c)&&(c=10);d.fn=e;d.priority=c;for(var x=v.length-1;0<=x;x--)if(v[x].priority<=c)return v.splice(x+1,0,d),{removeListener:g};
-v.unshift(d)}return{removeListener:g}},once:function(){var a=Array.prototype.slice.call(arguments),b=a[1];a[1]=function(a){a.removeListener();return b.apply(this,arguments)};return this.on.apply(this,a)},capture:function(){CKEDITOR.event.useCapture=1;var a=this.on.apply(this,arguments);CKEDITOR.event.useCapture=0;return a},fire:function(){var a=0,e=function(){a=1},h=0,m=function(){h=1};return function(c,d,g){var n=f(this)[c];c=a;var v=h;a=h=0;if(n){var x=n.listeners;if(x.length)for(var x=x.slice(0),
-p,q=0;q<x.length;q++){if(n.errorProof)try{p=x[q].call(this,g,d,e,m)}catch(r){}else p=x[q].call(this,g,d,e,m);p===b?h=1:"undefined"!=typeof p&&(d=p);if(a||h)break}}d=h?!1:"undefined"==typeof d?!0:d;a=c;h=v;return d}}(),fireOnce:function(a,b,e){b=this.fire(a,b,e);delete f(this)[a];return b},removeListener:function(a,b){var e=f(this)[a];if(e){var m=e.getListenerIndex(b);0<=m&&e.listeners.splice(m,1)}},removeAllListeners:function(){var a=f(this),b;for(b in a)delete a[b]},hasListeners:function(a){return(a=
-f(this)[a])&&0<a.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*)/),f=-1<b.indexOf("trident/"),f=!(!h&&!f),f={ie:f,edge:!!h,webkit:!f&&-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,b=window.location.hostname;
-return a!=b&&a!="["+b+"]"},secure:"https:"==location.protocol};f.gecko="Gecko"==navigator.product&&!f.webkit&&!f.ie;f.webkit&&(-1<b.indexOf("chrome")?f.chrome=!0:f.safari=!0);var e=0;f.ie&&(e=h?parseFloat(h[1]):f.quirks||!document.documentMode?parseFloat(b.match(/msie (\d+)/)[1]):document.documentMode,f.ie9Compat=9==e,f.ie8Compat=8==e,f.ie7Compat=7==e,f.ie6Compat=7>e||f.quirks);f.gecko&&(h=b.match(/rv:([\d\.]+)/))&&(h=h[1].split("."),e=1E4*h[0]+100*(h[1]||0)+1*(h[2]||0));f.air&&(e=parseFloat(b.match(/ adobeair\/(\d+)/)[1]));
-f.webkit&&(e=parseFloat(b.match(/ applewebkit\/(\d+)/)[1]));f.version=e;f.isCompatible=!(f.ie&&7>e)&&!(f.gecko&&4E4>e)&&!(f.webkit&&534>e);f.hidpi=2<=window.devicePixelRatio;f.needsBrFiller=f.gecko||f.webkit||f.ie&&10<e;f.needsNbspFiller=f.ie&&11>e;f.cssClass="cke_browser_"+(f.ie?"ie":f.gecko?"gecko":f.webkit?"webkit":"unknown");f.quirks&&(f.cssClass+=" cke_browser_quirks");f.ie&&(f.cssClass+=" cke_browser_ie"+(f.quirks?"6 cke_browser_iequirks":f.version));f.air&&(f.cssClass+=" cke_browser_air");
-f.iOS&&(f.cssClass+=" cke_browser_ios");f.hidpi&&(f.cssClass+=" cke_hidpi");return f}()),"unloaded"==CKEDITOR.status&&function(){CKEDITOR.event.implementOn(CKEDITOR);CKEDITOR.loadFullCore=function(){if("basic_ready"!=CKEDITOR.status)CKEDITOR.loadFullCore._load=1;else{delete CKEDITOR.loadFullCore;var b=document.createElement("script");b.type="text/javascript";b.src=CKEDITOR.basePath+"ckeditor.js";document.getElementsByTagName("head")[0].appendChild(b)}};CKEDITOR.loadFullCoreTimeout=0;CKEDITOR.add=
-function(b){(this._.pending||(this._.pending=[])).push(b)};(function(){CKEDITOR.domReady(function(){var b=CKEDITOR.loadFullCore,h=CKEDITOR.loadFullCoreTimeout;b&&(CKEDITOR.status="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",f=b.data.errorCode;if(b=b.data.additionalData)console[h]("[CKEDITOR] Error code: "+f+".",b);else console[h]("[CKEDITOR] Error code: "+f+".");console[h]("[CKEDITOR] For more information about this error go to https://ckeditor.com/docs/ckeditor4/latest/guide/dev_errors.html#"+
-f)}},null,null,999),CKEDITOR.dom={},function(){function b(n,g,c){this._minInterval=n;this._context=c;this._lastOutput=this._scheduledTimer=0;this._output=CKEDITOR.tools.bind(g,c||{});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 g=(new Date).getTime()-a._lastOutput;g<a._minInterval?a._scheduledTimer=setTimeout(n,a._minInterval-g):n()}}}function h(n,g,c){b.call(this,n,g,c);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 f=[],e=CKEDITOR.env.gecko?"-moz-":CKEDITOR.env.webkit?"-webkit-":CKEDITOR.env.ie?"-ms-":"",a=/&/g,k=/>/g,l=/</g,m=/"/g,c=/&(lt|gt|amp|quot|nbsp|shy|#\d{1,5});/g,d={lt:"\x3c",gt:"\x3e",amp:"\x26",quot:'"',nbsp:" ",shy:"­"},g=function(n,g){return"#"==g[0]?String.fromCharCode(parseInt(g.slice(1),10)):d[g]};CKEDITOR.on("reset",function(){f=[]});CKEDITOR.tools=
-{arrayCompare:function(n,g){if(!n&&!g)return!0;if(!n||!g||n.length!=g.length)return!1;for(var c=0;c<n.length;c++)if(n[c]!=g[c])return!1;return!0},getIndex:function(n,g){for(var c=0;c<n.length;++c)if(g(n[c]))return c;return-1},clone:function(n){var g;if(n&&n instanceof Array){g=[];for(var c=0;c<n.length;c++)g[c]=CKEDITOR.tools.clone(n[c]);return g}if(null===n||"object"!=typeof n||n instanceof String||n instanceof Number||n instanceof Boolean||n instanceof Date||n instanceof RegExp||n.nodeType||n.window===
-n)return n;g=new n.constructor;for(c in n)g[c]=CKEDITOR.tools.clone(n[c]);return g},capitalize:function(n,g){return n.charAt(0).toUpperCase()+(g?n.slice(1):n.slice(1).toLowerCase())},extend:function(n){var g=arguments.length,c,a;"boolean"==typeof(c=arguments[g-1])?g--:"boolean"==typeof(c=arguments[g-2])&&(a=arguments[g-1],g-=2);for(var d=1;d<g;d++){var b=arguments[d]||{};CKEDITOR.tools.array.forEach(CKEDITOR.tools.object.keys(b),function(g){if(!0===c||null==n[g])if(!a||g in a)n[g]=b[g]})}return n},
-prototypedCopy:function(n){var g=function(){};g.prototype=n;return new g},copy:function(n){var g={},c;for(c in n)g[c]=n[c];return g},isArray:function(n){return"[object Array]"==Object.prototype.toString.call(n)},isEmpty:function(n){for(var g in n)if(n.hasOwnProperty(g))return!1;return!0},cssVendorPrefix:function(n,g,c){if(c)return e+n+":"+g+";"+n+":"+g;c={};c[n]=g;c[e+n]=g;return c},cssStyleToDomStyle:function(){var n=document.createElement("div").style,g="undefined"!=typeof n.cssFloat?"cssFloat":
-"undefined"!=typeof n.styleFloat?"styleFloat":"float";return function(n){return"float"==n?g:n.replace(/-./g,function(n){return n.substr(1).toUpperCase()})}}(),buildStyleHtml:function(n){n=[].concat(n);for(var g,c=[],a=0;a<n.length;a++)if(g=n[a])/@import|[{}]/.test(g)?c.push("\x3cstyle\x3e"+g+"\x3c/style\x3e"):(g=CKEDITOR.appendTimestamp(g),c.push('\x3clink type\x3d"text/css" rel\x3dstylesheet href\x3d"'+g+'"\x3e'));return c.join("")},htmlEncode:function(n){return void 0===n||null===n?"":String(n).replace(a,
-"\x26amp;").replace(k,"\x26gt;").replace(l,"\x26lt;")},htmlDecode:function(n){return n.replace(c,g)},htmlEncodeAttr:function(n){return CKEDITOR.tools.htmlEncode(n).replace(m,"\x26quot;")},htmlDecodeAttr:function(n){return CKEDITOR.tools.htmlDecode(n)},transformPlainTextToHtml:function(n,g){var c=g==CKEDITOR.ENTER_BR,a=this.htmlEncode(n.replace(/\r\n/g,"\n")),a=a.replace(/\t/g,"\x26nbsp;\x26nbsp; \x26nbsp;"),d=g==CKEDITOR.ENTER_P?"p":"div";if(!c){var b=/\n{2}/g;if(b.test(a))var e="\x3c"+d+"\x3e",m=
-"\x3c/"+d+"\x3e",a=e+a.replace(b,function(){return m+e})+m}a=a.replace(/\n/g,"\x3cbr\x3e");c||(a=a.replace(new RegExp("\x3cbr\x3e(?\x3d\x3c/"+d+"\x3e)"),function(n){return CKEDITOR.tools.repeat(n,2)}));a=a.replace(/^ | $/g,"\x26nbsp;");return a=a.replace(/(>|\s) /g,function(n,g){return g+"\x26nbsp;"}).replace(/ (?=<)/g,"\x26nbsp;")},getNextNumber:function(){var n=0;return function(){return++n}}(),getNextId:function(){return"cke_"+this.getNextNumber()},getUniqueId:function(){for(var n="e",g=0;8>g;g++)n+=
-Math.floor(65536*(1+Math.random())).toString(16).substring(1);return n},override:function(n,g){var c=g(n);c.prototype=n.prototype;return c},setTimeout:function(n,g,c,a,d){d||(d=window);c||(c=d);return d.setTimeout(function(){a?n.apply(c,[].concat(a)):n.apply(c)},g||0)},throttle:function(n,g,c){return new this.buffers.throttle(n,g,c)},trim:function(){var g=/(?:^[ \t\n\r]+)|(?:[ \t\n\r]+$)/g;return function(c){return c.replace(g,"")}}(),ltrim:function(){var g=/^[ \t\n\r]+/g;return function(c){return c.replace(g,
-"")}}(),rtrim:function(){var g=/[ \t\n\r]+$/g;return function(c){return c.replace(g,"")}}(),indexOf:function(g,c){if("function"==typeof c)for(var a=0,d=g.length;a<d;a++){if(c(g[a]))return a}else{if(g.indexOf)return g.indexOf(c);a=0;for(d=g.length;a<d;a++)if(g[a]===c)return a}return-1},search:function(g,c){var a=CKEDITOR.tools.indexOf(g,c);return 0<=a?g[a]:null},bind:function(g,c){var a=Array.prototype.slice.call(arguments,2);return function(){return g.apply(c,a.concat(Array.prototype.slice.call(arguments)))}},
-createClass:function(g){var c=g.$,a=g.base,d=g.privates||g._,b=g.proto;g=g.statics;!c&&(c=function(){a&&this.base.apply(this,arguments)});if(d)var e=c,c=function(){var g=this._||(this._={}),n;for(n in d){var c=d[n];g[n]="function"==typeof c?CKEDITOR.tools.bind(c,this):c}e.apply(this,arguments)};a&&(c.prototype=this.prototypedCopy(a.prototype),c.prototype.constructor=c,c.base=a,c.baseProto=a.prototype,c.prototype.base=function t(){this.base=a.prototype.base;a.apply(this,arguments);this.base=t});b&&
-this.extend(c.prototype,b,!0);g&&this.extend(c,g,!0);return c},addFunction:function(g,c){return f.push(function(){return g.apply(c||this,arguments)})-1},removeFunction:function(g){f[g]=null},callFunction:function(g){var c=f[g];return c&&c.apply(window,Array.prototype.slice.call(arguments,1))},cssLength:function(){var g=/^-?\d+\.?\d*px$/,c;return function(a){c=CKEDITOR.tools.trim(a+"")+"px";return g.test(c)?c:a||""}}(),convertToPx:function(){var g,c;return function(a){g||(g=CKEDITOR.dom.element.createFromHtml('\x3cdiv style\x3d"position:absolute;left:-9999px;top:-9999px;margin:0px;padding:0px;border:0px;"\x3e\x3c/div\x3e',
-CKEDITOR.document),CKEDITOR.document.getBody().append(g));if(!/%$/.test(a)){var d=0>parseFloat(a);d&&(a=a.replace("-",""));g.setStyle("width",a);c=g.getClientRect();a=Math.round(c.width);return d?-a:a}return a}}(),repeat:function(g,c){return Array(c+1).join(g)},tryThese:function(){for(var g,c=0,a=arguments.length;c<a;c++){var d=arguments[c];try{g=d();break}catch(b){}}return g},genKey:function(){return Array.prototype.slice.call(arguments).join("-")},defer:function(g){return function(){var c=arguments,
-a=this;window.setTimeout(function(){g.apply(a,c)},0)}},normalizeCssText:function(g,c){var a=[],d,b=CKEDITOR.tools.parseCssText(g,!0,c);for(d in b)a.push(d+":"+b[d]);a.sort();return a.length?a.join(";")+";":""},convertRgbToHex:function(g){return g.replace(/(?:rgb\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\))/gi,function(g,c,n,a){g=[c,n,a];for(c=0;3>c;c++)g[c]=("0"+parseInt(g[c],10).toString(16)).slice(-2);return"#"+g.join("")})},normalizeHex:function(g){return g.replace(/#(([0-9a-f]{3}){1,2})($|;|\s+)/gi,
-function(g,c,n,a){g=c.toLowerCase();3==g.length&&(g=g.split(""),g=[g[0],g[0],g[1],g[1],g[2],g[2]].join(""));return"#"+g+a})},_isValidColorFormat:function(g){if(!g)return!1;g=g.replace(/\s+/g,"");return/^[a-z0-9()#%,./]+$/i.test(g)},parseCssText:function(g,c,a){var d={};a&&(g=(new CKEDITOR.dom.element("span")).setAttribute("style",g).getAttribute("style")||"");g&&(g=CKEDITOR.tools.normalizeHex(CKEDITOR.tools.convertRgbToHex(g)));if(!g||";"==g)return d;g.replace(/&quot;/g,'"').replace(/\s*([^:;\s]+)\s*:\s*([^;]+)\s*(?=;|$)/g,
-function(g,n,a){c&&(n=n.toLowerCase(),"font-family"==n&&(a=a.replace(/\s*,\s*/g,",")),a=CKEDITOR.tools.trim(a));d[n]=a});return d},writeCssText:function(g,c){var a,d=[];for(a in g)d.push(a+":"+g[a]);c&&d.sort();return d.join("; ")},objectCompare:function(g,c,a){var d;if(!g&&!c)return!0;if(!g||!c)return!1;for(d in g)if(g[d]!=c[d])return!1;if(!a)for(d in c)if(g[d]!=c[d])return!1;return!0},objectKeys:function(g){return CKEDITOR.tools.object.keys(g)},convertArrayToObject:function(g,c){var a={};1==arguments.length&&
-(c=!0);for(var d=0,b=g.length;d<b;++d)a[g[d]]=c;return a},getStyledSpans:function(g,c){var a=CKEDITOR.env.ie&&8==CKEDITOR.env.version?g.toUpperCase():g,a=c.find("span[style*\x3d"+a+"]").toArray();return CKEDITOR.tools.array.filter(a,function(c){return!!c.getStyle(g)})},fixDomain:function(){for(var g;;)try{g=window.parent.document.domain;break}catch(c){g=g?g.replace(/.+?(?:\.|$)/,""):document.domain;if(!g)break;document.domain=g}return!!g},eventsBuffer:function(g,c,a){return new this.buffers.event(g,
-c,a)},enableHtml5Elements:function(g,c){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(" "),d=a.length,b;d--;)b=g.createElement(a[d]),c&&g.appendChild(b)},checkIfAnyArrayItemMatches:function(g,c){for(var a=0,d=g.length;a<d;++a)if(g[a].match(c))return!0;return!1},checkIfAnyObjectPropertyMatches:function(g,c){for(var a in g)if(a.match(c))return!0;return!1},keystrokeToString:function(g,
-c){var a=this.keystrokeToArray(g,c);a.display=a.display.join("+");a.aria=a.aria.join("+");return a},keystrokeToArray:function(g,c){var a=c&16711680,d=c&65535,b=CKEDITOR.env.mac,e=[],m=[];a&CKEDITOR.CTRL&&(e.push(b?"⌘":g[17]),m.push(b?g[224]:g[17]));a&CKEDITOR.ALT&&(e.push(b?"⌥":g[18]),m.push(g[18]));a&CKEDITOR.SHIFT&&(e.push(b?"⇧":g[16]),m.push(g[16]));d&&(g[d]?(e.push(g[d]),m.push(g[d])):(e.push(String.fromCharCode(d)),m.push(String.fromCharCode(d))));return{display:e,aria:m}},transparentImageData:"data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw\x3d\x3d",
-getCookie:function(g){g=g.toLowerCase();for(var c=document.cookie.split(";"),a,d,b=0;b<c.length;b++)if(a=c[b].split("\x3d"),d=decodeURIComponent(CKEDITOR.tools.trim(a[0]).toLowerCase()),d===g)return decodeURIComponent(1<a.length?a[1]:"");return null},setCookie:function(g,c){document.cookie=encodeURIComponent(g)+"\x3d"+encodeURIComponent(c)+";path\x3d/"},getCsrfToken:function(){var g=CKEDITOR.tools.getCookie("ckCsrfToken");if(!g||40!=g.length){var g=[],c="";if(window.crypto&&window.crypto.getRandomValues)g=
-new Uint8Array(40),window.crypto.getRandomValues(g);else for(var a=0;40>a;a++)g.push(Math.floor(256*Math.random()));for(a=0;a<g.length;a++)var d="abcdefghijklmnopqrstuvwxyz0123456789".charAt(g[a]%36),c=c+(.5<Math.random()?d.toUpperCase():d);g=c;CKEDITOR.tools.setCookie("ckCsrfToken",g)}return g},escapeCss:function(g){if(g)if(window.CSS&&CSS.escape)g=CSS.escape(g);else{g=String(g);for(var c=g.length,a=-1,d,b="",e=g.charCodeAt(0);++a<c;)d=g.charCodeAt(a),b=0==d?b+"�":127==d||1<=d&&31>=d||0==a&&48<=
-d&&57>=d||1==a&&48<=d&&57>=d&&45==e?b+("\\"+d.toString(16)+" "):0==a&&1==c&&45==d?b+("\\"+g.charAt(a)):128<=d||45==d||95==d||48<=d&&57>=d||65<=d&&90>=d||97<=d&&122>=d?b+g.charAt(a):b+("\\"+g.charAt(a));g=b}else g="";return g},getMouseButton:function(g){return(g=g&&g.data?g.data.$:g)?CKEDITOR.tools.normalizeMouseButton(g.button):!1},normalizeMouseButton:function(g,c){if(!CKEDITOR.env.ie||9<=CKEDITOR.env.version&&!CKEDITOR.env.ie6Compat)return g;for(var a=[[CKEDITOR.MOUSE_BUTTON_LEFT,1],[CKEDITOR.MOUSE_BUTTON_MIDDLE,
-4],[CKEDITOR.MOUSE_BUTTON_RIGHT,2]],d=0;d<a.length;d++){var b=a[d];if(b[0]===g&&c)return b[1];if(!c&&b[1]===g)return b[0]}},convertHexStringToBytes:function(g){var c=[],a=g.length/2,d;for(d=0;d<a;d++)c.push(parseInt(g.substr(2*d,2),16));return c},convertBytesToBase64:function(g){var c="",a=g.length,d;for(d=0;d<a;d+=3){var b=g.slice(d,d+3),e=b.length,m=[],f;if(3>e)for(f=e;3>f;f++)b[f]=0;m[0]=(b[0]&252)>>2;m[1]=(b[0]&3)<<4|b[1]>>4;m[2]=(b[1]&15)<<2|(b[2]&192)>>6;m[3]=b[2]&63;for(f=0;4>f;f++)c=f<=e?
-c+"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(m[f]):c+"\x3d"}return c},style:{parse:{_borderStyle:"none hidden dotted dashed solid double groove ridge inset outset".split(" "),_widthRegExp:/^(thin|medium|thick|[\+-]?\d+(\.\d+)?[a-z%]+|[\+-]?0+(\.0+)?|\.\d+[a-z%]+)$/,_rgbaRegExp:/rgba?\(\s*\d+%?\s*,\s*\d+%?\s*,\s*\d+%?\s*(?:,\s*[0-9.]+\s*)?\)/gi,_hslaRegExp:/hsla?\(\s*[0-9.]+\s*,\s*\d+%\s*,\s*\d+%\s*(?:,\s*[0-9.]+\s*)?\)/gi,background:function(g){var c={},a=this._findColor(g);
-a.length&&(c.color=a[0],CKEDITOR.tools.array.forEach(a,function(c){g=g.replace(c,"")}));if(g=CKEDITOR.tools.trim(g))c.unprocessed=g;return c},margin:function(g){return CKEDITOR.tools.style.parse.sideShorthand(g,function(g){return g.match(/(?:\-?[\.\d]+(?:%|\w*)|auto|inherit|initial|unset|revert)/g)||["0px"]})},sideShorthand:function(g,c){function a(g){d.top=b[g[0]];d.right=b[g[1]];d.bottom=b[g[2]];d.left=b[g[3]]}var d={},b=c?c(g):g.split(/\s+/);switch(b.length){case 1:a([0,0,0,0]);break;case 2:a([0,
-1,0,1]);break;case 3:a([0,1,2,1]);break;case 4:a([0,1,2,3])}return d},border:function(g){return CKEDITOR.tools.style.border.fromCssRule(g)},_findColor:function(g){var c=[],a=CKEDITOR.tools.array,c=c.concat(g.match(this._rgbaRegExp)||[]),c=c.concat(g.match(this._hslaRegExp)||[]);return c=c.concat(a.filter(g.split(/\s+/),function(g){return g.match(/^\#[a-f0-9]{3}(?:[a-f0-9]{3})?$/gi)?!0:g.toLowerCase()in CKEDITOR.tools.style.parse._colors}))}}},array:{filter:function(g,c,a){var d=[];this.forEach(g,
-function(b,e){c.call(a,b,e,g)&&d.push(b)});return d},find:function(g,c,a){for(var d=g.length,b=0;b<d;){if(c.call(a,g[b],b,g))return g[b];b++}},forEach:function(g,c,a){var d=g.length,b;for(b=0;b<d;b++)c.call(a,g[b],b,g)},map:function(g,c,a){for(var d=[],b=0;b<g.length;b++)d.push(c.call(a,g[b],b,g));return d},reduce:function(g,c,a,d){for(var b=0;b<g.length;b++)a=c.call(d,a,g[b],b,g);return a},every:function(g,c,a){if(!g.length)return!0;c=this.filter(g,c,a);return g.length===c.length},some:function(g,
-c,a){for(var d=0;d<g.length;d++)if(c.call(a,g[d],d,g))return!0;return!1},zip:function(g,c){return CKEDITOR.tools.array.map(g,function(g,a){return[g,c[a]]})},unique:function(g){return this.filter(g,function(c,a){return a===CKEDITOR.tools.array.indexOf(g,c)})}},object:{DONT_ENUMS:"toString toLocaleString valueOf hasOwnProperty isPrototypeOf propertyIsEnumerable constructor".split(" "),entries:function(g){return CKEDITOR.tools.array.map(CKEDITOR.tools.object.keys(g),function(c){return[c,g[c]]})},values:function(g){return CKEDITOR.tools.array.map(CKEDITOR.tools.object.keys(g),
-function(c){return g[c]})},keys:function(g){var c=Object.prototype.hasOwnProperty,a=[],d=CKEDITOR.tools.object.DONT_ENUMS;if(CKEDITOR.env.ie&&9>CKEDITOR.env.version&&(!g||"object"!==typeof g)){c=[];if("string"===typeof g)for(a=0;a<g.length;a++)c.push(String(a));return c}for(var b in g)a.push(b);if(CKEDITOR.env.ie&&9>CKEDITOR.env.version)for(b=0;b<d.length;b++)c.call(g,d[b])&&a.push(d[b]);return a},findKey:function(g,c){if("object"!==typeof g)return null;for(var a in g)if(g[a]===c)return a;return null},
-merge:function(g,c){var a=CKEDITOR.tools,d=a.clone(g),b=a.clone(c);a.array.forEach(a.object.keys(b),function(g){d[g]="object"===typeof b[g]&&"object"===typeof d[g]?a.object.merge(d[g],b[g]):b[g]});return d}},getAbsoluteRectPosition:function(g,c){function a(g){if(g){var c=g.getClientRect();d.top+=c.top;d.left+=c.left;"x"in d&&"y"in d&&(d.x+=c.x,d.y+=c.y);a(g.getWindow().getFrame())}}var d=CKEDITOR.tools.copy(c);a(g.getFrame());var b=CKEDITOR.document.getWindow().getScrollPosition();d.top+=b.y;d.left+=
-b.x;"x"in d&&"y"in d&&(d.y+=b.y,d.x+=b.x);d.right=d.left+d.width;d.bottom=d.top+d.height;return d}};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(g){g=g||{};this.width=g.width;this.style=g.style;this.color=g.color;this._.normalize()},_:{normalizeMap:{color:[[/windowtext/g,"black"]]},normalize:function(){for(var g in this._.normalizeMap){var c=this[g];c&&(this[g]=CKEDITOR.tools.array.reduce(this._.normalizeMap[g],function(g,c){return g.replace(c[0],c[1])},c))}}},proto:{toString:function(){return CKEDITOR.tools.array.filter([this.width,
-this.style,this.color],function(g){return!!g}).join(" ")}},statics:{fromCssRule:function(g){var c={},a=g.split(/\s+/g);g=CKEDITOR.tools.style.parse._findColor(g);g.length&&(c.color=g[0]);CKEDITOR.tools.array.forEach(a,function(g){c.style||-1===CKEDITOR.tools.indexOf(CKEDITOR.tools.style.parse._borderStyle,g)?!c.width&&CKEDITOR.tools.style.parse._widthRegExp.test(g)&&(c.width=g):c.style=g});return new CKEDITOR.tools.style.border(c)},splitCssValues:function(g,c){c=c||{};var a=CKEDITOR.tools.array.reduce(["width",
-"style","color"],function(a,d){var b=g["border-"+d]||c[d];a[d]=b?CKEDITOR.tools.style.parse.sideShorthand(b):null;return a},{});return CKEDITOR.tools.array.reduce(["top","right","bottom","left"],function(c,d){var b={},e;for(e in a){var m=g["border-"+d+"-"+e];b[e]=m?m:a[e]&&a[e][d]}c["border-"+d]=new CKEDITOR.tools.style.border(b);return c},{})}}});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(c,g){for(var a=CKEDITOR.tools.clone(c),b=1;b<arguments.length;b++){g=arguments[b];for(var e in g)delete a[e]}return a},f={},e={},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},k={command:1,link:1,meta:1,noscript:1,script:1,style:1},l={},
-m={"#":1},c={center:1,dir:1,noframes:1};b(f,{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},m,{acronym:1,applet:1,basefont:1,big:1,font:1,isindex:1,strike:1,style:1,tt:1});b(e,a,f,c);h=
-{a:h(f,{a:1,button:1}),abbr:f,address:e,area:l,article:e,aside:e,audio:b({source:1,track:1},e),b:f,base:l,bdi:f,bdo:f,blockquote:e,body:e,br:l,button:h(f,{a:1,button:1}),canvas:f,caption:e,cite:f,code:f,col:l,colgroup:{col:1},command:l,datalist:b({option:1},f),dd:e,del:f,details:b({summary:1},e),dfn:f,div:e,dl:{dt:1,dd:1},dt:e,em:f,embed:l,fieldset:b({legend:1},e),figcaption:e,figure:b({figcaption:1},e),footer:e,form:e,h1:f,h2:f,h3:f,h4:f,h5:f,h6:f,head:b({title:1,base:1},k),header:e,hgroup:{h1:1,
-h2:1,h3:1,h4:1,h5:1,h6:1},hr:l,html:b({head:1,body:1},e,k),i:f,iframe:m,img:l,input:l,ins:f,kbd:f,keygen:l,label:f,legend:f,li:e,link:l,main:e,map:e,mark:f,menu:b({li:1},e),meta:l,meter:h(f,{meter:1}),nav:e,noscript:b({link:1,meta:1,style:1},f),object:b({param:1},f),ol:{li:1},optgroup:{option:1},option:m,output:f,p:f,param:l,pre:f,progress:h(f,{progress:1}),q:f,rp:f,rt:f,ruby:b({rp:1,rt:1},f),s:f,samp:f,script:m,section:e,select:{optgroup:1,option:1},small:f,source:l,span:f,strong:f,style:m,sub:f,
-summary:b({h1:1,h2:1,h3:1,h4:1,h5:1,h6:1},f),sup:f,table:{caption:1,colgroup:1,thead:1,tfoot:1,tbody:1,tr:1},tbody:{tr:1},td:e,textarea:m,tfoot:{tr:1},th:e,thead:{tr:1},time:h(f,{time:1}),title:m,tr:{th:1,td:1},track:l,u:f,ul:{li:1},"var":f,video:b({source:1,track:1},e),wbr:l,acronym:f,applet:b({param:1},e),basefont:l,big:f,center:e,dialog:l,dir:{li:1},font:f,isindex:l,noframes:e,strike:f,tt:f};b(h,{$block:b({audio:1,dd:1,dt:1,figcaption:1,li:1,video:1},a,c),$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:f,$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},preventDefault:function(b){var h=this.$;h.preventDefault?h.preventDefault():h.returnValue=!1;b&&this.stopPropagation()},stopPropagation:function(){var b=this.$;b.stopPropagation?b.stopPropagation():
-b.cancelBubble=!0},getTarget:function(){var b=this.$.target||this.$.srcElement;return b?new CKEDITOR.dom.node(b):null},getPhase:function(){return this.$.eventPhase||2},getPageOffset:function(){var b=this.getTarget().getDocument().$;return{x:this.$.pageX||this.$.clientX+(b.documentElement.scrollLeft||b.body.scrollLeft),y:this.$.pageY||this.$.clientY+(b.documentElement.scrollTop||b.body.scrollTop)}}},CKEDITOR.CTRL=1114112,CKEDITOR.SHIFT=2228224,CKEDITOR.ALT=4456448,CKEDITOR.EVENT_PHASE_CAPTURING=1,
-CKEDITOR.EVENT_PHASE_AT_TARGET=2,CKEDITOR.EVENT_PHASE_BUBBLING=3,CKEDITOR.HISTORY_NATIVE=1,CKEDITOR.HISTORY_HASH=2,CKEDITOR.HISTORY_OFF=0,CKEDITOR.dom.domObject=function(b){b&&(this.$=b)},CKEDITOR.dom.domObject.prototype=function(){var b=function(b,f){return function(e){"undefined"!=typeof CKEDITOR&&b.fire(f,new CKEDITOR.dom.event(e))}};return{getPrivate:function(){var b;(b=this.getCustomData("_"))||this.setCustomData("_",b={});return b},on:function(h){var f=this.getCustomData("_cke_nativeListeners");
-f||(f={},this.setCustomData("_cke_nativeListeners",f));f[h]||(f=f[h]=b(this,h),this.$.addEventListener?this.$.addEventListener(h,f,!!CKEDITOR.event.useCapture):this.$.attachEvent&&this.$.attachEvent("on"+h,f));return CKEDITOR.event.prototype.on.apply(this,arguments)},removeListener:function(b){CKEDITOR.event.prototype.removeListener.apply(this,arguments);if(!this.hasListeners(b)){var f=this.getCustomData("_cke_nativeListeners"),e=f&&f[b];e&&(this.$.removeEventListener?this.$.removeEventListener(b,
-e,!1):this.$.detachEvent&&this.$.detachEvent("on"+b,e),delete f[b])}},removeAllListeners:function(){try{var b=this.getCustomData("_cke_nativeListeners"),f;for(f in b){var e=b[f];this.$.detachEvent?this.$.detachEvent("on"+f,e):this.$.removeEventListener&&this.$.removeEventListener(f,e,!1);delete b[f]}}catch(a){if(!CKEDITOR.env.edge||-2146828218!==a.number)throw a;}CKEDITOR.event.prototype.removeAllListeners.call(this)}}}(),function(b){var h={};CKEDITOR.on("reset",function(){h={}});b.equals=function(b){try{return b&&
-b.$===this.$}catch(e){return!1}};b.setCustomData=function(b,e){var a=this.getUniqueId();(h[a]||(h[a]={}))[b]=e;return this};b.getCustomData=function(b){var e=this.$["data-cke-expando"];return(e=e&&h[e])&&b in e?e[b]:null};b.removeCustomData=function(b){var e=this.$["data-cke-expando"],e=e&&h[e],a,k;e&&(a=e[b],k=b in e,delete e[b]);return k?a:null};b.clearCustomData=function(){this.removeAllListeners();var b=this.getUniqueId();b&&delete h[b]};b.getUniqueId=function(){return this.$["data-cke-expando"]||
-(this.$["data-cke-expando"]=CKEDITOR.tools.getNextNumber())};CKEDITOR.event.implementOn(b)}(CKEDITOR.dom.domObject.prototype),CKEDITOR.dom.node=function(b){return b?new CKEDITOR.dom[b.nodeType==CKEDITOR.NODE_DOCUMENT?"document":b.nodeType==CKEDITOR.NODE_ELEMENT?"element":b.nodeType==CKEDITOR.NODE_TEXT?"text":b.nodeType==CKEDITOR.NODE_COMMENT?"comment":b.nodeType==CKEDITOR.NODE_DOCUMENT_FRAGMENT?"documentFragment":"domObject"](b):this},CKEDITOR.dom.node.prototype=new CKEDITOR.dom.domObject,CKEDITOR.NODE_ELEMENT=
-1,CKEDITOR.NODE_DOCUMENT=9,CKEDITOR.NODE_TEXT=3,CKEDITOR.NODE_COMMENT=8,CKEDITOR.NODE_DOCUMENT_FRAGMENT=11,CKEDITOR.POSITION_IDENTICAL=0,CKEDITOR.POSITION_DISCONNECTED=1,CKEDITOR.POSITION_FOLLOWING=2,CKEDITOR.POSITION_PRECEDING=4,CKEDITOR.POSITION_IS_CONTAINED=8,CKEDITOR.POSITION_CONTAINS=16,CKEDITOR.tools.extend(CKEDITOR.dom.node.prototype,{appendTo:function(b,h){b.append(this,h);return b},clone:function(b,h){function f(a){a["data-cke-expando"]&&(a["data-cke-expando"]=!1);if(a.nodeType==CKEDITOR.NODE_ELEMENT||
-a.nodeType==CKEDITOR.NODE_DOCUMENT_FRAGMENT)if(h||a.nodeType!=CKEDITOR.NODE_ELEMENT||a.removeAttribute("id",!1),b){a=a.childNodes;for(var e=0;e<a.length;e++)f(a[e])}}function e(a){if(a.type==CKEDITOR.NODE_ELEMENT||a.type==CKEDITOR.NODE_DOCUMENT_FRAGMENT){if(a.type!=CKEDITOR.NODE_DOCUMENT_FRAGMENT){var f=a.getName();":"==f[0]&&a.renameNode(f.substring(1))}if(b)for(f=0;f<a.getChildCount();f++)e(a.getChild(f))}}var a=this.$.cloneNode(b);f(a);a=new CKEDITOR.dom.node(a);CKEDITOR.env.ie&&9>CKEDITOR.env.version&&
-(this.type==CKEDITOR.NODE_ELEMENT||this.type==CKEDITOR.NODE_DOCUMENT_FRAGMENT)&&e(a);return a},hasPrevious:function(){return!!this.$.previousSibling},hasNext:function(){return!!this.$.nextSibling},insertAfter:function(b){b.$.parentNode.insertBefore(this.$,b.$.nextSibling);return b},insertBefore:function(b){b.$.parentNode.insertBefore(this.$,b.$);return b},insertBeforeMe:function(b){this.$.parentNode.insertBefore(b.$,this.$);return b},getAddress:function(b){for(var h=[],f=this.getDocument().$.documentElement,
-e=this;e&&e!=f;){var a=e.getParent();a&&h.unshift(this.getIndex.call(e,b));e=a}return h},getDocument:function(){return new CKEDITOR.dom.document(this.$.ownerDocument||this.$.parentNode.ownerDocument)},getIndex:function(b){function h(a,b){var e=b?a.getNext():a.getPrevious();return e&&e.type==CKEDITOR.NODE_TEXT?e.isEmpty()?h(e,b):e:null}var f=this,e=-1,a;if(!this.getParent()||b&&f.type==CKEDITOR.NODE_TEXT&&f.isEmpty()&&!h(f)&&!h(f,!0))return-1;do if(!b||f.equals(this)||f.type!=CKEDITOR.NODE_TEXT||!a&&
-!f.isEmpty())e++,a=f.type==CKEDITOR.NODE_TEXT;while(f=f.getPrevious());return e},getNextSourceNode:function(b,h,f){if(f&&!f.call){var e=f;f=function(a){return!a.equals(e)}}b=!b&&this.getFirst&&this.getFirst();var a;if(!b){if(this.type==CKEDITOR.NODE_ELEMENT&&f&&!1===f(this,!0))return null;b=this.getNext()}for(;!b&&(a=(a||this).getParent());){if(f&&!1===f(a,!0))return null;b=a.getNext()}return!b||f&&!1===f(b)?null:h&&h!=b.type?b.getNextSourceNode(!1,h,f):b},getPreviousSourceNode:function(b,h,f){if(f&&
-!f.call){var e=f;f=function(a){return!a.equals(e)}}b=!b&&this.getLast&&this.getLast();var a;if(!b){if(this.type==CKEDITOR.NODE_ELEMENT&&f&&!1===f(this,!0))return null;b=this.getPrevious()}for(;!b&&(a=(a||this).getParent());){if(f&&!1===f(a,!0))return null;b=a.getPrevious()}return!b||f&&!1===f(b)?null:h&&b.type!=h?b.getPreviousSourceNode(!1,h,f):b},getPrevious:function(b){var h=this.$,f;do f=(h=h.previousSibling)&&10!=h.nodeType&&new CKEDITOR.dom.node(h);while(f&&b&&!b(f));return f},getNext:function(b){var h=
-this.$,f;do f=(h=h.nextSibling)&&new CKEDITOR.dom.node(h);while(f&&b&&!b(f));return f},getParent:function(b){var h=this.$.parentNode;return h&&(h.nodeType==CKEDITOR.NODE_ELEMENT||b&&h.nodeType==CKEDITOR.NODE_DOCUMENT_FRAGMENT)?new CKEDITOR.dom.node(h):null},getParents:function(b){var h=this,f=[];do f[b?"push":"unshift"](h);while(h=h.getParent());return f},getCommonAncestor:function(b){if(b.equals(this))return this;if(b.contains&&b.contains(this))return b;var h=this.contains?this:this.getParent();
-do if(h.contains(b))return h;while(h=h.getParent());return null},getPosition:function(b){var h=this.$,f=b.$;if(h.compareDocumentPosition)return h.compareDocumentPosition(f);if(h==f)return CKEDITOR.POSITION_IDENTICAL;if(this.type==CKEDITOR.NODE_ELEMENT&&b.type==CKEDITOR.NODE_ELEMENT){if(h.contains){if(h.contains(f))return CKEDITOR.POSITION_CONTAINS+CKEDITOR.POSITION_PRECEDING;if(f.contains(h))return CKEDITOR.POSITION_IS_CONTAINED+CKEDITOR.POSITION_FOLLOWING}if("sourceIndex"in h)return 0>h.sourceIndex||
-0>f.sourceIndex?CKEDITOR.POSITION_DISCONNECTED:h.sourceIndex<f.sourceIndex?CKEDITOR.POSITION_PRECEDING:CKEDITOR.POSITION_FOLLOWING}h=this.getAddress();b=b.getAddress();for(var f=Math.min(h.length,b.length),e=0;e<f;e++)if(h[e]!=b[e])return h[e]<b[e]?CKEDITOR.POSITION_PRECEDING:CKEDITOR.POSITION_FOLLOWING;return h.length<b.length?CKEDITOR.POSITION_CONTAINS+CKEDITOR.POSITION_PRECEDING:CKEDITOR.POSITION_IS_CONTAINED+CKEDITOR.POSITION_FOLLOWING},getAscendant:function(b,h){var f=this.$,e,a;h||(f=f.parentNode);
-"function"==typeof b?(a=!0,e=b):(a=!1,e=function(a){a="string"==typeof a.nodeName?a.nodeName.toLowerCase():"";return"string"==typeof b?a==b:a in b});for(;f;){if(e(a?new CKEDITOR.dom.node(f):f))return new CKEDITOR.dom.node(f);try{f=f.parentNode}catch(k){f=null}}return null},hasAscendant:function(b,h){var f=this.$;h||(f=f.parentNode);for(;f;){if(f.nodeName&&f.nodeName.toLowerCase()==b)return!0;f=f.parentNode}return!1},move:function(b,h){b.append(this.remove(),h)},remove:function(b){var h=this.$,f=h.parentNode;
-if(f){if(b)for(;b=h.firstChild;)f.insertBefore(h.removeChild(b),h);f.removeChild(h)}return this},replace:function(b){this.insertBefore(b);b.remove()},trim:function(){this.ltrim();this.rtrim()},ltrim:function(){for(var b;this.getFirst&&(b=this.getFirst());){if(b.type==CKEDITOR.NODE_TEXT){var h=CKEDITOR.tools.ltrim(b.getText()),f=b.getLength();if(h)h.length<f&&(b.split(f-h.length),this.$.removeChild(this.$.firstChild));else{b.remove();continue}}break}},rtrim:function(){for(var b;this.getLast&&(b=this.getLast());){if(b.type==
-CKEDITOR.NODE_TEXT){var h=CKEDITOR.tools.rtrim(b.getText()),f=b.getLength();if(h)h.length<f&&(b.split(h.length),this.$.lastChild.parentNode.removeChild(this.$.lastChild));else{b.remove();continue}}break}CKEDITOR.env.needsBrFiller&&(b=this.$.lastChild)&&1==b.type&&"br"==b.nodeName.toLowerCase()&&b.parentNode.removeChild(b)},isReadOnly:function(b){var h=this;this.type!=CKEDITOR.NODE_ELEMENT&&(h=this.getParent());CKEDITOR.env.edge&&h&&h.is("textarea","input")&&(b=!0);if(!b&&h&&"undefined"!=typeof h.$.isContentEditable)return!(h.$.isContentEditable||
-h.data("cke-editable"));for(;h;){if(h.data("cke-editable"))return!1;if(h.hasAttribute("contenteditable"))return"false"==h.getAttribute("contenteditable");h=h.getParent()}return!0}}),CKEDITOR.dom.window=function(b){CKEDITOR.dom.domObject.call(this,b)},CKEDITOR.dom.window.prototype=new CKEDITOR.dom.domObject,CKEDITOR.tools.extend(CKEDITOR.dom.window.prototype,{focus:function(){this.$.focus()},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){b=CKEDITOR.appendTimestamp(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 f=new CKEDITOR.dom.element("style",this);
-f.append(new CKEDITOR.dom.text(b,this));this.getHead().append(f)}return h||f.$.sheet},createElement:function(b,h){var f=new CKEDITOR.dom.element(b,this);h&&(h.attributes&&f.setAttributes(h.attributes),h.styles&&f.setStyles(h.styles));return f},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 f=this.$.documentElement,e=0;f&&e<b.length;e++){var a=b[e];if(h)for(var k=-1,l=0;l<f.childNodes.length;l++){var m=f.childNodes[l];if(!0!==h||3!=m.nodeType||!m.previousSibling||3!=m.previousSibling.nodeType)if(k++,k==a){f=m;break}}else f=f.childNodes[a]}return f?new CKEDITOR.dom.node(f):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 f=new CKEDITOR.dom.element("div",h);f.setHtml(b);return f.getFirst().remove()},CKEDITOR.dom.element.setMarker=function(b,h,f,e){var a=h.getCustomData("list_marker_id")||h.setCustomData("list_marker_id",CKEDITOR.tools.getNextNumber()).getCustomData("list_marker_id"),k=h.getCustomData("list_marker_names")||h.setCustomData("list_marker_names",
-{}).getCustomData("list_marker_names");b[a]=h;k[f]=1;return h.setCustomData(f,e)},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,f){var e=h.getCustomData("list_marker_names"),a=h.getCustomData("list_marker_id"),k;for(k in e)h.removeCustomData(k);h.removeCustomData("list_marker_names");f&&(h.removeCustomData("list_marker_id"),delete b[a])},function(){function b(a,c){return-1<(" "+a+" ").replace(k,
-" ").indexOf(" "+c+" ")}function h(a){var c=!0;a.$.id||(a.$.id="cke_tmp_"+CKEDITOR.tools.getNextNumber(),c=!1);return function(){c||a.removeAttribute("id")}}function f(a,c){var d=CKEDITOR.tools.escapeCss(a.$.id);return"#"+d+" "+c.split(/,\s*/).join(", #"+d+" ")}function e(a){for(var c=0,d=0,g=l[a].length;d<g;d++)c+=parseFloat(this.getComputedStyle(l[a][d])||0,10)||0;return c}var a=document.createElement("_").classList,a="undefined"!==typeof a&&null!==String(a.add).match(/\[Native code\]/gi),k=/[\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 c=this.$.className;c&&(b(c,a)||(c+=" "+a));this.$.className=c||a;return this},removeClass:a?function(a){var c=this.$;c.classList.remove(a);c.className||c.removeAttribute("class");return this}:function(a){var c=this.getAttribute("class");c&&b(c,a)&&((c=c.replace(new RegExp("(?:^|\\s+)"+a+"(?\x3d\\s|$)"),"").replace(/^\s+/,""))?this.setAttribute("class",
-c):this.removeAttribute("class"));return this},hasClass:function(a){return b(this.$.className,a)},append:function(a,c){"string"==typeof a&&(a=this.getDocument().createElement(a));c?this.$.insertBefore(a.$,this.$.firstChild):this.$.appendChild(a.$);return a},appendHtml:function(a){if(this.$.childNodes.length){var c=new CKEDITOR.dom.element("div",this.getDocument());c.setHtml(a);c.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,c){var d=new CKEDITOR.dom.range(this.getDocument());d.setStartAfter(this);d.setEndAfter(a);var g=d.extractContents(!1,c||!1),b;d.insertNode(this.remove());
-if(CKEDITOR.env.ie&&!CKEDITOR.env.edge){for(d=new CKEDITOR.dom.element("div");b=g.getFirst();)b.$.style.backgroundColor&&(b.$.style.backgroundColor=b.$.style.backgroundColor),d.append(b);d.insertAfter(this);d.remove(!0)}else g.insertAfterNode(this)},contains:document.compareDocumentPosition?function(a){return!!(this.$.compareDocumentPosition(a.$)&16)}:function(a){var c=this.$;return a.type!=CKEDITOR.NODE_ELEMENT?c.contains(a.getParent().$):c!=a.$&&c.contains(a.$)},focus:function(){function a(){try{this.$.focus()}catch(c){}}
-return function(c){c?CKEDITOR.tools.setTimeout(a,100,this):a.call(this)}}(),getHtml:function(){var a=this.$.innerHTML;return CKEDITOR.env.ie?a.replace(/<\?[^>]*>/g,""):a},getOuterHtml:function(){if(this.$.outerHTML)return this.$.outerHTML.replace(/<\?[^>]*>/,"");var a=this.$.ownerDocument.createElement("div");a.appendChild(this.$.cloneNode(!0));return a.innerHTML},getClientRect:function(a){var c=CKEDITOR.tools.extend({},this.$.getBoundingClientRect());!c.width&&(c.width=c.right-c.left);!c.height&&
-(c.height=c.bottom-c.top);return a?CKEDITOR.tools.getAbsoluteRectPosition(this.getWindow(),c):c},setHtml:CKEDITOR.env.ie&&9>CKEDITOR.env.version?function(a){try{var c=this.$;if(this.getParent())return c.innerHTML=a;var d=this.getDocument()._getHtml5ShivFrag();d.appendChild(c);c.innerHTML=a;d.removeChild(c);return a}catch(g){this.$.innerHTML="";c=new CKEDITOR.dom.element("body",this.getDocument());c.$.innerHTML=a;for(c=c.getChildren();c.count();)this.append(c.getItem(0));return a}}:function(a){return this.$.innerHTML=
-a},setText:function(){var a=document.createElement("p");a.innerHTML="x";a=a.textContent;return function(c){this.$[a?"textContent":"innerText"]=c}}(),getAttribute:function(){var a=function(a){return this.$.getAttribute(a,2)};return CKEDITOR.env.ie&&(CKEDITOR.env.ie7Compat||CKEDITOR.env.quirks)?function(a){switch(a){case "class":a="className";break;case "http-equiv":a="httpEquiv";break;case "name":return this.$.name;case "tabindex":return a=this.$.getAttribute(a,2),0!==a&&0===this.$.tabIndex&&(a=null),
-a;case "checked":return a=this.$.attributes.getNamedItem(a),(a.specified?a.nodeValue:this.$.checked)?"checked":null;case "hspace":case "value":return this.$[a];case "style":return this.$.style.cssText;case "contenteditable":case "contentEditable":return this.$.attributes.getNamedItem("contentEditable").specified?this.$.getAttribute("contentEditable"):null}return this.$.getAttribute(a,2)}:a}(),getAttributes:function(a){var c={},d=this.$.attributes,g;a=CKEDITOR.tools.isArray(a)?a:[];for(g=0;g<d.length;g++)-1===
-CKEDITOR.tools.indexOf(a,d[g].name)&&(c[d[g].name]=d[g].value);return c},getChildren:function(){return new CKEDITOR.dom.nodeList(this.$.childNodes)},getClientSize:function(){return{width:this.$.clientWidth,height:this.$.clientHeight}},getComputedStyle:document.defaultView&&document.defaultView.getComputedStyle?function(a){var c=this.getWindow().$.getComputedStyle(this.$,null);return c?c.getPropertyValue(a):""}:function(a){return this.$.currentStyle[CKEDITOR.tools.cssStyleToDomStyle(a)]},getDtd:function(){var a=
-CKEDITOR.dtd[this.getName()];this.getDtd=function(){return a};return a},getElementsByTag:CKEDITOR.dom.document.prototype.getElementsByTag,getTabIndex:function(){var a=this.$.tabIndex;return 0!==a||CKEDITOR.dtd.$tabIndex[this.getName()]||0===parseInt(this.getAttribute("tabindex"),10)?a:-1},getText:function(){return this.$.textContent||this.$.innerText||""},getWindow:function(){return this.getDocument().getWindow()},getId:function(){return this.$.id||null},getNameAtt:function(){return this.$.name||
-null},getName:function(){var a=this.$.nodeName.toLowerCase();if(CKEDITOR.env.ie&&8>=document.documentMode){var c=this.$.scopeName;"HTML"!=c&&(a=c.toLowerCase()+":"+a)}this.getName=function(){return a};return this.getName()},getValue:function(){return this.$.value},getFirst:function(a){var c=this.$.firstChild;(c=c&&new CKEDITOR.dom.node(c))&&a&&!a(c)&&(c=c.getNext(a));return c},getLast:function(a){var c=this.$.lastChild;(c=c&&new CKEDITOR.dom.node(c))&&a&&!a(c)&&(c=c.getPrevious(a));return c},getStyle:function(a){return this.$.style[CKEDITOR.tools.cssStyleToDomStyle(a)]},
-is:function(){var a=this.getName();if("object"==typeof arguments[0])return!!arguments[0][a];for(var c=0;c<arguments.length;c++)if(arguments[c]==a)return!0;return!1},isEditable:function(a){var c=this.getName();return this.isReadOnly()||"none"==this.getComputedStyle("display")||"hidden"==this.getComputedStyle("visibility")||CKEDITOR.dtd.$nonEditable[c]||CKEDITOR.dtd.$empty[c]||this.is("a")&&(this.data("cke-saved-name")||this.hasAttribute("name"))&&!this.getChildCount()?!1:!1!==a?(a=CKEDITOR.dtd[c]||
-CKEDITOR.dtd.span,!(!a||!a["#"])):!0},isIdentical:function(a){var c=this.clone(0,1);a=a.clone(0,1);c.removeAttributes(["_moz_dirty","data-cke-expando","data-cke-saved-href","data-cke-saved-name"]);a.removeAttributes(["_moz_dirty","data-cke-expando","data-cke-saved-href","data-cke-saved-name"]);if(c.$.isEqualNode)return c.$.style.cssText=CKEDITOR.tools.normalizeCssText(c.$.style.cssText),a.$.style.cssText=CKEDITOR.tools.normalizeCssText(a.$.style.cssText),c.$.isEqualNode(a.$);c=c.getOuterHtml();a=
-a.getOuterHtml();if(CKEDITOR.env.ie&&9>CKEDITOR.env.version&&this.is("a")){var d=this.getParent();d.type==CKEDITOR.NODE_ELEMENT&&(d=d.clone(),d.setHtml(c),c=d.getHtml(),d.setHtml(a),a=d.getHtml())}return c==a},isVisible:function(){var a=(this.$.offsetHeight||this.$.offsetWidth)&&"hidden"!=this.getComputedStyle("visibility"),c,d;a&&CKEDITOR.env.webkit&&(c=this.getWindow(),!c.equals(CKEDITOR.document.getWindow())&&(d=c.$.frameElement)&&(a=(new CKEDITOR.dom.element(d)).isVisible()));return!!a},isEmptyInlineRemoveable:function(){if(!CKEDITOR.dtd.$removeEmpty[this.getName()])return!1;
-for(var a=this.getChildren(),c=0,d=a.count();c<d;c++){var g=a.getItem(c);if(g.type!=CKEDITOR.NODE_ELEMENT||!g.data("cke-bookmark"))if(g.type==CKEDITOR.NODE_ELEMENT&&!g.isEmptyInlineRemoveable()||g.type==CKEDITOR.NODE_TEXT&&CKEDITOR.tools.trim(g.getText()))return!1}return!0},hasAttributes:CKEDITOR.env.ie&&(CKEDITOR.env.ie7Compat||CKEDITOR.env.quirks)?function(){for(var a=this.$.attributes,c=0;c<a.length;c++){var d=a[c];switch(d.nodeName){case "class":if(this.getAttribute("class"))return!0;case "data-cke-expando":continue;
-default:if(d.specified)return!0}}return!1}:function(){var a=this.$.attributes,c=a.length,d={"data-cke-expando":1,_moz_dirty:1};return 0<c&&(2<c||!d[a[0].nodeName]||2==c&&!d[a[1].nodeName])},hasAttribute:function(){function a(c){var d=this.$.attributes.getNamedItem(c);if("input"==this.getName())switch(c){case "class":return 0<this.$.className.length;case "checked":return!!this.$.checked;case "value":return c=this.getAttribute("type"),"checkbox"==c||"radio"==c?"on"!=this.$.value:!!this.$.value}return d?
-d.specified:!1}return CKEDITOR.env.ie?8>CKEDITOR.env.version?function(c){return"name"==c?!!this.$.name:a.call(this,c)}:a:function(a){return!!this.$.attributes.getNamedItem(a)}}(),hide:function(){this.setStyle("display","none")},moveChildren:function(a,c){var d=this.$;a=a.$;if(d!=a){var g;if(c)for(;g=d.lastChild;)a.insertBefore(d.removeChild(g),a.firstChild);else for(;g=d.firstChild;)a.appendChild(d.removeChild(g))}},mergeSiblings:function(){function a(c,d,g){if(d&&d.type==CKEDITOR.NODE_ELEMENT){for(var b=
-[];d.data("cke-bookmark")||d.isEmptyInlineRemoveable();)if(b.push(d),d=g?d.getNext():d.getPrevious(),!d||d.type!=CKEDITOR.NODE_ELEMENT)return;if(c.isIdentical(d)){for(var e=g?c.getLast():c.getFirst();b.length;)b.shift().move(c,!g);d.moveChildren(c,!g);d.remove();e&&e.type==CKEDITOR.NODE_ELEMENT&&e.mergeSiblings()}}}return function(c){if(!1===c||CKEDITOR.dtd.$removeEmpty[this.getName()]||this.is("a"))a(this,this.getNext(),!0),a(this,this.getPrevious())}}(),show:function(){this.setStyles({display:"",
-visibility:""})},setAttribute:function(){var a=function(a,d){this.$.setAttribute(a,d);return this};return CKEDITOR.env.ie&&(CKEDITOR.env.ie7Compat||CKEDITOR.env.quirks)?function(c,d){"class"==c?this.$.className=d:"style"==c?this.$.style.cssText=d:"tabindex"==c?this.$.tabIndex=d:"checked"==c?this.$.checked=d:"contenteditable"==c?a.call(this,"contentEditable",d):a.apply(this,arguments);return this}:CKEDITOR.env.ie8Compat&&CKEDITOR.env.secure?function(c,d){if("src"==c&&d.match(/^http:\/\//))try{a.apply(this,
-arguments)}catch(g){}else a.apply(this,arguments);return this}:a}(),setAttributes:function(a){for(var c in a)this.setAttribute(c,a[c]);return this},setValue:function(a){this.$.value=a;return this},removeAttribute:function(){var a=function(a){this.$.removeAttribute(a)};return CKEDITOR.env.ie&&(CKEDITOR.env.ie7Compat||CKEDITOR.env.quirks)?function(a){"class"==a?a="className":"tabindex"==a?a="tabIndex":"contenteditable"==a&&(a="contentEditable");this.$.removeAttribute(a)}:a}(),removeAttributes:function(a){if(CKEDITOR.tools.isArray(a))for(var c=
-0;c<a.length;c++)this.removeAttribute(a[c]);else for(c in a=a||this.getAttributes(),a)a.hasOwnProperty(c)&&this.removeAttribute(c)},removeStyle:function(a){var c=this.$.style;if(c.removeProperty||"border"!=a&&"margin"!=a&&"padding"!=a)c.removeProperty?c.removeProperty(a):c.removeAttribute(CKEDITOR.tools.cssStyleToDomStyle(a)),this.$.style.cssText||this.removeAttribute("style");else{var d=["top","left","right","bottom"],g;"border"==a&&(g=["color","style","width"]);for(var c=[],b=0;b<d.length;b++)if(g)for(var e=
-0;e<g.length;e++)c.push([a,d[b],g[e]].join("-"));else c.push([a,d[b]].join("-"));for(a=0;a<c.length;a++)this.removeStyle(c[a])}},setStyle:function(a,c){this.$.style[CKEDITOR.tools.cssStyleToDomStyle(a)]=c;return this},setStyles:function(a){for(var c in a)this.setStyle(c,a[c]);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,c=this.getElementsByTag("*"),d=0,g=c.count();d<g;d++)a=c.getItem(d),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 c=0,d=0,g=this.getDocument(),b=g.getBody(),e="BackCompat"==g.$.compatMode;if(document.documentElement.getBoundingClientRect&&(CKEDITOR.env.ie?
-8!==CKEDITOR.env.version:1)){var f=this.$.getBoundingClientRect(),k=g.$.documentElement,h=k.clientTop||b.$.clientTop||0,r=k.clientLeft||b.$.clientLeft||0,l=!0;CKEDITOR.env.ie&&(l=g.getDocumentElement().contains(this),g=g.getBody().contains(this),l=e&&g||!e&&l);l&&(CKEDITOR.env.webkit||CKEDITOR.env.ie&&12<=CKEDITOR.env.version?(c=b.$.scrollLeft||k.scrollLeft,d=b.$.scrollTop||k.scrollTop):(d=e?b.$:k,c=d.scrollLeft,d=d.scrollTop),c=f.left+c-r,d=f.top+d-h)}else for(h=this,r=null;h&&"body"!=h.getName()&&
-"html"!=h.getName();){c+=h.$.offsetLeft-h.$.scrollLeft;d+=h.$.offsetTop-h.$.scrollTop;h.equals(this)||(c+=h.$.clientLeft||0,d+=h.$.clientTop||0);for(;r&&!r.equals(h);)c-=r.$.scrollLeft,d-=r.$.scrollTop,r=r.getParent();r=h;h=(f=h.$.offsetParent)?new CKEDITOR.dom.element(f):null}a&&(f=this.getWindow(),h=a.getWindow(),!f.equals(h)&&f.$.frameElement&&(a=(new CKEDITOR.dom.element(f.$.frameElement)).getDocumentPosition(a),c+=a.x,d+=a.y));document.documentElement.getBoundingClientRect||!CKEDITOR.env.gecko||
-e||(c+=this.$.clientLeft?1:0,d+=this.$.clientTop?1:0);return{x:c,y:d}},scrollIntoView:function(a){var c=this.getParent();if(c){do if((c.$.clientWidth&&c.$.clientWidth<c.$.scrollWidth||c.$.clientHeight&&c.$.clientHeight<c.$.scrollHeight)&&!c.is("body")&&this.scrollIntoParent(c,a,1),c.is("html")){var d=c.getWindow();try{var g=d.$.frameElement;g&&(c=new CKEDITOR.dom.element(g))}catch(b){}}while(c=c.getParent())}},scrollIntoParent:function(a,c,d){var g,b,e,f;function k(g,c){/body|html/.test(a.getName())?
-a.getWindow().$.scrollBy(g,c):(a.$.scrollLeft+=g,a.$.scrollTop+=c)}function h(g,a){var c={x:0,y:0};if(!g.is(l?"body":"html")){var d=g.$.getBoundingClientRect();c.x=d.left;c.y=d.top}d=g.getWindow();d.equals(a)||(d=h(CKEDITOR.dom.element.get(d.$.frameElement),a),c.x+=d.x,c.y+=d.y);return c}function r(g,a){return parseInt(g.getComputedStyle("margin-"+a)||0,10)||0}!a&&(a=this.getWindow());e=a.getDocument();var l="BackCompat"==e.$.compatMode;a instanceof CKEDITOR.dom.window&&(a=l?e.getBody():e.getDocumentElement());
-CKEDITOR.env.webkit&&(e=this.getEditor(!1))&&(e._.previousScrollTop=null);e=a.getWindow();b=h(this,e);var t=h(a,e),y=this.$.offsetHeight;g=this.$.offsetWidth;var u=a.$.clientHeight,w=a.$.clientWidth;e=b.x-r(this,"left")-t.x||0;f=b.y-r(this,"top")-t.y||0;g=b.x+g+r(this,"right")-(t.x+w)||0;b=b.y+y+r(this,"bottom")-(t.y+u)||0;(0>f||0<b)&&k(0,!0===c?f:!1===c?b:0>f?f:b);d&&(0>e||0<g)&&k(0>e?e:g,0)},setState:function(a,c,d){c=c||"cke";switch(a){case CKEDITOR.TRISTATE_ON:this.addClass(c+"_on");this.removeClass(c+
-"_off");this.removeClass(c+"_disabled");d&&this.setAttribute("aria-pressed",!0);d&&this.removeAttribute("aria-disabled");break;case CKEDITOR.TRISTATE_DISABLED:this.addClass(c+"_disabled");this.removeClass(c+"_off");this.removeClass(c+"_on");d&&this.setAttribute("aria-disabled",!0);d&&this.removeAttribute("aria-pressed");break;default:this.addClass(c+"_off"),this.removeClass(c+"_on"),this.removeClass(c+"_disabled"),d&&this.removeAttribute("aria-pressed"),d&&this.removeAttribute("aria-disabled")}},
-getFrameDocument:function(){var a=this.$;try{a.contentWindow.document}catch(c){a.src=a.src}return a&&new CKEDITOR.dom.document(a.contentWindow.document)},copyAttributes:function(a,c){var d=this.$.attributes;c=c||{};for(var g=0;g<d.length;g++){var b=d[g],e=b.nodeName.toLowerCase(),f;if(!(e in c))if("checked"==e&&(f=this.getAttribute(e)))a.setAttribute(e,f);else if(!CKEDITOR.env.ie||this.hasAttribute(e))f=this.getAttribute(e),null===f&&(f=b.nodeValue),a.setAttribute(e,f)}""!==this.$.style.cssText&&
-(a.$.style.cssText=this.$.style.cssText)},renameNode:function(a){if(this.getName()!=a){var c=this.getDocument();a=new CKEDITOR.dom.element(a,c);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(c,d){var g=c.childNodes;if(0<=d&&d<g.length)return g[d]}return function(c){var d=this.$;if(c.slice)for(c=c.slice();0<c.length&&d;)d=a(d,
-c.shift());else d=a(d,c);return d?new CKEDITOR.dom.node(d):null}}(),getChildCount:function(){return this.$.childNodes.length},disableContextMenu:function(){function a(c){return c.type==CKEDITOR.NODE_ELEMENT&&c.hasClass("cke_enable_context_menu")}this.on("contextmenu",function(c){c.data.getTarget().getAscendant(a,!0)||c.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,c){a="data-"+a;if(void 0===c)return this.getAttribute(a);!1===c?this.removeAttribute(a):this.setAttribute(a,c);return null},getEditor:function(a){var c=CKEDITOR.instances,d,g,b;a=a||void 0===a;for(d in c)if(g=c[d],g.element.equals(this)&&g.elementMode!=CKEDITOR.ELEMENT_MODE_APPENDTO||!a&&(b=g.editable())&&(b.equals(this)||b.contains(this)))return g;return null},find:function(a){var c=h(this);a=new CKEDITOR.dom.nodeList(this.$.querySelectorAll(f(this,
-a)));c();return a},findOne:function(a){var c=h(this);a=this.$.querySelector(f(this,a));c();return a?new CKEDITOR.dom.element(a):null},forEach:function(a,c,d){if(!(d||c&&this.type!=c))var g=a(this);if(!1!==g){d=this.getChildren();for(var b=0;b<d.count();b++)g=d.getItem(b),g.type==CKEDITOR.NODE_ELEMENT?g.forEach(a,c):c&&g.type!=c||a(g)}},fireEventHandler:function(a,c){var d="on"+a,g=this.$;if(CKEDITOR.env.ie&&9>CKEDITOR.env.version){var b=g.ownerDocument.createEventObject(),e;for(e in c)b[e]=c[e];g.fireEvent(d,
-b)}else g[g[a]?a:d](c)},isDetached:function(){var a=this.getDocument(),c=a.getDocumentElement();return c.equals(this)||c.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,c,d){"number"==typeof c&&(!d||CKEDITOR.env.ie&&CKEDITOR.env.quirks||
-(c-=e.call(this,a)),this.setStyle(a,c+"px"))};CKEDITOR.dom.element.prototype.getSize=function(a,c){var d=Math.max(this.$["offset"+CKEDITOR.tools.capitalize(a)],this.$["client"+CKEDITOR.tools.capitalize(a)])||0;c&&(d-=e.call(this,a));return d}}(),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(a,g){var c=this.range;if(this._.end)return null;if(!this._.start){this._.start=1;if(c.collapsed)return this.end(),null;c.optimize()}var d,b=c.startContainer;d=c.endContainer;var e=c.startOffset,n=c.endOffset,f,k=this.guard,h=this.type,l=a?"getPreviousSourceNode":"getNextSourceNode";if(!a&&!this._.guardLTR){var m=d.type==CKEDITOR.NODE_ELEMENT?d:d.getParent(),C=d.type==CKEDITOR.NODE_ELEMENT?d.getChild(n):d.getNext();this._.guardLTR=
-function(a,g){return(!g||!m.equals(a))&&(!C||!a.equals(C))&&(a.type!=CKEDITOR.NODE_ELEMENT||!g||!a.equals(c.root))}}if(a&&!this._.guardRTL){var D=b.type==CKEDITOR.NODE_ELEMENT?b:b.getParent(),E=b.type==CKEDITOR.NODE_ELEMENT?e?b.getChild(e-1):null:b.getPrevious();this._.guardRTL=function(a,g){return(!g||!D.equals(a))&&(!E||!a.equals(E))&&(a.type!=CKEDITOR.NODE_ELEMENT||!g||!a.equals(c.root))}}var G=a?this._.guardRTL:this._.guardLTR;f=k?function(a,g){return!1===G(a,g)?!1:k(a,g)}:G;this.current?d=this.current[l](!1,
-h,f):(a?d.type==CKEDITOR.NODE_ELEMENT&&(d=0<n?d.getChild(n-1):!1===f(d,!0)?null:d.getPreviousSourceNode(!0,h,f)):(d=b,d.type==CKEDITOR.NODE_ELEMENT&&((d=d.getChild(e))||(d=!1===f(b,!0)?null:b.getNextSourceNode(!0,h,f)))),d&&!1===f(d)&&(d=null));for(;d&&!this._.end;){this.current=d;if(!this.evaluator||!1!==this.evaluator(d)){if(!g)return d}else if(g&&this.evaluator)return!1;d=d[l](!1,h,f)}this.end();return this.current=null}function h(a){for(var g,c=null;g=b.call(this,a);)c=g;return c}CKEDITOR.dom.walker=
-CKEDITOR.tools.createClass({$:function(a){this.range=a;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 f={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},e={absolute:1,fixed:1};CKEDITOR.dom.element.prototype.isBlockBoundary=function(a){return"none"!=this.getComputedStyle("float")||this.getComputedStyle("position")in e||!f[this.getComputedStyle("display")]?!!(this.is(CKEDITOR.dtd.$block)||a&&this.is(a)):!0};CKEDITOR.dom.walker.blockBoundary=function(a){return function(g){return!(g.type==CKEDITOR.NODE_ELEMENT&&g.isBlockBoundary(a))}};CKEDITOR.dom.walker.listItemBoundary=
-function(){return this.blockBoundary({br:1})};CKEDITOR.dom.walker.bookmark=function(a,g){function c(a){return a&&a.getName&&"span"==a.getName()&&a.data("cke-bookmark")}return function(d){var b,e;b=d&&d.type!=CKEDITOR.NODE_ELEMENT&&(e=d.getParent())&&c(e);b=a?b:b||c(d);return!!(g^b)}};CKEDITOR.dom.walker.whitespaces=function(a){return function(g){var c;g&&g.type==CKEDITOR.NODE_TEXT&&(c=!CKEDITOR.tools.trim(g.getText())||CKEDITOR.env.webkit&&g.getText()==CKEDITOR.dom.selection.FILLING_CHAR_SEQUENCE);
-return!!(a^c)}};CKEDITOR.dom.walker.invisible=function(a){var g=CKEDITOR.dom.walker.whitespaces(),c=CKEDITOR.env.webkit?1:0;return function(d){g(d)?d=1:(d.type==CKEDITOR.NODE_TEXT&&(d=d.getParent()),d=d.$.offsetWidth<=c);return!!(a^d)}};CKEDITOR.dom.walker.nodeType=function(a,g){return function(c){return!!(g^c.type==a)}};CKEDITOR.dom.walker.bogus=function(g){function c(a){return!k(a)&&!l(a)}return function(d){var b=CKEDITOR.env.needsBrFiller?d.is&&d.is("br"):d.getText&&a.test(d.getText());b&&(b=d.getParent(),
-d=d.getNext(c),b=b.isBlockBoundary()&&(!d||d.type==CKEDITOR.NODE_ELEMENT&&d.isBlockBoundary()));return!!(g^b)}};CKEDITOR.dom.walker.temp=function(a){return function(g){g.type!=CKEDITOR.NODE_ELEMENT&&(g=g.getParent());g=g&&g.hasAttribute("data-cke-temp");return!!(a^g)}};var a=/^[\t\r\n ]*(?:&nbsp;|\xa0)$/,k=CKEDITOR.dom.walker.whitespaces(),l=CKEDITOR.dom.walker.bookmark(),m=CKEDITOR.dom.walker.temp(),c=function(a){return l(a)||k(a)||a.type==CKEDITOR.NODE_ELEMENT&&a.is(CKEDITOR.dtd.$inline)&&!a.is(CKEDITOR.dtd.$empty)};
-CKEDITOR.dom.walker.ignored=function(a){return function(g){g=k(g)||l(g)||m(g);return!!(a^g)}};var d=CKEDITOR.dom.walker.ignored();CKEDITOR.dom.walker.empty=function(a){return function(g){for(var c=0,b=g.getChildCount();c<b;++c)if(!d(g.getChild(c)))return!!a;return!a}};var g=CKEDITOR.dom.walker.empty(),n=CKEDITOR.dom.walker.validEmptyBlockContainers=CKEDITOR.tools.extend(function(a){var g={},c;for(c in a)CKEDITOR.dtd[c]["#"]&&(g[c]=1);return g}(CKEDITOR.dtd.$block),{caption:1,td:1,th:1});CKEDITOR.dom.walker.editable=
-function(a){return function(c){c=d(c)?!1:c.type==CKEDITOR.NODE_TEXT||c.type==CKEDITOR.NODE_ELEMENT&&(c.is(CKEDITOR.dtd.$inline)||c.is("hr")||"false"==c.getAttribute("contenteditable")||!CKEDITOR.env.needsBrFiller&&c.is(n)&&g(c))?!0:!1;return!!(a^c)}};CKEDITOR.dom.element.prototype.getBogus=function(){var g=this;do g=g.getPreviousSourceNode();while(c(g));return g&&(CKEDITOR.env.needsBrFiller?g.is&&g.is("br"):g.getText&&a.test(g.getText()))?g:!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(a){a.collapsed=a.startContainer&&a.endContainer&&a.startContainer.equals(a.endContainer)&&a.startOffset==a.endOffset}function h(a,c,d,b,e){function f(a,g,c,d){var b=c?a.getPrevious():a.getNext();if(d&&l)return b;u||d?g.append(a.clone(!0,e),c):(a.remove(),m&&g.append(a,c));return b}function k(){var a,g,c,d=Math.min(H.length,
-I.length);for(a=0;a<d;a++)if(g=H[a],c=I[a],!g.equals(c))return a;return a-1}function h(){var c=P-1,d=G&&L&&!w.equals(B);c<J-1||c<M-1||d?(d?a.moveToPosition(B,CKEDITOR.POSITION_BEFORE_START):M==c+1&&E?a.moveToPosition(I[c],CKEDITOR.POSITION_BEFORE_END):a.moveToPosition(I[c+1],CKEDITOR.POSITION_BEFORE_START),b&&(c=H[c+1])&&c.type==CKEDITOR.NODE_ELEMENT&&(d=CKEDITOR.dom.element.createFromHtml('\x3cspan data-cke-bookmark\x3d"1" style\x3d"display:none"\x3e\x26nbsp;\x3c/span\x3e',a.document),d.insertAfter(c),
-c.mergeSiblings(!1),a.moveToBookmark({startNode:d}))):a.collapse(!0)}a.optimizeBookmark();var l=0===c,m=1==c,u=2==c;c=u||m;var w=a.startContainer,B=a.endContainer,A=a.startOffset,C=a.endOffset,D,E,G,L,F,O;if(u&&B.type==CKEDITOR.NODE_TEXT&&(w.equals(B)||w.type===CKEDITOR.NODE_ELEMENT&&w.getFirst().equals(B)))d.append(a.document.createText(B.substring(A,C)));else{B.type==CKEDITOR.NODE_TEXT?u?O=!0:B=B.split(C):0<B.getChildCount()?C>=B.getChildCount()?(B=B.getChild(C-1),E=!0):B=B.getChild(C):L=E=!0;w.type==
-CKEDITOR.NODE_TEXT?u?F=!0:w.split(A):0<w.getChildCount()?0===A?(w=w.getChild(A),D=!0):w=w.getChild(A-1):G=D=!0;for(var H=w.getParents(),I=B.getParents(),P=k(),J=H.length-1,M=I.length-1,N=d,V,S,U,da=-1,T=P;T<=J;T++){S=H[T];U=S.getNext();for(T!=J||S.equals(I[T])&&J<M?c&&(V=N.append(S.clone(0,e))):D?f(S,N,!1,G):F&&N.append(a.document.createText(S.substring(A)));U;){if(U.equals(I[T])){da=T;break}U=f(U,N)}N=V}N=d;for(T=P;T<=M;T++)if(d=I[T],U=d.getPrevious(),d.equals(H[T]))c&&(N=N.getChild(0));else{T!=
-M||d.equals(H[T])&&M<J?c&&(V=N.append(d.clone(0,e))):E?f(d,N,!1,L):O&&N.append(a.document.createText(d.substring(0,C)));if(T>da)for(;U;)U=f(U,N,!0);N=V}u||h()}}function f(){var a=!1,c=CKEDITOR.dom.walker.whitespaces(),d=CKEDITOR.dom.walker.bookmark(!0),b=CKEDITOR.dom.walker.bogus();return function(e){return d(e)||c(e)?!0:b(e)&&!a?a=!0:e.type==CKEDITOR.NODE_TEXT&&(e.hasAscendant("pre")||CKEDITOR.tools.trim(e.getText()).length)||e.type==CKEDITOR.NODE_ELEMENT&&!e.is(k)?!1:!0}}function e(a){var c=CKEDITOR.dom.walker.whitespaces(),
-d=CKEDITOR.dom.walker.bookmark(1);return function(b){return d(b)||c(b)?!0:!a&&l(b)||b.type==CKEDITOR.NODE_ELEMENT&&b.is(CKEDITOR.dtd.$removeEmpty)}}function a(a){return function(){var b;return this[a?"getPreviousNode":"getNextNode"](function(a){!b&&d(a)&&(b=a);return c(a)&&!(l(a)&&a.equals(b))})}}var k={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(),
-m=/^[\t\r\n ]*(?:&nbsp;|\xa0)$/,c=CKEDITOR.dom.walker.editable(),d=CKEDITOR.dom.walker.ignored(!0);CKEDITOR.dom.range.prototype={clone:function(){var a=new CKEDITOR.dom.range(this.root);a._setStartContainer(this.startContainer);a.startOffset=this.startOffset;a._setEndContainer(this.endContainer);a.endOffset=this.endOffset;a.collapsed=this.collapsed;return a},collapse:function(a){a?(this._setEndContainer(this.startContainer),this.endOffset=this.startOffset):(this._setStartContainer(this.endContainer),
-this.startOffset=this.endOffset);this.collapsed=!0},cloneContents:function(a){var c=new CKEDITOR.dom.documentFragment(this.document);this.collapsed||h(this,2,c,!1,"undefined"==typeof a?!0:a);return c},deleteContents:function(a){this.collapsed||h(this,0,null,a)},extractContents:function(a,c){var d=new CKEDITOR.dom.documentFragment(this.document);this.collapsed||h(this,1,d,a,"undefined"==typeof c?!0:c);return d},equals:function(a){return this.startOffset===a.startOffset&&this.endOffset===a.endOffset&&
-this.startContainer.equals(a.startContainer)&&this.endContainer.equals(a.endContainer)},createBookmark:function(a){function c(a){return a.getAscendant(function(a){var g;if(g=a.data&&a.data("cke-temp"))g=-1===CKEDITOR.tools.array.indexOf(["cke_copybin","cke_pastebin"],a.getAttribute("id"));return g},!0)}var d=this.startContainer,b=this.endContainer,e=this.collapsed,f,k,h,l;f=this.document.createElement("span");f.data("cke-bookmark",1);f.setStyle("display","none");f.setHtml("\x26nbsp;");a&&(h="cke_bm_"+
-CKEDITOR.tools.getNextNumber(),f.setAttribute("id",h+(e?"C":"S")));e||(k=f.clone(),k.setHtml("\x26nbsp;"),a&&k.setAttribute("id",h+"E"),l=this.clone(),c(b)&&(b=c(b),l.moveToPosition(b,CKEDITOR.POSITION_AFTER_END)),l.collapse(),l.insertNode(k));l=this.clone();c(d)&&(b=c(d),l.moveToPosition(b,CKEDITOR.POSITION_BEFORE_START));l.collapse(!0);l.insertNode(f);k?(this.setStartAfter(f),this.setEndBefore(k)):this.moveToPosition(f,CKEDITOR.POSITION_AFTER_END);return{startNode:a?h+(e?"C":"S"):f,endNode:a?h+
-"E":k,serializable:a,collapsed:e}},createBookmark2:function(){function a(g){var c=g.container,b=g.offset,e;e=c;var n=b;e=e.type!=CKEDITOR.NODE_ELEMENT||0===n||n==e.getChildCount()?0:e.getChild(n-1).type==CKEDITOR.NODE_TEXT&&e.getChild(n).type==CKEDITOR.NODE_TEXT;e&&(c=c.getChild(b-1),b=c.getLength());if(c.type==CKEDITOR.NODE_ELEMENT&&0<b){a:{for(e=c;b--;)if(n=e.getChild(b).getIndex(!0),0<=n){b=n;break a}b=-1}b+=1}if(c.type==CKEDITOR.NODE_TEXT){e=c;for(n=0;(e=e.getPrevious())&&e.type==CKEDITOR.NODE_TEXT;)n+=
-e.getText().replace(CKEDITOR.dom.selection.FILLING_CHAR_SEQUENCE,"").length;e=n;c.isEmpty()?(n=c.getPrevious(d),e?(b=e,c=n?n.getNext():c.getParent().getFirst()):(c=c.getParent(),b=n?n.getIndex(!0)+1:0)):b+=e}g.container=c;g.offset=b}function c(a,g){var d=g.getCustomData("cke-fillingChar");if(d){var b=a.container;d.equals(b)&&(a.offset-=CKEDITOR.dom.selection.FILLING_CHAR_SEQUENCE.length,0>=a.offset&&(a.offset=b.getIndex(),a.container=b.getParent()))}}var d=CKEDITOR.dom.walker.nodeType(CKEDITOR.NODE_TEXT,
-!0);return function(d){var b=this.collapsed,e={container:this.startContainer,offset:this.startOffset},f={container:this.endContainer,offset:this.endOffset};d&&(a(e),c(e,this.root),b||(a(f),c(f,this.root)));return{start:e.container.getAddress(d),end:b?null:f.container.getAddress(d),startOffset:e.offset,endOffset:f.offset,normalized:d,collapsed:b,is2:!0}}}(),moveToBookmark:function(a){if(a.is2){var c=this.document.getByAddress(a.start,a.normalized),d=a.startOffset,b=a.end&&this.document.getByAddress(a.end,
-a.normalized);a=a.endOffset;this.setStart(c,d);b?this.setEnd(b,a):this.collapse(!0)}else c=(d=a.serializable)?this.document.getById(a.startNode):a.startNode,a=d?this.document.getById(a.endNode):a.endNode,this.setStartBefore(c),c.remove(),a?(this.setEndBefore(a),a.remove()):this.collapse(!0)},getBoundaryNodes:function(){var a=this.startContainer,c=this.endContainer,d=this.startOffset,b=this.endOffset,e;if(a.type==CKEDITOR.NODE_ELEMENT)if(e=a.getChildCount(),e>d)a=a.getChild(d);else if(1>e)a=a.getPreviousSourceNode();
-else{for(a=a.$;a.lastChild;)a=a.lastChild;a=new CKEDITOR.dom.node(a);a=a.getNextSourceNode()||a}if(c.type==CKEDITOR.NODE_ELEMENT)if(e=c.getChildCount(),e>b)c=c.getChild(b).getPreviousSourceNode(!0);else if(1>e)c=c.getPreviousSourceNode();else{for(c=c.$;c.lastChild;)c=c.lastChild;c=new CKEDITOR.dom.node(c)}a.getPosition(c)&CKEDITOR.POSITION_FOLLOWING&&(a=c);return{startNode:a,endNode:c}},getCommonAncestor:function(a,c){var d=this.startContainer,b=this.endContainer,d=d.equals(b)?a&&d.type==CKEDITOR.NODE_ELEMENT&&
-this.startOffset==this.endOffset-1?d.getChild(this.startOffset):d:d.getCommonAncestor(b);return c&&!d.is?d.getParent():d},optimize:function(){var a=this.startContainer,c=this.startOffset;a.type!=CKEDITOR.NODE_ELEMENT&&(c?c>=a.getLength()&&this.setStartAfter(a):this.setStartBefore(a));a=this.endContainer;c=this.endOffset;a.type!=CKEDITOR.NODE_ELEMENT&&(c?c>=a.getLength()&&this.setEndAfter(a):this.setEndBefore(a))},optimizeBookmark:function(){var a=this.startContainer,c=this.endContainer;a.is&&a.is("span")&&
-a.data("cke-bookmark")&&this.setStartAt(a,CKEDITOR.POSITION_BEFORE_START);c&&c.is&&c.is("span")&&c.data("cke-bookmark")&&this.setEndAt(c,CKEDITOR.POSITION_AFTER_END)},trim:function(a,c){var d=this.startContainer,b=this.startOffset,e=this.collapsed;if((!a||e)&&d&&d.type==CKEDITOR.NODE_TEXT){if(b)if(b>=d.getLength())b=d.getIndex()+1,d=d.getParent();else{var f=d.split(b),b=d.getIndex()+1,d=d.getParent();this.startContainer.equals(this.endContainer)?this.setEnd(f,this.endOffset-this.startOffset):d.equals(this.endContainer)&&
-(this.endOffset+=1)}else b=d.getIndex(),d=d.getParent();this.setStart(d,b);if(e){this.collapse(!0);return}}d=this.endContainer;b=this.endOffset;c||e||!d||d.type!=CKEDITOR.NODE_TEXT||(b?(b>=d.getLength()||d.split(b),b=d.getIndex()+1):b=d.getIndex(),d=d.getParent(),this.setEnd(d,b))},enlarge:function(a,c){function d(a){return a&&a.type==CKEDITOR.NODE_ELEMENT&&a.hasAttribute("contenteditable")?null:a}var b=new RegExp(/[^\s\ufeff]/);switch(a){case CKEDITOR.ENLARGE_INLINE:var e=1;case CKEDITOR.ENLARGE_ELEMENT:var f=
-function(a,g){var c=new CKEDITOR.dom.range(h);c.setStart(a,g);c.setEndAt(h,CKEDITOR.POSITION_BEFORE_END);var c=new CKEDITOR.dom.walker(c),d;for(c.guard=function(a){return!(a.type==CKEDITOR.NODE_ELEMENT&&a.isBlockBoundary())};d=c.next();){if(d.type!=CKEDITOR.NODE_TEXT)return!1;D=d!=a?d.getText():d.substring(g);if(b.test(D))return!1}return!0};if(this.collapsed)break;var k=this.getCommonAncestor(),h=this.root,l,m,u,w,B,A=!1,C,D;C=this.startContainer;var E=this.startOffset;C.type==CKEDITOR.NODE_TEXT?
-(E&&(C=!CKEDITOR.tools.trim(C.substring(0,E)).length&&C,A=!!C),C&&((w=C.getPrevious())||(u=C.getParent()))):(E&&(w=C.getChild(E-1)||C.getLast()),w||(u=C));for(u=d(u);u||w;){if(u&&!w){!B&&u.equals(k)&&(B=!0);if(e?u.isBlockBoundary():!h.contains(u))break;A&&"inline"==u.getComputedStyle("display")||(A=!1,B?l=u:this.setStartBefore(u));w=u.getPrevious()}for(;w;)if(C=!1,w.type==CKEDITOR.NODE_COMMENT)w=w.getPrevious();else{if(w.type==CKEDITOR.NODE_TEXT)D=w.getText(),b.test(D)&&(w=null),C=/[\s\ufeff]$/.test(D);
-else if((w.$.offsetWidth>(CKEDITOR.env.webkit?1:0)||c&&w.is("br"))&&!w.data("cke-bookmark"))if(A&&CKEDITOR.dtd.$removeEmpty[w.getName()]){D=w.getText();if(b.test(D))w=null;else for(var E=w.$.getElementsByTagName("*"),G=0,L;L=E[G++];)if(!CKEDITOR.dtd.$removeEmpty[L.nodeName.toLowerCase()]){w=null;break}w&&(C=!!D.length)}else w=null;C&&(A?B?l=u:u&&this.setStartBefore(u):A=!0);if(w){C=w.getPrevious();if(!u&&!C){u=w;w=null;break}w=C}else u=null}u&&(u=d(u.getParent()))}C=this.endContainer;E=this.endOffset;
-u=w=null;B=A=!1;C.type==CKEDITOR.NODE_TEXT?CKEDITOR.tools.trim(C.substring(E)).length?A=!0:(A=!C.getLength(),E==C.getLength()?(w=C.getNext())||(u=C.getParent()):f(C,E)&&(u=C.getParent())):(w=C.getChild(E))||(u=C);for(;u||w;){if(u&&!w){!B&&u.equals(k)&&(B=!0);if(e?u.isBlockBoundary():!h.contains(u))break;A&&"inline"==u.getComputedStyle("display")||(A=!1,B?m=u:u&&this.setEndAfter(u));w=u.getNext()}for(;w;){C=!1;if(w.type==CKEDITOR.NODE_TEXT)D=w.getText(),f(w,0)||(w=null),C=/^[\s\ufeff]/.test(D);else if(w.type==
-CKEDITOR.NODE_ELEMENT){if((0<w.$.offsetWidth||c&&w.is("br"))&&!w.data("cke-bookmark"))if(A&&CKEDITOR.dtd.$removeEmpty[w.getName()]){D=w.getText();if(b.test(D))w=null;else for(E=w.$.getElementsByTagName("*"),G=0;L=E[G++];)if(!CKEDITOR.dtd.$removeEmpty[L.nodeName.toLowerCase()]){w=null;break}w&&(C=!!D.length)}else w=null}else C=1;C&&A&&(B?m=u:this.setEndAfter(u));if(w){C=w.getNext();if(!u&&!C){u=w;w=null;break}w=C}else u=null}u&&(u=d(u.getParent()))}l&&m&&(k=l.contains(m)?m:l,this.setStartBefore(k),
-this.setEndAfter(k));break;case CKEDITOR.ENLARGE_BLOCK_CONTENTS:case CKEDITOR.ENLARGE_LIST_ITEM_CONTENTS:u=new CKEDITOR.dom.range(this.root);h=this.root;u.setStartAt(h,CKEDITOR.POSITION_AFTER_START);u.setEnd(this.startContainer,this.startOffset);u=new CKEDITOR.dom.walker(u);var F,O,H=CKEDITOR.dom.walker.blockBoundary(a==CKEDITOR.ENLARGE_LIST_ITEM_CONTENTS?{br:1}:null),I=null,P=function(a){if(a.type==CKEDITOR.NODE_ELEMENT&&"false"==a.getAttribute("contenteditable"))if(I){if(I.equals(a)){I=null;return}}else I=
-a;else if(I)return;var g=H(a);g||(F=a);return g},e=function(a){var g=P(a);!g&&a.is&&a.is("br")&&(O=a);return g};u.guard=P;u=u.lastBackward();F=F||h;this.setStartAt(F,!F.is("br")&&(!u&&this.checkStartOfBlock()||u&&F.contains(u))?CKEDITOR.POSITION_AFTER_START:CKEDITOR.POSITION_AFTER_END);if(a==CKEDITOR.ENLARGE_LIST_ITEM_CONTENTS){u=this.clone();u=new CKEDITOR.dom.walker(u);var J=CKEDITOR.dom.walker.whitespaces(),M=CKEDITOR.dom.walker.bookmark();u.evaluator=function(a){return!J(a)&&!M(a)};if((u=u.previous())&&
-u.type==CKEDITOR.NODE_ELEMENT&&u.is("br"))break}u=this.clone();u.collapse();u.setEndAt(h,CKEDITOR.POSITION_BEFORE_END);u=new CKEDITOR.dom.walker(u);u.guard=a==CKEDITOR.ENLARGE_LIST_ITEM_CONTENTS?e:P;F=I=O=null;u=u.lastForward();F=F||h;this.setEndAt(F,!u&&this.checkEndOfBlock()||u&&F.contains(u)?CKEDITOR.POSITION_BEFORE_END:CKEDITOR.POSITION_BEFORE_START);O&&this.setEndAfter(O)}},shrink:function(a,c,d){var b="boolean"===typeof d?d:d&&"boolean"===typeof d.shrinkOnBlockBoundary?d.shrinkOnBlockBoundary:
-!0,e=d&&d.skipBogus;if(!this.collapsed){a=a||CKEDITOR.SHRINK_TEXT;var f=this.clone(),k=this.startContainer,h=this.endContainer,l=this.startOffset,m=this.endOffset,u=d=1;k&&k.type==CKEDITOR.NODE_TEXT&&(l?l>=k.getLength()?f.setStartAfter(k):(f.setStartBefore(k),d=0):f.setStartBefore(k));h&&h.type==CKEDITOR.NODE_TEXT&&(m?m>=h.getLength()?f.setEndAfter(h):(f.setEndAfter(h),u=0):f.setEndBefore(h));var f=new CKEDITOR.dom.walker(f),w=CKEDITOR.dom.walker.bookmark(),B=CKEDITOR.dom.walker.bogus();f.evaluator=
-function(c){return c.type==(a==CKEDITOR.SHRINK_ELEMENT?CKEDITOR.NODE_ELEMENT:CKEDITOR.NODE_TEXT)};var A;f.guard=function(c,d){if(e&&B(c)||w(c))return!0;if(a==CKEDITOR.SHRINK_ELEMENT&&c.type==CKEDITOR.NODE_TEXT||d&&c.equals(A)||!1===b&&c.type==CKEDITOR.NODE_ELEMENT&&c.isBlockBoundary()||c.type==CKEDITOR.NODE_ELEMENT&&c.hasAttribute("contenteditable"))return!1;d||c.type!=CKEDITOR.NODE_ELEMENT||(A=c);return!0};d&&(k=f[a==CKEDITOR.SHRINK_ELEMENT?"lastForward":"next"]())&&this.setStartAt(k,c?CKEDITOR.POSITION_AFTER_START:
-CKEDITOR.POSITION_BEFORE_START);u&&(f.reset(),(f=f[a==CKEDITOR.SHRINK_ELEMENT?"lastBackward":"previous"]())&&this.setEndAt(f,c?CKEDITOR.POSITION_BEFORE_END:CKEDITOR.POSITION_AFTER_END));return!(!d&&!u)}},insertNode:function(a){this.optimizeBookmark();this.trim(!1,!0);var c=this.startContainer,d=c.getChild(this.startOffset);d?a.insertBefore(d):c.append(a);a.getParent()&&a.getParent().equals(this.endContainer)&&this.endOffset++;this.setStartBefore(a)},moveToPosition:function(a,c){this.setStartAt(a,
-c);this.collapse(!0)},moveToRange:function(a){this.setStart(a.startContainer,a.startOffset);this.setEnd(a.endContainer,a.endOffset)},selectNodeContents:function(a){this.setStart(a,0);this.setEnd(a,a.type==CKEDITOR.NODE_TEXT?a.getLength():a.getChildCount())},setStart:function(a,c){a.type==CKEDITOR.NODE_ELEMENT&&CKEDITOR.dtd.$empty[a.getName()]&&(c=a.getIndex(),a=a.getParent());this._setStartContainer(a);this.startOffset=c;this.endContainer||(this._setEndContainer(a),this.endOffset=c);b(this)},setEnd:function(a,
-c){a.type==CKEDITOR.NODE_ELEMENT&&CKEDITOR.dtd.$empty[a.getName()]&&(c=a.getIndex()+1,a=a.getParent());this._setEndContainer(a);this.endOffset=c;this.startContainer||(this._setStartContainer(a),this.startOffset=c);b(this)},setStartAfter:function(a){this.setStart(a.getParent(),a.getIndex()+1)},setStartBefore:function(a){this.setStart(a.getParent(),a.getIndex())},setEndAfter:function(a){this.setEnd(a.getParent(),a.getIndex()+1)},setEndBefore:function(a){this.setEnd(a.getParent(),a.getIndex())},setStartAt:function(a,
-c){switch(c){case CKEDITOR.POSITION_AFTER_START:this.setStart(a,0);break;case CKEDITOR.POSITION_BEFORE_END:a.type==CKEDITOR.NODE_TEXT?this.setStart(a,a.getLength()):this.setStart(a,a.getChildCount());break;case CKEDITOR.POSITION_BEFORE_START:this.setStartBefore(a);break;case CKEDITOR.POSITION_AFTER_END:this.setStartAfter(a)}b(this)},setEndAt:function(a,c){switch(c){case CKEDITOR.POSITION_AFTER_START:this.setEnd(a,0);break;case CKEDITOR.POSITION_BEFORE_END:a.type==CKEDITOR.NODE_TEXT?this.setEnd(a,
-a.getLength()):this.setEnd(a,a.getChildCount());break;case CKEDITOR.POSITION_BEFORE_START:this.setEndBefore(a);break;case CKEDITOR.POSITION_AFTER_END:this.setEndAfter(a)}b(this)},fixBlock:function(a,c){var d=this.createBookmark(),b=this.document.createElement(c);this.collapse(a);this.enlarge(CKEDITOR.ENLARGE_BLOCK_CONTENTS);this.extractContents().appendTo(b);b.trim();this.insertNode(b);var e=b.getBogus();e&&e.remove();b.appendBogus();this.moveToBookmark(d);return b},splitBlock:function(a,c){var d=
-new CKEDITOR.dom.elementPath(this.startContainer,this.root),b=new CKEDITOR.dom.elementPath(this.endContainer,this.root),e=d.block,f=b.block,k=null;if(!d.blockLimit.equals(b.blockLimit))return null;"br"!=a&&(e||(e=this.fixBlock(!0,a),f=(new CKEDITOR.dom.elementPath(this.endContainer,this.root)).block),f||(f=this.fixBlock(!1,a)));d=e&&this.checkStartOfBlock();b=f&&this.checkEndOfBlock();this.deleteContents();e&&e.equals(f)&&(b?(k=new CKEDITOR.dom.elementPath(this.startContainer,this.root),this.moveToPosition(f,
-CKEDITOR.POSITION_AFTER_END),f=null):d?(k=new CKEDITOR.dom.elementPath(this.startContainer,this.root),this.moveToPosition(e,CKEDITOR.POSITION_BEFORE_START),e=null):(f=this.splitElement(e,c||!1),e.is("ul","ol")||e.appendBogus()));return{previousBlock:e,nextBlock:f,wasStartOfBlock:d,wasEndOfBlock:b,elementPath:k}},splitElement:function(a,c){if(!this.collapsed)return null;this.setEndAt(a,CKEDITOR.POSITION_BEFORE_END);var d=this.extractContents(!1,c||!1),b=a.clone(!1,c||!1);d.appendTo(b);b.insertAfter(a);
-this.moveToPosition(a,CKEDITOR.POSITION_AFTER_END);return b},removeEmptyBlocksAtEnd:function(){function a(g){return function(a){return c(a)||d(a)||a.type==CKEDITOR.NODE_ELEMENT&&a.isEmptyInlineRemoveable()||g.is("table")&&a.is("caption")?!1:!0}}var c=CKEDITOR.dom.walker.whitespaces(),d=CKEDITOR.dom.walker.bookmark(!1);return function(c){for(var d=this.createBookmark(),b=this[c?"endPath":"startPath"](),e=b.block||b.blockLimit,f;e&&!e.equals(b.root)&&!e.getFirst(a(e));)f=e.getParent(),this[c?"setEndAt":
-"setStartAt"](e,CKEDITOR.POSITION_AFTER_END),e.remove(1),e=f;this.moveToBookmark(d)}}(),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,c){var d=c==CKEDITOR.START,b=this.clone();b.collapse(d);b[d?"setStartAt":"setEndAt"](a,d?CKEDITOR.POSITION_AFTER_START:CKEDITOR.POSITION_BEFORE_END);b=new CKEDITOR.dom.walker(b);b.evaluator=e(d);return b[d?
-"checkBackward":"checkForward"]()},checkStartOfBlock:function(a){var c=this.startContainer,d=this.startOffset;CKEDITOR.env.ie&&d&&c.type==CKEDITOR.NODE_TEXT&&(c=CKEDITOR.tools.ltrim(c.substring(0,d)),m.test(c)&&this.trim(0,1));a||this.trim();a=new CKEDITOR.dom.elementPath(this.startContainer,this.root);c=this.clone();c.collapse(!0);c.setStartAt(a.block||a.blockLimit,CKEDITOR.POSITION_AFTER_START);a=new CKEDITOR.dom.walker(c);a.evaluator=f();return a.checkBackward()},checkEndOfBlock:function(a){var c=
-this.endContainer,d=this.endOffset;CKEDITOR.env.ie&&c.type==CKEDITOR.NODE_TEXT&&(c=CKEDITOR.tools.rtrim(c.substring(d)),m.test(c)&&this.trim(1,0));a||this.trim();a=new CKEDITOR.dom.elementPath(this.endContainer,this.root);c=this.clone();c.collapse(!1);c.setEndAt(a.block||a.blockLimit,CKEDITOR.POSITION_BEFORE_END);a=new CKEDITOR.dom.walker(c);a.evaluator=f();return a.checkForward()},getPreviousNode:function(a,c,d){var b=this.clone();b.collapse(1);b.setStartAt(d||this.root,CKEDITOR.POSITION_AFTER_START);
-d=new CKEDITOR.dom.walker(b);d.evaluator=a;d.guard=c;return d.previous()},getNextNode:function(a,c,d){var b=this.clone();b.collapse();b.setEndAt(d||this.root,CKEDITOR.POSITION_BEFORE_END);d=new CKEDITOR.dom.walker(b);d.evaluator=a;d.guard=c;return d.next()},checkReadOnly:function(){function a(c,g){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(g)||c.equals(g)))break}c=
-c.getParent()}return 1}return function(){var c=this.startContainer,d=this.endContainer;return!(a(c,d)&&a(d,c))}}(),moveToElementEditablePosition:function(a,c){if(a.type==CKEDITOR.NODE_ELEMENT&&!a.isEditable(!1))return this.moveToPosition(a,c?CKEDITOR.POSITION_AFTER_END:CKEDITOR.POSITION_BEFORE_START),!0;for(var b=0;a;){if(a.type==CKEDITOR.NODE_TEXT){c&&this.endContainer&&this.checkEndOfBlock()&&m.test(a.getText())?this.moveToPosition(a,CKEDITOR.POSITION_BEFORE_START):this.moveToPosition(a,c?CKEDITOR.POSITION_AFTER_END:
-CKEDITOR.POSITION_BEFORE_START);b=1;break}if(a.type==CKEDITOR.NODE_ELEMENT)if(a.isEditable())this.moveToPosition(a,c?CKEDITOR.POSITION_BEFORE_END:CKEDITOR.POSITION_AFTER_START),b=1;else if(c&&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 e=a,f=b,k=void 0;e.type==CKEDITOR.NODE_ELEMENT&&e.isEditable(!1)&&
-(k=e[c?"getLast":"getFirst"](d));f||k||(k=e[c?"getPrevious":"getNext"](d));a=k}return!!b},moveToClosestEditablePosition:function(a,c){var d,b=0,e,f,k=[CKEDITOR.POSITION_AFTER_END,CKEDITOR.POSITION_BEFORE_START];a?(d=new CKEDITOR.dom.range(this.root),d.moveToPosition(a,k[c?0:1])):d=this.clone();if(a&&!a.is(CKEDITOR.dtd.$block))b=1;else if(e=d[c?"getNextEditableNode":"getPreviousEditableNode"]())b=1,(f=e.type==CKEDITOR.NODE_ELEMENT)&&e.is(CKEDITOR.dtd.$block)&&"false"==e.getAttribute("contenteditable")?
-(d.setStartAt(e,CKEDITOR.POSITION_BEFORE_START),d.setEndAt(e,CKEDITOR.POSITION_AFTER_END)):!CKEDITOR.env.needsBrFiller&&f&&e.is(CKEDITOR.dom.walker.validEmptyBlockContainers)?(d.setEnd(e,0),d.collapse()):d.moveToPosition(e,k[c?1:0]);b&&this.moveToRange(d);return!!b},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!=
-CKEDITOR.NODE_ELEMENT||a.endContainer.type!=CKEDITOR.NODE_ELEMENT)return null;var a=new CKEDITOR.dom.walker(a),c=CKEDITOR.dom.walker.bookmark(!1,!0),d=CKEDITOR.dom.walker.whitespaces(!0);a.evaluator=function(a){return d(a)&&c(a)};var b=a.next();a.reset();return b&&b.equals(a.previous())?b:null},getTouchedStartNode:function(){var a=this.startContainer;return this.collapsed||a.type!=CKEDITOR.NODE_ELEMENT?a:a.getChild(this.startOffset)||a},getTouchedEndNode:function(){var a=this.endContainer;return this.collapsed||
-a.type!=CKEDITOR.NODE_ELEMENT?a:a.getChild(this.endOffset-1)||a},getNextEditableNode:a(),getPreviousEditableNode:a(1),_getTableElement:function(a){a=a||{td:1,th:1,tr:1,tbody:1,thead:1,tfoot:1,table:1};var c=this.getTouchedStartNode(),d=this.getTouchedEndNode(),b=c.getAscendant("table",!0),d=d.getAscendant("table",!0);return b&&!this.root.contains(b)?null:this.getEnclosedNode()?this.getEnclosedNode().getAscendant(a,!0):b&&d&&(b.equals(d)||b.contains(d)||d.contains(b))?c.getAscendant(a,!0):null},scrollIntoView:function(){var a=
-new CKEDITOR.dom.element.createFromHtml("\x3cspan\x3e\x26nbsp;\x3c/span\x3e",this.document),c,d,b,e=this.clone();e.optimize();(b=e.startContainer.type==CKEDITOR.NODE_TEXT)?(d=e.startContainer.getText(),c=e.startContainer.split(e.startOffset),a.insertAfter(e.startContainer)):e.insertNode(a);a.scrollIntoView();b&&(e.startContainer.setText(d),c.remove());a.remove()},getClientRects:function(){function a(c,d){var g=CKEDITOR.tools.array.map(c,function(a){return a}),b=new CKEDITOR.dom.range(d.root),e,f,
-n;d.startContainer instanceof CKEDITOR.dom.element&&(f=0===d.startOffset&&d.startContainer.hasAttribute("data-widget"));d.endContainer instanceof CKEDITOR.dom.element&&(n=(n=d.endOffset===(d.endContainer.getChildCount?d.endContainer.getChildCount():d.endContainer.length))&&d.endContainer.hasAttribute("data-widget"));f&&b.setStart(d.startContainer.getParent(),d.startContainer.getIndex());n&&b.setEnd(d.endContainer.getParent(),d.endContainer.getIndex()+1);if(f||n)d=b;b=d.cloneContents().find("[data-cke-widget-id]").toArray();
-if(b=CKEDITOR.tools.array.map(b,function(a){var c=d.root.editor;a=a.getAttribute("data-cke-widget-id");return c.widgets.instances[a].element}))return b=CKEDITOR.tools.array.map(b,function(a){var c;c=a.getParent().hasClass("cke_widget_wrapper")?a.getParent():a;e=this.root.getDocument().$.createRange();e.setStart(c.getParent().$,c.getIndex());e.setEnd(c.getParent().$,c.getIndex()+1);c=e.getClientRects();c.widgetRect=a.getClientRect();return c},d),CKEDITOR.tools.array.forEach(b,function(a){function c(b){CKEDITOR.tools.array.forEach(g,
-function(c,e){var f=CKEDITOR.tools.objectCompare(a[b],c);f||(f=CKEDITOR.tools.objectCompare(a.widgetRect,c));f&&(Array.prototype.splice.call(g,e,a.length-b,a.widgetRect),d=!0)});d||(b<g.length-1?c(b+1):g.push(a.widgetRect))}var d;c(0)}),g}function c(a,d,g){var e;d.collapsed?g.startContainer instanceof CKEDITOR.dom.element?(a=g.checkStartOfBlock(),e=new CKEDITOR.dom.text("​"),a?g.startContainer.append(e,!0):0===g.startOffset?e.insertBefore(g.startContainer.getFirst()):(g=g.startContainer.getChildren().getItem(g.startOffset-
-1),e.insertAfter(g)),d.setStart(e.$,0),d.setEnd(e.$,0),a=d.getClientRects(),e.remove()):g.startContainer instanceof CKEDITOR.dom.text&&(""===g.startContainer.getText()?(g.startContainer.setText("​"),a=d.getClientRects(),g.startContainer.setText("")):a=[b(g.createBookmark())]):a=[b(g.createBookmark())];return a}function d(a,c,g){a=CKEDITOR.tools.extend({},a);c&&(a=CKEDITOR.tools.getAbsoluteRectPosition(g.document.getWindow(),a));!a.width&&(a.width=a.right-a.left);!a.height&&(a.height=a.bottom-a.top);
-return a}function b(a){var c=a.startNode;a=a.endNode;var d;c.setText("​");c.removeStyle("display");a?(a.setText("​"),a.removeStyle("display"),d=[c.getClientRect(),a.getClientRect()],a.remove()):d=[c.getClientRect(),c.getClientRect()];c.remove();return{right:Math.max(d[0].right,d[1].right),bottom:Math.max(d[0].bottom,d[1].bottom),left:Math.min(d[0].left,d[1].left),top:Math.min(d[0].top,d[1].top),width:Math.abs(d[0].left-d[1].left),height:Math.max(d[0].bottom,d[1].bottom)-Math.min(d[0].top,d[1].top)}}
-return void 0!==this.document.getSelection?function(b){var e=this.root.getDocument().$.createRange(),f;e.setStart(this.startContainer.$,this.startOffset);e.setEnd(this.endContainer.$,this.endOffset);f=e.getClientRects();f=a(f,this);f.length||(f=c(f,e,this));return CKEDITOR.tools.array.map(f,function(a){return d(a,b,this)},this)}:function(a){return[d(b(this.createBookmark()),a,this)]}}(),_setStartContainer:function(a){this.startContainer=a},_setEndContainer:function(a){this.endContainer=a},_find:function(a,
-c){var d=this.getCommonAncestor(),b=this.getBoundaryNodes(),e=[],f,k,h,l;if(d&&d.find)for(k=d.find(a),f=0;f<k.count();f++)if(d=k.getItem(f),c||!d.isReadOnly())h=d.getPosition(b.startNode)&CKEDITOR.POSITION_FOLLOWING||b.startNode.equals(d),l=d.getPosition(b.endNode)&CKEDITOR.POSITION_PRECEDING+CKEDITOR.POSITION_IS_CONTAINED||b.endNode.equals(d),h&&l&&e.push(d);return e}};CKEDITOR.dom.range.mergeRanges=function(a){return CKEDITOR.tools.array.reduce(a,function(a,c){var d=a[a.length-1],g=!1;c=c.clone();
-c.enlarge(CKEDITOR.ENLARGE_ELEMENT);if(d){var b=new CKEDITOR.dom.range(c.root),g=new CKEDITOR.dom.walker(b),e=CKEDITOR.dom.walker.whitespaces();b.setStart(d.endContainer,d.endOffset);b.setEnd(c.startContainer,c.startOffset);for(b=g.next();e(b)||c.endContainer.equals(b);)b=g.next();g=!b}g?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 f(a,c,b,e){a:{null==
-e&&(e=h(b));for(var k;k=e.shift();)if(k.getDtd().p){e={element:k,remaining:e};break a}e=null}if(!e)return 0;if((k=CKEDITOR.filter.instances[e.element.data("cke-filter")])&&!k.check(c))return f(a,c,b,e.remaining);c=new CKEDITOR.dom.range(e.element);c.selectNodeContents(e.element);c=c.createIterator();c.enlargeBr=a.enlargeBr;c.enforceRealBlocks=a.enforceRealBlocks;c.activeFilter=c.filter=k;a._.nestedEditable={element:e.element,container:b,remaining:e.remaining,iterator:c};return 1}function e(a,c,b){if(!c)return!1;
-a=a.clone();a.collapse(!b);return a.checkBoundaryOfElement(c,b?CKEDITOR.START:CKEDITOR.END)}var a=/^[\r\n\t ]+$/,k=CKEDITOR.dom.walker.bookmark(!1,!0),l=CKEDITOR.dom.walker.whitespaces(!0),m=function(a){return k(a)&&l(a)},c={dd:1,dt:1,li:1};b.prototype={getNextParagraph:function(d){var g,b,h,l,p;d=d||"p";if(this._.nestedEditable){if(g=this._.nestedEditable.iterator.getNextParagraph(d))return this.activeFilter=this._.nestedEditable.iterator.activeFilter,g;this.activeFilter=this.filter;if(f(this,d,
-this._.nestedEditable.container,this._.nestedEditable.remaining))return this.activeFilter=this._.nestedEditable.iterator.activeFilter,this._.nestedEditable.iterator.getNextParagraph(d);this._.nestedEditable=null}if(!this.range.root.getDtd()[d])return null;if(!this._.started){var q=this.range.clone();b=q.startPath();var r=q.endPath(),z=!q.collapsed&&e(q,b.block),t=!q.collapsed&&e(q,r.block,1);q.shrink(CKEDITOR.SHRINK_ELEMENT,!0);z&&q.setStartAt(b.block,CKEDITOR.POSITION_BEFORE_END);t&&q.setEndAt(r.block,
-CKEDITOR.POSITION_AFTER_START);b=q.endContainer.hasAscendant("pre",!0)||q.startContainer.hasAscendant("pre",!0);q.enlarge(this.forceBrBreak&&!b||!this.enlargeBr?CKEDITOR.ENLARGE_LIST_ITEM_CONTENTS:CKEDITOR.ENLARGE_BLOCK_CONTENTS);q.collapsed||(b=new CKEDITOR.dom.walker(q.clone()),r=CKEDITOR.dom.walker.bookmark(!0,!0),b.evaluator=r,this._.nextNode=b.next(),b=new CKEDITOR.dom.walker(q.clone()),b.evaluator=r,b=b.previous(),this._.lastNode=b.getNextSourceNode(!0,null,q.root),this._.lastNode&&this._.lastNode.type==
-CKEDITOR.NODE_TEXT&&!CKEDITOR.tools.trim(this._.lastNode.getText())&&this._.lastNode.getParent().isBlockBoundary()&&(r=this.range.clone(),r.moveToPosition(this._.lastNode,CKEDITOR.POSITION_AFTER_END),r.checkEndOfBlock()&&(r=new CKEDITOR.dom.elementPath(r.endContainer,r.root),this._.lastNode=(r.block||r.blockLimit).getNextSourceNode(!0))),this._.lastNode&&q.root.contains(this._.lastNode)||(this._.lastNode=this._.docEndMarker=q.document.createText(""),this._.lastNode.insertAfter(b)),q=null);this._.started=
-1;b=q}r=this._.nextNode;q=this._.lastNode;for(this._.nextNode=null;r;){var z=0,t=r.hasAscendant("pre"),y=r.type!=CKEDITOR.NODE_ELEMENT,u=0;if(y)r.type==CKEDITOR.NODE_TEXT&&a.test(r.getText())&&(y=0);else{var w=r.getName();if(CKEDITOR.dtd.$block[w]&&"false"==r.getAttribute("contenteditable")){g=r;f(this,d,g);break}else if(r.isBlockBoundary(this.forceBrBreak&&!t&&{br:1})){if("br"==w)y=1;else if(!b&&!r.getChildCount()&&"hr"!=w){g=r;h=r.equals(q);break}b&&(b.setEndAt(r,CKEDITOR.POSITION_BEFORE_START),
-"br"!=w&&(this._.nextNode=r));z=1}else{if(r.getFirst()){b||(b=this.range.clone(),b.setStartAt(r,CKEDITOR.POSITION_BEFORE_START));r=r.getFirst();continue}y=1}}y&&!b&&(b=this.range.clone(),b.setStartAt(r,CKEDITOR.POSITION_BEFORE_START));h=(!z||y)&&r.equals(q);if(b&&!z)for(;!r.getNext(m)&&!h;){w=r.getParent();if(w.isBlockBoundary(this.forceBrBreak&&!t&&{br:1})){z=1;y=0;h||w.equals(q);b.setEndAt(w,CKEDITOR.POSITION_BEFORE_END);break}r=w;y=1;h=r.equals(q);u=1}y&&b.setEndAt(r,CKEDITOR.POSITION_AFTER_END);
-r=this._getNextSourceNode(r,u,q);if((h=!r)||z&&b)break}if(!g){if(!b)return this._.docEndMarker&&this._.docEndMarker.remove(),this._.nextNode=null;g=new CKEDITOR.dom.elementPath(b.startContainer,b.root);r=g.blockLimit;z={div:1,th:1,td:1};g=g.block;!g&&r&&!this.enforceRealBlocks&&z[r.getName()]&&b.checkStartOfBlock()&&b.checkEndOfBlock()&&!r.equals(b.root)?g=r:!g||this.enforceRealBlocks&&g.is(c)?(g=this.range.document.createElement(d),b.extractContents().appendTo(g),g.trim(),b.insertNode(g),l=p=!0):
-"li"!=g.getName()?b.checkStartOfBlock()&&b.checkEndOfBlock()||(g=g.clone(!1),b.extractContents().appendTo(g),g.trim(),p=b.splitBlock(),l=!p.wasStartOfBlock,p=!p.wasEndOfBlock,b.insertNode(g)):h||(this._.nextNode=g.equals(q)?null:this._getNextSourceNode(b.getBoundaryNodes().endNode,1,q))}l&&(l=g.getPrevious())&&l.type==CKEDITOR.NODE_ELEMENT&&("br"==l.getName()?l.remove():l.getLast()&&"br"==l.getLast().$.nodeName.toLowerCase()&&l.getLast().remove());p&&(l=g.getLast())&&l.type==CKEDITOR.NODE_ELEMENT&&
-"br"==l.getName()&&(!CKEDITOR.env.needsBrFiller||l.getPrevious(k)||l.getNext(k))&&l.remove();this._.nextNode||(this._.nextNode=h||g.equals(q)||!q?null:this._getNextSourceNode(g,1,q));return g},_getNextSourceNode:function(a,c,b){function e(a){return!(a.equals(b)||a.equals(f))}var f=this.range.root;for(a=a.getNextSourceNode(c,null,e);!k(a);)a=a.getNextSourceNode(c,null,e);return a}};CKEDITOR.dom.range.prototype.createIterator=function(){return new b(this)}}(),CKEDITOR.command=function(b,h){this.uiItems=
-[];this.exec=function(e){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,e)};this.refresh=function(b,a){if(!this.readOnly&&b.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[b.mode]&&this.disable();return!1===this.fire("refresh",{editor:b,path:a})?!0:h.refresh&&!1!==h.refresh.apply(this,
-arguments)};var f;this.checkAllowed=function(e){return e||"boolean"!=typeof f?f=b.activeFilter.checkFeature(this):f};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,useComputedState:!0,width:"",baseFloatZIndex:1E4,blockedKeystrokes:[CKEDITOR.CTRL+66,CKEDITOR.CTRL+73,CKEDITOR.CTRL+85]},function(){function b(a,c,d,g,b){var e,f;a=[];for(e in c){f=
-c[e];f="boolean"==typeof f?{}:"function"==typeof f?{match:f}:G(f);"$"!=e.charAt(0)&&(f.elements=e);d&&(f.featureName=d.toLowerCase());var k=f;k.elements=l(k.elements,/\s+/)||null;k.propertiesOnly=k.propertiesOnly||!0===k.elements;var h=/\s*,\s*/,n=void 0;for(n in O){k[n]=l(k[n],h)||null;var r=k,m=H[n],M=l(k[H[n]],h),J=k[n],q=[],K=!0,t=void 0;M?K=!1:M={};for(t in J)"!"==t.charAt(0)&&(t=t.slice(1),q.push(t),M[t]=!0,K=!1);for(;t=q.pop();)J[t]=J["!"+t],delete J["!"+t];r[m]=(K?!1:M)||null}k.match=k.match||
-null;g.push(f);a.push(f)}c=b.elements;b=b.generic;var C;d=0;for(g=a.length;d<g;++d){e=G(a[d]);f=!0===e.classes||!0===e.styles||!0===e.attributes;k=e;n=m=h=void 0;for(h in O)k[h]=z(k[h]);r=!0;for(n in H){h=H[n];m=k[h];M=[];J=void 0;for(J in m)-1<J.indexOf("*")?M.push(new RegExp("^"+J.replace(/\*/g,".*")+"$")):M.push(J);m=M;m.length&&(k[h]=m,r=!1)}k.nothingRequired=r;k.noProperties=!(k.attributes||k.classes||k.styles);if(!0===e.elements||null===e.elements)b[f?"unshift":"push"](e);else for(C in k=e.elements,
-delete e.elements,k)if(c[C])c[C][f?"unshift":"push"](e);else c[C]=[e]}}function h(a,c,d,g){if(!a.match||a.match(c))if(g||m(a,c))if(a.propertiesOnly||(d.valid=!0),d.allAttributes||(d.allAttributes=f(a.attributes,c.attributes,d.validAttributes)),d.allStyles||(d.allStyles=f(a.styles,c.styles,d.validStyles)),!d.allClasses){a=a.classes;c=c.classes;g=d.validClasses;if(a)if(!0===a)a=!0;else{for(var b=0,e=c.length,k;b<e;++b)k=c[b],g[k]||(g[k]=a(k));a=!1}else a=!1;d.allClasses=a}}function f(a,c,d){if(!a)return!1;
-if(!0===a)return!0;for(var g in c)d[g]||(d[g]=a(g));return!1}function e(c,d,g){if(!c.match||c.match(d)){if(c.noProperties)return!1;g.hadInvalidAttribute=a(c.attributes,d.attributes)||g.hadInvalidAttribute;g.hadInvalidStyle=a(c.styles,d.styles)||g.hadInvalidStyle;c=c.classes;d=d.classes;if(c){for(var b=!1,e=!0===c,f=d.length;f--;)if(e||c(d[f]))d.splice(f,1),b=!0;c=b}else c=!1;g.hadInvalidClass=c||g.hadInvalidClass}}function a(a,c){if(!a)return!1;var d=!1,g=!0===a,b;for(b in c)if(g||a(b))delete c[b],
-d=!0;return d}function k(a,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=L(a),"*"==a?!0:CKEDITOR.tools.convertArrayToObject(a.split(c));if(CKEDITOR.tools.isArray(a))return a.length?CKEDITOR.tools.convertArrayToObject(a):!1;var d={},g=0,b;for(b in a)d[b]=a[b],g++;return g?d:!1}function m(a,d){if(a.nothingRequired)return!0;var g,b,e,f;if(e=a.requiredClasses)for(f=d.classes,g=0;g<e.length;++g)if(b=
-e[g],"string"==typeof b){if(-1==CKEDITOR.tools.indexOf(f,b))return!1}else if(!CKEDITOR.tools.checkIfAnyArrayItemMatches(f,b))return!1;return c(d.styles,a.requiredStyles)&&c(d.attributes,a.requiredAttributes)}function c(a,c){if(!c)return!0;for(var d=0,g;d<c.length;++d)if(g=c[d],"string"==typeof g){if(!(g in a))return!1}else if(!CKEDITOR.tools.checkIfAnyObjectPropertyMatches(a,g))return!1;return!0}function d(a){if(!a)return{};a=a.split(/\s*,\s*/).sort();for(var c={};a.length;)c[a.shift()]="cke-test";
-return c}function g(a){var c,d,g,b,e={},f=1;for(a=L(a);c=a.match(I);)(d=c[2])?(g=n(d,"styles"),b=n(d,"attrs"),d=n(d,"classes")):g=b=d=null,e["$"+f++]={elements:c[1],classes:d,styles:g,attributes:b},a=a.slice(c[0].length);return e}function n(a,c){var d=a.match(P[c]);return d?L(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,g){var b=
-0,f;g.toHtml&&(c.name=c.name.replace(J,"$1"));if(g.doCallbacks&&a.elementCallbacks){a:{f=a.elementCallbacks;for(var k=0,n=f.length,l;k<n;++k)if(l=f[k](c)){f=l;break a}f=void 0}if(f)return f}if(g.doTransform&&(f=a._.transformations[c.name])){v(c);for(k=0;k<f.length;++k)w(a,c,f[k]);q(c)}if(g.doFilter){a:{k=c.name;n=a._;a=n.allowedRules.elements[k];f=n.allowedRules.generic;k=n.disallowedRules.elements[k];n=n.disallowedRules.generic;l=g.skipRequired;var m={valid:!1,validAttributes:{},validClasses:{},
-validStyles:{},allAttributes:!1,allClasses:!1,allStyles:!1,hadInvalidAttribute:!1,hadInvalidClass:!1,hadInvalidStyle:!1},t,C;if(a||f){v(c);if(k)for(t=0,C=k.length;t<C;++t)if(!1===e(k[t],c,m)){a=null;break a}if(n)for(t=0,C=n.length;t<C;++t)e(n[t],c,m);if(a)for(t=0,C=a.length;t<C;++t)h(a[t],c,m,l);if(f)for(t=0,C=f.length;t<C;++t)h(f[t],c,m,l);a=m}else a=null}if(!a||!a.valid)return d.push(c),1;C=a.validAttributes;var E=a.validStyles;f=a.validClasses;var k=c.attributes,z=c.styles,n=c.classes;l=c.classBackup;
-var u=c.styleBackup,K,G,L=[],m=[],N=/^data-cke-/;t=!1;delete k.style;delete k["class"];delete c.classBackup;delete c.styleBackup;if(!a.allAttributes)for(K in k)C[K]||(N.test(K)?K==(G=K.replace(/^data-cke-saved-/,""))||C[G]||(delete k[K],t=!0):(delete k[K],t=!0));if(!a.allStyles||a.hadInvalidStyle){for(K in z)a.allStyles||E[K]?L.push(K+":"+z[K]):t=!0;L.length&&(k.style=L.sort().join("; "))}else u&&(k.style=u);if(!a.allClasses||a.hadInvalidClass){for(K=0;K<n.length;++K)(a.allClasses||f[n[K]])&&m.push(n[K]);
-m.length&&(k["class"]=m.sort().join(" "));l&&m.length<l.split(/\s+/).length&&(t=!0)}else l&&(k["class"]=l);t&&(b=1);if(!g.skipFinalValidation&&!r(c))return d.push(c),1}g.toHtml&&(c.name=c.name.replace(M,"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 q(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 r(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 z(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 y(a){return a.type==CKEDITOR.NODE_ELEMENT&&("br"==a.name||E.$block[a.name])}function u(a,c,d){var g=a.name;if(E.$empty[g]||
-!a.children.length)"hr"==g&&"br"==c?a.replaceWith(t()):(a.parent&&d.push({check:"it",el:a.parent}),a.remove());else if(E.$block[g]||"tr"==g)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 g=a.children,b;b:{b=E[c];for(var e=0,f=g.length,k;e<f;++e)if(k=g[e],k.type==CKEDITOR.NODE_ELEMENT&&!b[k.name]){b=!1;break b}b=!0}if(b)a.name=c,a.attributes={},d.push({check:"parent-down",el:a});else{b=a.parent;for(var e=
-b.type==CKEDITOR.NODE_DOCUMENT_FRAGMENT||"body"==b.name,h,n,f=g.length;0<f;)k=g[--f],e&&(k.type==CKEDITOR.NODE_TEXT||k.type==CKEDITOR.NODE_ELEMENT&&E.$inline[k.name])?(h||(h=new CKEDITOR.htmlParser.element(c),h.insertAfter(a),d.push({check:"parent-down",el:h})),h.add(k,0)):(h=null,n=E[b.name]||E.span,k.insertAfter(a),b.type==CKEDITOR.NODE_DOCUMENT_FRAGMENT||k.type!=CKEDITOR.NODE_ELEMENT||n[k.name]||d.push({check:"el-up",el:k}));a.remove()}}else g in{style:1,script:1}?a.remove():(a.parent&&d.push({check:"it",
-el:a.parent}),a.replaceWithChildren())}function w(a,c,d){var g,b;for(g=0;g<d.length;++g)if(b=d[g],!(b.check&&!a.check(b.check,!1)||b.left&&!b.left(c))){b.right(c,N);break}}function B(a,c){var d=c.getDefinition(),g=d.attributes,b=d.styles,e,f,k,h;if(a.name!=d.element)return!1;for(e in g)if("class"==e)for(d=g[e].split(/\s+/),k=a.classes.join("|");h=d.pop();){if(-1==k.indexOf(h))return!1}else if(a.attributes[e]!=g[e])return!1;for(f in b)if(a.styles[f]!=b[f])return!1;return!0}function A(a,c){var d,g;
-"string"==typeof a?d=a:a instanceof CKEDITOR.style?g=a:(d=a[0],g=a[1]);return[{element:d,left:g,right:function(a,d){d.transform(a,c)}}]}function C(a){return function(c){return B(c,a)}}function D(a){return function(c,d){d[a](c)}}var E=CKEDITOR.dtd,G=CKEDITOR.tools.copy,L=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 g=d.config.allowedContent;!0===g?this.disabled=!0:(g||(this.customConfig=!1),this.allow(g,"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,c,d){if(!k(this,a,d))return!1;var e,f;if("string"==typeof a)a=g(a);else if(a instanceof CKEDITOR.style){if(a.toAllowedContentRules)return this.allow(a.toAllowedContentRules(this.editor),c,d);e=a.getDefinition();a={};d=e.attributes;a[e.element]=e={styles:e.styles,requiredStyles:e.styles&&CKEDITOR.tools.object.keys(e.styles)};d&&(d=G(d),e.classes=d["class"]?d["class"].split(/\s+/):null,e.requiredClasses=
-e.classes,delete d["class"],e.attributes=d,e.requiredAttributes=d&&CKEDITOR.tools.object.keys(d))}else if(CKEDITOR.tools.isArray(a)){for(e=0;e<a.length;++e)f=this.allow(a[e],c,d);return f}b(this,a,c,this.allowedContent,this._.allowedRules);return!0},applyTo:function(a,c,d,g){if(this.disabled)return!1;var b=this,e=[],f=this.editor&&this.editor.config.protectedSource,k,h=!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(k=x(b,a,e,n),k&1)h=!0;else if(k&2)return!1}else if(a.type==CKEDITOR.NODE_COMMENT&&a.value.match(/^\{cke_protected\}(?!\{C\})/)){var d;a:{var g=decodeURIComponent(a.value.replace(/^\{cke_protected\}/,""));d=[];var l,m,r;if(f)for(m=0;m<f.length;++m)if((r=g.match(f[m]))&&r[0].length==g.length){d=!0;break a}g=CKEDITOR.htmlParser.fragment.fromHtml(g);1==g.children.length&&(l=g.children[0]).type==CKEDITOR.NODE_ELEMENT&&
-x(b,l,d,n);d=!d.length}d||e.push(a)}},null,!0);e.length&&(h=!0);var l;a=[];g=F[g||(this.editor?this.editor.enterMode:CKEDITOR.ENTER_P)];for(var m;d=e.pop();)d.type==CKEDITOR.NODE_ELEMENT?u(d,g,a):d.remove();for(;l=a.pop();)if(d=l.el,d.parent)switch(m=E[d.parent.name]||E.span,l.check){case "it":E.$removeEmpty[d.name]&&!d.children.length?u(d,g,a):r(d)||u(d,g,a);break;case "el-up":d.parent.type==CKEDITOR.NODE_DOCUMENT_FRAGMENT||m[d.name]||u(d,g,a);break;case "parent-down":d.parent.type==CKEDITOR.NODE_DOCUMENT_FRAGMENT||
-m[d.name]||u(d.parent,g,a)}return h},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(!k(this,a,!0))return!1;"string"==typeof a&&(a=g(a));b(this,a,null,this.disallowedContent,this._.disallowedRules);return!0},addContentForms:function(a){if(!this.disabled&&a){var c,d,g=[],b;for(c=0;c<a.length&&!b;++c)d=a[c],("string"==typeof d||d instanceof
-CKEDITOR.style)&&this.check(d)&&(b=d);if(b){for(c=0;c<a.length;++c)g.push(A(a[c],b));this.addTransformations(g)}}},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 g=this._.transformations,b;for(b=0;b<a.length;++b){c=a[b];var e=void 0,f=void 0,k=void 0,h=void 0,n=void 0,l=void 0;d=[];for(f=0;f<c.length;++f)k=c[f],"string"==typeof k?(k=k.split(/\s*:\s*/),h=k[0],n=null,l=k[1]):(h=k.check,n=k.left,l=k.right),e||(e=k,e=e.element?e.element:h?h.match(/^([a-z0-9]+)/i)[0]:e.left.getDefinition().element),n instanceof CKEDITOR.style&&(n=C(n)),d.push({check:h==e?null:h,left:n,
-right:"string"==typeof l?D(l):l});c=e;g[c]||(g[c]=[]);g[c].push(d)}}},check:function(a,c,b){if(this.disabled)return!0;if(CKEDITOR.tools.isArray(a)){for(var e=a.length;e--;)if(this.check(a[e],c,b))return!0;return!1}var f,k;if("string"==typeof a){k=a+"\x3c"+(!1===c?"0":"1")+(b?"1":"0")+"\x3e";if(k in this._.cachedChecks)return this._.cachedChecks[k];f=g(a).$1;var h=f.styles,e=f.classes;f.name=f.elements;f.classes=e=e?e.split(/\s*,\s*/):[];f.styles=d(h);f.attributes=d(f.attributes);f.children=[];e.length&&
-(f.attributes["class"]=e.join(" "));h&&(f.attributes.style=CKEDITOR.tools.writeCssText(f.styles))}else f=a.getDefinition(),h=f.styles,e=f.attributes||{},h&&!CKEDITOR.tools.isEmpty(h)?(h=G(h),e.style=CKEDITOR.tools.writeCssText(h,!0)):h={},f={name:f.element,attributes:e,classes:e["class"]?e["class"].split(/\s+/):[],styles:h,children:[]};var h=CKEDITOR.tools.clone(f),n=[],l;if(!1!==c&&(l=this._.transformations[f.name])){for(e=0;e<l.length;++e)w(this,f,l[e]);q(f)}x(this,h,n,{doFilter:!0,doTransform:!1!==
-c,skipRequired:!b,skipFinalValidation:!b});0<n.length?b=!1:((c=f.attributes["class"])&&(f.attributes["class"]=f.attributes["class"].split(" ").sort().join(" ")),b=CKEDITOR.tools.objectCompare(f.attributes,h.attributes,!0),c&&(f.attributes["class"]=c));"string"==typeof a&&(this._.cachedChecks[k]=b);return b},getAllowedEnterMode:function(){var a=["p","div","br"],c={p:CKEDITOR.ENTER_P,div:CKEDITOR.ENTER_DIV,br:CKEDITOR.ENTER_BR};return function(d,g){var b=a.slice(),e;if(this.check(F[d]))return d;for(g||
-(b=b.reverse());e=b.pop();)if(this.check(e))return c[e];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 O={styles:1,attributes:1,classes:1},H={styles:"requiredStyles",attributes:"requiredAttributes",classes:"requiredClasses"},I=/^([a-z0-9\-*\s]+)((?:\s*\{[!\w\-,\s\*]+\}\s*|\s*\[[!\w\-,\s\*]+\]\s*|\s*\([!\w\-,\s\*]+\)\s*){0,3})(?:;\s*|$)/i,P={styles:/{([^}]+)}/,attrs:/\[([^\]]+)\]/,classes:/\(([^\)]+)\)/},J=/^cke:(object|embed|param)$/,M=/^(object|embed|param)$/,N;N=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 g=a.attributes[c];g&&(/^\d+$/.test(g)&&(g+="px"),a.styles[d]=g)}delete a.attributes[c]},lengthToAttribute:function(a,c,d){d=d||c;if(!(d in a.attributes)){var g=a.styles[c],b=g&&g.match(/^(\d+)(?:\.\d*)?px$/);b?a.attributes[d]=b[1]:"cke-test"==g&&(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(g){a.styles["margin-top"]=
-d[g[0]];a.styles["margin-right"]=d[g[1]];a.styles["margin-bottom"]=d[g[2]];a.styles["margin-left"]=d[g[3]]}if(a.styles.margin){var d=a.styles.margin.match(/(auto|0|(?:\-?[\.\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(),g=d.styles,b=d.attributes,e,f,k,h;a.name=d.element;for(e in b)if("class"==
-e)for(d=a.classes.join("|"),k=b[e].split(/\s+/);h=k.pop();)-1==d.indexOf(h)&&a.classes.push(h);else a.attributes[e]=b[e];for(f in g)a.styles[f]=g[f]}}}}(),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 b=this._.editor.container;b&&b.removeClass("cke_focus");this._.editor.fire("blur")}}if(!this._.locked){this._.timer&&clearTimeout(this._.timer);var f=CKEDITOR.focusManager._.blurDelay;b||!f?h.call(this):this._.timer=
-CKEDITOR.tools.setTimeout(function(){delete this._.timer;h.call(this)},f,this)}},add:function(b,h){var f=b.getCustomData("focusmanager");if(!f||f!=this){f&&f.remove(b);var f="focus",e="blur";h&&(CKEDITOR.env.ie?(f="focusin",e="focusout"):CKEDITOR.event.useCapture=1);var a={blur:function(){b.equals(this.currentActive)&&this.blur()},focus:function(){this.focus(b)}};b.on(f,a.focus,this);b.on(e,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(e){e=e.data;var a=e.getKeystroke(),f=this.keystrokes[a],h=this._.editor;b=!1===h.fire("key",{keyCode:a,domEvent:e});b||(f&&(b=!1!==
-h.execCommand(f,{from:"keystrokeHandler"})),b||(b=!!this.blockedKeystrokes[a]));b&&e.preventDefault(!0);return!b},f=function(e){b&&(b=!1,e.data.preventDefault(!0))};CKEDITOR.keystrokeHandler.prototype={attach:function(b){b.on("keydown",h,this);if(CKEDITOR.env.gecko&&CKEDITOR.env.mac)b.on("keypress",f,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,f){b&&CKEDITOR.lang.languages[b]||(b=this.detect(h,b));var e=this;h=function(){e[b].dir=e.rtl[b]?"rtl":"ltr";f(b,e[b])};this[b]?h():CKEDITOR.scriptLoader.load(CKEDITOR.getUrl("lang/"+b+".js"),h,this)},detect:function(b,
-h){var f=this.languages;h=h||navigator.userLanguage||navigator.language||b;var e=h.toLowerCase().match(/([a-z]+)(?:-([a-z]+))?/),a=e[1],e=e[2];f[a+"-"+e]?a=a+"-"+e:f[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(f,e,a,k){var l="string"==typeof f;l&&(f=[f]);a||(a=CKEDITOR);var m=f.length,c=m,d=[],g=[],n=function(c){e&&(l?e.call(a,c):e.call(a,d,g))};if(0===c)n(!0);else{var v=function(a,
-b){(b?d:g).push(a);0>=--c&&(k&&CKEDITOR.document.getDocumentElement().removeStyle("cursor"),n(b))},x=function(a,c){b[a]=1;var d=h[a];delete h[a];for(var g=0;g<d.length;g++)d[g](a,c)},p=function(a){if(b[a])v(a,!0);else{var c=h[a]||(h[a]=[]);c.push(v);if(!(1<c.length)){var d=new CKEDITOR.dom.element("script");d.setAttributes({type:"text/javascript",src:a});e&&(CKEDITOR.env.ie&&(8>=CKEDITOR.env.version||CKEDITOR.env.ie9Compat)?d.$.onreadystatechange=function(){if("loaded"==d.$.readyState||"complete"==
-d.$.readyState)d.$.onreadystatechange=null,x(a,!0)}:(d.$.onload=function(){setTimeout(function(){d.$.onload=null;d.$.onerror=null;x(a,!0)},0)},d.$.onerror=function(){d.$.onload=null;d.$.onerror=null;x(a,!1)}));d.appendTo(CKEDITOR.document.getHead())}}};k&&CKEDITOR.document.getDocumentElement().setStyle("cursor","wait");for(var q=0;q<m;q++)p(f[q])}},queue:function(){function b(){var a;(a=e[0])&&this.load(a.scriptUrl,a.callback,CKEDITOR,0)}var e=[];return function(a,k){var h=this;e.push({scriptUrl:a,
-callback:function(){k&&k.apply(this,arguments);e.shift();b.call(h)}});1==e.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 f=this.registered[b]=h||{};f.name=b;f.path=this.getPath(b);CKEDITOR.fire(b+
-CKEDITOR.tools.capitalize(this.fileName)+"Ready",f);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,f){f||(h=h.replace(/[^\/]+$/,function(a){f=a;return""}));f=f||this.fileName+".js";b=b.split(",");for(var e=0;e<b.length;e++)this.externals[b[e]]=
-{dir:h,file:f}},load:function(b,h,f){CKEDITOR.tools.isArray(b)||(b=b?[b]:[]);for(var e=this.loaded,a=this.registered,k=[],l={},m={},c=0;c<b.length;c++){var d=b[c];if(d)if(e[d]||a[d])m[d]=this.get(d);else{var g=this.getFilePath(d);k.push(g);g in l||(l[g]=[]);l[g].push(d)}}CKEDITOR.scriptLoader.load(k,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 g=l[a[d]],b=0;b<g.length;b++){var k=
-g[b];m[k]=this.get(k);e[k]=1}h.call(f,m)},this)}},CKEDITOR.plugins=new CKEDITOR.resourceManager("plugins/","plugin"),CKEDITOR.plugins.load=CKEDITOR.tools.override(CKEDITOR.plugins.load,function(b){var h={};return function(f,e,a){var k={},l=function(f){b.call(this,f,function(c){CKEDITOR.tools.extend(k,c);var d=[],g;for(g in c){var b=c[g],f=b&&b.requires;if(!h[g]){if(b.icons)for(var m=b.icons.split(","),p=m.length;p--;)CKEDITOR.skin.addIcon(m[p],b.path+"icons/"+(CKEDITOR.env.hidpi&&b.hidpi?"hidpi/":
-"")+m[p]+".png");b.isSupportedEnvironment=b.isSupportedEnvironment||function(){return!0};h[g]=1}if(f)for(f.split&&(f=f.split(",")),b=0;b<f.length;b++)k[f[b]]||d.push(f[b])}if(d.length)l.call(this,d);else{for(g in k)b=k[g],b.onLoad&&!b.onLoad._called&&(!1===b.onLoad()&&delete k[g],b.onLoad._called=1);e&&e.call(a||window,k)}},this)};l.call(this,f)}}),CKEDITOR.plugins.setLang=function(b,h,f){var e=this.get(b);b=e.langEntries||(e.langEntries={});e=e.lang||(e.lang=[]);e.split&&(e=e.split(","));-1==CKEDITOR.tools.indexOf(e,
-h)&&e.push(h);b[h]=f},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,f){f.name=b.toLowerCase();var e=this.items[b]={type:h,command:f.command||null,args:Array.prototype.slice.call(arguments,2)};CKEDITOR.tools.extend(e,f)},get:function(b){return this.instances[b]},create:function(b){var h=this.items[b],f=h&&this._.handlers[h.type],e=h&&h.command&&this.editor.getCommand(h.command),f=f&&
-f.create.apply(this,h.args);this.instances[b]=f;e&&e.uiItems.push(f);f&&!f.type&&(f.type=h.type);return f},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(!f(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",e);this.on("selectionChange",function(a){k(this,a.data.path)});this.on("activeFilterChange",function(){k(this,this.elementPath(),!0)});this.on("mode",e);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()||m(this,a)},0,this)}function h(){do var a="editor"+ ++p;while(CKEDITOR.instances[a]);return a}function f(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 e(){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 k(a,c,d){if(c){var g,b,e=a.commands;for(b in e)g=e[b],(d||g.contextSensitive)&&g.refresh(a,c)}}function l(a){var c=a.config.customConfig;if(!c)return!1;var c=
-CKEDITOR.getUrl(c),d=q[c]||(q[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=d.fn||CKEDITOR.editorConfig||function(){};l(a)});return!0}function m(a,d){a.on("customConfigLoaded",function(){if(d){if(d.on)for(var g in d.on)a.on(g,d.on[g]);CKEDITOR.tools.extend(a.config,d,!0);delete a.config.on}g=a.config;a.readOnly=g.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=g.tabIndex||a.element&&a.element.getAttribute("tabindex")||0;a.activeEnterMode=a.enterMode=a.blockless?CKEDITOR.ENTER_BR:g.enterMode;a.activeShiftEnterMode=
-a.shiftEnterMode=a.blockless?CKEDITOR.ENTER_BR:g.shiftEnterMode;g.skin&&(CKEDITOR.skinName=g.skin);a.fireOnce("configLoaded");a.dataProcessor=new CKEDITOR.htmlDataProcessor(a);a.filter=a.activeFilter=new CKEDITOR.filter(a);c(a)});d&&null!=d.customConfig&&(a.config.customConfig=d.customConfig);l(a)||a.fireOnce("customConfigLoaded")}function c(a){CKEDITOR.skin.loadPart("editor",function(){d(a)})}function d(a){CKEDITOR.lang.load(a.config.language,a.config.defaultLanguage,function(c,d){var b=a.config.title;
-a.langCode=c;a.lang=CKEDITOR.tools.prototypedCopy(d);a.title="string"==typeof b||!1===b?b:[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");g(a)})}function g(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,g=c(d.plugins),b=c(d.extraPlugins),e=c(d.removePlugins);if(b)var f=new RegExp("(?:^|,)(?:"+b.replace(/,/g,"|")+")(?\x3d,|$)","g"),g=g.replace(f,""),g=g+(","+b);if(e)var k=new RegExp("(?:^|,)(?:"+e.replace(/,/g,"|")+")(?\x3d,|$)","g"),g=g.replace(k,"");CKEDITOR.env.air&&(g+=",adobeair");CKEDITOR.plugins.load(g.split(","),function(c){var g=[],b=[],e=[];a.plugins=CKEDITOR.tools.extend({},a.plugins,c);for(var f in c){var h=c[f],n=h.lang,l=null,m=h.requires,q;
-CKEDITOR.tools.isArray(m)&&(m=m.join(","));if(m&&(q=m.match(k)))for(;m=q.pop();)CKEDITOR.error("editor-plugin-required",{plugin:m.replace(",",""),requiredBy:f});n&&!a.lang[f]&&(n.split&&(n=n.split(",")),0<=CKEDITOR.tools.indexOf(n,a.langCode)?l=a.langCode:(l=a.langCode.replace(/-.*/,""),l=l!=a.langCode&&0<=CKEDITOR.tools.indexOf(n,l)?l:0<=CKEDITOR.tools.indexOf(n,"en")?"en":n[0]),h.langEntries&&h.langEntries[l]?(a.lang[f]=h.langEntries[l],l=null):e.push(CKEDITOR.getUrl(h.path+"lang/"+l+".js")));b.push(l);
-g.push(h)}CKEDITOR.scriptLoader.load(e,function(){if(!a.isDestroyed()&&!a.isDetached()){for(var c=["beforeInit","init","afterInit"],e=0;e<c.length;e++)for(var f=0;f<g.length;f++){var k=g[f];0===e&&b[f]&&k.lang&&k.langEntries&&(a.lang[k.name]=k.langEntries[b[f]]);if(k[c[e]])k[c[e]](a)}a.fireOnce("pluginsLoaded");d.keystrokes&&a.setKeystroke(a.config.keystrokes);for(f=0;f<a.config.blockedKeystrokes.length;f++)a.keystrokeHandler.blockedKeystrokes[a.config.blockedKeystrokes[f]]=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,g=a.endContainer,b=c.is&&c.is("tr"),e=c.is&&c.is("td");a=e&&c.equals(g)&&a.endOffset===c.getChildCount();c=e&&1===c.getChildCount()&&"img"===c.getChildren().getItem(0).getName();
-return b||a&&!c?!0:!1}function g(a){var c=a.startContainer;return c.is("tr")?a.cloneContents():c.clone(!0)}for(var b=new CKEDITOR.dom.documentFragment,e,f,k,h=0;h<a.length;h++){var n=a[h],l=n.startContainer.getAscendant("tr",!0);d(n)?(e||(e=l.getAscendant("table").clone(),e.append(l.getAscendant({thead:1,tbody:1,tfoot:1}).clone()),b.append(e),e=e.findOne("thead, tbody, tfoot")),f&&f.equals(l)||(f=l,k=l.clone(),e.append(k)),k.append(g(n))):b.append(n.cloneContents())}return e?b:c.getHtmlFromRange(a[0])}
-b.prototype=CKEDITOR.editor.prototype;CKEDITOR.editor=b;var p=0,q={};CKEDITOR.tools.extend(CKEDITOR.editor.prototype,{plugins:{detectConflict:function(a,c){for(var d=0;d<c.length;d++){var g=c[d];if(this[g])return CKEDITOR.warn("editor-plugin-conflict",{plugin:a,replacedWith:g}),!0}return!1}},addCommand:function(c,d){d.name=c.toLowerCase();var g=d instanceof CKEDITOR.command?d:new CKEDITOR.command(this,d);this.mode&&a(this,g);return this.commands[c]=g},_attachToForm:function(){function a(c){d.updateElement();
-d._.required&&!g.getValue()&&!1===d.fire("required")&&c.data.preventDefault()}function c(a){return!!(a&&a.call&&a.apply)}var d=this,g=d.element,b=new CKEDITOR.dom.element(g.$.form);g.is("textarea")&&b&&(b.on("submit",a),c(b.$.submit)&&(b.$.submit=CKEDITOR.tools.override(b.$.submit,function(c){return function(){a();c.apply?c.apply(this):c()}})),d.on("destroy",function(){b.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),g={name:a,commandData:c||{},command:d};return d&&d.state!=CKEDITOR.TRISTATE_DISABLED&&!1!==this.fire("beforeCommandExec",g)&&(g.returnValue=d.exec(g.commandData),!d.async&&!1!==this.fire("afterCommandExec",g))?g.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 g=!0,b=c;c&&"object"==typeof c&&(d=c.internal,b=c.callback,g=!c.noSnapshot);!d&&g&&
-this.fire("saveSnapshot");if(b||!d)this.once("dataReady",function(a){!d&&g&&this.fire("saveSnapshot");b&&b.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=x(d,c);return a?c.getHtml():c},extractSelectedHtml:function(a,c){var d=this.editable(),g=this.getSelection().getRanges(),b=new CKEDITOR.dom.documentFragment,e;if(!d||0===g.length)return null;for(e=0;e<g.length;e++)b.append(d.extractHtmlFromRange(g[e],c));c||this.getSelection().selectRanges([g[0]]);return a?b.getHtml():
-b},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,g,b=c.length;b--;)d=c[b],g=0,CKEDITOR.tools.isArray(d)&&(g=d[1],d=d[0]),g?a[d]=g:delete a[d]},getCommandKeystroke:function(a,
-c){var d="string"===typeof a?this.getCommand(a):a,g=[];if(d){var b=CKEDITOR.tools.object.findKey(this.commands,d),e=this.keystrokeHandler.keystrokes;if(d.fakeKeystroke)g.push(d.fakeKeystroke);else for(var f in e)e[f]===b&&g.push(f)}return c?g:g[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.editor.initializeDelayedEditorCreation=function(a,c,d){if(c.delayIfDetached_callback)CKEDITOR.warn("editor-delayed-creation",{method:"callback"}),c.delayIfDetached_callback(function(){CKEDITOR[d](a,c);
-CKEDITOR.warn("editor-delayed-creation-success",{method:"callback"})});else{var g=void 0===c.delayIfDetached_interval?CKEDITOR.config.delayIfDetached_interval:c.delayIfDetached_interval,b;CKEDITOR.warn("editor-delayed-creation",{method:"interval - "+g+" ms"});b=setInterval(function(){a.isDetached()||(clearInterval(b),CKEDITOR[d](a,c),CKEDITOR.warn("editor-delayed-creation-success",{method:"interval - "+g+" ms"}))},g)}};CKEDITOR.editor.shouldDelayEditorCreation=function(a,c){CKEDITOR.editor.mergeDelayedCreationConfigs(c);
-return c&&c.delayIfDetached&&a.isDetached()};CKEDITOR.editor.mergeDelayedCreationConfigs=function(a){a&&(a.delayIfDetached="boolean"===typeof a.delayIfDetached?a.delayIfDetached:CKEDITOR.config.delayIfDetached,a.delayIfDetached_interval=isNaN(a.delayIfDetached_interval)?CKEDITOR.config.delayIfDetached_interval:a.delayIfDetached_interval,a.delayIfDetached_callback=a.delayIfDetached_callback||CKEDITOR.config.delayIfDetached_callback)}}(),CKEDITOR.ELEMENT_MODE_NONE=0,CKEDITOR.ELEMENT_MODE_REPLACE=1,
-CKEDITOR.ELEMENT_MODE_APPENDTO=2,CKEDITOR.ELEMENT_MODE_INLINE=3,CKEDITOR.config.delayIfDetached=!1,CKEDITOR.config.delayIfDetached_callback=void 0,CKEDITOR.config.delayIfDetached_interval=50,CKEDITOR.htmlParser=function(){this._={htmlPartsRegex:/<(?:(?:\/([^>]+)>)|(?:!--([\S|\s]*?)--!?>)|(?:([^\/\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(f){for(var e,a,k=0,l;e=this._.htmlPartsRegex.exec(f);){a=e.index;if(a>k)if(k=f.substring(k,a),l)l.push(k);else this.onText(k);k=this._.htmlPartsRegex.lastIndex;if(a=e[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(e[0]);else if(a=e[3]){if(a=a.toLowerCase(),!/="/.test(a)){var m={},c,d=e[4];e=!!e[5];if(d)for(;c=b.exec(d);){var g=c[1].toLowerCase();c=c[2]||c[3]||c[4]||"";m[g]=!c&&h[g]?g:CKEDITOR.tools.htmlDecodeAttr(c)}this.onTagOpen(a,m,e);!l&&CKEDITOR.dtd.$cdata[a]&&(l=[])}}else if(a=e[2])this.onComment(a)}if(f.length>k)this.onText(f.substring(k,f.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),f=this.previous,e=this.next;f&&(f.next=e);e&&(e.previous=f);b.splice(h,1);this.parent=null},replaceWith:function(b){var h=this.parent.children,f=CKEDITOR.tools.indexOf(h,this),e=b.previous=this.previous,a=b.next=this.next;e&&(e.next=b);a&&(a.previous=b);h[f]=b;b.parent=this.parent;this.parent=null},
-insertAfter:function(b){var h=b.parent.children,f=CKEDITOR.tools.indexOf(h,b),e=b.next;h.splice(f+1,0,this);this.next=b.next;this.previous=b;b.next=this;e&&(e.previous=this);this.parent=b.parent},insertBefore:function(b){var h=b.parent.children,f=CKEDITOR.tools.indexOf(h,b);h.splice(f,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(e){return e.name==b}:function(e){return e.name in
-b},f=this.parent;for(;f&&f.type==CKEDITOR.NODE_ELEMENT;){if(h(f))return f;f=f.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 f=this.value;if(!(f=b.onComment(h,f,this)))return this.remove(),!1;if("string"!=typeof f)return this.replaceWith(f),!1;this.value=f;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(b){var h=this.getAscendant("style");if(h&&h.getAscendant({math:1,svg:1})){var h=CKEDITOR.htmlParser.fragment.fromHtml(this.value),f=new CKEDITOR.htmlParser.basicWriter;b.applyTo(h);h.writeHtml(f);this.value=f.getHtml()}},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),f={ol:1,ul:1},e=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(k,l,m){function c(a){var c;if(0<r.length)for(var g=0;g<r.length;g++){var b=r[g],e=b.name,f=CKEDITOR.dtd[e],k=t.name&&CKEDITOR.dtd[t.name];k&&!k[e]||a&&f&&!f[a]&&CKEDITOR.dtd[a]?e==t.name&&(n(t,t.parent,1),g--):(c||(d(),c=1),b=b.clone(),b.parent=t,t=b,r.splice(g,1),g--)}}function d(){for(;z.length;)n(z.shift(),t)}function g(a){if(a._.isBlockLike&&"pre"!=a.name&&"textarea"!=
-a.name){var c=a.children.length,d=a.children[c-1],g;d&&d.type==CKEDITOR.NODE_TEXT&&((g=CKEDITOR.tools.rtrim(d.value))?d.value=g:a.children.length=c-1)}}function n(a,c,d){c=c||t||q;var e=t;void 0===a.previous&&(v(c,a)&&(t=c,p.onTagOpen(m,{}),a.returnPoint=c=t),g(a),b(a)&&!a.children.length||c.add(a),"pre"==a.name&&(u=!1),"textarea"==a.name&&(y=!1));a.returnPoint?(t=a.returnPoint,delete a.returnPoint):t=d?c:e}function v(a,c){if((a==q||"body"==a.name)&&m&&(!a.name||CKEDITOR.dtd[a.name][m])){var d,g;
-return(d=c.attributes&&(g=c.attributes["data-cke-real-element-type"])?g: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,q=l instanceof CKEDITOR.htmlParser.element?l:"string"==typeof l?new CKEDITOR.htmlParser.element(l):new CKEDITOR.htmlParser.fragment,r=[],z=[],t=q,y="textarea"==q.name,
-u="pre"==q.name;p.onTagOpen=function(a,g,k,l){g=new CKEDITOR.htmlParser.element(a,g);g.isUnknown&&k&&(g.isEmpty=!0);g.isOptionalClose=l;if(b(g))r.push(g);else{if("pre"==a)u=!0;else{if("br"==a&&u){t.add(new CKEDITOR.htmlParser.text("\n"));return}"textarea"==a&&(y=!0)}if("br"==a)z.push(g);else{for(;!(l=(k=t.name)?CKEDITOR.dtd[k]||(t._.isBlockLike?CKEDITOR.dtd.div:CKEDITOR.dtd.span):e,g.isUnknown||t.isUnknown||l[a]);)if(t.isOptionalClose)p.onTagClose(k);else if(a in f&&k in f)k=t.children,(k=k[k.length-
-1])&&"li"==k.name||n(k=new CKEDITOR.htmlParser.element("li"),t),!g.returnPoint&&(g.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))!g.returnPoint&&(g.returnPoint=t),t=t.parent;else if(k in CKEDITOR.dtd.$inline&&r.unshift(t),t.parent)n(t,t.parent,1);else{g.isOrphan=1;break}c(a);d();g.parent=t;g.isEmpty?n(g):t=g}}};p.onTagClose=function(a){for(var c=r.length-1;0<=c;c--)if(a==r[c].name){r.splice(c,1);return}for(var g=[],b=
-[],e=t;e!=q&&e.name!=a;)e._.isBlockLike||b.unshift(e),g.push(e),e=e.returnPoint||e.parent;if(e!=q){for(c=0;c<g.length;c++){var f=g[c];n(f,f.parent)}t=e;e._.isBlockLike&&d();n(e,e.parent);e==t&&(t=t.parent);r=r.concat(b)}"body"==a&&(m=!1)};p.onText=function(g){if(!(t._.hasInlineStarted&&!z.length||u||y)&&(g=CKEDITOR.tools.ltrim(g),0===g.length))return;var b=t.name,f=b?CKEDITOR.dtd[b]||(t._.isBlockLike?CKEDITOR.dtd.div:CKEDITOR.dtd.span):e;if(!y&&!f["#"]&&b in h)p.onTagOpen(a[b]||""),p.onText(g);else{d();
-c();u||y||(g=g.replace(/[\t\r\n ]{2,}|[\t\r\n]/g," "));g=new CKEDITOR.htmlParser.text(g);if(v(t,g))this.onTagOpen(m,{},0,1);t.add(g)}};p.onCDATA=function(a){t.add(new CKEDITOR.htmlParser.cdata(a))};p.onComment=function(a){d();c();t.add(new CKEDITOR.htmlParser.comment(a))};p.parse(k);for(d();t!=q;)n(t,t.parent,1);g(q);return q};CKEDITOR.htmlParser.fragment.prototype={type:CKEDITOR.NODE_DOCUMENT_FRAGMENT,add:function(a,b){isNaN(b)&&(b=this.children.length);var e=0<b?this.children[b-1]:null;if(e){if(a._.isBlockLike&&
-e.type==CKEDITOR.NODE_TEXT&&(e.value=CKEDITOR.tools.rtrim(e.value),0===e.value.length)){this.children.pop();this.add(a);return}e.next=a}a.previous=e;a.parent=this;this.children.splice(b,0,a);this._.hasInlineStarted||(this._.hasInlineStarted=a.type==CKEDITOR.NODE_TEXT||a.type==CKEDITOR.NODE_ELEMENT&&!a._.isBlockLike)},filter:function(a,b){b=this.getFilterContext(b);a.onRoot(b,this);this.filterChildren(a,!1,b)},filterChildren:function(a,b,e){if(this.childrenFilteredBy!=a.id){e=this.getFilterContext(e);
-if(b&&!this.parent)a.onRoot(e,this);this.childrenFilteredBy=a.id;for(b=0;b<this.children.length;b++)!1===this.children[b].filter(a,e)&&b--}},writeHtml:function(a,b){b&&this.filter(b);this.writeChildrenHtml(a)},writeChildrenHtml:function(a,b,e){var c=this.getFilterContext();if(e&&!this.parent&&b)b.onRoot(c,this);b&&this.filterChildren(b,!1,c);b=0;e=this.children;for(c=e.length;b<c;b++)e[b].writeHtml(a)},forEach:function(a,b,e){if(!(e||b&&this.type!=b))var c=a(this);if(!1!==c){e=this.children;for(var d=
-0;d<e.length;d++)c=e[d],c.type==CKEDITOR.NODE_ELEMENT?c.forEach(a,b):b&&c.type!=b||a(c)}},getFilterContext:function(a){return a||{}}}}(),"use strict",function(){function b(){this.rules=[]}function h(f,e,a,k){var h,m;for(h in e)(m=f[h])||(m=f[h]=new b),m.add(e[h],a,k)}CKEDITOR.htmlParser.filter=CKEDITOR.tools.createClass({$:function(f){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;f&&this.addRules(f,10)},proto:{addRules:function(b,e){var a;"number"==typeof e?a=e:e&&"priority"in e&&(a=e.priority);"number"!=typeof a&&(a=10);"object"!=typeof e&&(e={});b.elementNames&&this.elementNameRules.addMany(b.elementNames,a,e);b.attributeNames&&this.attributeNameRules.addMany(b.attributeNames,a,e);b.elements&&h(this.elementsRules,b.elements,a,e);b.attributes&&h(this.attributesRules,b.attributes,a,e);b.text&&this.textRules.add(b.text,a,e);b.comment&&
-this.commentRules.add(b.comment,a,e);b.root&&this.rootRules.add(b.root,a,e)},applyTo:function(b){b.filter(this)},onElementName:function(b,e){return this.elementNameRules.execOnName(b,e)},onAttributeName:function(b,e){return this.attributeNameRules.execOnName(b,e)},onText:function(b,e,a){return this.textRules.exec(b,e,a)},onComment:function(b,e,a){return this.commentRules.exec(b,e,a)},onRoot:function(b,e){return this.rootRules.exec(b,e)},onElement:function(b,e){for(var a=[this.elementsRules["^"],this.elementsRules[e.name],
-this.elementsRules.$],k,h=0;3>h;h++)if(k=a[h]){k=k.exec(b,e,this);if(!1===k)return null;if(k&&k!=e)return this.onNode(b,k);if(e.parent&&!e.name)break}return e},onNode:function(b,e){var a=e.type;return a==CKEDITOR.NODE_ELEMENT?this.onElement(b,e):a==CKEDITOR.NODE_TEXT?new CKEDITOR.htmlParser.text(this.onText(b,e.value,e)):a==CKEDITOR.NODE_COMMENT?new CKEDITOR.htmlParser.comment(this.onComment(b,e.value,e)):null},onAttribute:function(b,e,a,k){return(a=this.attributesRules[a])?a.exec(b,k,e,this):k}}});
-CKEDITOR.htmlParser.filterRulesGroup=b;b.prototype={add:function(b,e,a){this.rules.splice(this.findIndex(e),0,{value:b,priority:e,options:a})},addMany:function(b,e,a){for(var k=[this.findIndex(e),0],h=0,m=b.length;h<m;h++)k.push({value:b[h],priority:e,options:a});this.rules.splice.apply(this.rules,k)},findIndex:function(b){for(var e=this.rules,a=e.length-1;0<=a&&b<e[a].priority;)a--;return a+1},exec:function(b,e){var a=e instanceof CKEDITOR.htmlParser.node||e instanceof CKEDITOR.htmlParser.fragment,
-k=Array.prototype.slice.call(arguments,1),h=this.rules,m=h.length,c,d,g,n;for(n=0;n<m;n++)if(a&&(c=e.type,d=e.name),g=h[n],!(b.nonEditable&&!g.options.applyToAll||b.nestedEditable&&g.options.excludeNestedEditable)){g=g.value.apply(null,k);if(!1===g||a&&g&&(g.name!=d||g.type!=c))return g;null!=g&&(k[0]=e=g)}return e},execOnName:function(b,e){for(var a=0,k=this.rules,h=k.length,m;e&&a<h;a++)m=k[a],b.nonEditable&&!m.options.applyToAll||b.nestedEditable&&m.options.excludeNestedEditable||(e=e.replace(m.value[0],
-m.value[1]));return e}}}(),function(){function b(c,d){function b(a){return a||CKEDITOR.env.needsNbspFiller?new CKEDITOR.htmlParser.text(" "):new CKEDITOR.htmlParser.element("br",{"data-cke-bogus":1})}function g(a,c){return function(d){if(d.type!=CKEDITOR.NODE_DOCUMENT_FRAGMENT){var g=[],n=f(d),l,M;if(n)for(h(n,1)&&g.push(n);n;)k(n)&&(l=e(n))&&h(l)&&((M=e(l))&&!k(M)?g.push(l):(b(m).insertAfter(l),l.remove())),n=n.previous;for(n=0;n<g.length;n++)g[n].remove();if(g=!a||!1!==("function"==typeof c?c(d):
-c))m||CKEDITOR.env.needsBrFiller||d.type!=CKEDITOR.NODE_DOCUMENT_FRAGMENT?m||CKEDITOR.env.needsBrFiller||!(7<document.documentMode||d.name in CKEDITOR.dtd.tr||d.name in CKEDITOR.dtd.$listItem)?(g=f(d),g=!g||"form"==d.name&&"input"==g.name):g=!1:g=!1;g&&d.add(b(a))}}}function h(a,c){if((!m||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(z))&&(d.index&&((new CKEDITOR.htmlParser.text(a.value.substring(0,
-d.index))).insertBefore(a),a.value=d[0]),!CKEDITOR.env.needsBrFiller&&m&&(!c||a.parent.name in J)||!m&&((d=a.previous)&&"br"==d.name||!d||k(d)))?!0:!1}var n={elements:{}},m="html"==d,J=CKEDITOR.tools.extend({},w),q;for(q in J)"#"in y[q]||delete J[q];for(q in J)n.elements[q]=g(m,c.config.fillEmptyBlocks);n.root=g(m,!1);n.elements.br=function(c){return function(d){if(d.parent.type!=CKEDITOR.NODE_DOCUMENT_FRAGMENT){var g=d.attributes;if("data-cke-bogus"in g||"data-cke-eol"in g)delete g["data-cke-bogus"];
-else{for(g=d.next;g&&a(g);)g=g.next;var f=e(d);!g&&k(d.parent)?l(d.parent,b(c)):k(g)&&f&&!k(f)&&b(c).insertBefore(g)}}}}(m);return n}function h(a,c){return a!=CKEDITOR.ENTER_BR&&!1!==c?a==CKEDITOR.ENTER_DIV?"div":"p":!1}function f(c){for(c=c.children[c.children.length-1];c&&a(c);)c=c.previous;return c}function e(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 k(a){return a&&(a.type==CKEDITOR.NODE_ELEMENT&&a.name in w||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 m(a){a=a.attributes;"false"!=a.contenteditable&&(a["data-cke-editable"]=a.contenteditable?"true":1);a.contenteditable="false"}function c(a){a=a.attributes;switch(a["data-cke-editable"]){case "true":a.contenteditable="true";break;case "1":delete a.contenteditable}}function d(a,
-c){return a.replace(E,function(a,d,g){return"\x3c"+d+g.replace(G,function(a,d){return L.test(d)&&-1==g.indexOf("data-cke-saved-"+d)?" data-cke-saved-"+a+" data-cke-"+c+"-"+a:a})+"\x3e"})}function g(a,c){return a.replace(c,function(a,c,d){0===a.indexOf("\x3ctextarea")&&(a=c+x(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(H,function(a,c){return decodeURIComponent(c)})}
-function v(a){return a.replace(/\x3c!--(?!{cke_protected})[\s\S]+?--\x3e/g,function(a){return"\x3c!--"+t+"{C}"+encodeURIComponent(a).replace(/--/g,"%2D%2D")+"--\x3e"})}function x(a){return a.replace(/\x3c!--\{cke_protected\}\{C\}([\s\S]+?)--\x3e/g,function(a,c){return decodeURIComponent(c)})}function p(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 q(a,c,d){var g=[],b=c.config.protectedSource,e=c._.dataStore||(c._.dataStore={id:1}),f=new RegExp("\x3c\\!--\\{cke_temp_"+d+"(comment)?\\}(\\d*?)--\x3e","g"),b=[/<script[\s\S]*?(<\/script>|$)/gi,/<noscript[\s\S]*?<\/noscript>/gi,/<meta[\s\S]*?\/?>/gi].concat(b);a=a.replace(/\x3c!--[\s\S]*?--\x3e/g,function(a){return"\x3c!--{cke_temp_"+d+"comment}"+(g.push(a)-1)+"--\x3e"});for(var k=0;k<b.length;k++)a=a.replace(b[k],function(a){a=a.replace(f,function(a,c,d){return g[d]});return f.test(a)?
-a:"\x3c!--{cke_temp_"+d+"}"+(g.push(a)-1)+"--\x3e"});a=a.replace(f,function(a,c,d){return"\x3c!--"+t+(c?"{C}":"")+encodeURIComponent(g[d]).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){e[e.id]=decodeURIComponent(c);return"{cke_protected_"+e.id++ +"}"})});return a=a.replace(/<(title|iframe|textarea)([^>]*)>([\s\S]*?)<\/\1>/g,function(a,
-d,g,b){return"\x3c"+d+g+"\x3e"+p(x(b),c)+"\x3c/"+d+"\x3e"})}var r;CKEDITOR.htmlDataProcessor=function(a){var c,e,f=this;this.editor=a;this.dataFilter=c=new CKEDITOR.htmlParser.filter;this.htmlFilter=e=new CKEDITOR.htmlParser.filter;this.writer=new CKEDITOR.htmlParser.basicWriter;c.addRules(B);c.addRules(A,{applyToAll:!0});c.addRules(b(a,"data"),{applyToAll:!0});e.addRules(C);e.addRules(D,{applyToAll:!0});e.addRules(b(a,"html"),{applyToAll:!0});a.on("toHtml",function(c){var b;var e=window.crypto||
-window.msCrypto;b=e?e.getRandomValues(new Uint32Array(1))[0]:Math.floor(9E9*Math.random()+1E9);c=c.data;var e=c.dataValue,e=r(e),e=q(e,a,b),e=g(e,O),e=d(e,b),e=g(e,F),e=e.replace(I,"$1cke:$2"),e=e.replace(J,"\x3ccke:$1$2\x3e\x3c/cke:$1\x3e"),e=e.replace(/(<pre\b[^>]*>)(\r\n|\n)/g,"$1$2$2"),e=e.replace(/([^a-z0-9<\-])(on\w{3,})(?!>)/gi,"$1data-cke-"+b+"-$2"),f=c.context||a.editable().getName(),k;CKEDITOR.env.ie&&9>CKEDITOR.env.version&&"pre"==f&&(f="div",e="\x3cpre\x3e"+e+"\x3c/pre\x3e",k=1);f=a.document.createElement(f);
-f.setHtml("a"+e);e=f.getHtml().substr(1);e=e.replace(new RegExp("data-cke-"+b+"-","ig"),"");k&&(e=e.replace(/^<pre>|<\/pre>$/gi,""));e=e.replace(P,"$1$2");e=n(e);e=x(e);b=!1===c.fixForBody?!1:h(c.enterMode,a.config.autoParagraph);e=CKEDITOR.htmlParser.fragment.fromHtml(e,c.context,b);b&&(k=e,!k.children.length&&CKEDITOR.dtd[k.name][b]&&(b=new CKEDITOR.htmlParser.element(b),k.add(b)));c.dataValue=e},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(f.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(f.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,b=f.writer;b.reset();d.writeChildrenHtml(b);d=b.getHtml(!0);d=x(d);d=p(d,a);c.data.dataValue=d},null,null,15)};CKEDITOR.htmlDataProcessor.prototype={toHtml:function(a,c,d,b){var g=this.editor,e,f,k,h;
-c&&"object"==typeof c?(e=c.context,d=c.fixForBody,b=c.dontFilter,f=c.filter,k=c.enterMode,h=c.protectedWhitespaces):e=c;e||null===e||(e=g.editable().getName());return g.fire("toHtml",{dataValue:a,context:e,fixForBody:d,dontFilter:b,filter:f||g.filter,enterMode:k||g.enterMode,protectedWhitespaces:h}).dataValue},toDataFormat:function(a,c){var d,b,g;c&&(d=c.context,b=c.filter,g=c.enterMode);d||null===d||(d=this.editor.editable().getName());return this.editor.fire("toDataFormat",{dataValue:a,filter:b||
-this.editor.filter,context:d,enterMode:g||this.editor.enterMode}).dataValue},protectSource:function(a){return q(a,this.editor)},unprotectSource:function(a){return p(a,this.editor)},unprotectRealComments:function(a){return x(a)}};var z=/(?:&nbsp;|\xa0)$/,t="{cke_protected}",y=CKEDITOR.dtd,u="caption colgroup col thead tfoot tbody".split(" "),w=CKEDITOR.tools.extend({},y.$blockLimit,y.$block),B={elements:{input:m,textarea:m}},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}}}},C={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}}},D={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"],b,g=0;g<d.length;g++)b="data-cke-saved-"+d[g],b in c&&delete c[d[g]]}return a},table:function(a){a.children.slice(0).sort(function(a,c){var d,b;a.type==CKEDITOR.NODE_ELEMENT&&c.type==a.type&&
-(d=CKEDITOR.tools.indexOf(u,a.name),b=CKEDITOR.tools.indexOf(u,c.name));-1<d&&-1<b&&d!=b||(d=a.parent?a.getIndex():-1,b=c.parent?c.getIndex():-1);return d>b?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:c,textarea:c},attributes:{"class":function(a){return CKEDITOR.tools.ltrim(a.replace(/(?:^|\s+)cke_[^\s]*/g,""))||!1}}};CKEDITOR.env.ie&&(D.attributes.style=function(a){return a.replace(/(^|;)([^\:]+)/g,function(a){return a.toLowerCase()})});var E=/<(a|area|img|input|source)\b([^>]*)>/gi,
-G=/([\w-:]+)\s*=\s*(?:(?:"[^"]*")|(?:'[^']*')|(?:[^ "'>]+))/gi,L=/^(href|src|name)$/i,F=/(?:<style(?=[ >])[^>]*>[\s\S]*?<\/style>)|(?:<(:?link|meta|base)[^>]*>)/gi,O=/(<textarea(?=[ >])[^>]*>)([\s\S]*?)(?:<\/textarea>)/gi,H=/<cke:encoded>([^<]*)<\/cke:encoded>/gi,I=/(<\/?)((?:object|embed|param|html|body|head|title)([\s][^>]*)?>)/gi,P=/(<\/?)cke:((?:html|body|head|title)[^>]*>)/gi,J=/<cke:(param|embed)([^>]*?)\/?>(?!\s*<\/cke:\1)/gi;r=function(){function a(c,d){for(var b=0;b<c.length;b++){var g=c[b];
-g.lastIndex=0;if(g.test(d))return!0}return!1}function c(a){return CKEDITOR.tools.array.reduce(a.split(""),function(a,c){var b=c.toLowerCase(),g=c.toUpperCase(),e=d(b);b!==g&&(e+="|"+d(g));return a+("("+e+")")},"")}function d(a){var c;c=a.charCodeAt(0);var b=c.toString(16);c={htmlCode:"\x26#"+c+";?",hex:"\x26#x0*"+b+";?",entity:{"\x3c":"\x26lt;","\x3e":"\x26gt;",":":"\x26colon;"}[a]};for(var g in c)c[g]&&(a+="|"+c[g]);return a}var b=[new RegExp("("+c("\x3ccke:encoded\x3e")+"(.*?)"+c("\x3c/cke:encoded\x3e")+
-")|("+c("\x3c")+c("/")+"?"+c("cke:encoded\x3e")+")","gi"),new RegExp("(("+c("{cke_protected")+")(_[0-9]*)?"+c("}")+")","gi"),/<!(?:\s*-\s*){2,3}!?\s*>/g];return function(c){for(;a(b,c);)for(var d=b,g=0;g<d.length;g++)c=c.replace(d[g],"");return c}}()}(),"use strict",CKEDITOR.htmlParser.element=function(b,h){this.name=b;this.attributes=h||{};this.children=[];var f=b||"",e=f.match(/^cke:(.*)/);e&&(f=e[1]);f=!!(CKEDITOR.dtd.$nonBodyContent[f]||CKEDITOR.dtd.$block[f]||CKEDITOR.dtd.$listItem[f]||CKEDITOR.dtd.$tableContent[f]||
-CKEDITOR.dtd.$nonEditable[f]||"br"==f);this.isEmpty=!!CKEDITOR.dtd.$empty[b];this.isUnknown=!CKEDITOR.dtd[b];this._={isBlockLike:f,hasInlineStarted:this.isEmpty||!f}},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,e,a){"font-family"==e&&(a=a.replace(/["']/g,""));h[e.toLowerCase()]=a});return{rules:h,populate:function(b){var e=this.toString();e&&
-(b instanceof CKEDITOR.dom.element?b.setAttribute("style",e):b instanceof CKEDITOR.htmlParser.element?b.attributes.style=e:b.style=e)},toString:function(){var b=[],e;for(e in h)h[e]&&b.push(e,":",h[e],";");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},f=CKEDITOR.htmlParser.fragment.prototype;CKEDITOR.htmlParser.element.prototype=CKEDITOR.tools.extend(new CKEDITOR.htmlParser.node,
-{type:CKEDITOR.NODE_ELEMENT,add:f.add,clone:function(){return new CKEDITOR.htmlParser.element(this.name,this.attributes)},filter:function(b,a){var f=this,h,m;a=f.getFilterContext(a);if(!f.parent)b.onRoot(a,f);for(;;){h=f.name;if(!(m=b.onElementName(a,h)))return this.remove(),!1;f.name=m;if(!(f=b.onElement(a,f)))return this.remove(),!1;if(f!==this)return this.replaceWith(f),!1;if(f.name==h)break;if(f.type!=CKEDITOR.NODE_ELEMENT)return this.replaceWith(f),!1;if(!f.name)return this.replaceWithChildren(),
-!1}h=f.attributes;var c,d;for(c in h){for(m=h[c];;)if(d=b.onAttributeName(a,c))if(d!=c)delete h[c],c=d;else break;else{delete h[c];break}d&&(!1===(m=b.onAttribute(a,f,d,m))?delete h[d]:h[d]=m)}f.isEmpty||this.filterChildren(b,!1,a);return!0},filterChildren:f.filterChildren,writeHtml:function(b,a){a&&this.filter(a);var f=this.name,l=[],m=this.attributes,c,d;b.openTag(f,m);for(c in m)l.push([c,m[c]]);b.sortAttributes&&l.sort(h);c=0;for(d=l.length;c<d;c++)m=l[c],b.attribute(m[0],m[1]);b.openTagClose(f,
-this.isEmpty);this.writeChildrenHtml(b);this.isEmpty||b.closeTag(f)},writeChildrenHtml:f.writeChildrenHtml,replaceWithChildren:function(){for(var b=this.children,a=b.length;a;)b[--a].insertAfter(this);this.remove()},forEach:f.forEach,getFirst:function(e){if(!e)return this.children.length?this.children[0]:null;"function"!=typeof e&&(e=b(e));for(var a=0,f=this.children.length;a<f;++a)if(e(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,f=b.length;a<f;++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),f=this.clone(),h=0;h<a.length;++h)a[h].parent=f;f.children=a;a[0]&&(a[0].previous=null);0<b&&(this.children[b-1].next=null);this.parent.add(f,
-this.getIndex()+1);return f},find:function(b,a){void 0===a&&(a=!1);var f=[],h;for(h=0;h<this.children.length;h++){var m=this.children[h];"function"==typeof b&&b(m)?f.push(m):"string"==typeof b&&m.name===b&&f.push(m);a&&m.find&&(f=f.concat(m.find(b,a)))}return f},findOne:function(b,a){var f=null,h=CKEDITOR.tools.array.find(this.children,function(h){var c="function"===typeof b?b(h):h.name===b;if(c||!a)return c;h.children&&h.findOne&&(f=h.findOne(b,!0));return!!f});return f||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 f=0;f<a.length;f+=2)b[a[f]]=a[f+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,f){var e=("function"===typeof this.source?this.source(h):this.source).replace(b,function(a,b){return void 0!==h[b]?h[b]:a});
-return f?f.push(e):e}}(),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,f){var e=b[h];if(e)return e;e={name:h,source:f};CKEDITOR.fire("template",e);return b[h]=new CKEDITOR.template(e.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;if(CKEDITOR.editor.shouldDelayEditorCreation(b,h))return CKEDITOR.editor.initializeDelayedEditorCreation(b,h,"inline"),null;var f=b.is("textarea")?b:null,e=f?f.getValue():b.getHtml(),a=new CKEDITOR.editor(h,b,CKEDITOR.ELEMENT_MODE_INLINE);f?(a.setData(e,null,!0),b=CKEDITOR.dom.element.createFromHtml('\x3cdiv contenteditable\x3d"'+!!a.readOnly+'" class\x3d"cke_textarea_inline"\x3e'+f.getValue()+"\x3c/div\x3e",
-CKEDITOR.document),b.insertAfter(f),f.hide(),f.$.form&&a._attachToForm()):(h&&"undefined"!==typeof h.readOnly&&!h.readOnly&&b.setAttribute("contenteditable","true"),a.setData(e,null,!0));a.on("loaded",function(){a.fire("uiReady");a.editable(b);a.container=b;a.ui.contentsElement=b;a.setData(a.getData(1));a.resetDirty();a.fire("contentDom");a.mode="wysiwyg";a.fire("mode");a.status="ready";a.fireOnce("instanceReady");CKEDITOR.fire("instanceReady",null,a)},null,null,1E4);a.on("destroy",function(){var b=
-a.container;f&&b&&(b.clearCustomData(),b.remove());f&&f.show();a.element.clearCustomData();delete a.element});return a};CKEDITOR.inlineAll=function(){var b,h,f;for(f in CKEDITOR.dtd.$editable)for(var e=CKEDITOR.document.getElementsByTag(f),a=0,k=e.count();a<k;a++)b=e.getItem(a),"true"!=b.getAttribute("contenteditable")||b.getEditor()||(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,k,l){b=CKEDITOR.editor._getEditorElement(b);if(!b)return null;if(CKEDITOR.editor.shouldDelayEditorCreation(b,a))return CKEDITOR.editor.initializeDelayedEditorCreation(b,a,"replace"),null;var m=new CKEDITOR.editor(a,b,l);l==CKEDITOR.ELEMENT_MODE_REPLACE&&(b.setStyle("visibility","hidden"),m._.required=b.hasAttribute("required"),b.removeAttribute("required"));k&&m.setData(k,null,!0);m.on("loaded",function(){m.isDestroyed()||m.isDetached()||
-(f(m),l==CKEDITOR.ELEMENT_MODE_REPLACE&&m.config.autoUpdateElement&&b.$.form&&m._attachToForm(),m.setMode(m.config.startupMode,function(){m.resetDirty();m.status="ready";m.fireOnce("instanceReady");CKEDITOR.fire("instanceReady",null,m)}))});m.on("destroy",h);return m}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 f(b){var a=b.name,f=b.element,h=b.elementMode,m=b.fire("uiSpace",{space:"top",html:""}).html,c=b.fire("uiSpace",{space:"bottom",html:""}).html,d=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(d.output({id:b.id,name:a,langDir:b.lang.dir,langCode:b.langCode,voiceLabel:b.title,topHtml:m?'\x3cspan id\x3d"'+b.ui.spaceId("top")+'" class\x3d"cke_top cke_reset_all" role\x3d"presentation" style\x3d"height:auto"\x3e'+
-m+"\x3c/span\x3e":"",contentId:b.ui.spaceId("contents"),bottomHtml:c?'\x3cspan id\x3d"'+b.ui.spaceId("bottom")+'" class\x3d"cke_bottom cke_reset_all" role\x3d"presentation"\x3e'+c+"\x3c/span\x3e":"",outerEl:CKEDITOR.env.ie?"span":"div"}));h==CKEDITOR.ELEMENT_MODE_REPLACE?(f.hide(),a.insertAfter(f)):f.append(a);b.container=a;b.ui.contentsElement=b.ui.space("contents");m&&b.ui.space("top").unselectable();c&&b.ui.space("bottom").unselectable();f=b.config.width;h=b.config.height;f&&a.setStyle("width",
-CKEDITOR.tools.cssLength(f));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(e,a){return b(e,a,null,CKEDITOR.ELEMENT_MODE_REPLACE)};CKEDITOR.appendTo=function(e,a,f){return b(e,a,f,CKEDITOR.ELEMENT_MODE_APPENDTO)};CKEDITOR.replaceAll=function(){for(var b=document.getElementsByTagName("textarea"),a=0;a<b.length;a++){var f=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]&&(f={},!1===arguments[0](h,f)))continue;this.replace(h,f)}}};CKEDITOR.editor.prototype.addMode=function(b,a){(this._.modes||(this._.modes={}))[b]=a};CKEDITOR.editor.prototype.setMode=function(b,a){var f=this,h=this._.modes;if(b!=f.mode&&h&&h[b]){f.fire("beforeSetMode",b);if(f.mode){var m=f.checkDirty(),h=f._.previousModeData,c,d=0;f.fire("beforeModeUnload");
-f.editable(0);f._.previousMode=f.mode;f._.previousModeData=c=f.getData(1);"source"==f.mode&&h==c&&(f.fire("lockSnapshot",{forceUpdate:!0}),d=1);f.ui.space("contents").setHtml("");f.mode=""}else f._.previousModeData=f.getData(1);this._.modes[b](function(){f.mode=b;void 0!==m&&!m&&f.resetDirty();d?f.fire("unlockSnapshot"):"wysiwyg"==b&&f.fire("saveSnapshot");setTimeout(function(){f.isDestroyed()||f.isDetached()||(f.fire("mode"),a&&a.call(f))},0)})}};CKEDITOR.editor.prototype.resize=function(b,a,f,h){var m=
-this.container,c=this.ui.space("contents"),d=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")}):m;if(b||0===b)b=CKEDITOR.tools.convertToPx(CKEDITOR.tools.cssLength(b));h.setSize("width",b,!0);d&&(d.style.width="1%");a=CKEDITOR.tools.convertToPx(CKEDITOR.tools.cssLength(a));var g=(h.$.offsetHeight||0)-(c.$.clientHeight||0),m=Math.max(a-(f?0:g),0);a=f?a+g:a;c.setStyle("height",
-CKEDITOR.tools.cssLength(m));d&&(d.style.width="100%");this.fire("resize",{outerHeight:a,contentsHeight:m,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 b=a.editor,d=a.data.path,g=d.blockLimit,f=a.data.selection,k=f.getRanges()[0],n;if(CKEDITOR.env.gecko||
-CKEDITOR.env.ie&&CKEDITOR.env.needsBrFiller)if(f=h(f,d))f.appendBogus(),n=CKEDITOR.env.ie&&!CKEDITOR.env.edge||CKEDITOR.env.edge&&b._.previousActive;c(b,d.block,g)&&k.collapsed&&!k.getCommonAncestor().isReadOnly()&&(d=k.clone(),d.enlarge(CKEDITOR.ENLARGE_BLOCK_CONTENTS),g=new CKEDITOR.dom.walker(d),g.guard=function(a){return!e(a)||a.type==CKEDITOR.NODE_COMMENT||a.isReadOnly()},!g.checkForward()||d.checkStartOfBlock()&&d.checkEndOfBlock())&&(b=k.fixBlock(!0,b.activeEnterMode==CKEDITOR.ENTER_DIV?"div":
-"p"),CKEDITOR.env.needsBrFiller||(b=b.getFirst(e))&&b.type==CKEDITOR.NODE_TEXT&&CKEDITOR.tools.trim(b.getText()).match(/^(?:&nbsp;|\xa0)$/)&&b.remove(),n=1,a.cancel());n&&k.select()}function h(a,c){if(a.isFake)return 0;var b=c.block||c.blockLimit,d=b&&b.getLast(e);if(!(!b||!b.isBlockBoundary()||d&&d.type==CKEDITOR.NODE_ELEMENT&&d.isBlockBoundary()||b.is("pre")||b.getBogus()))return b}function f(a){var c=a.data.getTarget();c.is("input")&&(c=c.getAttribute("type"),"submit"!=c&&"reset"!=c||a.data.preventDefault())}
-function e(a){return x(a)&&p(a)}function a(a,c){return function(b){var d=b.data.$.toElement||b.data.$.fromElement||b.data.$.relatedTarget;(d=d&&d.nodeType==CKEDITOR.NODE_ELEMENT?new CKEDITOR.dom.element(d):null)&&(c.equals(d)||c.contains(d))||a.call(this,b)}}function k(a){return!!a.getRanges()[0].startPath().contains({table:1,ul:1,ol:1,dl:1})}function l(a){function c(a){var d={table:1,ul:1,ol:1,dl:1};return function(c,g){g&&c.type==CKEDITOR.NODE_ELEMENT&&c.is(d)&&(b=c);if(!(g||!e(c)||a&&r(c)))return!1}}
-var b,d=a.getRanges()[0],g=a.root;return k(a)&&(a=d.clone(),a.collapse(1),a.setStartAt(g,CKEDITOR.POSITION_AFTER_START),g=new CKEDITOR.dom.walker(a),g.guard=c(),g.checkBackward(),b)?(a=d.clone(),a.collapse(),a.setEndAt(b,CKEDITOR.POSITION_AFTER_END),g=new CKEDITOR.dom.walker(a),g.guard=c(!0),b=!1,g.checkForward(),b):null}function m(a){return a.block.getParent().getChildCount()}function c(a,c,b){return!1!==a.config.autoParagraph&&a.activeEnterMode!=CKEDITOR.ENTER_BR&&(a.editable().equals(b)&&!c||c&&
-"true"==c.getAttribute("contenteditable"))}function d(a){return a.activeEnterMode!=CKEDITOR.ENTER_BR&&!1!==a.config.autoParagraph?a.activeEnterMode==CKEDITOR.ENTER_DIV?"div":"p":!1}function g(a){a&&a.isEmptyInlineRemoveable()&&a.remove()}function n(a){var c=a.editor;c.getSelection().scrollIntoView();setTimeout(function(){c.fire("saveSnapshot")},0)}function v(a,c,b){var d=a.getCommonAncestor(c);for(c=a=b?c:a;(a=a.getParent())&&!d.equals(a)&&1==a.getChildCount();)c=a;c.remove()}var x,p,q,r,z,t,y,u,
-w,B,A={ul:1,ol:1,dl:1};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(b){if(!CKEDITOR.env.ie)throw b;}CKEDITOR.env.safari&&!this.isInline()&&(a=CKEDITOR.document.getActive(),a.equals(this.getWindow().getFrame())||this.getWindow().focus())},on:function(c,b){var d=Array.prototype.slice.call(arguments,0);CKEDITOR.env.ie&&
-/^focus|blur$/.exec(c)&&(c="focus"==c?"focusin":"focusout",b=a(b,this),d[0]=c,d[1]=b);return CKEDITOR.dom.element.prototype.on.apply(this,d)},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,b;for(b in a)a.hasOwnProperty(b)&&(c=
-a[b],null!==c?this.setAttribute(b,c):this.removeAttribute(b))},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 b=this.getAttribute(a);c!==b&&(!this._.attrChanges&&(this._.attrChanges={}),a in this._.attrChanges||(this._.attrChanges[a]=b),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,b){var d=this.editor;d.focus();d.fire("saveSnapshot");b||(b=d.getSelection().getRanges()[0]);t(this,c||"html",a,b);b.select();n(this);this.editor.fire("afterInsertHtml",{})},insertHtmlIntoRange:function(a,c,b){t(this,b||"html",a,c);this.editor.fire("afterInsertHtml",{intoRange:c})},insertElement:function(a,c){var b=
-this.editor;b.focus();b.fire("saveSnapshot");var d=b.activeEnterMode,b=b.getSelection(),g=a.getName(),g=CKEDITOR.dtd.$block[g];c||(c=b.getRanges()[0]);this.insertElementIntoRange(a,c)&&(c.moveToPosition(a,CKEDITOR.POSITION_AFTER_END),g&&((g=a.getNext(function(a){return e(a)&&!r(a)}))&&g.type==CKEDITOR.NODE_ELEMENT&&g.is(CKEDITOR.dtd.$block)?g.getDtd()["#"]?c.moveToElementEditStart(g):c.moveToElementEditEnd(a):g||d==CKEDITOR.ENTER_BR||(g=c.fixBlock(!0,d==CKEDITOR.ENTER_DIV?"div":"p"),c.moveToElementEditStart(g))));
-b.selectRanges([c]);n(this)},insertElementIntoSelection:function(a){this.insertElement(a)},insertElementIntoRange:function(a,c){var b=this.editor,d=b.config.enterMode,e=a.getName(),f=CKEDITOR.dtd.$block[e];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})?y(c):c.startContainer.is(CKEDITOR.dtd.$list)&&u(c));var h,k;if(f)for(;(h=c.getCommonAncestor(0,1))&&(k=CKEDITOR.dtd[h.getName()])&&(!k||!k[e]);)if(h.getName()in
-CKEDITOR.dtd.span){var f=c.splitElement(h),n=c.createBookmark();g(h);g(f);c.moveToBookmark(n)}else c.checkStartOfBlock()&&c.checkEndOfBlock()?(c.setStartBefore(h),c.collapse(!0),h.remove()):c.splitBlock(d==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=b.getDocument().$,d=c.getSelection(),g;a:if(d.anchorNode&&d.anchorNode==b.$)g=!0;else{if(CKEDITOR.env.webkit&&(g=b.getDocument().getActive())&&g.equals(b)&&!d.anchorNode){g=!0;break a}g=void 0}g&&(g=new CKEDITOR.dom.range(b),g.moveToElementEditStart(b),c=c.createRange(),c.setStart(g.startContainer.$,g.startOffset),c.collapse(!0),d.removeAllRanges(),d.addRange(c))}function c(){var a=b.getDocument().$,d=a.selection,g=b.getDocument().getActive();"None"==
-d.type&&g.equals(b)&&(d=new CKEDITOR.dom.range(b),a=a.body.createTextRange(),d.moveToElementEditStart(b),d=d.startContainer,d.type!=CKEDITOR.NODE_ELEMENT&&(d=d.getParent()),a.moveToElementText(d.$),a.collapse(!0),a.select())}var b=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()};w.eol.detect(a,this);w.bogus.exclude(a);w.cell.shrink(a);a.fragment=a.range.cloneContents();w.tree.rebuild(a,this);w.eol.fix(a,this);return new CKEDITOR.dom.documentFragment(a.fragment.$)},extractHtmlFromRange:function(a,c){var b=B,d={range:a,doc:a.document},g=this.getHtmlFromRange(a);if(a.collapsed)return a.optimize(),g;a.enlarge(CKEDITOR.ENLARGE_INLINE,1);b.table.detectPurge(d);d.bookmark=a.createBookmark();delete d.range;var e=this.editor.createRange();
-e.moveToPosition(d.bookmark.startNode,CKEDITOR.POSITION_BEFORE_START);d.targetBookmark=e.createBookmark();b.list.detectMerge(d,this);b.table.detectRanges(d,this);b.block.detectMerge(d,this);d.tableContentsRanges?(b.table.deleteRanges(d),a.moveToBookmark(d.bookmark),d.range=a):(a.moveToBookmark(d.bookmark),d.range=a,a.extractContents(b.detectExtractMerge(d)));a.moveToBookmark(d.targetBookmark);a.optimize();b.fixUneditableRangePosition(a);b.list.merge(d,this);b.table.purge(d,this);b.block.merge(d,this);
-if(c){b=a.startPath();if(d=a.checkStartOfBlock()&&a.checkEndOfBlock()&&b.block&&!a.root.equals(b.block)){a:{var d=b.block.getElementsByTag("span"),e=0,f;if(d)for(;f=d.getItem(e++);)if(!p(f)){d=!0;break a}d=!1}d=!d}d&&(a.moveToPosition(b.block,CKEDITOR.POSITION_BEFORE_START),b.block.remove())}else b.autoParagraph(this.editor,a),q(a.startContainer)&&a.startContainer.appendBogus();a.startContainer.mergeSiblings();return g},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(z,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 c=function(){var b=a.editable();
-null!=a._.previousScrollTop&&b.getDocument().equals(CKEDITOR.document)&&(b.$.scrollTop=a._.previousScrollTop,a._.previousScrollTop=null,this.removeListener("scroll",c))};this.on("scroll",c)}a.focusManager.add(this);this.equals(CKEDITOR.document.getActive())&&(this.hasFocus=!0,a.once("contentDom",function(){a.focusManager.focus(this)},this));this.isInline()&&this.changeAttr("tabindex",a.tabIndex);if(!this.is("textarea")){a.document=this.getDocument();a.window=this.getWindow();var b=a.document;this.changeAttr("spellcheck",
-!a.config.disableNativeSpellChecker);var d=a.config.contentsLangDirection;this.getDirection(1)!=d&&this.changeAttr("dir",d);var g=CKEDITOR.getCss();if(g){var d=b.getHead(),h=d.getCustomData("stylesheet");h?g!=h.getText()&&(CKEDITOR.env.ie&&9>CKEDITOR.env.version?h.$.styleSheet.cssText=g:h.setText(g)):(g=b.appendStyleText(g),g=new CKEDITOR.dom.element(g.ownerNode||g.owningElement),d.setCustomData("stylesheet",g),g.data("cke-temp",1))}d=b.getCustomData("stylesheet_ref")||0;b.setCustomData("stylesheet_ref",
-d+1);this.setCustomData("cke_includeReadonly",!a.config.disableReadonlyStyling);this.attachListener(this,"click",function(a){a=a.data;var c=(new CKEDITOR.dom.elementPath(a.getTarget(),this)).contains("a");c&&2!=a.$.button&&c.isReadOnly()&&a.preventDefault()});var n={8:1,46:1};this.attachListener(a,"key",function(c){if(a.readOnly)return!0;var b=c.data.domEvent.getKey(),d,g=a.getSelection();if(0!==g.getRanges().length){if(b in n){var e;c=g.getRanges()[0];var f=c.startPath(),h,q,r,b=8==b,v=!1;if(CKEDITOR.env.ie&&
-11>CKEDITOR.env.version&&g.getSelectedElement())e=g.getSelectedElement();else if(k(g)){var t=new CKEDITOR.dom.walker(c),u=c.collapsed?c.startContainer:t.next(),v=!1,w;if(c.checkStartOfBlock()){w=c.startPath().block||c.startPath().blockLimit;var G=w.getName();w=-1!==CKEDITOR.tools.array.indexOf(["dd","dt","li"],G)&&null===w.getPrevious()}else w=!1;if(w){for(;u&&!v;)v=u.$.nodeName.toLowerCase(),v=!!A[v],u=t.next();t=m(c.startPath());u=m(c.endPath());v=v||t!==u}else v=void 0;v||(e=l(g))}e||v?(a.fire("saveSnapshot"),
-v?((d=c.startContainer.getAscendant(A,!0))?(c.setStart(d,0),c.enlarge(CKEDITOR.ENLARGE_ELEMENT),e=c):e=null,e.deleteContents()):(c.moveToPosition(e,CKEDITOR.POSITION_BEFORE_START),e.remove()),c.select(),a.fire("saveSnapshot"),d=1):c.collapsed&&((h=f.block)&&(r=h[b?"getPrevious":"getNext"](x))&&r.type==CKEDITOR.NODE_ELEMENT&&r.is("table")&&c[b?"checkStartOfBlock":"checkEndOfBlock"]()?(a.fire("saveSnapshot"),c[b?"checkEndOfBlock":"checkStartOfBlock"]()&&h.remove(),c["moveToElementEdit"+(b?"End":"Start")](r),
-c.select(),a.fire("saveSnapshot"),d=1):f.blockLimit&&f.blockLimit.is("td")&&(q=f.blockLimit.getAscendant("table"))&&c.checkBoundaryOfElement(q,b?CKEDITOR.START:CKEDITOR.END)&&(r=q[b?"getPrevious":"getNext"](x))?(a.fire("saveSnapshot"),c["moveToElementEdit"+(b?"End":"Start")](r),c.checkStartOfBlock()&&c.checkEndOfBlock()?r.remove():c.select(),a.fire("saveSnapshot"),d=1):(q=f.contains(["td","th","caption"]))&&c.checkBoundaryOfElement(q,b?CKEDITOR.START:CKEDITOR.END)&&(d=1))}return!d}});a.blockless&&
-CKEDITOR.env.ie&&CKEDITOR.env.needsBrFiller&&this.attachListener(this,"keyup",function(c){c.data.getKeystroke()in n&&!this.getFirst(e)&&(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",f);CKEDITOR.env.ie&&!CKEDITOR.env.edge||this.attachListener(this,"mousedown",function(c){var b=
-c.data.getTarget();b.is("img","hr","input","textarea","select")&&!b.isReadOnly()&&(a.getSelection().selectElement(b),b.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(z,
-""))){var b=a.createRange();b.moveToElementEditStart(c);b.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(c){if(a.readOnly)return!0;var b=c.data.domEvent.getKey();if(b in n&&(c=a.getSelection(),0!==c.getRanges().length)){var b=
-8==b,d=c.getRanges()[0];c=d.startPath();if(d.collapsed)a:{var g=c.block;if(g&&d[b?"checkStartOfBlock":"checkEndOfBlock"](!0)&&d.moveToClosestEditablePosition(g,!b)&&d.collapsed){if(d.startContainer.type==CKEDITOR.NODE_ELEMENT){var e=d.startContainer.getChild(d.startOffset-(b?1:0));if(e&&e.type==CKEDITOR.NODE_ELEMENT&&e.is("hr")){a.fire("saveSnapshot");e.remove();c=!0;break a}}d=d.startPath().block;if(!d||d&&d.contains(g))c=void 0;else{a.fire("saveSnapshot");var f;(f=(b?d:g).getBogus())&&f.remove();
-f=a.getSelection();e=f.createBookmarks();(b?g:d).moveChildren(b?d:g,!1);c.lastElement.mergeSiblings();v(g,d,!b);f.selectBookmarks(e);c=!0}}else c=!1}else b=d,f=c.block,d=b.endPath().block,f&&d&&!f.equals(d)?(a.fire("saveSnapshot"),(g=f.getBogus())&&g.remove(),b.enlarge(CKEDITOR.ENLARGE_INLINE),b.deleteContents(),d.getParent()&&(d.moveChildren(f,!1),c.lastElement.mergeSiblings(),v(f,d,!0)),b=a.getSelection().getRanges()[0],b.collapse(1),b.optimize(),""===b.startContainer.getHtml()&&b.startContainer.appendBogus(),
-b.select(),c=!0):c=!1;if(!c)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 b=a.getCustomData("stylesheet_ref");--b?a.setCustomData("stylesheet_ref",b):(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 b=c.title;a.changeAttr("role","textbox");a.changeAttr("aria-multiline","true");a.changeAttr("aria-label",b);b&&a.changeAttr("title",b);var d=c.fire("ariaEditorHelpLabel",{}).label;if(d&&(b=this.ui.space(this.elementMode==CKEDITOR.ELEMENT_MODE_INLINE?"top":"contents"))){var g=CKEDITOR.tools.getNextId(),d=CKEDITOR.dom.element.createFromHtml('\x3cspan id\x3d"'+g+'" class\x3d"cke_voice_label"\x3e'+d+"\x3c/span\x3e");b.append(d);a.changeAttr("aria-describedby",g)}}})});
-CKEDITOR.addCss(".cke_editable{cursor:text}.cke_editable img,.cke_editable input,.cke_editable textarea{cursor:default}");x=CKEDITOR.dom.walker.whitespaces(!0);p=CKEDITOR.dom.walker.bookmark(!1,!0);q=CKEDITOR.dom.walker.empty();r=CKEDITOR.dom.walker.bogus();z=/(^|<body\b[^>]*>)\s*<(p|div|address|h\d|center|pre)[^>]*>\s*(?:<br[^>]*>|&nbsp;|\u00A0|&#160;)?\s*(:?<\/\2>)?\s*(?=$|<\/body>)/gi;t=function(){function a(c){return c.type==CKEDITOR.NODE_ELEMENT}function b(c,d){var g,e,f,h,k=[],n=d.range.startContainer;
-g=d.range.startPath();for(var n=m[n.getName()],l=0,q=c.getChildren(),J=q.count(),r=-1,v=-1,t=0,u=g.contains(m.$list);l<J;++l)g=q.getItem(l),a(g)?(f=g.getName(),u&&f in CKEDITOR.dtd.$list?k=k.concat(b(g,d)):(h=!!n[f],"br"!=f||!g.data("cke-eol")||l&&l!=J-1||(t=(e=l?k[l-1].node:q.getItem(l+1))&&(!a(e)||!e.is("br")),e=e&&a(e)&&m.$block[e.getName()]),-1!=r||h||(r=l),h||(v=l),k.push({isElement:1,isLineBreak:t,isBlock:g.isBlockBoundary(),hasBlockSibling:e,node:g,name:f,allowed:h}),e=t=0)):k.push({isElement:0,
-node:g,allowed:1});-1<r&&(k[r].firstNotAllowed=1);-1<v&&(k[v].lastNotAllowed=1);return k}function f(c,b){var d=[],g=c.getChildren(),e=g.count(),h,k=0,n=m[b],l=!c.is(m.$inline)||c.is("br");for(l&&d.push(" ");k<e;k++)h=g.getItem(k),a(h)&&!h.is(n)?d=d.concat(f(h,b)):d.push(h);l&&d.push(" ");return d}function h(c){return a(c.startContainer)&&c.startContainer.getChild(c.startOffset-1)}function k(c){return c&&a(c)&&(c.is(m.$removeEmpty)||c.is("a")&&!c.isBlockBoundary())}function n(c,b,d,g){var e=c.clone(),
-f,h;e.setEndAt(b,CKEDITOR.POSITION_BEFORE_END);(f=(new CKEDITOR.dom.walker(e)).next())&&a(f)&&q[f.getName()]&&(h=f.getPrevious())&&a(h)&&!h.getParent().equals(c.startContainer)&&d.contains(h)&&g.contains(f)&&f.isIdentical(h)&&(f.moveChildren(h),f.remove(),n(c,b,d,g))}function l(c,b){function d(c,b){if(b.isBlock&&b.isElement&&!b.node.is("br")&&a(c)&&c.is("br"))return c.remove(),1}var g=b.endContainer.getChild(b.endOffset),e=b.endContainer.getChild(b.endOffset-1);g&&d(g,c[c.length-1]);e&&d(e,c[0])&&
-(b.setEnd(b.endContainer,b.endOffset-1),b.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},J=CKEDITOR.tools.extend({},m.$inline);delete J.br;return function(q,v,t,u){var w=q.editor,p=!1,x;"unfiltered_html"==v&&(v="html",p=!0);if(!u.checkReadOnly()){var I=(new CKEDITOR.dom.elementPath(u.startContainer,u.root)).blockLimit||u.root;v={type:v,dontFilter:p,editable:q,editor:w,range:u,blockLimit:I,
-mergeCandidates:[],zombies:[]};var p=v.range,I=v.mergeCandidates,y="html"===v.type,B,A,W,Z,aa;"text"==v.type&&p.shrink(CKEDITOR.SHRINK_ELEMENT,!0,!1)&&(A=CKEDITOR.dom.element.createFromHtml("\x3cspan\x3e\x26nbsp;\x3c/span\x3e",p.document),p.insertNode(A),p.setStartAfter(A));W=new CKEDITOR.dom.elementPath(p.startContainer);v.endPath=Z=new CKEDITOR.dom.elementPath(p.endContainer);if(!p.collapsed){B=Z.block||Z.blockLimit;var ca=p.getCommonAncestor();B&&!B.equals(ca)&&!B.contains(ca)&&p.checkEndOfBlock()&&
-v.zombies.push(B);p.deleteContents()}for(;(aa=h(p))&&a(aa)&&aa.isBlockBoundary()&&W.contains(aa);)p.moveToPosition(aa,CKEDITOR.POSITION_BEFORE_END);n(p,v.blockLimit,W,Z);A&&(p.setEndBefore(A),p.collapse(),A.remove());A=p.startPath();if(B=A.contains(k,!1,1))x=p.splitElement(B),v.inlineStylesRoot=B,v.inlineStylesPeak=A.lastElement;A=p.createBookmark();y&&(g(B),g(x));(B=A.startNode.getPrevious(e))&&a(B)&&k(B)&&I.push(B);(B=A.startNode.getNext(e))&&a(B)&&k(B)&&I.push(B);for(B=A.startNode;(B=B.getParent())&&
-k(B);)I.push(B);p.moveToBookmark(A);x=q.getHtml();x=""===x||x.match(z);w.enterMode===CKEDITOR.ENTER_DIV&&x&&((w=q.getFirst())&&w.remove(),u.setStartAt(q,CKEDITOR.POSITION_AFTER_START),u.collapse(!0));if(q=t){q=v.range;if("text"==v.type&&v.inlineStylesRoot){u=v.inlineStylesPeak;w=u.getDocument().createText("{cke-peak}");for(x=v.inlineStylesRoot.getParent();!u.equals(x);)w=w.appendTo(u.clone()),u=u.getParent();t=w.getOuterHtml().split("{cke-peak}").join(t)}u=v.blockLimit.getName();if(/^\s+|\s+$/.test(t)&&
-"span"in CKEDITOR.dtd[u]){var X='\x3cspan data-cke-marker\x3d"1"\x3e\x26nbsp;\x3c/span\x3e';t=X+t+X}t=v.editor.dataProcessor.toHtml(t,{context:null,fixForBody:!1,protectedWhitespaces:!!X,dontFilter:v.dontFilter,filter:v.editor.activeFilter,enterMode:v.editor.activeEnterMode});u=q.document.createElement("body");u.setHtml(t);X&&(u.getFirst().remove(),u.getLast().remove());if((X=q.startPath().block)&&(1!=X.getChildCount()||!X.getBogus()))a:{var Q;if(1==u.getChildCount()&&a(Q=u.getFirst())&&Q.is(r)&&
-!Q.hasAttribute("contenteditable")){X=Q.getElementsByTag("*");q=0;for(x=X.count();q<x;q++)if(w=X.getItem(q),!w.is(J))break a;Q.moveChildren(Q.getParent(1));Q.remove()}}v.dataWrapper=u;q=t}if(q){Q=v.range;q=Q.document;u=v.blockLimit;x=0;var K,X=[],ha,R;t=A=0;var ba,w=Q.startContainer;aa=v.endPath.elements[0];var Y,p=aa.getPosition(w),I=!!aa.getCommonAncestor(w)&&p!=CKEDITOR.POSITION_IDENTICAL&&!(p&CKEDITOR.POSITION_CONTAINS+CKEDITOR.POSITION_IS_CONTAINED),w=b(v.dataWrapper,v);for(v.editor.enterMode!==
-CKEDITOR.ENTER_BR&&l(w,Q);x<w.length;x++){p=w[x];if(y=p.isLineBreak)y=Q,B=u,Z=W=void 0,p.hasBlockSibling?y=1:(W=y.startContainer.getAscendant(m.$block,1))&&W.is({div:1,p:1})?(Z=W.getPosition(B),Z==CKEDITOR.POSITION_IDENTICAL||Z==CKEDITOR.POSITION_CONTAINS?y=0:(B=y.splitElement(W),y.moveToPosition(B,CKEDITOR.POSITION_AFTER_START),y=1)):y=0;if(y)t=0<x;else{y=Q.startPath();!p.isBlock&&c(v.editor,y.block,y.blockLimit)&&(R=d(v.editor))&&(R=q.createElement(R),R.appendBogus(),Q.insertNode(R),CKEDITOR.env.needsBrFiller&&
-(K=R.getBogus())&&K.remove(),Q.moveToPosition(R,CKEDITOR.POSITION_BEFORE_END));if((y=Q.startPath().block)&&!y.equals(ha)){if(K=y.getBogus())K.remove(),X.push(y);ha=y}p.firstNotAllowed&&(A=1);if(A&&p.isElement){y=Q.startContainer;for(B=null;y&&!m[y.getName()][p.name];){if(y.equals(u)){y=null;break}B=y;y=y.getParent()}if(y)B&&(ba=Q.splitElement(B),v.zombies.push(ba),v.zombies.push(B));else{B=u.getName();Y=!x;y=x==w.length-1;B=f(p.node,B);W=[];Z=B.length;for(var ca=0,ga=void 0,la=0,ma=-1;ca<Z;ca++)ga=
-B[ca]," "==ga?(la||Y&&!ca||(W.push(new CKEDITOR.dom.text(" ")),ma=W.length),la=1):(W.push(ga),la=0);y&&ma==W.length&&W.pop();Y=W}}if(Y){for(;y=Y.pop();)Q.insertNode(y);Y=0}else Q.insertNode(p.node);p.lastNotAllowed&&x<w.length-1&&((ba=I?aa:ba)&&Q.setEndAt(ba,CKEDITOR.POSITION_AFTER_START),A=0);Q.collapse()}}1!=w.length?K=!1:(K=w[0],K=K.isElement&&"false"==K.node.getAttribute("contenteditable"));K&&(t=!0,y=w[0].node,Q.setStartAt(y,CKEDITOR.POSITION_BEFORE_START),Q.setEndAt(y,CKEDITOR.POSITION_AFTER_END));
-v.dontMoveCaret=t;v.bogusNeededBlocks=X}K=v.range;var ja;Y=v.bogusNeededBlocks;for(ha=K.createBookmark();R=v.zombies.pop();)R.getParent()&&(ba=K.clone(),ba.moveToElementEditStart(R),ba.removeEmptyBlocksAtEnd());if(Y)for(;R=Y.pop();)CKEDITOR.env.needsBrFiller?R.appendBogus():R.append(K.document.createText(" "));for(;R=v.mergeCandidates.pop();)R.mergeSiblings();CKEDITOR.env.webkit&&K.startPath()&&(R=K.startPath(),R.block?R.block.$.normalize():R.blockLimit&&R.blockLimit.$.normalize());K.moveToBookmark(ha);
-if(!v.dontMoveCaret){for(R=h(K);R&&a(R)&&!R.is(m.$empty);){if(R.isBlockBoundary())K.moveToPosition(R,CKEDITOR.POSITION_BEFORE_END);else{if(k(R)&&R.getHtml().match(/(\s|&nbsp;)$/g)){ja=null;break}ja=K.clone();ja.moveToPosition(R,CKEDITOR.POSITION_BEFORE_END)}R=R.getLast(e)}ja&&K.moveToRange(ja)}}}}();y=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,b,d){b=a.getDocument().createElement(b);a.append(b,d);return b}function b(a){var c=a.count(),d;for(c;0<c--;)d=a.getItem(c),CKEDITOR.tools.trim(d.getHtml())||(d.appendBogus(),CKEDITOR.env.ie&&9>CKEDITOR.env.version&&d.getChildCount()&&d.getFirst().remove())}return function(d){var g=d.startContainer,e=g.getAscendant("table",1),f=!1;b(e.getElementsByTag("td"));b(e.getElementsByTag("th"));e=d.clone();e.setStart(g,0);e=a(e).lastBackward();e||(e=d.clone(),e.setEndAt(g,
-CKEDITOR.POSITION_BEFORE_END),e=a(e).lastForward(),f=!0);e||(e=g);e.is("table")?(d.setStartAt(e,CKEDITOR.POSITION_BEFORE_START),d.collapse(!0),e.remove()):(e.is({tbody:1,thead:1,tfoot:1})&&(e=c(e,"tr",f)),e.is("tr")&&(e=c(e,e.getParent().is("thead")?"th":"td",f)),(g=e.getBogus())&&g.remove(),d.moveToPosition(e,f?CKEDITOR.POSITION_AFTER_START:CKEDITOR.POSITION_BEFORE_END))}}();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.$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 b=c.startContainer,d=!1,g;g=c.clone();g.setStart(b,0);g=a(g).lastBackward();g||(g=c.clone(),g.setEndAt(b,CKEDITOR.POSITION_BEFORE_END),g=a(g).lastForward(),d=!0);g||(g=b);g.is(CKEDITOR.dtd.$list)?(c.setStartAt(g,CKEDITOR.POSITION_BEFORE_START),c.collapse(!0),g.remove()):((b=g.getBogus())&&b.remove(),c.moveToPosition(g,d?CKEDITOR.POSITION_AFTER_START:
-CKEDITOR.POSITION_BEFORE_END),c.select())}}();w={eol:{detect:function(a,c){var b=a.range,d=b.clone(),g=b.clone(),e=new CKEDITOR.dom.elementPath(b.startContainer,c),f=new CKEDITOR.dom.elementPath(b.endContainer,c);d.collapse(1);g.collapse();e.block&&d.checkBoundaryOfElement(e.block,CKEDITOR.END)&&(b.setStartAfter(e.block),a.prependEolBr=1);f.block&&g.checkBoundaryOfElement(f.block,CKEDITOR.START)&&(b.setEndBefore(f.block),a.appendEolBr=1)},fix:function(a,c){var b=c.getDocument(),d;a.appendEolBr&&(d=
-this.createEolBr(b),a.fragment.append(d));!a.prependEolBr||d&&!d.getPrevious()||a.fragment.append(this.createEolBr(b),1)},createEolBr:function(a){return a.createElement("br",{attributes:{"data-cke-eol":1}})}},bogus:{exclude:function(a){var c=a.range.getBoundaryNodes(),b=c.startNode,c=c.endNode;!c||!r(c)||b&&b.equals(c)||a.range.setEndBefore(c)}},tree:{rebuild:function(a,c){var b=a.range,d=b.getCommonAncestor(),g=new CKEDITOR.dom.elementPath(d,c),e=new CKEDITOR.dom.elementPath(b.startContainer,c),
-b=new CKEDITOR.dom.elementPath(b.endContainer,c),f;d.type==CKEDITOR.NODE_TEXT&&(d=d.getParent());if(g.blockLimit.is({tr:1,table:1})){var h=g.contains("table").getParent();f=function(a){return!a.equals(h)}}else if(g.block&&g.block.is(CKEDITOR.dtd.$listItem)&&(e=e.contains(CKEDITOR.dtd.$list),b=b.contains(CKEDITOR.dtd.$list),!e.equals(b))){var k=g.contains(CKEDITOR.dtd.$list).getParent();f=function(a){return!a.equals(k)}}f||(f=function(a){return!a.equals(g.block)&&!a.equals(g.blockLimit)});this.rebuildFragment(a,
-c,d,f)},rebuildFragment:function(a,c,b,d){for(var g;b&&!b.equals(c)&&d(b);)g=b.clone(0,1),a.fragment.appendTo(g),a.fragment=g,b=b.getParent()}},cell:{shrink:function(a){a=a.range;var c=a.startContainer,b=a.endContainer,d=a.startOffset,g=a.endOffset;c.type==CKEDITOR.NODE_ELEMENT&&c.equals(b)&&c.is("tr")&&++d==g&&a.shrink(CKEDITOR.SHRINK_TEXT)}}};B=function(){function a(c,b){var d=c.getParent();if(d.is(CKEDITOR.dtd.$inline))c[b?"insertBefore":"insertAfter"](d)}function b(c,d,g){a(d);a(g,1);for(var e;e=
-g.getNext();)e.insertAfter(d),d=e;q(c)&&c.remove()}function g(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=g(c,a.bookmark),d=b.startPath(),e=b.endPath(),f=d.contains(CKEDITOR.dtd.$list),h=e.contains(CKEDITOR.dtd.$list);a.mergeList=f&&h&&f.getParent().equals(h.getParent())&&!f.equals(h);a.mergeListItems=d.block&&e.block&&d.block.is(CKEDITOR.dtd.$listItem)&&e.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,c){if(a.mergeListBookmark){var d=a.mergeListBookmark.startNode,g=a.mergeListBookmark.endNode,e=new CKEDITOR.dom.elementPath(d,c),f=new CKEDITOR.dom.elementPath(g,c);if(a.mergeList){var h=e.contains(CKEDITOR.dtd.$list),k=f.contains(CKEDITOR.dtd.$list);h.equals(k)||(k.moveChildren(h),k.remove())}a.mergeListItems&&(e=e.contains(CKEDITOR.dtd.$listItem),
-f=f.contains(CKEDITOR.dtd.$listItem),e.equals(f)||b(f,d,g));d.remove();g.remove()}}},block:{detectMerge:function(a,c){if(!a.tableContentsRanges&&!a.mergeListBookmark){var b=new CKEDITOR.dom.range(c);b.setStartBefore(a.bookmark.startNode);b.setEndAfter(a.bookmark.endNode);a.mergeBlockBookmark=b.createBookmark()}},merge:function(a,c){if(a.mergeBlockBookmark&&!a.purgeTableBookmark){var d=a.mergeBlockBookmark.startNode,g=a.mergeBlockBookmark.endNode,e=new CKEDITOR.dom.elementPath(d,c),f=new CKEDITOR.dom.elementPath(g,
-c),e=e.block,f=f.block;e&&f&&!e.equals(f)&&b(f,d,g);d.remove();g.remove()}}},table:function(){function a(d){var g=[],e,f=new CKEDITOR.dom.walker(d),h=d.startPath().contains(b),k=d.endPath().contains(b),n={};f.guard=function(a,f){if(a.type==CKEDITOR.NODE_ELEMENT){var l="visited_"+(f?"out":"in");if(a.getCustomData(l))return;CKEDITOR.dom.element.setMarker(n,a,l,1)}if(f&&h&&a.equals(h))e=d.clone(),e.setEndAt(h,CKEDITOR.POSITION_BEFORE_END),g.push(e);else if(!f&&k&&a.equals(k))e=d.clone(),e.setStartAt(k,
-CKEDITOR.POSITION_AFTER_START),g.push(e);else{if(l=!f)l=a.type==CKEDITOR.NODE_ELEMENT&&a.is(b)&&(!h||c(a,h))&&(!k||c(a,k));if(!l&&(l=f))if(a.is(b))var l=h&&h.getAscendant("table",!0),m=k&&k.getAscendant("table",!0),q=a.getAscendant("table",!0),l=l&&l.contains(q)||m&&m.contains(q);else l=void 0;l&&(e=d.clone(),e.selectNodeContents(a),g.push(e))}};f.lastForward();CKEDITOR.dom.element.clearAllMarkers(n);return g}function c(a,b){var d=CKEDITOR.POSITION_CONTAINS+CKEDITOR.POSITION_IS_CONTAINED,g=a.getPosition(b);
-return g===CKEDITOR.POSITION_IDENTICAL?!1:0===(g&d)}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),g=0;d.evaluator=function(a){a.type==CKEDITOR.NODE_ELEMENT&&a.is(b)&&++g};d.checkForward();if(1<g){var d=c.startPath().contains("table"),e=c.endPath().contains("table");d&&e&&c.checkBoundaryOfElement(d,CKEDITOR.START)&&c.checkBoundaryOfElement(e,CKEDITOR.END)&&(c=a.range.clone(),c.setStartBefore(d),
-c.setEndAfter(e),a.purgeTableBookmark=c.createBookmark())}},detectRanges:function(d,e){var f=g(e,d.bookmark),h=f.clone(),k,n,l=f.getCommonAncestor();l.is(CKEDITOR.dtd.$tableContent)&&!l.is(b)&&(l=l.getAscendant("table",!0));n=l;l=new CKEDITOR.dom.elementPath(f.startContainer,n);n=new CKEDITOR.dom.elementPath(f.endContainer,n);l=l.contains("table");n=n.contains("table");if(l||n)l&&n&&c(l,n)?(d.tableSurroundingRange=h,h.setStartAt(l,CKEDITOR.POSITION_AFTER_END),h.setEndAt(n,CKEDITOR.POSITION_BEFORE_START),
-h=f.clone(),h.setEndAt(l,CKEDITOR.POSITION_AFTER_END),k=f.clone(),k.setStartAt(n,CKEDITOR.POSITION_BEFORE_START),k=a(h).concat(a(k))):l?n||(d.tableSurroundingRange=h,h.setStartAt(l,CKEDITOR.POSITION_AFTER_END),f.setEndAt(l,CKEDITOR.POSITION_AFTER_END)):(d.tableSurroundingRange=h,h.setEndAt(n,CKEDITOR.POSITION_BEFORE_START),f.setStartAt(n,CKEDITOR.POSITION_AFTER_START)),d.tableContentsRanges=k?k:a(f)},deleteRanges:function(a){for(var c;c=a.tableContentsRanges.pop();)c.extractContents(),q(c.startContainer)&&
-c.startContainer.appendBogus();a.tableSurroundingRange&&a.tableSurroundingRange.extractContents()},purge:function(a){if(a.purgeTableBookmark){var c=a.doc,b=a.range.clone(),c=c.createElement("p");c.insertBefore(a.purgeTableBookmark.startNode);b.moveToBookmark(a.purgeTableBookmark);b.deleteContents();a.range.moveToPosition(c,CKEDITOR.POSITION_AFTER_START)}}}}(),detectExtractMerge:function(a){return!(a.range.startPath().contains(CKEDITOR.dtd.$listItem)&&a.range.endPath().contains(CKEDITOR.dtd.$listItem))},
-fixUneditableRangePosition:function(a){a.startContainer.getDtd()["#"]||a.moveToClosestEditablePosition(null,!0)},autoParagraph:function(a,b){var g=b.startPath(),e;c(a,g.block,g.blockLimit)&&(e=d(a))&&(e=b.document.createElement(e),e.appendBogus(),b.insertNode(e),b.moveToPosition(e,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,g;if((d=!c&&
-1===a.length)&&!(d=a[0].collapsed)){var e=a[0];d=e.startContainer.getAscendant({td:1,th:1},!0);var f=e.endContainer.getAscendant({td:1,th:1},!0);g=CKEDITOR.tools.trim;d&&d.equals(f)&&!d.findOne("td, th, tr, tbody, table")?(e=e.cloneContents(),d=e.getFirst()?g(e.getFirst().getText())!==g(d.getText()):!0):d=!1}if(d)return!1;for(g=0;g<a.length;g++)if(d=a[g]._getTableElement(),!d)return!1;return!0}function f(a){function c(a){a=a.find("td, th");var b=[],d;for(d=0;d<a.count();d++)b.push(a.getItem(d));return b}
-var b=[],d,g;for(g=0;g<a.length;g++)d=a[g]._getTableElement(),d.is&&d.is({td:1,th:1})?b.push(d):b=b.concat(c(d));return b}function e(a){a=f(a);var c="",b=[],d,g;for(g=0;g<a.length;g++)d&&!d.equals(a[g].getAscendant("tr"))?(c+=b.join("\t")+"\n",d=a[g].getAscendant("tr"),b=[]):0===g&&(d=a[g].getAscendant("tr")),b.push(a[g].getText());return c+=b.join("\t")}function a(a){var c=this.root.editor,b=c.getSelection(1);this.reset();u=!0;b.root.once("selectionchange",function(a){a.cancel()},null,null,0);b.selectRanges([a[0]]);
-b=this._.cache;b.ranges=new CKEDITOR.dom.rangeList(a);b.type=CKEDITOR.SELECTION_TEXT;b.selectedElement=a[0]._getTableElement();b.selectedText=e(a);b.nativeSel=null;this.isFake=1;this.rev=z++;c._.fakeSelection=this;u=!1;this.root.fire("selectionchange")}function k(){var a=this._.fakeSelection,c;if(a){c=this.getSelection(1);var d;if(!(d=!c)&&(d=!c.isHidden())){d=a;var g=c.getRanges(),e=d.getRanges(),f=g.length&&g[0]._getTableElement()&&g[0]._getTableElement().getAscendant("table",!0),k=e.length&&e[0]._getTableElement()&&
-e[0]._getTableElement().getAscendant("table",!0),n=1===g.length&&g[0]._getTableElement()&&g[0]._getTableElement().is("table"),l=1===e.length&&e[0]._getTableElement()&&e[0]._getTableElement().is("table");if(b(d.getSelectedElement()))d=!1;else{var m=1===g.length&&g[0].collapsed,e=h(g,!!CKEDITOR.env.webkit)&&h(e);f=f&&k?f.equals(k)||k.contains(f):!1;f&&(m||e)?(n&&!l&&d.selectRanges(g),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 l(){B=!0;w||(m.call(this),w=CKEDITOR.tools.setTimeout(m,200,this))}function m(){w=null;B&&(CKEDITOR.tools.setTimeout(k,0,this),B=
-!1)}function c(a){return A(a)||a.type==CKEDITOR.NODE_ELEMENT&&!a.is(CKEDITOR.dtd.$empty)?!0:!1}function d(a){function b(c,d){return c&&c.type!=CKEDITOR.NODE_TEXT?a.clone()["moveToElementEdit"+(d?"End":"Start")](c):!1}if(!(a.root instanceof CKEDITOR.editable))return!1;var d=a.startContainer,g=a.getPreviousNode(c,null,d),e=a.getNextNode(c,null,d);return b(g)||b(e,1)||!(g||e||d.type==CKEDITOR.NODE_ELEMENT&&d.isBlockBoundary()&&d.getBogus())?!0:!1}function g(a){n(a,!1);var c=a.getDocument().createText(t);
-a.setCustomData("cke-fillingChar",c);return c}function n(a,c){var b=a&&a.removeCustomData("cke-fillingChar");if(b){if(!1!==c){var d=a.getDocument().getSelection().getNative(),g=d&&"None"!=d.type&&d.getRangeAt(0),e=t.length;if(b.getLength()>e&&g&&g.intersectsNode(b.$)){var f=[{node:d.anchorNode,offset:d.anchorOffset},{node:d.focusNode,offset:d.focusOffset}];d.anchorNode==b.$&&d.anchorOffset>e&&(f[0].offset-=e);d.focusNode==b.$&&d.focusOffset>e&&(f[1].offset-=e)}}b.setText(v(b.getText(),1));f&&(b=a.getDocument().$,
-d=b.getSelection(),b=b.createRange(),b.setStart(f[0].node,f[0].offset),b.collapse(!0),d.removeAllRanges(),d.addRange(b),d.extend(f[1].node,f[1].offset))}}function v(a,c){return c?a.replace(y,function(a,c){return c?" ":""}):a.replace(t,"")}function x(a,c){var b=c&&CKEDITOR.tools.htmlEncode(c)||"\x26nbsp;",b=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'+b+"\x3c/div\x3e",a.document);a.fire("lockSnapshot");a.editable().append(b);var d=a.getSelection(1),g=a.createRange(),e=d.root.on("selectionchange",function(a){a.cancel()},null,null,0);g.setStartAt(b,CKEDITOR.POSITION_AFTER_START);g.setEndAt(b,CKEDITOR.POSITION_BEFORE_END);d.selectRanges([g]);e.removeListener();a.fire("unlockSnapshot");a._.hiddenSelectionContainer=b}function p(a){var c={37:1,39:1,8:1,46:1};return function(b){var d=b.data.getKeystroke();if(c[d]){var g=a.getSelection(),e=g.getRanges()[0];
-g.isCollapsed()&&(e=e[38>d?"getPreviousEditableNode":"getNextEditableNode"]())&&e.type==CKEDITOR.NODE_ELEMENT&&"false"==e.getAttribute("contenteditable")&&(g=g.getStartElement(),!g.isBlockBoundary()||""!==(void 0===g.$.textContent?g.$.innerText:g.$.textContent)||8!==d&&46!==d||(g.remove(),a.fire("saveSnapshot")),a.getSelection().fake(e),b.data.preventDefault(),b.cancel())}}}function q(a){for(var c=0;c<a.length;c++){var b=a[c];b.getCommonAncestor().isReadOnly()&&a.splice(c,1);if(!b.collapsed){if(b.startContainer.isReadOnly())for(var d=
-b.startContainer,g;d&&!((g=d.type==CKEDITOR.NODE_ELEMENT)&&d.is("body")||!d.isReadOnly());)g&&"false"==d.getAttribute("contentEditable")&&b.setStartAfter(d),d=d.getParent();d=b.startContainer;g=b.endContainer;var e=b.startOffset,f=b.endOffset,h=b.clone();d&&d.type==CKEDITOR.NODE_TEXT&&(e>=d.getLength()?h.setStartAfter(d):h.setStartBefore(d));g&&g.type==CKEDITOR.NODE_TEXT&&(f?h.setEndAfter(g):h.setEndBefore(g));d=new CKEDITOR.dom.walker(h);d.evaluator=function(d){if(d.type==CKEDITOR.NODE_ELEMENT&&
-d.isReadOnly()){var g=b.clone();b.setEndBefore(d);b.collapsed&&a.splice(c--,1);d.getPosition(h.endContainer)&CKEDITOR.POSITION_CONTAINS||(g.setStartAfter(d),g.collapsed||a.splice(c+1,0,g));return!0}return!1};d.next()}}return a}var r="function"!=typeof window.getSelection,z=1,t=CKEDITOR.tools.repeat("​",7),y=new RegExp(t+"( )?","g"),u,w,B,A=CKEDITOR.dom.walker.invisible(1),C=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(),g;if(!d.readOnly)return(g=b.moveToClosestEditablePosition(c.selected,a))||(g=b.moveToClosestEditablePosition(c.selected,!a)),g&&d.getSelection().selectRanges([b]),d.fire("saveSnapshot"),c.selected.remove(),g||(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(){u=new CKEDITOR.dom.selection(d.getSelection());u.lock()}function c(){f.removeListener("mouseup",c);q.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){var c,d;c=(c=this.document.getActive())?"input"===c.getName()||"textarea"===c.getName():!1;c||(c=this.getSelection(1),(d=g(c))&&
-!d.equals(h)&&(c.selectElement(d),a.data.preventDefault()))}function g(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,h=d.editable(),m=e.getBody(),q=e.getDocumentElement(),v=h.isInline(),t,u;CKEDITOR.env.gecko&&h.attachListener(h,"focus",function(a){a.removeListener();0!==t&&(a=d.getSelection().getNative())&&
-a.isCollapsed&&a.anchorNode==h.$&&(a=d.createRange(),a.moveToElementEditStart(h),a.select())},null,null,-2);h.attachListener(h,CKEDITOR.env.webkit||CKEDITOR.env.gecko?"focusin":"focus",function(){if(t&&(CKEDITOR.env.webkit||CKEDITOR.env.gecko)){t=d._.previousActive&&d._.previousActive.equals(e.getActive());var a=null!=d._.previousScrollTop&&d._.previousScrollTop!=h.$.scrollTop;CKEDITOR.env.webkit&&t&&a&&(h.$.scrollTop=d._.previousScrollTop)}d.unlockSelection(t);t=0},null,null,-1);h.attachListener(h,
-"mousedown",function(){t=0});if(CKEDITOR.env.ie||CKEDITOR.env.gecko||v)r?h.attachListener(h,"beforedeactivate",a,null,null,-1):h.attachListener(d,"selectionCheck",a,null,null,-1),h.attachListener(h,CKEDITOR.env.webkit||CKEDITOR.env.gecko?"focusout":"blur",function(){var a=u&&(u.isFake||2>u.getRanges().length);CKEDITOR.env.gecko&&!v&&a||(d.lockSelection(u),t=1)},null,null,-1),h.attachListener(h,"mousedown",function(){t=0});if(CKEDITOR.env.ie&&!v){var w;h.attachListener(h,"mousedown",function(a){2==
-a.data.$.button&&((a=d.document.getSelection())&&a.getType()!=CKEDITOR.SELECTION_NONE||(w=d.window.getScrollPosition()))});h.attachListener(h,"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 x,z;q.on("mousedown",function(a){function c(a){a=a.data.$;if(x){var d=m.$.createTextRange();try{d.moveToPoint(a.clientX,a.clientY)}catch(b){}x.setEndPoint(0>
-z.compareEndPoints("StartToStart",d)?"EndToEnd":"StartToStart",d);x.select()}}function d(){q.removeListener("mousemove",c);f.removeListener("mouseup",d);q.removeListener("mouseup",d);x.select()}a=a.data;if(a.getTarget().is("html")&&a.$.y<q.$.clientHeight&&a.$.x<q.$.clientWidth){x=m.$.createTextRange();try{x.moveToPoint(a.$.clientX,a.$.clientY)}catch(b){}z=x.duplicate();q.on("mousemove",c);f.on("mouseup",d);q.on("mouseup",d)}})}if(7<CKEDITOR.env.version&&11>CKEDITOR.env.version)q.on("mousedown",function(a){a.data.getTarget().is("html")&&
-(f.on("mouseup",c),q.on("mouseup",c))})}}h.attachListener(h,"selectionchange",k,d);h.attachListener(h,"keyup",l,d);h.attachListener(h,"touchstart",l,d);h.attachListener(h,"touchend",l,d);CKEDITOR.env.ie&&h.attachListener(h,"keydown",b,d);h.attachListener(h,CKEDITOR.env.webkit||CKEDITOR.env.gecko?"focusin":"focus",function(){d.forceNextSelectionCheck();d.selectionChange(1)});if(v&&(CKEDITOR.env.webkit||CKEDITOR.env.gecko)){var y;h.attachListener(h,"mousedown",function(){y=1});h.attachListener(e.getDocumentElement(),
-"mouseup",function(){y&&l.call(d);y=0})}else h.attachListener(CKEDITOR.env.ie?h:e.getDocumentElement(),"mouseup",l,d);CKEDITOR.env.webkit&&h.attachListener(e,"keydown",function(a){switch(a.data.getKey()){case 13:case 33:case 34:case 35:case 36:case 37:case 39:case 8:case 45:case 46:h.hasFocus&&n(h)}},null,null,-1);h.attachListener(h,"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=
-C[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?k:l).call(this)};CKEDITOR.editor.prototype.getSelection=function(a){return!this._.savedSelection&&!this._.fakeSelection||a?(a=this.editable())&&"wysiwyg"==this.mode&&"recreating"!==this.status?new CKEDITOR.dom.selection(a):null:this._.savedSelection||this._.fakeSelection};CKEDITOR.editor.prototype.getSelectedRanges=function(a){var c=this.getSelection();
-return c&&c.getRanges(a)||[]};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:z++;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,g;if(a)if(a.getRangeAt)b=(g=a.rangeCount&&a.getRangeAt(0))&&new CKEDITOR.dom.node(g.commonAncestorContainer);else{try{g=a.createRange()}catch(e){}b=g&&CKEDITOR.dom.element.get(g.item&&g.item(0)||g.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 D={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:g,FILLING_CHAR_SEQUENCE:t});CKEDITOR.dom.selection.prototype={getNative:function(){return void 0!==
-this._.cache.nativeSel?this._.cache.nativeSel:this._.cache.nativeSel=r?this.document.$.selection:this.document.getWindow().$.getSelection()},getType:r?function(){var a=this._.cache;if(a.type)return a.type;var c=CKEDITOR.SELECTION_NONE;try{var 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(g){}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&&D[b.childNodes[d.startOffset].nodeName.toLowerCase()]&&(c=CKEDITOR.SELECTION_ELEMENT)}return a.type=c},getRanges:function(){var a=r?function(){function a(c){return(new CKEDITOR.dom.node(c)).getIndex()}var c=function(c,d){c=c.duplicate();c.collapse(d);var b=c.parentElement();if(!b.hasChildNodes())return{container:b,
-offset:0};for(var g=b.children,e,f,h=c.duplicate(),k=0,n=g.length-1,l=-1,m,q;k<=n;)if(l=Math.floor((k+n)/2),e=g[l],h.moveToElementText(e),m=h.compareEndPoints("StartToStart",c),0<m)n=l-1;else if(0>m)k=l+1;else return{container:b,offset:a(e)};if(-1==l||l==g.length-1&&0>m){h.moveToElementText(b);h.setEndPoint("StartToStart",c);h=h.text.replace(/(\r\n|\r)/g,"\n").length;g=b.childNodes;if(!h)return e=g[g.length-1],e.nodeType!=CKEDITOR.NODE_TEXT?{container:b,offset:g.length}:{container:e,offset:e.nodeValue.length};
-for(b=g.length;0<h&&0<b;)f=g[--b],f.nodeType==CKEDITOR.NODE_TEXT&&(q=f,h-=f.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(e)+(0<m?0:1)};for(;0<h;)try{f=e[0<m?"previousSibling":"nextSibling"],f.nodeType==CKEDITOR.NODE_TEXT&&(h-=f.nodeValue.length,q=f),e=f}catch(v){return{container:b,offset:a(e)}}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=[],g=0;g<d.length;g++){for(var e=
-d.item(g),f=e.parentNode,h=0,a=new CKEDITOR.dom.range(this.root);h<f.childNodes.length&&f.childNodes[h]!=e;h++);a.setStart(new CKEDITOR.dom.node(f),h);a.setEnd(new CKEDITOR.dom.node(f),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 g=d.getRangeAt(b);c=new CKEDITOR.dom.range(this.root);c.setStart(new CKEDITOR.dom.node(g.startContainer),g.startOffset);c.setEnd(new CKEDITOR.dom.node(g.endContainer),g.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?q(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,g=2;g&&!((d=a.getEnclosedNode())&&d.type==CKEDITOR.NODE_ELEMENT&&D[d.getName()]&&(b=d));g--)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=r?"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(),g=this.isFake;this.isLocked=0;this.reset();c&&(c=d||b[0]&&b[0].getCommonAncestor())&&c.getAscendant("body",1)&&((c=this.root.editor)&&c.plugins.tableselection&&c.plugins.tableselection.isSupportedEnvironment(c)&&h(b)?a.call(this,
-b):g?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=z++},selectElement:function(a){var c=new CKEDITOR.dom.range(this.root);
-c.setStartBefore(a);c.setEndAfter(a);this.selectRanges([c])},selectRanges:function(c){var b=this.root.editor,e=b&&b._.hiddenSelectionContainer;this.reset();if(e)for(var e=this.root,f,k=0;k<c.length;++k)f=c[k],f.endContainer.equals(e)&&(f.endOffset=Math.min(f.endOffset,e.getChildCount()));if(c.length)if(this.isLocked){var l=CKEDITOR.document.getActive();this.unlock();this.selectRanges(c);this.lock();l&&!l.equals(this.root)&&l.focus()}else{var m;a:{var q,v;if(1==c.length&&!(v=c[0]).collapsed&&(m=v.getEnclosedNode())&&
-m.type==CKEDITOR.NODE_ELEMENT&&(v=v.clone(),v.shrink(CKEDITOR.SHRINK_ELEMENT,!0),(q=v.getEnclosedNode())&&q.type==CKEDITOR.NODE_ELEMENT&&(m=q),"false"==m.getAttribute("contenteditable")))break a;m=void 0}if(m)this.fake(m);else if(b&&b.plugins.tableselection&&b.plugins.tableselection.isSupportedEnvironment(b)&&h(c)&&!u&&!c[0]._getTableElement({table:1}).hasAttribute("data-cke-tableselection-ignored"))a.call(this,c);else{if(r){q=CKEDITOR.dom.walker.whitespaces(!0);m=/\ufeff|\u00a0/;v={table:1,tbody:1,
-tr:1};1<c.length&&(b=c[c.length-1],c[0].setEnd(b.endContainer,b.endOffset));b=c[0];c=b.collapsed;var t,w,p;if((e=b.getEnclosedNode())&&e.type==CKEDITOR.NODE_ELEMENT&&e.getName()in D&&(!e.is("a")||!e.getText()))try{p=e.$.createControlRange();p.addElement(e.$);p.select();return}catch(x){}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),c=b.collapsed;p=b.createBookmark();
-v=p.startNode;c||(l=p.endNode);p=b.document.$.body.createTextRange();p.moveToElementText(v.$);p.moveStart("character",1);l?(m=b.document.$.body.createTextRange(),m.moveToElementText(l.$),p.setEndPoint("EndToEnd",m),p.moveEnd("character",-1)):(t=v.getNext(q),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();c?(t?(p.moveStart("character",-1),p.select(),b.document.$.selection.clear()):p.select(),b.moveToPosition(w,CKEDITOR.POSITION_BEFORE_START),w.remove()):(b.setEndBefore(l),l.remove(),p.select())}else{l=this.getNative();if(!l)return;this.removeAllRanges();for(p=0;p<c.length;p++){if(p<c.length-1&&(t=c[p],w=c[p+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);c.splice(p--,1);continue}b=c[p];w=this.document.$.createRange();b.collapsed&&CKEDITOR.env.webkit&&d(b)&&(m=g(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(z){if(0<=z.toString().indexOf("NS_ERROR_ILLEGAL_VALUE"))b.collapse(1),w.setEnd(b.endContainer.$,b.endOffset);else throw z;}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,g=new CKEDITOR.dom.range(this.root);g.setStartBefore(a);g.setEndAfter(a);b.ranges=new CKEDITOR.dom.rangeList(g);b.selectedElement=b.startElement=
-a;b.type=CKEDITOR.SELECTION_ELEMENT;b.selectedText=b.nativeSel=null;this.isFake=1;this.rev=z++;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 g=new CKEDITOR.dom.range(this.root);g.moveToBookmark(a[b]);c.push(g)}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.getType()!=CKEDITOR.SELECTION_NONE&&this.getRanges()[0].scrollIntoView()},removeAllRanges:function(){if(this.getType()!=CKEDITOR.SELECTION_NONE){var a=this.getNative();try{a&&a[r?"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 g=a.getAttribute("contentEditable");"false"==g?d=a:"true"==g&&(b=1)}return d}function h(a,c,d,b){return(a.getPosition(c)|b)==b&&(!d.childRule||d.childRule(a))}function f(c){var d=c.document;if(c.collapsed)d=z(this,d),c.insertNode(d),c.moveToPosition(d,CKEDITOR.POSITION_BEFORE_END);else{var g=this.element,e=this._.definition,k,n=e.ignoreReadonly,l=n||e.includeReadonly;null==l&&(l=c.root.getCustomData("cke_includeReadonly"));var m=
-CKEDITOR.dtd[g];m||(k=!0,m=CKEDITOR.dtd.span);c.enlarge(CKEDITOR.ENLARGE_INLINE,1);c.trim();var q=c.createBookmark(),v=q.startNode,t=q.endNode,r=v,u;if(!n){var w=c.getCommonAncestor(),n=b(v,w),w=b(t,w);n&&(r=n.getNextSourceNode(!0));w&&(t=w)}for(r.getPosition(t)==CKEDITOR.POSITION_FOLLOWING&&(r=0);r;){n=!1;if(r.equals(t))r=null,n=!0;else{var x=r.type==CKEDITOR.NODE_ELEMENT?r.getName():null,w=x&&"false"==r.getAttribute("contentEditable"),y=x&&-1!==CKEDITOR.tools.array.indexOf(CKEDITOR.style.unstylableElements,
-x),y=x&&(r.getAttribute("data-nostyle")||y);if(x&&r.data("cke-bookmark")||r.type===CKEDITOR.NODE_COMMENT){r=r.getNextSourceNode(!0);continue}if(w&&l&&CKEDITOR.dtd.$block[x])for(var B=r,C=a(B),A=void 0,D=C.length,K=0,B=D&&new CKEDITOR.dom.range(B.getDocument());K<D;++K){var A=C[K],ha=CKEDITOR.filter.instances[A.data("cke-filter")];if(ha?ha.check(this):1)B.selectNodeContents(A),f.call(this,B)}C=x?!m[x]||y?0:w&&!l?0:h(r,t,e,O):1;if(C)if(A=r.getParent(),C=e,D=g,K=k,!A||!(A.getDtd()||CKEDITOR.dtd.span)[D]&&
-!K||C.parentRule&&!C.parentRule(A))n=!0;else{if(u||x&&CKEDITOR.dtd.$removeEmpty[x]&&(r.getPosition(t)|O)!=O||(u=c.clone(),u.setStartBefore(r)),x=r.type,x==CKEDITOR.NODE_TEXT||w||x==CKEDITOR.NODE_ELEMENT&&!r.getChildCount()){for(var x=r,R;(n=!x.getNext(L))&&(R=x.getParent(),m[R.getName()])&&h(R,v,e,H);)x=R;u.setEndAfter(x)}}else n=!0;r=r.getNextSourceNode(y||w)}if(n&&u&&!u.collapsed){for(var n=z(this,d),w=n.hasAttributes(),y=u.getCommonAncestor(),x={},C={},A={},D={},ba,Y,ga;n&&y;){if(y.getName()==
-g){for(ba in e.attributes)!D[ba]&&(ga=y.getAttribute(Y))&&(n.getAttribute(ba)==ga?C[ba]=1:D[ba]=1);for(Y in e.styles)!A[Y]&&(ga=y.getStyle(Y))&&(n.getStyle(Y)==ga?x[Y]=1:A[Y]=1)}y=y.getParent()}for(ba in C)n.removeAttribute(ba);for(Y in x)n.removeStyle(Y);w&&!n.hasAttributes()&&(n=null);n?(u.extractContents().appendTo(n),u.insertNode(n),p.call(this,n),n.mergeSiblings(),CKEDITOR.env.ie||n.$.normalize()):(n=new CKEDITOR.dom.element("span"),u.extractContents().appendTo(n),u.insertNode(n),p.call(this,
-n),n.remove(!0));u=null}}c.moveToBookmark(q);c.shrink(CKEDITOR.SHRINK_TEXT);c.shrink(CKEDITOR.NODE_ELEMENT,!0)}}function e(a){function c(){for(var a=new CKEDITOR.dom.elementPath(b.getParent()),d=new CKEDITOR.dom.elementPath(l.getParent()),g=null,e=null,f=0;f<a.elements.length;f++){var h=a.elements[f];if(h==a.block||h==a.blockLimit)break;m.checkElementRemovable(h,!0)&&(g=h)}for(f=0;f<d.elements.length;f++){h=d.elements[f];if(h==d.block||h==d.blockLimit)break;m.checkElementRemovable(h,!0)&&(e=h)}e&&
-l.breakParent(e);g&&b.breakParent(g)}a.enlarge(CKEDITOR.ENLARGE_INLINE,1);var d=a.createBookmark(),b=d.startNode,g=this._.definition.alwaysRemoveElement;if(a.collapsed){for(var e=new CKEDITOR.dom.elementPath(b.getParent(),a.root),f,h=0,k;h<e.elements.length&&(k=e.elements[h])&&k!=e.block&&k!=e.blockLimit;h++)if(this.checkElementRemovable(k)){var n;!g&&a.collapsed&&(a.checkBoundaryOfElement(k,CKEDITOR.END)||(n=a.checkBoundaryOfElement(k,CKEDITOR.START)))?(f=k,f.match=n?"start":"end"):(k.mergeSiblings(),
-k.is(this.element)?x.call(this,k):q(k,u(this)[k.getName()]))}if(f){g=b;for(h=0;;h++){k=e.elements[h];if(k.equals(f))break;else if(k.match)continue;else k=k.clone();k.append(g);g=k}g["start"==f.match?"insertBefore":"insertAfter"](f)}}else{var l=d.endNode,m=this;c();for(e=b;!e.equals(l);)f=e.getNextSourceNode(),e.type==CKEDITOR.NODE_ELEMENT&&this.checkElementRemovable(e)&&(e.getName()==this.element?x.call(this,e):q(e,u(this)[e.getName()]),f.type==CKEDITOR.NODE_ELEMENT&&f.contains(b)&&(c(),f=b.getNext())),
-e=f}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 k(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 g in c.styles)c.styles.hasOwnProperty(g)&&a.removeStyle(g)}}function m(a){var c=a.createBookmark(!0),b=a.createIterator();b.enforceRealBlocks=!0;this._.enterMode&&(b.enlargeBr=this._.enterMode!=CKEDITOR.ENTER_BR);for(var g,e=a.document,f;g=b.getNextParagraph();)!g.isReadOnly()&&(b.activeFilter?b.activeFilter.check(this):1)&&(f=z(this,e,g),d(g,f));a.moveToBookmark(c)}function c(a){var c=a.createBookmark(1),b=a.createIterator();
-b.enforceRealBlocks=!0;b.enlargeBr=this._.enterMode!=CKEDITOR.ENTER_BR;for(var g,e;g=b.getNextParagraph();)this.checkElementRemovable(g)&&(g.is("pre")?((e=this._.enterMode==CKEDITOR.ENTER_BR?null:a.document.createElement(this._.enterMode==CKEDITOR.ENTER_P?"p":"div"))&&g.copyAttributes(e),d(g,e)):x.call(this,g));a.moveToBookmark(c)}function d(a,c){var d=!c;d&&(c=a.getDocument().createElement("div"),a.copyAttributes(c));var b=c&&c.is("pre"),e=a.is("pre"),f=!b&&e;if(b&&!e){e=c;(f=a.getBogus())&&f.remove();
-f=a.getHtml();f=n(f,/(?:^[ \t\n\r]+)|(?:[ \t\n\r]+$)/g,"");f=f.replace(/[ \t\r\n]*(<br[^>]*>)[ \t\r\n]*/gi,"$1");f=f.replace(/([ \t\n\r]+|&nbsp;)/g," ");f=f.replace(/<br\b[^>]*>/gi,"\n");if(CKEDITOR.env.ie){var h=a.getDocument().createElement("div");h.append(e);e.$.outerHTML="\x3cpre\x3e"+f+"\x3c/pre\x3e";e.copyAttributes(h.getFirst());e=h.getFirst().remove()}else e.setHtml(f);c=e}else f?c=v(d?[a.getHtml()]:g(a),c):a.moveChildren(c);c.replace(a);if(b){var d=c,k;(k=d.getPrevious(F))&&k.type==CKEDITOR.NODE_ELEMENT&&
-k.is("pre")&&(b=n(k.getHtml(),/\n$/,"")+"\n\n"+n(d.getHtml(),/^\n/,""),CKEDITOR.env.ie?d.$.outerHTML="\x3cpre\x3e"+b+"\x3c/pre\x3e":d.setHtml(b),k.remove())}else d&&r(c)}function g(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="",g="";a=a.replace(/(^<span[^>]+data-cke-bookmark.*?\/span>)|(<span[^>]+data-cke-bookmark.*?\/span>$)/gi,
-function(a,c,d){c&&(b=c);d&&(g=d);return""});return b+a.replace(c,d)+g}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 g=a[b],g=g.replace(/(\r\n|\r)/g,"\n"),g=n(g,/^[ \t]*\n/,""),g=n(g,/\n$/,""),g=n(g,/^[ \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)+" "}),g=g.replace(/\n/g,"\x3cbr\x3e"),g=g.replace(/[ \t]{2,}/g,function(a){return CKEDITOR.tools.repeat("\x26nbsp;",
-a.length-1)+" "});if(d){var e=c.clone();e.setHtml(g);d.append(e)}else c.setHtml(g)}return d||c}function x(a,c){var d=this._.definition,b=d.attributes,d=d.styles,g=u(this)[a.getName()],e=CKEDITOR.tools.isEmpty(b)&&CKEDITOR.tools.isEmpty(d),f;for(f in b)if("class"!=f&&!this._.definition.fullMatch||a.getAttribute(f)==w(f,b[f]))c&&"data-"==f.slice(0,5)||(e=a.hasAttribute(f),a.removeAttribute(f));for(var h in d)this._.definition.fullMatch&&a.getStyle(h)!=w(h,d[h],!0)||(e=e||!!a.getStyle(h),a.removeStyle(h));
-q(a,g,C[a.getName()]);e&&(this._.definition.alwaysRemoveElement?r(a,1):!CKEDITOR.dtd.$block[a.getName()]||this._.enterMode==CKEDITOR.ENTER_BR&&!a.hasAttributes()?r(a):a.renameNode(this._.enterMode==CKEDITOR.ENTER_P?"p":"div"))}function p(a){for(var c=u(this),d=a.getElementsByTag(this.element),b,g=d.count();0<=--g;)b=d.getItem(g),b.isReadOnly()||x.call(this,b,!0);for(var e in c)if(e!=this.element)for(d=a.getElementsByTag(e),g=d.count()-1;0<=g;g--)b=d.getItem(g),b.isReadOnly()||q(b,c[e])}function q(a,
-c,d){if(c=c&&c.attributes)for(var b=0;b<c.length;b++){var g=c[b][0],e;if(e=a.getAttribute(g)){var f=c[b][1];(null===f||f.test&&f.test(e)||"string"==typeof f&&e==f)&&a.removeAttribute(g)}}d||r(a)}function r(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 z(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 g in b)a.setAttribute(g,
-b[g]);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(G,function(a,d){return c[d]})}function u(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 g=d[b],e,f;"string"==typeof g?e=g.toLowerCase():(e=g.element?g.element.toLowerCase():a.element,f=g.attributes);g=c[e]||(c[e]={});if(f){var g=g.attributes=
-g.attributes||[],h;for(h in f)g.push([h.toLowerCase(),f[h]])}}}return c}function w(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 A(a,c,d){var b=a.getRanges();c=c?this.removeFromRange:this.applyToRange;for(var g,e=b.createIterator();g=e.getNextRange();)c.call(this,g,d);a.selectRanges(b)}var C={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},D={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},E=/\s*(?:;\s*|$)/,G=/#\((.+?)\)/g,L=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||(C[d]?CKEDITOR.STYLE_BLOCK:D[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?f:this.type==CKEDITOR.STYLE_BLOCK?m:this.type==CKEDITOR.STYLE_OBJECT?k:null;return this.applyToRange(a)},removeFromRange:function(a){this.removeFromRange=this.type==CKEDITOR.STYLE_INLINE?e:this.type==CKEDITOR.STYLE_BLOCK?
-c: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,g;b<d.length;b++)if(g=d[b],this.type!=CKEDITOR.STYLE_INLINE||g!=a.block&&g!=a.blockLimit){if(this.type==CKEDITOR.STYLE_OBJECT){var e=g.getName();if(!("string"==typeof this.element?
-e==this.element:e in this.element))continue}if(this.checkElementRemovable(g,!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={},g=0,e=d.attributes;if(e)for(var f in e)g++,b[f]=e[f];if(f=CKEDITOR.style.getStyleText(d))b.style||g++,b.style=f;b._length=g;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=u(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 g=c[d][1];if(null===g)return!0;if("string"==typeof g){if(b==g)return!0}else if(g.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],g=c.attributes;if(g)for(var e in g)d.push(" ",e,'\x3d"',g[e],'"');(g=CKEDITOR.style.getStyleText(c))&&d.push(' style\x3d"',g,'"');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(E,";"));for(var g in c){var e=c[g],f=(g+":"+e).replace(E,";");"inherit"==e?b+=f:d+=f}d.length&&(d=CKEDITOR.tools.normalizeCssText(d,!0));return a._ST=d+b};CKEDITOR.style.customHandlers={};CKEDITOR.style.unstylableElements=[];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 O=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,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,f){CKEDITOR.stylesSet.addExternal(b,h,"");CKEDITOR.stylesSet.load(b,f)},CKEDITOR.tools.extend(CKEDITOR.editor.prototype,{attachStyleStateChange:function(b,h){var f=this._.styleStateChangeCallbacks;f||(f=this._.styleStateChangeCallbacks=[],this.on("selectionChange",
-function(b){for(var a=0;a<f.length;a++){var h=f[a],l=h.style.checkActive(b.data.path,this)?CKEDITOR.TRISTATE_ON:CKEDITOR.TRISTATE_OFF;h.fn.call(this,l)}}));f.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,f=h.config.stylesCombo_stylesSet||h.config.stylesSet;if(!1===f)b(null);else if(f instanceof Array)h._.stylesDefinitions=f,b(f);else{f||(f="default");
-var f=f.split(":"),e=f[0];CKEDITOR.stylesSet.addExternal(e,f[1]?f.slice(1).join(":"):CKEDITOR.getUrl("styles.js"),"");CKEDITOR.stylesSet.load(e,function(a){h._.stylesDefinitions=a[e];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,k){b.once("selectionCheck",function(b){if(!h){var e=b.data.getRanges()[0];k.equals(e)?b.cancel():a.equals(e)&&(f=!0)}},null,null,-1)}var h=!0,f=!1;CKEDITOR.dom.selection.setupEditorOptimization=function(b){b.on("selectionCheck",function(a){a.data&&!f&&a.data.optimizeInElementEnds();f=!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 e=this.getRanges()[0],a=this.root.editor,f;if(this.root.editor._.shiftPressed||this.isFake||e.isCollapsed||e.startContainer.equals(e.endContainer))f=!1;else if(0===e.endOffset)f=!0;else{f=e.startContainer.type===CKEDITOR.NODE_TEXT;var l=e.endContainer.type===
-CKEDITOR.NODE_TEXT,m=f?e.startContainer.getLength():e.startContainer.getChildCount();f=e.startOffset===m||f^l}f&&(f=e.clone(),e.shrink(CKEDITOR.SHRINK_TEXT,!1,{skipBogus:!CKEDITOR.env.webkit}),h=!1,b(a,e,f),e.select(),h=!0)}}(),function(){function b(a,b){if(f(a))a=Math.round(b*(parseFloat(a)/100));else if("string"===typeof a&&a.match(/^\d+$/gm)||"string"===typeof a&&a.match(/^\d+(?:deg)?$/gm))a=parseInt(a,10);return a}function h(a,b){f(a)?a=b*(parseFloat(a)/100):"string"===typeof a&&a.match(/^\d?\.\d+/gm)&&
-(a=parseFloat(a));return a}function f(a){return"string"===typeof a&&a.match(/^((\d*\.\d+)|(\d+))%{1}$/gm)}function e(a,b,e){return!isNaN(a)&&a>=b&&a<=e}function a(a){a=a.toString(16);return 1==a.length?"0"+a:a}CKEDITOR.tools.color=CKEDITOR.tools.createClass({$:function(a,b){this._.initialColorCode=a;this._.defaultValue=b;this._.parseInput(a)},proto:{getHex:function(){if(!this._.isValidColor)return this._.defaultValue;var a=this._.blendAlphaColor(this._.red,this._.green,this._.blue,this._.alpha);return this._.formatHexString(a[0],
-a[1],a[2])},getHexWithAlpha:function(){if(!this._.isValidColor)return this._.defaultValue;var a=Math.round(this._.alpha*CKEDITOR.tools.color.MAX_RGB_CHANNEL_VALUE);return this._.formatHexString(this._.red,this._.green,this._.blue,a)},getRgb:function(){if(!this._.isValidColor)return this._.defaultValue;var a=this._.blendAlphaColor(this._.red,this._.green,this._.blue,this._.alpha);return this._.formatRgbString("rgb",a[0],a[1],a[2])},getRgba:function(){return this._.isValidColor?this._.formatRgbString("rgba",
-this._.red,this._.green,this._.blue,this._.alpha):this._.defaultValue},getHsl:function(){var a=0===this._.alpha||1===this._.alpha;if(!this._.isValidColor)return this._.defaultValue;this._.type===CKEDITOR.tools.color.TYPE_HSL&&a?a=[this._.hue,this._.saturation,this._.lightness]:(a=this._.blendAlphaColor(this._.red,this._.green,this._.blue,this._.alpha),a=this._.rgbToHsl(a[0],a[1],a[2]));return this._.formatHslString("hsl",a[0],a[1],a[2])},getHsla:function(){var a;if(!this._.isValidColor)return this._.defaultValue;
-a=this._.type===CKEDITOR.tools.color.TYPE_HSL?[this._.hue,this._.saturation,this._.lightness]:this._.rgbToHsl(this._.red,this._.green,this._.blue);return this._.formatHslString("hsla",a[0],a[1],a[2],this._.alpha)},getInitialValue:function(){return this._.initialColorCode}},_:{initialColorCode:"",isValidColor:!0,type:0,hue:0,saturation:0,lightness:0,red:0,green:0,blue:0,alpha:1,blendAlphaColor:function(a,b,e,c){return CKEDITOR.tools.array.map([a,b,e],function(a){return Math.round(CKEDITOR.tools.color.MAX_RGB_CHANNEL_VALUE-
-c*(CKEDITOR.tools.color.MAX_RGB_CHANNEL_VALUE-a))})},formatHexString:function(b,e,f,c){b="#"+a(b)+a(e)+a(f);void 0!==c&&(b+=a(c));return b.toUpperCase()},formatRgbString:function(a,b,e,c,d){b=[b,e,c];void 0!==d&&b.push(d);return a+"("+b.join(",")+")"},formatHslString:function(a,b,e,c,d){return a+"("+b+","+e+"%,"+c+"%"+(void 0!==d?","+d:"")+")"},parseInput:function(a){if("string"!==typeof a)this._.isValidColor=!1;else{a=CKEDITOR.tools.trim(a);var b=this._.matchStringToNamedColor(a);b&&(a=b);var b=
-this._.extractColorChannelsFromHex(a),e=this._.extractColorChannelsFromRgba(a);a=this._.extractColorChannelsFromHsla(a);(a=b||e||a)?(this._.type=a.type,this._.red=a.red,this._.green=a.green,this._.blue=a.blue,this._.alpha=a.alpha,a.type===CKEDITOR.tools.color.TYPE_HSL&&(this._.hue=a.hue,this._.saturation=a.saturation,this._.lightness=a.lightness)):this._.isValidColor=!1}},matchStringToNamedColor:function(a){return CKEDITOR.tools.color.namedColors[a.toLowerCase()]||null},extractColorChannelsFromHex:function(a){-1===
-a.indexOf("#")&&(a="#"+a);a.match(CKEDITOR.tools.color.hex3CharsRegExp)&&(a=this._.hex3ToHex6(a));a.match(CKEDITOR.tools.color.hex4CharsRegExp)&&(a=this._.hex4ToHex8(a));if(!a.match(CKEDITOR.tools.color.hex6CharsRegExp)&&!a.match(CKEDITOR.tools.color.hex8CharsRegExp))return null;a=a.split("");var b=1;a[7]&&a[8]&&(b=parseInt(a[7]+a[8],16),b/=CKEDITOR.tools.color.MAX_RGB_CHANNEL_VALUE,b=Number(b.toFixed(1)));return{type:CKEDITOR.tools.color.TYPE_RGB,red:parseInt(a[1]+a[2],16),green:parseInt(a[3]+a[4],
-16),blue:parseInt(a[5]+a[6],16),alpha:b}},extractColorChannelsFromRgba:function(a){var e=this._.extractColorChannelsByPattern(a,CKEDITOR.tools.color.rgbRegExp);if(!e||3>e.length||4<e.length)return null;var f=4===e.length;a=b(e[0],CKEDITOR.tools.color.MAX_RGB_CHANNEL_VALUE);var c=b(e[1],CKEDITOR.tools.color.MAX_RGB_CHANNEL_VALUE),d=b(e[2],CKEDITOR.tools.color.MAX_RGB_CHANNEL_VALUE),g=1;f&&(g=h(e[3],CKEDITOR.tools.color.MAX_ALPHA_CHANNEL_VALUE));e={type:CKEDITOR.tools.color.TYPE_RGB,red:a,green:c,blue:d,
-alpha:g};return this._.areColorChannelsValid(a,c,d,g)?e:null},extractColorChannelsFromHsla:function(a){var e=this._.extractColorChannelsByPattern(a,CKEDITOR.tools.color.hslRegExp);if(!e||3>e.length||4<e.length)return null;var f=4===e.length,c=b(e[0],CKEDITOR.tools.color.MAX_HUE_CHANNEL_VALUE),d=h(e[1],CKEDITOR.tools.color.MAX_SATURATION_LIGHTNESS_CHANNEL_VALUE),g=h(e[2],CKEDITOR.tools.color.MAX_SATURATION_LIGHTNESS_CHANNEL_VALUE),n=1;a=this._.hslToRgb(c,d,g);f&&(n=h(e[3],CKEDITOR.tools.color.MAX_ALPHA_CHANNEL_VALUE));
-a.push(n);e={type:CKEDITOR.tools.color.TYPE_HSL,red:a[0],green:a[1],blue:a[2],alpha:a[3],hue:c,saturation:Math.round(100*d),lightness:Math.round(100*g)};return this._.areColorChannelsValid(a[0],a[1],a[2],a[3])?e:null},hex3ToHex6:function(a){a=a.split("");return"#"+a[1]+a[1]+a[2]+a[2]+a[3]+a[3]},hex4ToHex8:function(a){return this._.hex3ToHex6(a.substr(0,4))+CKEDITOR.tools.repeat(a[4],2)},extractColorChannelsByPattern:function(a,b){var e=a.match(b);if(!e)return null;var c=-1===e[1].indexOf(",")?/\s/:
-",",c=e[1].split(c),c=CKEDITOR.tools.array.reduce(c,function(a,c){var b=CKEDITOR.tools.trim(c);return 0===b.length?a:a.concat([b])},[]);e[2]&&(e=CKEDITOR.tools.trim(e[2].replace(/[\/,]/,"")),c.push(e));return c},areColorChannelsValid:function(a,b,f,c){return e(a,0,CKEDITOR.tools.color.MAX_RGB_CHANNEL_VALUE)&&e(b,0,CKEDITOR.tools.color.MAX_RGB_CHANNEL_VALUE)&&e(f,0,CKEDITOR.tools.color.MAX_RGB_CHANNEL_VALUE)&&e(c,0,CKEDITOR.tools.color.MAX_ALPHA_CHANNEL_VALUE)},hslToRgb:function(a,b,e){var c=function(c){var g=
-(c+a/30)%12;c=b*Math.min(e,1-e);g=Math.min(g-3,9-g,1);g=Math.max(-1,g);return Math.round((e-c*g)*CKEDITOR.tools.color.MAX_RGB_CHANNEL_VALUE)};return[c(0),c(8),c(4)]},rgbToHsl:function(a,b,e){a/=CKEDITOR.tools.color.MAX_RGB_CHANNEL_VALUE;b/=CKEDITOR.tools.color.MAX_RGB_CHANNEL_VALUE;var c=e/CKEDITOR.tools.color.MAX_RGB_CHANNEL_VALUE,d=Math.max(a,b,c),g=Math.min(a,b,c);e=d-g;var f=0;switch(d){case a:f=(b-c)/e%6;break;case b:f=(c-a)/e+2;break;case c:f=(a-b)/e+4}a=0===e?0:60*f;b=(d+g)/2;d=0;1!==b&&0!==
-b&&(d=e/(1-Math.abs(2*b-1)));a=Math.round(a);d=Math.round(100*d);b=Math.round(100*b);return[a,d,b]}},statics:{TYPE_RGB:1,TYPE_HSL:2,MAX_RGB_CHANNEL_VALUE:255,MAX_ALPHA_CHANNEL_VALUE:1,MAX_HUE_CHANNEL_VALUE:360,MAX_SATURATION_LIGHTNESS_CHANNEL_VALUE:1,hex3CharsRegExp:/#([0-9a-f]{3}$)/gim,hex4CharsRegExp:/#([0-9a-f]{4}$)/gim,hex6CharsRegExp:/#([0-9a-f]{6}$)/gim,hex8CharsRegExp:/#([0-9a-f]{8}$)/gim,rgbRegExp:/rgba?\(([.,\d\s%]*)(\s*\/\s*[\d.%]+)?\s*\)/i,hslRegExp:/hsla?\((\s*(?:[.\d]+(?:deg)?)(?:\s*,?\s*[.\d]+%){2})((?:(?:\s*\/\s*)|(?:\s*,\s*))[\d.]+%?)?\s*\)/i,
-namedColors:{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",
-lightseagreen:"#20B2AA",lightskyblue:"#87CEFA",lightslategray:"#778899",lightslategrey:"#778899",lightsteelblue:"#B0C4DE",lightyellow:"#FFFFE0",lime:"#00FF00",limegreen:"#32CD32",linen:"#FAF0E6",magenta:"#FF00FF",maroon:"#800000",mediumaquamarine:"#66CDAA",mediumblue:"#0000CD",mediumorchid:"#BA55D3",mediumpurple:"#9370DB",mediumseagreen:"#3CB371",mediumslateblue:"#7B68EE",mediumspringgreen:"#00FA9A",mediumturquoise:"#48D1CC",mediumvioletred:"#C71585",midnightblue:"#191970",mintcream:"#F5FFFA",mistyrose:"#FFE4E1",
-moccasin:"#FFE4B5",navajowhite:"#FFDEAD",navy:"#000080",oldlace:"#FDF5E6",olive:"#808000",olivedrab:"#6B8E23",orange:"#FFA500",orangered:"#FF4500",orchid:"#DA70D6",palegoldenrod:"#EEE8AA",palegreen:"#98FB98",paleturquoise:"#AFEEEE",palevioletred:"#DB7093",papayawhip:"#FFEFD5",peachpuff:"#FFDAB9",peru:"#CD853F",pink:"#FFC0CB",plum:"#DDA0DD",powderblue:"#B0E0E6",purple:"#800080",rebeccapurple:"#663399",red:"#FF0000",rosybrown:"#BC8F8F",royalblue:"#4169E1",saddlebrown:"#8B4513",salmon:"#FA8072",sandybrown:"#F4A460",
-seagreen:"#2E8B57",seashell:"#FFF5EE",sienna:"#A0522D",silver:"#C0C0C0",skyblue:"#87CEEB",slateblue:"#6A5ACD",slategray:"#708090",slategrey:"#708090",snow:"#FFFAFA",springgreen:"#00FF7F",steelblue:"#4682B4",tan:"#D2B48C",teal:"#008080",thistle:"#D8BFD8",tomato:"#FF6347",turquoise:"#40E0D0",violet:"#EE82EE",windowtext:"windowtext",wheat:"#F5DEB3",white:"#FFFFFF",whitesmoke:"#F5F5F5",yellow:"#FFFF00",yellowgreen:"#9ACD32"}}});CKEDITOR.tools.style.parse._colors=CKEDITOR.tools.color.namedColors}(),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={},f;for(f in CKEDITOR.dtd.$blockLimit)f in CKEDITOR.dtd.$list||(b[f]=1);for(f in CKEDITOR.dtd.$block)f in CKEDITOR.dtd.$blockLimit||f in CKEDITOR.dtd.$empty||
-(h[f]=1);CKEDITOR.dom.elementPath=function(e,a){var f=null,l=null,m=[],c=e,d;a=a||e.getDocument().getBody();c||(c=a);do if(c.type==CKEDITOR.NODE_ELEMENT){m.push(c);if(!this.lastElement&&(this.lastElement=c,c.is(CKEDITOR.dtd.$object)||"false"==c.getAttribute("contenteditable")))continue;if(c.equals(a))break;if(!l&&(d=c.getName(),"true"==c.getAttribute("contenteditable")?l=c:!f&&h[d]&&(f=c),b[d])){if(d=!f&&"div"==d){a:{d=c.getChildren();for(var g=0,n=d.count();g<n;g++){var v=d.getItem(g);if(v.type==
-CKEDITOR.NODE_ELEMENT&&CKEDITOR.dtd.$block[v.getName()]){d=!0;break a}}d=!1}d=!d}d?f=c:l=c}}while(c=c.getParent());l||(l=a);this.block=f;this.blockLimit=l;this.root=a;this.elements=m}}(),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 f=0;f<h.length;f++)if(!h[f].equals(b[f]))return!1;return!0},contains:function(b,h,f){var e=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 k=this.elements,l=k.length;h&&(f?e+=1:--l);f&&(k=Array.prototype.slice.call(k,0),k.reverse());for(;e<l;e++)if(a(k[e]))return k[e];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,f=h.childNodes.length,e=this.getLength(),a=this.getDocument(),k=new CKEDITOR.dom.text(this.$.splitText(b),a);h.childNodes.length==f&&(b>=e?(k=a.createText(""),k.insertAfter(this)):(b=a.createText(""),b.insertAfter(k),b.remove()));return k},substring:function(b,h){return"number"!=typeof h?this.$.nodeValue.substr(b):this.$.nodeValue.substring(b,h)}}),function(){function b(b,
-e,a){var h=b.serializable,l=e[a?"endContainer":"startContainer"],m=a?"endOffset":"startOffset",c=h?e.document.getById(b.startNode):b.startNode;b=h?e.document.getById(b.endNode):b.endNode;l.equals(c.getPrevious())?(e.startOffset=e.startOffset-l.getLength()-b.getPrevious().getLength(),l=b.getNext()):l.equals(b.getPrevious())&&(e.startOffset-=l.getLength(),l=b.getNext());l.equals(c.getParent())&&e[m]++;l.equals(b.getParent())&&e[m]++;e[a?"endContainer":"startContainer"]=l;return e}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,e=CKEDITOR.dom.walker.bookmark(),a=[],h;return{getNextRange:function(l){h=void 0===h?0:h+1;var m=b[h];if(m&&1<b.length){if(!h)for(var c=b.length-1;0<=c;c--)a.unshift(b[c].createBookmark(!0));if(l)for(var d=0;b[h+d+1];){var g=m.document;l=0;c=g.getById(a[d].endNode);for(g=g.getById(a[d+1].startNode);;){c=c.getNextSourceNode(!1);
-if(g.equals(c))l=1;else if(e(c)||c.type==CKEDITOR.NODE_ELEMENT&&c.isBlockBoundary())continue;break}if(!l)break;d++}for(m.moveToBookmark(a.shift());d--;)c=b[++h],c.moveToBookmark(a.shift()),m.setEnd(c.endContainer,c.endOffset)}return m}}},createBookmarks:function(f){for(var e=[],a,h=0;h<this.length;h++){e.push(a=this[h].createBookmark(f,!0));for(var l=h+1;l<this.length;l++)this[l]=b(a,this[l]),this[l]=b(a,this[l],!0)}return e},createBookmarks2:function(b){for(var e=[],a=0;a<this.length;a++)e.push(this[a].createBookmark2(b));
-return e},moveToBookmarks:function(b){for(var e=0;e<this.length;e++)this[e].moveToBookmark(b[e])}}}(),function(){function b(){return CKEDITOR.getUrl(CKEDITOR.skinName.split(",")[1]||"skins/"+CKEDITOR.skinName.split(",")[0]+"/")}function h(a){var c=CKEDITOR.skin["ua_"+a],e=CKEDITOR.env;if(c)for(var c=c.split(",").sort(function(a,c){return a>c?-1:1}),f=0,h;f<c.length;f++)if(h=c[f],e.ie&&(h.replace(/^ie/,"")==e.version||e.quirks&&"iequirks"==h)&&(h="ie"),e[h]){a+="_"+c[f];break}return CKEDITOR.getUrl(b()+
-a+".css")}function f(a,c){k[a]||(CKEDITOR.document.appendStyleSheet(h(a)),k[a]=1);c&&c()}function e(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,b){var e,f,h;if(CKEDITOR.env.webkit)for(c=c.split("}").slice(0,-1),f=0;f<c.length;f++)c[f]=c[f].split("{");for(var k=0;k<a.length;k++)if(CKEDITOR.env.webkit)for(f=0;f<c.length;f++){h=c[f][1];for(e=0;e<b.length;e++)h=h.replace(b[e][0],b[e][1]);a[k].$.sheet.addRule(c[f][0],
-h)}else{h=c;for(e=0;e<b.length;e++)h=h.replace(b[e][0],b[e][1]);CKEDITOR.env.ie&&11>CKEDITOR.env.version?a[k].$.styleSheet.cssText+=h:a[k].$.innerHTML+=h}}var k={};CKEDITOR.skin={path:b,loadPart:function(a,c){CKEDITOR.skin.name!=CKEDITOR.skinName.split(",")[0]?CKEDITOR.scriptLoader.load(CKEDITOR.getUrl(b()+"skin.js"),function(){f(a,c)}):f(a,c)},getPath:function(a){return CKEDITOR.getUrl(h(a))},icons:{},addIcon:function(a,c,b,e){a=a.toLowerCase();this.icons[a]||(this.icons[a]={path:c,offset:b||0,bgsize:e||
-"16px"})},getIconStyle:function(a,c,b,e,f){var h;a&&(a=a.toLowerCase(),c&&(h=this.icons[a+"-rtl"]),h||(h=this.icons[a]));a=b||h&&h.path||"";e=e||h&&h.offset;f=f||h&&h.bgsize||"16px";a&&(a=a.replace(/'/g,"\\'"));return a&&"background-image:url('"+CKEDITOR.getUrl(a)+"');background-position:0 "+e+"px;background-size:"+f+";"}};CKEDITOR.tools.extend(CKEDITOR.editor.prototype,{getUiColor:function(){return this.uiColor},setUiColor:function(b){var g=e(CKEDITOR.document);return(this.setUiColor=function(b){this.uiColor=
-b;var d=CKEDITOR.skin.chameleon,e="",f="";"function"==typeof d&&(e=d(this,"editor"),f=d(this,"panel"));b=[[c,b]];a([g],e,b);a(m,f,b)}).call(this,b)}});var l="cke_ui_color",m=[],c=/\$color/g;CKEDITOR.on("instanceLoaded",function(b){if(!CKEDITOR.env.ie||!CKEDITOR.env.quirks){var g=b.editor;b=function(b){b=(b.data[0]||b.data).element.getElementsByTag("iframe").getItem(0).getFrameDocument();if(!b.getById("cke_ui_color")){var d=e(b);m.push(d);g.on("destroy",function(){m=CKEDITOR.tools.array.filter(m,function(a){return d!==
-a})});(b=g.getUiColor())&&a([d],CKEDITOR.skin.chameleon(g,"panel"),[[c,b]])}};g.on("panelShow",b);g.on("menuShow",b);g.config.uiColor&&g.setUiColor(g.config.uiColor)}})}(),function(){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"),f=b.getComputedStyle("border-right-color");
-CKEDITOR.env.hc=!(!h||h!=f)}catch(e){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,e){for(var a=b.match(/[^#]./g),h=0;3>h;h++){var l=h,m;m=parseInt(a[h],16);m=("0"+(0>e?0|m*(1+e):0|m+(255-m)*e).toString(16)).slice(-2);a[l]=m}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(f,e){var a=b(f.uiColor,.4),a={id:"."+f.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[e].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._],g=1;g<arguments.length;g++)b.push(arguments[g]);b.push(!0);CKEDITOR.tools.extend.apply(CKEDITOR.tools,b);return this._},h={build:function(a,b,g){return new CKEDITOR.ui.dialog.textInput(a,b,g)}},f={build:function(a,b,g){return new CKEDITOR.ui.dialog[b.type](a,b,g)}},e={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),k=/^on([A-Z]\w+)/,l=function(a){for(var b in a)(k.test(b)||"title"==b||"type"==b)&&delete a[b];return a},m=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,d,g,e){if(!(4>arguments.length)){var f=b.call(this,d);f.labelId=CKEDITOR.tools.getNextId()+
-"_label";this._.children=[];var h={role:d.role||"presentation"};d.includeLabel&&(h["aria-labelledby"]=f.labelId);CKEDITOR.ui.dialog.uiElement.call(this,a,d,g,"div",null,h,function(){var b=[],g=d.required?" cke_required":"";"horizontal"!=d.labelLayout?b.push('\x3clabel class\x3d"cke_dialog_ui_labeled_label'+g+'" ',' id\x3d"'+f.labelId+'"',f.inputId?' for\x3d"'+f.inputId+'"':"",(d.labelStyle?' style\x3d"'+d.labelStyle+'"':"")+"\x3e",d.required?d.label+'\x3cspan class\x3d"cke_dialog_ui_labeled_required" aria-hidden\x3d"true"\x3e*\x3c/span\x3e':
-d.label,"\x3c/label\x3e",'\x3cdiv class\x3d"cke_dialog_ui_labeled_content"',d.controlStyle?' style\x3d"'+d.controlStyle+'"':"",' role\x3d"presentation"\x3e',e.call(this,a,d),"\x3c/div\x3e"):(g={type:"hbox",widths:d.widths,padding:0,children:[{type:"html",html:'\x3clabel class\x3d"cke_dialog_ui_labeled_label'+g+'" id\x3d"'+f.labelId+'" for\x3d"'+f.inputId+'"'+(d.labelStyle?' style\x3d"'+d.labelStyle+'"':"")+"\x3e"+CKEDITOR.tools.htmlEncode(d.label)+"\x3c/label\x3e"},{type:"html",html:'\x3cspan class\x3d"cke_dialog_ui_labeled_content"'+
-(d.controlStyle?' style\x3d"'+d.controlStyle+'"':"")+"\x3e"+e.call(this,a,d)+"\x3c/span\x3e"}]},CKEDITOR.dialog._.uiElementBuilders.hbox.build(a,g,b));return b.join("")})}},textInput:function(a,d,g){if(!(3>arguments.length)){b.call(this,d);var e=this._.inputId=CKEDITOR.tools.getNextId()+"_textInput",f={"class":"cke_dialog_ui_input_"+d.type,id:e,type:d.type};d.validate&&(this.validate=d.validate);d.maxLength&&(f.maxlength=d.maxLength);d.size&&(f.size=d.size);d.inputStyle&&(f.style=d.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(b){13==b.data.getKeystroke()&&k&&(a.getButton("ok")&&setTimeout(function(){a.getButton("ok").click()},0),k=!1);h.bidi&&m.call(h,b)},null,null,1E3)});CKEDITOR.ui.dialog.labeledElement.call(this,a,d,g,function(){var a=['\x3cdiv class\x3d"cke_dialog_ui_input_',d.type,'" role\x3d"presentation"'];d.width&&a.push('style\x3d"width:'+d.width+'" ');a.push("\x3e\x3cinput ");
-f["aria-labelledby"]=this._.labelId;this._.required&&(f["aria-required"]=this._.required);for(var c in f)a.push(c+'\x3d"'+f[c]+'" ');a.push(" /\x3e\x3c/div\x3e");return a.join("")})}},textarea:function(a,d,g){if(!(3>arguments.length)){b.call(this,d);var e=this,f=this._.inputId=CKEDITOR.tools.getNextId()+"_textarea",h={};d.validate&&(this.validate=d.validate);h.rows=d.rows||5;h.cols=d.cols||20;h["class"]="cke_dialog_ui_input_textarea "+(d["class"]||"");"undefined"!=typeof d.inputStyle&&(h.style=d.inputStyle);
-d.dir&&(h.dir=d.dir);if(e.bidi)a.on("load",function(){e.getInputElement().on("keyup",m)},e);CKEDITOR.ui.dialog.labeledElement.call(this,a,d,g,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"',f,'" '],c;for(c in h)a.push(c+'\x3d"'+CKEDITOR.tools.htmlEncode(h[c])+'" ');a.push("\x3e",CKEDITOR.tools.htmlEncode(e._["default"]),"\x3c/textarea\x3e\x3c/div\x3e");
-return a.join("")})}},checkbox:function(a,d,g){if(!(3>arguments.length)){var e=b.call(this,d,{"default":!!d["default"]});d.validate&&(this.validate=d.validate);CKEDITOR.ui.dialog.uiElement.call(this,a,d,g,"span",null,null,function(){var b=CKEDITOR.tools.extend({},d,{id:d.id?d.id+"_checkbox":CKEDITOR.tools.getNextId()+"_checkbox"},!0),g=[],f=CKEDITOR.tools.getNextId()+"_label",h={"class":"cke_dialog_ui_checkbox_input",type:"checkbox","aria-labelledby":f};l(b);d["default"]&&(h.checked="checked");"undefined"!=
-typeof b.inputStyle&&(b.style=b.inputStyle);e.checkbox=new CKEDITOR.ui.dialog.uiElement(a,b,g,"input",null,h);g.push(' \x3clabel id\x3d"',f,'" for\x3d"',h.id,'"'+(d.labelStyle?' style\x3d"'+d.labelStyle+'"':"")+"\x3e",CKEDITOR.tools.htmlEncode(d.label),"\x3c/label\x3e");return g.join("")})}},radio:function(a,d,g){if(!(3>arguments.length)){b.call(this,d);this._["default"]||(this._["default"]=this._.initValue=d.items[0][1]);d.validate&&(this.validate=d.validate);var e=[],f=this;d.role="radiogroup";
-d.includeLabel=!0;CKEDITOR.ui.dialog.labeledElement.call(this,a,d,g,function(){for(var b=[],g=[],h=(d.id?d.id:CKEDITOR.tools.getNextId())+"_radio",k=0;k<d.items.length;k++){var m=d.items[k],t=void 0!==m[2]?m[2]:m[0],y=void 0!==m[1]?m[1]:m[0],u=CKEDITOR.tools.getNextId()+"_radio_input",w=u+"_label",u=CKEDITOR.tools.extend({},d,{id:u,title:null,type:null},!0),t=CKEDITOR.tools.extend({},u,{title:t},!0),B={type:"radio","class":"cke_dialog_ui_radio_input",name:h,value:y,"aria-labelledby":w},A=[];f._["default"]==
-y&&(B.checked="checked");l(u);l(t);"undefined"!=typeof u.inputStyle&&(u.style=u.inputStyle);u.keyboardFocusable=!0;e.push(new CKEDITOR.ui.dialog.uiElement(a,u,A,"input",null,B));A.push(" ");new CKEDITOR.ui.dialog.uiElement(a,t,A,"label",null,{id:w,"for":B.id},m[0]);b.push(A.join(""))}new CKEDITOR.ui.dialog.hbox(a,e,b,g);return g.join("")});this._.children=e}},button:function(a,d,g){if(arguments.length){"function"==typeof d&&(d=d(a.getParentEditor()));b.call(this,d,{disabled:d.disabled||!1});CKEDITOR.event.implementOn(this);
-var e=this;a.on("load",function(){var a=this.getElement();(function(){a.on("click",function(a){e.click();a.data.preventDefault()});a.on("keydown",function(a){a.data.getKeystroke()in{32:1}&&(e.click(),a.data.preventDefault())})})();a.unselectable()},this);var f=CKEDITOR.tools.extend({},d);delete f.style;var h=CKEDITOR.tools.getNextId()+"_label";CKEDITOR.ui.dialog.uiElement.call(this,a,f,g,"a",null,{style:d.style,href:"javascript:void(0)",title:d.label,hidefocus:"true","class":d["class"],role:"button",
-"aria-labelledby":h},'\x3cspan id\x3d"'+h+'" class\x3d"cke_dialog_ui_button"\x3e'+CKEDITOR.tools.htmlEncode(d.label)+"\x3c/span\x3e")}},select:function(a,d,g){if(!(3>arguments.length)){var e=b.call(this,d);d.validate&&(this.validate=d.validate);e.inputId=CKEDITOR.tools.getNextId()+"_select";CKEDITOR.ui.dialog.labeledElement.call(this,a,d,g,function(){var b=CKEDITOR.tools.extend({},d,{id:d.id?d.id+"_select":CKEDITOR.tools.getNextId()+"_select"},!0),g=[],f=[],h={id:e.inputId,"class":"cke_dialog_ui_input_select",
-"aria-labelledby":this._.labelId};g.push('\x3cdiv class\x3d"cke_dialog_ui_input_',d.type,'" role\x3d"presentation"');d.width&&g.push('style\x3d"width:'+d.width+'" ');g.push("\x3e");void 0!==d.size&&(h.size=d.size);void 0!==d.multiple&&(h.multiple=d.multiple);l(b);for(var k=0,m;k<d.items.length&&(m=d.items[k]);k++)f.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 b.inputStyle&&
-(b.style=b.inputStyle);e.select=new CKEDITOR.ui.dialog.uiElement(a,b,g,"select",null,h,f.join(""));g.push("\x3c/div\x3e");return g.join("")})}},file:function(a,d,g){if(!(3>arguments.length)){void 0===d["default"]&&(d["default"]="");var e=CKEDITOR.tools.extend(b.call(this,d),{definition:d,buttons:[]});d.validate&&(this.validate=d.validate);a.on("load",function(){CKEDITOR.document.getById(e.frameId).getParent().addClass("cke_dialog_ui_input_file")});CKEDITOR.ui.dialog.labeledElement.call(this,a,d,g,
-function(){e.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"',e.frameId,'" title\x3d"',d.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,d,g){var e=this;if(!(3>arguments.length)){b.call(this,
-d);d.validate&&(this.validate=d.validate);var f=CKEDITOR.tools.extend({},d),h=f.onClick;f.className=(f.className?f.className+" ":"")+"cke_dialog_ui_button";f.onClick=function(b){var g=d["for"];b=h?h.call(this,b):!1;!1!==b&&("xhr"!==b&&a.getContentElement(g[0],g[1]).submit(),this.disable())};a.on("load",function(){a.getContentElement(d["for"][0],d["for"][1])._.buttons.push(e)});CKEDITOR.ui.dialog.button.call(this,a,f,g)}},html:function(){var a=/^\s*<[\w:]+\s+([^>]*)?>/,b=/^(\s*<[\w:]+(?:\s+[^>]*)?)((?:.|\r|\n)+)$/,
-g=/\/$/;return function(e,f,h){if(!(3>arguments.length)){var k=[],l=f.html;"\x3c"!=l.charAt(0)&&(l="\x3cspan\x3e"+l+"\x3c/span\x3e");var m=f.focus;if(m){var z=this.focus;this.focus=function(){("function"==typeof m?m:z).call(this);this.fire("focus")};f.isFocusable&&(this.isFocusable=this.isFocusable);this.keyboardFocusable=!0}CKEDITOR.ui.dialog.uiElement.call(this,e,f,k,"span",null,null,"");k=k.join("").match(a);l=l.match(b)||["","",""];g.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,g,e,f){var h=f.label;this._={children:b};CKEDITOR.ui.dialog.uiElement.call(this,a,f,e,"fieldset",null,null,function(){var a=[];h&&a.push("\x3clegend"+(f.labelStyle?' style\x3d"'+f.labelStyle+'"':"")+"\x3e"+h+"\x3c/legend\x3e");for(var c=0;c<g.length;c++)a.push(g[c]);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)},focus:function(){var a=this.selectParentTab();setTimeout(function(){var b=a.getInputElement();b&&b.$.focus()},0)},select:function(){var a=this.selectParentTab();setTimeout(function(){var b=a.getInputElement();b&&(b.$.focus(),b.$.select())},0)},accessKeyUp:function(){this.select()},
-setValue:function(a){if(this.bidi){var b=a&&a.charAt(0);(b="‪"==b?"ltr":"‫"==b?"rtl":null)&&(a=a.slice(1));this.setDirectionMarker(b)}a||(a="");return CKEDITOR.ui.dialog.uiElement.prototype.setValue.apply(this,arguments)},getValue:function(){var a=CKEDITOR.ui.dialog.uiElement.prototype.getValue.call(this);if(this.bidi&&a){var b=this.getDirectionMarker();b&&(a=("ltr"==b?"‪":"‫")+a)}return a},setDirectionMarker:function(a){var b=this.getInputElement();a?b.setAttributes({dir:a,"data-cke-dir-marker":a}):
-this.getDirectionMarker()&&b.removeAttributes(["dir","data-cke-dir-marker"])},getDirectionMarker:function(){return this.getInputElement().data("cke-dir-marker")},keyboardFocusable:!0},e,!0);CKEDITOR.ui.dialog.textarea.prototype=new CKEDITOR.ui.dialog.textInput;CKEDITOR.ui.dialog.select.prototype=CKEDITOR.tools.extend(new CKEDITOR.ui.dialog.labeledElement,{getInputElement:function(){return this._.select.getElement()},add:function(a,b,g){var e=new CKEDITOR.dom.element("option",this.getDialog().getParentEditor().document),
-f=this.getInputElement().$;e.$.text=a;e.$.value=void 0===b||null===b?a:b;void 0===g||null===g?CKEDITOR.env.ie?f.add(e.$):f.add(e.$,null):f.add(e.$,g);return this},remove:function(a){this.getInputElement().$.remove(a);return this},clear:function(){for(var a=this.getInputElement().$;0<a.length;)a.remove(0);return this},keyboardFocusable:!0},e,!0);CKEDITOR.ui.dialog.checkbox.prototype=CKEDITOR.tools.extend(new CKEDITOR.ui.dialog.uiElement,{getInputElement:function(){return this._.checkbox.getElement()},
-setValue:function(a,b){this.getInputElement().$.checked=a;!b&&this.fire("change",{value:a})},getValue:function(){return this.getInputElement().$.checked},accessKeyUp:function(){this.setValue(!this.getValue())},eventProcessors:{onChange:function(c,b){if(!CKEDITOR.env.ie||8<CKEDITOR.env.version)return a.onChange.apply(this,arguments);c.on("load",function(){var a=this._.checkbox.getElement();a.on("propertychange",function(c){c=c.data.$;"checked"==c.propertyName&&this.fire("change",{value:a.$.checked})},
-this)},this);this.on("change",b);return null}},keyboardFocusable:!0},e,!0);CKEDITOR.ui.dialog.radio.prototype=CKEDITOR.tools.extend(new CKEDITOR.ui.dialog.uiElement,{setValue:function(a,b){for(var g=this._.children,e,f=0;f<g.length&&(e=g[f]);f++)e.getElement().$.checked=e.getValue()==a;!b&&this.fire("change",{value:a})},getValue:function(){for(var a=this._.children,b=0;b<a.length;b++)if(a[b].getElement().$.checked)return a[b].getValue();return null},accessKeyUp:function(){var a=this._.children,b;
-for(b=0;b<a.length;b++)if(a[b].getElement().$.checked){a[b].getElement().focus();return}a[0].getElement().focus()},eventProcessors:{onChange:function(c,b){if(!CKEDITOR.env.ie||8<CKEDITOR.env.version)return a.onChange.apply(this,arguments);c.on("load",function(){for(var a=this._.children,c=this,b=0;b<a.length;b++)a[b].getElement().on("propertychange",function(a){a=a.data.$;"checked"==a.propertyName&&this.$.checked&&c.fire("change",{value:this.getAttribute("value")})})},this);this.on("change",b);return null}}},
-e,!0);CKEDITOR.ui.dialog.file.prototype=CKEDITOR.tools.extend(new CKEDITOR.ui.dialog.labeledElement,e,{getInputElement:function(){var a=CKEDITOR.document.getById(this._.frameId).getFrameDocument();return 0<a.$.forms.length?new CKEDITOR.dom.element(a.$.forms[0].elements[0]):this.getElement()},submit:function(){this.getInputElement().getParent().$.submit();return this},getAction:function(){return this.getInputElement().getParent().$.action},registerEvents:function(a){var b=/^on([A-Z]\w+)/,g,e=function(a,
-c,b,d){a.on("formLoaded",function(){a.getInputElement().on(b,d,a)})},f;for(f in a)if(g=f.match(b))this.eventProcessors[f]?this.eventProcessors[f].call(this,this._.dialog,a[f]):e(this,this._.dialog,g[1].toLowerCase(),a[f]);return this},reset:function(){function a(){g.$.open();var c="";e.size&&(c=e.size-(CKEDITOR.env.ie?7:0));var t=b.frameId+"_input";g.$.write(['\x3chtml dir\x3d"'+l+'" lang\x3d"'+m+'"\x3e\x3chead\x3e\x3ctitle\x3e\x3c/title\x3e\x3c/head\x3e\x3cbody style\x3d"margin: 0; overflow: hidden; background: transparent;"\x3e',
-'\x3cform enctype\x3d"multipart/form-data" method\x3d"POST" dir\x3d"'+l+'" lang\x3d"'+m+'" action\x3d"',CKEDITOR.tools.htmlEncode(e.action),'"\x3e\x3clabel id\x3d"',b.labelId,'" for\x3d"',t,'" style\x3d"display:none"\x3e',CKEDITOR.tools.htmlEncode(e.label),'\x3c/label\x3e\x3cinput style\x3d"width:100%" id\x3d"',t,'" aria-labelledby\x3d"',b.labelId,'" type\x3d"file" name\x3d"',CKEDITOR.tools.htmlEncode(e.id||"cke_upload"),'" size\x3d"',CKEDITOR.tools.htmlEncode(0<c?c:""),'" /\x3e\x3c/form\x3e\x3c/body\x3e\x3c/html\x3e\x3cscript\x3e',
-CKEDITOR.env.ie?"("+CKEDITOR.tools.fixDomain+")();":"","window.parent.CKEDITOR.tools.callFunction("+h+");","window.onbeforeunload \x3d function() {window.parent.CKEDITOR.tools.callFunction("+k+")}","\x3c/script\x3e"].join(""));g.$.close();for(c=0;c<f.length;c++)f[c].enable()}var b=this._,g=CKEDITOR.document.getById(b.frameId).getFrameDocument(),e=b.definition,f=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",f);CKEDITOR.dialog.addUIElement("checkbox",f);CKEDITOR.dialog.addUIElement("radio",f);CKEDITOR.dialog.addUIElement("button",f);CKEDITOR.dialog.addUIElement("select",f);CKEDITOR.dialog.addUIElement("file",f);CKEDITOR.dialog.addUIElement("fileButton",f);CKEDITOR.dialog.addUIElement("html",f);CKEDITOR.dialog.addUIElement("fieldset",{build:function(a,b,g){for(var e=b.children,f,h=[],k=[],l=0;l<e.length&&(f=e[l]);l++){var m=[];h.push(m);k.push(CKEDITOR.dialog._.uiElementBuilders[f.type].build(a,
-f,m))}return new CKEDITOR.ui.dialog[b.type](a,k,h,g,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,b=c-1;b>c-a;b--)if(this._.tabs[this._.tabIdList[b%
-a]][0].$.offsetHeight)return this._.tabIdList[b%a];return null}function f(){for(var a=this._.tabIdList.length,c=CKEDITOR.tools.indexOf(this._.tabIdList,this._.currentTabId),b=c+1;b<c+a;b++)if(this._.tabs[this._.tabIdList[b%a]][0].$.offsetHeight)return this._.tabIdList[b%a];return null}function e(a,c){for(var b=a.$.getElementsByTagName("input"),d=0,g=b.length;d<g;d++){var e=new CKEDITOR.dom.element(b[d]);"text"==e.getAttribute("type").toLowerCase()&&(c?(e.setAttribute("value",e.getCustomData("fake_value")||
-""),e.removeCustomData("fake_value")):(e.setCustomData("fake_value",e.getAttribute("value")),e.setAttribute("value","")))}}function a(a,c){var b=this.getInputElement();b&&(a?b.removeAttribute("aria-invalid"):b.setAttribute("aria-invalid",!0));a||(this.select?this.select():this.focus());c&&alert(c);this.fire("validated",{valid:a,msg:c})}function k(){var a=this.getInputElement();a&&a.removeAttribute("aria-invalid")}function l(a){var c=CKEDITOR.dom.element.createFromHtml(CKEDITOR.addTemplate("dialog",
-L).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":""})),b=c.getChild([0,0,0,0,0]),d=b.getChild(0),g=b.getChild(1);a.plugins.clipboard&&CKEDITOR.plugins.clipboard.preventDefaultDropOnElement(b);!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(b.getParent()));d.unselectable();g.unselectable();return{element:c,parts:{dialog:c.getChild(0),title:d,close:g,tabs:b.getChild(2),contents:b.getChild([3,0,0,0]),footer:b.getChild([3,0,1,0])}}}function m(a,c,b){this.element=c;this.focusIndex=b;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 c(a){function c(){a.layout()}var b=CKEDITOR.document.getWindow();b.on("resize",c);a.on("hide",function(){b.removeListener("resize",c)})}function d(a,c){this.dialog=a;for(var b=c.contents,d=0,e;e=b[d];d++)b[d]=e&&new g(a,
-e);CKEDITOR.tools.extend(this,c)}function g(a,c){this._={dialog:a};CKEDITOR.tools.extend(this,c)}function n(a){function c(b){var n=a.getSize(),k=a.parts.dialog.getParent().getClientSize(),l=b.data.$.screenX,m=b.data.$.screenY,q=l-d.x,t=m-d.y;d={x:l,y:m};g.x+=q;g.y+=t;l=g.x+h[3]<f?-h[3]:g.x-h[1]>k.width-n.width-f?k.width-n.width+("rtl"==e.lang.dir?0:h[1]):g.x;n=g.y+h[0]<f?-h[0]:g.y-h[2]>k.height-n.height-f?k.height-n.height+h[2]:g.y;l=Math.floor(l);n=Math.floor(n);a.move(l,n,1);b.data.preventDefault()}
-function b(){CKEDITOR.document.removeListener("mousemove",c);CKEDITOR.document.removeListener("mouseup",b);if(CKEDITOR.env.ie6Compat){var a=D.getChild(0).getFrameDocument();a.removeListener("mousemove",c);a.removeListener("mouseup",b)}}var d=null,g=null,e=a.getParentEditor(),f=e.config.dialog_magnetDistance,h=CKEDITOR.skin.margins||[0,0,0,0];"undefined"==typeof f&&(f=20);a.parts.title.on("mousedown",function(e){if(!a._.moved){var f=a._.element;f.getFirst().setStyle("position","absolute");f.removeStyle("display");
-a._.moved=!0;a.layout()}d={x:e.data.$.screenX,y:e.data.$.screenY};CKEDITOR.document.on("mousemove",c);CKEDITOR.document.on("mouseup",b);g=a.getPosition();CKEDITOR.env.ie6Compat&&(f=D.getChild(0).getFrameDocument(),f.on("mousemove",c),f.on("mouseup",b));e.data.preventDefault()},a)}function v(a){function c(b){var m="rtl"==e.lang.dir,q=l.width,t=l.height,r=q+(b.data.$.screenX-k.x)*(m?-1:1)*(a._.moved?1:2),K=t+(b.data.$.screenY-k.y)*(a._.moved?1:2),u=a._.element.getFirst(),u=m&&parseInt(u.getComputedStyle("right"),
-10),v=a.getPosition();v.x=v.x||0;v.y=v.y||0;v.y+K>n.height&&(K=n.height-v.y);(m?u:v.x)+r>n.width&&(r=n.width-(m?u:v.x));K=Math.floor(K);r=Math.floor(r);if(g==CKEDITOR.DIALOG_RESIZE_WIDTH||g==CKEDITOR.DIALOG_RESIZE_BOTH)q=Math.max(d.minWidth||0,r-f);if(g==CKEDITOR.DIALOG_RESIZE_HEIGHT||g==CKEDITOR.DIALOG_RESIZE_BOTH)t=Math.max(d.minHeight||0,K-h);a.resize(q,t);a._.moved&&x(a,a._.position.x,a._.position.y);a._.moved||a.layout();b.data.preventDefault()}function b(){CKEDITOR.document.removeListener("mouseup",
-b);CKEDITOR.document.removeListener("mousemove",c);m&&(m.remove(),m=null);if(CKEDITOR.env.ie6Compat){var a=D.getChild(0).getFrameDocument();a.removeListener("mouseup",b);a.removeListener("mousemove",c)}}var d=a.definition,g=d.resizable;if(g!=CKEDITOR.DIALOG_RESIZE_NONE){var e=a.getParentEditor(),f,h,n,k,l,m,q=CKEDITOR.tools.addFunction(function(d){function g(a){return a.isVisible()}l=a.getSize();var e=a.parts.contents,q=e.$.getElementsByTagName("iframe").length,t=!(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'),e.append(m));h=l.height-a.parts.contents.getFirst(g).getSize("height",t);f=l.width-a.parts.contents.getFirst(g).getSize("width",1);k={x:d.screenX,y:d.screenY};n=CKEDITOR.document.getWindow().getViewPaneSize();CKEDITOR.document.on("mousemove",c);CKEDITOR.document.on("mouseup",b);CKEDITOR.env.ie6Compat&&
-(e=D.getChild(0).getFrameDocument(),e.on("mousemove",c),e.on("mouseup",b));d.preventDefault&&d.preventDefault()});a.on("load",function(){var c="";g==CKEDITOR.DIALOG_RESIZE_WIDTH?c=" cke_resizer_horizontal":g==CKEDITOR.DIALOG_RESIZE_HEIGHT&&(c=" cke_resizer_vertical");c=CKEDITOR.dom.element.createFromHtml('\x3cdiv class\x3d"cke_resizer'+c+" cke_resizer_"+e.lang.dir+'" title\x3d"'+CKEDITOR.tools.htmlEncode(e.lang.common.resize)+'" onmousedown\x3d"CKEDITOR.tools.callFunction('+q+', event )"\x3e'+("ltr"==
-e.lang.dir?"◢":"◣")+"\x3c/div\x3e");a.parts.footer.append(c,1)});e.on("destroy",function(){CKEDITOR.tools.removeFunction(q)})}}function x(a,c,b){var d=a.parts.dialog.getParent().getClientSize(),g=a.getSize(),e=a._.viewportRatio,f=Math.max(d.width-g.width,0),d=Math.max(d.height-g.height,0);e.width=f?c/f:e.width;e.height=d?b/d:e.height;a._.viewportRatio=e}function p(a){a.data.preventDefault(1)}function q(a){var c=a.config,b=CKEDITOR.skinName||a.config.skin,d=c.dialog_backgroundCoverColor||("moono-lisa"==
-b?"black":"white"),b=c.dialog_backgroundCoverOpacity,g=c.baseFloatZIndex,c=CKEDITOR.tools.genKey(d,b,g),e=I[c];CKEDITOR.document.getBody().addClass("cke_dialog_open");e?e.show():(g=['\x3cdiv tabIndex\x3d"-1" style\x3d"position: ',CKEDITOR.env.ie6Compat?"absolute":"fixed","; z-index: ",g,"; top: 0px; left: 0px; ","; width: 100%; height: 100%;",CKEDITOR.env.ie6Compat?"":"background-color: "+d,'" class\x3d"cke_dialog_background_cover"\x3e'],CKEDITOR.env.ie6Compat&&(d="\x3chtml\x3e\x3cbody style\x3d\\'background-color:"+
-d+";\\'\x3e\x3c/body\x3e\x3c/html\x3e",g.push('\x3ciframe hidefocus\x3d"true" frameborder\x3d"0" id\x3d"cke_dialog_background_iframe" src\x3d"javascript:'),g.push("void((function(){"+encodeURIComponent("document.open();("+CKEDITOR.tools.fixDomain+")();document.write( '"+d+"' );document.close();")+"})())"),g.push('" style\x3d"position:absolute;left:0;top:0;width:100%;height: 100%;filter: progid:DXImageTransform.Microsoft.Alpha(opacity\x3d0)"\x3e\x3c/iframe\x3e')),g.push("\x3c/div\x3e"),e=CKEDITOR.dom.element.createFromHtml(g.join("")),
-e.setOpacity(void 0!==b?b:.5),e.on("keydown",p),e.on("keypress",p),e.on("keyup",p),e.appendTo(CKEDITOR.document.getBody()),I[c]=e);a.focusManager.add(e);D=e;CKEDITOR.env.mac&&CKEDITOR.env.webkit||e.focus()}function r(a){CKEDITOR.document.getBody().removeClass("cke_dialog_open");D&&(a.focusManager.remove(D),D.hide())}function z(a){var c=a.data.$.ctrlKey||a.data.$.metaKey,b=a.data.$.altKey,d=a.data.$.shiftKey,g=String.fromCharCode(a.data.$.keyCode);(c=P[(c?"CTRL+":"")+(b?"ALT+":"")+(d?"SHIFT+":"")+
-g])&&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,b=a.data.$.altKey,d=a.data.$.shiftKey,g=String.fromCharCode(a.data.$.keyCode);(c=P[(c?"CTRL+":"")+(b?"ALT+":"")+(d?"SHIFT+":"")+g])&&c.length&&(c=c[c.length-1],c.keyup&&(c.keyup.call(c.uiElement,c.dialog,c.key),a.data.preventDefault()))}function y(a,c,b,d,g){(P[b]||(P[b]=[])).push({uiElement:a,dialog:c,key:b,keyup:g||a.accessKeyUp,keydown:d||
-a.accessKeyDown})}function u(a){for(var c in P){for(var b=P[c],d=b.length-1;0<=d;d--)b[d].dialog!=a&&b[d].uiElement!=a||b.splice(d,1);0===b.length&&delete P[c]}}function w(a,c){a._.accessKeyMap[c]&&a.selectPage(a._.accessKeyMap[c])}function B(){}var A=CKEDITOR.tools.cssLength,C,D,E=!1,G=!CKEDITOR.env.ie||CKEDITOR.env.edge,L='\x3cdiv class\x3d"cke_reset_all cke_dialog_container {editorId} {editorDialogClass} {hidpi}" dir\x3d"{langDir}" style\x3d"'+(G?"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"'+(G?"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,g){function e(){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,b=0;b<c;b++)a[b].focusIndex=b}function m(a){var c=A._.focusList;a=a||0;if(!(1>c.length)){var b=A._.currentFocusIndex;A._.tabBarMode&&0>a&&(b=0);try{c[b].getInputElement().$.blur()}catch(d){}var g=b,e=1<A._.pageCount;do{g+=a;if(e&&!A._.tabBarMode&&(g==c.length||-1==g)){A._.tabBarMode=!0;A._.tabs[A._.currentTabId][0].focus();
-A._.currentFocusIndex=-1;return}g=(g+c.length)%c.length;if(g==b)break}while(a&&!c[g].isFocusable());c[g].focus();"text"==c[g].type&&c[g].select()}}function q(a){if(A==CKEDITOR.dialog._.currentTop){var d=a.data.getKeystroke(),g="rtl"==c.lang.dir,e=[37,38,39,40];z=x=0;if(9==d||d==CKEDITOR.SHIFT+9)m(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(e,d)&&A._.tabBarMode)d=-1!=CKEDITOR.tools.indexOf([g?39:37,38],d)?
-h.call(A):f.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,m(1),z=1;t(a)}}function t(a){z?a.data.preventDefault(1):x&&a.data.stopPropagation()}var r=CKEDITOR.dialog._.dialogDefinitions[g],u=CKEDITOR.tools.clone(C),w=c.config.dialog_buttonsOrder||"OS",p=c.lang.dir,y={},z,x;("OS"==w&&CKEDITOR.env.mac||"rtl"==w&&"ltr"==p||"ltr"==w&&"rtl"==p)&&u.buttons.reverse();r=CKEDITOR.tools.extend(r(c),u);r=CKEDITOR.tools.clone(r);r=new d(this,r);u=l(c);this._={editor:c,element:u.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=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"==p?"right":"left"]=0;this.parts.dialog.setStyles(u);CKEDITOR.event.call(this);this.definition=r=CKEDITOR.fire("dialogDefinition",
-{name:g,definition:r,dialog:this},c).definition;if(!("removeDialogTabs"in c._)&&c.config.removeDialogTabs){u=c.config.removeDialogTabs.split(";");for(p=0;p<u.length;p++)if(w=u[p].split(":"),2==w.length){var B=w[0];y[B]||(y[B]=[]);y[B].push(w[1])}c._.removeDialogTabs=y}if(c._.removeDialogTabs&&(y=c._.removeDialogTabs[g]))for(p=0;p<y.length;p++)r.removeContents(y[p]);if(r.onLoad)this.on("load",r.onLoad);if(r.onShow)this.on("show",r.onShow);if(r.onHide)this.on("hide",r.onHide);if(r.onOk)this.on("ok",
-function(a){c.fire("saveSnapshot");setTimeout(function(){c.fire("saveSnapshot")},0);!1===r.onOk.call(this,a)&&(a.data.hide=!1)});this.state=CKEDITOR.DIALOG_STATE_IDLE;if(r.onCancel)this.on("cancel",function(a){!1===r.onCancel.call(this,a)&&(a.data.hide=!1)});var A=this,D=function(a){var c=A._.contents,b=!1,d;for(d in c)for(var g in c[d])if(b=a.call(this,c[d][g]))return};this.on("ok",function(c){D(function(b){if(b.validate){var d=b.validate(this),g="string"==typeof d||!1===d;g&&(c.data.hide=!1,c.stop());
-a.call(b,!g,"string"==typeof d?d:void 0);return g}})},this,null,0);this.on("cancel",function(a){D(function(b){if(b.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=m;var G=this._.element;c.focusManager.add(G,1);this.on("show",function(){G.on("keydown",q,this);if(CKEDITOR.env.gecko)G.on("keypress",
-t,this)});this.on("hide",function(){G.removeListener("keydown",q);CKEDITOR.env.gecko&&G.removeListener("keypress",t);D(function(a){k.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(){e();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,r.onFocus?(a=r.onFocus.call(this))&&a.focus():m(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(r.title,CKEDITOR.document)).appendTo(this.parts.title);for(p=0;p<r.contents.length;p++)(y=r.contents[p])&&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("_"))),
-b(this),a.data.preventDefault())},this);p=[];y=CKEDITOR.dialog._.uiElementBuilders.hbox.build(this,{type:"hbox",className:"cke_dialog_footer_buttons",widths:[],children:r.buttons},p).getChild();this.parts.footer.setHtml(p.join(""));for(p=0;p<y.length;p++)this._.buttons[y[p].id]=y[p]};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 b=this.parts.dialog.getParent().getClientSize().width;this._.position.x=b-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,b){var d=this._.element.getFirst(),g="rtl"==this._.editor.lang.dir;CKEDITOR.env.ie&&d.setStyle("zoom","100%");var e=this.parts.dialog.getParent().getClientSize(),f=this.getSize(),h=this._.viewportRatio,n=Math.max(e.width-f.width,0),e=Math.max(e.height-f.height,0);this._.position&&this._.position.x==a&&this._.position.y==c?(a=Math.floor(n*h.width),c=Math.floor(e*h.height)):x(this,a,c);this._.position={x:a,y:c};g&&(a=n-a);c={top:(0<c?c:0)+"px"};c[g?"right":"left"]=(0<a?a:0)+"px";
-d.setStyles(c);b&&(this._.moved=1)},getPosition:function(){return CKEDITOR.tools.extend({},this._.position)},show:function(){var a=this._.element,b=this.definition,d=CKEDITOR.document.getBody(),g=this._.editor.config.baseFloatZIndex;a.getParent()&&a.getParent().equals(d)?a.setStyle("display",G?"flex":"block"):a.appendTo(d);this.resize(this._.contentSize&&this._.contentSize.width||b.width||b.minWidth,this._.contentSize&&this._.contentSize.height||b.height||b.minHeight);this.reset();null===this._.currentTabId&&
-this.selectPage(this.definition.contents[0].id);null===CKEDITOR.dialog._.currentZIndex&&(CKEDITOR.dialog._.currentZIndex=g);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,q(this._.editor)):CKEDITOR.dialog._.currentTop!==this&&(this._.parentDialog=CKEDITOR.dialog._.currentTop,d=this._.parentDialog.getElement().getFirst(),
-d.$.style.zIndex-=Math.floor(g/2),this._.parentDialog.getElement().setStyle("z-index",d.$.style.zIndex),CKEDITOR.dialog._.currentTop=this);a.on("keydown",z);a.on("keyup",t);this._.hasFocus=!1;for(var e in b.contents)if(b.contents[e]){var a=b.contents[e],g=this._.tabs[a.id],d=a.requiredContent,f=0;if(g){for(var h in this._.contents[a.id]){var n=this._.contents[a.id][h];"hbox"!=n.type&&"vbox"!=n.type&&n.getInputElement()&&(n.requiredContent&&!this._.editor.activeFilter.check(n.requiredContent)?n.disable():
-(n.enable(),f++))}!f||d&&!this._.editor.activeFilter.check(d)?g[0].addClass("cke_dialog_tab_disabled"):g[0].removeClass("cke_dialog_tab_disabled")}}CKEDITOR.tools.setTimeout(function(){this.layout();c(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||!G){var c=this.getSize(),b=CKEDITOR.document.getWindow().getViewPaneSize(),d;this._.moved&&this._.position?(d=this._.position.x,c=this._.position.y):(d=(b.width-c.width)/2,c=(b.height-c.height)/2);CKEDITOR.env.ie6Compat||(a.setStyle("position","absolute"),a.removeStyle("margin"));d=Math.floor(d);c=Math.floor(c);this.move(d,c)}},foreach:function(a){for(var c in this._.contents)for(var b in this._.contents[c])a.call(this,this._.contents[c][b]);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(u(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 r(this._.editor);if(CKEDITOR.dialog._.currentTop=this._.parentDialog)CKEDITOR.dialog._.currentZIndex-=
-10;else{CKEDITOR.dialog._.currentZIndex=null;a.removeListener("keydown",z);a.removeListener("keyup",t);var b=this._.editor;b.focus();setTimeout(function(){b.focusManager.unlock();CKEDITOR.env.iOS&&b.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=[],b=a.label?' title\x3d"'+CKEDITOR.tools.htmlEncode(a.label)+
-'"':"",d=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),g=this._.contents[a.id]={},e=d.getChild(),f=0;d=e.shift();)d.notAllowed||"hbox"==d.type||"vbox"==d.type||f++,g[d.id]=d,"function"==typeof d.getChild&&e.push.apply(e,d.getChild());f||(a.hidden=!0);c=CKEDITOR.dom.element.createFromHtml(c.join(""));c.setAttribute("role","tabpanel");c.setStyle("min-height",
-"100%");d=CKEDITOR.env;g="cke_"+a.id+"_"+CKEDITOR.tools.getNextNumber();b=CKEDITOR.dom.element.createFromHtml(['\x3ca class\x3d"cke_dialog_tab"',0<this._.pageCount?" cke_last":"cke_first",b,a.hidden?' style\x3d"display:none"':"",' id\x3d"',g,'"',d.gecko&&!d.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",g);this._.tabs[a.id]=[b,c];this._.tabIdList.push(a.id);!a.hidden&&this._.pageCount++;
-this._.lastTab=b;this.updateStyle();c.setAttribute("name",a.id);c.appendTo(this.parts.contents);b.unselectable();this.parts.tabs.append(b);a.accessKey&&(y(this,this,"CTRL+"+a.accessKey,B,w),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 b=this._.tabs[c][0],d=this._.tabs[c][1];c!=a&&(b.removeClass("cke_dialog_tab_selected"),
-b.removeAttribute("aria-selected"),d.hide());d.setAttribute("aria-hidden",c!=a)}var g=this._.tabs[a];g[0].addClass("cke_dialog_tab_selected");g[0].setAttribute("aria-selected",!0);CKEDITOR.env.ie6Compat||CKEDITOR.env.ie7Compat?(e(g[1]),g[1].show(),setTimeout(function(){e(g[1],1)},0)):g[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 b=this._.contents[a];return b&&b[c]},getValueOf:function(a,c){return this.getContentElement(a,c).getValue()},
-setValueOf:function(a,c,b){return this.getContentElement(a,c).setValue(b)},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 m(this,a,c));else{this._.focusList.splice(c,0,new m(this,a,c));for(var b=c+1;b<this._.focusList.length;b++)this._.focusList[b].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,b={attributes:{"class":"cke_dialog_spinner"},styles:{"float":"rtl"==c?"right":"left"}};b.styles["margin-"+("rtl"==c?"left":"right")]=
-"8px";this.parts.spinner=CKEDITOR.document.createElement("div",b);this.parts.spinner.setHtml("\x26#8987;");this.parts.spinner.appendTo(this.parts.title,1)}this.parts.spinner.show();this.getButton("ok")&&this.getButton("ok").disable()}else a==CKEDITOR.DIALOG_STATE_IDLE&&(this.parts.spinner&&this.parts.spinner.hide(),this.getButton("ok")&&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,b){a=a.config.removeDialogTabs;return!(a&&a.match(new RegExp("(?:^|;)"+c+":"+b+"(?:$|;)","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(b){return a(b,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(b){return a(b,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);C={resizable:CKEDITOR.DIALOG_RESIZE_BOTH,minWidth:600,minHeight:400,buttons:[CKEDITOR.dialog.okButton,CKEDITOR.dialog.cancelButton]};var F=function(a,c,b){for(var d=0,g;g=a[d];d++)if(g.id==c||b&&g[b]&&(g=F(g[b],c,b)))return g;return null},O=function(a,c,b,d,g){if(b){for(var e=0,f;f=a[e];e++){if(f.id==b)return a.splice(e,0,c),c;if(d&&f[d]&&(f=O(f[d],c,b,d,!0)))return f}if(g)return null}a.push(c);return c},
-H=function(a,c,b){for(var d=0,g;g=a[d];d++){if(g.id==c)return a.splice(d,1);if(b&&g[b]&&(g=H(g[b],c,b)))return g}return null};d.prototype={getContents:function(a){return F(this.contents,a)},getButton:function(a){return F(this.buttons,a)},addContents:function(a,c){return O(this.contents,a,c)},addButton:function(a,c){return O(this.buttons,a,c)},removeContents:function(a){H(this.contents,a)},removeButton:function(a){H(this.buttons,a)}};g.prototype={get:function(a){return F(this.elements,a,"children")},
-add:function(a,c){return O(this.elements,a,c,"children")},remove:function(a){H(this.elements,a,"children")}};var I={},P={};(function(){CKEDITOR.ui.dialog={uiElement:function(a,c,b,d,g,e,f){if(!(4>arguments.length)){var h=(d.call?d(c):d)||"div",n=["\x3c",h," "],k=(g&&g.call?g(c):g)||{},l=(e&&e.call?e(c):e)||{},m=(f&&f.call?f.call(this,a,c):f)||"",r=this.domId=l.id||CKEDITOR.tools.getNextId()+"_uiElement";c.requiredContent&&!a.getParentEditor().filter.check(c.requiredContent)&&(k.display="none",this.notAllowed=
-!0);l.id=r;var q={};c.type&&(q["cke_dialog_ui_"+c.type]=1);c.className&&(q[c.className]=1);c.disabled&&(q.cke_disabled=1);for(var t=l["class"]&&l["class"].split?l["class"].split(" "):[],r=0;r<t.length;r++)t[r]&&(q[t[r]]=1);t=[];for(r in q)t.push(r);l["class"]=t.join(" ");c.title&&(l.title=c.title);q=(c.style||"").split(";");c.align&&(t=c.align,k["margin-left"]="left"==t?0:"auto",k["margin-right"]="right"==t?0:"auto");for(r in k)q.push(r+":"+k[r]);c.hidden&&q.push("display:none");for(r=q.length-1;0<=
-r;r--)""===q[r]&&q.splice(r,1);0<q.length&&(l.style=(l.style?l.style+"; ":"")+q.join("; "));for(r in l)n.push(r+'\x3d"'+CKEDITOR.tools.htmlEncode(l[r])+'" ');n.push("\x3e",m,"\x3c/",h,"\x3e");b.push(n.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(b){a.call(this,
-c.setValue.call(this,b))}}));"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&&y(this,a,"CTRL+"+c.accessKey);var u=this;a.on("load",function(){var c=u.getInputElement();if(c){var b=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");b&&this.addClass(b)});c.on("blur",function(){u.fire("blur");b&&this.removeClass(b)})}});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,b,d,g){if(!(4>arguments.length)){this._||(this._={});var e=this._.children=c,f=g&&g.widths||null,h=g&&g.height||null,n,k={role:"presentation"};
-g&&g.align&&(k.align=g.align);CKEDITOR.ui.dialog.uiElement.call(this,a,g||{type:"hbox"},d,"table",{},k,function(){var a=['\x3ctbody\x3e\x3ctr class\x3d"cke_dialog_ui_hbox"\x3e'];for(n=0;n<b.length;n++){var c="cke_dialog_ui_hbox_child",d=[];0===n&&(c="cke_dialog_ui_hbox_first");n==b.length-1&&(c="cke_dialog_ui_hbox_last");a.push('\x3ctd class\x3d"',c,'" role\x3d"presentation" ');f?f[n]&&d.push("width:"+A(f[n])):d.push("width:"+Math.floor(100/b.length)+"%");h&&d.push("height:"+A(h));g&&void 0!==g.padding&&
-d.push("padding:"+A(g.padding));CKEDITOR.env.ie&&CKEDITOR.env.quirks&&e[n].align&&d.push("text-align:"+e[n].align);0<d.length&&a.push('style\x3d"'+d.join("; ")+'" ');a.push("\x3e",b[n],"\x3c/td\x3e")}a.push("\x3c/tr\x3e\x3c/tbody\x3e");return a.join("")})}},vbox:function(a,c,b,d,g){if(!(3>arguments.length)){this._||(this._={});var e=this._.children=c,f=g&&g.width||null,h=g&&g.heights||null;CKEDITOR.ui.dialog.uiElement.call(this,a,g||{type:"vbox"},d,"div",null,{role:"presentation"},function(){var c=
-['\x3ctable role\x3d"presentation" cellspacing\x3d"0" border\x3d"0" '];c.push('style\x3d"');g&&g.expand&&c.push("height:100%;");c.push("width:"+A(f||"100%"),";");CKEDITOR.env.webkit&&c.push("float:none;");c.push('"');c.push('align\x3d"',CKEDITOR.tools.htmlEncode(g&&g.align||("ltr"==a.getParentEditor().lang.dir?"left":"right")),'" ');c.push("\x3e\x3ctbody\x3e");for(var d=0;d<b.length;d++){var n=[];c.push('\x3ctr\x3e\x3ctd role\x3d"presentation" ');f&&n.push("width:"+A(f||"100%"));h?n.push("height:"+
-A(h[d])):g&&g.expand&&n.push("height:"+Math.floor(100/b.length)+"%");g&&void 0!==g.padding&&n.push("padding:"+A(g.padding));CKEDITOR.env.ie&&CKEDITOR.env.quirks&&e[d].align&&n.push("text-align:"+e[d].align);0<n.length&&c.push('style\x3d"',n.join("; "),'" ');c.push(' class\x3d"cke_dialog_ui_vbox_child"\x3e',b[d],"\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+)/,b,d=function(a,c,b,d){c.on("load",function(){a.getInputElement().on(b,d,a)})},g;for(g in a)if(b=g.match(c))this.eventProcessors[g]?this.eventProcessors[g].call(this,this._.dialog,a[g]):d(this,this._.dialog,b[1].toLowerCase(),a[g]);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,b){for(var d=c.children,g,e=[],f=[],h=0;h<d.length&&(g=d[h]);h++){var n=[];e.push(n);f.push(CKEDITOR.dialog._.uiElementBuilders[g.type].build(a,g,n))}return new CKEDITOR.ui.dialog[c.type](a,f,e,b,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=/^\d*$/,c=/^\d*(?:\.\d+)?$/,b=/^(((\d*(\.\d+))|(\d*))(px|\%)?)?$/,d=/^(((\d*(\.\d+))|(\d*))(px|em|ex|in|cm|mm|pt|pc|\%)?)?$/i,g=/^(--|-?([a-zA-Z_]|\\))(\\|[a-zA-Z0-9-_])*\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],b,d=CKEDITOR.VALIDATE_AND,g=[],e;for(e=0;e<a.length;e++)if("function"==typeof a[e])g.push(a[e]);
-else break;e<a.length&&"string"==typeof a[e]&&(b=a[e],e++);e<a.length&&"number"==typeof a[e]&&(d=a[e]);var f=d==CKEDITOR.VALIDATE_AND?!0:!1;for(e=0;e<g.length;e++)f=d==CKEDITOR.VALIDATE_AND?f&&g[e](c):f||g[e](c);return f?!0:b}},regex:function(a,c){return function(b){b=this&&this.getValue?this.getValue():b;return a.test(b)?!0:c}},notEmpty:function(a){var c=RegExp("^[\\u0020\\u00a0\\u1680\\u202f\\u205f\\u3000\\u2000-\\u200a\\s]+|[\\u0020\\u00a0\\u1680\\u202f\\u205f\\u3000\\u2000-\\u200a\\s]+$","g");
-return function(b){return 0<(this&&this.getValue?this.getValue():b).replace(c,"").length||a}},integer:function(c){return this.regex(a,c)},number:function(a){return this.regex(c,a)},cssLength:function(a){return this.functions(function(a){return d.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){a=CKEDITOR.tools.trim(a).split(";");""===a[a.length-1]&&a.pop();
-return CKEDITOR.tools.array.every(a,function(a){return g.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 b in I)I[b].remove();I={}}a=a.editor._.storedDialogs;for(var d in a)a[d].destroy()})})();CKEDITOR.tools.extend(CKEDITOR.editor.prototype,
-{openDialog:function(a,c,b){var d=null,g=CKEDITOR.dialog._.dialogDefinitions[a];null===CKEDITOR.dialog._.currentTop&&q(this);if("function"==typeof g)g=this._.storedDialogs||(this._.storedDialogs={}),d=g[a]||(g[a]=new CKEDITOR.dialog(this,a)),d.setModel(b),c&&c.call(d,d),d.show();else{if("failed"==g)throw r(this),Error('[CKEDITOR.dialog.openDialog] Dialog "'+a+'" failed when loading definition.');"string"==typeof g&&CKEDITOR.scriptLoader.load(CKEDITOR.getUrl(g),function(){"function"!=typeof CKEDITOR.dialog._.dialogDefinitions[a]&&
-(CKEDITOR.dialog._.dialogDefinitions[a]="failed");this.openDialog(a,c,b)},this,0,1)}CKEDITOR.skin.loadPart("dialog");if(d)d.once("hide",function(){d.setModel(null)},null,null,999);return d}});CKEDITOR.plugins.add("dialog",{requires:"dialogui",init:function(a){E||(CKEDITOR.document.appendStyleSheet(this.path+"styles/dialog.css"),E=!0);a.on("doubleclick",function(c){c.data.dialog&&a.openDialog(c.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 f=b.langCode,f=h.availableLangs[f]?f:h.availableLangs[f.replace(/-.*/,
-"")]?f.replace(/-.*/,""):"en";CKEDITOR.scriptLoader.load(CKEDITOR.getUrl(h.path+"dialogs/lang/"+f+".js"),function(){b.lang.a11yhelp=h.langEntries[f];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(f){f.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 f(){k=b.document;l=k[CKEDITOR.env.ie?"getBody":"getDocumentElement"]();m=CKEDITOR.env.quirks?k.getBody():k.getDocumentElement();var a=CKEDITOR.env.quirks?m:m.findOne("body");a&&(a.setStyle("height","auto"),
-a.setStyle("min-height",CKEDITOR.env.safari?"0%":"auto"));c=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",k)}function e(){v&&m.setStyle("overflow-y","hidden");var e=b.window.getViewPaneSize().height,f;l.append(c);f=c.getDocumentPosition(k).y+c.$.offsetHeight;c.remove();f+=d;f=Math.max(f,g);f=Math.min(f,n);f!=e&&a!=f&&(f=b.fire("autoGrow",{currentHeight:e,
-newHeight:f}).newHeight,b.resize(null,f,!0),a=f);v||(f<n&&m.$.scrollHeight>m.$.clientHeight?m.setStyle("overflow-y","hidden"):m.removeStyle("overflow-y"))}var a,k,l,m,c,d=b.config.autoGrow_bottomSpace||0,g=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:e,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:(e(),v||e())},100)});b.on("afterCommandExec",function(a){"maximize"==a.data.name&&"wysiwyg"==a.editor.mode&&(a.data.command.state==CKEDITOR.TRISTATE_ON?m.removeStyle("overflow-y"):e())});b.on("contentDom",f);f();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,f=function(a,f,c,d){if(d){d=new CKEDITOR.style(d);var g=e[c];g.unshift(d);b.attachStyleStateChange(d,function(a){!b.readOnly&&b.getCommand(c).setState(a)});b.addCommand(c,new CKEDITOR.styleCommand(d,{contentForms:g}));b.ui.addButton&&b.ui.addButton(a,{label:f,command:c,toolbar:"basicstyles,"+
-(h+=10)})}},e={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,k=b.lang.basicstyles;f("Bold",k.bold,"bold",a.coreStyles_bold);f("Italic",k.italic,"italic",
-a.coreStyles_italic);f("Underline",k.underline,"underline",a.coreStyles_underline);f("Strike",k.strike,"strike",a.coreStyles_strike);f("Subscript",k.subscript,"subscript",a.coreStyles_subscript);f("Superscript",k.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 f=b.getCommand("blockquote").state,e=b.getSelection(),a=e&&e.getRanges()[0];if(a){var k=e.createBookmarks();if(CKEDITOR.env.ie){var l=k[0].startNode,m=k[0].endNode,c;if(l&&"blockquote"==l.getParent().getName())for(c=l;c=c.getNext();)if(c.type==CKEDITOR.NODE_ELEMENT&&c.isBlockBoundary()){l.move(c,
-!0);break}if(m&&"blockquote"==m.getParent().getName())for(c=m;c=c.getPrevious();)if(c.type==CKEDITOR.NODE_ELEMENT&&c.isBlockBoundary()){m.move(c);break}}var d=a.createIterator();d.enlargeBr=b.config.enterMode!=CKEDITOR.ENTER_BR;if(f==CKEDITOR.TRISTATE_OFF){for(l=[];f=d.getNextParagraph();)l.push(f);1>l.length&&(f=b.document.createElement(b.config.enterMode==CKEDITOR.ENTER_P?"p":"div"),m=k.shift(),a.insertNode(f),f.append(new CKEDITOR.dom.text("",b.document)),a.moveToBookmark(m),a.selectNodeContents(f),
-a.collapse(!0),m=a.createBookmark(),l.push(f),k.unshift(m));c=l[0].getParent();a=[];for(m=0;m<l.length;m++)f=l[m],c=c.getCommonAncestor(f.getParent());for(f={table:1,tbody:1,tr:1,ol:1,ul:1};f[c.getName()];)c=c.getParent();for(m=null;0<l.length;){for(f=l.shift();!f.getParent().equals(c);)f=f.getParent();f.equals(m)||a.push(f);m=f}for(;0<a.length;)if(f=a.shift(),"blockquote"==f.getName()){for(m=new CKEDITOR.dom.documentFragment(b.document);f.getFirst();)m.append(f.getFirst().remove()),l.push(m.getLast());
-m.replace(f)}else l.push(f);a=b.document.createElement("blockquote");for(a.insertBefore(l[0]);0<l.length;)f=l.shift(),a.append(f)}else if(f==CKEDITOR.TRISTATE_ON){m=[];for(c={};f=d.getNextParagraph();){for(l=a=null;f.getParent();){if("blockquote"==f.getParent().getName()){a=f.getParent();l=f;break}f=f.getParent()}a&&l&&!l.getCustomData("blockquote_moveout")&&(m.push(l),CKEDITOR.dom.element.setMarker(c,l,"blockquote_moveout",!0))}CKEDITOR.dom.element.clearAllMarkers(c);f=[];l=[];for(c={};0<m.length;)d=
-m.shift(),a=d.getParent(),d.getPrevious()?d.getNext()?(d.breakParent(d.getParent()),l.push(d.getNext())):d.remove().insertAfter(a):d.remove().insertBefore(a),a.getCustomData("blockquote_processed")||(l.push(a),CKEDITOR.dom.element.setMarker(c,a,"blockquote_processed",!0)),f.push(d);CKEDITOR.dom.element.clearAllMarkers(c);for(m=l.length-1;0<=m;m--){a=l[m];a:{c=a;for(var d=0,g=c.getChildCount(),n=void 0;d<g&&(n=c.getChild(d));d++)if(n.type==CKEDITOR.NODE_ELEMENT&&n.isBlockBoundary()){c=!1;break a}c=
-!0}c&&a.remove()}if(b.config.enterMode==CKEDITOR.ENTER_BR)for(a=!0;f.length;)if(d=f.shift(),"div"==d.getName()){m=new CKEDITOR.dom.documentFragment(b.document);!a||!d.getPrevious()||d.getPrevious().type==CKEDITOR.NODE_ELEMENT&&d.getPrevious().isBlockBoundary()||m.append(b.document.createElement("br"));for(a=d.getNext()&&!(d.getNext().type==CKEDITOR.NODE_ELEMENT&&d.getNext().isBlockBoundary());d.getFirst();)d.getFirst().remove().appendTo(m);a&&m.append(b.document.createElement("br"));m.replace(d);
-a=!1}}e.selectBookmarks(k);b.focus()}},refresh:function(b,f){this.setState(b.elementPath(f.block||f.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,
-e){CKEDITOR.tools.extend(this,e,{editor:b,id:"cke-"+CKEDITOR.tools.getUniqueId(),area:b._.notificationArea});e.type||(this.type="info");this.element=this._createElement();b.plugins.clipboard&&CKEDITOR.plugins.clipboard.preventDefaultDropOnElement(this.element)}function h(b){var e=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(){e._removeListeners();e.element.remove()})}CKEDITOR.plugins.add("notification",{init:function(b){function e(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,e,h){var m,c;"progress"==e?m=h:c=h;a=new CKEDITOR.plugins.notification(b,
-{message:a,type:e,progress:m,duration:c});a.show();return a};b.on("key",function(a){if(27==a.data.keyCode){var h=b._.notificationArea.notifications;h.length&&(e(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 e=!0;!1===this.editor.fire("notificationUpdate",{notification:this,options:b})&&(e=!1);var a=this.element,h=a.findOne(".cke_notification_message"),
-l=a.findOne(".cke_notification_progress"),m=b.type;a.removeAttribute("role");b.progress&&"progress"!=this.type&&(m="progress");m&&(a.removeClass(this._getClass()),a.removeAttribute("aria-label"),this.type=m,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()));e&&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,e,a,h=this.editor.lang.common.close;e=new CKEDITOR.dom.element("div");e.addClass("cke_notification");
-e.addClass(this._getClass());e.setAttributes({id:this.id,role:"alert","aria-label":this.type});"progress"==this.type&&e.append(this._createProgressElement());a=new CKEDITOR.dom.element("p");a.addClass("cke_notification_message");a.setHtml(this.message);e.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');e.append(a);a.on("click",
-function(){b.editor.focus();b.hide()});return e},_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,e;this._hideTimeoutId&&clearTimeout(this._hideTimeoutId);
-if("number"==typeof this.duration)e=this.duration;else if("info"==this.type||"success"==this.type)e="number"==typeof this.editor.config.notification_duration?this.editor.config.notification_duration:5E3;e&&(b._hideTimeoutId=setTimeout(function(){b.hide()},e))}};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 e=CKEDITOR.tools.indexOf(this.notifications,
-b);0>e||(this.notifications.splice(e,1),b.element.remove(),this.element.getChildCount()||(this._removeListeners(),this.element.remove()))},_createElement:function(){var b=this.editor,e=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",e.baseFloatZIndex-2);return a},_attachListeners:function(){var b=CKEDITOR.document.getWindow(),e=this.editor;b.on("scroll",this._uiBuffer.input);b.on("resize",this._uiBuffer.input);
-e.on("change",this._changeBuffer.input);e.on("floatingSpaceLayout",this._layout,this,null,20);e.on("blur",this._layout,this,null,20)},_removeListeners:function(){var b=CKEDITOR.document.getWindow(),e=this.editor;b.removeListener("scroll",this._uiBuffer.input);b.removeListener("resize",this._uiBuffer.input);e.removeListener("change",this._changeBuffer.input);e.removeListener("floatingSpaceLayout",this._layout);e.removeListener("blur",this._layout)},_layout:function(){function b(){e.setStyle("left",
-z(t+h.width-n-v))}var e=this.element,a=this.editor,h=a.ui.contentsElement.getClientRect(),l=a.ui.contentsElement.getDocumentPosition(),m,c,d=e.getClientRect(),g,n=this._notificationWidth,v=this._notificationMargin;g=CKEDITOR.document.getWindow();var x=g.getScrollPosition(),p=g.getViewPaneSize(),q=CKEDITOR.document.getBody(),r=q.getDocumentPosition(),z=CKEDITOR.tools.cssLength;n&&v||(g=this.element.getChild(0),n=this._notificationWidth=g.getClientRect().width,v=this._notificationMargin=parseInt(g.getComputedStyle("margin-left"),
-10)+parseInt(g.getComputedStyle("margin-right"),10));a.toolbar&&(m=a.ui.space(a.config.toolbarLocation),c=m.getClientRect());m&&m.isVisible()&&c.bottom>h.top&&c.bottom<h.bottom-d.height?e.setStyles({position:"fixed",top:z(c.bottom)}):0<h.top?e.setStyles({position:"absolute",top:z(l.y)}):l.y+h.height-d.height>x.y?e.setStyles({position:"fixed",top:0}):e.setStyles({position:"absolute",top:z(l.y+h.height-d.height)});var t="fixed"==e.getStyle("position")?h.left:"static"!=q.getComputedStyle("position")?
-l.x-r.x:l.x;h.width<n+v?l.x+n+v>x.x+p.width?b():e.setStyle("left",z(t)):l.x+n+v>x.x+p.width?e.setStyle("left",z(t)):l.x+h.width/2+n/2+v>x.x+p.width?e.setStyle("left",z(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?e.setStyle("left",z(t-l.x+x.x)):e.setStyle("left",z(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{ariaShortcutSpace}{ariaShortcut}\x3c/span\x3e{arrowHtml}\x3c/a\x3e',
-f=CKEDITOR.addTemplate("buttonArrow",'\x3cspan class\x3d"cke_button_arrow"\x3e'+(CKEDITOR.env.hc?"\x26#9660;":"")+"\x3c/span\x3e"),e=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!==m[c]?m[c]:CKEDITOR.TRISTATE_OFF:CKEDITOR.TRISTATE_DISABLED,c=a.readOnly&&!this.readOnly?CKEDITOR.TRISTATE_DISABLED:c,this.setState(c),this.refresh&&this.refresh())}var m=null,c=CKEDITOR.env,d=this._.id=CKEDITOR.tools.getNextId(),g="",n=this.command,v,x,p;this._.editor=a;var q={id:d,button:this,editor:a,focus:function(){CKEDITOR.document.getById(d).focus()},execute:function(){this.button.click(a)},
-attach:function(a){this.button.attach(a)}},r=CKEDITOR.tools.addFunction(function(a){if(q.onkey)return a=new CKEDITOR.dom.event(a),!1!==q.onkey(q,a.getKeystroke())}),z=CKEDITOR.tools.addFunction(function(a){var c;q.onfocus&&(c=!1!==q.onfocus(q,new CKEDITOR.dom.event(a)));return c}),t=0;q.clickFn=v=CKEDITOR.tools.addFunction(function(){t&&(a.unlockSelection(1),t=0);q.execute();c.iOS&&a.focus()});this.modes?(m={},a.on("beforeModeUnload",function(){a.mode&&this._.state!=CKEDITOR.TRISTATE_DISABLED&&(m[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),g+=n.state==CKEDITOR.TRISTATE_ON?"on":n.state==CKEDITOR.TRISTATE_DISABLED?"disabled":"off");var y;if(this.directional)a.on("contentDirChanged",function(c){var b=CKEDITOR.document.getById(this._.id),d=b.getFirst();c=c.data;c!=a.lang.dir?b.addClass("cke_"+c):b.removeClass("cke_ltr").removeClass("cke_rtl");d.setAttribute("style",
-CKEDITOR.skin.getIconStyle(y,"rtl"==c,this.icon,this.iconOffset))},this);n?(x=a.getCommandKeystroke(n))&&(p=CKEDITOR.tools.keystrokeToString(a.lang.common.keyboard,x)):g+="off";x=this.name||this.command;var u=null,w=this.icon;y=x;this.icon&&!/\./.test(this.icon)?(y=this.icon,w=null):(this.icon&&(u=this.icon),CKEDITOR.env.hidpi&&this.iconHiDpi&&(u=this.iconHiDpi));u?(CKEDITOR.skin.addIcon(u,u),w=null):u=y;g={id:d,name:x,iconName:y,label:this.label,cls:(this.hasArrow?"cke_button_expandable ":"")+(this.className||
-""),state:g,ariaDisabled:"disabled"==g?"true":"false",title:this.title+(p?" ("+p.display+")":""),ariaShortcutSpace:p?"\x26nbsp;":"",ariaShortcut:p?a.lang.common.keyboardShortcut+" "+p.aria:"",titleJs:c.gecko&&!c.hc?"":(this.title||"").replace("'",""),hasArrow:"string"===typeof this.hasArrow&&this.hasArrow||(this.hasArrow?"true":"false"),keydownFn:r,focusFn:z,clickFn:v,style:CKEDITOR.skin.getIconStyle(u,"rtl"==a.lang.dir,w,this.iconOffset),arrowHtml:this.hasArrow?f.output():""};e.output(g,b);if(this.onRender)this.onRender();
-return q},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=e(),d=CKEDITOR.tools.clone(a.config.toolbarGroups)||h(a),g=0;g<d.length;g++){var k=d[g];if("/"!=k){"string"==typeof k&&(k=d[g]={name:k});var q,r=k.groups;if(r)for(var z=0;z<r.length;z++)q=r[z],(q=c[q])&&f(k,q);(q=c[k.name])&&f(k,q)}}return d}function e(){var c=
-{},b,d,g;for(b in a.ui.items)d=a.ui.items[b],g=d.toolbar||"others",g=g.split(","),d=g[0],g=parseInt(g[1]||-1,10),c[d]||(c[d]=[]),c[d].push({name:b,order:g});for(d in c)c[d]=c[d].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 f(c,b){if(b.length){c.items?c.items.push(a.ui.create("-")):c.items=[];for(var g;g=b.shift();)g="string"==typeof g?g:g.name,d&&-1!=CKEDITOR.tools.indexOf(d,g)||(g=a.ui.create(g))&&a.addFeature(g)&&c.items.push(g)}}
-function c(a){var c=[],b,d,g;for(b=0;b<a.length;++b)d=a[b],g={},"/"==d?c.push(d):CKEDITOR.tools.isArray(d)?(f(g,CKEDITOR.tools.clone(d)),c.push(g)):d.items&&(f(g,CKEDITOR.tools.clone(d.items)),g.name=d.name,c.push(g));return c}var d=a.config.removeButtons,d=d&&d.split(","),g=a.config.toolbar;"string"==typeof g&&(g=a.config["toolbar_"+g]);return a.toolbar=g?c(g):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 f=function(){this.toolbars=[];this.focusCommandExecuted=!1};f.prototype.focus=function(){for(var a=0,b;b=this.toolbars[a++];)for(var e=0,f;f=b.items[e++];)if(f.focus){f.focus();
-return}};var e={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,l=function(b,c){var d,g="rtl"==a.lang.dir,e=a.config.toolbarGroupCycling,f=g?37:39,g=g?39:37,e=void 0===e||e;switch(c){case 9:case CKEDITOR.SHIFT+9:for(;!d||!d.items.length;)if(d=9==c?(d?d.next:b.toolbar.next)||
-a.toolbox.toolbars[0]:(d?d.previous:b.toolbar.previous)||a.toolbox.toolbars[a.toolbox.toolbars.length-1],d.items.length)for(b=d.items[h?d.items.length-1:0];b&&!b.focus;)(b=h?b.previous:b.next)||(d=0);b&&b.focus();return!1;case f:d=b;do d=d.next,!d&&e&&(d=b.toolbar.items[0]);while(d&&!d.focus);d?d.focus():l(b,9);return!1;case 40:return b.button&&b.button.hasArrow?b.execute():l(b,40==c?f:g),!1;case g:case 38:d=b;do d=d.previous,!d&&e&&(d=b.toolbar.items[b.toolbar.items.length-1]);while(d&&!d.focus);
-d?d.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(e){if(e.data.space==a.config.toolbarLocation){e.removeListener();a.toolbox=new f;var c=CKEDITOR.tools.getNextId(),d=['\x3cspan id\x3d"',c,'" 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"',c,'" onmousedown\x3d"return false;"\x3e'],
-c=!1!==a.config.toolbarStartupExpanded,g,h;a.config.toolbarCanCollapse&&a.elementMode!=CKEDITOR.ELEMENT_MODE_INLINE&&d.push('\x3cspan class\x3d"cke_toolbox_main"'+(c?"\x3e":' style\x3d"display:none"\x3e'));for(var k=a.toolbox.toolbars,x=b(a),p=x.length,q=0;q<p;q++){var r,z=0,t,y=x[q],u="/"!==y&&("/"===x[q+1]||q==p-1),w;if(y)if(g&&(d.push("\x3c/span\x3e"),h=g=0),"/"===y)d.push('\x3cspan class\x3d"cke_toolbar_break"\x3e\x3c/span\x3e');else{w=y.items||y;for(var B=0;B<w.length;B++){var A=w[B],C;if(A){var D=
-function(c){c=c.render(a,d);E=z.items.push(c)-1;0<E&&(c.previous=z.items[E-1],c.previous.next=c);c.toolbar=z;c.onkey=l;c.onfocus=function(){a.toolbox.focusCommandExecuted||a.focus()}};if(A.type==CKEDITOR.UI_SEPARATOR)h=g&&A;else{C=!1!==A.canGroup;if(!z){r=CKEDITOR.tools.getNextId();z={id:r,items:[]};t=y.name&&(a.lang.toolbar.toolbarGroups[y.name]||y.name);d.push('\x3cspan id\x3d"',r,'" class\x3d"cke_toolbar'+(u?' cke_toolbar_last"':'"'),t?' aria-labelledby\x3d"'+r+'_label"':"",' role\x3d"toolbar"\x3e');
-t&&d.push('\x3cspan id\x3d"',r,'_label" class\x3d"cke_voice_label"\x3e',t,"\x3c/span\x3e");d.push('\x3cspan class\x3d"cke_toolbar_start"\x3e\x3c/span\x3e');var E=k.push(z)-1;0<E&&(z.previous=k[E-1],z.previous.next=z)}C?g||(d.push('\x3cspan class\x3d"cke_toolgroup" role\x3d"presentation"\x3e'),g=1):g&&(d.push("\x3c/span\x3e"),g=0);h&&(D(h),h=0);D(A)}}}g&&(d.push("\x3c/span\x3e"),h=g=0);z&&d.push('\x3cspan class\x3d"cke_toolbar_end"\x3e\x3c/span\x3e\x3c/span\x3e')}}a.config.toolbarCanCollapse&&d.push("\x3c/span\x3e");
-if(a.config.toolbarCanCollapse&&a.elementMode!=CKEDITOR.ELEMENT_MODE_INLINE){var G=CKEDITOR.tools.addFunction(function(){a.execCommand("toolbarCollapse")});a.on("destroy",function(){CKEDITOR.tools.removeFunction(G)});a.addCommand("toolbarCollapse",{readOnly:1,exec:function(a){var c=a.ui.space("toolbar_collapser"),b=c.getPrevious(),d=a.ui.space("contents"),g=b.getParent(),e=parseInt(d.$.style.height,10),f=g.$.offsetHeight,h=c.hasClass("cke_toolbox_collapser_min");h?(b.show(),c.removeClass("cke_toolbox_collapser_min"),
-c.setAttribute("title",a.lang.toolbar.toolbarCollapse)):(b.hide(),c.addClass("cke_toolbox_collapser_min"),c.setAttribute("title",a.lang.toolbar.toolbarExpand));c.getFirst().setText(h?"▲":"◀");d.setStyle("height",e-(g.$.offsetHeight-f)+"px");a.fire("resize",{outerHeight:a.container.$.offsetHeight,contentsHeight:d.$.offsetHeight,outerWidth:a.container.$.offsetWidth})},modes:{wysiwyg:1,source:1}});a.setKeystroke(CKEDITOR.ALT+(CKEDITOR.env.ie||CKEDITOR.env.webkit?189:109),"toolbarCollapse");d.push('\x3ca title\x3d"'+
-(c?a.lang.toolbar.toolbarCollapse:a.lang.toolbar.toolbarExpand)+'" id\x3d"'+a.ui.spaceId("toolbar_collapser")+'" tabIndex\x3d"-1" class\x3d"cke_toolbox_collapser');c||d.push(" cke_toolbox_collapser_min");d.push('" onclick\x3d"CKEDITOR.tools.callFunction('+G+')"\x3e','\x3cspan class\x3d"cke_arrow"\x3e\x26#9650;\x3c/span\x3e',"\x3c/a\x3e")}d.push("\x3c/span\x3e");e.data.html+=d.join("")}});a.on("destroy",function(){if(this.toolbox){var a,c=0,b,g,e;for(a=this.toolbox.toolbars;c<a.length;c++)for(g=a[c].items,
-b=0;b<g.length;b++)e=g[b],e.clickFn&&CKEDITOR.tools.removeFunction(e.clickFn),e.keyDownFn&&CKEDITOR.tools.removeFunction(e.keyDownFn)}});a.on("uiReady",function(){var b=a.ui.space("toolbox");b&&a.focusManager.add(b,1)});a.addCommand("toolbarFocus",e);a.setKeystroke(CKEDITOR.ALT+121,"toolbarFocus");a.ui.add("-",CKEDITOR.UI_SEPARATOR,{});a.ui.addHandler(CKEDITOR.UI_SEPARATOR,{create:function(){return{render:function(a,c){c.push('\x3cspan class\x3d"cke_toolbar_separator" role\x3d"separator"\x3e\x3c/span\x3e');
-return{}}}}})}});CKEDITOR.ui.prototype.addToolbarGroup=function(a,b,e){var f=h(this.editor),c=0===b,d={name:a};if(e){if(e=CKEDITOR.tools.search(f,function(a){return a.name==e})){!e.groups&&(e.groups=[]);if(b&&(b=CKEDITOR.tools.indexOf(e.groups,b),0<=b)){e.groups.splice(b+1,0,a);return}c?e.groups.splice(0,0,a):e.groups.push(a);return}b=null}b&&(b=CKEDITOR.tools.indexOf(f,function(a){return a.name==b}));c?f.splice(0,0,a):"number"==typeof b?f.splice(b+1,0,d):f.push(a)}}(),CKEDITOR.UI_SEPARATOR="separator",
-CKEDITOR.config.toolbarLocation="top","use strict",function(){function b(a,c,b){c.type||(c.type="auto");if(b&&!1===a.fire("beforePaste",c)||!c.dataValue&&c.dataTransfer.isEmpty())return!1;c.dataValue||(c.dataValue="");if(CKEDITOR.env.gecko&&"drop"==c.method&&a.toolbox)a.once("afterPaste",function(){a.toolbox.focus()});return a.fire("paste",c)}function h(a){function c(){var b=a.editable();if(CKEDITOR.plugins.clipboard.isCustomCopyCutSupported){var d=function(c){a.getSelection().isCollapsed()||(a.readOnly&&
-"cut"==c.name||C.initPasteDataTransfer(c,a),c.data.preventDefault())};b.on("copy",d);b.on("cut",d);b.on("cut",function(){a.readOnly||a.extractSelectedHtml()},null,null,999)}b.on(C.mainPasteEvent,function(a){"beforepaste"==C.mainPasteEvent&&D||w(a)});"beforepaste"==C.mainPasteEvent&&(b.on("paste",function(a){E||(f(),a.data.preventDefault(),w(a),l("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(){!D&&k(a)});var e;b.attachListener(CKEDITOR.env.ie?b:a.document.getDocumentElement(),"mouseup",function(){e=setTimeout(B,0)});a.on("destroy",function(){clearTimeout(e)});b.on("keyup",B)}function d(c){return{type:c,canUndo:"cut"==c,startDisabled:!0,fakeKeystroke:"cut"==c?CKEDITOR.CTRL+88:CKEDITOR.CTRL+67,exec:function(){"cut"==this.type&&k();var c;var b=this.type;if(CKEDITOR.env.ie)c=l(b);else try{c=a.document.$.execCommand(b,!1,null)}catch(d){c=!1}c||a.showNotification(a.lang.clipboard[this.type+
-"Error"]);return c}}}function e(){return{canUndo:!1,async:!0,fakeKeystroke:CKEDITOR.CTRL+86,exec:function(a,c){function d(c,f){f="undefined"!==typeof f?f:!0;c?(c.method="paste",c.dataTransfer||(c.dataTransfer=C.initPasteDataTransfer()),b(a,c,f)):e&&!a._.forcePasteDialog&&a.showNotification(n,"info",a.config.clipboard_notificationDuration);a._.forcePasteDialog=!1;a.fire("afterCommandExec",{name:"paste",command:g,returnValue:!!c})}c="undefined"!==typeof c&&null!==c?c:{};var g=this,e="undefined"!==typeof c.notification?
-c.notification:!0,f=c.type,h=CKEDITOR.tools.keystrokeToString(a.lang.common.keyboard,a.getCommandKeystroke(this)),n="string"===typeof e?e: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;f&&!0!==a.config.forcePasteAsPlainText&&"allow-word"!==a.config.forcePasteAsPlainText?a._.nextPasteType=f:delete a._.nextPasteType;"string"===typeof h?d({dataValue:h}):a.getClipboardData(d)}}}function f(){E=1;setTimeout(function(){E=
-0},100)}function h(){D=1;setTimeout(function(){D=0},10)}function l(c){var b=a.document,d=b.getBody(),e=!1,f=function(){e=!0};d.on(c,f);7<CKEDITOR.env.version?b.$.execCommand(c):b.$.selection.createRange().execCommand(c);d.removeListener(c,f);return e}function k(){if(CKEDITOR.env.ie&&!CKEDITOR.env.quirks){var c=a.getSelection(),b,d,e;c.getType()==CKEDITOR.SELECTION_ELEMENT&&(b=c.getSelectedElement())&&(d=c.getRanges()[0],e=a.document.createText(""),e.insertBefore(b),d.setStartBefore(e),d.setEndAfter(b),
-c.selectRanges([d]),setTimeout(function(){b.getParent()&&(e.remove(),c.selectElement(b))},0))}}function m(c,b){var d=a.document,e=a.editable(),f=function(a){a.cancel()},h;if(!d.getById("cke_pastebin")){var n=a.getSelection(),l=n.createBookmarks();CKEDITOR.env.ie&&n.root.fire("selectionchange");var k=new CKEDITOR.dom.element(!CKEDITOR.env.webkit&&!e.is("body")||CKEDITOR.env.ie?"div":"body",d);k.setAttributes({id:"cke_pastebin","data-cke-temp":"1"});var t=0,d=d.getWindow();CKEDITOR.env.webkit?(e.append(k),
-k.addClass("cke_editable"),e.is("body")||(t="static"!=e.getComputedStyle("position")?e:CKEDITOR.dom.element.get(e.$.offsetParent),t=t.getDocumentPosition().y)):e.getAscendant(CKEDITOR.env.ie?"body":"html",1).append(k);k.setStyles({position:"absolute",top:d.getScrollPosition().y-t+10+"px",width:"1px",height:Math.max(1,d.getViewPaneSize().height-20)+"px",overflow:"hidden",margin:0,padding:0});CKEDITOR.env.safari&&k.setStyles(CKEDITOR.tools.cssVendorPrefix("user-select","text"));(t=k.getParent().isReadOnly())?
-(k.setOpacity(0),k.setAttribute("contenteditable",!0)):k.setStyle("ltr"==a.config.contentsLangDirection?"left":"right","-10000px");a.on("selectionChange",f,null,null,0);if(CKEDITOR.env.webkit||CKEDITOR.env.gecko)h=e.once("blur",f,null,null,-100);t&&k.focus();t=new CKEDITOR.dom.range(k);t.selectNodeContents(k);var r=t.select();CKEDITOR.env.ie&&(h=e.once("blur",function(){a.lockSelection(r)}));var q=CKEDITOR.document.getWindow().getScrollPosition().y;setTimeout(function(){CKEDITOR.env.webkit&&(CKEDITOR.document.getBody().$.scrollTop=
-q);h&&h.removeListener();CKEDITOR.env.ie&&e.focus();n.selectBookmarks(l);k.remove();var c;CKEDITOR.env.webkit&&(c=k.getFirst())&&c.is&&c.hasClass("Apple-style-span")&&(k=c);a.removeListener("selectionChange",f);b(k.getHtml())},0)}}function y(){if("paste"==C.mainPasteEvent)return a.fire("beforePaste",{type:"auto",method:"paste"}),!1;a.focus();f();var c=a.focusManager;c.lock();if(a.editable().fire(C.mainPasteEvent)&&!l("paste"))return c.unlock(),!1;c.unlock();return!0}function u(c){if("wysiwyg"==a.mode)switch(c.data.keyCode){case CKEDITOR.CTRL+
-86:case CKEDITOR.SHIFT+45:c=a.editable();f();"paste"==C.mainPasteEvent&&c.fire("beforepaste");break;case CKEDITOR.CTRL+88:case CKEDITOR.SHIFT+46:a.fire("saveSnapshot"),setTimeout(function(){a.fire("saveSnapshot")},50)}}function w(c){var d={type:"auto",method:"paste",dataTransfer:C.initPasteDataTransfer(c)};d.dataTransfer.cacheData();var e=!1!==a.fire("beforePaste",d);e&&C.canClipboardApiBeTrusted(d.dataTransfer,a)?(c.data.preventDefault(),setTimeout(function(){b(a,d)},0)):m(c,function(c){d.dataValue=
-c.replace(/<span[^>]+data-cke-bookmark[^<]*?<\/span>/ig,"");e&&b(a,d)})}function B(){if("wysiwyg"==a.mode){var c=A("paste");a.getCommand("cut").setState(A("cut"));a.getCommand("copy").setState(A("copy"));a.getCommand("paste").setState(c);a.fire("pasteState",c)}}function A(c){var b=a.getSelection(),b=b&&b.getRanges()[0];if((a.readOnly||b&&b.checkReadOnly())&&c in{paste:1,cut:1})return CKEDITOR.TRISTATE_DISABLED;if("paste"==c)return CKEDITOR.TRISTATE_OFF;c=a.getSelection();b=c.getRanges();return c.getType()==
-CKEDITOR.SELECTION_NONE||1==b.length&&b[0].collapsed?CKEDITOR.TRISTATE_DISABLED:CKEDITOR.TRISTATE_OFF}var C=CKEDITOR.plugins.clipboard,D=0,E=0;(function(){a.on("key",u);a.on("contentDom",c);a.on("selectionChange",B);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 c=a.contextMenu.findItemByCommandName("paste");c&&c.element&&(b=c.element.on("touchend",function(){a._.forcePasteDialog=
-!0}))})}if(a.ui.addButton)a.once("instanceReady",function(){a._.pasteButtons&&CKEDITOR.tools.array.forEach(a._.pasteButtons,function(c){if(c=a.ui.get(c))if(c=CKEDITOR.document.getById(c._.id))c.on("touchend",function(){a._.forcePasteDialog=!0})})})})();(function(){function c(b,d,e,f,h){var n=a.lang.clipboard[d];a.addCommand(d,e);a.ui.addButton&&a.ui.addButton(b,{label:n,command:d,toolbar:"clipboard,"+f});a.addMenuItems&&a.addMenuItem(d,{label:n,command:d,group:"clipboard",order:h})}c("Cut","cut",
-d("cut"),10,1);c("Copy","copy",d("copy"),20,4);c("Paste","paste",e(),30,8);a._.pasteButtons||(a._.pasteButtons=[]);a._.pasteButtons.push("Paste")})();a.getClipboardData=function(c,b){function d(a){a.removeListener();a.cancel();b(a.data)}function e(a){a.removeListener();a.cancel();b({type:h,dataValue:a.data.dataValue,dataTransfer:a.data.dataTransfer,method:"paste"})}var f=!1,h="auto";b||(b=c,c=null);a.on("beforePaste",function(a){a.removeListener();f=!0;h=a.data.type},null,null,1E3);a.on("paste",d,
-null,null,0);!1===y()&&(a.removeListener("paste",d),a._.forcePasteDialog&&f&&a.fire("pasteDialog")?(a.on("pasteDialogCommit",e),a.on("dialogHide",function(a){a.removeListener();a.data.removeListener("pasteDialogCommit",e);a.data._.committed||b(null)})):b(null))}}function f(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 e(a,c){function b(a){return CKEDITOR.tools.repeat("\x3c/p\x3e\x3cp\x3e",~~(a/2))+(1==a%2?"\x3cbr\x3e":"")}c=c.replace(/(?!\u3000)\s+/g," ").replace(/> +</g,"\x3e\x3c").replace(/<br ?\/>/gi,"\x3cbr\x3e");c=c.replace(/<\/?[A-Z]+>/g,function(a){return a.toLowerCase()});if(c.match(/^[^<]$/))return c;CKEDITOR.env.webkit&&-1<c.indexOf("\x3cdiv\x3e")&&(c=c.replace(/^(<div>(<br>|)<\/div>)(?!$|(<div>(<br>|)<\/div>))/g,"\x3cbr\x3e").replace(/^(<div>(<br>|)<\/div>){2}(?!$)/g,"\x3cdiv\x3e\x3c/div\x3e"),
-c.match(/<div>(<br>|)<\/div>/)&&(c="\x3cp\x3e"+c.replace(/(<div>(<br>|)<\/div>)+/g,function(a){return b(a.split("\x3c/div\x3e\x3cdiv\x3e").length+1)})+"\x3c/p\x3e"),c=c.replace(/<\/div><div>/g,"\x3cbr\x3e"),c=c.replace(/<\/?div>/g,""));CKEDITOR.env.gecko&&a.enterMode!=CKEDITOR.ENTER_BR&&(CKEDITOR.env.gecko&&(c=c.replace(/^<br><br>$/,"\x3cbr\x3e")),-1<c.indexOf("\x3cbr\x3e\x3cbr\x3e")&&(c="\x3cp\x3e"+c.replace(/(<br>){2,}/g,function(a){return b(a.length/4)})+"\x3c/p\x3e"));return l(a,c)}function a(a){function c(){var a=
-{},b;for(b in CKEDITOR.dtd)"$"!=b.charAt(0)&&"div"!=b&&"span"!=b&&(a[b]=1);return a}var b={};return{get:function(d){return"plain-text"==d?b.plainText||(b.plainText=new CKEDITOR.filter(a,"br")):"semantic-content"==d?((d=b.semanticContent)||(d=new CKEDITOR.filter(a,{}),d.allow({$1:{elements:c(),attributes:!0,styles:!1,classes:!1}}),d=b.semanticContent=d),d):d?new CKEDITOR.filter(a,d):null}}}function k(a,c,b){c=CKEDITOR.htmlParser.fragment.fromHtml(c);var d=new CKEDITOR.htmlParser.basicWriter;b.applyTo(c,
-!0,!1,a.activeEnterMode);c.writeHtml(d);return d.getHtml()}function l(a,c){a.enterMode==CKEDITOR.ENTER_BR?c=c.replace(/(<\/p><p>)+/g,function(a){return CKEDITOR.tools.repeat("\x3cbr\x3e",a.length/7*2)}).replace(/<\/?p>/g,""):a.enterMode==CKEDITOR.ENTER_DIV&&(c=c.replace(/<(\/)?p>/g,"\x3c$1div\x3e"));return c}function m(a){a.data.preventDefault();a.data.$.dataTransfer.dropEffect="none"}function c(a){var c=CKEDITOR.plugins.clipboard;a.on("contentDom",function(){function d(c,e,f){e.select();b(a,{dataTransfer:f,
-method:"drop"},1);f.sourceEditor.fire("saveSnapshot");f.sourceEditor.editable().extractHtmlFromRange(c);f.sourceEditor.getSelection().selectRanges([c]);f.sourceEditor.fire("saveSnapshot")}function e(d,f){d.select();b(a,{dataTransfer:f,method:"drop"},1);c.resetDragDataTransfer()}function f(c,b,d){var e={$:c.data.$,target:c.data.getTarget()};b&&(e.dragRange=b);d&&(e.dropRange=d);!1===a.fire(c.name,e)&&c.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");c.preventDefaultDropOnElement(m);c.preventDefaultDropOnElement(y);k.attachListener(l,"dragstart",f);k.attachListener(a,"dragstart",c.resetDragDataTransfer,c,null,1);k.attachListener(a,"dragstart",function(b){c.initDragDataTransfer(b,a)},null,null,2);k.attachListener(a,"dragstart",function(){var b=c.dragRange=a.getSelection().getRanges()[0];CKEDITOR.env.ie&&10>CKEDITOR.env.version&&(c.dragStartContainerChildCount=
-b?h(b.startContainer):null,c.dragEndContainerChildCount=b?h(b.endContainer):null)},null,null,100);k.attachListener(l,"dragend",f);k.attachListener(a,"dragend",c.initDragDataTransfer,c,null,1);k.attachListener(a,"dragend",c.resetDragDataTransfer,c,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 d=b.data.getTarget();if(!d.isReadOnly()||d.type==CKEDITOR.NODE_ELEMENT&&d.is("html")){var d=c.getRangeAtDropPosition(b,a),e=c.dragRange;d&&f(b,e,d)}}},null,null,9999);k.attachListener(a,"drop",c.initDragDataTransfer,c,null,1);k.attachListener(a,"drop",function(b){if(b=b.data){var f=b.dropRange,h=b.dragRange,k=b.dataTransfer;k.getTransferType(a)==CKEDITOR.DATA_TRANSFER_INTERNAL?
-setTimeout(function(){c.internalDrop(h,f,k,a)},0):k.getTransferType(a)==CKEDITOR.DATA_TRANSFER_CROSS_EDITORS?d(h,f,k):e(f,k)}},null,null,9999)})}var d;CKEDITOR.plugins.add("clipboard",{requires:"dialog,notification,toolbar",init:function(b){function d(a){a=CKEDITOR.tools.array.map(a,function(a){return a.split("/")[1].toUpperCase()}).join(", ");return b.lang.clipboard.fileFormatNotSupportedNotification.replace(/\${formats\}/g,a)}function l(a,c){return CKEDITOR.env.ie&&a.data.fileTransferCancel||!(CKEDITOR.env.ie||
-c&&z!==c.id)?!1:c.isFileTransfer()&&1===c.getFilesCount()}var m,p=a(b);b.config.forcePasteAsPlainText?m="plain-text":b.config.pasteFilter?m=b.config.pasteFilter:!CKEDITOR.env.webkit||"pasteFilter"in b.config||(m="semantic-content");b.pasteFilter=p.get(m);h(b);c(b);CKEDITOR.dialog.add("paste",CKEDITOR.getUrl(this.path+"dialogs/paste.js"));if((CKEDITOR.plugins.clipboard.isCustomDataTypesSupported||CKEDITOR.plugins.clipboard.isFileApiSupported)&&b.config.clipboard_handleImages){var q=["image/png","image/jpeg",
-"image/gif"],r=d(q),z;b.on("paste",function(a){var c=a.data,d=c.dataTransfer;if(!c.dataValue&&l(a,d))if(d=d.getFile(0),-1===CKEDITOR.tools.indexOf(q,d.type))b.showNotification(r,"info",b.config.clipboard_notificationDuration);else{var e=new FileReader;e.addEventListener("load",function(){a.data.dataValue='\x3cimg src\x3d"'+e.result+'" /\x3e';b.fire("paste",a.data)},!1);e.addEventListener("abort",function(){CKEDITOR.env.ie&&(a.data.fileTransferCancel=!0);b.fire("paste",a.data)},!1);e.addEventListener("error",
-function(){CKEDITOR.env.ie&&(a.data.fileTransferCancel=!0);b.fire("paste",a.data)},!1);e.readAsDataURL(d);z=c.dataTransfer.id;a.stop()}},null,null,1)}b.on("paste",function(a){a.data.dataTransfer||(a.data.dataTransfer=new CKEDITOR.plugins.clipboard.dataTransfer);if(!a.data.dataValue){var c=a.data.dataTransfer,d=c.getData("text/html");if(d)a.data.dataValue=d,a.data.type="html";else if(d=c.getData("text/plain"))a.data.dataValue=b.editable().transformPlainTextToHtml(d),a.data.type="text"}},null,null,
-1);b.on("paste",function(a){var c=a.data.dataValue,b=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 d,g,e=new CKEDITOR.dom.element("div");for(e.setHtml(c);1==e.getChildCount()&&(d=e.getFirst())&&d.type==CKEDITOR.NODE_ELEMENT&&(d.hasClass("cke_editable")||d.hasClass("cke_contents"));)e=g=d;g&&(c=g.getHtml().replace(/<br>$/i,""))}CKEDITOR.env.ie?c=c.replace(/^&nbsp;(?: |\r\n)?<(\w+)/g,function(c,d){return d.toLowerCase()in b?(a.data.preSniffing="html","\x3c"+d):c}):CKEDITOR.env.webkit?c=c.replace(/<\/(\w+)><div><br><\/div>$/,
-function(c,d){return d in b?(a.data.endsWithEOL=1,"\x3c/"+d+"\x3e"):c}):CKEDITOR.env.gecko&&(c=c.replace(/(\s)<br>$/,"$1"));a.data.dataValue=c},null,null,3);b.on("paste",function(a){a=a.data;var c=b._.nextPasteType||a.type,d=a.dataValue,h,n=b.config.clipboard_defaultContentType||"html",l=a.dataTransfer.getTransferType(b)==CKEDITOR.DATA_TRANSFER_EXTERNAL,m=!0===b.config.forcePasteAsPlainText;h="html"==c||"html"==a.preSniffing?"html":f(d);delete b._.nextPasteType;"htmlifiedtext"==h&&(d=e(b.config,d));
-if("text"==c&&"html"==h)d=k(b,d,p.get("plain-text"));else if(l&&b.pasteFilter&&!a.dontFilter||m)d=k(b,d,b.pasteFilter);a.startsWithEOL&&(d='\x3cbr data-cke-eol\x3d"1"\x3e'+d);a.endsWithEOL&&(d+='\x3cbr data-cke-eol\x3d"1"\x3e');"auto"==c&&(c="html"==h||"html"==n?"html":"text");a.type=c;a.dataValue=d;delete a.preSniffing;delete a.startsWithEOL;delete a.endsWithEOL},null,null,6);b.on("paste",function(a){a=a.data;a.dataValue&&(b.insertHtml(a.dataValue,a.type,a.range),setTimeout(function(){b.fire("afterPaste")},
-0))},null,null,1E3);b.on("pasteDialog",function(a){setTimeout(function(){b.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,c,b){a.ui.addButton&&
-(a.ui.addButton(c,b),a._.pasteButtons||(a._.pasteButtons=[]),a._.pasteButtons.push(c))},canClipboardApiBeTrusted:function(a,c){return a.getTransferType(c)!=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 c=a.editable();return CKEDITOR.env.ie&&
-9>CKEDITOR.env.version||c.isInline()?c:a.document},fixSplitNodesAfterDrop:function(a,c,b,d){function e(a,b,d){var g=a;g.type==CKEDITOR.NODE_TEXT&&(g=a.getParent());if(g.equals(b)&&d!=b.getChildCount())return a=c.startContainer.getChild(c.startOffset-1),b=c.startContainer.getChild(c.startOffset),a&&a.type==CKEDITOR.NODE_TEXT&&b&&b.type==CKEDITOR.NODE_TEXT&&(d=a.getLength(),a.setText(a.getText()+b.getText()),b.remove(),c.setStart(a,d),c.collapse(!0)),!0}var f=c.startContainer;"number"==typeof d&&"number"==
-typeof b&&f.type==CKEDITOR.NODE_ELEMENT&&(e(a.startContainer,f,b)||e(a.endContainer,f,d))},isDropRangeAffectedByDragRange:function(a,c){var b=c.startContainer,d=c.endOffset;return a.endContainer.equals(b)&&a.endOffset<=d||a.startContainer.getParent().equals(b)&&a.startContainer.getIndex()<d||a.endContainer.getParent().equals(b)&&a.endContainer.getIndex()<d?!0:!1},internalDrop:function(a,c,d,e){var f=CKEDITOR.plugins.clipboard,h=e.editable(),k,l;e.fire("saveSnapshot");e.fire("lockSnapshot",{dontUpdate:1});
-CKEDITOR.env.ie&&10>CKEDITOR.env.version&&this.fixSplitNodesAfterDrop(a,c,f.dragStartContainerChildCount,f.dragEndContainerChildCount);(l=this.isDropRangeAffectedByDragRange(a,c))||(k=a.createBookmark(!1));f=c.clone().createBookmark(!1);l&&(k=a.createBookmark(!1));a=k.startNode;c=k.endNode;l=f.startNode;c&&a.getPosition(l)&CKEDITOR.POSITION_PRECEDING&&c.getPosition(l)&CKEDITOR.POSITION_FOLLOWING&&l.insertBefore(a);a=e.createRange();a.moveToBookmark(k);h.extractHtmlFromRange(a,1);c=e.createRange();
-f.startNode.getCommonAncestor(h)||(f=e.getSelection().createBookmarks()[0]);c.moveToBookmark(f);b(e,{dataTransfer:d,method:"drop",range:c},1);e.fire("unlockSnapshot")},getRangeAtDropPosition:function(a,c){var b=a.data.$,d=b.clientX,e=b.clientY,f=c.getSelection(!0).getRanges()[0],h=c.createRange();if(a.data.testRange)return a.data.testRange;if(document.caretRangeFromPoint&&c.document.$.caretRangeFromPoint(d,e))b=c.document.$.caretRangeFromPoint(d,e),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&&f&&c.editable().hasFocus)return f;if(document.body.createTextRange){c.focus();b=c.document.getBody().$.createTextRange();try{for(var k=!1,l=0;20>l&&!k;l++){if(!k)try{b.moveToPoint(d,e-l),k=!0}catch(m){}if(!k)try{b.moveToPoint(d,e+l),k=!0}catch(u){}}if(k){var w="cke-temp-"+(new Date).getTime();b.pasteHTML('\x3cspan id\x3d"'+w+'"\x3e​\x3c/span\x3e');
-var B=c.document.getById(w);h.moveToPosition(B,CKEDITOR.POSITION_BEFORE_START);B.remove()}else{var A=c.document.$.elementFromPoint(d,e),C=new CKEDITOR.dom.element(A),D;if(C.equals(c.editable())||"html"==C.getName())return f&&f.startContainer&&!f.startContainer.equals(c.editable())?f:null;D=C.getClientRect();d<D.left?h.setStartAt(C,CKEDITOR.POSITION_AFTER_START):h.setStartAt(C,CKEDITOR.POSITION_BEFORE_END);h.collapse(!0)}}catch(E){return null}}else return null}return h},initDragDataTransfer:function(a,
-c){var b=a.data.$?a.data.$.dataTransfer:null,d=new this.dataTransfer(b,c);"dragstart"===a.name&&d.storeId();b?this.dragData&&d.id==this.dragData.id?d=this.dragData:this.dragData=d:this.dragData?d=this.dragData:this.dragData=d;a.data.dataTransfer=d},resetDragDataTransfer:function(){this.dragData=null},initPasteDataTransfer:function(a,c){if(this.isCustomCopyCutSupported){if(a&&a.data&&a.data.$){var b=a.data.$.clipboardData,d=new this.dataTransfer(b,c);"copy"!==a.name&&"cut"!==a.name||d.storeId();this.copyCutData&&
-d.id==this.copyCutData.id?(d=this.copyCutData,d.$=b):this.copyCutData=d;return d}return new this.dataTransfer(null,c)}return new this.dataTransfer(CKEDITOR.env.edge&&a&&a.data.$&&a.data.$.clipboardData||null,c)},preventDefaultDropOnElement:function(a){a&&a.on("dragover",m)}};d=CKEDITOR.plugins.clipboard.isCustomDataTypesSupported?"cke/id":"Text";CKEDITOR.plugins.clipboard.dataTransfer=function(a,c){a&&(this.$=a);this._={metaRegExp:/^<meta.*?>/i,fragmentRegExp:/\s*\x3c!--StartFragment--\x3e|\x3c!--EndFragment--\x3e\s*/g,
-types:[],data:{},files:[],nativeHtmlCache:"",normalizeType:function(a){a=a.toLowerCase();return"text"==a||"text/plain"==a?"Text":"url"==a?"URL":"files"===a?"Files":a}};this._.fallbackDataTransfer=new CKEDITOR.plugins.clipboard.fallbackDataTransfer(this);this.id=this.getData(d);this.id||(this.id="Text"==d?"":"cke-"+CKEDITOR.tools.getUniqueId());c&&(this.sourceEditor=c,this.setData("text/html",c.getSelectedHtml(1)),"Text"==d||this.getData("text/plain")||this.setData("text/plain",c.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,c){a=this._.normalizeType(a);var b="text/html"==a&&c?this._.nativeHtmlCache:this._.data[a];if(void 0===b||null===b||""===b){if(this._.fallbackDataTransfer.isRequired())b=this._.fallbackDataTransfer.getData(a,c);else try{b=this.$.getData(a)||""}catch(d){b=""}"text/html"!=a||c||(b=this._stripHtml(b))}"Text"==a&&CKEDITOR.env.gecko&&
-this.getFilesCount()&&"file://"==b.substring(0,7)&&(b="");if("string"===typeof b)var e=b.indexOf("\x3c/html\x3e"),b=-1!==e?b.substring(0,e+7):b;return b},setData:function(a,c){a=this._.normalizeType(a);"text/html"==a?(this._.data[a]=this._stripHtml(c),this._.nativeHtmlCache=c):this._.data[a]=c;if(CKEDITOR.plugins.clipboard.isCustomDataTypesSupported||"URL"==a||"Text"==a)if("Text"==d&&"Text"==a&&(this.id=c),this._.fallbackDataTransfer.isRequired())this._.fallbackDataTransfer.setData(a,c);else try{this.$.setData(a,
-c)}catch(b){}},storeId:function(){"Text"!==d&&this.setData(d,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(b){b=c._.normalizeType(b);var d=c.getData(b);"text/html"==b&&(c._.nativeHtmlCache=c.getData(b,!0),d=c._stripHtml(d));d&&(c._.data[b]=d);c._.types.push(b)}if(this.$){var c=this,b,d,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");d=this._getImageFromClipboard();if((e=this.$&&this.$.files||null)||d){this._.files=[];if(e&&e.length)for(b=0;b<e.length;b++)this._.files.push(e[b]);0===this._.files.length&&d&&this._.files.push(d)}}},getFilesCount:function(){if(this._.files.length)return this._.files.length;var a=this.$&&this.$.files||null;return a&&a.length?a.length:this._getImageFromClipboard()?1:0},getFile:function(a){if(this._.files.length)return this._.files[a];
-var c=this.$&&this.$.files||null;return c&&c.length?c[a]:0===a?this._getImageFromClipboard():void 0},isFileTransfer:function(){var a=this.getTypes(),a=CKEDITOR.tools.array.filter(a,function(a){return"application/x-moz-file"!==a});return 1===a.length&&"files"===a[0].toLowerCase()},isEmpty:function(){var a={},c;if(this.getFilesCount())return!1;CKEDITOR.tools.array.forEach(CKEDITOR.tools.object.keys(this._.data),function(c){a[c]=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"!=d&&(a[d]=0);for(c in a)if(a[c]&&""!==this.getData(c))return!1;return!0},getTypes:function(){return 0<this._.types.length?this._.types: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(c){}},_stripHtml:function(a){function c(a){var b=new CKEDITOR.htmlParser,d,g;b.onTagOpen=function(a){"body"===
-a&&(d=b._.htmlPartsRegex.lastIndex)};b.onTagClose=function(a){"body"===a&&(g=b._.htmlPartsRegex.lastIndex)};b.parse(a);return"number"!==typeof d||"number"!==typeof g?a:a.substring(d,g).replace(/<\/body\s*>$/gi,"")}a&&a.length&&(a=c(a),a=a.replace(this._.metaRegExp,""),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,c=this._dataTransfer.$;if(null===a._isCustomMimeTypeSupported)if(c){a._isCustomMimeTypeSupported=!1;if(CKEDITOR.env.edge&&17<=CKEDITOR.env.version)return!0;try{c.setData("cke/mimetypetest","cke test value"),a._isCustomMimeTypeSupported="cke test value"===c.getData("cke/mimetypetest"),c.clearData("cke/mimetypetest")}catch(b){}}else return!1;
-return!a._isCustomMimeTypeSupported},getData:function(a,c){var b=this._getData(this._customDataFallbackType,!0);if(c)return b;var b=this._extractDataComment(b),d=null,d=a===this._customDataFallbackType?b.content:b.data&&b.data[a]?b.data[a]:this._getData(a,!0);return null!==d?d:""},setData:function(a,c){var b=a===this._customDataFallbackType;b&&(c=this._applyDataComment(c,this._getFallbackTypeData()));var d=c,e=this._dataTransfer.$;try{e.setData(a,d),b&&(this._dataTransfer._.nativeHtmlCache=d)}catch(f){if(this._isUnsupportedMimeTypeError(f)){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]=d;try{d=this._applyDataComment(b,h),e.setData(this._customDataFallbackType,d),this._dataTransfer._.nativeHtmlCache=d}catch(k){d=""}}}return d},_getData:function(a,c){var b=this._dataTransfer._.data;if(!c&&b[a])return b[a];try{return this._dataTransfer.$.getData(a)}catch(d){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,c=this._extractDataComment(this._getData(this._customDataFallbackType,!0)).data||{},b=this._dataTransfer._.data;CKEDITOR.tools.array.forEach(a,function(a){void 0!==b[a]?c[a]=b[a]:void 0!==c[a]&&(c[a]=c[a])},this);return c},_isUnsupportedMimeTypeError:function(a){return a.message&&
--1!==a.message.search(/element not found/gi)},_extractDataComment:function(a){var c={data:null,content:a||""};if(a&&16<a.length){var b;(b=/\x3c!--cke-data:(.*?)--\x3e/g.exec(a))&&b[1]&&(c.data=JSON.parse(decodeURIComponent(b[1])),c.content=a.replace(b[0],""))}return c},_applyDataComment:function(a,c){var b="";c&&CKEDITOR.tools.object.keys(c).length&&(b="\x3c!--cke-data:"+encodeURIComponent(JSON.stringify(c))+"--\x3e");return b+(a&&a.length?a:"")}}}(),CKEDITOR.config.clipboard_notificationDuration=
-1E4,CKEDITOR.config.clipboard_handleImages=!0,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'),f=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(e,a){var k={editorId:e.id,id:this.id,langCode:e.langCode,dir:e.lang.dir,cls:this.className,frame:"",env:CKEDITOR.env.cssClass,"z-index":e.config.baseFloatZIndex+1};this.getHolderElement=function(){var a=this._.holder;if(!a){if(this.isFramed){var a=this.document.getById(this.id+"_frame"),c=a.getParent(),a=a.getFrameDocument();CKEDITOR.env.iOS&&c.setStyles({overflow:"scroll","-webkit-overflow-scrolling":"touch"});c=CKEDITOR.tools.addFunction(CKEDITOR.tools.bind(function(){this.isLoaded=
-!0;if(this.onLoad)this.onLoad()},this));a.write(f.output(CKEDITOR.tools.extend({css:CKEDITOR.tools.buildStyleHtml(this.css),onload:"window.parent.CKEDITOR.tools.callFunction("+c+");"},k)));a.getWindow().$.CKEDITOR=CKEDITOR;a.on("keydown",function(a){var c=a.data.getKeystroke(),b=this.document.getById(this.id).getAttribute("dir");if("input"!==a.data.getTarget().getName()||37!==c&&39!==c)this._.onKeyDown&&!1===this._.onKeyDown(c)?"input"===a.data.getTarget().getName()&&32===c||a.data.preventDefault():
-(27==c||c==("rtl"==b?39:37))&&this.onEscape&&!1===this.onEscape(c)&&a.data.preventDefault()},this);a=a.getBody();a.unselectable();CKEDITOR.env.air&&CKEDITOR.tools.callFunction(c)}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();")+"}())":"";k.frame=h.output({id:this.id+"_frame",
-src:l})}l=b.output(k);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,f=!this.forceIFrame||CKEDITOR.env.ie?this._.holder:this.document.getById(this.id+"_frame");a&&a.hide();this._.currentBlock=b;CKEDITOR.fire("ariaWidget",f);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")},f=this._.getItems(),h,m,c=f.count()-1;0<=c;c--)if(h=f.getItem(c),h.getAscendant(a)||(m=h,this._.focusIndex=
-c),"true"==h.getAttribute("aria-selected")){m=h;this._.focusIndex=c;break}m&&(b&&b(),CKEDITOR.env.webkit&&m.getDocument().getWindow().focus(),m.focus(),this.onMark&&this.onMark(m))},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 f=this.keys[b];switch(f){case "next":for(var h=this._.focusIndex,f=this._.getItems(),
-m;m=f.getItem(++h);)if(m.getAttribute("_cke_focus")&&m.$.offsetWidth){this._.focusIndex=h;m.focus(!0);break}return m||a?!1:(this._.focusIndex=-1,this.onKeyDown(b,1));case "prev":h=this._.focusIndex;for(f=this._.getItems();0<h&&(m=f.getItem(--h));){if(m.getAttribute("_cke_focus")&&m.$.offsetWidth){this._.focusIndex=h;m.focus(!0);break}m=null}return m||a?!1:(this._.focusIndex=f.count(),this.onKeyDown(b,1));case "click":case "mouseup":return h=this._.focusIndex,(m=0<=h&&this._.getItems().getItem(h))&&
-m.fireEventHandler(f,{button:CKEDITOR.tools.normalizeMouseButton(CKEDITOR.MOUSE_BUTTON_LEFT,!0)}),!1}return!0}}})}(),CKEDITOR.plugins.add("floatpanel",{requires:"panel"}),function(){function b(b,e,a,k,l){l=CKEDITOR.tools.genKey(e.getUniqueId(),a.getUniqueId(),b.lang.dir,b.uiColor||"",k.css||"",l||"");var m=h[l];m||(m=h[l]=new CKEDITOR.ui.panel(e,k),m.element=a.append(CKEDITOR.dom.element.createFromHtml(m.render(b),e)),m.element.setStyles({display:"none",position:"absolute"}));return m}var h={};CKEDITOR.ui.floatPanel=
-CKEDITOR.tools.createClass({$:function(f,e,a,h){function l(){g.hide()}a.forceIFrame=1;a.toolbarRelated&&f.elementMode==CKEDITOR.ELEMENT_MODE_INLINE&&(e=CKEDITOR.document.getById("cke_"+f.name));var m=e.getDocument();h=b(f,m,e,a,h||0);var c=h.element,d=c.getFirst(),g=this;c.disableContextMenu();this.element=c;this._={editor:f,panel:h,parentElement:e,definition:a,document:m,iframe:d,children:[],dir:f.lang.dir,showBlockParams:null,markFirst:void 0!==a.markFirst?a.markFirst:!0};f.on("mode",l);f.on("resize",
-l);m.getWindow().on("resize",function(){this.reposition()},this)},proto:{addBlock:function(b,e){return this._.panel.addBlock(b,e)},addListBlock:function(b,e){return this._.panel.addListBlock(b,e)},getBlock:function(b){return this._.panel.getBlock(b)},showBlock:function(b,e,a,h,l,m){var c=this._.panel,d=c.showBlock(b);this._.showBlockParams=[].slice.call(arguments);this.allowBlur(!1);var g=this._.editor.editable();this._.returnFocus=g.hasFocus?g:new CKEDITOR.dom.element(CKEDITOR.document.$.activeElement);
-this._.hideTimeout=0;var n=this.element,g=this._.iframe,g=CKEDITOR.env.ie&&!CKEDITOR.env.edge?g:new CKEDITOR.dom.window(g.$.contentWindow),v=n.getDocument(),x=this._.parentElement.getPositionedAncestor(),p=e.getDocumentPosition(v),v=x?x.getDocumentPosition(v):{x:0,y:0},q="rtl"==this._.dir,r=p.x+(h||0)-v.x,z=p.y+(l||0)-v.y;!q||1!=a&&4!=a?q||2!=a&&3!=a||(r+=e.$.offsetWidth-1):r+=e.$.offsetWidth;if(3==a||4==a)z+=e.$.offsetHeight-1;this._.panel._.offsetParentId=e.getId();n.setStyles({top:z+"px",left:0,
-display:""});n.setOpacity(0);n.getFirst().removeStyle("width");this._.editor.focusManager.add(g);this._.blurSet||(CKEDITOR.event.useCapture=!0,g.on("blur",function(a){function c(){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(c,0,this)):c.call(this))},this),g.on("focus",function(){this._.focused=!0;this.hideChild();this.allowBlur(!0)},
-this),CKEDITOR.env.iOS&&(g.on("touchstart",function(){clearTimeout(this._.hideTimeout)},this),g.on("touchend",function(){this._.hideTimeout=0;this.focus()},this)),CKEDITOR.event.useCapture=!1,this._.blurSet=1);c.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(d.autoSize){var b=d.element.getDocument(),b=(CKEDITOR.env.webkit||CKEDITOR.env.edge?
-d.element:b.getBody()).$.scrollWidth;CKEDITOR.env.ie&&CKEDITOR.env.quirks&&0<b&&(b+=(a.$.offsetWidth||0)-(a.$.clientWidth||0)+3);a.setStyle("width",b+10+"px");b=d.element.$.scrollHeight;CKEDITOR.env.ie&&CKEDITOR.env.quirks&&0<b&&(b+=(a.$.offsetHeight||0)-(a.$.clientHeight||0)+3);a.setStyle("height",b+"px");c._.currentBlock.element.setStyle("display","none").removeStyle("display")}else a.removeStyle("height");q&&(r-=n.$.offsetWidth);n.setStyle("left",r+"px");var b=c.element.getWindow(),a=n.$.getBoundingClientRect(),
-b=b.getViewPaneSize(),g=a.width||a.right-a.left,e=a.height||a.bottom-a.top,f=q?a.right:b.width-a.left,h=q?b.width-a.right:a.left;q?f<g&&(r=h>g?r+g:b.width>g?r-a.left:r-a.right+b.width):f<g&&(r=h>g?r-g:b.width>g?r-a.right+b.width:r-a.left);g=a.top;b.height-a.top<e&&(z=g>e?z-e:b.height>e?z-a.bottom+b.height:z-a.top);CKEDITOR.env.ie&&!CKEDITOR.env.edge&&((b=a=n.$.offsetParent&&new CKEDITOR.dom.element(n.$.offsetParent))&&"html"==b.getName()&&(b=b.getDocument().getBody()),b&&"rtl"==b.getComputedStyle("direction")&&
-(r=CKEDITOR.env.ie8Compat?r-2*n.getDocument().getDocumentElement().$.scrollLeft:r-(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:z+"px",left:r+"px"});n.setOpacity(1);m&&m()},this);c.isLoaded?a():c.onLoad=a;CKEDITOR.tools.setTimeout(function(){var a=CKEDITOR.env.webkit&&CKEDITOR.document.getWindow().getScrollPosition().y;this.focus();d.element.focus();CKEDITOR.env.webkit&&
-(CKEDITOR.document.getBody().$.scrollTop=a);this.allowBlur(!0);this._.markFirst&&(CKEDITOR.env.ie?CKEDITOR.tools.setTimeout(function(){d.markFirstDisplayed?d.markFirstDisplayed():d._.markFirstDisplayed()},0):d.markFirstDisplayed?d.markFirstDisplayed():d._.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 e=this._.panel;void 0!==b&&(e.allowBlur=b);return e.allowBlur},showAsChild:function(b,e,a,h,l,m){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(e,a,h,l,m),this.blur(),(CKEDITOR.env.ie7Compat||CKEDITOR.env.ie6Compat)&&setTimeout(function(){b.element.getChild(0).$.style.cssText+=""},100)},hideChild:function(b){var e=this._.activeChild;e&&(delete e.onHide,delete this._.activeChild,e.hide(),b&&this.focus())}}});CKEDITOR.on("instanceDestroyed",function(){var b=CKEDITOR.tools.isEmpty(CKEDITOR.instances),
-e;for(e in h){var a=h[e];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(","),f=b._.menuGroups={},e=b._.menuItems={},a=0;a<h.length;a++)f[h[a]]=a+1;b.addMenuGroup=function(a,b){f[a]=b||100};b.addMenuItem=function(a,b){f[b.group]&&(e[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 e[a]};b.removeMenuItem=
-function(a){delete e[a]}}}),function(){function b(a){a.sort(function(a,c){return a.group<c.group?-1:a.group>c.group?1:a.order<c.order?-1:a.order>c.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"',
-f="";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&&(f='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"'+f+'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',e=CKEDITOR.addTemplate("menuItem",h),a=CKEDITOR.addTemplate("menuArrow",
-'\x3cspan class\x3d"cke_menuarrow"\x3e\x3cspan\x3e{label}\x3c/span\x3e\x3c/span\x3e'),k=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 c=CKEDITOR.tools.extend({},b.panel,{css:[CKEDITOR.skin.getPath("editor")],level:this._.level-
-1,block:{}}),d=c.block.attributes=c.attributes||{};!d.role&&(d.role="menu");this._.panelDefinition=c},_:{onShow:function(){var a=this.editor.getSelection(),b=a&&a.getStartElement(),c=this.editor.elementPath(),d=this._.listeners;this.removeAll();for(var g=0;g<d.length;g++){var e=d[g](b,a,c);if(e)for(var f in e){var h=this.editor.getMenuItem(f);!h||h.command&&!this.editor.getCommand(h.command).state||(h.state=e[f],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,c=this.items[a];if(c=c.getItems&&c.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 d in c){var g=this.editor.getMenuItem(d);
-g&&(g.state=c[d],b.add(g))}var e=this._.panel.getBlock(this.id).element.getDocument().getById(this.id+String(a));setTimeout(function(){b.show(e,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,e,c,d){if(!this.parent&&(this._.onShow(),!this.items.length))return;e=e||("rtl"==this.editor.lang.dir?2:1);var g=this.items,f=this.editor,h=this._.panel,k=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);k=h.addBlock(this.id,this._.panelDefinition.block);k.autoSize=!0;var p=k.keys;p[40]="next";p[9]="next";p[38]="prev";p[CKEDITOR.SHIFT+
-9]="prev";p["rtl"==f.lang.dir?37:39]=CKEDITOR.env.ie?"mouseup":"click";p[32]=CKEDITOR.env.ie?"mouseup":"click";CKEDITOR.env.ie&&(p[13]="mouseup");k=this._.element=k.element;p=k.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,f.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(g);for(var p=f.elementPath(),p=['\x3cdiv class\x3d"cke_menu'+(p&&p.direction()!=f.lang.dir?" cke_mixed_dir_content":"")+'" role\x3d"presentation"\x3e'],q=g.length,r=q&&g[0].group,z=0;z<q;z++){var t=
-g[z];r!=t.group&&(p.push('\x3cdiv class\x3d"cke_menuseparator" role\x3d"separator"\x3e\x3c/div\x3e'),r=t.group);t.render(this,z,p)}p.push("\x3c/div\x3e");k.setHtml(p.join(""));CKEDITOR.ui.fire("ready",this);this.parent?this.parent._.panel.showAsChild(h,this.id,a,e,c,d):h.showBlock(this.id,a,e,c,d);f.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(c){return a===c.command});return b.length?(b=b[0],{item:b,element:this._.element.findOne("."+b.className)}):null}}});CKEDITOR.menuItem=CKEDITOR.tools.createClass({$:function(a,b,c){CKEDITOR.tools.extend(this,c,{order:0,className:"cke_menubutton__"+b});this.group=a._.menuGroups[this.group];this.editor=a;this.name=b},proto:{render:function(b,f,c){var d=b.id+String(f),g="undefined"==typeof this.state?CKEDITOR.TRISTATE_OFF:this.state,h="",v=this.editor,x,p,q=g==CKEDITOR.TRISTATE_ON?"on":g==CKEDITOR.TRISTATE_DISABLED?
-"disabled":"off";this.role in{menuitemcheckbox:1,menuitemradio:1}&&(h=' aria-checked\x3d"'+(g==CKEDITOR.TRISTATE_ON?"true":"false")+'"');var r=this.getItems,z="\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:d,name:this.name,iconName:t,label:this.label,
-attrLabel:x,cls:this.className||"",state:q,hasPopup:r?"true":"false",disabled:g==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:f,iconStyle:CKEDITOR.skin.getIconStyle(t,"rtl"==this.editor.lang.dir,t==this.icon?null:this.icon,this.iconOffset),shortcutHtml:p?k.output({shortcut:p.display}):"",arrowHtml:r?
-a.output({label:z}):"",role:this.role?this.role:"menuitem",ariaChecked:h};e.output(b,c)}}})}(),CKEDITOR.config.menu_groups="clipboard,form,tablecell,tablecellproperties,tablerow,tablecolumn,table,anchor,link,image,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 f(){a=!1}var e,a;b.on("contextmenu",function(b){b=b.data;var f=CKEDITOR.env.webkit?e:CKEDITOR.env.mac?b.$.metaKey:b.$.ctrlKey;if(!h||!f)if(b.preventDefault(),!a){if(CKEDITOR.env.mac&&CKEDITOR.env.webkit){var f=this.editor,c=(new CKEDITOR.dom.elementPath(b.getTarget(),f.editable())).contains(function(a){return a.hasAttribute("contenteditable")},!0);c&&"false"==c.getAttribute("contenteditable")&&
-f.getSelection().fake(c)}var c=b.getTarget().getDocument(),d=b.getTarget().getDocument().getDocumentElement(),f=!c.equals(CKEDITOR.document),c=c.getWindow().getScrollPosition(),g=f?b.$.clientX:b.$.pageX||c.x+b.$.clientX,k=f?b.$.clientY:b.$.pageY||c.y+b.$.clientY;CKEDITOR.tools.setTimeout(function(){this.open(d,null,g,k)},CKEDITOR.env.ie?200:0,this)}},this);if(CKEDITOR.env.webkit){var k=function(){e=0};b.on("keydown",function(a){e=CKEDITOR.env.mac?a.data.$.metaKey:a.data.$.ctrlKey});b.on("keyup",k);
-b.on("contextmenu",k)}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",f),b.on("contextmenu",f))},open:function(b,h,f,e){!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,f,e))}}})},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 e=0,a=0,h=b.getSelection().getRanges(),h=h[h.length-1].getClientRects(b.editable().isInline());if(h=h[h.length-1])e=h["rtl"===b.lang.dir?"left":"right"],a=h.bottom;b.contextMenu.open(b.document.getBody().getParent(),null,e,a)}});b.setKeystroke(CKEDITOR.SHIFT+121,"contextMenu");b.setKeystroke(CKEDITOR.CTRL+CKEDITOR.SHIFT+121,"contextMenu")}}),function(){function b(a,
-b){function f(c){c=g.list[c];var b;c.equals(a.editable())||"true"==c.getAttribute("contenteditable")?(b=a.createRange(),b.selectNodeContents(c),b=b.select()):(b=a.getSelection(),b.selectElement(c));CKEDITOR.env.ie&&a.fire("selectionChange",{selection:b,path:new CKEDITOR.dom.elementPath(c)});a.focus()}function m(){d&&d.setHtml('\x3cspan class\x3d"cke_path_empty"\x3e\x26nbsp;\x3c/span\x3e');delete g.list}var c=a.ui.spaceId("path"),d,g=a._.elementsPath,n=g.idBase;b.html+='\x3cspan id\x3d"'+c+'_label" class\x3d"cke_voice_label"\x3e'+
-a.lang.elementspath.eleLabel+'\x3c/span\x3e\x3cspan id\x3d"'+c+'" class\x3d"cke_path" role\x3d"group" aria-labelledby\x3d"'+c+'_label"\x3e\x3cspan class\x3d"cke_path_empty"\x3e\x26nbsp;\x3c/span\x3e\x3c/span\x3e';a.on("uiReady",function(){var c=a.ui.space("path");c&&a.focusManager.add(c,1)});g.onClick=f;var v=CKEDITOR.tools.addFunction(f),x=CKEDITOR.tools.addFunction(function(c,b){var d=g.idBase,e;b=new CKEDITOR.dom.event(b);e="rtl"==a.lang.dir;switch(b.getKeystroke()){case e?39:37:case 9:return(e=
-CKEDITOR.document.getById(d+(c+1)))||(e=CKEDITOR.document.getById(d+"0")),e.focus(),!1;case e?37:39:case CKEDITOR.SHIFT+9:return(e=CKEDITOR.document.getById(d+(c-1)))||(e=CKEDITOR.document.getById(d+(g.list.length-1))),e.focus(),!1;case 27:return a.focus(),!1;case 13:case 32:return f(c),!1}return!0});a.on("selectionChange",function(b){for(var f=[],h=g.list=[],k=[],l=g.filters,m=!0,u=b.data.path.elements,w=u.length;w--;){var B=u[w],A=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")||(A=1);for(var C=0;C<l.length;C++){var D=l[C](B,b);if(!1===D){A=1;break}b=D||b}A||(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=e.output({id:n+l,label:m,text:b,jsTitle:"javascript:void('"+b+"')",index:l,keyDownFn:x,clickFn:v}),f.unshift(b);d||(d=CKEDITOR.document.getById(c));
-k=d;k.setHtml(f.join("")+'\x3cspan class\x3d"cke_path_empty"\x3e\x26nbsp;\x3c/span\x3e');a.fire("elementsPathUpdate",{space:k})});a.on("readOnly",m);a.on("contentDomUnload",m);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)}}},f="";CKEDITOR.env.gecko&&CKEDITOR.env.mac&&(f+=' onkeypress\x3d"return false;"');
-CKEDITOR.env.gecko&&(f+=' onblur\x3d"this.style.cssText \x3d this.style.cssText;"');var e=CKEDITOR.addTemplate("pathItem",'\x3ca id\x3d"{id}" href\x3d"{jsTitle}" tabindex\x3d"-1" class\x3d"cke_path_item" title\x3d"{label}"'+f+' 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(e){"bottom"==e.data.space&&b(a,e.data)})}})}(),function(){function b(a,c,b){b=a.config.forceEnterMode||b;if("wysiwyg"==a.mode){c||(c=a.activeEnterMode);var e=a.elementPath();e&&!e.isContextFor("p")&&(c=CKEDITOR.ENTER_BR,b=1);a.fire("saveSnapshot");c==CKEDITOR.ENTER_BR?l(a,c,null,b):m(a,c,null,b);a.fire("saveSnapshot")}}function h(a){a=
-a.getSelection().getRanges(!0);for(var c=a.length-1;0<c;c--)a[c].deleteContents();return a[0]}function f(a){var c=a.startContainer.getAscendant(function(a){return a.type==CKEDITOR.NODE_ELEMENT&&"true"==a.getAttribute("contenteditable")},!0);if(a.root.equals(c))return a;c=new CKEDITOR.dom.range(c);c.moveToRange(a);return c}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 e=CKEDITOR.dom.walker.whitespaces(),a=CKEDITOR.dom.walker.bookmark(),k,l,m,c;CKEDITOR.plugins.enterkey={enterBlock:function(b,g,k,m){function x(a){var c;if(a===CKEDITOR.ENTER_BR||-1===CKEDITOR.tools.indexOf(["td","th"],z.lastElement.getName())||1!==z.lastElement.getChildCount())return!1;a=z.lastElement.getChild(0).clone(!0);(c=a.getBogus())&&c.remove();return a.getText().length?
-!1:!0}if(k=k||h(b)){k=f(k);var p=k.document,q=k.checkStartOfBlock(),r=k.checkEndOfBlock(),z=b.elementPath(k.startContainer),t=z.block,y=g==CKEDITOR.ENTER_DIV?"div":"p",u;if(t&&q&&r){q=t.getParent();if(q.is("li")&&1<q.getChildCount()){p=new CKEDITOR.dom.element("li");u=b.createRange();p.insertAfter(q);t.remove();u.setStart(p,0);b.getSelection().selectRanges([u]);return}if(t.is("li")||t.getParent().is("li")){t.is("li")||(t=t.getParent(),q=t.getParent());u=q.getParent();k=!t.hasPrevious();var w=!t.hasNext();
-m=b.getSelection();var y=m.createBookmarks(),B=t.getDirection(1),r=t.getAttribute("class"),A=t.getAttribute("style"),C=u.getDirection(1)!=B;b=b.enterMode!=CKEDITOR.ENTER_BR||C||A||r;if(u.is("li"))k||w?(k&&w&&q.remove(),t[w?"insertAfter":"insertBefore"](u)):t.breakParent(u);else{if(b)if(z.block.is("li")?(u=p.createElement(g==CKEDITOR.ENTER_P?"p":"div"),C&&u.setAttribute("dir",B),A&&u.setAttribute("style",A),r&&u.setAttribute("class",r),t.moveChildren(u)):u=z.block,k||w)u[k?"insertBefore":"insertAfter"](q);
-else t.breakParent(q),u.insertAfter(q);else if(t.appendBogus(!0),k||w)for(;p=t[k?"getFirst":"getLast"]();)p[k?"insertBefore":"insertAfter"](q);else for(t.breakParent(q);p=t.getLast();)p.insertAfter(q);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();k.moveToElementEditStart(t);k.select();
-return}}else if(t&&t.is("pre")&&!r){l(b,g,k,m);return}if(A=k.splitBlock(y)){b=A.previousBlock;t=A.nextBlock;q=A.wasStartOfBlock;r=A.wasEndOfBlock;t?(w=t.getParent(),w.is("li")&&(t.breakParent(w),t.move(t.getNext(),1))):b&&(w=b.getParent())&&w.is("li")&&(b.breakParent(w),w=b.getNext(),k.moveToElementEditStart(w),b.move(b.getPrevious()));if(q||r)if(x(g))k.moveToElementEditStart(k.getTouchedStartNode());else{if(b){if(b.is("li")||!c.test(b.getName())&&!b.is("pre"))u=b.clone()}else t&&(u=t.clone());u?
-m&&!u.is("li")&&u.renameNode(y):w&&w.is("li")?u=w:(u=p.createElement(y),b&&(B=b.getDirection())&&u.setAttribute("dir",B));if(p=A.elementPath)for(g=0,m=p.elements.length;g<m;g++){y=p.elements[g];if(y.equals(p.block)||y.equals(p.blockLimit))break;CKEDITOR.dtd.$removeEmpty[y.getName()]&&(y=y.clone(),u.moveChildren(y),u.append(y))}u.appendBogus();u.getParent()||k.insertNode(u);u.is("li")&&u.removeAttribute("value");!CKEDITOR.env.ie||!q||r&&b.getChildCount()||(k.moveToElementEditStart(r?b:u),k.select());
-k.moveToElementEditStart(q&&!r?t:u)}else t.is("li")&&(u=k.clone(),u.selectNodeContents(t),u=new CKEDITOR.dom.walker(u),u.evaluator=function(c){return!(a(c)||e(c)||c.type==CKEDITOR.NODE_ELEMENT&&c.getName()in CKEDITOR.dtd.$inline&&!(c.getName()in CKEDITOR.dtd.$empty))},(w=u.next())&&w.type==CKEDITOR.NODE_ELEMENT&&w.is("ul","ol")&&(CKEDITOR.env.needsBrFiller?p.createElement("br"):p.createText(" ")).insertBefore(w)),t&&k.moveToElementEditStart(t);k.select();k.scrollIntoView()}}},enterBr:function(a,b,
-e,f){if(e=e||h(a)){var k=e.document,l=e.checkEndOfBlock(),q=new CKEDITOR.dom.elementPath(a.getSelection().getStartElement()),r=q.block,z=r&&q.block.getName();f||"li"!=z?(!f&&l&&c.test(z)?(l=r.getDirection())?(k=k.createElement("div"),k.setAttribute("dir",l),k.insertAfter(r),e.setStart(k,0)):(k.createElement("br").insertAfter(r),CKEDITOR.env.gecko&&k.createText("").insertAfter(r),e.setStartAt(r.getNext(),CKEDITOR.env.ie?CKEDITOR.POSITION_BEFORE_START:CKEDITOR.POSITION_AFTER_START)):(a="pre"==z&&CKEDITOR.env.ie&&
-8>CKEDITOR.env.version?k.createText("\r"):k.createElement("br"),e.deleteContents(),e.insertNode(a),CKEDITOR.env.needsBrFiller?(k.createText("").insertAfter(a),l&&(r||q.blockLimit).appendBogus(),a.getNext().$.nodeValue="",e.setStartAt(a.getNext(),CKEDITOR.POSITION_AFTER_START)):e.setStartAt(a,CKEDITOR.POSITION_AFTER_END)),e.collapse(!0),e.select(),e.scrollIntoView()):m(a,b,e,f)}}};k=CKEDITOR.plugins.enterkey;l=k.enterBr;m=k.enterBlock;c=/^h[1-6]$/}(),function(){function b(b,f){var e={},a=[],k={nbsp:" ",
-shy:"­",gt:"\x3e",lt:"\x3c",amp:"\x26",apos:"'",quot:'"'};b=b.replace(/\b(nbsp|shy|gt|lt|amp|apos|quot)(?:,|$)/g,function(c,b){var h=f?"\x26"+b+";":k[b];e[h]=f?k[b]:"\x26"+b+";";a.push(h);return""});b=b.replace(/,$/,"");if(!f&&b){b=b.split(",");var l=document.createElement("div"),m;l.innerHTML="\x26"+b.join(";\x26")+";";m=l.innerHTML;l=null;for(l=0;l<m.length;l++){var c=m.charAt(l);e[c]="\x26"+b[l]+";";a.push(c)}}e.regex=a.join(f?"|":"");return e}CKEDITOR.plugins.add("entities",{afterInit:function(h){function f(a){return c[a]}
-function e(c){return"force"!=a.entities_processNumerical&&l[c]?l[c]:"\x26#"+c.charCodeAt(0)+";"}var a=h.config;if(h=(h=h.dataProcessor)&&h.htmlFilter){var k=[];!1!==a.basicEntities&&k.push("nbsp,gt,lt,amp");a.entities&&(k.length&&k.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&&k.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&&k.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&&k.push(a.entities_additional));var l=b(k.join(",")),m=l.regex?"["+l.regex+"]":"a^";delete l.regex;a.entities&&a.entities_processNumerical&&(m="[^ -~]|"+m);var m=new RegExp(m,"g"),c=b("nbsp,gt,lt,amp,shy",!0),d=new RegExp(c.regex,"g");h.addRules({text:function(a){return a.replace(d,f).replace(m,e)}},{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,f,e){h=h||"80%";f=f||"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 f&&1<f.length&&"%"==f.substr(f.length-1,1)&&(f=parseInt(window.screen.height*parseInt(f,10)/100,10));640>h&&(h=640);420>f&&(f=420);var a=parseInt((window.screen.height-f)/2,10),k=parseInt((window.screen.width-
-h)/2,10);e=(e||"location\x3dno,menubar\x3dno,toolbar\x3dno,dependent\x3dyes,minimizable\x3dno,modal\x3dyes,alwaysRaised\x3dyes,resizable\x3dyes,scrollbars\x3dyes")+",width\x3d"+h+",height\x3d"+f+",top\x3d"+a+",left\x3d"+k;var l=window.open("",null,e,!0);if(!l)return!1;try{-1==navigator.userAgent.toLowerCase().indexOf(" chrome/")&&(l.moveTo(k,a),l.resizeTo(h,f)),l.focus(),l.location.href=b}catch(m){window.open(b,null,e,!0)}return!0}}),"use strict",function(){function b(a){this.editor=a;this.loaders=
-[]}function h(a,b,e){var h=a.config.fileTools_defaultFileName;this.editor=a;this.lang=a.lang;"string"===typeof b?(this.data=b,this.file=f(this.data),this.loaded=this.total=this.file.size):(this.data=null,this.file=b,this.total=this.file.size,this.loaded=0);e?this.fileName=e: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 f(a){var b=a.match(e)[1];a=a.replace(e,"");a=atob(a);var f=[],h,c,d,g;for(h=0;h<a.length;h+=512){c=a.slice(h,h+512);d=Array(c.length);for(g=0;g<c.length;g++)d[g]=c.charCodeAt(g);c=new Uint8Array(d);f.push(c)}return new Blob(f,{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 e=b.data.fileLoader,f=new FormData;b=b.data.requestData;var c=a.config.fileTools_requestHeaders,d,g;for(g in b){var h=b[g];"object"===typeof h&&h.file?f.append(g,h.file,h.name):f.append(g,h)}f.append("ckCsrfToken",CKEDITOR.tools.getCsrfToken());if(c)for(d in c)e.xhr.setRequestHeader(d,c[d]);e.xhr.send(f)},null,null,999);a.on("fileUploadResponse",function(a){var b=a.data.fileLoader,e=b.xhr,c=a.data;try{var d=JSON.parse(e.responseText);d.error&&d.error.message&&(c.message=d.error.message);
-if(d.uploaded)for(var g in d)c[g]=d[g];else a.cancel()}catch(f){c.message=b.lang.filetools.responseError,CKEDITOR.warn("filetools-response-error",{responseText:e.responseText}),a.cancel()}},null,null,999)}});b.prototype={create:function(a,b,e){e=e||h;var f=this.loaders.length;a=new e(this.editor,a,b);a.id=f;this.loaders[f]=a;this.fire("instanceCreated",a);return a},isFinished:function(){for(var a=0;a<this.loaders.length;++a)if(!this.loaders[a].isFinished())return!1;return!0}};h.prototype={loadAndUpload:function(a,
-b){var e=this;this.once("loaded",function(f){f.cancel();e.once("update",function(a){a.cancel()},null,null,0);e.upload(a,b)},null,null,0);this.load()},load:function(){var a=this,b=this.reader=new FileReader;a.changeStatus("loading");this.abort=function(){a.reader.abort()};b.onabort=function(){a.changeStatus("abort")};b.onerror=function(){a.message=a.lang.filetools.loadError;a.changeStatus("error")};b.onprogress=function(b){a.loaded=b.loaded;a.update()};b.onload=function(){a.loaded=a.total;a.data=b.result;
-a.changeStatus("loaded")};b.readAsDataURL(this.file)},upload:function(a,b){var e=b||{};a?(this.uploadUrl=a,this.xhr=new XMLHttpRequest,this.attachRequestListeners(),this.editor.fire("fileUploadRequest",{fileLoader:this,requestData:e})&&this.changeStatus("uploading")):(this.message=this.lang.filetools.noUrlError,this.changeStatus("error"))},attachRequestListeners:function(){function a(){"error"!=e.status&&(e.message=e.lang.filetools.networkError,e.changeStatus("error"))}function b(){"abort"!=e.status&&
-e.changeStatus("abort")}var e=this,f=this.xhr;e.abort=function(){f.abort();b()};f.onerror=a;f.onabort=b;f.upload?(f.upload.onprogress=function(a){a.lengthComputable&&(e.uploadTotal||(e.uploadTotal=a.total),e.uploaded=a.loaded,e.update())},f.upload.onerror=a,f.upload.onabort=b):(e.uploadTotal=e.total,e.update());f.onload=function(){e.update();if("abort"!=e.status)if(e.uploaded=e.uploadTotal,200>f.status||299<f.status)e.message=e.lang.filetools["httpError"+f.status],e.message||(e.message=e.lang.filetools.httpError.replace("%1",
-f.status)),e.changeStatus("error");else{for(var a={fileLoader:e},b=["message","fileName","url"],g=e.editor.fire("fileUploadResponse",a),h=0;h<b.length;h++){var k=b[h];"string"===typeof a[k]&&(e[k]=a[k])}e.responseData=a;delete e.responseData.fileLoader;!1===g?e.changeStatus("error"):e.changeStatus("uploaded")}}},changeStatus:function(a){this.status=a;if("error"==a||"abort"==a||"loaded"==a||"uploaded"==a)this.abort=function(){};this.fire(a);this.update()},update:function(){this.fire("update")},isFinished:function(){return!!this.status.match(/^(?:loaded|uploaded|error|abort)$/)}};
-CKEDITOR.event.implementOn(b.prototype);CKEDITOR.event.implementOn(h.prototype);var e=/^data:(\S*?);base64,/;CKEDITOR.fileTools||(CKEDITOR.fileTools={});CKEDITOR.tools.extend(CKEDITOR.fileTools,{uploadRepository:b,fileLoader:h,getUploadUrl:function(a,b){var e=CKEDITOR.tools.capitalize;return b&&a[b+"UploadUrl"]?a[b+"UploadUrl"]:a.uploadUrl?a.uploadUrl:b&&a["filebrowser"+e(b,1)+"UploadUrl"]?a["filebrowser"+e(b,1)+"UploadUrl"]+"\x26responseType\x3djson":a.filebrowserUploadUrl?a.filebrowserUploadUrl+
-"\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,c){var b=[];if(c)for(var d in c)b.push(d+"\x3d"+encodeURIComponent(c[d]));else return a;return a+(-1!=a.indexOf("?")?"\x26":"?")+b.join("\x26")}function h(a){return!a.match(/command=QuickUpload/)||
-a.match(/(\?|&)responseType=json/)?a:b(a,{responseType:"json"})}function f(a){a+="";return a.charAt(0).toUpperCase()+a.substr(1)}function e(){var a=this.getDialog(),c=a.getParentEditor();c._.filebrowserSe=this;var d=c.config["filebrowser"+f(a.getName())+"WindowWidth"]||c.config.filebrowserWindowWidth||"80%",a=c.config["filebrowser"+f(a.getName())+"WindowHeight"]||c.config.filebrowserWindowHeight||"70%",e=this.filebrowser.params||{};e.CKEditor=c.name;e.CKEditorFuncNum=c._.filebrowserFn;e.langCode||
-(e.langCode=c.langCode);e=b(this.filebrowser.url,e);c.popup(e,d,a,c.config.filebrowserWindowFeatures||c.config.fileBrowserWindowFeatures)}function a(a){var c=new CKEDITOR.dom.element(a.$.form);c&&((a=c.$.elements.ckCsrfToken)?a=new CKEDITOR.dom.element(a):(a=new CKEDITOR.dom.element("input"),a.setAttributes({name:"ckCsrfToken",type:"hidden"}),c.append(a)),a.setAttribute("value",CKEDITOR.tools.getCsrfToken()))}function k(){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 l(a,c,d){var e=d.params||{};e.CKEditor=a.name;e.CKEditorFuncNum=a._.filebrowserFn;e.langCode||(e.langCode=a.langCode);c.action=b(d.url,e);c.filebrowser=d}function m(b,d,x,p){if(p&&p.length)for(var q,r=p.length;r--;)if(q=p[r],"hbox"!=q.type&&"vbox"!=q.type&&"fieldset"!=q.type||m(b,d,x,q.children),q.filebrowser)if("string"==typeof q.filebrowser&&(q.filebrowser={action:"fileButton"==
-q.type?"QuickUpload":"Browse",target:q.filebrowser}),"Browse"==q.filebrowser.action){var z=q.filebrowser.url;void 0===z&&(z=b.config["filebrowser"+f(d)+"BrowseUrl"],void 0===z&&(z=b.config.filebrowserBrowseUrl));z&&(q.onClick=e,q.filebrowser.url=z,q.hidden=!1)}else if("QuickUpload"==q.filebrowser.action&&q["for"]&&(z=q.filebrowser.url,void 0===z&&(z=b.config["filebrowser"+f(d)+"UploadUrl"],void 0===z&&(z=b.config.filebrowserUploadUrl)),z)){var t=q.onClick;q.onClick=function(d){var e=d.sender,f=e.getDialog().getContentElement(this["for"][0],
-this["for"][1]).getInputElement(),l=CKEDITOR.fileTools&&CKEDITOR.fileTools.isFileUploadSupported;if(t&&!1===t.call(e,d))return!1;if(k.call(e,d)){if("form"!==b.config.filebrowserUploadMethod&&l)return d=b.uploadRepository.create(f.$.files[0]),d.on("uploaded",function(a){var c=a.sender.responseData;g.call(a.sender.editor,c.url,c.message)}),d.on("error",c.bind(this)),d.on("abort",c.bind(this)),d.loadAndUpload(h(z)),"xhr";a(f);return!0}return!1};q.filebrowser.url=z;q.hidden=!1;l(b,x.getContents(q["for"][0]).get(q["for"][1]),
-q.filebrowser)}}function c(a){var c={};try{c=JSON.parse(a.sender.xhr.response)||{}}catch(b){}this.enable();alert(c.error?c.error.message:a.sender.message)}function d(a,c,b){if(-1!==b.indexOf(";")){b=b.split(";");for(var e=0;e<b.length;e++)if(d(a,c,b[e]))return!0;return!1}return(a=a.getContents(c).get(b).filebrowser)&&a.url}function g(a,c){var b=this._.filebrowserSe.getDialog(),d=this._.filebrowserSe["for"],e=this._.filebrowserSe.filebrowser.onSelect;d&&b.getContentElement(d[0],d[1]).reset();if("function"!=
-typeof c||!1!==c.call(this._.filebrowserSe))if(!e||!1!==e.call(this._.filebrowserSe,a,c))if("string"==typeof c&&c&&alert(c),a&&(d=this._.filebrowserSe,b=d.getDialog(),d=d.filebrowser.target||null))if(d=d.split(":"),e=b.getContentElement(d[0],d[1]))e.setValue(a),b.selectPage(d[0])}CKEDITOR.plugins.add("filebrowser",{requires:"popup,filetools",init:function(a){a._.filebrowserFn=CKEDITOR.tools.addFunction(g,a);a.on("destroy",function(){CKEDITOR.tools.removeFunction(this._.filebrowserFn)})}});CKEDITOR.on("dialogDefinition",
-function(a){if(a.editor.plugins.filebrowser)for(var c=a.data.definition,b,e=0;e<c.contents.length;++e)if(b=c.contents[e])m(a.editor,a.data.name,c,b.elements),b.hidden&&b.filebrowser&&(b.hidden=!d(c,b.id,b.filebrowser))})}(),function(){function b(b){var a=b.config,k=b.fire("uiSpace",{space:"top",html:""}).html,l=function(){function d(a,b,e){c.setStyle(b,f(e));c.setStyle("position",a)}function g(a){var c=m.getDocumentPosition();switch(a){case "top":d("absolute","top",c.y-t-w);break;case "pin":d("fixed",
-"top",A);break;case "bottom":d("absolute","top",c.y+(r.height||r.bottom-r.top)+w)}k=a}var k,m,q,r,z,t,y,u=a.floatSpaceDockedOffsetX||0,w=a.floatSpaceDockedOffsetY||0,B=a.floatSpacePinnedOffsetX||0,A=a.floatSpacePinnedOffsetY||0;return function(d){if(m=b.editable()){var n=d&&"focus"==d.name;n&&c.show();b.fire("floatingSpaceLayout",{show:n});c.removeStyle("left");c.removeStyle("right");q=c.getClientRect();r=m.getClientRect();z=h.getViewPaneSize();t=q.height;y="pageXOffset"in h.$?h.$.pageXOffset:CKEDITOR.document.$.documentElement.scrollLeft;
-k?(t+w<=r.top?g("top"):t+w>z.height-r.bottom?g("pin"):g("bottom"),d=z.width/2,d=a.floatSpacePreferRight?"right":0<r.left&&r.right<z.width&&r.width>q.width?"rtl"==a.contentsLangDirection?"right":"left":d-r.left>r.right-d?"left":"right",q.width>z.width?(d="left",n=0):(n="left"==d?0<r.left?r.left:0:r.right<z.width?z.width-r.right:0,n+q.width>z.width&&(d="left"==d?"right":"left",n=0)),c.setStyle(d,f(("pin"==k?B:u)+n+("pin"==k?0:"left"==d?y:-y)))):(k="pin",g("pin"),l(d))}}}();if(k){var m=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'),c=CKEDITOR.document.getBody().append(CKEDITOR.dom.element.createFromHtml(m.output({content:k,
-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}))),d=CKEDITOR.tools.eventsBuffer(500,l),g=CKEDITOR.tools.eventsBuffer(100,l);c.unselectable();c.on("mousedown",function(a){a=a.data;a.getTarget().hasAscendant("a",1)||a.preventDefault()});b.on("focus",function(a){l(a);b.on("change",d.input);h.on("scroll",g.input);h.on("resize",g.input)});b.on("blur",function(){c.hide();b.removeListener("change",
-d.input);h.removeListener("scroll",g.input);h.removeListener("resize",g.input)});b.on("destroy",function(){h.removeListener("scroll",g.input);h.removeListener("resize",g.input);c.clearCustomData();c.remove()});b.focusManager.hasFocus&&c.show();b.focusManager.add(c,1)}}var h=CKEDITOR.document.getWindow(),f=CKEDITOR.tools.cssLength;CKEDITOR.plugins.add("floatingspace",{init:function(e){e.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'),
-f=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'),e=/\'/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 e=b.attributes||(b.attributes={});(this.multiSelect=!!b.multiSelect)&&
-(e["aria-multiselectable"]=!0);!e.role&&(e.role="listbox");this.base.apply(this,arguments);this.element.setAttribute("role",e.role);e=this.keys;e[40]="next";e[9]="next";e[38]="prev";e[CKEDITOR.SHIFT+9]="prev";e[32]=CKEDITOR.env.ie?"mouseup":"click";CKEDITOR.env.ie&&(e[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,f){var m=CKEDITOR.tools.getNextId();this._.started||(this._.started=1,this._.size=this._.size||0);this._.items[a]=m;var c;c=CKEDITOR.tools.htmlEncodeAttr(a).replace(e,"\\'");a={id:m,val:c,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(f||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(f.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,e=this.element.getDocument(),f;for(f in a)e.getById(a[f]).setStyle("display","");for(var c in b)a=e.getById(b[c]),f=a.getNext(),a.setStyle("display",""),f&&"ul"==f.getName()&&f.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 e=b.getById(a);e.removeClass("cke_selected");b.getById(a+"_option").removeAttribute("aria-selected");
-this.onUnmark&&this.onUnmark(e)},unmarkAll:function(){var a=this._.items,b=this.element.getDocument(),e;for(e in a){var f=a[e];b.getById(f).removeClass("cke_selected");b.getById(f+"_option").removeAttribute("aria-selected")}this.onUnmark&&this.onUnmark()},isMarked:function(a){return this.element.getDocument().getById(this._.items[a]).hasClass("cke_selected")},focus:function(a){this._.focusIndex=-1;var b=this.element.getElementsByTag("a"),e,f=-1;if(a)for(e=this.element.getDocument().getById(this._.items[a]).getFirst();a=
-b.getItem(++f);){if(a.equals(e)){this._.focusIndex=f;break}}else this.element.focus();e&&setTimeout(function(){e.focus()},0)}}})}}),CKEDITOR.plugins.add("richcombo",{requires:"floatpanel,listblock,button",beforeInit:function(b){b.ui.addHandler(CKEDITOR.UI_RICHCOMBO,CKEDITOR.ui.richCombo.handler)}}),function(){var b='\x3cspan id\x3d"{id}" class\x3d"cke_combo cke_combo__{name} {cls}" role\x3d"presentation"\x3e\x3cspan id\x3d"{id}_label" class\x3d"cke_combo_label"\x3e{label}\x3c/span\x3e\x3ca class\x3d"cke_combo_button" title\x3d"{title}" tabindex\x3d"-1"'+
-(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"),f=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 l=CKEDITOR.env,m,c,d="cke_"+this.id,g=CKEDITOR.tools.addFunction(function(a){c&&(b.unlockSelection(1),c=0);m.execute(a)},this),n=this;m={id:d,combo:this,focus:function(){CKEDITOR.document.getById(d).getChild(1).focus()},execute:function(a){var c=n._;if(c.state!=CKEDITOR.TRISTATE_DISABLED)if(n.createPanel(b),
-c.on)c.panel.hide();else{n.commit();var d=n.getValue();d?c.list.mark(d):c.list.unmarkAll();c.panel.showBlock(n.id,new CKEDITOR.dom.element(a),4)}},clickFn:g};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 v=CKEDITOR.tools.addFunction(function(a,b){a=new CKEDITOR.dom.event(a);var c=a.getKeystroke();switch(c){case 13:case 32:case 40:CKEDITOR.tools.callFunction(g,
-b);break;default:m.onkey(m,c)}a.preventDefault()}),x=CKEDITOR.tools.addFunction(function(){m.onfocus&&m.onfocus()});c=0;m.keyDownFn=v;l={id:d,name:this.name||this.command,label:this.label,title:this.title,cls:this.className||"",titleJs:l.gecko&&!l.hc?"":(this.title||"").replace("'",""),keydownFn:v,focusFn:x,clickFn:g};f.output(l,a);if(this.onRender)this.onRender();return m},createPanel:function(b){if(!this._.panel){var a=this._.panelDefinition,f=this._.panelDefinition.block,h=a.parent||CKEDITOR.document.getBody(),
-m="cke_combopanel__"+this.name,c=new CKEDITOR.ui.floatPanel(b,h,a),a=c.addListBlock(this.id,f),d=this;c.onShow=function(){this.element.addClass(m);d.setState(CKEDITOR.TRISTATE_ON);d._.on=1;d.editorFocus&&!b.focusManager.hasFocus&&b.focus();if(d.onOpen)d.onOpen()};c.onHide=function(a){this.element.removeClass(m);d.setState(d.modes&&d.modes[b.mode]?CKEDITOR.TRISTATE_OFF:CKEDITOR.TRISTATE_DISABLED);d._.on=0;if(!a&&d.onClose)d.onClose()};c.onEscape=function(){c.hide(1)};a.onClick=function(a,b){d.onClick&&
-d.onClick.call(d,a,b);c.hide()};this._.panel=c;this._.list=a;c.getBlock(this.id).onHide=function(){d._.on=0;d.setState(CKEDITOR.TRISTATE_OFF)};this.init&&this.init()}},setValue:function(b,a){this._.value=b;var f=this.document.getById("cke_"+this.id+"_text");f&&(b||a?f.removeClass("cke_combo_inlinelabel"):(a=this.label,f.addClass("cke_combo_inlinelabel")),f.setText("undefined"!=typeof a?a:b));var f="undefined"!=typeof a?a:b,h=this.label,f=f===h?f:f+", "+h;(h=this.document.getById("cke_"+this.id+"_label"))&&
-h.setText(f)},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,f){this._.items[b]=f||b;this._.list.add(b,a,f)},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),f=a.getElementsByTag("a").getItem(0);a.setState(b,"cke_combo");b==CKEDITOR.TRISTATE_DISABLED?a.setAttribute("aria-disabled",!0):a.removeAttribute("aria-disabled");f&&f.setAttribute("aria-expanded",b==CKEDITOR.TRISTATE_ON);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=[]},select:function(b){if(!CKEDITOR.tools.isEmpty(this._.items))for(var a in this._.items)if(b({value:a,text:this._.items[a]})){this.setValue(a);break}}},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,f=b.lang.format,e=h.format_tags.split(";"),a={},k=0,l=[],m=0;m<e.length;m++){var c=e[m],d=new CKEDITOR.style(h["format_"+c]);if(!b.filter.customConfig||b.filter.check(d))k++,a[c]=d,a[c]._.enterMode=b.config.enterMode,l.push(d)}0!==k&&b.ui.addRichCombo("Format",{label:f.label,title:f.panelTitle,toolbar:"styles,20",allowedContent:l,panel:{css:[CKEDITOR.skin.getPath("editor")].concat(h.contentsCss),
-multiSelect:!1,attributes:{"aria-label":f.panelTitle}},init:function(){this.startGroup(f.panelTitle);for(var b in a){var c=f["tag_"+b];this.add(b,a[b].buildPreview(c),c)}},onClick:function(c){b.focus();b.fire("saveSnapshot");c=a[c];var d=b.elementPath();b.fire("stylesRemove",{type:CKEDITOR.STYLE_BLOCK});c.checkActive(d,b)||b.applyStyle(c);setTimeout(function(){b.fire("saveSnapshot")},0)},onRender:function(){b.on("selectionChange",function(c){var d=this.getValue();c=c.data.path;this.refresh();for(var e in a)if(a[e].checkActive(c,
-b)){e!=d&&this.setValue(e,b.lang.format["tag_"+e]);return}this.setValue("")},this)},onOpen:function(){this.showAll();for(var c in a)b.activeFilter.check(a[c])||this.hideItem(c)},refresh:function(){var c=b.elementPath();if(c){if(c.isContextFor("p"))for(var d in a)if(b.activeFilter.check(a[d]))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 f=b.document.createElement("hr");b.insertElement(f)},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="string"===typeof b.config.dataIndentationChars?b.config.dataIndentationChars:"\t";b.dataProcessor.writer=h}}),CKEDITOR.htmlWriter=CKEDITOR.tools.createClass({base:CKEDITOR.htmlParser.basicWriter,
-$:function(){this.base();this.indentationChars="\t";this.selfClosingEnd=" /\x3e";this.lineBreakChars="\n";this.sortAttributes=1;this._.indent=0;this._.indentation="";this._.inPre=0;this._.rules={};var b=CKEDITOR.dtd,h;for(h in CKEDITOR.tools.extend({},b.$nonBodyContent,b.$block,b.$listItem,b.$tableContent))this.setRules(h,{indent:!b[h]["#"],breakBeforeOpen:1,breakBeforeClose:!b[h]["#"],breakAfterClose:1,needsSpace:h in b.$block&&!(h in{li:1,dt:1,dd:1})});this.setRules("br",{breakAfterOpen:1});this.setRules("title",
-{indent:0,breakAfterOpen:0});this.setRules("style",{indent:0,breakBeforeClose:1});this.setRules("pre",{breakAfterOpen:1,indent:0})},proto:{openTag:function(b){var h=this._.rules[b];this._.afterCloser&&h&&h.needsSpace&&this._.needsSpace&&this._.output.push("\n");this._.indent?this.indentation():h&&h.breakBeforeOpen&&(this.lineBreak(),this.indentation());this._.output.push("\x3c",b);this._.afterCloser=0},openTagClose:function(b,h){var f=this._.rules[b];h?(this._.output.push(this.selfClosingEnd),f&&
-f.breakAfterClose&&(this._.needsSpace=f.needsSpace)):(this._.output.push("\x3e"),f&&f.indent&&(this._.indentation+=this.indentationChars));f&&f.breakAfterOpen&&this.lineBreak();"pre"==b&&(this._.inPre=1)},attribute:function(b,h){"string"==typeof h&&(h=CKEDITOR.tools.htmlEncodeAttr(h),this.forceSimpleAmpersand&&(h=h.replace(/&amp;/g,"\x26")));this._.output.push(" ",b,'\x3d"',h,'"')},closeTag:function(b){var h=this._.rules[b];h&&h.indent&&(this._.indentation=this._.indentation.substr(this.indentationChars.length));
-this._.indent?this.indentation():h&&h.breakBeforeClose&&(this.lineBreak(),this.indentation());this._.output.push("\x3c/",b,"\x3e");"pre"==b&&(this._.inPre=0);h&&h.breakAfterClose&&(this.lineBreak(),this._.needsSpace=h.needsSpace);this._.afterCloser=1},text:function(b){this._.indent&&(this.indentation(),!this._.inPre&&(b=CKEDITOR.tools.ltrim(b)));this._.output.push(b)},comment:function(b){this._.indent&&this.indentation();this._.output.push("\x3c!--",b,"--\x3e")},lineBreak:function(){!this._.inPre&&
-0<this._.output.length&&this._.output.push(this.lineBreakChars);this._.indent=1},indentation:function(){!this._.inPre&&this._.indentation&&this._.output.push(this._.indentation);this._.indent=0},reset:function(){this._.output=[];this._.indent=0;this._.indentation="";this._.afterCloser=0;this._.inPre=0;this._.needsSpace=0},setRules:function(b,h){var f=this._.rules[b];f?CKEDITOR.tools.extend(f,h,!0):this._.rules[b]=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 f(b,d){var e=b.editable();CKEDITOR.tools.extend(this,{editor:b,editable:e,inline:e.isInline(),doc:b.document,win:b.window,container:CKEDITOR.document.getBody(),winTop:CKEDITOR.document.getWindow()},d,!0);this.hidden={};this.visible={};this.inline||(this.frame=this.win.getFrame());
-this.queryViewport();var f=CKEDITOR.tools.bind(this.queryViewport,this),h=CKEDITOR.tools.bind(this.hideVisible,this),l=CKEDITOR.tools.bind(this.removeAll,this);e.attachListener(this.winTop,"resize",f);e.attachListener(this.winTop,"scroll",f);e.attachListener(this.winTop,"resize",h);e.attachListener(this.win,"scroll",h);e.attachListener(this.inline?e: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);e.attachListener(b,"resize",f);e.attachListener(b,"mode",l);b.on("destroy",l);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({},
-k,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 e(a){var b;if(b=a&&a.type==CKEDITOR.NODE_ELEMENT)b=!(l[a.getComputedStyle("float")]||l[a.getAttribute("align")]);return b&&
-!m[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,e=this.editor,f=this.doc,h,k,l,m,r=CKEDITOR.tools.eventsBuffer(50,function(){e.readOnly||"wysiwyg"!=e.mode||(b.relations={},(k=f.$.elementFromPoint(l,m))&&k.nodeType&&(h=new CKEDITOR.dom.element(k),b.traverseSearch(h),isNaN(l+m)||b.pixelSearch(h,l,m),a&&a(b.relations,l,m)))});this.listener=this.editable.attachListener(this.target,
-"mousemove",function(a){l=a.data.$.clientX;m=a.data.$.clientY;r.input()});this.editable.attachListener(this.inline?this.editable:this.frame,"mouseout",function(){r.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 e=this.editor.createRange();e.moveToPosition(this.relations[b.uid].element,
-a[b.type]);return e}}(),store:function(){function a(b,c,e){var f=b.getUniqueId();f in e?e[f].type|=c:e[f]={element:b,type:c}}return function(b,g){var f;g&CKEDITOR.LINEUTILS_AFTER&&e(f=b.getNext())&&f.isVisible()&&(a(f,CKEDITOR.LINEUTILS_BEFORE,this.relations),g^=CKEDITOR.LINEUTILS_AFTER);g&CKEDITOR.LINEUTILS_INSIDE&&e(f=b.getFirst())&&f.isVisible()&&(a(f,CKEDITOR.LINEUTILS_BEFORE,this.relations),g^=CKEDITOR.LINEUTILS_INSIDE);a(b,g,this.relations)}}(),traverseSearch:function(a){var b,g,f;do if(f=a.$["data-cke-expando"],
-!(f&&f in this.relations)){if(a.equals(this.editable))break;if(e(a))for(b in this.lookups)(g=this.lookups[b](a))&&this.store(a,g)}while((!a||a.type!=CKEDITOR.NODE_ELEMENT||"true"!=a.getAttribute("contenteditable"))&&(a=a.getParent()))},pixelSearch:function(){function a(c,f,h,k,l){for(var m=0,r;l(h);){h+=k;if(25==++m)break;if(r=this.doc.$.elementFromPoint(f,h))if(r==c)m=0;else if(b(c,r)&&(m=0,e(r=new CKEDITOR.dom.element(r))))return r}}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,d,f){var h=this.win.getViewPaneSize().height,k=a.call(this,b.$,d,f,-1,function(a){return 0<a});d=a.call(this,b.$,d,f,1,function(a){return a<h});if(k)for(this.traverseSearch(k);!k.getParent().equals(b);)k=k.getParent();if(d)for(this.traverseSearch(d);!d.getParent().equals(b);)d=d.getParent();for(;k||d;){k&&(k=k.getNext(e));if(!k||k.equals(d))break;this.traverseSearch(k);d&&(d=d.getPrevious(e));if(!d||d.equals(k))break;this.traverseSearch(d)}}}(),
-greedySearch:function(){this.relations={};for(var a=this.editable.getElementsByTag("*"),b=0,g,f,h;g=a.getItem(b++);)if(!g.equals(this.editable)&&g.type==CKEDITOR.NODE_ELEMENT&&(g.hasAttribute("contenteditable")||!g.isReadOnly())&&e(g)&&g.isVisible())for(h in this.lookups)(f=this.lookups[h](g))&&this.store(g,f);return this.relations}};h.prototype={locate:function(){function a(b,c){var f=b.element[c===CKEDITOR.LINEUTILS_BEFORE?"getPrevious":"getNext"]();return f&&e(f)?(b.siblingRect=f.getClientRect(),
-c==CKEDITOR.LINEUTILS_BEFORE?(b.siblingRect.bottom+b.elementRect.top)/2:(b.elementRect.bottom+b.siblingRect.top)/2):c==CKEDITOR.LINEUTILS_BEFORE?b.elementRect.top:b.elementRect.bottom}return function(b){var e;this.locations={};for(var f in b)e=b[f],e.elementRect=e.element.getClientRect(),e.type&CKEDITOR.LINEUTILS_BEFORE&&this.store(f,CKEDITOR.LINEUTILS_BEFORE,a(e,CKEDITOR.LINEUTILS_BEFORE)),e.type&CKEDITOR.LINEUTILS_AFTER&&this.store(f,CKEDITOR.LINEUTILS_AFTER,a(e,CKEDITOR.LINEUTILS_AFTER)),e.type&
-CKEDITOR.LINEUTILS_INSIDE&&this.store(f,CKEDITOR.LINEUTILS_INSIDE,(e.elementRect.top+e.elementRect.bottom)/2);return this.locations}}(),sort:function(){var a,b,e,f;return function(h,k){a=this.locations;b=[];for(var l in a)for(var m in a[l])if(e=Math.abs(h-a[l][m]),b.length){for(f=0;f<b.length;f++)if(e<b[f].dist){b.splice(f,0,{uid:+l,type:m,dist:e});break}f==b.length&&b.push({uid:+l,type:m,dist:e})}else b.push({uid:+l,type:m,dist:e});return"undefined"!=typeof k?b.slice(0,k):b}}(),store:function(a,
-b,e){this.locations[a]||(this.locations[a]={});this.locations[a][b]=e}};var a={display:"block",width:"0px",height:"0px","border-color":"transparent","border-style":"solid",position:"absolute",top:"-6px"},k={height:"0px","border-top":"1px dashed red",position:"absolute","z-index":9999};f.prototype={removeAll:function(){for(var a in this.hidden)this.hidden[a].remove(),delete this.hidden[a];for(a in this.visible)this.visible[a].remove(),delete this.visible[a]},hideLine:function(a){var b=a.getUniqueId();
-a.hide();this.hidden[b]=a;delete this.visible[b]},showLine:function(a){var b=a.getUniqueId();a.show();this.visible[b]=a;delete this.hidden[b]},hideVisible:function(){for(var a in this.visible)this.hideLine(this.visible[a])},placeLine:function(a,b){var e,f,h;if(e=this.getStyle(a.uid,a.type)){for(h in this.visible)if(this.visible[h].getCustomData("hash")!==this.hash){f=this.visible[h];break}if(!f)for(h in this.hidden)if(this.hidden[h].getCustomData("hash")!==this.hash){this.showLine(f=this.hidden[h]);
-break}f||this.showLine(f=this.addLine());f.setCustomData("hash",this.hash);this.visible[f.getUniqueId()]=f;f.setStyles(e);b&&b(f)}},getStyle:function(a,b){var e=this.relations[a],f=this.locations[a][b],h={};h.width=e.siblingRect?Math.max(e.siblingRect.width,e.elementRect.width):e.elementRect.width;h.top=this.inline?f+this.winTopScroll.y-this.rect.relativeY:this.rect.top+this.winTopScroll.y+f;if(h.top-this.winTopScroll.y<this.rect.top||h.top-this.winTopScroll.y>this.rect.bottom)return!1;this.inline?
-h.left=e.elementRect.left-this.rect.relativeX:(0<e.elementRect.left?h.left=this.rect.left+e.elementRect.left:(h.width+=e.elementRect.left,h.left=this.rect.left),0<(e=h.left+h.width-(this.rect.left+this.winPane.width))&&(h.width-=e));h.left+=this.winTopScroll.x;for(var k in h)h[k]=CKEDITOR.tools.cssLength(h[k]);return h},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(),e=this.container.getComputedStyle("position");a.relativeX=a.relativeY=
-0;"static"!=e&&(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},m={absolute:1,fixed:1};CKEDITOR.plugins.lineutils={finder:b,locator:h,liner:f}}(),function(){function b(b){return b.getName&&!b.hasAttribute("data-cke-temp")}CKEDITOR.plugins.add("widgetselection",{init:function(b){if(CKEDITOR.env.webkit){var f=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(){f.addFillers(a)||f.removeFillers(a)},0)},null,null,-1);b.on("selectionCheck",function(a){f.removeFillers(a.editor.editable())});b.on("paste",function(a){a.data.dataValue=f.cleanPasteData(a.data.dataValue)});"selectall"in b.plugins&&f.addSelectAllIntegration(b)})}}});CKEDITOR.plugins.widgetselection={startFiller:null,endFiller:null,fillerAttribute:"data-cke-filler-webkit",fillerContent:"\x26nbsp;",
-fillerTagName:"div",addFillers:function(h){var f=h.editor;if(!this.isWholeContentSelected(h)&&0<h.getChildCount()){var e=h.getFirst(b),a=h.getLast(b);e&&e.type==CKEDITOR.NODE_ELEMENT&&!e.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 f=f.createRange(),f.selectNodeContents(h),f.select(),!0}return!1},removeFillers:function(b){if(this.hasFiller(b)&&
-!this.isWholeContentSelected(b)){var f=b.findOne(this.fillerTagName+"["+this.fillerAttribute+"\x3dstart]"),e=b.findOne(this.fillerTagName+"["+this.fillerAttribute+"\x3dend]");this.startFiller&&f&&this.startFiller.equals(f)?this.removeFiller(this.startFiller,b):this.startFiller=f;this.endFiller&&e&&this.endFiller.equals(e)?this.removeFiller(this.endFiller,b):this.endFiller=e}},cleanPasteData:function(b){b&&b.length&&(b=b.replace(this.createFillerRegex(),"").replace(this.createFillerRegex(!0),""));
-return b},isWholeContentSelected:function(b){var f=b.editor.getSelection().getRanges()[0];return!f||f&&f.collapsed?!1:(f=f.clone(),f.enlarge(CKEDITOR.ENLARGE_ELEMENT),!!(f&&b&&f.startContainer&&f.endContainer&&0===f.startOffset&&f.endOffset===b.getChildCount()&&f.startContainer.equals(b)&&f.endContainer.equals(b)))},hasFiller:function(b){return 0<b.find(this.fillerTagName+"["+this.fillerAttribute+"]").count()},createFiller:function(b){var f=new CKEDITOR.dom.element(this.fillerTagName);f.setHtml(this.fillerContent);
-f.setAttribute(this.fillerAttribute,b?"end":"start");f.setAttribute("data-cke-temp",1);f.setStyles({display:"block",width:0,height:0,padding:0,border:0,margin:0,position:"absolute",top:0,left:"-9999px",opacity:0,overflow:"hidden"});return f},removeFiller:function(b,f){if(b){var e=f.editor,a=f.editor.getSelection().getRanges()[0].startPath(),k=e.createRange(),l,m;a.contains(b)&&(l=b.getHtml(),m=!0);a="start"==b.getAttribute(this.fillerAttribute);b.remove();l&&0<l.length&&l!=this.fillerContent?(f.insertHtmlIntoRange(l,
-e.getSelection().getRanges()[0]),k.setStartAt(f.getChild(f.getChildCount()-1),CKEDITOR.POSITION_BEFORE_END),e.getSelection().selectRanges([k])):m&&(a?k.setStartAt(f.getFirst().getNext(),CKEDITOR.POSITION_AFTER_START):k.setEndAt(f.getLast().getPrevious(),CKEDITOR.POSITION_BEFORE_END),f.editor.getSelection().selectRanges([k]))}},createFillerRegex:function(b){var f=this.createFiller(b).getOuterHtml().replace(/style="[^"]*"/gi,'style\x3d"[^"]*"').replace(/>[^<]*</gi,"\x3e[^\x3c]*\x3c");return new RegExp((b?
-"":"^")+f+(b?"$":""))},addSelectAllIntegration:function(b){var f=this;b.editable().attachListener(b,"beforeCommandExec",function(e){var a=b.editable();"selectAll"==e.data.name&&a&&f.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:{}};D(this);C(this);this.on("checkWidgets",l);this.editor.on("contentDomInvalidated",
-this.checkWidgets,this);A(this);u(this);w(this);y(this);B(this)}function h(a,b,c,d,e){var g=a.editor;CKEDITOR.tools.extend(this,d,{editor:g,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);N(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;Z(this);this.fire("data",this.data);this.isInited()&&g.editable().contains(this.wrapper)&&(this.ready=!0,this.fire("ready"))}function f(a,b,c){CKEDITOR.dom.element.call(this,b.$);this.editor=a;this._={};b=this.filter=c.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 e(a,b){a.addCommand(b.name,{exec:function(a,c){function d(){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:c});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),g,f=a.widgets.wrapElement(e,b.name),h=new CKEDITOR.dom.documentFragment(f.getDocument());h.append(f);(g=a.widgets.initOn(e,b,c&&c.startupData))?(e=g.once("edit",function(b){if(b.data.dialog)g.once("dialog",function(b){b=b.data;var c,e;c=b.once("ok",d,null,null,20);e=b.once("cancel",function(b){b.data&&!1===b.data.hide||a.widgets.destroy(g,!0)});b.once("hide",function(){c.removeListener();e.removeListener()})});else d()},null,null,999),g.edit(),e.removeListener()):d()}},allowedContent:b.allowedContent,
-requiredContent:b.requiredContent,contentForms:b.contentForms,contentTransformations:b.contentTransformations})}function a(a,b){function c(a,d){var e=b.upcast.split(","),g,f;for(f=0;f<e.length;f++)if(g=e[f],g===a.name)return b.upcasts[g].call(this,a,d);return!1}function d(b,c,e){var g=CKEDITOR.tools.getIndex(a._.upcasts,function(a){return a[2]>e});0>g&&(g=a._.upcasts.length);a._.upcasts.splice(g,0,[CKEDITOR.tools.bind(b,c),c.name,e])}var e=b.upcast,g=b.upcastPriority||10;e&&("string"==typeof e?d(c,
-b,g):d(e,b,g))}function k(a,b){a.focused=null;if(b.isInited()){var c=b.editor.checkDirty();a.fire("widgetBlurred",{widget:b});b.setFocused(!1);!c&&b.editor.resetDirty()}}function l(a){a=a.data;if("wysiwyg"==this.editor.mode){var b=this.editor.editable(),c=this.instances,d,e,g,f;if(b){for(d in c)c[d].isReady()&&!b.contains(c[d].wrapper)&&this.destroy(c[d],!0);if(a&&a.initOnlyNew)c=this.initOnAll();else{var k=b.find(".cke_widget_wrapper"),c=[];d=0;for(e=k.count();d<e;d++){g=k.getItem(d);if(f=!this.getByElement(g,
-!0)){a:{f=q;for(var l=g;l=l.getParent();)if(f(l)){f=!0;break a}f=!1}f=!f}f&&b.contains(g)&&(g.addClass("cke_widget_new"),c.push(this.initOn(g.getFirst(h.isDomWidgetElement))))}}a&&a.focusInited&&1==c.length&&c[0].focus()}}}function m(a){if("undefined"!=typeof a.attributes&&a.attributes["data-widget"]){var b=c(a),e=d(a),g=!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;"),g=!0);e&&e.value&&e.value.match(/\s$/g)&&(e.parent.attributes["data-cke-white-space-last"]=
-1,e.value=e.value.replace(/\s$/g,"\x26nbsp;"),g=!0);g&&(a.attributes["data-cke-widget-white-space"]=1)}}function c(a){return a.find(function(a){return 3===a.type},!0).shift()}function d(a){return a.find(function(a){return 3===a.type},!0).pop()}function g(a,b,c){if(!c.allowedContent&&!c.disallowedContent)return null;var d=this._.filters[a];d||(this._.filters[a]=d={});a=d[b];a||(a=c.allowedContent?new CKEDITOR.filter(c.allowedContent):this.editor.filter.clone(),d[b]=a,c.disallowedContent&&a.disallow(c.disallowedContent));
-return a}function n(a){var b=[],c=a._.upcasts,d=a._.upcastCallbacks;return{toBeWrapped:b,iterator:function(a){var e,g,f,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=c.length){if(a.attributes["data-cke-widget-upcasted"])return!1;k=0;for(e=d.length;k<e;++k)if(!1===d[k](a))return;for(k=0;k<l;++k)if(e=c[k],f={},g=e[0](a,f))return g instanceof CKEDITOR.htmlParser.element&&(a=g),a.attributes["data-cke-widget-data"]=
-encodeURIComponent(JSON.stringify(f)),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,c){if(a.type==CKEDITOR.NODE_ELEMENT){var d=CKEDITOR.dtd[a.name];if(d&&!d[c.name]){var d=a.split(b),e=a.parent;b=d.getIndex();a.children.length||(--b,a.remove());d.children.length||
-d.remove();return x(e,b,c)}}a.add(c,b)}function p(a,b){return"boolean"==typeof a.inline?a.inline:!!CKEDITOR.dtd.$inline[b]}function q(a){return a.hasAttribute("data-cke-temp")}function r(a,b,c,d){var e=a.editor;e.fire("lockSnapshot");c?(d=c.data("cke-widget-editable"),d=b.editables[d],a.widgetHoldingFocusedEditable=b,b.focusedEditable=d,c.addClass("cke_widget_editable_focused"),d.filter&&e.setActiveFilter(d.filter),e.setActiveEnterMode(d.enterMode,d.shiftEnterMode)):(d||b.focusedEditable.removeClass("cke_widget_editable_focused"),
-b.focusedEditable=null,a.widgetHoldingFocusedEditable=null,e.setActiveFilter(null),e.setActiveEnterMode(null,null));e.fire("unlockSnapshot")}function z(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,c=CKEDITOR.plugins.lineutils;b.on("dragstart",function(c){var d=c.data.target;h.isDomDragHandler(d)&&(d=a.getByElement(d),c.data.dataTransfer.setData("cke/widget-id",
-d.id),b.focus(),d.focus())});b.on("drop",function(c){function d(a,b){return a&&b?a.wrapper.equals(b.wrapper)||a.wrapper.contains(b.wrapper):!1}var e=c.data.dataTransfer,g=e.getData("cke/widget-id"),f=e.getTransferType(b),e=b.createRange(),h=function(a){a=a.getBoundaryNodes().startNode;a.type!==CKEDITOR.NODE_ELEMENT&&(a=a.getParent());return b.widgets.getByElement(a)}(c.data.dropRange);if(""!==g&&f===CKEDITOR.DATA_TRANSFER_CROSS_EDITORS)c.cancel();else if(f==CKEDITOR.DATA_TRANSFER_INTERNAL)if(""===
-g&&0<b.widgets.selected.length)c.data.dataTransfer.setData("text/html",M(b));else if(g=a.instances[g])d(g,h)?c.cancel():(e.setStartBefore(g.wrapper),e.setEndAfter(g.wrapper),c.data.dragRange=e,delete CKEDITOR.plugins.clipboard.dragStartContainerChildCount,delete CKEDITOR.plugins.clipboard.dragEndContainerChildCount,c.data.dataTransfer.setData("text/html",g.getClipboardHtml()),b.widgets.destroy(g,!0))});b.on("contentDom",function(){var d=b.editable();CKEDITOR.tools.extend(a,{finder:new c.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 c=h.getNestedEditable(d,b);if(c){b=a._.draggedWidget;if(a.getByElement(c)==b)return;c=CKEDITOR.filter.instances[c.data("cke-filter")];b=b.requiredContent;if(c&&b&&!c.check(b))return}return CKEDITOR.LINEUTILS_BEFORE|CKEDITOR.LINEUTILS_AFTER}}}}),locator:new c.locator(b),liner:new c.liner(b,{lineStyle:{cursor:"move !important","border-top-color":"#666"},
-tipLeftStyle:{"border-left-color":"#666"},tipRightStyle:{"border-right-color":"#666"}})},!0)})}function u(a){var b=a.editor;b.on("contentDom",function(){var c=b.editable(),d=c.isInline()?c:b.document,e,g;c.attachListener(d,"mousedown",function(c){var d=c.data.getTarget();e=d instanceof CKEDITOR.dom.element?a.getByElement(d):null;g=0;e&&(e.inline&&d.type==CKEDITOR.NODE_ELEMENT&&d.hasAttribute("data-cke-widget-drag-handler")?(g=1,a.focused!=e&&b.getSelection().removeAllRanges()):h.getNestedEditable(e.wrapper,
-d)?e=null:(c.data.preventDefault(),CKEDITOR.env.ie||e.focus()))});c.attachListener(d,"mouseup",function(){g&&e&&e.wrapper&&(g=0,e.focus())});CKEDITOR.env.ie&&c.attachListener(d,"mouseup",function(){setTimeout(function(){e&&e.wrapper&&c.contains(e.wrapper)&&(e.focus(),e=null)})})});b.on("doubleclick",function(b){var c=a.getByElement(b.data.element);if(c&&!h.getNestedEditable(c.wrapper,b.data.element))return c.fire("doubleclick",{element:b.data.element})},null,null,1)}function w(a){a.editor.on("key",
-function(b){var c=a.focused,d=a.widgetHoldingFocusedEditable,e;c?e=c.fire("key",{keyCode:b.data.keyCode}):d&&(c=b.data.keyCode,b=d.focusedEditable,c==CKEDITOR.CTRL+65?(c=b.getBogus(),d=d.editor.createRange(),d.selectNodeContents(b),c&&d.setEndAt(c,CKEDITOR.POSITION_BEFORE_START),d.select(),e=!1):8==c||46==c?(e=d.editor.getSelection().getRanges(),d=e[0],e=!(1==e.length&&d.collapsed&&d.checkBoundaryOfElement(b,CKEDITOR[8==c?"START":"END"]))):e=void 0);return e},null,null,1)}function B(a){function b(d){1>
-a.selected.length||H(c,"cut"===d.name)}var c=a.editor;c.on("contentDom",function(){var a=c.editable();a.attachListener(a,"copy",b);a.attachListener(a,"cut",b)})}function A(a){function b(){var a=e.getSelection();if(a&&(a=a.getRanges()[0])&&!a.collapsed){var d=c(a.startContainer),g=c(a.endContainer);!d&&g?(a.setEndBefore(g.wrapper),a.select()):d&&!g&&(a.setStartAfter(d.wrapper),a.select())}}function c(a){return a?a.type==CKEDITOR.NODE_TEXT?c(a.getParent()):e.widgets.getByElement(a):null}function d(){a.fire("checkSelection")}
-var e=a.editor;e.on("selectionCheck",d);e.on("contentDom",function(){e.editable().attachListener(e,"key",function(){setTimeout(d,10)})});if(!CKEDITOR.env.ie)a.on("checkSelection",b);a.on("checkSelection",a.checkSelection,a);e.on("selectionChange",function(b){var c=(b=h.getNestedEditable(e.editable(),b.data.selection.getStartElement()))&&a.getByElement(b),d=a.widgetHoldingFocusedEditable;d?d===c&&d.focusedEditable.equals(b)||(r(a,d,null),c&&b&&r(a,c,b)):c&&b&&r(a,c,b)});e.on("dataReady",function(){E(a).commit()});
-e.on("blur",function(){var b;(b=a.focused)&&k(a,b);(b=a.widgetHoldingFocusedEditable)&&r(a,b,null)})}function C(a){var b=a.editor,e={};b.on("toDataFormat",function(b){var g=CKEDITOR.tools.getNextNumber(),f=[];b.data.downcastingSessionId=g;e[g]=f;b.data.dataValue.forEach(function(b){var e=b.attributes,g;if("data-cke-widget-white-space"in e){g=c(b);var k=d(b);g.parent.attributes["data-cke-white-space-first"]&&(g.value=g.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 e){if(e=a.instances[e["data-cke-widget-id"]])g=b.getFirst(h.isParserWidgetElement),f.push({wrapper:b,element:g,widget:e,editables:{}}),"1"!=g.attributes["data-cke-widget-keep-attr"]&&delete g.attributes["data-widget"]}else if("data-cke-widget-editable"in e)return 0<f.length&&(f[f.length-1].editables[e["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=
-e[a.data.downcastingSessionId],c,d,g,f,h,k;c=b.shift();){d=c.widget;g=c.element;f=d._.downcastFn&&d._.downcastFn.call(d,g);a.data.widgetsCopy&&d.getClipboardHtml&&(f=CKEDITOR.htmlParser.fragment.fromHtml(d.getClipboardHtml()),f=f.children[0]);for(k in c.editables)h=c.editables[k],delete h.attributes.contenteditable,h.setHtml(d.editables[k].getData());f||(f=g);c.wrapper.replaceWith(f)}},null,null,13);b.on("contentDomUnload",function(){a.destroyAll(!0)})}function D(a){var b=a.editor,c,d;b.on("toHtml",
-function(b){var d=n(a),e;for(b.data.dataValue.forEach(d.iterator,CKEDITOR.NODE_ELEMENT,!0);e=d.toBeWrapped.pop();){var g=e[0],f=g.parent;f.type==CKEDITOR.NODE_ELEMENT&&f.attributes["data-cke-widget-wrapper"]&&f.replaceWith(g);a.wrapElement(e[0],e[1])}c=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(d)for(var c=
-b.editable().find(".cke_widget_wrapper"),e,g,f=0,k=c.count();f<k;++f)e=c.getItem(f),g=e.getFirst(h.isDomWidgetElement),g.type==CKEDITOR.NODE_ELEMENT&&g.data("widget")?(g.replace(e),a.wrapElement(g)):e.remove();d=0;a.destroyAll(!0);a.initOnAll()});b.on("loadSnapshot",function(b){/data-cke-widget/.test(b.data)&&(d=1);a.destroyAll(!0)},null,null,9);b.on("paste",function(a){a=a.data;a.dataValue=a.dataValue.replace(ca,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(d){d.data.intoRange?a.checkWidgets({initOnlyNew:!0}):(b.fire("lockSnapshot"),a.checkWidgets({initOnlyNew:!0,focusInited:c}),b.fire("unlockSnapshot"))})}function E(a){var b=a.selected,c=[],d=b.slice(0),e=null;return{select:function(a){0>CKEDITOR.tools.indexOf(b,a)&&c.push(a);a=CKEDITOR.tools.indexOf(d,a);0<=a&&d.splice(a,1);return this},focus:function(a){e=a;return this},commit:function(){var g=a.focused!==e,f,h;a.editor.fire("lockSnapshot");for(g&&
-(f=a.focused)&&k(a,f);f=d.pop();)b.splice(CKEDITOR.tools.indexOf(b,f),1),f.isInited()&&(h=f.editor.checkDirty(),f.setSelected(!1),!h&&f.editor.resetDirty());g&&e&&(h=a.editor.checkDirty(),a.focused=e,a.fire("widgetFocused",{widget:e}),e.setFocused(!0),!h&&a.editor.resetDirty());for(;f=c.pop();)b.push(f),f.setSelected(!0);a.editor.fire("unlockSnapshot")}}}function G(a){a&&a.addFilterRule(function(a){return a.replace(/\s*cke_widget_selected/g,"").replace(/\s*cke_widget_focused/g,"")})}function L(a,
-b,c){var d=0;b=I(b);var e=a.data.classes||{},g;if(b){for(e=CKEDITOR.tools.clone(e);g=b.pop();)c?e[g]||(d=e[g]=1):e[g]&&(delete e[g],d=1);d&&a.setData("classes",e)}}function F(a){a.cancel()}function O(a,b){var c=function(a){return a==CKEDITOR.ENTER_BR?"br":a==CKEDITOR.ENTER_DIV?"div":"p"}(a.editor.config.enterMode),d=new CKEDITOR.dom.element(c);"br"!==c&&d.appendBogus();"after"===b?d.insertAfter(a.wrapper):d.insertBefore(a.wrapper);(function(b){var c=a.editor.createRange();c.setStart(b,0);a.editor.getSelection().selectRanges([c])})(d)}
-function H(a,b){var c=a.widgets.focused,d,e,g;Q.hasCopyBin(a)||(e=new Q(a,{beforeDestroy:function(){!b&&c&&c.focus();g&&a.getSelection().selectBookmarks(g);d&&CKEDITOR.plugins.widgetselection.addFillers(a.editable())},afterDestroy:function(){b&&!a.readOnly&&(c?a.widgets.del(c):a.extractSelectedHtml(),a.fire("saveSnapshot"))}}),c||(d=CKEDITOR.env.webkit&&CKEDITOR.plugins.widgetselection.isWholeContentSelected(a.editable()),g=a.getSelection().createBookmarks(!0)),e.handle(M(a)))}function I(a){return(a=
-(a=a.getDefinition().attributes)&&a["class"])?a.split(/\s+/):null}function P(){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 J(){CKEDITOR.env.gecko&&this.editor.unlockSelection();CKEDITOR.env.webkit||(this.editor.forceNextSelectionCheck(),this.editor.selectionChange(1))}function M(a){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)}function N(a,b){var c=a.editor.config.widget_keystrokeInsertLineBefore,d=a.editor.config.widget_keystrokeInsertLineAfter;V(a);S(a);U(a);da(a);fa(a);ka(a);W(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(b==c)O(a,"before"),a.editor.fire("saveSnapshot");else if(b==d)O(a,"after"),a.editor.fire("saveSnapshot");else if(13==b)a.edit();else{if(b==CKEDITOR.CTRL+67||b==CKEDITOR.CTRL+88){H(a.editor,b==CKEDITOR.CTRL+88);return}if(b in X||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 V(a){(a.wrapper=a.element.getParent()).setAttribute("data-cke-widget-id",
-a.id)}function S(a,b){a.partSelectors||(a.partSelectors=a.parts);if(a.parts){var c={},d,e;for(e in a.partSelectors)b||!a.parts[e]||"string"==typeof a.parts[e]?(d=a.wrapper.findOne(a.partSelectors[e]),c[e]=d):c[e]=a.parts[e];a.parts=c}}function U(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 da(a){if(!0===a.mask)T(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 g=a.element.find("img");CKEDITOR.tools.array.forEach(g.toArray(),function(a){a.on("load",function(){b.input()})})}for(var f in a.editables)a.editables[f].on("focus",function(){a.editor.on("change",
-b.input);e&&e.removeListener()}),a.editables[f].on("blur",function(){a.editor.removeListener("change",b.input)});b.input()}}function T(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&&"string"!=typeof 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 fa(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",ia,a),CKEDITOR.env.ie&&9>CKEDITOR.env.version))d.on("dragstart",
-function(a){a.data.preventDefault(!0)});a.dragHandlerContainer=c}}function ia(a){function b(){var c;for(r.reset();c=h.pop();)c.removeListener();var d=k;c=a.sender;var e=this.repository.finder,g=this.repository.liner,f=this.editor,l=this.editor.editable();CKEDITOR.tools.isEmpty(g.visible)||(d=e.getRange(d[0]),this.focus(),f.fire("drop",{dropRange:d,target:d.startContainer}));l.removeClass("cke_widget_dragging");g.hideVisible();f.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,g=this.editor,f=g.editable(),h=[],k=[],l,m;this.repository._.draggedWidget=this;var n=c.greedySearch(),r=CKEDITOR.tools.eventsBuffer(50,function(){l=d.locate(n);k=d.sort(m,1);k.length&&(e.prepare(n,l),e.placeLine(k[0]),e.cleanup())});f.addClass("cke_widget_dragging");h.push(f.on("mousemove",function(a){m=a.data.$.clientY;r.input()}));g.fire("dragstart",{target:a.sender});h.push(g.document.once("mouseup",b,this));f.isInline()||
-h.push(CKEDITOR.document.once("mouseup",b,this))}}function ka(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 W(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 aa(){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,g=0;g<e;){if(c.call(d,a[g],g,a))return a[g];g++}}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 g in a)if(("object"!==typeof a[g]||"object"!==typeof c[g]||!b(a[g],c[g]))&&a[g]!==
-c[g])return!1;return!0}return function(c){return b(a.getDefinition(),c.getDefinition())}}var g=a.widget,f;d[g]||(d[g]={});for(var h=0,k=a.group.length;h<k;h++)f=a.group[h],d[g][f]||(d[g][f]=[]),f=d[g][f],b(f,e(a))||f.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 g=0,f=this.group.length;g<f;g++){c=d[this.widget][this.group[g]];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}'),
-aa())},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"});z(a);G(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));e(d,c);a(this,c);this.registered[b]=c;if(c.dialog&&d.plugins.dialog)var g=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});g.removeListener()});return c},addUpcastCallback:function(a){this._.upcastCallbacks.push(a)},
-checkSelection:function(){if(this.editor.getSelection()){var a=this.editor.getSelection(),b=a.getSelectedElement(),c=E(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&&r(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(),g=0;g<e;++g)(c=this.getByElement(d.getItem(g),
-!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=p(d,a.getName()))&&m(a);c=new CKEDITOR.dom.element(e?"span":"div",a.getDocument());c.setAttributes(v(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=p(d,a.name))&&m(a);c=new CKEDITOR.htmlParser.element(e?"span":"div",v(e,b));c.attributes["data-cke-display-name"]=d.pathName?d.pathName:a.name;d=a.parent;var g;d&&(g=a.getIndex(),a.remove());c.add(a);d&&x(d,
-g,c)}return c},_tests_createEditableFilter:g};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){L(this,a,1)},checkStyleActive:function(a){a=I(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",J);c.removeListener("blur",P);this.editor.focusManager.remove(c);if(c.filter){for(var e in this.repository.instances){var g=this.repository.instances[e];g.editables&&(g=g.editables[a])&&g!==
-c&&c.filter===g.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()},hasClass:function(a){return this.element.hasClass(a)},initEditable:function(a,b){var c=this._findOneNotNested(b.selector);return c&&c.is(CKEDITOR.dtd.$editable)?(c=new f(this.editor,c,{filter:g.call(this.repository,this.name,a,b)}),this.editables[a]=c,c.setAttributes({contenteditable:"true","data-cke-widget-editable":a,"data-cke-enter-mode":c.enterMode}),c.filter&&c.data("cke-filter",
-c.filter.id),c.addClass("cke_widget_editable"),c.removeClass("cke_widget_editable_focused"),b.pathName&&c.data("cke-display-name",b.pathName),this.editor.focusManager.add(c),c.on("focus",J,this),CKEDITOR.env.ie&&c.on("blur",P,this),c._.initialSetData=!0,c.setData(c.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()},refreshMask:function(){da(this)},refreshParts:function(a){S(this,"undefined"!==typeof a?a:!0)},removeClass:function(a){this.element.removeClass(a);this.wrapper.removeClass(h.WRAPPER_CLASS_PREFIX+a)},removeStyle:function(a){L(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&&(Z(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_";f.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.unprotectRealComments(a);a=this.editor.dataProcessor.unprotectSource(a);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 ca=/^(?:<(?: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,
-X={37:1,38:1,39:1,40:1,8:1,46:1};X[CKEDITOR.SHIFT+121]=1;var Q=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,g=c.document.getDocumentElement().$,f=c.createRange(),h=this,k=CKEDITOR.env.mac&&CKEDITOR.env.webkit,l=k?100:0,m=window.requestAnimationFrame&&!k?requestAnimationFrame:setTimeout,
-n,r,t;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);n=c.on("selectionChange",F,null,null,0);r=c.widgets.on("checkSelection",F,null,null,0);e&&(t=g.scrollTop);f.selectNodeContents(b);f.select();e&&(g.scrollTop=t);return new CKEDITOR.tools.promise(function(a){m(function(){h.beforeDestroy&&h.beforeDestroy();d.remove();n.removeListener();r.removeListener();c.fire("unlockSnapshot");
-h.afterDestroy&&h.afterDestroy();a()},l)})}},statics:{hasCopyBin:function(a){return!!Q.getCopyBin(a)},getCopyBin:function(a){return a.document.getById("cke_copybin")}}});CKEDITOR.plugins.widget=h;h.repository=b;h.nestedEditable=f}(),CKEDITOR.config.widget_keystrokeInsertLineBefore=CKEDITOR.SHIFT+CKEDITOR.ALT+13,CKEDITOR.config.widget_keystrokeInsertLineAfter=CKEDITOR.SHIFT+13,"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 c(){var b=a.editable(),d=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=d.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 g=this.widget,b=e,d=g.wrapper,f=g.data.align,g=g.data.hasCaption;
-if(b){for(var h=3;h--;)d.removeClass(b[h]);"center"==f?g&&d.addClass(b[1]):"none"!=f&&d.addClass(b[x[f]])}else"center"==f?(g?d.setStyle("text-align","center"):d.removeStyle("text-align"),d.removeStyle("float")):("none"==f?d.removeStyle("float"):d.setStyle("float",f),d.removeStyle("text-align"))}}var e=a.config.image2_alignClasses,l=a.config.image2_captionedClass;return{allowedContent:d(a),requiredContent:"img[src,alt]",features:g(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 d=this.features;this.data.hasCaption&&!a.filter.checkFeature(d.caption)&&(this.data.hasCaption=!1);"none"==this.data.align||a.filter.checkFeature(d.align)||(this.data.align="none");this.shiftState({widget:this,element:this.element,oldData:this.oldData,newData:this.data,deflate:b,
-inflate:c});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(d.dimension)){d=this.data;d={width:d.width,height:d.height};e=this.parts.image;for(var g in d)d[g]?e.setAttribute(g,
-d[g]):e.removeAttribute(g)}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},g=c.getAscendant("a");g&&this.wrapper.contains(g)&&(this.parts.link=g);d.align||(c=d.hasCaption?this.element:c,e?(c.hasClass(e[0])?d.align="left":c.hasClass(e[2])&&
-(d.align="right"),d.align?c.removeClass(e[x[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&&
-k(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(l,e).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:f(a),getLabel:function(){return this.editor.lang.widget.label.replace(/%1/,(this.data.alt||"")+" "+this.pathName)}}}function h(b){var c=e(b),d=b.config.image2_captionedClass;return function(b,e){var g={width:1,height:1},f=b.name,h;if(!b.attributes["data-cke-realelement"]&&(c(b)?("div"==f&&(h=b.getFirst("figure"))&&(b.replaceWith(h),b=h),e.align="center",h=b.getFirst("img")||b.getFirst("a").getFirst("img")):"figure"==f&&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 g)(g=h.attributes[k])&&g.match(p)&&delete h.attributes[k];return b}}}function f(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 g=a.getFirst("span");g&&g.replaceWith(g.getFirst({img:1,a:1}))}e&&"none"!=e&&(g=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[x[e]]):g["float"]=e),b||CKEDITOR.tools.isEmpty(g)||(d.style=CKEDITOR.tools.writeCssText(g)));return a}}function e(b){var c=b.config.image2_captionedClass,d=b.config.image2_alignClasses,e={figure:1,a:1,img:1};return function(g){if(!(g.name in{div:1,p:1}))return!1;var f=g.children;if(1!==f.length)return!1;f=f[0];if(!(f.name in e))return!1;
-if("p"==g.name){if(!a(f))return!1}else if("figure"==f.name){if(!f.hasClass(c))return!1}else if(b.enterMode==CKEDITOR.ENTER_P||!a(f))return!1;return(d?g.hasClass(d[1]):"center"==CKEDITOR.tools.parseCssText(g.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 k(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 g=a.parts.link||a.parts.image,f=g.getParent(),h=d.createElement("span");h.addClass("cke_image_resizer_wrapper");h.append(g);h.append(e);a.element.append(h,!0);f.is("span")&&f.remove()}e.on("mousedown",function(g){function f(a,b,c){var e=CKEDITOR.document,g=[];d.equals(e)||g.push(e.on(a,b));g.push(d.on(a,b));if(c)for(a=g.length;a--;)c.push(g.pop())}function h(){S=v+n*T;U=Math.round(S/B)}function k(){U=p-ea;S=Math.round(U*
-B)}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,w=g.data.$.screenX,u=g.data.$.screenY,v=l.$.clientWidth,p=l.$.clientHeight,B=v/p,x=[],N="cke_image_s"+(~n?"e":"w"),V,S,U,da,T,ea,fa;b.fire("saveSnapshot");f("mousemove",function(a){V=a.data.$;
-T=V.screenX-w;ea=u-V.screenY;fa=Math.abs(T/ea);1==n?0>=T?0>=ea?h():fa>=B?h():k():0>=ea?fa>=B?k():h():k():0>=T?0>=ea?fa>=B?k():h():k():0>=ea?h():fa>=B?h():k();a=m&&(S>m.width||U>m.height);15>S||15>U||a||(da={width:S,height:U},l.setAttributes(da))},x);f("mouseup",function(){for(var d;d=x.pop();)d.removeListener();c.removeClass(N);e.removeClass("cke_image_resizing");da&&(a.setData(da),b.fire("saveSnapshot"));da=!1},x);c.addClass(N);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=[],d;return function(e){var g=a.getCommand("justify"+e);if(g){b.push(function(){g.refresh(a,a.elementPath())});if(e in{right:1,left:1,center:1})g.on("exec",function(d){var g=c(a);if(g){g.setData("align",e);for(g=b.length;g--;)b[g]();d.cancel()}});g.on("refresh",function(b){var g=c(a),f={right:1,left:1,center:1};g&&(void 0===d&&(d=a.filter.checkFeature(a.widgets.registered.image.features.align)),d?this.setState(g.data.align==
-e?CKEDITOR.TRISTATE_ON:e in f?CKEDITOR.TRISTATE_OFF:CKEDITOR.TRISTATE_DISABLED):this.setState(CKEDITOR.TRISTATE_DISABLED),b.cancel())})}}}function m(a){if(a.plugins.link){var b=CKEDITOR.on("dialogDefinition",function(b){b=b.data;if("link"==b.name){b=b.definition;var d=b.onShow,e=b.onOk;b.onShow=function(){var b=c(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(),
-d.apply(this,arguments))};b.onOk=function(){var b=c(a);if(b&&(b.inline?!b.wrapper.getAscendant("a"):1)){var d={};this.commitContent(d);b.setData("link",d)}else e.apply(this,arguments)}}});a.on("destroy",function(){b.removeListener()});a.getCommand("unlink").on("exec",function(b){var d=c(a);d&&d.parts.link&&(d.setData("link",null),this.refresh(a,a.elementPath()),b.cancel())});a.getCommand("unlink").on("refresh",function(b){var d=c(a);d&&(this.setState(d.data.link||d.wrapper.getAscendant("a")?CKEDITOR.TRISTATE_OFF:
-CKEDITOR.TRISTATE_DISABLED),b.cancel())})}}function c(a){return(a=a.widgets.focused)&&"image"==a.name?a:null}function d(a){var b=a.config.image2_alignClasses;a={div:{match:e(a)},p:{match:e(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 g(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 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 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=l(a),d;for(d in b)c(d);m(a)}});CKEDITOR.plugins.image2={stateShifter:function(a){function b(a,g){var f={};e?f.attributes={"class":e[1]}:f.styles={"text-align":"center"};f=d.createElement(a.activeEnterMode==CKEDITOR.ENTER_P?"p":"div",f);c(f,g);g.move(f);return f}function c(b,d){if(d.getParent()){var e=a.createRange();e.moveToPosition(d,CKEDITOR.POSITION_BEFORE_START);
-d.remove();f.insertElementIntoRange(b,e)}else b.replace(d)}var d=a.document,e=a.config.image2_alignClasses,g=a.config.image2_captionedClass,f=a.editable(),h=["hasCaption","align","link"],k={align:function(c,d,g){var f=c.element;c.changed.align?c.newData.hasCaption||("center"==g&&(c.deflate(),c.element=b(a,f)),c.changed.hasCaption||"center"!=d||"center"==g||(c.deflate(),d=f.findOne("a,img"),d.replace(f),c.element=d)):"center"==g&&c.changed.hasCaption&&!c.newData.hasCaption&&(c.deflate(),c.element=
-b(a,f));!e&&f.is("figure")&&("center"==g?f.setStyle("display","inline-block"):f.removeStyle("display"))},hasCaption:function(b,e,f){b.changed.hasCaption&&(e=b.element.is({img:1,a:1})?b.element:b.element.findOne("a,img"),b.deflate(),f?(f=CKEDITOR.dom.element.createFromHtml(v.output({captionedClass:g,captionPlaceholder:a.lang.image2.captionPlaceholder}),d),c(f,b.element),e.replace(f.findOne("img")),b.element=f):(e.replace(b.element),b.element=e))},link:function(b,c,e){if(b.changed.link){var g=b.element.is("img")?
-b.element:b.element.findOne("img"),f=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(g),g.move(k)),e=CKEDITOR.plugins.image2.getLinkAttributesGetter()(a,e),CKEDITOR.tools.isEmpty(e.set)||(k||f).setAttributes(e.set),e.removed.length&&(k||f).removeAttributes(e.removed)):(e=f.findOne("img"),e.replace(f),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 k,l;a.on("refresh",function(a){var b=[h],d;for(d in a.data.states)b.push(a.data.states[d]);this.setState(CKEDITOR.tools.search(b,f)?f:h)},a,null,100);a.on("exec",function(a){k=b.getSelection();
-l=k.createBookmarks(1);a.data||(a.data={});a.data.done=!1},a,null,0);a.on("exec",function(){b.forceNextSelectionCheck();k.selectBookmarks(l)},a,null,100)}var h=CKEDITOR.TRISTATE_DISABLED,f=CKEDITOR.TRISTATE_OFF;CKEDITOR.plugins.add("indent",{init:function(e){var a=CKEDITOR.plugins.indent.genericDefinition;b(e,e.addCommand("indent",new a(!0)));b(e,e.addCommand("outdent",new a));e.ui.addButton&&(e.ui.addButton("Indent",{label:e.lang.indent.indent,command:"indent",directional:!0,toolbar:"indent,20"}),
-e.ui.addButton("Outdent",{label:e.lang.indent.outdent,command:"outdent",directional:!0,toolbar:"indent,10"}));e.on("dirChanged",function(a){var b=e.createRange(),f=a.data.node;b.setStartBefore(f);b.setEndAfter(f);for(var c=new CKEDITOR.dom.walker(b),d;d=c.next();)if(d.type==CKEDITOR.NODE_ELEMENT)if(!d.equals(f)&&d.getDirection())b.setStartAfter(d),c=new CKEDITOR.dom.walker(b);else{var g=e.config.indentClasses;if(g)for(var h="ltr"==a.data.dir?["_rtl",""]:["","_rtl"],v=0;v<g.length;v++)d.hasClass(g[v]+
-h[0])&&(d.removeClass(g[v]+h[0]),d.addClass(g[v]+h[1]));g=d.getStyle("margin-right");h=d.getStyle("margin-left");g?d.setStyle("margin-left",g):d.removeStyle("margin-left");h?d.setStyle("margin-right",h):d.removeStyle("margin-right")}})}});CKEDITOR.plugins.indent={genericDefinition:function(b){this.isIndent=!!b;this.startDisabled=!this.isIndent},specificDefinition:function(b,a,f){this.name=a;this.editor=b;this.jobs={};this.enterBr=b.config.enterMode==CKEDITOR.ENTER_BR;this.isIndent=!!f;this.relatedGlobal=
-f?"indent":"outdent";this.indentKey=f?9:CKEDITOR.SHIFT+9;this.database={}},registerCommands:function(b,a){b.on("pluginsLoaded",function(){for(var b in a)(function(a,b){var c=a.getCommand(b.relatedGlobal),d;for(d in b.jobs)c.on("exec",function(c){c.data.done||(a.fire("lockSnapshot"),b.execJob(a,d)&&(c.data.done=!0),a.fire("unlockSnapshot"),CKEDITOR.dom.element.clearAllMarkers(b.database))},this,null,d),c.on("refresh",function(c){c.data.states||(c.data.states={});c.data.states[b.name+"@"+d]=b.refreshJob(a,
-d,c.data.path)},this,null,d);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 f=this.jobs[a];if(f.state!=h)return f.exec.call(this,b)},refreshJob:function(b,a,f){a=this.jobs[a];b.activeFilter.checkFeature(this)?a.state=a.refresh.call(this,b,f):a.state=h;return a.state},getContext:function(b){return b.contains(this.context)}}}(),function(){function b(a){function b(c){for(var h=
-l.startContainer,t=l.endContainer;h&&!h.getParent().equals(c);)h=h.getParent();for(;t&&!t.getParent().equals(c);)t=t.getParent();if(!h||!t)return!1;for(var q=[],u=!1;!u;)h.equals(t)&&(u=!0),q.push(h),h=h.getNext();if(1>q.length)return!1;h=c.getParents(!0);for(t=0;t<h.length;t++)if(h[t].getName&&k[h[t].getName()]){c=h[t];break}for(var h=d.isIndent?1:-1,t=q[0],q=q[q.length-1],u=CKEDITOR.plugins.list.listToArray(c,e),w=u[q.getCustomData("listarray_index")].indent,t=t.getCustomData("listarray_index");t<=
-q.getCustomData("listarray_index");t++)if(u[t].indent+=h,0<h){for(var p=u[t].parent,A=t-1;0<=A;A--)if(u[A].indent===h){p=u[A].parent;break}u[t].parent=new CKEDITOR.dom.element(p.getName(),p.getDocument())}for(t=q.getCustomData("listarray_index")+1;t<u.length&&u[t].indent>w;t++)u[t].indent+=h;h=CKEDITOR.plugins.list.arrayToList(u,e,null,a.config.enterMode,c.getDirection());if(!d.isIndent){var C;if((C=c.getParent())&&C.is("li"))for(var q=h.listNode.getChildren(),D=[],x,t=q.count()-1;0<=t;t--)(x=q.getItem(t))&&
-x.is&&x.is("li")&&D.push(x)}h&&h.listNode.replace(c);if(D&&D.length)for(t=0;t<D.length;t++){for(x=c=D[t];(x=x.getNext())&&x.is&&x.getName()in k;)CKEDITOR.env.needsNbspFiller&&!c.getFirst(f)&&c.append(l.document.createText(" ")),c.append(x);c.insertAfter(C)}h&&a.fire("contentDomInvalidated");return!0}for(var d=this,e=this.database,k=this.context,l,x=a.getSelection(),x=(x&&x.getRanges()).createIterator();l=x.getNextRange();){for(var p=l.getCommonAncestor();p&&(p.type!=CKEDITOR.NODE_ELEMENT||!k[p.getName()]);){if(a.editable().equals(p)){p=
-!1;break}p=p.getParent()}p||(p=l.startPath().contains(k))&&l.setEndAt(p,CKEDITOR.POSITION_BEFORE_END);if(!p){var q=l.getEnclosedNode();q&&q.type==CKEDITOR.NODE_ELEMENT&&q.getName()in k&&(l.setStartAt(q,CKEDITOR.POSITION_AFTER_START),l.setEndAt(q,CKEDITOR.POSITION_BEFORE_END),p=q)}p&&l.startContainer.type==CKEDITOR.NODE_ELEMENT&&l.startContainer.getName()in k&&(q=new CKEDITOR.dom.walker(l),q.evaluator=h,l.startContainer=q.next());p&&l.endContainer.type==CKEDITOR.NODE_ELEMENT&&l.endContainer.getName()in
-k&&(q=new CKEDITOR.dom.walker(l),q.evaluator=h,l.endContainer=q.previous());if(p)return b(p)}return 0}function h(a){return a.type==CKEDITOR.NODE_ELEMENT&&a.is("li")}function f(b){return e(b)&&a(b)}var e=CKEDITOR.dom.walker.whitespaces(!0),a=CKEDITOR.dom.walker.bookmark(!1,!0),k=CKEDITOR.TRISTATE_DISABLED,l=CKEDITOR.TRISTATE_OFF;CKEDITOR.plugins.add("indentlist",{requires:"indent",init:function(a){function c(a){d.specificDefinition.apply(this,arguments);this.requiredContent=["ul","ol"];a.on("key",
-function(b){var c=a.elementPath();if("wysiwyg"==a.mode&&b.data.keyCode==this.indentKey&&c){var d=this.getContext(c);!d||this.isIndent&&CKEDITOR.plugins.indentList.firstItemInPath(this.context,c,d)||(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?l:k}:function(a,b){return!this.getContext(b)||this.isIndent?k:l},
-exec:CKEDITOR.tools.bind(b,this)}}var d=CKEDITOR.plugins.indent;d.registerCommands(a,{indentlist:new c(a,"indentlist",!0),outdentlist:new c(a,"outdentlist")});CKEDITOR.tools.extend(c.prototype,d.specificDefinition.prototype,{context:{ol:1,ul:1}})}});CKEDITOR.plugins.indentList={};CKEDITOR.plugins.indentList.firstItemInPath=function(a,b,d){var e=b.contains(h);d||(d=b.contains(a));return d&&e&&e.equals(d.getFirst(h))}}(),function(){function b(b,a){var f;if(a)f=b.getComputedStyle("text-align");else{for(;!b.hasAttribute||
-!b.hasAttribute("align")&&!b.getStyle("text-align");){f=b.getParent();if(!f)break;b=f}f=b.getStyle("text-align")||b.getAttribute("align")||""}f&&(f=f.replace(/(?:-(?:moz|webkit)-)?(?:start|auto)/i,""));!f&&a&&(f="rtl"==b.getComputedStyle("direction")?"right":"left");return f}function h(b,a,f){this.editor=b;this.name=a;this.value=f;this.context="p";a=b.config.justifyClasses;var h=b.config.enterMode==CKEDITOR.ENTER_P?"p":"div";if(a){switch(f){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 f(b){var a=
-b.editor,f=a.createRange();f.setStartBefore(b.data.node);f.setEndAfter(b.data.node);for(var h=new CKEDITOR.dom.walker(f),m;m=h.next();)if(m.type==CKEDITOR.NODE_ELEMENT)if(!m.equals(b.data.node)&&m.getDirection())f.setStartAfter(m),h=new CKEDITOR.dom.walker(f);else{var c=a.config.justifyClasses;c&&(m.hasClass(c[0])?(m.removeClass(c[0]),m.addClass(c[2])):m.hasClass(c[2])&&(m.removeClass(c[2]),m.addClass(c[0])));c=m.getStyle("text-align");"left"==c?m.setStyle("text-align","right"):"right"==c&&m.setStyle("text-align",
-"left")}}h.prototype={exec:function(e){var a=e.getSelection(),f=e.config.enterMode;if(a){for(var h=a.createBookmarks(),m=a.getRanges(),c=this.cssClassName,d,g,n=e.config.useComputedState,v=m.length-1;0<=v;v--)for(d=m[v].createIterator(),d.enlargeBr=f!=CKEDITOR.ENTER_BR;g=d.getNextParagraph(f==CKEDITOR.ENTER_P?"p":"div");)if(!g.isReadOnly()){var x=g.getName(),p;p=e.activeFilter.check(x+"{text-align}");if((x=e.activeFilter.check(x+"("+c+")"))||p){g.removeAttribute("align");g.removeStyle("text-align");
-var q=c&&(g.$.className=CKEDITOR.tools.ltrim(g.$.className.replace(this.cssClassRegex,""))),r=this.state==CKEDITOR.TRISTATE_OFF&&(!n||b(g,!0)!=this.value);c&&x?r?g.addClass(c):q||g.removeAttribute("class"):r&&p&&g.setStyle("text-align",this.value)}}e.focus();e.forceNextSelectionCheck();a.selectBookmarks(h)}},refresh:function(e,a){var f=a.block||a.blockLimit,h=f.getName(),m=f.equals(e.editable()),h=this.cssClassName?e.activeFilter.check(h+"("+this.cssClassName+")"):e.activeFilter.check(h+"{text-align}");
-m&&!CKEDITOR.dtd.$list[a.lastElement.getName()]?this.setState(CKEDITOR.TRISTATE_OFF):!m&&h?this.setState(b(f,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"),k=new h(b,"justifycenter","center"),l=new h(b,"justifyright","right"),m=new h(b,"justifyblock","justify");b.addCommand("justifyleft",a);b.addCommand("justifycenter",
-k);b.addCommand("justifyright",l);b.addCommand("justifyblock",m);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",
-f)}}})}(),CKEDITOR.plugins.add("menubutton",{requires:"button,menu",onLoad:function(){var b=function(b){var f=this._,e=f.menu;f.state!==CKEDITOR.TRISTATE_DISABLED&&(f.on&&e?e.hide():(f.previousState=f.state,e||(e=f.menu=new CKEDITOR.menu(b,{panel:{className:"cke_menu_panel",attributes:{"aria-label":b.lang.common.options}}}),e.onHide=CKEDITOR.tools.bind(function(){var a=this.command?b.getCommand(this.command).modes:this.modes;this.setState(!a||a[b.mode]?f.previousState:CKEDITOR.TRISTATE_DISABLED);
-f.on=0},this),this.onMenu&&e.addListener(this.onMenu)),this.setState(CKEDITOR.TRISTATE_ON),f.on=1,setTimeout(function(){e.show(CKEDITOR.document.getById(f.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"],f=this,e=b.lang.language,a={},k,l,m,c;b.addCommand("language",{allowedContent:"span[!lang,!dir]",requiredContent:"span[lang,dir]",contextSensitive:!0,exec:function(b,c){var e=a["language_"+c];if(e)b[e.style.checkActive(b.elementPath(),b)?"removeStyle":"applyStyle"](e.style)},refresh:function(a){this.setState(f.getCurrentLangElement(a)?
-CKEDITOR.TRISTATE_ON:CKEDITOR.TRISTATE_OFF)}});for(c=0;c<h.length;c++)k=h[c].split(":"),l=k[0],m="language_"+l,a[m]={label:k[1],langId:l,group:"language",order:c,ltr:"rtl"!=(""+k[2]).toLowerCase(),onClick:function(){b.execCommand("language",this.langId)},role:"menuitemcheckbox"},a[m].style=new CKEDITOR.style({element:"span",attributes:{lang:l,dir:a[m].ltr?"ltr":"rtl"}});a.language_remove={label:e.remove,group:"language_remove",state:CKEDITOR.TRISTATE_DISABLED,order:a.length,onClick:function(){var a=
-f.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:e.button,allowedContent:"span[!lang,!dir]",requiredContent:"span[lang,dir]",toolbar:"bidi,30",command:"language",onMenu:function(){var c={},e=f.getCurrentLangElement(b),h;for(h in a)c[h]=CKEDITOR.TRISTATE_OFF;c.language_remove=e?CKEDITOR.TRISTATE_OFF:CKEDITOR.TRISTATE_DISABLED;e&&(c["language_"+
-e.getAttribute("lang")]=CKEDITOR.TRISTATE_ON);return c}});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 f;if(h)for(var e=0;e<b.length;e++)h=b[e],!f&&"span"==h.getName()&&h.hasAttribute("dir")&&h.hasAttribute("lang")&&(f=h);return f}})}(),function(){function b(a,b,c,d){for(var e=CKEDITOR.plugins.list.listToArray(b.root,c),g=[],f=0;f<b.contents.length;f++){var h=
-b.contents[f];(h=h.getAscendant("li",!0))&&!h.getCustomData("list_item_processed")&&(g.push(h),CKEDITOR.dom.element.setMarker(c,h,"list_item_processed",!0))}for(var h=b.root.getDocument(),k,l,f=0;f<g.length;f++){var m=g[f].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(),
-f=0;f<e&&(n=c.listNode.getChild(f));f++)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(),g=[];if(1==d.length&&d[0].equals(b.root)){var f=e.createElement("div");d[0].moveChildren&&d[0].moveChildren(f);d[0].append(f);d[0]=f}b=b.contents[0].getParent();for(f=0;f<d.length;f++)b=b.getCommonAncestor(d[f].getParent());a=a.config.useComputedState;for(var h,k,f=0;f<d.length;f++)for(var l=d[f],m;m=l.getParent();){if(m.equals(b)){g.push(l);
-!k&&l.getDirection()&&(k=1);l=l.getDirection(a);null!==h&&(h=h&&h!=l?null:l);break}l=m}if(!(1>g.length)){d=g[g.length-1].getNext();f=e.createElement(this.type);for(c.push(f);g.length;)c=g.shift(),a=e.createElement("li"),l=c,l.is("pre")||p.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(f);h&&k&&f.setAttribute("dir",h);d?f.insertBefore(d):
-f.appendTo(b)}}function f(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),g=[],f=0;f<b.contents.length;f++){var h=b.contents[f];(h=h.getAscendant("li",!0))&&!h.getCustomData("list_item_processed")&&(g.push(h),CKEDITOR.dom.element.setMarker(c,
-h,"list_item_processed",!0))}h=null;for(f=0;f<g.length;f++)h=g[f].getCustomData("listarray_index"),e[h].indent=-1;for(f=h+1;f<e.length;f++)if(e[f].indent>e[f-1].indent+1){g=e[f-1].indent+1-e[f].indent;for(h=e[f].indent;e[f]&&e[f].indent>=h;)e[f].indent+=g,f++;f--}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 e(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,g;e=a[d?"getLast":"getFirst"](q);)(g=e.getDirection(1))!==b.getDirection(1)&&e.setAttribute("dir",g),e.remove(),c?e[d?"insertBefore":"insertAfter"](c):b.append(e,d),c=e}function k(b){function c(d){var e=b[d?"getPrevious":"getNext"](v);e&&e.type==CKEDITOR.NODE_ELEMENT&&e.is(b.getName())&&(a(b,e,null,!d),b.remove(),b=e)}c();c(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 m(b,d,e){b.fire("saveSnapshot");e.enlarge(CKEDITOR.ENLARGE_LIST_ITEM_CONTENTS);var g=e.extractContents();d.trim(!1,!0);var f=d.createBookmark(),h=new CKEDITOR.dom.elementPath(d.startContainer),l=h.block,h=h.lastElement.getAscendant("li",1)||l,m=new CKEDITOR.dom.elementPath(e.startContainer),n=m.contains(CKEDITOR.dtd.$listItem),m=m.contains(CKEDITOR.dtd.$list);l?(l=l.getBogus())&&l.remove():m&&(l=m.getPrevious(v))&&x(l)&&l.remove();(l=g.getLast())&&l.type==CKEDITOR.NODE_ELEMENT&&
-l.is("br")&&l.remove();(l=d.startContainer.getChild(d.startOffset))?g.insertBefore(l):d.startContainer.append(g);n&&(g=c(n))&&(h.contains(n)?(a(g,n.getParent(),n),g.remove()):h.append(g));for(;e.checkStartOfBlock()&&e.checkEndOfBlock();){m=e.startPath();g=m.block;if(!g)break;g.is("li")&&(h=g.getParent(),g.equals(h.getLast(v))&&g.equals(h.getFirst(v))&&(g=h));e.moveToPosition(g,CKEDITOR.POSITION_BEFORE_START);g.remove()}e=e.clone();g=b.editable();e.setEndAt(g,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&&k(e);d.moveToBookmark(f);d.select();b.fire("saveSnapshot")}function c(a){return(a=a.getLast(v))&&a.type==CKEDITOR.NODE_ELEMENT&&a.getName()in d?a:null}var d={ol:1,ul:1},g=CKEDITOR.dom.walker.whitespaces(),n=CKEDITOR.dom.walker.bookmark(),v=function(a){return!(g(a)||n(a))},x=CKEDITOR.dom.walker.bogus();CKEDITOR.plugins.list={listToArray:function(a,b,c,e,g){if(!d[a.getName()])return[];
-e||(e=0);c||(c=[]);for(var f=0,h=a.getChildCount();f<h;f++){var k=a.getChild(f);k.type==CKEDITOR.NODE_ELEMENT&&k.getName()in CKEDITOR.dtd.$list&&CKEDITOR.plugins.list.listToArray(k,b,c,e+1);if("li"==k.$.nodeName.toLowerCase()){var l={parent:a,indent:e,element:k,contents:[]};g?l.grandparent=g:(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(),q;m<n;m++)q=k.getChild(m),q.type==CKEDITOR.NODE_ELEMENT&&d[q.getName()]?CKEDITOR.plugins.list.listToArray(q,b,c,e+1,l.grandparent):l.contents.push(q)}}return c},arrayToList:function(a,b,c,e,g){c||(c=0);if(!a||a.length<c+1)return null;for(var f,h=a[c].parent.getDocument(),k=new CKEDITOR.dom.documentFragment(h),l=null,m=c,q=Math.max(a[c].indent,0),p=null,x,F,O=e==CKEDITOR.ENTER_P?"p":"div";;){var H=a[m];f=H.grandparent;x=H.element.getDirection(1);if(H.indent==q){l&&a[m].parent.getName()==
-l.getName()||(l=a[m].parent.clone(!1,1),g&&l.setAttribute("dir",g),k.append(l));p=l.append(H.element.clone(0,1));x!=l.getDirection(1)&&p.setAttribute("dir",x);for(f=0;f<H.contents.length;f++)p.append(H.contents[f].clone(1,1));m++}else if(H.indent==Math.max(q,0)+1)H=a[m-1].element.getDirection(1),m=CKEDITOR.plugins.list.arrayToList(a,null,m,e,H!=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==
-H.indent&&!c&&f){d[f.getName()]?(p=H.element.clone(!1,!0),x!=f.getDirection(1)&&p.setAttribute("dir",x)):p=new CKEDITOR.dom.documentFragment(h);var l=f.getDirection(1)!=x,I=H.element,P=I.getAttribute("class"),J=I.getAttribute("style"),M=p.type==CKEDITOR.NODE_DOCUMENT_FRAGMENT&&(e!=CKEDITOR.ENTER_BR||l||J||P),N,V=H.contents.length,S;for(f=0;f<V;f++)if(N=H.contents[f],n(N)&&1<V)M?S=N.clone(1,1):p.append(N.clone(1,1));else if(N.type==CKEDITOR.NODE_ELEMENT&&N.isBlockBoundary()){l&&!N.getDirection()&&
-N.setAttribute("dir",x);F=N;var U=I.getAttribute("style");U&&F.setAttribute("style",U.replace(/([^;])$/,"$1;")+(F.getAttribute("style")||""));P&&N.addClass(P);F=null;S&&(p.append(S),S=null);p.append(N.clone(1,1))}else M?(F||(F=h.createElement(O),p.append(F),l&&F.setAttribute("dir",x)),J&&F.setAttribute("style",J),P&&F.setAttribute("class",P),S&&(F.append(S),S=null),F.append(N.clone(1,1))):p.append(N.clone(1,1));S&&((F||p).append(S),S=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;F=null;if(a.length<=m||Math.max(a[m].indent,0)<q)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=g=e=void 0,e=c.getDirection()))){for(g=
-c.getParent();g&&!(h=g.getDirection());)g=g.getParent();e==h&&c.removeAttribute("dir")}a=a.getNextSourceNode()}return{listNode:k,nextIndex:m}}};var p=/^h[1-6]$/,q=CKEDITOR.dom.walker.nodeType(CKEDITOR.NODE_ELEMENT);e.prototype={exec:function(a){function c(a){return d[a.root.getName()]&&!e(a.root,[CKEDITOR.NODE_COMMENT])}function e(a,b){return CKEDITOR.tools.array.filter(a.getChildren().toArray(),function(a){return-1===CKEDITOR.tools.array.indexOf(b,a.type)}).length}function g(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 l=a.config,m=a.getSelection(),n=m&&m.getRanges();if(this.state==CKEDITOR.TRISTATE_OFF){var q=a.editable();if(q.getFirst(v)){var p=1==n.length&&n[0];(l=p&&p.getEnclosedNode())&&l.is&&this.type==l.getName()&&this.setState(CKEDITOR.TRISTATE_ON)}else l.enterMode==CKEDITOR.ENTER_BR?q.appendBogus():n[0].fixBlock(1,l.enterMode==CKEDITOR.ENTER_P?"p":"div"),m.selectRanges(n)}for(var l=
-m.createBookmarks(!0),q=[],x={},n=n.createIterator(),E=0;(p=n.getNextRange())&&++E;){var G=p.getBoundaryNodes(),L=G.startNode,F=G.endNode;L.type==CKEDITOR.NODE_ELEMENT&&"td"==L.getName()&&p.setStartAt(G.startNode,CKEDITOR.POSITION_AFTER_START);F.type==CKEDITOR.NODE_ELEMENT&&"td"==F.getName()&&p.setEndAt(G.endNode,CKEDITOR.POSITION_BEFORE_END);p=p.createIterator();for(p.forceBrBreak=this.state==CKEDITOR.TRISTATE_OFF;G=p.getNextParagraph();)if(!G.getCustomData("list_block")&&!g(G)){CKEDITOR.dom.element.setMarker(x,
-G,"list_block",1);for(var O=a.elementPath(G),L=O.elements,F=0,O=O.blockLimit,H,I=L.length-1;0<=I&&(H=L[I]);I--)if(d[H.getName()]&&O.contains(H)){O.removeCustomData("list_group_object_"+E);(L=H.getCustomData("list_group_object"))?L.contents.push(G):(L={root:H,contents:[G]},q.push(L),CKEDITOR.dom.element.setMarker(x,H,"list_group_object",L));F=1;break}F||(F=O,F.getCustomData("list_group_object_"+E)?F.getCustomData("list_group_object_"+E).contents.push(G):(L={root:F,contents:[G]},CKEDITOR.dom.element.setMarker(x,
-F,"list_group_object_"+E,L),q.push(L)))}}for(H=[];0<q.length;)L=q.shift(),this.state==CKEDITOR.TRISTATE_OFF?c(L)||(d[L.root.getName()]?b.call(this,a,L,x,H):h.call(this,a,L,H)):this.state==CKEDITOR.TRISTATE_ON&&d[L.root.getName()]&&!c(L)&&f.call(this,a,L,x);for(I=0;I<H.length;I++)k(H[I]);CKEDITOR.dom.element.clearAllMarkers(x);m.selectBookmarks(l);a.focus()},refresh:function(a,b){var c=b.contains(d,1),e=b.blockLimit||b.root;c&&e.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 e("numberedlist","ol")),a.addCommand("bulletedlist",new e("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 e=b.data.domEvent.getKey(),g;if("wysiwyg"==a.mode&&e in{8:1,46:1}){var f=a.getSelection().getRanges()[0],h=f&&f.startPath();if(f&&f.collapsed){var k=8==e,n=a.editable(),q=new CKEDITOR.dom.walker(f.clone());q.evaluator=function(a){return v(a)&&!x(a)};q.guard=function(a,b){return!(b&&a.type==CKEDITOR.NODE_ELEMENT&&a.is("table"))};e=f.clone();if(k){var p;(p=h.contains(d))&&f.checkBoundaryOfElement(p,CKEDITOR.START)&&(p=p.getParent())&&p.is("li")&&(p=c(p))?(g=p,p=p.getPrevious(v),e.moveToPosition(p&&
-x(p)?p:g,CKEDITOR.POSITION_BEFORE_START)):(q.range.setStartAt(n,CKEDITOR.POSITION_AFTER_START),q.range.setEnd(f.startContainer,f.startOffset),(p=q.previous())&&p.type==CKEDITOR.NODE_ELEMENT&&(p.getName()in d||p.is("li"))&&(p.is("li")||(q.range.selectNodeContents(p),q.reset(),q.evaluator=l,p=q.previous()),g=p,e.moveToElementEditEnd(g),e.moveToPosition(e.endPath().block,CKEDITOR.POSITION_BEFORE_END)));if(g)m(a,e,f),b.cancel();else{var E=h.contains(d);E&&f.checkBoundaryOfElement(E,CKEDITOR.START)&&(g=
-E.getFirst(v),f.checkBoundaryOfElement(g,CKEDITOR.START)&&(p=E.getPrevious(v),c(g)?p&&(f.moveToElementEditEnd(p),f.select()):a.execCommand("outdent"),b.cancel()))}}else if(g=h.contains("li")){if(q.range.setEndAt(n,CKEDITOR.POSITION_BEFORE_END),k=(n=g.getLast(v))&&l(n)?n:g,h=0,(p=q.next())&&p.type==CKEDITOR.NODE_ELEMENT&&p.getName()in d&&p.equals(n)?(h=1,p=q.next()):f.checkBoundaryOfElement(k,CKEDITOR.END)&&(h=2),h&&p){f=f.clone();f.moveToElementEditStart(p);if(1==h&&(e.optimize(),!e.startContainer.equals(g))){for(g=
-e.startContainer;g.is(CKEDITOR.dtd.$inline);)E=g,g=g.getParent();E&&e.moveToPosition(E,CKEDITOR.POSITION_AFTER_END)}2==h&&(e.moveToPosition(e.endPath().block,CKEDITOR.POSITION_BEFORE_END),f.endPath().block&&f.moveToPosition(f.endPath().block,CKEDITOR.POSITION_AFTER_START));m(a,e,f);b.cancel()}}else q.range.setEndAt(n,CKEDITOR.POSITION_BEFORE_END),(p=q.next())&&p.type==CKEDITOR.NODE_ELEMENT&&p.is(d)&&(p=p.getFirst(v),h.block&&f.checkStartOfBlock()&&f.checkEndOfBlock()?(h.block.remove(),f.moveToElementEditStart(p),
-f.select()):c(p)?(f.moveToElementEditStart(p),f.select()):(f=f.clone(),f.moveToElementEditStart(p),m(a,e,f)),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!(aa(a)||ca(a)||v(a))}))}function h(a){this.upper=a[0];this.lower=a[1];this.set.apply(this,a.slice(2))}function f(a){var b=a.element;if(b&&n(b)&&(b=b.getAscendant(a.triggers,!0))&&a.editable.contains(b)){var c=l(b);if("true"==
-c.getAttribute("contenteditable"))return b;if(c.is(a.triggers))return c}return null}function e(a,b,c){u(a,b);u(a,c);a=b.size.bottom;c=c.size.top;return a&&c?0|(a+c)/2:a||c}function a(a,b,c){return b=b[c?"getPrevious":"getNext"](function(b){return b&&b.type==CKEDITOR.NODE_TEXT&&!aa(b)||n(b)&&!v(b)&&!g(a,b)})}function k(a,b,c){return a>b&&a<c}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 m(a){var b=a.doc,d=E('\x3cspan contenteditable\x3d"false" data-cke-magic-line\x3d"1" style\x3d"'+ia+"position:absolute;border-top:1px dashed "+a.boxColor+'"\x3e\x3c/span\x3e',b),e=CKEDITOR.getUrl(this.path+"images/"+(G.hidpi?"hidpi/":"")+"icon"+(a.rtl?"-rtl":"")+".png");C(d,{attach:function(){this.wrap.getParent()||this.wrap.appendTo(a.editable,!0);return this},lineChildren:[C(E('\x3cspan title\x3d"'+a.editor.lang.magicline.title+'" contenteditable\x3d"false"\x3e\x26#8629;\x3c/span\x3e',
-b),{base:ia+"height:17px;width:17px;"+(a.rtl?"left":"right")+":17px;background:url("+e+") center no-repeat "+a.boxColor+";cursor:pointer;"+(G.hc?"font-size: 15px;line-height:14px;border:1px solid #fff;text-align:center;":"")+(G.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;"]}),C(E(W,b),{base:ka+"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"]}),C(E(W,b),{base:ka+"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(){u(a,this);var b=a.holdDistance,c=this.size;return c&&k(a.mouse.y,c.top-b,c.bottom+b)&&k(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,g=d.lower,f=e||g,h=f.getParent(),l={};this.trigger=d;e&&u(a,e,!0);g&&u(a,g,!0);u(a,h,!0);a.inInlineMode&&w(a,!0);h.equals(c)?(l.left=b.scroll.x,l.right=-b.scroll.x,l.width=""):(l.left=f.size.left-f.size.margin.left+b.scroll.x-(a.inInlineMode?b.editable.left+b.editable.border.left:0),l.width=f.size.outerWidth+f.size.margin.left+f.size.margin.right+b.scroll.x,l.right="");e&&g?l.top=e.size.margin.bottom===g.size.margin.top?0|e.size.bottom+e.size.margin.bottom/
-2:e.size.margin.bottom<g.size.margin.top?e.size.bottom+e.size.margin.bottom:e.size.bottom+e.size.margin.bottom-g.size.margin.top:e?g||(l.top=e.size.bottom+e.size.margin.bottom):l.top=g.size.top-g.size.margin.top;d.is(M)||k(l.top,b.scroll.y-15,b.scroll.y+5)?(l.top=a.inInlineMode?0:b.scroll.y,this.look(M)):d.is(N)||k(l.top,b.pane.bottom-5,b.pane.bottom+15)?(l.top=a.inInlineMode?b.editable.height+b.editable.padding.top+b.editable.padding.bottom:b.pane.bottom-1,this.look(N)):(a.inInlineMode&&(l.top-=
-b.editable.top+b.editable.border.top),this.look(V));a.inInlineMode&&(l.top--,l.top+=b.editable.scroll.top,l.left+=b.editable.scroll.left);for(var m in l)l[m]=CKEDITOR.tools.cssLength(l[m]);this.setStyles(l)},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 D("span",a.doc)});for(b=d.lineChildren.length;b--;)d.lineChildren[b].appendTo(d);d.look(V);d.appendTo(d.wrap);d.unselectable();
-d.lineChildren[0].on("mouseup",function(b){d.detach();c(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();G.ie||a.enterMode==CKEDITOR.ENTER_BR||a.hotNode.scrollIntoView();b.data.preventDefault(!0)});d.on("mousedown",function(a){a.data.preventDefault(!0)});a.line=d}function c(a,b,c){var d=new CKEDITOR.dom.range(a.doc),e=a.editor,g;G.ie&&a.enterMode==CKEDITOR.ENTER_BR?g=a.doc.createText(S):(g=(g=l(a.element,!0))&&g.data("cke-enter-mode")||
-a.enterMode,g=new D(O[g],a.doc),g.is("br")||a.doc.createText(S).appendTo(g));c&&e.fire("saveSnapshot");b(g);d.moveToPosition(g,CKEDITOR.POSITION_AFTER_START);e.getSelection().selectRanges([d]);a.hotNode=g;c&&e.fire("saveSnapshot")}function d(b,d){return{canUndo:!0,modes:{wysiwyg:1},exec:function(){function e(a){var g=G.ie&&9>G.version?" ":S,f=b.hotNode&&b.hotNode.getText()==g&&b.element.equals(b.hotNode)&&b.lastCmdDirection===!!d;c(b,function(c){f&&b.hotNode&&b.hotNode.remove();c[d?"insertAfter":
-"insertBefore"](a);c.setAttributes({"data-cke-magicline-hot":1,"data-cke-magicline-dir":!!d});b.lastCmdDirection=!!d});G.ie||b.enterMode==CKEDITOR.ENTER_BR||b.hotNode.scrollIntoView();b.line.detach()}return function(c){c=c.getSelection().getStartElement();var g;c=c.getAscendant(ea,1);if(!q(b,c)&&c&&!c.equals(b.editable)&&!c.contains(b.editable)){(g=l(c))&&"false"==g.getAttribute("contenteditable")&&(c=g);b.element=c;g=a(b,c,!d);var h;n(g)&&g.is(b.triggers)&&g.is(T)&&(!a(b,g,!d)||(h=a(b,g,!d))&&n(h)&&
-h.is(b.triggers))?e(g):(h=f(b,c),n(h)&&(a(b,h,!d)?(c=a(b,h,!d))&&n(c)&&c.is(b.triggers)&&e(h):e(h)))}}}()}}function g(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 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 q(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 r(a,b,c){b=b[c?"getLast":"getFirst"](function(b){return a.isRelevant(b)&&!b.is(da)});if(!b)return!1;u(a,b);return c?b.size.top>a.mouse.y:b.size.bottom<a.mouse.y}function z(a){var b=a.editable,c=a.mouse,d=a.view,e=a.triggerOffset;w(a);var f=c.y>(a.inInlineMode?d.editable.top+d.editable.height/
-2:Math.min(d.editable.height,d.pane.height)/2),b=b[f?"getLast":"getFirst"](function(a){return!(aa(a)||ca(a))});if(!b)return null;g(a,b)&&(b=a.line.wrap[f?"getPrevious":"getNext"](function(a){return!(aa(a)||ca(a))}));if(!n(b)||v(b)||!p(a,b))return null;u(a,b);return!f&&0<=b.size.top&&k(c.y,0,b.size.top+e)?(a=a.inInlineMode||0===d.scroll.y?M:V,new h([null,b,H,J,a])):f&&b.size.bottom<=d.pane.height&&k(c.y,b.size.bottom-e,d.pane.height)?(a=a.inInlineMode||k(b.size.bottom,d.pane.height-e,d.pane.height)?
-N:V,new h([b,null,I,J,a])):null}function t(b){var c=b.mouse,d=b.view,e=b.triggerOffset,g=f(b);if(!g)return null;u(b,g);var e=Math.min(e,0|g.size.outerHeight/2),l=[],m,q;if(k(c.y,g.size.top-1,g.size.top+e))q=!1;else if(k(c.y,g.size.bottom-e,g.size.bottom+1))q=!0;else return null;if(v(g)||r(b,g,q)||g.getParent().is(U))return null;var t=a(b,g,!q);if(t){if(t&&t.type==CKEDITOR.NODE_TEXT)return null;if(n(t)){if(v(t)||!p(b,t)||t.getParent().is(U))return null;l=[t,g][q?"reverse":"concat"]().concat([P,J])}}else g.equals(b.editable[q?
-"getLast":"getFirst"](b.isRelevant))?(w(b),q&&k(c.y,g.size.bottom-e,d.pane.height)&&k(g.size.bottom,d.pane.height-e,d.pane.height)?m=N:k(c.y,0,g.size.top+e)&&(m=M)):m=V,l=[null,g][q?"reverse":"concat"]().concat([q?I:H,J,m,g.equals(b.editable[q?"getLast":"getFirst"](b.isRelevant))?q?N:M:V]);return 0 in l?new h(l):null}function y(a,b,c,d){for(var e=b.getDocumentPosition(),g={},f={},h={},k={},l=Q.length;l--;)g[Q[l]]=parseInt(b.getComputedStyle.call(b,"border-"+Q[l]+"-width"),10)||0,h[Q[l]]=parseInt(b.getComputedStyle.call(b,
-"padding-"+Q[l]),10)||0,f[Q[l]]=parseInt(b.getComputedStyle.call(b,"margin-"+Q[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+g.top+g.bottom);k.width=k.outerWidth-(h.left+h.right+g.left+g.right);k.bottom=k.top+k.outerHeight;k.right=k.left+k.outerWidth;a.inInlineMode&&(k.scroll={top:b.$.scrollTop,left:b.$.scrollLeft});return C({border:g,padding:h,margin:f,ignoreScroll:c},
-k,!0)}function u(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-fa)return null;return C(b.size,y(a,b,c),{date:+new Date},!0)}function w(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-fa)){var d=a.win,c=d.getScrollPosition(),d=d.getViewPaneSize();C(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 A(a,b,c,d){for(var e=d,g=d,f=0,k=!1,l=!1,m=a.view.pane.height,n=a.mouse;n.y+f<m&&0<n.y-f;){k||(k=b(e,d));l||(l=b(g,d));!k&&0<n.y-f&&(e=c(a,{x:n.x,y:n.y-f}));!l&&n.y+f<m&&(g=c(a,{x:n.x,y:n.y+f}));if(k&&l)break;f+=2}return new h([e,g,null,null])}CKEDITOR.plugins.add("magicline",{init:function(b){var e=b.config,k=e.magicline_triggerOffset||30,l={editor:b,enterMode:e.enterMode,triggerOffset:k,holdDistance:0|
-k*(e.magicline_holdDistance||.5),boxColor:e.magicline_color||"#ff0000",rtl:"rtl"==e.contentsLangDirection,tabuList:["data-cke-hidden-sel"].concat(e.magicline_tabuList||[]),triggers:e.magicline_everywhere?ea:{table:1,hr:1,div:1,ul:1,ol:1,dl:1,form:1,blockquote:1}},r,p,u;l.isRelevant=function(a){return n(a)&&!g(l,a)&&!v(a)};b.on("contentDom",function(){var k=b.editable(),n=b.document,v=b.window;C(l,{editable:k,inInlineMode:k.isInline(),doc:n,win:v,hotNode:null},!0);l.boundary=l.inInlineMode?l.editable:
-l.doc.getDocumentElement();k.is(F.$inline)||(l.inInlineMode&&!x(k)&&k.setStyles({position:"relative",top:null,left:null}),m.call(this,l),B(l),k.attachListener(b,"beforeUndoImage",function(){l.line.detach()}),k.attachListener(b,"beforeGetData",function(){l.line.wrap.getParent()&&(l.line.detach(),b.once("getData",function(){l.line.attach()},null,null,1E3))},null,null,0),k.attachListener(l.inInlineMode?n:n.getWindow().getFrame(),"mouseout",function(a){if("wysiwyg"==b.mode)if(l.inInlineMode){var c=a.data.$.clientX;
-a=a.data.$.clientY;B(l);w(l,!0);var d=l.view.editable,e=l.view.scroll;c>d.left-e.x&&c<d.right-e.x&&a>d.top-e.y&&a<d.bottom-e.y||(clearTimeout(u),u=null,l.line.detach())}else clearTimeout(u),u=null,l.line.detach()}),k.attachListener(k,"keyup",function(){l.hiddenMode=0}),k.attachListener(k,"keydown",function(a){if("wysiwyg"==b.mode)switch(a.data.getKeystroke()){case 2228240:case 16:l.hiddenMode=1,l.line.detach()}}),k.attachListener(l.inInlineMode?k:n,"mousemove",function(a){p=!0;if("wysiwyg"==b.mode&&
-!b.readOnly&&!u){var c={x:a.data.$.clientX,y:a.data.$.clientY};u=setTimeout(function(){l.mouse=c;u=l.trigger=null;B(l);p&&!l.hiddenMode&&b.focusManager.hasFocus&&!l.line.mouseNear()&&(l.element=Z(l,!0))&&((l.trigger=z(l)||t(l)||X(l))&&!q(l,l.trigger.upper||l.trigger.lower)?l.line.attach().place():(l.trigger=null,l.line.detach()),p=!1)},30)}}),k.attachListener(v,"scroll",function(){"wysiwyg"==b.mode&&(l.line.detach(),G.webkit&&(l.hiddenMode=1,clearTimeout(r),r=setTimeout(function(){l.mouseDown||(l.hiddenMode=
-0)},50)))}),k.attachListener(L?n:v,"mousedown",function(){"wysiwyg"==b.mode&&(l.line.detach(),l.hiddenMode=1,l.mouseDown=1)}),k.attachListener(L?n:v,"mouseup",function(){l.hiddenMode=0;l.mouseDown=0}),b.addCommand("accessPreviousSpace",d(l)),b.addCommand("accessNextSpace",d(l,!0)),b.setKeystroke([[e.magicline_keystrokePrevious,"accessPreviousSpace"],[e.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")){l.hotNode=c;l.lastCmdDirection="true"===c.data("cke-magicline-dir")?!0:!1;return}}),b._.magiclineBackdoor={accessFocusSpace:c,boxTrigger:h,isLine:g,getAscendantTrigger:f,getNonEmptyNeighbour:a,getSize:y,that:l,triggerEdge:t,triggerEditable:z,triggerExpand:X})},this)}});var C=CKEDITOR.tools.extend,D=CKEDITOR.dom.element,E=D.createFromHtml,G=CKEDITOR.env,L=CKEDITOR.env.ie&&9>CKEDITOR.env.version,F=CKEDITOR.dtd,O={},H=128,I=64,P=32,J=16,
-M=4,N=2,V=1,S=" ",U=F.$listItem,da=F.$tableContent,T=C({},F.$nonEditable,F.$empty),ea=F.$block,fa=100,ia="width:0px;height:0px;padding:0px;margin:0px;display:block;z-index:9999;color:#fff;position:absolute;font-size: 0px;line-height:0px;",ka=ia+"border-color:transparent;display:block;border-style:solid;",W="\x3cspan\x3e"+S+"\x3c/span\x3e";O[CKEDITOR.ENTER_BR]="br";O[CKEDITOR.ENTER_P]="p";O[CKEDITOR.ENTER_DIV]="div";h.prototype={set:function(a,b,c){this.properties=a+b+(c||V);return this},is:function(a){return(this.properties&
-a)==a}};var Z=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,c,d){if(!b.mouse)return null;var e=b.doc,f=b.line.wrap;d=d||b.mouse;var h=a(e,d);c&&g(b,h)&&(f.hide(),h=a(e,d),f.show());return!h||h.type!=CKEDITOR.NODE_ELEMENT||!h.$||G.ie&&9>G.version&&!b.boundary.equals(h)&&!b.boundary.contains(h)?null:h}}(),aa=CKEDITOR.dom.walker.whitespaces(),ca=CKEDITOR.dom.walker.nodeType(CKEDITOR.NODE_COMMENT),X=function(){function a(d){var g=
-d.element,f,h,l;if(!n(g)||g.contains(d.editable)||g.isReadOnly())return null;l=A(d,function(a,b){return!b.equals(a)},function(a,b){return Z(a,!0,b)},g);f=l.upper;h=l.lower;if(b(d,f,h))return l.set(P,8);if(f&&g.contains(f))for(;!f.getParent().equals(g);)f=f.getParent();else f=g.getFirst(function(a){return c(d,a)});if(h&&g.contains(h))for(;!h.getParent().equals(g);)h=h.getParent();else h=g.getLast(function(a){return c(d,a)});if(!f||!h)return null;u(d,f);u(d,h);if(!k(d.mouse.y,f.size.top,h.size.bottom))return null;
-for(var g=Number.MAX_VALUE,m,q,t,r;h&&!h.equals(f)&&(q=f.getNext(d.isRelevant));)m=Math.abs(e(d,f,q)-d.mouse.y),m<g&&(g=m,t=f,r=q),f=q,u(d,f);if(!t||!r||!k(d.mouse.y,t.size.top,r.size.bottom))return null;l.upper=t;l.lower=r;return l.set(P,8)}function c(a,b){return!(b&&b.type==CKEDITOR.NODE_TEXT||ca(b)||v(b)||g(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 g=d.lower;e=!e||!g||v(g)||v(e)||g.equals(e)||e.equals(g)||g.contains(e)||e.contains(g)?
-!1:p(c,e)&&p(c,g)&&b(c,e,g)?!0:!1}return e?d:null}}(),Q=["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=[],e=["style","className"],c=0;c<e.length;c++){var d=a.$.elements.namedItem(e[c]);d&&(d=new CKEDITOR.dom.element(d),b.push([d,d.nextSibling]),d.remove())}return b}
-function h(a,b){if(a&&a.type==CKEDITOR.NODE_ELEMENT&&"form"==a.getName()&&0<b.length)for(var e=b.length-1;0<=e;e--){var c=b[e][0],d=b[e][1];d?c.insertBefore(d):c.appendTo(a)}}function f(a,e){var f=b(a),c={},d=a.$;e||(c["class"]=d.className||"",d.className="");c.inline=d.style.cssText||"";e||(d.style.cssText="position: static; overflow: visible");h(f);return c}function e(a,e){var f=b(a),c=a.$;"class"in e&&(c.className=e["class"]);"inline"in e&&(c.style.cssText=e.inline);h(f)}function a(a){if(!a.editable().isInline()){var b=
-CKEDITOR.instances,e;for(e in b){var c=b[e];"wysiwyg"!=c.mode||c.readOnly||(c=c.document.getBody(),c.setAttribute("contentEditable",!1),c.setAttribute("contentEditable",!0))}a.editable().hasFocus&&(a.toolbox.focus(),a.focus())}}CKEDITOR.plugins.add("maximize",{init:function(b){function h(){var a=d.getViewPaneSize();b.resize(a.width,a.height,null,!0)}if(b.elementMode!=CKEDITOR.ELEMENT_MODE_INLINE){var m=b.lang,c=CKEDITOR.document,d=c.getWindow(),g,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")}),q=b.ui.space("contents");if("wysiwyg"==b.mode){var r=b.getSelection();g=r&&r.getRanges();n=d.getScrollPosition()}else{var z=b.editable().$;g=!CKEDITOR.env.ie&&[z.selectionStart,z.selectionEnd];n=[z.scrollLeft,z.scrollTop]}if(this.state==CKEDITOR.TRISTATE_OFF){d.on("resize",h);v=d.getScrollPosition();
-for(r=b.container;r=r.getParent();)r.setCustomData("maximize_saved_styles",f(r)),r.setStyle("z-index",b.config.baseFloatZIndex-5);q.setCustomData("maximize_saved_styles",f(q,!0));p.setCustomData("maximize_saved_styles",f(p,!0));q={overflow:CKEDITOR.env.webkit?"":"hidden",width:0,height:0};c.getDocumentElement().setStyles(q);!CKEDITOR.env.gecko&&c.getDocumentElement().setStyle("position","fixed");CKEDITOR.env.gecko&&CKEDITOR.env.quirks||c.getBody().setStyles(q);CKEDITOR.env.ie?setTimeout(function(){d.$.scrollTo(0,
-0)},0):d.$.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();q=p.getDocumentPosition();p.setStyles({left:-1*q.x+"px",top:-1*q.y+"px"});CKEDITOR.env.gecko&&a(b)}else if(this.state==CKEDITOR.TRISTATE_ON){d.removeListener("resize",h);for(var r=[q,p],t=0;t<r.length;t++)e(r[t],r[t].getCustomData("maximize_saved_styles")),r[t].removeCustomData("maximize_saved_styles");
-for(r=b.container;r=r.getParent();)e(r,r.getCustomData("maximize_saved_styles")),r.removeCustomData("maximize_saved_styles");CKEDITOR.env.ie?setTimeout(function(){d.$.scrollTo(v.x,v.y)},0):d.$.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:q.$.offsetHeight,outerWidth:b.container.$.offsetWidth})}this.toggleState();if(r=
-this.uiItems[0])q=this.state==CKEDITOR.TRISTATE_OFF?m.maximize.maximize:m.maximize.minimize,r=CKEDITOR.document.getById(r._.id),r.getChild(1).setHtml(q),r.setAttribute("title",q),r.setAttribute("href",'javascript:void("'+q+'");');"wysiwyg"==b.mode?g?(CKEDITOR.env.gecko&&a(b),b.getSelection().selectRanges(g),(z=b.getSelection().getStartElement())&&z.scrollIntoView(!0)):d.$.scrollTo(n.x,n.y):(g&&(z.selectionStart=g[0],z.selectionEnd=g[1]),z.scrollLeft=n[0],z.scrollTop=n[1]);g=n=null;x=this.state;b.fire("maximize",
-this.state)},canUndo:!1});b.ui.addButton&&b.ui.addButton("Maximize",{label:m.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);if(b.config.maximize_historyIntegration)d.on(b.config.maximize_historyIntegration===CKEDITOR.HISTORY_NATIVE?"popstate":"hashchange",function(){var a=b.getCommand("maximize");a.state===CKEDITOR.TRISTATE_ON&&a.exec()})}}});
-CKEDITOR.config.maximize_historyIntegration=CKEDITOR.HISTORY_NATIVE}(),function(){CKEDITOR.plugins.add("xml",{});CKEDITOR.xml=function(b){var h=null;if("object"==typeof b)h=b;else if(b=(b||"").replace(/&nbsp;/g," "),"ActiveXObject"in window){try{h=new ActiveXObject("MSXML2.DOMDocument")}catch(f){try{h=new ActiveXObject("Microsoft.XmlDom")}catch(e){}}h&&(h.async=!1,h.resolveExternals=!1,h.validateOnParse=!1,h.loadXML(b))}else window.DOMParser&&(h=(new DOMParser).parseFromString(b,"text/xml"));this.baseXml=
-h};CKEDITOR.xml.prototype={selectSingleNode:function(b,h){var f=this.baseXml;if(h||(h=f)){if("selectSingleNode"in h)return h.selectSingleNode(b);if(f.evaluate)return(f=f.evaluate(b,h,null,9,null))&&f.singleNodeValue||null}return null},selectNodes:function(b,h){var f=this.baseXml,e=[];if(h||(h=f)){if("selectNodes"in h)return h.selectNodes(b);if(f.evaluate&&(f=f.evaluate(b,h,null,5,null)))for(var a;a=f.iterateNext();)e.push(a)}return e},getInnerXml:function(b,h){var f=this.selectSingleNode(b,h),e=[];
-if(f)for(f=f.firstChild;f;)f.xml?e.push(f.xml):window.XMLSerializer&&e.push((new XMLSerializer).serializeToString(f)),f=f.nextSibling;return e.length?e.join(""):null}}}(),function(){CKEDITOR.plugins.add("ajax",{requires:"xml"});CKEDITOR.ajax=function(){function b(){if(!CKEDITOR.env.ie||"file:"!=location.protocol)try{return new XMLHttpRequest}catch(a){}try{return new ActiveXObject("Msxml2.XMLHTTP")}catch(b){}try{return new ActiveXObject("Microsoft.XMLHTTP")}catch(e){}return null}function h(a,b){if(4!=
-a.readyState||!(200<=a.status&&300>a.status||304==a.status||0===a.status||1223==a.status))return null;switch(b){case "text":return a.responseText;case "xml":var e=a.responseXML;return new CKEDITOR.xml(e&&e.firstChild?e:a.responseText);case "arraybuffer":return a.response;default:return null}}function f(a,e,f){var m=!!e,c=b();if(!c)return null;m&&"text"!==f&&"xml"!==f&&(c.responseType=f);c.open("GET",a,m);m&&(c.onreadystatechange=function(){4==c.readyState&&(e(h(c,f)),c=null)});c.send(null);return m?
-"":h(c,f)}function e(a,e,f,m,c){var d=b();if(!d)return null;d.open("POST",a,!0);d.onreadystatechange=function(){4==d.readyState&&(m&&m(h(d,c)),d=null)};d.setRequestHeader("Content-type",f||"application/x-www-form-urlencoded; charset\x3dUTF-8");d.send(e)}return{load:function(a,b,e){return f(a,b,e||"text")},post:function(a,b,f,h){return e(a,b,f,h,"text")},loadXml:function(a,b){return f(a,b,"xml")},loadText:function(a,b){return f(a,b,"text")},loadBinary:function(a,b){return f(a,b,"arraybuffer")}}}()}(),
-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 c=a.shift();c&&c.handle(b,function(){h(a,b)})}function f(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,d){return CKEDITOR.tools.array.indexOf(b,a)===d})}function e(b,e){var c=0,
-d,g;if(!CKEDITOR.tools.array.isArray(b)||0===b.length)return!0;d=CKEDITOR.tools.array.filter(b,function(b){return-1===CKEDITOR.tools.array.indexOf(a,b)});if(0<d.length)for(g=0;g<d.length;g++)(function(b){CKEDITOR.scriptLoader.queue(b,function(g){g&&a.push(b);++c===d.length&&e()})})(d[g]);return 0===d.length}var a=[],k=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 c=b(this.handlers,k),d;if(0!==c.length){d=f(c);d=e(d,function(){return a.fire("paste",k.data)});if(!d)return k.cancel();h(c,k)}},this,null,3)}}});CKEDITOR.plugins.add("pastetools",{requires:["clipboard","ajax"],beforeInit:function(a){a.pasteTools=new k;a.pasteTools.addPasteListener(a)}});CKEDITOR.plugins.pastetools={filters:{},loadFilters:e,createFilter:function(a){var b=CKEDITOR.tools.array.isArray(a.rules)?a.rules:[a.rules],c=a.additionalTransforms;return function(a,e){var f=new CKEDITOR.htmlParser.basicWriter,
-h=new CKEDITOR.htmlParser.filter,k;c&&(a=c(a,e));CKEDITOR.tools.array.forEach(b,function(b){h.addRules(b(a,e,h))});k=CKEDITOR.htmlParser.fragment.fromHtml(a);h.applyTo(k);k.writeHtml(f);return f.getHtml()}},getClipboardData:function(a,b){var c;return CKEDITOR.plugins.clipboard.isCustomDataTypesSupported||"text/html"===b?(c=a.dataTransfer.getData(b,!0))||"text/html"!==b?c:a.dataValue:null},getConfigValue:function(a,b){if(a&&a.config){var c=CKEDITOR.tools,d=a.config,e=c.object.keys(d),f=["pasteTools_"+
-b,"pasteFromWord_"+b,"pasteFromWord"+c.capitalize(b,!0)],f=c.array.find(f,function(a){return-1!==c.array.indexOf(e,a)});return d[f]}},getContentGeneratorName:function(a){if((a=/<meta\s+name=["']?generator["']?\s+content=["']?(\w+)/gi.exec(a))&&a.length)return a=a[1].toLowerCase(),0===a.indexOf("microsoft")?"microsoft":0===a.indexOf("libreoffice")?"libreoffice":"unknown"}};CKEDITOR.pasteFilters=CKEDITOR.plugins.pastetools.filters}(),function(){CKEDITOR.plugins.add("pastefromgdocs",{requires:"pastetools",
-init:function(b){var h=CKEDITOR.plugins.getPath("pastetools"),f=this.path;b.pasteTools.register({filters:[CKEDITOR.getUrl(h+"filter/common.js"),CKEDITOR.getUrl(f+"filter/default.js")],canHandle:function(b){return/id=(\"|\')?docs\-internal\-guid\-/.test(b.data.dataValue)},handle:function(e,a){var f=e.data,h=CKEDITOR.plugins.pastetools.getClipboardData(f,"text/html");f.dontFilter=!0;f.dataValue=CKEDITOR.pasteFilters.gdocs(h,b);!0===b.config.forcePasteAsPlainText&&(f.type="text");a()}})}})}(),function(){CKEDITOR.plugins.add("pastefromlibreoffice",
-{requires:"pastetools",isSupportedEnvironment:function(){var b=CKEDITOR.env.ie&&11>=CKEDITOR.env.version;return!(CKEDITOR.env.webkit&&!CKEDITOR.env.chrome)&&!b},init:function(b){if(this.isSupportedEnvironment()){var h=CKEDITOR.plugins.getPath("pastetools"),f=this.path;b.pasteTools.register({priority:100,filters:[CKEDITOR.getUrl(h+"filter/common.js"),CKEDITOR.getUrl(h+"filter/image.js"),CKEDITOR.getUrl(f+"filter/default.js")],canHandle:function(b){b=b.data;return(b=b.dataTransfer.getData("text/html",
-!0)||b.dataValue)?"libreoffice"===CKEDITOR.plugins.pastetools.getContentGeneratorName(b):!1},handle:function(e,a){var f=e.data,h=f.dataValue||CKEDITOR.plugins.pastetools.getClipboardData(f,"text/html");f.dontFilter=!0;h=CKEDITOR.pasteFilters.image(h,b,CKEDITOR.plugins.pastetools.getClipboardData(f,"text/rtf"));f.dataValue=CKEDITOR.pasteFilters.libreoffice(h,b);!0===b.config.forcePasteAsPlainText&&(f.type="text");a()}})}}})}(),function(){CKEDITOR.plugins.add("pastefromword",{requires:"pastetools",
-init:function(b){var h=0,f=CKEDITOR.plugins.getPath("pastetools"),e=this.path,a=void 0===b.config.pasteFromWord_inlineImages?!0:b.config.pasteFromWord_inlineImages,f=[CKEDITOR.getUrl(f+"filter/common.js"),CKEDITOR.getUrl(f+"filter/image.js"),CKEDITOR.getUrl(e+"filter/default.js")];b.addCommand("pastefromword",{canUndo:!1,async:!0,exec:function(a,b){h=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=CKEDITOR.plugins.pastetools.getClipboardData(a.data,"text/html");var b=CKEDITOR.plugins.pastetools.getContentGeneratorName(a),e=/(class="?Mso|style=["'][^"]*?\bmso\-|w:WordDocument|<o:\w+>|<\/font>)/,b=b?"microsoft"===b:e.test(a);return a&&(h||b)},handle:function(e,f){var m=
-e.data,c=CKEDITOR.plugins.pastetools.getClipboardData(m,"text/html"),d=CKEDITOR.plugins.pastetools.getClipboardData(m,"text/rtf"),c={dataValue:c,dataTransfer:{"text/rtf":d}};if(!1!==b.fire("pasteFromWord",c)||h){m.dontFilter=!0;if(h||!b.config.pasteFromWordPromptCleanup||confirm(b.lang.pastefromword.confirmCleanup))c.dataValue=CKEDITOR.cleanWord(c.dataValue,b),CKEDITOR.plugins.clipboard.isCustomDataTypesSupported&&a&&CKEDITOR.pasteFilters.image&&(c.dataValue=CKEDITOR.pasteFilters.image(c.dataValue,
-b,d)),b.fire("afterPasteFromWord",c),m.dataValue=c.dataValue,!0===b.config.forcePasteAsPlainText?m.type="text":CKEDITOR.plugins.clipboard.isCustomCopyCutSupported||"allow-word"!==b.config.forcePasteAsPlainText||(m.type="html");h=0;f()}}})}})}(),function(){var b={canUndo:!1,async:!0,exec:function(b,f){var e=b.lang,a=CKEDITOR.tools.keystrokeToString(e.common.keyboard,b.getCommandKeystroke(CKEDITOR.env.ie?b.commands.paste:this)),k=f&&"undefined"!==typeof f.notification?f.notification:!f||!f.from||"keystrokeHandler"===
-f.from&&CKEDITOR.env.ie,e=k&&"string"===typeof k?k:e.pastetext.pasteNotification.replace(/%1/,'\x3ckbd aria-label\x3d"'+a.aria+'"\x3e'+a.display+"\x3c/kbd\x3e");b.execCommand("paste",{type:"text",notification:k?e:!1})}};CKEDITOR.plugins.add("pastetext",{requires:"clipboard",init:function(h){var f=CKEDITOR.env.safari?CKEDITOR.CTRL+CKEDITOR.ALT+CKEDITOR.SHIFT+86:CKEDITOR.CTRL+CKEDITOR.SHIFT+86;h.addCommand("pastetext",b);h.setKeystroke(f,"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")),f=b._.removeAttributes||(b._.removeAttributes=b.config.removeFormatAttributes.split(",")),e=CKEDITOR.plugins.removeformat.filter,a=b.getSelection().getRanges(),k=a.createIterator(),l=function(a){return a.type==CKEDITOR.NODE_ELEMENT},m;m=k.getNextRange();){m.enlarge(CKEDITOR.ENLARGE_INLINE);
-var c=m.createBookmark(),d=c.startNode,g=c.endNode,n=function(a){for(var c=b.elementPath(a),d=c.elements,g=1,f;(f=d[g])&&!f.equals(c.block)&&!f.equals(c.blockLimit);g++)h.test(f.getName())&&e(b,f)&&a.breakParent(f)};n(d);if(g)for(n(g),d=d.getNextSourceNode(!0,CKEDITOR.NODE_ELEMENT);d&&!d.equals(g);)if(d.isReadOnly()){if(d.getPosition(g)&CKEDITOR.POSITION_CONTAINS)break;d=d.getNext(l)}else n=d.getNextSourceNode(!1,CKEDITOR.NODE_ELEMENT),"img"==d.getName()&&d.data("cke-realelement")||!e(b,d)||(h.test(d.getName())?
-d.remove(1):(d.removeAttributes(f),b.fire("removeFormatCleanup",d))),d=n;m.moveToBookmark(c)}b.forceNextSelectionCheck();b.getSelection().selectRanges(a)}}},filter:function(b,h){for(var f=b._.removeFormatFilters||[],e=0;e<f.length;e++)if(!1===f[e](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,e,a){var k,l;if(a="string"==typeof a?CKEDITOR.document.getById(a):new CKEDITOR.dom.element(a))if(k=b.fire("uiSpace",{space:e,html:""}).html)b.on("uiSpace",function(a){a.data.space==e&&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:e,spaceId:b.ui.spaceId(e),content:k}))),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,c,d=a.getChildren();c=d.getItem(b);b++)c.type==CKEDITOR.NODE_ELEMENT&&!c.equals(l)&&c.hasClass("cke_shared")&&c.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(f){f.on("loaded",function(){var e=f.config.sharedSpaces;if(e)for(var a in e)b(f,a,e[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 f=this.state!=CKEDITOR.TRISTATE_ON||b.elementMode==CKEDITOR.ELEMENT_MODE_INLINE&&!b.focusManager.hasFocus?"removeClass":"attachClass";b.editable()[f]("cke_show_blocks")}}};CKEDITOR.plugins.add("showblocks",{onLoad:function(){var b="p div pre address blockquote h1 h2 h3 h4 h5 h6".split(" "),f,e,a,k,l=CKEDITOR.getUrl(this.path),m=!(CKEDITOR.env.ie&&9>CKEDITOR.env.version),c=m?":not([contenteditable\x3dfalse]):not(.cke_show_blocks_off)":
-"",d,g;for(f=e=a=k="";d=b.pop();)g=b.length?",":"",f+=".cke_show_blocks "+d+c+g,a+=".cke_show_blocks.cke_contents_ltr "+d+c+g,k+=".cke_show_blocks.cke_contents_rtl "+d+c+g,e+=".cke_show_blocks "+d+c+"{background-image:url("+CKEDITOR.getUrl(l+"images/block_"+d+".png")+")}";CKEDITOR.addCss((f+"{background-repeat:no-repeat;border:1px dotted gray;padding-top:8px}").concat(e,a+"{background-position:top left;padding-left:8px}",k+"{background-position:top right;padding-right:8px}"));m||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 f(){e.refresh(h)}if(!h.blockless){var e=h.addCommand("showblocks",b);e.canUndo=!1;h.config.startupOutlineBlocks&&e.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(){e.state!=CKEDITOR.TRISTATE_DISABLED&&e.refresh(h)});h.elementMode==CKEDITOR.ELEMENT_MODE_INLINE&&(h.on("focus",f),h.on("blur",f));h.on("contentDom",function(){e.state!=CKEDITOR.TRISTATE_DISABLED&&
-e.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 f=this.state==CKEDITOR.TRISTATE_ON?"attachClass":"removeClass";b.editable()[f]("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 f=h.addCommand("showborders",b);f.canUndo=!1;!1!==h.config.startupShowBorders&&f.setState(CKEDITOR.TRISTATE_ON);h.on("mode",function(){f.state!=CKEDITOR.TRISTATE_DISABLED&&f.refresh(h)},null,null,100);h.on("contentDom",function(){f.state!=CKEDITOR.TRISTATE_DISABLED&&f.refresh(h)});h.on("removeFormatCleanup",function(b){b=b.data;h.getCommand("showborders").state==CKEDITOR.TRISTATE_ON&&b.is("table")&&(!b.hasAttribute("border")||
-0>=parseInt(b.getAttribute("border"),10))&&b.addClass("cke_show_border")})},afterInit:function(b){var f=b.dataProcessor;b=f&&f.dataFilter;f=f&&f.htmlFilter;b&&b.addRules({elements:{table:function(b){b=b.attributes;var a=b["class"],f=parseInt(b.border,10);f&&!(0>=f)||a&&-1!=a.indexOf("cke_show_border")||(b["class"]=(a||"")+" cke_show_border")}}});f&&f.addRules({elements:{table:function(b){b=b.attributes;var a=b["class"];a&&(b["class"]=a.replace("cke_show_border","").replace(/\s{2}/," ").replace(/^\s+|\s+$/,
-""))}}})}});CKEDITOR.on("dialogDefinition",function(b){var f=b.data.name;if("table"==f||"tableProperties"==f)if(b=b.data.definition,f=b.getContents("info").get("txtBorder"),f.commit=CKEDITOR.tools.override(f.commit,function(b){return function(a,f){b.apply(this,arguments);var h=parseInt(this.getValue(),10);f[!h||0>=h?"addClass":"removeClass"]("cke_show_border")}}),b=(b=b.getContents("advanced"))&&b.get("advCSSClasses"))b.setup=CKEDITOR.tools.override(b.setup,function(b){return function(){b.apply(this,
-arguments);this.setValue(this.getValue().replace(/cke_show_border/,""))}}),b.commit=CKEDITOR.tools.override(b.commit,function(b){return function(a,f){b.apply(this,arguments);parseInt(f.getAttribute("border"),10)||f.addClass("cke_show_border")}})})}(),function(){CKEDITOR.plugins.add("sourcearea",{init:function(h){function f(){var b=a&&this.equals(CKEDITOR.document.getActive());this.hide();this.setStyle("height",this.getParent().$.clientHeight+"px");this.setStyle("width",this.getParent().$.clientWidth+
-"px");this.show();b&&this.focus()}if(h.elementMode!=CKEDITOR.ELEMENT_MODE_INLINE){var e=CKEDITOR.plugins.sourcearea;h.addMode("source",function(a){var e=h.ui.space("contents").getDocument().createElement("textarea");e.setStyles(CKEDITOR.tools.extend({width:CKEDITOR.env.ie7Compat?"99%":"100%",height:"100%",resize:"none",outline:"none","text-align":"left"},CKEDITOR.tools.cssVendorPrefix("tab-size",h.config.sourceAreaTabSize||4)));e.setAttribute("dir","ltr");e.addClass("cke_source").addClass("cke_reset").addClass("cke_enable_context_menu");
-h.ui.space("contents").append(e);e=h.editable(new b(h,e));e.setData(h.getData(1));CKEDITOR.env.ie&&(e.attachListener(h,"resize",f,e),e.attachListener(CKEDITOR.document.getWindow(),"resize",f,e),CKEDITOR.tools.setTimeout(f,0,e));h.fire("ariaWidget",this);a()});h.addCommand("source",e.commands.source);h.ui.addButton&&h.ui.addButton("Source",{label:h.lang.sourcearea.toolbar,command:"source",toolbar:"mode,10"});h.on("mode",function(){h.getCommand("source").setState("source"==h.mode?CKEDITOR.TRISTATE_ON:
-CKEDITOR.TRISTATE_OFF)});var a=CKEDITOR.env.ie&&9==CKEDITOR.env.version}}});var b=CKEDITOR.tools.createClass({base:CKEDITOR.editable,proto:{setData:function(b){this.setValue(b);this.status="ready";this.editor.fire("dataReady")},getData:function(){return this.getValue()},insertHtml:function(){},insertElement:function(){},insertText:function(){},setReadOnly:function(b){this[(b?"set":"remove")+"Attribute"]("readOnly","readonly")},detach:function(){b.baseProto.detach.call(this);this.clearCustomData();
-this.remove()}}})}(),CKEDITOR.plugins.sourcearea={commands:{source:{modes:{wysiwyg:1,source:1},editorFocus:!1,readOnly:1,exec:function(b){"wysiwyg"==b.mode&&b.fire("saveSnapshot");b.getCommand("source").setState(CKEDITOR.TRISTATE_DISABLED);b.setMode("source"==b.mode?"wysiwyg":"source")},canUndo:!1}}},CKEDITOR.plugins.add("sourcedialog",{requires:"dialog",init:function(b){b.addCommand("sourcedialog",new CKEDITOR.dialogCommand("sourcedialog"));CKEDITOR.dialog.add("sourcedialog",this.path+"dialogs/sourcedialog.js");
-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 f=b.langCode,f=h.availableLangs[f]?f:h.availableLangs[f.replace(/-.*/,"")]?f.replace(/-.*/,""):"en";CKEDITOR.scriptLoader.load(CKEDITOR.getUrl(h.path+"dialogs/lang/"+f+".js"),function(){CKEDITOR.tools.extend(b.lang.specialchar,h.langEntries[f]);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,f=b.lang.stylescombo,e={},a=[],k=[];b.on("stylesSet",function(f){if(f=f.data.styles){for(var m,c,d,g=0,n=f.length;g<n;g++)(m=f[g],b.blockless&&m.element in CKEDITOR.dtd.$block||"string"==typeof m.type&&!CKEDITOR.style.customHandlers[m.type]||(c=m.name,m=new CKEDITOR.style(m),b.filter.customConfig&&!b.filter.check(m)))||(m._name=c,m._.enterMode=h.enterMode,m._.type=d=m.assignedTo||m.type,m._.weight=
-g+1E3*(d==CKEDITOR.STYLE_OBJECT?1:d==CKEDITOR.STYLE_BLOCK?2:3),e[c]=m,a.push(m),k.push(m));a.sort(function(a,b){return a._.weight-b._.weight})}});b.on("stylesRemove",function(a){a=a.data&&a.data.type;var f=void 0===a,c;for(c in e){var d=e[c];(f||d.type===a)&&b.removeStyle(d)}});b.ui.addRichCombo("Styles",{label:f.label,title:f.panelTitle,toolbar:"styles,10",allowedContent:k,panel:{css:[CKEDITOR.skin.getPath("editor")].concat(h.contentsCss),multiSelect:!0,attributes:{"aria-label":f.panelTitle}},init:function(){var b,
-e,c,d,g,h;g=0;for(h=a.length;g<h;g++)b=a[g],e=b._name,d=b._.type,d!=c&&(this.startGroup(f["panelTitle"+String(d)]),c=d),this.add(e,b.type==CKEDITOR.STYLE_OBJECT?e:b.buildPreview(),e);this.commit()},onClick:function(a){b.focus();b.fire("saveSnapshot");a=e[a];var f=b.elementPath();if(a.group&&a.removeStylesFromSameGroup(b))b.applyStyle(a);else b[a.checkActive(f,b)?"removeStyle":"applyStyle"](a);b.fire("saveSnapshot")},onRender:function(){b.on("selectionChange",function(a){var f=this.getValue();a=a.data.path.elements;
-for(var c=0,d=a.length,g;c<d;c++){g=a[c];for(var h in e)if(e[h].checkElementRemovable(g,!0,b)){h!=f&&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 c in e){var d=e[c],g=d._.type;d.checkApplicable(a,b,b.activeFilter)?h[g]++:this.hideItem(c);d.checkActive(a,b)&&this.mark(c)}h[CKEDITOR.STYLE_BLOCK]||this.hideGroup(f["panelTitle"+
-String(CKEDITOR.STYLE_BLOCK)]);h[CKEDITOR.STYLE_INLINE]||this.hideGroup(f["panelTitle"+String(CKEDITOR.STYLE_INLINE)]);h[CKEDITOR.STYLE_OBJECT]||this.hideGroup(f["panelTitle"+String(CKEDITOR.STYLE_OBJECT)])},refresh:function(){var a=b.elementPath();if(a){for(var f in e)if(e[f].checkApplicable(a,b,b.activeFilter))return;this.setState(CKEDITOR.TRISTATE_DISABLED)}},reset:function(){e={};a=[]}})}})}(),function(){function b(a){return{editorFocus:!1,canUndo:!1,modes:{wysiwyg:1},exec:function(b){if(b.editable().hasFocus){var e=
-b.getSelection(),f;if(f=(new CKEDITOR.dom.elementPath(e.getCommonAncestor(),e.root)).contains({td:1,th:1},1)){var e=b.createRange(),c=CKEDITOR.tools.tryThese(function(){var b=f.getParent().$.cells[f.$.cellIndex+(a?-1:1)];b.parentNode.parentNode;return b},function(){var b=f.getParent(),b=b.getAscendant("table").$.rows[b.$.rowIndex+(a?-1:1)];return b.cells[a?b.cells.length-1:0]});if(c||a)if(c)c=new CKEDITOR.dom.element(c),e.moveToElementEditStart(c),e.checkStartOfBlock()&&e.checkEndOfBlock()||e.selectNodeContents(c);
-else return!0;else{for(var d=f.getAscendant("table").$,c=f.getParent().$.cells,d=new CKEDITOR.dom.element(d.insertRow(-1),b.document),g=0,h=c.length;g<h;g++)d.append((new CKEDITOR.dom.element(c[g],b.document)).clone(!1,!1)).appendBogus();e.moveToElementEditStart(d)}e.select(!0);return!0}}return!1}}}var h={editorFocus:!1,modes:{wysiwyg:1,source:1}},f={exec:function(a){a.container.focusNext(!0,a.tabIndex)}},e={exec:function(a){a.container.focusPrevious(!0,a.tabIndex)}};CKEDITOR.plugins.add("tab",{init:function(a){for(var k=
-!1!==a.config.enableTabKeyTools,l=a.config.tabSpaces||0,m="";l--;)m+=" ";if(m)a.on("key",function(b){9==b.data.keyCode&&(a.insertText(m),b.cancel())});if(k)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(f,h));a.addCommand("blurBack",CKEDITOR.tools.extend(e,h));a.addCommand("selectNextCell",b());a.addCommand("selectPreviousCell",b(!0))}})}(),CKEDITOR.dom.element.prototype.focusNext=
-function(b,h){var f=void 0===h?this.getTabIndex():h,e,a,k,l,m,c;if(0>=f)for(m=this.getNextSourceNode(b,CKEDITOR.NODE_ELEMENT);m;){if(m.isVisible()&&0===m.getTabIndex()){k=m;break}m=m.getNextSourceNode(!1,CKEDITOR.NODE_ELEMENT)}else for(m=this.getDocument().getBody().getFirst();m=m.getNextSourceNode(!1,CKEDITOR.NODE_ELEMENT);){if(!e)if(!a&&m.equals(this)){if(a=!0,b){if(!(m=m.getNextSourceNode(!0,CKEDITOR.NODE_ELEMENT)))break;e=1}}else a&&!this.contains(m)&&(e=1);if(m.isVisible()&&!(0>(c=m.getTabIndex()))){if(e&&
-c==f){k=m;break}c>f&&(!k||!l||c<l)?(k=m,l=c):k||0!==c||(k=m,l=c)}}k&&k.focus()},CKEDITOR.dom.element.prototype.focusPrevious=function(b,h){for(var f=void 0===h?this.getTabIndex():h,e,a,k,l=0,m,c=this.getDocument().getBody().getLast();c=c.getPreviousSourceNode(!1,CKEDITOR.NODE_ELEMENT);){if(!e)if(!a&&c.equals(this)){if(a=!0,b){if(!(c=c.getPreviousSourceNode(!0,CKEDITOR.NODE_ELEMENT)))break;e=1}}else a&&!this.contains(c)&&(e=1);if(c.isVisible()&&!(0>(m=c.getTabIndex())))if(0>=f){if(e&&0===m){k=c;break}m>
-l&&(k=c,l=m)}else{if(e&&m==f){k=c;break}m<f&&(!k||m>l)&&(k=c,l=m)}}k&&k.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 f=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 f=b.styles;f["border-left"]&&f["border-left"]===f["border-right"]&&f["border-right"]===f["border-top"]&&
-f["border-top"]===f["border-bottom"]&&(a=CKEDITOR.tools.style.parse.border(f["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 f=a.getParent(),h=b.editable();1!=f.getChildCount()||f.is("td",
-"th")||f.equals(h)||(a=f);b=b.createRange();b.moveToPosition(a,CKEDITOR.POSITION_BEFORE_START);a.remove();b.select()}}}));b.ui.addButton&&b.ui.addButton("Table",{label:f.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:f.menu,command:"tableProperties",group:"table",order:5},tabledelete:{label:f.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){var b=/^(?:td|th)$/;0<e.length||a.type!=CKEDITOR.NODE_ELEMENT||!b.test(a.getName())||a.getCustomData("selected_cell")||(CKEDITOR.dom.element.setMarker(g,
-a,"selected_cell",!0),e.push(a))}var e=[],g={};if(!a)return e;for(var f=a.getRanges(),h=0;h<f.length;h++){var k=f[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(g,l,"selected_cell",!0),e.push(l))}}CKEDITOR.dom.element.clearAllMarkers(g);
-return e}function h(a,c){for(var d=p(a)?a:b(a),e=d[0],g=e.getAscendant("table"),e=e.getDocument(),f=d[0].getParent(),h=f.$.rowIndex,d=d[d.length-1],k=d.getParent().$.rowIndex+d.$.rowSpan-1,d=new CKEDITOR.dom.element(g.$.rows[k]),h=c?h:k,f=c?f:d,d=CKEDITOR.tools.buildTableMap(g),g=d[h],h=c?d[h-1]:d[h+1],d=d[0].length,e=e.createElement("tr"),k=0;g[k]&&k<d;k++){var l;1<g[k].rowSpan&&h&&g[k]==h[k]?(l=g[k],l.rowSpan+=1):(l=(new CKEDITOR.dom.element(g[k])).clone(),l.removeAttribute("rowSpan"),l.appendBogus(),
-e.append(l),l=l.$);k+=l.colSpan-1}c?e.insertBefore(f):e.insertAfter(f);return e}function f(a){if(a instanceof CKEDITOR.dom.selection){var c=a.getRanges(),d=b(a),e=d[0].getAscendant("table"),g=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=g[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=g[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}d.push(m)}g=e.$.rows;c[0].moveToPosition(e,CKEDITOR.POSITION_BEFORE_START);h=new CKEDITOR.dom.element(g[k+1]||(0<h?g[h-1]:null)||e.$.parentNode);for(a=d.length;0<=a;a--)f(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 e(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 g=e(a[d]);if(b?g<c:g>c)c=g}return c}function k(c,d){for(var e=p(c)?c:b(c),g=e[0].getAscendant("table"),f=a(e,1),e=a(e),h=d?f:e,k=CKEDITOR.tools.buildTableMap(g),g=[],f=[],e=[],l=k.length,m=0;m<l;m++){var n=d?k[m][h-1]:k[m][h+1];g.push(k[m][h]);f.push(n)}for(m=0;m<l;m++)g[m]&&(1<g[m].colSpan&&f[m]==g[m]?(k=g[m],k.colSpan+=1):(h=new CKEDITOR.dom.element(g[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 l(a){function c(a){var b=a.getRanges(),d,e;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),g=e[0],f=e[e.length-1],e=g.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]==g.$&&(k=p),h[n][p]==f.$&&(l=p);for(n=k;n<=l;n++)for(p=0;p<h.length;p++)f=h[p],g=new CKEDITOR.dom.element(e.$.rows[p]),f=new CKEDITOR.dom.element(f[n]),f.$&&(1==f.$.colSpan?f.remove():--f.$.colSpan,
-p+=f.$.rowSpan-1,g.$.cells.length||m.push(g));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 m(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 c(a){if(a instanceof CKEDITOR.dom.selection){var e=
-a.getRanges(),g=b(a),f=g[0]&&g[0].getAscendant("table"),h;a:{var k=0;h=g.length-1;for(var l={},m,n;m=g[k++];)CKEDITOR.dom.element.setMarker(l,m,"delete_cell",!0);for(k=0;m=g[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=g[0].getParent();(k=k.getPrevious())?h=k.getLast():(k=g[h].getParent(),h=(k=k.getNext())?k.getChild(0):null)}a.reset();for(a=
-g.length-1;0<=a;a--)c(g[a]);h?d(h,!0):f&&(e[0].moveToPosition(f,CKEDITOR.POSITION_BEFORE_START),e[0].select(),f.remove())}else a instanceof CKEDITOR.dom.element&&(e=a.getParent(),1==e.getChildCount()?e.remove():a.remove())}function d(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 g(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,c,d){var e=b(a),f;if((c?1!=e.length:2>e.length)||(f=a.getCommonAncestor())&&f.type==CKEDITOR.NODE_ELEMENT&&f.is("table"))return!1;a=e[0];f=a.getAscendant("table");var h=CKEDITOR.tools.buildTableMap(f),k=h.length,l=h[0].length,m=a.getParent().$.rowIndex,n=g(h,m,a),p;if(c){var v;try{var x=parseInt(a.getAttribute("rowspan"),10)||1;p=parseInt(a.getAttribute("colspan"),
-10)||1;v=h["up"==c?m-x:"down"==c?m+x:m]["left"==c?n-p:"right"==c?n+p:n]}catch(L){return!1}if(!v||a.$==v)return!1;e["up"==c||"left"==c?"unshift":"push"](new CKEDITOR.dom.element(v))}c=a.getDocument();var F=m,x=v=0,O=!d&&new CKEDITOR.dom.documentFragment(c),H=0;for(c=0;c<e.length;c++){p=e[c];var I=p.getParent(),P=p.getFirst(),J=p.$.colSpan,M=p.$.rowSpan,I=I.$.rowIndex,N=g(h,I,p),H=H+J*M,x=Math.max(x,N-n+J);v=Math.max(v,I-m+M);d||(J=p,(M=J.getBogus())&&M.remove(),J.trim(),p.getChildren().count()&&(I==
-F||!P||P.isBlockBoundary&&P.isBlockBoundary({br:1})||(F=O.getLast(CKEDITOR.dom.walker.whitespaces(!0)),!F||F.is&&F.is("br")||O.append("br")),p.moveChildren(O)),c?p.remove():p.setHtml(""));F=I}if(d)return v*x==H;O.moveChildren(a);a.appendBogus();x>=l?a.removeAttribute("rowSpan"):a.$.rowSpan=v;v>=k?a.removeAttribute("colSpan"):a.$.colSpan=x;d=new CKEDITOR.dom.nodeList(f.$.rows);e=d.count();for(c=e-1;0<=c;c--)f=d.getItem(c),f.$.cells.length||(f.remove(),e++);return a}function v(a,c){var d=b(a);if(1<
-d.length)return!1;if(c)return!0;var d=d[0],e=d.getParent(),f=e.getAscendant("table"),h=CKEDITOR.tools.buildTableMap(f),k=e.$.rowIndex,l=g(h,k,d),m=d.$.rowSpan,n;if(1<m){n=Math.ceil(m/2);for(var m=Math.floor(m/2),e=k+n,f=new CKEDITOR.dom.element(f.$.rows[e]),h=g(h,e),p,e=d.clone(),k=0;k<h.length;k++)if(p=h[k],p.parentNode==f.$&&k>l){e.insertBefore(new CKEDITOR.dom.element(p));break}else p=null;p||f.append(e)}else for(m=n=1,f=e.clone(),f.insertAfter(e),f.append(e=d.clone()),p=g(h,k),l=0;l<p.length;l++)p[l].rowSpan++;
-e.appendBogus();d.$.rowSpan=n;e.$.rowSpan=m;1==n&&d.removeAttribute("rowSpan");1==m&&e.removeAttribute("rowSpan");return e}function x(a,c){var d=b(a);if(1<d.length)return!1;if(c)return!0;var d=d[0],e=d.getParent(),f=e.getAscendant("table"),f=CKEDITOR.tools.buildTableMap(f),h=g(f,e.$.rowIndex,d),k=d.$.colSpan;if(1<k)e=Math.ceil(k/2),k=Math.floor(k/2);else{for(var k=e=1,l=[],m=0;m<f.length;m++){var n=f[m];l.push(n[h]);1<n[h].rowSpan&&(m+=n[h].rowSpan-1)}for(f=0;f<l.length;f++)l[f].colSpan++}f=d.clone();
-f.insertAfter(d);f.appendBogus();d.$.colSpan=e;f.$.colSpan=k;1==e&&d.removeAttribute("colSpan");1==k&&f.removeAttribute("colSpan");return f}var p=CKEDITOR.tools.isArray;CKEDITOR.plugins.tabletools={requires:"table,dialog,contextmenu",init:function(a){function e(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 g(b,c){var d=a.addCommand(b,c);a.addFeature(d)}var p=a.lang.table,
-y=CKEDITOR.tools.style.parse,u="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(" ");g("cellProperties",new CKEDITOR.dialogCommand("cellProperties",e({allowedContent:"td th{width,height,border-color,background-color,white-space,vertical-align,text-align}[colspan,rowspan]",requiredContent:u,contentTransformations:[[{element:"td",left:function(a){return a.styles.background&&y.background(a.styles.background).color},
-right:function(a){a.styles["background-color"]=y.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");g("rowDelete",e({requiredContent:"table",exec:function(a){a=a.getSelection();(a=f(a))&&d(a)}}));g("rowInsertBefore",e({requiredContent:"table",exec:function(a){a=a.getSelection();a=b(a);h(a,!0)}}));
-g("rowInsertAfter",e({requiredContent:"table",exec:function(a){a=a.getSelection();a=b(a);h(a)}}));g("columnDelete",e({requiredContent:"table",exec:function(a){a=a.getSelection();(a=l(a))&&d(a,!0)}}));g("columnInsertBefore",e({requiredContent:"table",exec:function(a){a=a.getSelection();a=b(a);k(a,!0)}}));g("columnInsertAfter",e({requiredContent:"table",exec:function(a){a=a.getSelection();a=b(a);k(a)}}));g("cellDelete",e({requiredContent:"table",exec:function(a){a=a.getSelection();c(a)}}));g("cellMerge",
-e({allowedContent:"td[colspan,rowspan]",requiredContent:"td[colspan,rowspan]",exec:function(a,b){b.cell=n(a.getSelection());d(b.cell,!0)}}));g("cellMergeRight",e({allowedContent:"td[colspan]",requiredContent:"td[colspan]",exec:function(a,b){b.cell=n(a.getSelection(),"right");d(b.cell,!0)}}));g("cellMergeDown",e({allowedContent:"td[rowspan]",requiredContent:"td[rowspan]",exec:function(a,b){b.cell=n(a.getSelection(),"down");d(b.cell,!0)}}));g("cellVerticalSplit",e({allowedContent:"td[rowspan]",requiredContent:"td[rowspan]",
-exec:function(a){d(x(a.getSelection()))}}));g("cellHorizontalSplit",e({allowedContent:"td[colspan]",requiredContent:"td[colspan]",exec:function(a){d(v(a.getSelection()))}}));g("cellInsertBefore",e({requiredContent:"table",exec:function(a){a=a.getSelection();m(a,!0)}}));g("cellInsertAfter",e({requiredContent:"table",exec:function(a){a=a.getSelection();m(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:x(c,!0)?CKEDITOR.TRISTATE_OFF:CKEDITOR.TRISTATE_DISABLED,tablecell_split_horizontal:v(c,!0)?CKEDITOR.TRISTATE_OFF:
-CKEDITOR.TRISTATE_DISABLED};a.filter.check(u)&&(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:e,insertRow:h,insertColumn:k,getSelectedCells:b};CKEDITOR.plugins.add("tabletools",CKEDITOR.plugins.tabletools)}(),CKEDITOR.tools.buildTableMap=function(b,h,f,e,a){b=b.$.rows;f=f||0;e="number"===typeof e?e:b.length-1;a="number"===typeof a?
-a:-1;var k=-1,l=[];for(h=h||0;h<=e;h++){k++;!l[k]&&(l[k]=[]);for(var m=-1,c=f;c<=(-1===a?b[h].cells.length-1:a);c++){var d=b[h].cells[c];if(!d)break;for(m++;l[k][m];)m++;for(var g=isNaN(d.colSpan)?1:d.colSpan,d=isNaN(d.rowSpan)?1:d.rowSpan,n=0;n<d&&!(h+n>e);n++){l[k+n]||(l[k+n]=[]);for(var v=0;v<g;v++)l[k+n][m+v]=b[h].cells[c]}m+=g-1;if(-1!==a&&m>=a)break}}return l},function(){function b(a){return CKEDITOR.env.ie?a.$.clientWidth:parseInt(a.getComputedStyle("width"),10)}function h(a,b){var e=a.getComputedStyle("border-"+
-b+"-width"),f={thin:"0px",medium:"1px",thick:"2px"};0>e.indexOf("px")&&(e=e in f&&"none"!=a.getComputedStyle("border-style")?f[e]:0);return parseFloat(e)}function f(a){var b=[],e={},f="rtl"===a.getComputedStyle("direction"),k=CKEDITOR.tools.array.zip((new CKEDITOR.dom.nodeList(a.$.rows)).toArray(),CKEDITOR.tools.buildTableMap(a));CKEDITOR.tools.array.forEach(k,function(k){var l=k[0].$;k=k[1];var m=-1,r=0,v=null;l?(r=new CKEDITOR.dom.element(l),v={height:r.$.offsetHeight,position:r.getDocumentPosition()}):
-v=void 0;for(var l=CKEDITOR.env.ie&&!CKEDITOR.env.edge,t="collapse"===a.getComputedStyle("border-collapse"),r=v.height,v=v.position,y=0;y<k.length;y++){var u=new CKEDITOR.dom.element(k[y]),w=k[y+1]&&new CKEDITOR.dom.element(k[y+1]),B,A,C=u.getDocumentPosition().x,m=m+(u.$.colSpan||1);f?A=C+h(u,"left"):B=C+u.$.offsetWidth-h(u,"right");w?(C=w.getDocumentPosition().x,f?B=C+w.$.offsetWidth-h(w,"right"):A=C+h(w,"left")):(C=a.getDocumentPosition().x,f?B=C:A=C+a.$.offsetWidth);u=Math.max(A-B,3);l&&t&&(B-=
-u,u=Math.max(A-B,3));u={table:a,index:m,x:B,y:v.y,width:u,height:r,rtl:f};e[m]=e[m]||[];e[m].push(u);u.alignedPillars=e[m];b.push(u)}});return b}function e(a){(a.data||a).preventDefault()}function a(a){function d(){z=0;r.setOpacity(0);y&&g();var a=p.table;setTimeout(function(){a.removeCustomData("_cke_table_pillars")},0);q.removeListener("dragstart",e)}function g(){for(var d=p.rtl,e=d?B.length:w.length,g=0,f=0;f<e;f++){var k=w[f],m=B[f],n=p.table;CKEDITOR.tools.setTimeout(function(b,f,h,k,m,p){b&&
-b.setStyle("width",l(Math.max(f+p,1)));h&&h.setStyle("width",l(Math.max(k-p,1)));m&&n.setStyle("width",l(m+p*(d?-1:1)));++g==e&&a.fire("saveSnapshot")},0,this,[k,k&&b(k),m,m&&b(m),(!k||!m)&&b(n)+h(n,"left")+h(n,"right"),y])}}function f(d){e(d);a.fire("saveSnapshot");d=p.index;for(var g=CKEDITOR.tools.buildTableMap(p.table),h=[],l=[],m=Number.MAX_VALUE,n=m,u=p.rtl,I=0,P=g.length;I<P;I++){var J=g[I],M=J[d+(u?1:0)],J=J[d+(u?0:1)],M=M&&new CKEDITOR.dom.element(M),J=J&&new CKEDITOR.dom.element(J);M&&J&&
-M.equals(J)||(M&&(m=Math.min(m,b(M))),J&&(n=Math.min(n,b(J))),h.push(M),l.push(J))}w=h;B=l;A=p.x-m;C=p.x+n;r.setOpacity(.5);t=parseInt(r.getStyle("left"),10);y=0;z=1;r.on("mousemove",x);q.on("dragstart",e);q.on("mouseup",k,this)}function k(a){a.removeListener();d()}function x(a){u(a.data.getPageOffset().x)}var p,q,r,z,t,y,u,w,B,A,C;q=a.document;r=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:10000"\x3e\x3c/div\x3e',
-q);a.on("destroy",function(){r.remove()});m||q.getDocumentElement().append(r);this.attachTo=function(a){var b,c,d;z||(m&&(q.getBody().append(r),y=0),p=a,b=p.alignedPillars[0],c=p.alignedPillars[p.alignedPillars.length-1],d=b.y,b=c.height+c.y-b.y,r.setStyles({width:l(a.width),height:l(b),left:l(a.x),top:l(d)}),m&&r.setOpacity(.25),r.on("mousedown",f,this),q.getBody().setStyle("cursor","col-resize"),r.show())};u=this.move=function(a,b){if(!p)return 0;if(!(z||a>=p.x&&a<=p.x+p.width&&b>=p.y&&b<=p.y+p.height))return p=
-null,z=y=0,q.removeListener("mouseup",k),r.removeListener("mousedown",f),r.removeListener("mousemove",x),q.getBody().setStyle("cursor","auto"),m?r.remove():r.hide(),0;var c=a-Math.round(r.$.offsetWidth/2);if(z){if(c==A||c==C)return 1;c=Math.max(c,A);c=Math.min(c,C);y=c-t}r.setStyle("left",l(c));return 1}}function k(a){var b=a.data.getTarget();if("mouseout"==a.name){if(!b.is("table"))return;for(var e=new CKEDITOR.dom.element(a.data.$.relatedTarget||a.data.$.toElement);e&&e.$&&!e.equals(b)&&!e.is("body");)e=
-e.getParent();if(!e||e.equals(b))return}b.getAscendant("table",1).removeCustomData("_cke_table_pillars");a.removeListener()}var l=CKEDITOR.tools.cssLength,m=CKEDITOR.env.ie&&(CKEDITOR.env.ie7Compat||CKEDITOR.env.quirks);CKEDITOR.plugins.add("tableresize",{requires:"tabletools",init:function(b){b.on("contentDom",function(){var d,g=b.editable();g.attachListener(g.isInline()?g:b.document,"mousemove",function(g){g=g.data;var h=g.getTarget();if(h.type==CKEDITOR.NODE_ELEMENT){var l=g.getPageOffset().x,
-m=g.getPageOffset().y;if(d&&d.move(l,m))e(g);else if(h.is("table")||h.getAscendant({thead:1,tbody:1,tfoot:1},1))if(g=h.getAscendant("table",1),b.editable().contains(g)){(h=g.getCustomData("_cke_table_pillars"))||(g.setCustomData("_cke_table_pillars",h=f(g)),g.on("mouseout",k),g.on("mousedown",k));a:{g=h;for(var h=0,q=g.length;h<q;h++){var r=g[h];if(l>=r.x&&l<=r.x+r.width&&m>=r.y&&m<=r.y+r.height){l=r;break a}}l=null}l&&(!d&&(d=new a(b)),d.attachTo(l))}}})})}})}(),"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],f={8:1,46:1};CKEDITOR.plugins.add("undo",{init:function(a){function b(a){f.enabled&&!1!==a.data.command.canUndo&&f.save()}function g(){f.enabled=a.readOnly?!1:"wysiwyg"==a.mode;f.onChange()}var f=a.undoManager=new e(a),k=f.editingHandler=new l(f),m=a.addCommand("undo",{exec:function(){f.undo()&&(a.selectionChange(),this.fire("afterUndo"))},startDisabled:!0,
-canUndo:!1}),p=a.addCommand("redo",{exec:function(){f.redo()&&(a.selectionChange(),this.fire("afterRedo"))},startDisabled:!0,canUndo:!1});a.setKeystroke([[h[0],"undo"],[h[1],"redo"],[h[2],"redo"]]);f.onChange=function(){m.setState(f.undoable()?CKEDITOR.TRISTATE_OFF:CKEDITOR.TRISTATE_DISABLED);p.setState(f.redoable()?CKEDITOR.TRISTATE_OFF:CKEDITOR.TRISTATE_DISABLED)};a.on("beforeCommandExec",b);a.on("afterCommandExec",b);a.on("saveSnapshot",function(a){f.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&&f.save(!0)});a.on("mode",g);a.on("readOnly",g);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(){f.reset();a.fire("saveSnapshot")};a.on("updateSnapshot",function(){f.currentImage&&f.update()});a.on("lockSnapshot",function(a){a=
-a.data;f.lock(a&&a.dontUpdate,a&&a.forceUpdate)});a.on("unlockSnapshot",f.unlock,f)}});CKEDITOR.plugins.undo={};var e=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,"")})};e.prototype={type:function(a,b){var g=e.getKeyGroup(a),f=this.strokesRecorded[g]+
-1;b=b||f>=this.strokesLimit;this.typing||(this.hasUndo=this.typing=!0,this.hasRedo=!1,this.onChange());b?(f=0,this.editor.fire("saveSnapshot")):this.editor.fire("change");this.strokesRecorded[g]=f;this.previousKeyGroup=g},keyGroupChanged:function(a){return e.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,d,e){var f=this.editor;if(this.locked||"ready"!=f.status||"wysiwyg"!=f.mode)return!1;var h=f.editable();if(!h||"ready"!=h.status)return!1;h=this.snapshots;d||(d=new a(f));if(!1===d.contents)return!1;if(this.currentImage)if(d.equalsContent(this.currentImage)){if(b||d.equalsSelection(this.currentImage))return!1}else!1!==e&&f.fire("change");h.splice(this.index+
-1,h.length-this.index-1);h.length==this.limit&&h.shift();this.index=h.push(d)-1;this.currentImage=d;!1!==e&&this.refreshState();return!0},restoreImage:function(a){var b=this.editor,e;a.bookmarks&&(b.focus(),e=b.getSelection());this.locked={level:999};this.editor.loadSnapshot(a.contents);a.bookmarks?e.selectBookmarks(a.bookmarks):CKEDITOR.env.ie&&(e=this.editor.document.getBody().$.createTextRange(),e.collapse(!0),e.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,e=this.currentImage,f;if(e)if(a)for(f=this.index-1;0<=f;f--){if(a=b[f],!e.equalsContent(a))return a.index=f,a}else for(f=this.index+1;f<b.length;f++)if(a=b[f],!e.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 d=this.index,e=this.snapshots;0<d&&this.currentImage.equalsContent(e[d-1]);)--d;e.splice(d,this.index-d+1,b);this.index=d;this.currentImage=b}},updateSelection:function(a){if(!this.snapshots.length)return!1;var b=this.snapshots,e=b[b.length-1];return e.equalsContent(a)&&!e.equalsSelection(a)?
-(this.currentImage=b[b.length-1]=a,!0):!1},lock:function(b,d){if(this.locked)this.locked.level++;else if(b)this.locked={level:1};else{var e=null;if(d)e=!0;else{var f=new a(this.editor,!0);this.currentImage&&this.currentImage.equalsContent(f)&&(e=f)}this.locked={update:e,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 d=new a(this.editor,!0);b.equalsContent(d)||this.update()}}},addFilterRule:function(a){this._filterRules.push(a)}};
-e.navigationKeyCodes={37:1,38:1,39:1,40:1,36:1,35:1,33:1,34:1};e.keyGroups={PRINTABLE:0,FUNCTIONAL:1};e.isNavigationKey=function(a){return!!e.navigationKeyCodes[a]};e.getKeyGroup=function(a){var b=e.keyGroups;return f[a]?b.FUNCTIONAL:b.PRINTABLE};e.getOppositeKeyGroup=function(a){var b=e.keyGroups;return a==b.FUNCTIONAL?b.PRINTABLE:b.FUNCTIONAL};e.ieFunctionalKeysBug=function(a){return CKEDITOR.env.ie&&e.getKeyGroup(a)==e.keyGroups.FUNCTIONAL};var a=CKEDITOR.plugins.undo.Image=function(a,d){this.editor=
-a;a.fire("beforeUndoImage");var e=a.getSnapshot();e&&(this.contents=b(e,a.undoManager._filterRules));d||(this.bookmarks=(e=e&&a.getSelection())&&e.createBookmarks2(!0));a.fire("afterUndoImage")},k=/\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(k,""),a=a.replace(k,""));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 e=0;e<b.length;e++){var f=b[e],h=a[e];if(f.startOffset!=h.startOffset||f.endOffset!=h.endOffset||!CKEDITOR.tools.arrayCompare(f.start,h.start)||!CKEDITOR.tools.arrayCompare(f.end,h.end))return!1}}return!0}};var l=CKEDITOR.plugins.undo.NativeEditingHandler=function(a){this.undoManager=a;this.ignoreInputEvent=!1;this.keyEventsStack=new m;this.lastKeydownImage=null};l.prototype={onKeydown:function(b){var d=b.data.getKey();if(229!==d)if(-1<CKEDITOR.tools.indexOf(h,
-b.data.getKeystroke()))b.data.preventDefault();else if(this.keyEventsStack.cleanUp(b),b=this.undoManager,this.keyEventsStack.getLast(d)||this.keyEventsStack.push(d),this.lastKeydownImage=new a(b.editor),e.isNavigationKey(d)||this.undoManager.keyGroupChanged(d))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 d=this.undoManager;b=b.data.getKey();var g=this.keyEventsStack.getTotalInputs();this.keyEventsStack.remove(b);if(!(e.ieFunctionalKeysBug(b)&&this.lastKeydownImage&&this.lastKeydownImage.equalsContent(new a(d.editor,!0))))if(0<g)d.type(b);else if(e.isNavigationKey(b))this.onNavigationKey(!0)},
-onNavigationKey:function(b){var d=this.undoManager;!b&&d.save(!0,null,!1)||d.updateSelection(new a(d.editor));d.resetType()},ignoreInputEventListener:function(){this.ignoreInputEvent=!0},activateInputEventListener:function(){this.ignoreInputEvent=!1},attachListeners:function(){var a=this.undoManager.editor,b=a.editable(),g=this;b.attachListener(b,"keydown",function(a){g.onKeydown(a);if(e.ieFunctionalKeysBug(a.data.getKey()))g.onInput()},null,null,999);b.attachListener(b,CKEDITOR.env.ie?"keypress":
-"input",g.onInput,g,null,999);b.attachListener(b,"keyup",g.onKeyup,g,null,999);b.attachListener(b,"paste",g.ignoreInputEventListener,g,null,999);b.attachListener(b,"drop",g.ignoreInputEventListener,g,null,999);a.on("afterPaste",g.activateInputEventListener,g,null,999);b.attachListener(b.isInline()?b:a.document.getDocumentElement(),"click",function(){g.onNavigationKey()},null,null,999);b.attachListener(this.undoManager.editor,"blur",function(){g.keyEventsStack.remove(9)},null,null,999)}};var m=CKEDITOR.plugins.undo.KeyEventsStack=
-function(){this.stack=[]};m.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 c=!1;g.attachListener(g,"keydown",function(){var b=f.getBody().getElementsByTag(a);if(!c){for(var d=0;d<b.count();d++)b.getItem(d).setCustomData("retain",
-!0);c=!0}},null,null,1);g.attachListener(g,"keyup",function(){var b=f.getElementsByTag(a);c&&(1==b.count()&&!b.getItem(0).getCustomData("retain")&&CKEDITOR.tools.isEmpty(b.getItem(0).getAttributes())&&b.getItem(0).remove(1),c=!1)})}var e=this.editor;if(e&&!e.isDetached()){var f=a.document,c=f.body,d=f.getElementById("cke_actscrpt");d&&d.parentNode.removeChild(d);(d=f.getElementById("cke_shimscrpt"))&&d.parentNode.removeChild(d);(d=f.getElementById("cke_basetagscrpt"))&&d.parentNode.removeChild(d);
-c.contentEditable=!0;CKEDITOR.env.ie&&(c.hideFocus=!0,c.disabled=!0,c.removeAttribute("disabled"));delete this._.isLoadingData;this.$=c;f=new CKEDITOR.dom.document(f);this.setup();this.fixInitialSelection();var g=this;CKEDITOR.env.ie&&!CKEDITOR.env.edge&&f.getDocumentElement().addClass(f.$.compatMode);CKEDITOR.env.ie&&!CKEDITOR.env.edge&&e.enterMode!=CKEDITOR.ENTER_P?b("p"):CKEDITOR.env.edge&&15>CKEDITOR.env.version&&e.enterMode!=CKEDITOR.ENTER_DIV&&b("div");if(CKEDITOR.env.webkit||CKEDITOR.env.ie&&
-10<CKEDITOR.env.version)f.getDocumentElement().on("mousedown",function(a){a.data.getTarget().is("html")&&setTimeout(function(){e.editable().focus()})});h(e);try{e.document.$.execCommand("2D-position",!1,!0)}catch(n){}(CKEDITOR.env.gecko||CKEDITOR.env.ie&&"CSS1Compat"==e.document.$.compatMode)&&this.attachListener(this,"keydown",function(a){var b=a.data.getKeystroke();if(33==b||34==b)if(CKEDITOR.env.ie)setTimeout(function(){e.getSelection().scrollIntoView()},0);else if(e.window.$.innerHeight>this.$.offsetHeight){var c=
-e.createRange();c[33==b?"moveToElementEditStart":"moveToElementEditEnd"](this);c.select();a.data.preventDefault()}});CKEDITOR.env.ie&&this.attachListener(f,"blur",function(){try{f.$.selection.empty()}catch(a){}});CKEDITOR.env.iOS&&this.attachListener(f,"touchend",function(){a.focus()});c=e.document.getElementsByTag("title").getItem(0);c.data("cke-title",c.getText());CKEDITOR.env.ie&&(e.document.$.title=this._.docTitle);CKEDITOR.tools.setTimeout(function(){"unloaded"==this.status&&(this.status="ready");
-e.fire("contentDom");this._.isPendingFocus&&(e.focus(),this._.isPendingFocus=!1);setTimeout(function(){e.fire("dataReady")},0)},0,this)}}function h(a){function b(){var c;a.editable().attachListener(a,"selectionChange",function(){var b=a.getSelection().getSelectedElement();b&&(c&&(c.detachEvent("onresizestart",e),c=null),b.$.attachEvent("onresizestart",e),c=b.$)})}function e(a){a.returnValue=!1}if(CKEDITOR.env.gecko)try{var f=a.document.$;f.execCommand("enableObjectResizing",!1,!a.config.disableObjectResizing);
-f.execCommand("enableInlineTableEditing",!1,!a.config.disableNativeTableHandles)}catch(c){}else CKEDITOR.env.ie&&11>CKEDITOR.env.version&&a.config.disableObjectResizing&&b()}function f(){var a=[];if(8<=CKEDITOR.document.$.documentMode){a.push("html.CSS1Compat [contenteditable\x3dfalse]{min-height:0 !important}");var b=[],e;for(e in CKEDITOR.dtd.$removeEmpty)b.push("html.CSS1Compat "+e+"[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 e;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 f(d){d&&d.removeListener();if(!a.isDestroyed()&&!a.isDetached()&&
-(a.editable(new e(a,n.getFrameDocument().getBody())),a.setData(a.getData(1),b),z)){if(r)a.on("mode",h,{iframe:n,editor:a,callback:b});a.on("mode",function(){a.status="ready"});c()}}function h(a){a&&a.removeListener();n.on("load",function(){q&&(q=!1,d())})}function c(){t=new MutationObserver(function(b){for(var c=0;c<b.length;c++){var e=b[c];if("childList"===e.type&&0!==e.addedNodes.length)for(var f=0;f<e.addedNodes.length;f++){var g=e.addedNodes[f];g.contains&&g.contains(a.container.$)&&(r?q=!0:d())}}});
-t.observe(a.config.observableParent,{childList:!0,subtree:!0})}function d(){var c=a.getData(!1),d;a.editable().preserveIframe=!0;a.editable(null);d=new e(a,n.getFrameDocument().getBody());a.editable(d);a.status="recreating";a.setData(c,{callback:b,internal:!1,noSnapshot:!1})}var g="document.open();"+(CKEDITOR.env.ie?"("+CKEDITOR.tools.fixDomain+")();":"")+"document.close();",g=CKEDITOR.env.air?"javascript:void(0)":CKEDITOR.env.ie&&!CKEDITOR.env.edge?"javascript:void(function(){"+encodeURIComponent(g)+
-"}())":"",n=CKEDITOR.dom.element.createFromHtml('\x3ciframe src\x3d"'+g+'" frameBorder\x3d"0"\x3e\x3c/iframe\x3e');n.setStyles({width:"100%",height:"100%"});n.addClass("cke_wysiwyg_frame").addClass("cke_reset");g=a.ui.space("contents");g.append(n);var v=CKEDITOR.env.ie&&!CKEDITOR.env.edge||CKEDITOR.env.gecko;if(v)n.on("load",f);var x=a.title,p=a.fire("ariaEditorHelpLabel",{}).label,q=!1,r=CKEDITOR.env.ie&&11===CKEDITOR.env.version,z=!!window.MutationObserver,t;x&&(CKEDITOR.env.ie&&p&&(x+=", "+p),
-n.setAttribute("title",x));if(p){var x=CKEDITOR.tools.getNextId(),y=CKEDITOR.dom.element.createFromHtml('\x3cspan id\x3d"'+x+'" class\x3d"cke_voice_label"\x3e'+p+"\x3c/span\x3e");g.append(y,1);n.setAttribute("aria-describedby",x)}a.on("beforeModeUnload",function(a){a.removeListener();y&&y.remove();z&&t.disconnect()});a.on("destroy",function(){t&&t.disconnect()});n.setAttributes({tabIndex:a.tabIndex,allowTransparency:"true"});!v&&f();a.fire("ariaWidget",n)})}});CKEDITOR.editor.prototype.addContentsCss=
-function(a){var b=this.config,e=b.contentsCss;CKEDITOR.tools.isArray(e)||(b.contentsCss=e?[e]:[]);b.contentsCss.push(a)};e=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:{preserveIframe:!1,setData:function(a,b){var e=this.editor;if(b)this.setHtml(a),this.fixInitialSelection(),
-e.fire("dataReady");else{this._.isLoadingData=!0;e._.dataStore={id:1};var h=e.config,c=h.fullPage,d=h.docType,g=CKEDITOR.tools.buildStyleHtml(f()).replace(/<style>/,'\x3cstyle data-cke-temp\x3d"1"\x3e');c||(g+=CKEDITOR.tools.buildStyleHtml(e.config.contentsCss));var n=h.baseHref?'\x3cbase href\x3d"'+h.baseHref+'" data-cke-temp\x3d"1" /\x3e':"";c&&(a=a.replace(/<!DOCTYPE[^>]*>/i,function(a){e.docType=d=a;return""}).replace(/<\?xml\s[^\?]*\?>/i,function(a){e.xmlDeclaration=a;return""}));a=e.dataProcessor.toHtml(a);
-c?(/<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*>/,g+"$\x26"),a=d+a):a=h.docType+'\x3chtml dir\x3d"'+h.contentsLangDirection+'" lang\x3d"'+(h.contentsLanguage||e.langCode)+'"\x3e\x3chead\x3e\x3ctitle\x3e'+
-this._.docTitle+"\x3c/title\x3e"+n+g+"\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 \x26\x26 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();e.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,e=b.fullPage,f=e&&a.docType,c=e&&a.xmlDeclaration,d=this.getDocument(),e=e?d.getDocumentElement().getOuterHtml():d.getBody().getHtml();CKEDITOR.env.gecko&&b.enterMode!=CKEDITOR.ENTER_BR&&(e=e.replace(/<br>(?=\s*(:?$|<\/body>))/,
-""));e=a.dataProcessor.toDataFormat(e);c&&(e=c+"\n"+e);f&&(e=f+"\n"+e);return e},focus:function(){this._.isLoadingData?this._.isPendingFocus=!0:e.baseProto.focus.call(this)},detach:function(){if(!this.preserveIframe){var a=this.editor,b=a.document,a=a.container.findOne("iframe.cke_wysiwyg_frame");e.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.observableParent=CKEDITOR.document.$,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,xml,ajax,pastetools,pastefromgdocs,pastefromlibreoffice,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,f){var e=CKEDITOR.getUrl("plugins/"+f);b=b.split(",");for(var a=0;a<b.length;a++)CKEDITOR.skin.icons[b[a]]={path:e,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",
-"icons_hidpi.png"):b("about,0,auto,bold,24,auto,italic,48,auto,strike,72,auto,subscript,96,auto,superscript,120,auto,underline,144,auto,blockquote,168,auto,copy-rtl,192,auto,copy,216,auto,cut-rtl,240,auto,cut,264,auto,paste-rtl,288,auto,paste,312,auto,horizontalrule,336,auto,image,360,auto,indent-rtl,384,auto,indent,408,auto,outdent-rtl,432,auto,outdent,456,auto,justifyblock,480,auto,justifycenter,504,auto,justifyleft,528,auto,justifyright,552,auto,language,576,auto,bulletedlist-rtl,600,auto,bulletedlist,624,auto,numberedlist-rtl,648,auto,numberedlist,672,auto,maximize,696,auto,pastefromword-rtl,720,auto,pastefromword,744,auto,pastetext-rtl,768,auto,pastetext,792,auto,removeformat,816,auto,showblocks-rtl,840,auto,showblocks,864,auto,source-rtl,888,auto,source,912,auto,sourcedialog-rtl,936,auto,sourcedialog,960,auto,specialchar,984,auto,table,1008,auto,redo-rtl,1032,auto,redo,1056,auto,undo-rtl,1080,auto,undo,1104,auto,simplebox,1128,auto",
-"icons.png")}())})();
\ No newline at end of file
diff --git a/web/modules/ckeditor/vendor/lang/_translationstatus.txt b/web/modules/ckeditor/vendor/lang/_translationstatus.txt
deleted file mode 100644
index 6dca69478c703eacdb940780b9c340cbd1295a73..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/lang/_translationstatus.txt
+++ /dev/null
@@ -1,63 +0,0 @@
-Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
-For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
-
-af.js      Found: 62 Missing: 4
-ar.js      Found: 51 Missing: 15
-bg.js      Found: 58 Missing: 8
-bn.js      Found: 40 Missing: 26
-bs.js      Found: 29 Missing: 37
-ca.js      Found: 61 Missing: 5
-cs.js      Found: 66 Missing: 0
-cy.js      Found: 66 Missing: 0
-da.js      Found: 66 Missing: 0
-de.js      Found: 66 Missing: 0
-el.js      Found: 59 Missing: 7
-en-au.js   Found: 38 Missing: 28
-en-ca.js   Found: 37 Missing: 29
-en-gb.js   Found: 61 Missing: 5
-eo.js      Found: 66 Missing: 0
-es.js      Found: 66 Missing: 0
-et.js      Found: 66 Missing: 0
-eu.js      Found: 48 Missing: 18
-fa.js      Found: 66 Missing: 0
-fi.js      Found: 66 Missing: 0
-fo.js      Found: 66 Missing: 0
-fr-ca.js   Found: 42 Missing: 24
-fr.js      Found: 66 Missing: 0
-gl.js      Found: 40 Missing: 26
-gu.js      Found: 66 Missing: 0
-he.js      Found: 66 Missing: 0
-hi.js      Found: 43 Missing: 23
-hr.js      Found: 66 Missing: 0
-hu.js      Found: 63 Missing: 3
-is.js      Found: 41 Missing: 25
-it.js      Found: 66 Missing: 0
-ja.js      Found: 62 Missing: 4
-ka.js      Found: 62 Missing: 4
-km.js      Found: 40 Missing: 26
-ko.js      Found: 40 Missing: 26
-lt.js      Found: 66 Missing: 0
-lv.js      Found: 40 Missing: 26
-mk.js      Found: 0 Missing: 66
-mn.js      Found: 40 Missing: 26
-ms.js      Found: 39 Missing: 27
-nb.js      Found: 66 Missing: 0
-nl.js      Found: 65 Missing: 1
-no.js      Found: 66 Missing: 0
-pl.js      Found: 66 Missing: 0
-pt-br.js   Found: 66 Missing: 0
-pt.js      Found: 52 Missing: 14
-ro.js      Found: 61 Missing: 5
-ru.js      Found: 66 Missing: 0
-sk.js      Found: 49 Missing: 17
-sl.js      Found: 48 Missing: 18
-sr-latn.js Found: 40 Missing: 26
-sr.js      Found: 40 Missing: 26
-sv.js      Found: 62 Missing: 4
-th.js      Found: 40 Missing: 26
-tr.js      Found: 66 Missing: 0
-ug.js      Found: 66 Missing: 0
-uk.js      Found: 66 Missing: 0
-vi.js      Found: 66 Missing: 0
-zh-cn.js   Found: 66 Missing: 0
-zh.js      Found: 58 Missing: 8
diff --git a/web/modules/ckeditor/vendor/lang/af.js b/web/modules/ckeditor/vendor/lang/af.js
deleted file mode 100644
index 43fd6c329e1500e0e5c2b973c40e475b5441ba48..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/lang/af.js
+++ /dev/null
@@ -1,5 +0,0 @@
-/*
-Copyright (c) 2003-2022, CKSource Holding sp. z o.o. 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","fileFormatNotSupportedNotification":"This file format is not supported. You can try with one of the supported formats: ${formats}."},"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","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/modules/ckeditor/vendor/lang/ar.js b/web/modules/ckeditor/vendor/lang/ar.js
deleted file mode 100644
index fc2fc2956c712ab18c362c65b121e1a42ca46440..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/lang/ar.js
+++ /dev/null
@@ -1,5 +0,0 @@
-/*
-Copyright (c) 2003-2022, CKSource Holding sp. z o.o. 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","fileFormatNotSupportedNotification":"This file format is not supported. You can try with one of the supported formats: ${formats}."},"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":"صورة","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/modules/ckeditor/vendor/lang/az.js b/web/modules/ckeditor/vendor/lang/az.js
deleted file mode 100644
index 476cfb5687b31cc8dfaa696b83904e2293f4a920..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/lang/az.js
+++ /dev/null
@@ -1,5 +0,0 @@
-/*
-Copyright (c) 2003-2022, CKSource Holding sp. z o.o. 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.","fileFormatNotSupportedNotification":"This file format is not supported. You can try with one of the supported formats: ${formats}."},"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","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/modules/ckeditor/vendor/lang/bg.js b/web/modules/ckeditor/vendor/lang/bg.js
deleted file mode 100644
index 567d079ec3bd705d08f6358e37f96aad78531770..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/lang/bg.js
+++ /dev/null
@@ -1,5 +0,0 @@
-/*
-Copyright (c) 2003-2022, CKSource Holding sp. z o.o. 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.","fileFormatNotSupportedNotification":"This file format is not supported. You can try with one of the supported formats: ${formats}."},"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":"Изображение","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/modules/ckeditor/vendor/lang/bn.js b/web/modules/ckeditor/vendor/lang/bn.js
deleted file mode 100644
index db4cbf550e21324ed4df0f6964e7d4d5a138e775..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/lang/bn.js
+++ /dev/null
@@ -1,5 +0,0 @@
-/*
-Copyright (c) 2003-2022, CKSource Holding sp. z o.o. 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.","fileFormatNotSupportedNotification":"This file format is not supported. You can try with one of the supported formats: ${formats}."},"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":"ছবির লেবেল যুক্ত কর","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/modules/ckeditor/vendor/lang/bs.js b/web/modules/ckeditor/vendor/lang/bs.js
deleted file mode 100644
index ca6809fe5ec37125a4a1ef073b7b3fe75a7dc7c4..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/lang/bs.js
+++ /dev/null
@@ -1,5 +0,0 @@
-/*
-Copyright (c) 2003-2022, CKSource Holding sp. z o.o. 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.","fileFormatNotSupportedNotification":"This file format is not supported. You can try with one of the supported formats: ${formats}."},"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","form":"Forma","checkbox":"Checkbox","radio":"Radio Button","textField":"Polje za unos teksta","textarea":"Textarea","hiddenField":"Skriveno polje","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":"Zatvori","preview":"Prikaži","resize":"Promijeni veličinu","generalTab":"Generalno","advancedTab":"Naprednije","validateNumberFailed":"Unesena vrijednost nije broj","confirmNewPage":"Nesačuvane izmjene će biti izgubljene. Da li ste sigurni da želite otvoriti novu stranicu ?","confirmCancel":"Napravili ste par izmjena. Da li želite zatvoriti prozor ?","options":"Opcije","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":"Centriranje","alignTop":"Vrh","alignMiddle":"Sredina","alignBottom":"Dno","alignNone":"Bez poravnanja","invalidValue":"Nepravilna vrijednost","invalidHeight":"Vrijednost visine mora biti broj.","invalidWidth":"Vrijednost širine mora biti broj.","invalidLength":"Vrijednost za \"%1\" polje mora biti pozitivan broj ili bez ispravne mjerne jedinice (%2).","invalidCssLength":"Vrijednost za \"%1\" polje mora biti pozitivan broj ili bez validne CSS mjerne jedinice (px, %, in, cm, mm, em, ex, pt ili pc).","invalidHtmlLength":"Vrijednost za \"%1\" polje mora biti pozitivan broj ili bez validne HTML mjerne jedinice (px ili %).","invalidInlineStyle":"Vrijednost za inline stil mora sadržavati jedan ili više parova u formatu \"name: value\", razdvojenih tačka-zarezom.","cssLengthTooltip":"Unesite vrijednost u pikselima ili kao broj sa ispravnom CSS jedinicom (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":"Keyboard shortcut","optionDefault":"Zadano"}};
\ No newline at end of file
diff --git a/web/modules/ckeditor/vendor/lang/ca.js b/web/modules/ckeditor/vendor/lang/ca.js
deleted file mode 100644
index 2aa2b08b314b85b6597341a3086fdfbc534d71e6..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/lang/ca.js
+++ /dev/null
@@ -1,5 +0,0 @@
-/*
-Copyright (c) 2003-2022, CKSource Holding sp. z o.o. 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.","fileFormatNotSupportedNotification":"This file format is not supported. You can try with one of the supported formats: ${formats}."},"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","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/modules/ckeditor/vendor/lang/cs.js b/web/modules/ckeditor/vendor/lang/cs.js
deleted file mode 100644
index 80a80d4f49619b60d8a0e8e708b7e9532bfbd9b3..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/lang/cs.js
+++ /dev/null
@@ -1,5 +0,0 @@
-/*
-Copyright (c) 2003-2022, CKSource Holding sp. z o.o. 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":"jednotka výšky","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":"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.","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.","fileFormatNotSupportedNotification":"Tento formát souboru není podporovaný. Můžete to zkusit s jedním z podporovaných formátů: ${formats}."},"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","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/modules/ckeditor/vendor/lang/cy.js b/web/modules/ckeditor/vendor/lang/cy.js
deleted file mode 100644
index be076587965314178ceeaf561cbf4e21d8a99fd3..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/lang/cy.js
+++ /dev/null
@@ -1,5 +0,0 @@
-/*
-Copyright (c) 2003-2022, CKSource Holding sp. z o.o. 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.","fileFormatNotSupportedNotification":"This file format is not supported. You can try with one of the supported formats: ${formats}."},"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","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/modules/ckeditor/vendor/lang/da.js b/web/modules/ckeditor/vendor/lang/da.js
deleted file mode 100644
index ce69ab785a2d0efed7e16d0ef4d6b5a38a9f367e..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/lang/da.js
+++ /dev/null
@@ -1,5 +0,0 @@
-/*
-Copyright (c) 2003-2022, CKSource Holding sp. z o.o. 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":"højde enhed","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":"Formatering på stylesheet","panelTitle1":"Blok typografi","panelTitle2":"Inline typografi","panelTitle3":"Objekt typografi"},"specialchar":{"options":"Muligheder for specielle karakterer","title":"Vælg specielle karakterer","toolbar":"Indsæt specielle karakterer"},"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":"Klik %1 for at indsætte. Din browser understøtter ikke indsæt med tastatur eller kontekstmenu-valg.","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":"Notifikation 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":"Alternativ-tekst mangler."},"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.","fileFormatNotSupportedNotification":"This file format is not supported. You can try with one of the supported formats: ${formats}."},"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","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/modules/ckeditor/vendor/lang/de-ch.js b/web/modules/ckeditor/vendor/lang/de-ch.js
deleted file mode 100644
index c3176665845903a83f5b4579beeacf25bccf4913..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/lang/de-ch.js
+++ /dev/null
@@ -1,5 +0,0 @@
-/*
-Copyright (c) 2003-2022, CKSource Holding sp. z o.o. 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 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ö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":"Höheneinheit","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 muss grösser als 0 sein..","invalidHeight":"Die Tabellenbreite muss eine Zahl sein.","invalidRows":"Die Anzahl der Zeilen muss 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":"Breiteneinheit"},"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 Werkzeugleiste 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 vergrössern","outdent":"Einzug verkleinern"},"image2":{"alt":"Alternativer Text","btnUpload":"Zum Server senden","captioned":"Bild mit Überschrift","captionPlaceholder":"Überschrift","infoTab":"Bildinfo","lockRatio":"Grössenverhä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":"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 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 zu 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 Werkzeugleiste oder dem Kontextmenü.","pasteArea":"Einfügebereich","pasteMsg":"Fügen Sie den Inhalt in den unteren Bereich ein und drücken Sie OK.","fileFormatNotSupportedNotification":"This file format is not supported. You can try with one of the supported formats: ${formats}."},"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","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 verloren. 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":"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":"Wert spezifiziert für \"%1\" Feld muss ein positiver numerischer Wert sein mit oder ohne korrekter HTML-Masseinheit (px oder %).","invalidCssLength":"Wert spezifiziert für \"%1\" Feld muss ein positiver numerischer Wert sein mit oder ohne korrekter CSS-Masseinheit (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 korrekter HTML-Masseinheit (px oder %).","invalidInlineStyle":"Wert spezifiziert für inline Stilart muss enthalten ein oder mehr Wertepaare mit dem Format \"Name : Wert\" getrennt durch Semikolons.","cssLengthTooltip":"Geben Sie eine Zahl ein für ein Wert in Pixel oder eine Zahl mit einer korrekten CSS-Masseinheit (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":"Leertaste","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/modules/ckeditor/vendor/lang/de.js b/web/modules/ckeditor/vendor/lang/de.js
deleted file mode 100644
index 0bc97a902d93440c7a86e790202b69779876030e..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/lang/de.js
+++ /dev/null
@@ -1,5 +0,0 @@
-/*
-Copyright (c) 2003-2022, CKSource Holding sp. z o.o. 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":"Höheneinheit","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 den 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 vergrößern","outdent":"Einzug verkleinern"},"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 zu 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 den 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.","fileFormatNotSupportedNotification":"This file format is not supported. You can try with one of the supported formats: ${formats}."},"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","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/modules/ckeditor/vendor/lang/el.js b/web/modules/ckeditor/vendor/lang/el.js
deleted file mode 100644
index c5cb46f740e8f5d71c56121b9d8662b32d630e9d..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/lang/el.js
+++ /dev/null
@@ -1,5 +0,0 @@
-/*
-Copyright (c) 2003-2022, CKSource Holding sp. z o.o. 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.","fileFormatNotSupportedNotification":"This file format is not supported. You can try with one of the supported formats: ${formats}."},"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":"Εικόνα","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/modules/ckeditor/vendor/lang/en-au.js b/web/modules/ckeditor/vendor/lang/en-au.js
deleted file mode 100644
index 51aa8a8278588a69837de9a4ebb999f8699d665d..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/lang/en-au.js
+++ /dev/null
@@ -1,5 +0,0 @@
-/*
-Copyright (c) 2003-2022, CKSource Holding sp. z o.o. 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.","fileFormatNotSupportedNotification":"This file format is not supported. You can try with one of the supported formats: ${formats}."},"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","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/modules/ckeditor/vendor/lang/en-ca.js b/web/modules/ckeditor/vendor/lang/en-ca.js
deleted file mode 100644
index 0af1c681352fcfd352593d91396ab07935efce6d..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/lang/en-ca.js
+++ /dev/null
@@ -1,5 +0,0 @@
-/*
-Copyright (c) 2003-2022, CKSource Holding sp. z o.o. 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.","fileFormatNotSupportedNotification":"This file format is not supported. You can try with one of the supported formats: ${formats}."},"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","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/modules/ckeditor/vendor/lang/en-gb.js b/web/modules/ckeditor/vendor/lang/en-gb.js
deleted file mode 100644
index c754f27c878a61d99faf68d96ea82c034e556e0a..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/lang/en-gb.js
+++ /dev/null
@@ -1,5 +0,0 @@
-/*
-Copyright (c) 2003-2022, CKSource Holding sp. z o.o. 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.","fileFormatNotSupportedNotification":"This file format is not supported. You can try with one of the supported formats: ${formats}."},"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","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/modules/ckeditor/vendor/lang/en.js b/web/modules/ckeditor/vendor/lang/en.js
deleted file mode 100644
index ed9c46361134f66e26f481b0280658890cfe5aaa..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/lang/en.js
+++ /dev/null
@@ -1,5 +0,0 @@
-/*
-Copyright (c) 2003-2022, CKSource Holding sp. z o.o. 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.","fileFormatNotSupportedNotification":"This file format is not supported. You can try with one of the supported formats: ${formats}."},"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","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/modules/ckeditor/vendor/lang/eo.js b/web/modules/ckeditor/vendor/lang/eo.js
deleted file mode 100644
index bfc4c1b24c8b0d86e6a688f220830beb4e6101f4..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/lang/eo.js
+++ /dev/null
@@ -1,5 +0,0 @@
-/*
-Copyright (c) 2003-2022, CKSource Holding sp. z o.o. 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.","fileFormatNotSupportedNotification":"This file format is not supported. You can try with one of the supported formats: ${formats}."},"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","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/modules/ckeditor/vendor/lang/es-mx.js b/web/modules/ckeditor/vendor/lang/es-mx.js
deleted file mode 100644
index ef3e394e2224fc77b16e45a7c40aa0ad5f58f1ea..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/lang/es-mx.js
+++ /dev/null
@@ -1,5 +0,0 @@
-/*
-Copyright (c) 2003-2022, CKSource Holding sp. z o.o. 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.","fileFormatNotSupportedNotification":"This file format is not supported. You can try with one of the supported formats: ${formats}."},"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","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/modules/ckeditor/vendor/lang/es.js b/web/modules/ckeditor/vendor/lang/es.js
deleted file mode 100644
index 147840c966939c7558da23a23b292f7c08771c3b..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/lang/es.js
+++ /dev/null
@@ -1,5 +0,0 @@
-/*
-Copyright (c) 2003-2022, CKSource Holding sp. z o.o. 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.","fileFormatNotSupportedNotification":"This file format is not supported. You can try with one of the supported formats: ${formats}."},"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","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":"Centrar","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":"El valor especificado para el campo \"%1\" debe ser un número positivo, incluyendo opcionalmente una unidad de medida válida (%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":"Espacio","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":"Comando"},"keyboardShortcut":"Atajos de teclado","optionDefault":"Default"}};
\ No newline at end of file
diff --git a/web/modules/ckeditor/vendor/lang/et.js b/web/modules/ckeditor/vendor/lang/et.js
deleted file mode 100644
index 1168bbe7137a8ab34cd6c6cac0bdcd36b2d6df82..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/lang/et.js
+++ /dev/null
@@ -1,5 +0,0 @@
-/*
-Copyright (c) 2003-2022, CKSource Holding sp. z o.o. 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":"kõrgusühik","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.","fileFormatNotSupportedNotification":"This file format is not supported. You can try with one of the supported formats: ${formats}."},"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","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/modules/ckeditor/vendor/lang/eu.js b/web/modules/ckeditor/vendor/lang/eu.js
deleted file mode 100644
index 2fc730a4ea1ab8e38139d716e5c17cae1a52dbea..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/lang/eu.js
+++ /dev/null
@@ -1,5 +0,0 @@
-/*
-Copyright (c) 2003-2022, CKSource Holding sp. z o.o. 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.","fileFormatNotSupportedNotification":"This file format is not supported. You can try with one of the supported formats: ${formats}."},"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","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/modules/ckeditor/vendor/lang/fa.js b/web/modules/ckeditor/vendor/lang/fa.js
deleted file mode 100644
index 422900a889ae1d2e412984a09fa8457d3ab7525c..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/lang/fa.js
+++ /dev/null
@@ -1,5 +0,0 @@
-/*
-Copyright (c) 2003-2022, CKSource Holding sp. z o.o. 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":"واحد ارتفاع","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":"بند","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 را فشار دهید","fileFormatNotSupportedNotification":"This file format is not supported. You can try with one of the supported formats: ${formats}."},"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":"تصویر","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/modules/ckeditor/vendor/lang/fi.js b/web/modules/ckeditor/vendor/lang/fi.js
deleted file mode 100644
index 0aa4ffc190679821a8df9e1f6ad65fde3768dd27..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/lang/fi.js
+++ /dev/null
@@ -1,5 +0,0 @@
-/*
-Copyright (c) 2003-2022, CKSource Holding sp. z o.o. 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.","fileFormatNotSupportedNotification":"This file format is not supported. You can try with one of the supported formats: ${formats}."},"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","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/modules/ckeditor/vendor/lang/fo.js b/web/modules/ckeditor/vendor/lang/fo.js
deleted file mode 100644
index a563bb3e378bb86f71d404d769e2b1894ceb4640..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/lang/fo.js
+++ /dev/null
@@ -1,5 +0,0 @@
-/*
-Copyright (c) 2003-2022, CKSource Holding sp. z o.o. 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.","fileFormatNotSupportedNotification":"This file format is not supported. You can try with one of the supported formats: ${formats}."},"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","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/modules/ckeditor/vendor/lang/fr-ca.js b/web/modules/ckeditor/vendor/lang/fr-ca.js
deleted file mode 100644
index 816a989f74108675ab6173a9f870c6edf57ee169..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/lang/fr-ca.js
+++ /dev/null
@@ -1,5 +0,0 @@
-/*
-Copyright (c) 2003-2022, CKSource Holding sp. z o.o. 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.","fileFormatNotSupportedNotification":"This file format is not supported. You can try with one of the supported formats: ${formats}."},"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","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/modules/ckeditor/vendor/lang/fr.js b/web/modules/ckeditor/vendor/lang/fr.js
deleted file mode 100644
index cafbea49984234a256a0de56b0280704a36c5910..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/lang/fr.js
+++ /dev/null
@@ -1,5 +0,0 @@
-/*
-Copyright (c) 2003-2022, CKSource Holding sp. z o.o. 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":"unité de hauteur","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.","fileFormatNotSupportedNotification":"This file format is not supported. You can try with one of the supported formats: ${formats}."},"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","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/modules/ckeditor/vendor/lang/gl.js b/web/modules/ckeditor/vendor/lang/gl.js
deleted file mode 100644
index 7992713443a885e44acb62a77b4acade6659f3c2..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/lang/gl.js
+++ /dev/null
@@ -1,5 +0,0 @@
-/*
-Copyright (c) 2003-2022, CKSource Holding sp. z o.o. 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":"unidade do alto","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.","fileFormatNotSupportedNotification":"This file format is not supported. You can try with one of the supported formats: ${formats}."},"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","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/modules/ckeditor/vendor/lang/gu.js b/web/modules/ckeditor/vendor/lang/gu.js
deleted file mode 100644
index c04a29ffab7584f9a6e7346b54cbe8d2cef9cd09..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/lang/gu.js
+++ /dev/null
@@ -1,5 +0,0 @@
-/*
-Copyright (c) 2003-2022, CKSource Holding sp. z o.o. 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.","fileFormatNotSupportedNotification":"This file format is not supported. You can try with one of the supported formats: ${formats}."},"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":"ચિત્ર","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/modules/ckeditor/vendor/lang/he.js b/web/modules/ckeditor/vendor/lang/he.js
deleted file mode 100644
index 9606297554044d0be173f2cf457a79ff0040affb..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/lang/he.js
+++ /dev/null
@@ -1,5 +0,0 @@
-/*
-Copyright (c) 2003-2022, CKSource Holding sp. z o.o. 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.","fileFormatNotSupportedNotification":"This file format is not supported. You can try with one of the supported formats: ${formats}."},"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":"תמונה","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/modules/ckeditor/vendor/lang/hi.js b/web/modules/ckeditor/vendor/lang/hi.js
deleted file mode 100644
index e0dd41c0dc80fbdae508aed52b5da1537d8f5d0a..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/lang/hi.js
+++ /dev/null
@@ -1,5 +0,0 @@
-/*
-Copyright (c) 2003-2022, CKSource Holding sp. z o.o. 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.","fileFormatNotSupportedNotification":"This file format is not supported. You can try with one of the supported formats: ${formats}."},"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":"तस्वीर","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/modules/ckeditor/vendor/lang/hr.js b/web/modules/ckeditor/vendor/lang/hr.js
deleted file mode 100644
index 4b7fbfe051234d25f6069b71ee510007bc5efb17..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/lang/hr.js
+++ /dev/null
@@ -1,5 +0,0 @@
-/*
-Copyright (c) 2003-2022, CKSource Holding sp. z o.o. 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":"Vaš preglednik Vam ne dozvoljava lijepljenje običnog teksta na ovaj način. Za lijepljenje, pritisnite %1.","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.","fileFormatNotSupportedNotification":"This file format is not supported. You can try with one of the supported formats: ${formats}."},"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","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/modules/ckeditor/vendor/lang/hu.js b/web/modules/ckeditor/vendor/lang/hu.js
deleted file mode 100644
index eef3ed00376dc5b74541c9fb7306b246591a5812..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/lang/hu.js
+++ /dev/null
@@ -1,5 +0,0 @@
-/*
-Copyright (c) 2003-2022, CKSource Holding sp. z o.o. 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":"Magasság egység","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.","fileFormatNotSupportedNotification":"This file format is not supported. You can try with one of the supported formats: ${formats}."},"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","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":"Speciális","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/modules/ckeditor/vendor/lang/id.js b/web/modules/ckeditor/vendor/lang/id.js
deleted file mode 100644
index f9ba8b70b5e98e2a440965828109989d29db1438..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/lang/id.js
+++ /dev/null
@@ -1,5 +0,0 @@
-/*
-Copyright (c) 2003-2022, CKSource Holding sp. z o.o. 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.","fileFormatNotSupportedNotification":"This file format is not supported. You can try with one of the supported formats: ${formats}."},"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","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":"Rata Kiri","alignRight":"Rata Kanan","alignCenter":"Rata Tengah","alignTop":"Atas","alignMiddle":"Tengah","alignBottom":"Bawah","alignNone":"Tidak ada","invalidValue":"Nilai tidak sah.","invalidHeight":"Tinggi harus sebuah angka.","invalidWidth":"Lebar harus sebuah angka.","invalidLength":"Nilai untuk \"%1\" harus bernilai positif dengan atau tanpa disertai dengan satuan ukur yang tepat (%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/modules/ckeditor/vendor/lang/is.js b/web/modules/ckeditor/vendor/lang/is.js
deleted file mode 100644
index 3e4c4e181bc9b71913107e91a072e6318a123e56..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/lang/is.js
+++ /dev/null
@@ -1,5 +0,0 @@
-/*
-Copyright (c) 2003-2022, CKSource Holding sp. z o.o. 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.","fileFormatNotSupportedNotification":"This file format is not supported. You can try with one of the supported formats: ${formats}."},"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","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/modules/ckeditor/vendor/lang/it.js b/web/modules/ckeditor/vendor/lang/it.js
deleted file mode 100644
index a2c2fb547a207b0ff024050516a4ccdfa69f495a..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/lang/it.js
+++ /dev/null
@@ -1,5 +0,0 @@
-/*
-Copyright (c) 2003-2022, CKSource Holding sp. z o.o. 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":"unità altezza","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":"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.","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.","fileFormatNotSupportedNotification":"Questo formato di file non è supportato. È possibile provare con uno dei formati supportati: ${formats}."},"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","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/modules/ckeditor/vendor/lang/ja.js b/web/modules/ckeditor/vendor/lang/ja.js
deleted file mode 100644
index e01c124ffb125b9909df4830cf34ac1a465d922b..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/lang/ja.js
+++ /dev/null
@@ -1,5 +0,0 @@
-/*
-Copyright (c) 2003-2022, CKSource Holding sp. z o.o. 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":"%1 を押して貼り付けます。 ブラウザは、ツールバーボタンまたはコンテキストメニューオプションを使用した貼り付けをサポートしていません。","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.","fileFormatNotSupportedNotification":"This file format is not supported. You can try with one of the supported formats: ${formats}."},"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":"イメージ","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/modules/ckeditor/vendor/lang/ka.js b/web/modules/ckeditor/vendor/lang/ka.js
deleted file mode 100644
index 39bf45c6a996631ac9182afd2a106fe89917eb0d..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/lang/ka.js
+++ /dev/null
@@ -1,5 +0,0 @@
-/*
-Copyright (c) 2003-2022, CKSource Holding sp. z o.o. 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.","fileFormatNotSupportedNotification":"This file format is not supported. You can try with one of the supported formats: ${formats}."},"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":"სურათი","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/modules/ckeditor/vendor/lang/km.js b/web/modules/ckeditor/vendor/lang/km.js
deleted file mode 100644
index dde959dcf9d72f17311519d7269a79ed07ca58be..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/lang/km.js
+++ /dev/null
@@ -1,5 +0,0 @@
-/*
-Copyright (c) 2003-2022, CKSource Holding sp. z o.o. 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.","fileFormatNotSupportedNotification":"This file format is not supported. You can try with one of the supported formats: ${formats}."},"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":"រូបភាព","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/modules/ckeditor/vendor/lang/ko.js b/web/modules/ckeditor/vendor/lang/ko.js
deleted file mode 100644
index 011df5a1c433863d2716be175e9b47029e2677a6..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/lang/ko.js
+++ /dev/null
@@ -1,5 +0,0 @@
-/*
-Copyright (c) 2003-2022, CKSource Holding sp. z o.o. 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.","fileFormatNotSupportedNotification":"This file format is not supported. You can try with one of the supported formats: ${formats}."},"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":"이미지","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/modules/ckeditor/vendor/lang/ku.js b/web/modules/ckeditor/vendor/lang/ku.js
deleted file mode 100644
index 4c4fa89bae5d16c76059d3f8fc56db2caf30718e..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/lang/ku.js
+++ /dev/null
@@ -1,5 +0,0 @@
-/*
-Copyright (c) 2003-2022, CKSource Holding sp. z o.o. 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":"یەکەی بەرز","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":"ناوەڕۆکەکەت لەم پانتایی خوارەوە بلکێنە","fileFormatNotSupportedNotification":"This file format is not supported. You can try with one of the supported formats: ${formats}."},"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":"وێنە","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/modules/ckeditor/vendor/lang/lt.js b/web/modules/ckeditor/vendor/lang/lt.js
deleted file mode 100644
index ad327ead1f2fee8c8f8281cc150d3df735f11410..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/lang/lt.js
+++ /dev/null
@@ -1,5 +0,0 @@
-/*
-Copyright (c) 2003-2022, CKSource Holding sp. z o.o. 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.","fileFormatNotSupportedNotification":"This file format is not supported. You can try with one of the supported formats: ${formats}."},"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","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/modules/ckeditor/vendor/lang/lv.js b/web/modules/ckeditor/vendor/lang/lv.js
deleted file mode 100644
index 7d2410ee380171ff279acf76685f5fa810b72f4f..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/lang/lv.js
+++ /dev/null
@@ -1,5 +0,0 @@
-/*
-Copyright (c) 2003-2022, CKSource Holding sp. z o.o. 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":"Ievietot/noņemt sarakstu ar aizzīmēm","numberedlist":"Ievietot/noņemt numurētu sarakstu"},"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":"Rindkopas formāts","tag_address":"Adrese","tag_div":"Parastais (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":"Parastais","tag_pre":"Formatēts"},"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.","fileFormatNotSupportedNotification":"This file format is not supported. You can try with one of the supported formats: ${formats}."},"blockquote":{"toolbar":"Bloka citāts"},"basicstyles":{"bold":"Treknraksts","italic":"Slīpraksts","strike":"Pārsvītrojums","subscript":"Apakšraksts","superscript":"Augšraksts","underline":"Pasvītrojums"},"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","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/modules/ckeditor/vendor/lang/mk.js b/web/modules/ckeditor/vendor/lang/mk.js
deleted file mode 100644
index dfb3034de33a9ff98319d726404a1ae0ded6d109..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/lang/mk.js
+++ /dev/null
@@ -1,5 +0,0 @@
-/*
-Copyright (c) 2003-2022, CKSource Holding sp. z o.o. 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.","fileFormatNotSupportedNotification":"This file format is not supported. You can try with one of the supported formats: ${formats}."},"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":"Слика","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/modules/ckeditor/vendor/lang/mn.js b/web/modules/ckeditor/vendor/lang/mn.js
deleted file mode 100644
index b0bd5b44bd63ff24284584db30ee2e99efe5b85b..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/lang/mn.js
+++ /dev/null
@@ -1,5 +0,0 @@
-/*
-Copyright (c) 2003-2022, CKSource Holding sp. z o.o. 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.","fileFormatNotSupportedNotification":"This file format is not supported. You can try with one of the supported formats: ${formats}."},"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":"Зураг","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/modules/ckeditor/vendor/lang/ms.js b/web/modules/ckeditor/vendor/lang/ms.js
deleted file mode 100644
index ea274697ae162cf4a41b4433a4d604292dee2238..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/lang/ms.js
+++ /dev/null
@@ -1,5 +0,0 @@
-/*
-Copyright (c) 2003-2022, CKSource Holding sp. z o.o. 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.","fileFormatNotSupportedNotification":"This file format is not supported. You can try with one of the supported formats: ${formats}."},"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","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/modules/ckeditor/vendor/lang/nb.js b/web/modules/ckeditor/vendor/lang/nb.js
deleted file mode 100644
index 36f01a22d6af46d45496f54627873eac0190d61c..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/lang/nb.js
+++ /dev/null
@@ -1,5 +0,0 @@
-/*
-Copyright (c) 2003-2022, CKSource Holding sp. z o.o. 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":"Trykk %1 for å lime inn. Nettleseren din støtter ikke å lime inn med knappen i verktøylinjen eller høyreklikkmenyen.","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.","fileFormatNotSupportedNotification":"This file format is not supported. You can try with one of the supported formats: ${formats}."},"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","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/modules/ckeditor/vendor/lang/nl.js b/web/modules/ckeditor/vendor/lang/nl.js
deleted file mode 100644
index 6231ff8b70b5f7763e9786979bd91383fbbdf3c1..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/lang/nl.js
+++ /dev/null
@@ -1,5 +0,0 @@
-/*
-Copyright (c) 2003-2022, CKSource Holding sp. z o.o. 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":"Plakken met de knop in de werkbalk wordt niet ondersteund door de browser. Gebruik de sneltoets %1 van het toetsenbord.","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":"Plakken met de knop in de werkbalk wordt niet ondersteund door de browser. Gebruik de sneltoets %1 van het toetsenbord.","pasteArea":"Plakgebied","pasteMsg":"Plak de inhoud in het vak hieronder en druk op OK.","fileFormatNotSupportedNotification":"This file format is not supported. You can try with one of the supported formats: ${formats}."},"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","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/modules/ckeditor/vendor/lang/no.js b/web/modules/ckeditor/vendor/lang/no.js
deleted file mode 100644
index 88b72609ca0f54d4d0654504620d2b5af3ebc518..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/lang/no.js
+++ /dev/null
@@ -1,5 +0,0 @@
-/*
-Copyright (c) 2003-2022, CKSource Holding sp. z o.o. 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.","fileFormatNotSupportedNotification":"This file format is not supported. You can try with one of the supported formats: ${formats}."},"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","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/modules/ckeditor/vendor/lang/oc.js b/web/modules/ckeditor/vendor/lang/oc.js
deleted file mode 100644
index d1dca2bf5e4d81c2f3ca66736c4e5ae4a7f2baa9..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/lang/oc.js
+++ /dev/null
@@ -1,5 +0,0 @@
-/*
-Copyright (c) 2003-2022, CKSource Holding sp. z o.o. 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.","fileFormatNotSupportedNotification":"This file format is not supported. You can try with one of the supported formats: ${formats}."},"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","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/modules/ckeditor/vendor/lang/pl.js b/web/modules/ckeditor/vendor/lang/pl.js
deleted file mode 100644
index c6f251f35a599a0e6791f0304092f36aed3c2c74..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/lang/pl.js
+++ /dev/null
@@ -1,5 +0,0 @@
-/*
-Copyright (c) 2003-2022, CKSource Holding sp. z o.o. 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":"jednostka wysokości","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.","fileFormatNotSupportedNotification":"This file format is not supported. You can try with one of the supported formats: ${formats}."},"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","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/modules/ckeditor/vendor/lang/pt-br.js b/web/modules/ckeditor/vendor/lang/pt-br.js
deleted file mode 100644
index 0173866e45b17dc032d7f7c20b473e00500ce09f..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/lang/pt-br.js
+++ /dev/null
@@ -1,5 +0,0 @@
-/*
-Copyright (c) 2003-2022, CKSource Holding sp. z o.o. 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":"Unidade para altura","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":"Inserir 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.","fileFormatNotSupportedNotification":"This file format is not supported. You can try with one of the supported formats: ${formats}."},"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","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/modules/ckeditor/vendor/lang/pt.js b/web/modules/ckeditor/vendor/lang/pt.js
deleted file mode 100644
index 9772359c2008048b59a99409214207e4641e6130..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/lang/pt.js
+++ /dev/null
@@ -1,5 +0,0 @@
-/*
-Copyright (c) 2003-2022, CKSource Holding sp. z o.o. 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.","fileFormatNotSupportedNotification":"This file format is not supported. You can try with one of the supported formats: ${formats}."},"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","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/modules/ckeditor/vendor/lang/ro.js b/web/modules/ckeditor/vendor/lang/ro.js
deleted file mode 100644
index cfdb235fc8183a890bc8ffd40e2c801a58e925f7..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/lang/ro.js
+++ /dev/null
@@ -1,5 +0,0 @@
-/*
-Copyright (c) 2003-2022, CKSource Holding sp. z o.o. 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.","fileFormatNotSupportedNotification":"This file format is not supported. You can try with one of the supported formats: ${formats}."},"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","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/modules/ckeditor/vendor/lang/ru.js b/web/modules/ckeditor/vendor/lang/ru.js
deleted file mode 100644
index d2f4acbc36368fd25589a53d599b7228f947a68e..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/lang/ru.js
+++ /dev/null
@@ -1,5 +0,0 @@
-/*
-Copyright (c) 2003-2022, CKSource Holding sp. z o.o. 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":"Для вставки нажмите %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":"Заголовок 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","fileFormatNotSupportedNotification":"This file format is not supported. You can try with one of the supported formats: ${formats}."},"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":"Изображение","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/modules/ckeditor/vendor/lang/si.js b/web/modules/ckeditor/vendor/lang/si.js
deleted file mode 100644
index 3cdf8968c64706d442fdab9b2b1e1a325ee1d775..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/lang/si.js
+++ /dev/null
@@ -1,5 +0,0 @@
-/*
-Copyright (c) 2003-2022, CKSource Holding sp. z o.o. 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.","fileFormatNotSupportedNotification":"This file format is not supported. You can try with one of the supported formats: ${formats}."},"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":"රුපය","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/modules/ckeditor/vendor/lang/sk.js b/web/modules/ckeditor/vendor/lang/sk.js
deleted file mode 100644
index 588e129a1d3918d507aa3d65b3b0d4d85c02e9e9..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/lang/sk.js
+++ /dev/null
@@ -1,5 +0,0 @@
-/*
-Copyright (c) 2003-2022, CKSource Holding sp. z o.o. 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":"jednotka výšky","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":"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.","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.","fileFormatNotSupportedNotification":"Tento formát súboru nie je podporovaný. Môžete to skúsiť s jedným z podporovaných formátov: ${formats}."},"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","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/modules/ckeditor/vendor/lang/sl.js b/web/modules/ckeditor/vendor/lang/sl.js
deleted file mode 100644
index 7b69b22498ec268ae1a406af1fc904a6b195a9e0..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/lang/sl.js
+++ /dev/null
@@ -1,5 +0,0 @@
-/*
-Copyright (c) 2003-2022, CKSource Holding sp. z o.o. 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.","fileFormatNotSupportedNotification":"This file format is not supported. You can try with one of the supported formats: ${formats}."},"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","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/modules/ckeditor/vendor/lang/sq.js b/web/modules/ckeditor/vendor/lang/sq.js
deleted file mode 100644
index 64309bca3bd58c2c7ee266bb3557bcaeb8f29a48..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/lang/sq.js
+++ /dev/null
@@ -1,5 +0,0 @@
-/*
-Copyright (c) 2003-2022, CKSource Holding sp. z o.o. 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Ë.","fileFormatNotSupportedNotification":"This file format is not supported. You can try with one of the supported formats: ${formats}."},"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","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/modules/ckeditor/vendor/lang/sr-latn.js b/web/modules/ckeditor/vendor/lang/sr-latn.js
deleted file mode 100644
index d80c0a8db2cb87dd2b56f4d299cd70797676ec05..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/lang/sr-latn.js
+++ /dev/null
@@ -1,5 +0,0 @@
-/*
-Copyright (c) 2003-2022, CKSource Holding sp. z o.o. 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":"Jedinica visine","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.","fileFormatNotSupportedNotification":"This file format is not supported. You can try with one of the supported formats: ${formats}."},"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","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/modules/ckeditor/vendor/lang/sr.js b/web/modules/ckeditor/vendor/lang/sr.js
deleted file mode 100644
index 8d66d97f82690e4d8b8da5fe5a3df09fe5cddd86..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/lang/sr.js
+++ /dev/null
@@ -1,5 +0,0 @@
-/*
-Copyright (c) 2003-2022, CKSource Holding sp. z o.o. 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":"Јединица висине","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.","fileFormatNotSupportedNotification":"This file format is not supported. You can try with one of the supported formats: ${formats}."},"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":"Слика","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/modules/ckeditor/vendor/lang/sv.js b/web/modules/ckeditor/vendor/lang/sv.js
deleted file mode 100644
index f8eb957d94b18fefe00d40c3eb696eaa9419a072..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/lang/sv.js
+++ /dev/null
@@ -1,5 +0,0 @@
-/*
-Copyright (c) 2003-2022, CKSource Holding sp. z o.o. 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":"Enhetshöjd","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":"Tryck på %1 för att klistra in. Din webbläsare stödjer inte inklistring via verktygsfältet eller snabbmenyn.","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.","fileFormatNotSupportedNotification":"This file format is not supported. You can try with one of the supported formats: ${formats}."},"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","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/modules/ckeditor/vendor/lang/th.js b/web/modules/ckeditor/vendor/lang/th.js
deleted file mode 100644
index 73f2b174594c79989511b33b15a608d62d76dc42..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/lang/th.js
+++ /dev/null
@@ -1,5 +0,0 @@
-/*
-Copyright (c) 2003-2022, CKSource Holding sp. z o.o. 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.","fileFormatNotSupportedNotification":"This file format is not supported. You can try with one of the supported formats: ${formats}."},"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":"รูปภาพ","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/modules/ckeditor/vendor/lang/tr.js b/web/modules/ckeditor/vendor/lang/tr.js
deleted file mode 100644
index af12e24494bbf34a178544a19a79e8e6e929cab4..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/lang/tr.js
+++ /dev/null
@@ -1,5 +0,0 @@
-/*
-Copyright (c) 2003-2022, CKSource Holding sp. z o.o. 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":"yükseklik birimi","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","fileFormatNotSupportedNotification":"This file format is not supported. You can try with one of the supported formats: ${formats}."},"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","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/modules/ckeditor/vendor/lang/tt.js b/web/modules/ckeditor/vendor/lang/tt.js
deleted file mode 100644
index 678317fd0549654b1d7a49dff2ef8c8ec5336574..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/lang/tt.js
+++ /dev/null
@@ -1,5 +0,0 @@
-/*
-Copyright (c) 2003-2022, CKSource Holding sp. z o.o. 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.","fileFormatNotSupportedNotification":"This file format is not supported. You can try with one of the supported formats: ${formats}."},"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":"Рәсем","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/modules/ckeditor/vendor/lang/ug.js b/web/modules/ckeditor/vendor/lang/ug.js
deleted file mode 100644
index 46b2b8f108c2357f4f6b3560f8e168218cd4b932..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/lang/ug.js
+++ /dev/null
@@ -1,5 +0,0 @@
-/*
-Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
-For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license/
-*/
-CKEDITOR.lang['ug']={"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":"نەڭ (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 نى بېسىڭ .","fileFormatNotSupportedNotification":"This file format is not supported. You can try with one of the supported formats: ${formats}."},"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":"سۈرەت","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/modules/ckeditor/vendor/lang/uk.js b/web/modules/ckeditor/vendor/lang/uk.js
deleted file mode 100644
index a31d774f99d8c937d6de1e93a183642732cdfd31..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/lang/uk.js
+++ /dev/null
@@ -1,5 +0,0 @@
-/*
-Copyright (c) 2003-2022, CKSource Holding sp. z o.o. 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":"одиниця висоти","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.","fileFormatNotSupportedNotification":"This file format is not supported. You can try with one of the supported formats: ${formats}."},"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":"Зображення","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/modules/ckeditor/vendor/lang/vi.js b/web/modules/ckeditor/vendor/lang/vi.js
deleted file mode 100644
index d98777da02b8441ef1bf04bd681697ccc97f4b7a..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/lang/vi.js
+++ /dev/null
@@ -1,5 +0,0 @@
-/*
-Copyright (c) 2003-2022, CKSource Holding sp. z o.o. 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":"Lỗi xảy ra khi đang đọc file","networkError":"Lỗi kết nối xảy ra khi đang tải file lên","httpError404":"Lỗi HTTP xảy ra khi đang tải file lên (404: Không tìm thấy file)","httpError403":"Lỗi HTTP xảy ra khi đang tải file lên (403: Bị cấm)","httpError":"Lỗi HTTP xảy ra khi đang tải file lên (tình trạng lỗi: %1)","noUrlError":"Đường dẫn tải lên không hoạt động","responseError":"Phản hồi từ server sai"},"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.","fileFormatNotSupportedNotification":"This file format is not supported. You can try with one of the supported formats: ${formats}."},"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","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/modules/ckeditor/vendor/lang/zh-cn.js b/web/modules/ckeditor/vendor/lang/zh-cn.js
deleted file mode 100644
index 6dee6b6a4b0f7e5295f66a91f683ae5bfcbbf359..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/lang/zh-cn.js
+++ /dev/null
@@ -1,5 +0,0 @@
-/*
-Copyright (c) 2003-2022, CKSource Holding sp. z o.o. 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":"高度单位","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":"将您的内容粘贴到下方区域,然后按确定。","fileFormatNotSupportedNotification":"This file format is not supported. You can try with one of the supported formats: ${formats}."},"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":"图像","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/modules/ckeditor/vendor/lang/zh.js b/web/modules/ckeditor/vendor/lang/zh.js
deleted file mode 100644
index a079644f93e7a6f9b6d7e376bb4941bc31ad9a34..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/lang/zh.js
+++ /dev/null
@@ -1,5 +0,0 @@
-/*
-Copyright (c) 2003-2022, CKSource Holding sp. z o.o. 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」。","fileFormatNotSupportedNotification":"不支援此檔案格式。您可以試試看使用其中一種支援的檔案格式:${formats}。"},"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":"圖像","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/modules/ckeditor/vendor/plugins/a11yhelp/dialogs/a11yhelp.js b/web/modules/ckeditor/vendor/plugins/a11yhelp/dialogs/a11yhelp.js
deleted file mode 100644
index 14345b166aa4e9c7172569f149b0c54771b900c6..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/plugins/a11yhelp/dialogs/a11yhelp.js
+++ /dev/null
@@ -1,10 +0,0 @@
-/*
- Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
- For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
-*/
-CKEDITOR.dialog.add("a11yHelp",function(f){function m(a){for(var b,c,h=[],d=0;d<g.length;d++)c=g[d],b=a/g[d],1<b&&2>=b&&(a-=c,h.push(e[c]));h.push(e[a]||String.fromCharCode(a));return h.join("+")}function t(a,b){var c=f.getCommandKeystroke(b,!0);return c.length?CKEDITOR.tools.array.map(c,m).join(" / "):a}var a=f.lang.a11yhelp,b=f.lang.common.keyboard,p=CKEDITOR.tools.getNextId(),q=/\$\{(.*?)\}/g,g=[CKEDITOR.ALT,CKEDITOR.SHIFT,CKEDITOR.CTRL],e={8:b[8],9:a.tab,13:b[13],16:b[16],17:b[17],18:b[18],19:a.pause,
-20:a.capslock,27:a.escape,33:a.pageUp,34:a.pageDown,35:b[35],36:b[36],37:a.leftArrow,38:a.upArrow,39:a.rightArrow,40:a.downArrow,45:a.insert,46:b[46],91:a.leftWindowKey,92:a.rightWindowKey,93:a.selectKey,96:a.numpad0,97:a.numpad1,98:a.numpad2,99:a.numpad3,100:a.numpad4,101:a.numpad5,102:a.numpad6,103:a.numpad7,104:a.numpad8,105:a.numpad9,106:a.multiply,107:a.add,109:a.subtract,110:a.decimalPoint,111:a.divide,112:a.f1,113:a.f2,114:a.f3,115:a.f4,116:a.f5,117:a.f6,118:a.f7,119:a.f8,120:a.f9,121:a.f10,
-122:a.f11,123:a.f12,144:a.numLock,145:a.scrollLock,186:a.semiColon,187:a.equalSign,188:a.comma,189:a.dash,190:a.period,191:a.forwardSlash,192:a.graveAccent,219:a.openBracket,220:a.backSlash,221:a.closeBracket,222:a.singleQuote};e[CKEDITOR.ALT]=b[18];e[CKEDITOR.SHIFT]=b[16];e[CKEDITOR.CTRL]=CKEDITOR.env.mac?b[224]:b[17];return{title:a.title,minWidth:600,minHeight:400,contents:[{id:"info",label:f.lang.common.generalTab,expand:!0,elements:[{type:"html",id:"legends",style:"white-space:normal;",focus:function(){this.getElement().focus()},
-html:function(){for(var b='\x3cdiv class\x3d"cke_accessibility_legend" role\x3d"document" aria-labelledby\x3d"'+p+'_arialbl" tabIndex\x3d"-1"\x3e%1\x3c/div\x3e\x3cspan id\x3d"'+p+'_arialbl" class\x3d"cke_voice_label"\x3e'+a.contents+" \x3c/span\x3e",e=[],c=a.legend,h=c.length,d=0;d<h;d++){for(var f=c[d],g=[],r=f.items,m=r.length,n=0;n<m;n++){var k=r[n],l=CKEDITOR.env.edge&&k.legendEdge?k.legendEdge:k.legend,l=l.replace(q,t);l.match(q)||g.push("\x3cdt\x3e%1\x3c/dt\x3e\x3cdd\x3e%2\x3c/dd\x3e".replace("%1",
-k.name).replace("%2",l))}e.push("\x3ch1\x3e%1\x3c/h1\x3e\x3cdl\x3e%2\x3c/dl\x3e".replace("%1",f.name).replace("%2",g.join("")))}return b.replace("%1",e.join(""))}()+'\x3cstyle type\x3d"text/css"\x3e.cke_accessibility_legend{width:600px;height:400px;padding-right:5px;overflow-y:auto;overflow-x:hidden;}.cke_browser_quirks .cke_accessibility_legend,{height:390px}.cke_accessibility_legend *{white-space:normal;}.cke_accessibility_legend h1{font-size: 20px;border-bottom: 1px solid #AAA;margin: 5px 0px 15px;}.cke_accessibility_legend dl{margin-left: 5px;}.cke_accessibility_legend dt{font-size: 13px;font-weight: bold;}.cke_accessibility_legend dd{margin:10px}\x3c/style\x3e'}]}],
-buttons:[CKEDITOR.dialog.cancelButton]}});
\ No newline at end of file
diff --git a/web/modules/ckeditor/vendor/plugins/a11yhelp/dialogs/lang/_translationstatus.txt b/web/modules/ckeditor/vendor/plugins/a11yhelp/dialogs/lang/_translationstatus.txt
deleted file mode 100644
index 4d0c9ffacd8a7acf59b98f0abe5ce94b7f048fb2..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/plugins/a11yhelp/dialogs/lang/_translationstatus.txt
+++ /dev/null
@@ -1,25 +0,0 @@
-Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
-For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
-
-cs.js      Found: 30 Missing: 0
-cy.js      Found: 30 Missing: 0
-da.js      Found: 12 Missing: 18
-de.js      Found: 30 Missing: 0
-el.js      Found: 25 Missing: 5
-eo.js      Found: 30 Missing: 0
-fa.js      Found: 30 Missing: 0
-fi.js      Found: 30 Missing: 0
-fr.js      Found: 30 Missing: 0
-gu.js      Found: 12 Missing: 18
-he.js      Found: 30 Missing: 0
-it.js      Found: 30 Missing: 0
-mk.js      Found: 5 Missing: 25
-nb.js      Found: 30 Missing: 0
-nl.js      Found: 30 Missing: 0
-no.js      Found: 30 Missing: 0
-pt-br.js   Found: 30 Missing: 0
-ro.js      Found: 6 Missing: 24
-tr.js      Found: 30 Missing: 0
-ug.js      Found: 27 Missing: 3
-vi.js      Found: 6 Missing: 24
-zh-cn.js   Found: 30 Missing: 0
diff --git a/web/modules/ckeditor/vendor/plugins/a11yhelp/dialogs/lang/af.js b/web/modules/ckeditor/vendor/plugins/a11yhelp/dialogs/lang/af.js
deleted file mode 100644
index fb3a3a6e27bd1333239e60bc8bcb92b461d86544..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/plugins/a11yhelp/dialogs/lang/af.js
+++ /dev/null
@@ -1,11 +0,0 @@
-/*
- Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
- For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
-*/
-CKEDITOR.plugins.setLang("a11yhelp","af",{title:"Toeganglikheid instruksies",contents:"Hulp inhoud. Druk ESC om toe te maak.",legend:[{name:"Algemeen",items:[{name:"Bewerker balk",legend:"Druk ${toolbarFocus} om op die werkbalk te land. Beweeg na die volgende en voorige wekrbalkgroep met TAB and SHIFT+TAB. Beweeg na die volgende en voorige werkbalkknop met die regter of linker pyl. Druk SPASIE of ENTER om die knop te bevestig."},{name:"Bewerker dialoog",legend:"Inside a dialog, press TAB to navigate to the next dialog element, press SHIFT+TAB to move to the previous dialog element, press ENTER to submit the dialog, press ESC to cancel the dialog. When a dialog has multiple tabs, the tab list can be reached either with ALT+F10 or with TAB as part of the dialog tabbing order. With tab list focused, move to the next and previous tab with RIGHT and LEFT ARROW, respectively."},
-{name:"Bewerkerinhoudmenu",legend:"Press ${contextMenu} or APPLICATION KEY to open context-menu. Then move to next menu option with TAB or DOWN ARROW. Move to previous option with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the menu option. Open sub-menu of current option with SPACE or ENTER or RIGHT ARROW. Go back to parent menu item with ESC or LEFT ARROW. Close context menu with ESC."},{name:"Editor List Box",legend:"Inside a list-box, move to next list item with TAB OR DOWN ARROW. Move to previous list item with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the list option. Press ESC to close the list-box."},
-{name:"Editor Element Path Bar",legend:"Press ${elementsPathFocus} to navigate to the elements path bar. Move to next element button with TAB or RIGHT ARROW. Move to previous button with SHIFT+TAB or LEFT ARROW. Press SPACE or ENTER to select the element in editor."}]},{name:"Commands",items:[{name:" Undo command",legend:"Press ${undo}"},{name:" Redo command",legend:"Press ${redo}"},{name:" Bold command",legend:"Press ${bold}"},{name:" Italic command",legend:"Press ${italic}"},{name:" Underline command",
-legend:"Press ${underline}"},{name:" Link command",legend:"Press ${link}"},{name:" Toolbar Collapse command",legend:"Press ${toolbarCollapse}"},{name:" Access previous focus space command",legend:"Press ${accessPreviousSpace} to access the closest unreachable focus space before the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},{name:" Access next focus space command",legend:"Press ${accessNextSpace} to access the closest unreachable focus space after the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},
-{name:" Accessibility Help",legend:"Press ${a11yHelp}"},{name:" Paste as plain text",legend:"Press ${pastetext}",legendEdge:"Press ${pastetext}, followed by ${paste}"}]}],tab:"Tab",pause:"Pouse",capslock:"Hoofletterslot",escape:"Ontsnap",pageUp:"Blaaiop",pageDown:"Blaaiaf",leftArrow:"Linkspyl",upArrow:"Oppyl",rightArrow:"Regterpyl",downArrow:"Afpyl",insert:"Toevoeg",leftWindowKey:"Left Windows key",rightWindowKey:"Right Windows key",selectKey:"Select key",numpad0:"Nommerblok 0",numpad1:"Nommerblok 1",
-numpad2:"Nommerblok 2",numpad3:"Nommerblok 3",numpad4:"Nommerblok 4",numpad5:"Nommerblok 5",numpad6:"Nommerblok 6",numpad7:"Nommerblok 7",numpad8:"Nommerblok 8",numpad9:"Nommerblok 9",multiply:"Maal",add:"Plus",subtract:"Minus",decimalPoint:"Desimaalepunt",divide:"Gedeeldeur",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Nommervergrendel",scrollLock:"Rolvergrendel",semiColon:"Kommapunt",equalSign:"Isgelykaan",comma:"Komma",dash:"Koppelteken",
-period:"Punt",forwardSlash:"Skuinsstreep",graveAccent:"Aksentteken",openBracket:"Oopblokhakkie",backSlash:"Trustreep",closeBracket:"Toeblokhakkie",singleQuote:"Enkelaanhaalingsteken"});
\ No newline at end of file
diff --git a/web/modules/ckeditor/vendor/plugins/a11yhelp/dialogs/lang/ar.js b/web/modules/ckeditor/vendor/plugins/a11yhelp/dialogs/lang/ar.js
deleted file mode 100644
index 40ae3088f33cadcb15734f182c44f2c904da4e8a..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/plugins/a11yhelp/dialogs/lang/ar.js
+++ /dev/null
@@ -1,11 +0,0 @@
-/*
- Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
- For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
-*/
-CKEDITOR.plugins.setLang("a11yhelp","ar",{title:"Accessibility Instructions",contents:"Help Contents. To close this dialog press ESC.",legend:[{name:"عام",items:[{name:"Editor Toolbar",legend:"Press ${toolbarFocus} to navigate to the toolbar. Move to the next and previous toolbar group with TAB and SHIFT+TAB. Move to the next and previous toolbar button with RIGHT ARROW or LEFT ARROW. Press SPACE or ENTER to activate the toolbar button.The focus will be moved back to the editing area upon activating the toolbar button."},
-{name:"Editor Dialog",legend:"Inside a dialog, press TAB to navigate to the next dialog element, press SHIFT+TAB to move to the previous dialog element, press ENTER to submit the dialog, press ESC to cancel the dialog. When a dialog has multiple tabs, the tab list can be reached either with ALT+F10 or with TAB as part of the dialog tabbing order. With tab list focused, move to the next and previous tab with RIGHT and LEFT ARROW, respectively."},{name:"Editor Context Menu",legend:"Press ${contextMenu} or APPLICATION KEY to open context-menu. Then move to next menu option with TAB or DOWN ARROW. Move to previous option with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the menu option. Open sub-menu of current option with SPACE or ENTER or RIGHT ARROW. Go back to parent menu item with ESC or LEFT ARROW. Close context menu with ESC."},
-{name:"Editor List Box",legend:"Inside a list-box, move to next list item with TAB OR DOWN ARROW. Move to previous list item with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the list option. Press ESC to close the list-box."},{name:"Editor Element Path Bar",legend:"Press ${elementsPathFocus} to navigate to the elements path bar. Move to next element button with TAB or RIGHT ARROW. Move to previous button with SHIFT+TAB or LEFT ARROW. Press SPACE or ENTER to select the element in editor."}]},
-{name:"الاوامر",items:[{name:"تراجع",legend:"Press ${undo}"},{name:" Redo command",legend:"Press ${redo}"},{name:"نص غامق",legend:"Press ${bold}"},{name:"نص مائل",legend:"Press ${italic}"},{name:"نص تحته خط",legend:"Press ${underline}"},{name:" Link command",legend:"Press ${link}"},{name:" Toolbar Collapse command",legend:"Press ${toolbarCollapse}"},{name:" Access previous focus space command",legend:"Press ${accessPreviousSpace} to access the closest unreachable focus space before the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},
-{name:" Access next focus space command",legend:"Press ${accessNextSpace} to access the closest unreachable focus space after the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},{name:" Accessibility Help",legend:"Press ${a11yHelp}"},{name:" Paste as plain text",legend:"Press ${pastetext}",legendEdge:"Press ${pastetext}, followed by ${paste}"}]}],tab:"Tab",pause:"Pause",capslock:"Caps Lock",escape:"هروب",pageUp:"اعلى الصفحة",pageDown:"اسفل الصفحة",
-leftArrow:"السهم الايسر",upArrow:"السهم العلوي",rightArrow:"السهم الأيمن",downArrow:"السهم السفلي",insert:"Insert",leftWindowKey:"Left Windows key",rightWindowKey:"Right Windows key",selectKey:"Select key",numpad0:"Numpad 0",numpad1:"Numpad 1",numpad2:"Numpad 2",numpad3:"Numpad 3",numpad4:"Numpad 4",numpad5:"Numpad 5",numpad6:"Numpad 6",numpad7:"Numpad 7",numpad8:"Numpad 8",numpad9:"Numpad 9",multiply:"مضروب",add:"إضافة",subtract:"طرح",decimalPoint:"Decimal Point",divide:"تقسيم",f1:"F1",f2:"F2",f3:"F3",
-f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"الفاصلة المنقوطة",equalSign:'علامة "يساوي"',comma:"فاصلة",dash:"شرطة",period:"نقطة",forwardSlash:"Forward Slash",graveAccent:"Grave Accent",openBracket:"افتح القوس",backSlash:"Backslash",closeBracket:"اغلق القوس",singleQuote:"Single Quote"});
\ No newline at end of file
diff --git a/web/modules/ckeditor/vendor/plugins/a11yhelp/dialogs/lang/az.js b/web/modules/ckeditor/vendor/plugins/a11yhelp/dialogs/lang/az.js
deleted file mode 100644
index b757f104a299c8cd6d0bad4780bae3fc6d96abc2..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/plugins/a11yhelp/dialogs/lang/az.js
+++ /dev/null
@@ -1,11 +0,0 @@
-/*
- Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
- For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
-*/
-CKEDITOR.plugins.setLang("a11yhelp","az",{title:"Əlillərə dəstək üzrə təlimat",contents:"Kömək. Pəncərəni bağlamaq üçün ESC basın.",legend:[{name:"Əsas",items:[{name:"Düzəliş edənin alətlər çubuğu",legend:"Panelə keçmək üçün ${toolbarFocus} basın. Növbəti panelə TAB, əvvəlki panelə isə SHIFT+TAB düyməsi vasitəsi ilə keçə bilərsiz. Paneldəki düymələr arasında sol və sağ ox düyməsi ilə keçid edə bilərsiz. Seçilmiş düyməsi SPACE və ya ENTER ilə işlədə bilərsiniz."},{name:"Redaktorun pəncərəsi",legend:"Pəncərə içində növbəti element seçmək üçün TAB düyməni basın, əvvəlki isə - SHIFT+TAB. Təsdiq edilməsi üçün ENTER, imtina edilməsi isə ESC diymələri istifadə edin. Pəncərədə bir neçə vərəq olanda olnarın siyahı ALT+F10 ilə aça bilərsiz. Vərəqlərin siyahı fokus altında olanda ox düymələr vasitəsi ilə onların arasında keçid edə bilərsiz."},
-{name:"Redaktorun seçimlərin menyusu",legend:"Seçimləri redaktə etmək üçün ${contextMenu} ya da APPLICATION KEY basın. Növbəti seçimə keçmək üçün TAB ya AŞAĞI OX düyməsini basın, əvvəlki isə - SHIFT+TAB ya YUXARI OX. Seçimi arımaq SPACE ya ENTER düymələri istifadə edin. Alt menyunu açmaq üçün SPACE, ENTER ya SAĞA OX basın. ESC ya SOLA OX ilə geriyə qayıda bilərsiz. Bütün menyunu ESC ilə bağlıyın."},{name:"Düzəliş edənin siyahı qutusu",legend:"Siyahı qutusu içində növbəti bənd seçmək üçün TAB ya AŞAĞI OX, əvvəlki isə SHIFT+TAB ya YUXARI OX basın. Seçimi arımaq SPACE ya ENTER düymələri istifadə edin. Siyahı qutusu ESC ilə bağlıyın."},
-{name:"Redaktor elementin cığır paneli",legend:"Elementin cığır paneli seçmək üçün ${elementsPathFocus} basın. Növbəti element seçmək üçün TAB ya SAĞA OX, əvvəlki isə SHIFT+TAB ya SOLA OX istifadə edin. Elementi arımaq SPACE ya ENTER düymələri mövcuddur."}]},{name:"Əmrlər",items:[{name:"Əmri geri qaytar",legend:"${undo} basın"},{name:"Geri əmri",legend:"${redo} basın"},{name:"Qalın əmri",legend:"${bold}  basın"},{name:"Kursiv əmri",legend:"${italic} basın"},{name:"Altdan xətt əmri",legend:"${underline} basın"},
-{name:"Link əmri",legend:"${link} basın"},{name:"Paneli gizlət əmri",legend:"${toolbarCollapse} basın"},{name:"Əvvəlki fokus sahəsi seç əmrı",legend:"Kursordan əvvəl ən yaxın əlçatmaz yerə dəymək üçün ${accessPreviousSpace} basın, misal üçün: iki dal-badal HR teg. Uzaq yerlərə dəymək üçün bir neçə dəfə basın."},{name:"Növbəti fokus sahəsi seç əmrı",legend:"Kursordan sonra ən yaxın əlçatmaz yerə dəymək üçün ${accessNextSpace} basın, misal üçün: iki dal-badal HR teg. Uzaq yerlərə dəymək üçün bir neçə dəfə basın."},
-{name:"Hərtərəfli Kömək",legend:"${a11yHelp} basın"},{name:"Yalnız mətni əlavə et",legend:"${pastetext} basın",legendEdge:"Öncə ${pastetext}, sonra ${paste} basın"}]}],tab:"Tab",pause:"Pause",capslock:"Caps Lock",escape:"Escape",pageUp:"Page Up",pageDown:"Page Down",leftArrow:"Sola ox işarəsi",upArrow:"Yuxarı ox işarəsi",rightArrow:"Sağa ox işarəsi",downArrow:"Aşağı ox işarəsi",insert:"Insert",leftWindowKey:"Soldaki Windows düyməsi",rightWindowKey:"Sağdaki Windows düyməsi",selectKey:"Düyməni seçin",
-numpad0:"Numpad 0",numpad1:"Numpad 1",numpad2:"Numpad 2",numpad3:"Numpad 3",numpad4:"Numpad 4",numpad5:"Numpad 5",numpad6:"Numpad 6",numpad7:"Numpad 7",numpad8:"Numpad 8",numpad9:"Numpad 9",multiply:"Vurma",add:"Əlavə et",subtract:"Çıxma",decimalPoint:"Onluq kəsri tam ədəddən ayıran nöqtə",divide:"Bölüşdürmə",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"Nöqtəli verqül",equalSign:"Barəbərlik işarəsi",
-comma:"Vergül",dash:"Defis",period:"Nöqtə",forwardSlash:"Çəp xətt",graveAccent:"Vurğu işarəsi",openBracket:"Açılan mötərizə",backSlash:"Tərs çəpəki xətt",closeBracket:"Bağlanan mötərizə",singleQuote:"Tək dırnaq"});
\ No newline at end of file
diff --git a/web/modules/ckeditor/vendor/plugins/a11yhelp/dialogs/lang/bg.js b/web/modules/ckeditor/vendor/plugins/a11yhelp/dialogs/lang/bg.js
deleted file mode 100644
index 1cb2993c7d92656d62554d8fc320e4766dd5bec3..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/plugins/a11yhelp/dialogs/lang/bg.js
+++ /dev/null
@@ -1,11 +0,0 @@
-/*
- Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
- For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
-*/
-CKEDITOR.plugins.setLang("a11yhelp","bg",{title:"Инструкции за достъпност",contents:"Съдържание на помощта. За да затворите този диалогов прозорец, натиснете ESC.",legend:[{name:"Общо",items:[{name:"Лента с инструменти за редактора",legend:"Press ${toolbarFocus} to navigate to the toolbar. Move to the next and previous toolbar group with TAB and SHIFT+TAB. Move to the next and previous toolbar button with RIGHT ARROW or LEFT ARROW. Press SPACE or ENTER to activate the toolbar button.The focus will be moved back to the editing area upon activating the toolbar button."},
-{name:"Диалог на редактора",legend:"Inside a dialog, press TAB to navigate to the next dialog element, press SHIFT+TAB to move to the previous dialog element, press ENTER to submit the dialog, press ESC to cancel the dialog. When a dialog has multiple tabs, the tab list can be reached either with ALT+F10 or with TAB as part of the dialog tabbing order. With tab list focused, move to the next and previous tab with RIGHT and LEFT ARROW, respectively."},{name:"Контекстно меню на редактора",legend:"Press ${contextMenu} or APPLICATION KEY to open context-menu. Then move to next menu option with TAB or DOWN ARROW. Move to previous option with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the menu option. Open sub-menu of current option with SPACE or ENTER or RIGHT ARROW. Go back to parent menu item with ESC or LEFT ARROW. Close context menu with ESC."},
-{name:"Списъчно меню на редактора",legend:"Inside a list-box, move to next list item with TAB OR DOWN ARROW. Move to previous list item with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the list option. Press ESC to close the list-box."},{name:"Лента с път на елемент на редактора",legend:"Press ${elementsPathFocus} to navigate to the elements path bar. Move to next element button with TAB or RIGHT ARROW. Move to previous button with SHIFT+TAB or LEFT ARROW. Press SPACE or ENTER to select the element in editor."}]},
-{name:"Команди",items:[{name:"Команда за отмяна",legend:"Натисни ${undo}"},{name:"Команда за пренаправяне",legend:"Натисни ${redo}"},{name:" Bold command",legend:"Press ${bold}"},{name:" Italic command",legend:"Press ${italic}"},{name:" Underline command",legend:"Press ${underline}"},{name:" Link command",legend:"Press ${link}"},{name:" Toolbar Collapse command",legend:"Press ${toolbarCollapse}"},{name:" Access previous focus space command",legend:"Press ${accessPreviousSpace} to access the closest unreachable focus space before the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},
-{name:" Access next focus space command",legend:"Press ${accessNextSpace} to access the closest unreachable focus space after the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},{name:" Accessibility Help",legend:"Press ${a11yHelp}"},{name:" Paste as plain text",legend:"Press ${pastetext}",legendEdge:"Press ${pastetext}, followed by ${paste}"}]}],tab:"Tab",pause:"Pause",capslock:"Caps Lock",escape:"Escape",pageUp:"Page Up",pageDown:"Page Down",
-leftArrow:"Left Arrow",upArrow:"Up Arrow",rightArrow:"Right Arrow",downArrow:"Down Arrow",insert:"Insert",leftWindowKey:"Left Windows key",rightWindowKey:"Right Windows key",selectKey:"Select key",numpad0:"Numpad 0",numpad1:"Numpad 1",numpad2:"Numpad 2",numpad3:"Numpad 3",numpad4:"Numpad 4",numpad5:"Numpad 5",numpad6:"Numpad 6",numpad7:"Numpad 7",numpad8:"Numpad 8",numpad9:"Numpad 9",multiply:"Multiply",add:"Add",subtract:"Subtract",decimalPoint:"Decimal Point",divide:"Divide",f1:"F1",f2:"F2",f3:"F3",
-f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"Semicolon",equalSign:"Equal Sign",comma:"Comma",dash:"Dash",period:"Period",forwardSlash:"Forward Slash",graveAccent:"Grave Accent",openBracket:"Open Bracket",backSlash:"Backslash",closeBracket:"Close Bracket",singleQuote:"Single Quote"});
\ No newline at end of file
diff --git a/web/modules/ckeditor/vendor/plugins/a11yhelp/dialogs/lang/ca.js b/web/modules/ckeditor/vendor/plugins/a11yhelp/dialogs/lang/ca.js
deleted file mode 100644
index 2de6ffdb6daa31738a1443cc4a2378a6a9fc2cba..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/plugins/a11yhelp/dialogs/lang/ca.js
+++ /dev/null
@@ -1,13 +0,0 @@
-/*
- Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
- For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
-*/
-CKEDITOR.plugins.setLang("a11yhelp","ca",{title:"Instruccions d'Accessibilitat",contents:"Continguts de l'Ajuda. Per tancar aquest quadre de diàleg premi ESC.",legend:[{name:"General",items:[{name:"Editor de barra d'eines",legend:"Premi ${toolbarFocus} per desplaçar-se per la barra d'eines. Vagi en el següent i anterior grup de barra d'eines amb TAB i SHIFT+TAB. Vagi en el següent i anterior botó de la barra d'eines amb RIGHT ARROW i LEFT ARROW. Premi SPACE o ENTER per activar el botó de la barra d'eines."},
-{name:"Editor de quadre de diàleg",legend:"Dins d'un quadre de diàleg, premi la tecla TAB per desplaçar-se fins al següent element del quadre de diàleg, premi la tecla Shift + TAB per desplaçar-se a l'anterior element del quadre de diàleg, premi la tecla ENTER per confirmar el quadre de diàleg, premi la tecla ESC per cancel·lar el quadre de diàleg. Quan un quadre de diàleg té diverses pestanyes, la llista de pestanyes pot ser assolit ja sigui amb ALT + F10 o TAB, com a part de l'ordre de tabulació del quadre de diàleg. Amb la llista de pestanyes seleccionada, pot anar a la fitxa següent i anterior amb la tecla FLETXA DRETA i ESQUERRA, respectivament."},
-{name:"Editor de menú contextual",legend:"Premi ${contextMenu} o APPLICATION KEY per obrir el menú contextual. Després desplacis a la següent opció del menú amb TAB o DOWN ARROW. Desplacis a l'anterior opció amb SHIFT+TAB o UP ARROW. Premi SPACE o ENTER per seleccionar l'opció del menú. Obri el submenú de l'actual opció utilitzant SPACE o ENTER o RIGHT ARROW. Pot tornar a l'opció del menú pare amb ESC o LEFT ARROW. Tanqui el menú contextual amb ESC."},{name:"Editor de caixa de llista",legend:"Dins d'un quadre de llista, desplacis al següent element de la llista amb TAB o DOWN ARROW. Desplacis a l'anterior element de la llista amb SHIFT+TAB o UP ARROW. Premi SPACE o ENTER per seleccionar l'opció de la llista. Premi ESC per tancar el quadre de llista."},
-{name:"Editor de barra de ruta de l'element",legend:"Premi ${elementsPathFocus} per anar als elements de la barra de ruta. Desplacis al botó de l'element següent amb TAB o RIGHT ARROW. Desplacis a l'anterior botó amb SHIFT+TAB o LEFT ARROW. Premi SPACE o ENTER per seleccionar l'element a l'editor."}]},{name:"Ordres",items:[{name:"Desfer ordre",legend:"Premi ${undo}"},{name:"Refer ordre",legend:"Premi ${redo}"},{name:"Ordre negreta",legend:"Premi ${bold}"},{name:"Ordre cursiva",legend:"Premi ${italic}"},
-{name:"Ordre subratllat",legend:"Premi ${underline}"},{name:"Ordre enllaç",legend:"Premi ${link}"},{name:"Ordre amagar barra d'eines",legend:"Premi ${toolbarCollapse}"},{name:"Ordre per accedir a l'anterior espai enfocat",legend:"Premi ${accessPreviousSpace} per accedir a l'enfocament d'espai més proper inabastable abans del símbol d'intercalació, per exemple: dos elements HR adjacents. Repetiu la combinació de tecles per arribar a enfocaments d'espais distants."},{name:"Ordre per accedir al següent espai enfocat",
-legend:"Premi ${accessNextSpace} per accedir a l'enfocament d'espai més proper inabastable després del símbol d'intercalació, per exemple: dos elements HR adjacents. Repetiu la combinació de tecles per arribar a enfocaments d'espais distants."},{name:"Ajuda d'accessibilitat",legend:"Premi ${a11yHelp}"},{name:" Paste as plain text",legend:"Press ${pastetext}",legendEdge:"Press ${pastetext}, followed by ${paste}"}]}],tab:"Tabulació",pause:"Pausa",capslock:"Bloqueig de majúscules",escape:"Escape",pageUp:"Pàgina Amunt",
-pageDown:"Pàgina Avall",leftArrow:"Fletxa Esquerra",upArrow:"Fletxa Amunt",rightArrow:"Fletxa Dreta",downArrow:"Fletxa Avall",insert:"Inserir",leftWindowKey:"Tecla Windows Esquerra",rightWindowKey:"Tecla Windows Dreta",selectKey:"Tecla Seleccionar",numpad0:"Teclat Numèric 0",numpad1:"Teclat Numèric 1",numpad2:"Teclat Numèric 2",numpad3:"Teclat Numèric 3",numpad4:"Teclat Numèric 4",numpad5:"Teclat Numèric 5",numpad6:"Teclat Numèric 6",numpad7:"Teclat Numèric 7",numpad8:"Teclat Numèric 8",numpad9:"Teclat Numèric 9",
-multiply:"Multiplicació",add:"Suma",subtract:"Resta",decimalPoint:"Punt Decimal",divide:"Divisió",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Bloqueig Teclat Numèric",scrollLock:"Bloqueig de Desplaçament",semiColon:"Punt i Coma",equalSign:"Símbol Igual",comma:"Coma",dash:"Guió",period:"Punt",forwardSlash:"Barra Diagonal",graveAccent:"Accent Obert",openBracket:"Claudàtor Obert",backSlash:"Barra Invertida",closeBracket:"Claudàtor Tancat",
-singleQuote:"Cometa Simple"});
\ No newline at end of file
diff --git a/web/modules/ckeditor/vendor/plugins/a11yhelp/dialogs/lang/cs.js b/web/modules/ckeditor/vendor/plugins/a11yhelp/dialogs/lang/cs.js
deleted file mode 100644
index f81c7480a72b567e83a586a8b784f4f99f34f409..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/plugins/a11yhelp/dialogs/lang/cs.js
+++ /dev/null
@@ -1,12 +0,0 @@
-/*
- Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
- For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
-*/
-CKEDITOR.plugins.setLang("a11yhelp","cs",{title:"Instrukce pro přístupnost",contents:"Obsah nápovědy. Pro uzavření tohoto dialogu stiskněte klávesu ESC.",legend:[{name:"Obecné",items:[{name:"Panel nástrojů editoru",legend:"Stiskněte ${toolbarFocus} k procházení panelu nástrojů. K přechodu na další nebo předchozí skupinu použijte TAB nebo SHIFT+TAB. Pro přechod na další nebo předchozí tlačítko panelu nástrojů použijte ŠIPKA VPRAVO nebo ŠIPKA VLEVO. Stisknutím mezerníku nebo klávesy ENTER tlačítko aktivujete. Po aktivaci tlačítka se fokus přesune zpět do editační oblasti."},
-{name:"Dialogové okno editoru",legend:"Uvnitř dialogového okna stiskněte TAB pro přesunutí na další prvek okna, stiskněte SHIFT+TAB pro přesun na předchozí prvek okna, stiskněte ENTER pro odeslání dialogu, stiskněte ESC pro jeho zrušení. Pro dialogová okna, která mají mnoho karet stiskněte ALT+F10 pro zaměření seznamu karet, nebo TAB, pro posun podle pořadí karet.Při zaměření seznamu karet se můžete jimi posouvat pomocí ŠIPKY VPRAVO a VLEVO."},{name:"Kontextové menu editoru",legend:"Stiskněte ${contextMenu} nebo klávesu APPLICATION k otevření kontextového menu. Pak se přesuňte na další možnost menu pomocí TAB nebo ŠIPKY DOLŮ. Přesuňte se na předchozí možnost pomocí  SHIFT+TAB nebo ŠIPKY NAHORU. Stiskněte MEZERNÍK nebo ENTER pro zvolení možnosti menu. Podmenu současné možnosti otevřete pomocí MEZERNÍKU nebo ENTER či ŠIPKY DOLEVA. Kontextové menu uzavřete stiskem ESC."},
-{name:"Rámeček seznamu editoru",legend:"Uvnitř rámečku seznamu se přesunete na další položku menu pomocí TAB nebo ŠIPKA DOLŮ. Na předchozí položku se přesunete SHIFT+TAB nebo ŠIPKA NAHORU. Stiskněte MEZERNÍK nebo ENTER pro zvolení možnosti seznamu. Stiskněte ESC pro uzavření seznamu."},{name:"Lišta cesty prvku v editoru",legend:"Stiskněte ${elementsPathFocus} pro procházení lišty cesty prvku. Na další tlačítko prvku se přesunete pomocí TAB nebo ŠIPKA VPRAVO. Na předchozí tlačítko se přesunete pomocí SHIFT+TAB nebo ŠIPKA VLEVO. Stiskněte MEZERNÍK nebo ENTER pro vybrání prvku v editoru."}]},
-{name:"Příkazy",items:[{name:" Příkaz Zpět",legend:"Stiskněte ${undo}"},{name:" Příkaz Znovu",legend:"Stiskněte ${redo}"},{name:" Příkaz Tučné",legend:"Stiskněte ${bold}"},{name:" Příkaz Kurzíva",legend:"Stiskněte ${italic}"},{name:" Příkaz Podtržení",legend:"Stiskněte ${underline}"},{name:" Příkaz Odkaz",legend:"Stiskněte ${link}"},{name:" Příkaz Skrýt panel nástrojů",legend:"Stiskněte ${toolbarCollapse}"},{name:"Příkaz pro přístup k předchozímu prostoru zaměření",legend:"Stiskněte ${accessPreviousSpace} pro přístup k nejbližšímu nedosažitelnému prostoru zaměření před stříškou, například: dva přilehlé prvky HR. Pro dosažení vzdálených prostorů zaměření tuto kombinaci kláves opakujte."},
-{name:"Příkaz pro přístup k dalšímu prostoru zaměření",legend:"Stiskněte ${accessNextSpace} pro přístup k nejbližšímu nedosažitelnému prostoru zaměření po stříšce, například: dva přilehlé prvky HR. Pro dosažení vzdálených prostorů zaměření tuto kombinaci kláves opakujte."},{name:" Nápověda přístupnosti",legend:"Stiskněte ${a11yHelp}"},{name:"Vložit jako čistý text",legend:"Stiskněte ${pastetext}",legendEdge:"Stiskněte ${pastetext} a pak ${paste}"}]}],tab:"Tabulátor",pause:"Pauza",capslock:"Caps lock",
-escape:"Escape",pageUp:"Stránka nahoru",pageDown:"Stránka dolů",leftArrow:"Šipka vlevo",upArrow:"Šipka nahoru",rightArrow:"Šipka vpravo",downArrow:"Šipka dolů",insert:"Vložit",leftWindowKey:"Levá klávesa Windows",rightWindowKey:"Pravá klávesa Windows",selectKey:"Vyberte klávesu",numpad0:"Numerická klávesa 0",numpad1:"Numerická klávesa 1",numpad2:"Numerická klávesa 2",numpad3:"Numerická klávesa 3",numpad4:"Numerická klávesa 4",numpad5:"Numerická klávesa 5",numpad6:"Numerická klávesa 6",numpad7:"Numerická klávesa 7",
-numpad8:"Numerická klávesa 8",numpad9:"Numerická klávesa 9",multiply:"Numerická klávesa násobení",add:"Přidat",subtract:"Numerická klávesa odečítání",decimalPoint:"Desetinná tečka",divide:"Numerická klávesa dělení",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num lock",scrollLock:"Scroll lock",semiColon:"Středník",equalSign:"Rovnítko",comma:"Čárka",dash:"Pomlčka",period:"Tečka",forwardSlash:"Lomítko",graveAccent:"Přízvuk",openBracket:"Otevřená hranatá závorka",
-backSlash:"Obrácené lomítko",closeBracket:"Uzavřená hranatá závorka",singleQuote:"Jednoduchá uvozovka"});
\ No newline at end of file
diff --git a/web/modules/ckeditor/vendor/plugins/a11yhelp/dialogs/lang/cy.js b/web/modules/ckeditor/vendor/plugins/a11yhelp/dialogs/lang/cy.js
deleted file mode 100644
index a1d7ba6046ee041c2406e3b8a8800f67f91e846b..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/plugins/a11yhelp/dialogs/lang/cy.js
+++ /dev/null
@@ -1,11 +0,0 @@
-/*
- Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
- For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
-*/
-CKEDITOR.plugins.setLang("a11yhelp","cy",{title:"Canllawiau Hygyrchedd",contents:"Cynnwys Cymorth. I gau y deialog hwn, pwyswch ESC.",legend:[{name:"Cyffredinol",items:[{name:"Bar Offer y Golygydd",legend:"Pwyswch $ {toolbarFocus} i fynd at y bar offer. Symudwch i'r grŵp bar offer nesaf a blaenorol gyda TAB a SHIFT+TAB. Symudwch i'r botwm bar offer nesaf a blaenorol gyda SAETH DDE neu SAETH CHWITH. Pwyswch SPACE neu ENTER i wneud botwm y bar offer yn weithredol."},{name:"Deialog y Golygydd",legend:"Inside a dialog, press TAB to navigate to the next dialog element, press SHIFT+TAB to move to the previous dialog element, press ENTER to submit the dialog, press ESC to cancel the dialog. When a dialog has multiple tabs, the tab list can be reached either with ALT+F10 or with TAB as part of the dialog tabbing order. With tab list focused, move to the next and previous tab with RIGHT and LEFT ARROW, respectively."},
-{name:"Dewislen Cyd-destun y Golygydd",legend:"Pwyswch $ {contextMenu} neu'r ALLWEDD 'APPLICATION' i agor y ddewislen cyd-destun. Yna symudwch i'r opsiwn ddewislen nesaf gyda'r TAB neu'r SAETH I LAWR. Symudwch i'r opsiwn blaenorol gyda SHIFT+TAB neu'r SAETH I FYNY. Pwyswch SPACE neu ENTER i ddewis yr opsiwn ddewislen. Agorwch is-dewislen yr opsiwn cyfredol gyda SPACE neu ENTER neu SAETH DDE. Ewch yn ôl i'r eitem ar y ddewislen uwch gydag ESC neu SAETH CHWITH. Ceuwch y ddewislen cyd-destun gydag ESC."},
-{name:"Blwch Rhestr y Golygydd",legend:"Tu mewn y blwch rhestr, ewch i'r eitem rhestr nesaf gyda TAB neu'r SAETH I LAWR. Symudwch i restr eitem flaenorol gyda SHIFT+TAB neu SAETH I FYNY. Pwyswch SPACE neu ENTER i ddewis yr opsiwn o'r rhestr. Pwyswch ESC i gau'r rhestr."},{name:"Bar Llwybr Elfen y Golygydd",legend:"Pwyswch ${elementsPathFocus} i fynd i'r bar llwybr elfennau. Symudwch i fotwm yr elfen nesaf gyda TAB neu SAETH DDE. Symudwch i fotwm blaenorol gyda SHIFT+TAB neu SAETH CHWITH. Pwyswch SPACE neu ENTER i ddewis yr elfen yn y golygydd."}]},
-{name:"Gorchmynion",items:[{name:"Gorchymyn dadwneud",legend:"Pwyswch ${undo}"},{name:"Gorchymyn ailadrodd",legend:"Pwyswch ${redo}"},{name:"Gorchymyn Bras",legend:"Pwyswch ${bold}"},{name:"Gorchymyn italig",legend:"Pwyswch ${italig}"},{name:"Gorchymyn tanlinellu",legend:"Pwyso ${underline}"},{name:"Gorchymyn dolen",legend:"Pwyswch ${link}"},{name:"Gorchymyn Cwympo'r Dewislen",legend:"Pwyswch ${toolbarCollapse}"},{name:"Myned i orchymyn bwlch ffocws blaenorol",legend:"Pwyswch ${accessPreviousSpace} i fyned i'r \"blwch ffocws sydd methu ei gyrraedd\" cyn y caret, er enghraifft: dwy elfen HR drws nesaf i'w gilydd. AIladroddwch y cyfuniad allwedd i gyrraedd bylchau ffocws pell."},
-{name:"Ewch i'r gorchymyn blwch ffocws nesaf",legend:"Pwyswch ${accessNextSpace} i fyned i'r blwch ffocws agosaf nad oes modd ei gyrraedd ar ôl y caret, er enghraifft: dwy elfen HR drws nesaf i'w gilydd. Ailadroddwch y cyfuniad allwedd i gyrraedd blychau ffocws pell."},{name:"Cymorth Hygyrchedd",legend:"Pwyswch ${a11yHelp}"},{name:" Paste as plain text",legend:"Press ${pastetext}",legendEdge:"Press ${pastetext}, followed by ${paste}"}]}],tab:"Tab",pause:"Pause",capslock:"Caps Lock",escape:"Escape",
-pageUp:"Page Up",pageDown:"Page Down",leftArrow:"Left Arrow",upArrow:"Up Arrow",rightArrow:"Right Arrow",downArrow:"Down Arrow",insert:"Insert",leftWindowKey:"Left Windows key",rightWindowKey:"Right Windows key",selectKey:"Select key",numpad0:"Numpad 0",numpad1:"Numpad 1",numpad2:"Numpad 2",numpad3:"Numpad 3",numpad4:"Numpad 4",numpad5:"Numpad 5",numpad6:"Numpad 6",numpad7:"Numpad 7",numpad8:"Numpad 8",numpad9:"Numpad 9",multiply:"Multiply",add:"Add",subtract:"Subtract",decimalPoint:"Decimal Point",
-divide:"Divide",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"Semicolon",equalSign:"Equal Sign",comma:"Comma",dash:"Dash",period:"Period",forwardSlash:"Forward Slash",graveAccent:"Grave Accent",openBracket:"Open Bracket",backSlash:"Backslash",closeBracket:"Close Bracket",singleQuote:"Single Quote"});
\ No newline at end of file
diff --git a/web/modules/ckeditor/vendor/plugins/a11yhelp/dialogs/lang/da.js b/web/modules/ckeditor/vendor/plugins/a11yhelp/dialogs/lang/da.js
deleted file mode 100644
index ccc7f030e1495df12ec5086e26a956e0cad64a1c..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/plugins/a11yhelp/dialogs/lang/da.js
+++ /dev/null
@@ -1,11 +0,0 @@
-/*
- Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
- For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
-*/
-CKEDITOR.plugins.setLang("a11yhelp","da",{title:"Tilgængelighedsinstrukser",contents:"Onlinehjælp. For at lukke dette vindue klik ESC",legend:[{name:"Generelt",items:[{name:"Editor værktøjslinje",legend:"Tryk ${toolbarFocus} for at navigere til værktøjslinjen. Flyt til næste eller forrige værktøjsline gruppe ved hjælp af TAB eller SHIFT+TAB. Flyt til næste eller forrige værktøjslinje knap med venstre- eller højre piltast. Tryk på SPACE eller ENTER for at aktivere værktøjslinje knappen."},{name:"Editor dialogboks",
-legend:"Inde i en dialogboks kan du, trykke på TAB for at navigere til næste element, trykke på SHIFT+TAB for at navigere til forrige element, trykke på ENTER for at afsende eller trykke på ESC for at lukke dialogboksen. Når en dialogboks har flere faner, fanelisten kan tilgås med ALT+F10 eller med TAB. Hvis fanelisten er i fokus kan du skifte til næste eller forrige tab, med højre- og venstre piltast."},{name:"Redaktør kontekstmenu",legend:"Tryk ${contextMenu} eller APPLICATION KEY for at åbne kontekstmenuen. Flyt derefter til næste menuvalg med TAB eller PIL NED. Flyt til forrige valg med SHIFT+TAB eller PIL OP. Tryk MELLEMRUM eller RETUR for at vælge menu-muligheder. Åben under-menu af aktuelle valg med MELLEMRUM eller RETUR eller HØJRE PIL. Gå tilbage til overliggende menu-emne med ESC eller VENSTRE PIL. Luk kontekstmenu med ESC."},
-{name:"Redaktør listeboks",legend:"Flyt til næste emne med TAB eller PIL NED inde i en listeboks. Flyt til forrige listeemne med SHIFT+TAB eller PIL OP. Tryk MELLEMRUM eller RETUR for at vælge liste-muligheder. Tryk ESC for at lukke liste-boksen."},{name:"Redaktør elementsti-bar",legend:"Tryk ${elementsPathFocus} for at navigere til elementernes sti-bar. Flyt til næste element-knap med TAB eller HØJRE PIL. Flyt til forrige knap med SHIFT+TAB eller VENSTRE PIL. Klik MELLEMRUM eller RETUR for at vælge element i editoren."}]},
-{name:"Kommandoer",items:[{name:"Fortryd kommando",legend:"Klik på ${undo}"},{name:"Gentag kommando",legend:"Klik ${redo}"},{name:"Fed kommando",legend:"Klik ${bold}"},{name:"Kursiv kommando",legend:"Klik ${italic}"},{name:"Understregnings kommando",legend:"Klik ${underline}"},{name:"Link kommando",legend:"Klik ${link}"},{name:"Klap værktøjslinje sammen kommando ",legend:"Klik ${toolbarCollapse}"},{name:"Adgang til forrige fokusområde kommando",legend:"Klik på ${accessPreviousSpace} for at få adgang til det nærmeste utilgængelige fokusmellemrum før indskudstegnet, for eksempel: To nærliggende HR-elementer. Gentag nøglekombinationen for at nå fjentliggende fokusmellemrum."},
-{name:"Gå til næste fokusmellemrum kommando",legend:"Klik på ${accessNextSpace} for at få adgang til det nærmeste utilgængelige fokusmellemrum efter indskudstegnet, for eksempel: To nærliggende HR-elementer. Gentag nøglekombinationen for at nå fjentliggende fokusmellemrum."},{name:"Tilgængelighedshjælp",legend:"Kilk ${a11yHelp}"},{name:"Indsæt som ren tekst",legend:"Klik ${pastetext}",legendEdge:"Klik ${pastetext}, efterfult af ${paste}"}]}],tab:"Tab",pause:"Pause",capslock:"Caps Lock",escape:"Escape",
-pageUp:"Page Up",pageDown:"Page Down",leftArrow:"Venstre pil",upArrow:"Pil op",rightArrow:"Højre pil",downArrow:"Pil ned",insert:"Insert",leftWindowKey:"Venstre Windows tast",rightWindowKey:"Højre Windows tast",selectKey:"Select-knap",numpad0:"Numpad 0",numpad1:"Numpad 1",numpad2:"Numpad 2",numpad3:"Numpad 3",numpad4:"Numpad 4",numpad5:"Numpad 5",numpad6:"Numpad 6",numpad7:"Numpad 7",numpad8:"Numpad 8",numpad9:"Numpad 9",multiply:"Gange",add:"Plus",subtract:"Minus",decimalPoint:"Komma",divide:"Divider",
-f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"Semikolon",equalSign:"Lighedstegn",comma:"Komma",dash:"Bindestreg",period:"Punktum",forwardSlash:"Skråstreg",graveAccent:"Accent grave",openBracket:"Start klamme",backSlash:"Omvendt skråstreg",closeBracket:"Slut klamme",singleQuote:"Enkelt citationstegn"});
\ No newline at end of file
diff --git a/web/modules/ckeditor/vendor/plugins/a11yhelp/dialogs/lang/de-ch.js b/web/modules/ckeditor/vendor/plugins/a11yhelp/dialogs/lang/de-ch.js
deleted file mode 100644
index 616f516c784c9411bd6f39c0c0cd7203d00ba6a0..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/plugins/a11yhelp/dialogs/lang/de-ch.js
+++ /dev/null
@@ -1,13 +0,0 @@
-/*
- Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
- For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
-*/
-CKEDITOR.plugins.setLang("a11yhelp","de-ch",{title:"Barrierefreiheitinformationen",contents:"Hilfeinhalt. Um den Dialog zu schliessen, die Taste ESC drücken.",legend:[{name:"Allgemein",items:[{name:"Editorwerkzeugleiste",legend:"Drücken Sie ${toolbarFocus} auf der Symbolleiste. Gehen Sie zur nächsten oder vorherigen Symbolleistengruppe mit TAB und SHIFT+TAB. Gehen Sie zur nächsten oder vorherigen Symbolleiste auf die Schaltfläche mit dem RECHTS- oder LINKS-Pfeil. Drücken Sie die Leertaste oder Eingabetaste, um die Schaltfläche in der Symbolleiste zu aktivieren."},
-{name:"Editordialog",legend:"Drücken Sie innerhalb eines Dialogs TAB, um zum nächsten Element zu springen. Drücken Sie SHIFT+TAB, um zum vorigen Element zu springen, drücke ENTER um das Formular im Dialog abzusenden, drücken Sie ESC, um den Dialog zu schliessen. Hat der Dialog mehrere Tabs, dann können Sie durch ALT+F10 die Tab-Liste aufrufen or mittels TAB als Teil der Dialog-Tab-Reihenfolge. Ist die Tab-Liste fokussiert, kann mithilfe der Pfeiltasten (LINKS und RECHTS) zwischen den Tabs gewechselt werden."},
-{name:"Editor-Kontextmenü",legend:"Drücken Sie ${contextMenu} oder die Anwendungstaste, um das Kontextmenü zu öffnen. Man kann die Pfeiltasten zum Wechsel benutzen. Mit der Leertaste oder der Enter-Taste kann man den Menüpunkt aufrufen. Schliessen Sie das Kontextmenü mit der ESC-Taste."},{name:"Editor-Listenbox",legend:"Innerhalb einer Listenbox kann man mit der TAB-Taste oder den Pfeil-runter-Taste den nächsten Menüeintrag wählen. Mit der SHIFT+TAB Tastenkombination oder der Pfeil-hoch-Taste gelangt man zum vorherigen Menüpunkt. Mit der Leertaste oder Enter kann man den Menüpunkt auswählen. Drücken Sie ESC zum Verlassen des Menüs."},
-{name:"Editor-Elementpfadleiste",legend:"Drücken Sie ${elementsPathFocus}, um sich durch die Pfadleiste zu bewegen. Um zum nächsten Element zu gelangen, drücken Sie TAB oder die Pfeil-rechts-Taste. Zum vorherigen Element gelangen Sie mit der SHIFT+TAB oder der Pfeil-links-Taste. Drücken Sie die Leertaste oder Enter, um das Element auszuwählen."}]},{name:"Befehle",items:[{name:"Rückgängig-Befehl",legend:"Drücken Sie ${undo}"},{name:"Wiederherstellen-Befehl",legend:"Drücken Sie ${redo}"},{name:"Fettschrift-Befehl",
-legend:"Drücken Sie ${bold}"},{name:"Kursiv-Befehl",legend:"Drücken Sie ${italic}"},{name:"Unterstreichen-Befehl",legend:"Drücken Sie ${underline}"},{name:"Link-Befehl",legend:"Drücken Sie ${link}"},{name:"Werkzeugleiste einklappen-Befehl",legend:"Drücken Sie ${toolbarCollapse}"},{name:"Zugang zum letzten Fokus-Bereich",legend:"Drücken Sie ${accessPreviousSpace}, um zum nächsten unerreichbaren Fokus-Bereich vor der aktuellen Position zu gelangen.  Zum Beispiel: zwei benachbarte HR-Elemente. Wiederholen Sie die Tastenkombination, um weitere Fokus-Bereichen zu erreichen. "},
-{name:"Zugang zum nächsten Fokus-Bereich",legend:"Drücken Sie $ { accessNextSpace }, um den nächsten unerreichbaren Fokusbereich vor der aktuellen Position zu gelangen. Zum Beispiel: zwei benachbarten HR Elemente. Wiederholen Sie die Tastenkombination, um weitere Fokus-Bereiche zu erreichen. "},{name:"Eingabehilfen",legend:"Drücken Sie ${a11yHelp}"},{name:"Als Klartext einfügen",legend:"Drücken Sie ${pastetext}",legendEdge:"Drücken Sie ${pastetext} und anschliessend ${paste}"}]}],tab:"Tab",pause:"Pause",
-capslock:"Feststell",escape:"Escape",pageUp:"Bild auf",pageDown:"Bild ab",leftArrow:"Linke Pfeiltaste",upArrow:"Obere Pfeiltaste",rightArrow:"Rechte Pfeiltaste",downArrow:"Untere Pfeiltaste",insert:"Einfügen",leftWindowKey:"Linke Windowstaste",rightWindowKey:"Rechte Windowstaste",selectKey:"Taste auswählen",numpad0:"Ziffernblock 0",numpad1:"Ziffernblock 1",numpad2:"Ziffernblock 2",numpad3:"Ziffernblock 3",numpad4:"Ziffernblock 4",numpad5:"Ziffernblock 5",numpad6:"Ziffernblock 6",numpad7:"Ziffernblock 7",
-numpad8:"Ziffernblock 8",numpad9:"Ziffernblock 9",multiply:"Multiplizieren",add:"Addieren",subtract:"Subtrahieren",decimalPoint:"Punkt",divide:"Dividieren",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Ziffernblock feststellen",scrollLock:"Rollen",semiColon:"Semikolon",equalSign:"Gleichheitszeichen",comma:"Komma",dash:"Bindestrich",period:"Punkt",forwardSlash:"Schrägstrich",graveAccent:"Accent grave",openBracket:"Öffnende eckige Klammer",
-backSlash:"Rückwärtsgewandter Schrägstrich",closeBracket:"Schliessende eckige Klammer",singleQuote:"Einfaches Anführungszeichen"});
\ No newline at end of file
diff --git a/web/modules/ckeditor/vendor/plugins/a11yhelp/dialogs/lang/de.js b/web/modules/ckeditor/vendor/plugins/a11yhelp/dialogs/lang/de.js
deleted file mode 100644
index b3b8ddfb5b3a8394b7bc0d816d61029ee3638647..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/plugins/a11yhelp/dialogs/lang/de.js
+++ /dev/null
@@ -1,13 +0,0 @@
-/*
- Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
- For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
-*/
-CKEDITOR.plugins.setLang("a11yhelp","de",{title:"Barrierefreiheitinformationen",contents:"Hilfeinhalt. Um den Dialog zu schliessen die Taste ESC drücken.",legend:[{name:"Allgemein",items:[{name:"Editorwerkzeugleiste",legend:"Drücken Sie ${toolbarFocus} auf der Symbolleiste. Gehen Sie zur nächsten oder vorherigen Symbolleistengruppe mit TAB und SHIFT+TAB. Gehen Sie zur nächsten oder vorherigen Symbolleiste auf die Schaltfläche mit dem RECHTS- oder LINKS-Pfeil. Drücken Sie die Leertaste oder Eingabetaste, um die Schaltfläche in der Symbolleiste aktivieren."},
-{name:"Editordialog",legend:"Drücke innerhalb eines Dialogs TAB, um zum nächsten Element zu springen. Drücke SHIFT+TAB, um zum vorigen Element zu springen, drücke ENTER um das Formular im Dialog abzusenden, drücke ESC, um den Dialog zu schließen. Hat der Dialog mehrere Tabs, dann kannst du durch ALT+F10 die Tab-Liste aufrufen or mittels TAB als Teil der Dialog-Tab-Reihenfolge. Ist die Tab-Liste fokussiert, dann mithilfe der Pfeiltasten (LINKS und RECHTS) zwischen den Tabs gewechselt werden."},{name:"Editor-Kontextmenü",
-legend:"Dürcken Sie ${contextMenu} oder die Anwendungstaste um das Kontextmenü zu öffnen. Man kann die Pfeiltasten zum Wechsel benutzen. Mit der Leertaste oder der Enter-Taste kann man den Menüpunkt aufrufen. Schliessen Sie das Kontextmenü mit der ESC-Taste."},{name:"Editor-Listenbox",legend:"Innerhalb einer Listenbox kann man mit der TAB-Taste oder den Pfeilrunter-Taste den nächsten Menüeintrag wählen. Mit der SHIFT+TAB Tastenkombination oder der Pfeilhoch-Taste gelangt man zum vorherigen Menüpunkt. Mit der Leertaste oder Enter kann man den Menüpunkt auswählen. Drücken Sie ESC zum Verlassen des Menüs."},
-{name:"Editor-Elementpfadleiste",legend:"Drücken Sie ${elementsPathFocus} um sich durch die Pfadleiste zu bewegen. Um zum nächsten Element zu gelangen drücken Sie TAB oder die Pfeilrechts-Taste. Zum vorherigen Element gelangen Sie mit der SHIFT+TAB oder der Pfeillinks-Taste. Drücken Sie die Leertaste oder Enter um das Element auszuwählen."}]},{name:"Befehle",items:[{name:"Rückgängig-Befehl",legend:"Drücken Sie ${undo}"},{name:"Wiederherstellen-Befehl",legend:"Drücken Sie ${redo}"},{name:"Fettschrift-Befehl",
-legend:"Drücken Sie ${bold}"},{name:"Kursiv-Befehl",legend:"Drücken Sie ${italic}"},{name:"Unterstreichen-Befehl",legend:"Drücken Sie ${underline}"},{name:"Link-Befehl",legend:"Drücken Sie ${link}"},{name:"Werkzeugleiste einklappen-Befehl",legend:"Drücken Sie ${toolbarCollapse}"},{name:"Zugang bisheriger Fokussierung Raumbefehl ",legend:"Drücken Sie ${accessPreviousSpace}  auf den am nächsten nicht erreichbar Fokus-Abstand vor die Einfügemarke zugreifen: zwei benachbarte HR-Elemente. Wiederholen Sie die Tastenkombination um entfernte Fokusräume zu erreichen. "},
-{name:"Zugang nächster Schwerpunkt Raumbefehl ",legend:"Drücken Sie $ { accessNextSpace }, um den nächsten unerreichbar Fokus Leerzeichen nach dem Cursor zum Beispiel auf: zwei benachbarten HR Elemente. Wiederholen Sie die Tastenkombination zum fernen Fokus Bereiche zu erreichen. "},{name:"Eingabehilfen",legend:"Drücken Sie ${a11yHelp}"},{name:"Einfügen als unformatierter Text. ",legend:"Drücke ${pastetext}",legendEdge:"Drücke ${pastetext} und anschließend ${paste}"}]}],tab:"Tab",pause:"Pause",capslock:"Feststell",
-escape:"Escape",pageUp:"Bild auf",pageDown:"Bild ab",leftArrow:"Linke Pfeiltaste",upArrow:"Obere Pfeiltaste",rightArrow:"Rechte Pfeiltaste",downArrow:"Untere Pfeiltaste",insert:"Einfügen",leftWindowKey:"Linke Windowstaste",rightWindowKey:"Rechte Windowstaste",selectKey:"Taste auswählen",numpad0:"Ziffernblock 0",numpad1:"Ziffernblock 1",numpad2:"Ziffernblock 2",numpad3:"Ziffernblock 3",numpad4:"Ziffernblock 4",numpad5:"Ziffernblock 5",numpad6:"Ziffernblock 6",numpad7:"Ziffernblock 7",numpad8:"Ziffernblock 8",
-numpad9:"Ziffernblock 9",multiply:"Multiplizieren",add:"Addieren",subtract:"Subtrahieren",decimalPoint:"Punkt",divide:"Dividieren",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Ziffernblock feststellen",scrollLock:"Rollen",semiColon:"Semikolon",equalSign:"Gleichheitszeichen",comma:"Komma",dash:"Bindestrich",period:"Punkt",forwardSlash:"Schrägstrich",graveAccent:"Gravis",openBracket:"Öffnende eckige Klammer",backSlash:"Rückwärtsgewandter Schrägstrich",
-closeBracket:"Schließende eckige Klammer",singleQuote:"Einfaches Anführungszeichen"});
\ No newline at end of file
diff --git a/web/modules/ckeditor/vendor/plugins/a11yhelp/dialogs/lang/el.js b/web/modules/ckeditor/vendor/plugins/a11yhelp/dialogs/lang/el.js
deleted file mode 100644
index 0567e998e0f2eeebcda7cf4254e3212a5faf5c46..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/plugins/a11yhelp/dialogs/lang/el.js
+++ /dev/null
@@ -1,13 +0,0 @@
-/*
- Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
- For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
-*/
-CKEDITOR.plugins.setLang("a11yhelp","el",{title:"Οδηγίες Προσβασιμότητας",contents:"Περιεχόμενα Βοήθειας. Πατήστε ESC για κλείσιμο.",legend:[{name:"Γενικά",items:[{name:"Εργαλειοθήκη Επεξεργαστή",legend:"Πατήστε ${toolbarFocus} για να περιηγηθείτε στην γραμμή εργαλείων. Μετακινηθείτε ανάμεσα στις ομάδες της γραμμής εργαλείων με TAB και SHIFT+TAB. Μετακινηθείτε ανάμεσα στα κουμπιά εργαλείων με το ΔΕΞΙ ή ΑΡΙΣΤΕΡΟ ΒΕΛΑΚΙ. Πατήστε ΔΙΑΣΤΗΜΑ ή ENTER για να ενεργοποιήσετε το ενεργό κουμπί εργαλείου."},{name:"Παράθυρο Διαλόγου Επεξεργαστή",
-legend:"Μέσα σε έναν διάλογο, πιέσετε TAB για να πλοηγηθείτε στο επόμενο στοιχείο του διαλόγου, πιέστε SHIFT+TAB για αν πλοηγηθείτε στο προηγούμενο στοιχείο του διαλόγου, πιέστε ENTER για να υποβάλετε τον διάλογο, πιέστε ESC για να ακυρώσετε τον διάλογο. Όταν ένας διάλογος έχει πολλαπλές παραγράφους, η λίστα των παραγράφων μπορεί να προσπεραστεί είτε με ALT+F10 είτε με TAB σαν μέρος της σειράς παραγράφων του διαλόγου. Με την λίστα των παραγράφων επιλεγμένη, προχωρήστε στην επόμενη και προηγούμενη παράγραφο με τα βέλη ΔΕΞΙΑ και ΑΡΙΣΤΕΡΑ, αντίστοιχα."},
-{name:"Αναδυόμενο Μενού Επεξεργαστή",legend:"Πατήστε ${contextMenu} ή APPLICATION KEY για να ανοίξετε το αναδυόμενο μενού. Μετά μετακινηθείτε στην επόμενη επιλογή του μενού με  TAB ή ΚΑΤΩ ΒΕΛΑΚΙ. Μετακινηθείτε στην προηγούμενη επιλογή με SHIFT+TAB ή το ΠΑΝΩ ΒΕΛΑΚΙ. Πατήστε ΔΙΑΣΤΗΜΑ ή ENTER για να επιλέξτε το τρέχων στοιχείο. Ανοίξτε το αναδυόμενο μενού της τρέχουσας επιλογής με ΔΙΑΣΤΗΜΑ ή ENTER ή το ΔΕΞΙ ΒΕΛΑΚΙ. Μεταβείτε πίσω στο αρχικό στοιχείο μενού με το ESC ή το ΑΡΙΣΤΕΡΟ ΒΕΛΑΚΙ. Κλείστε το αναδυόμενο μενού με ESC."},
-{name:"Κουτί Λίστας Επεξεργαστών",legend:"Μέσα σε ένα κουτί λίστας, μετακινηθείτε στο επόμενο στοιχείο με TAB ή ΚΑΤΩ ΒΕΛΑΚΙ. Μετακινηθείτε στο προηγούμενο στοιχείο με SHIFT+TAB ή το ΠΑΝΩ ΒΕΛΑΚΙ. Πατήστε ΔΙΑΣΤΗΜΑ ή ENTER για να επιλέξετε ένα στοιχείο. Πατήστε ESC για να κλείσετε το κουτί της λίστας."},{name:"Μπάρα Διαδρομών Στοιχείων Επεξεργαστή",legend:"Πατήστε ${elementsPathFocus} για να περιηγηθείτε στην μπάρα διαδρομών στοιχείων του επεξεργαστή. Μετακινηθείτε στο κουμπί του επόμενου στοιχείου με το TAB ή το ΔΕΞΙ ΒΕΛΑΚΙ. Μετακινηθείτε στο κουμπί του προηγούμενου στοιχείου με το SHIFT+TAB ή το ΑΡΙΣΤΕΡΟ ΒΕΛΑΚΙ. Πατήστε ΔΙΑΣΤΗΜΑ ή ENTER για να επιλέξετε το στοιχείο στον επεξεργαστή."}]},
-{name:"Εντολές",items:[{name:"Εντολή αναίρεσης",legend:"Πατήστε ${undo}"},{name:"Εντολή επανάληψης",legend:"Πατήστε ${redo}"},{name:"Εντολή έντονης γραφής",legend:"Πατήστε ${bold}"},{name:"Εντολή πλάγιας γραφής",legend:"Πατήστε ${italic}"},{name:"Εντολή υπογράμμισης",legend:"Πατήστε ${underline}"},{name:"Εντολή συνδέσμου",legend:"Πατήστε ${link}"},{name:"Εντολή Σύμπτηξης Εργαλειοθήκης",legend:"Πατήστε ${toolbarCollapse}"},{name:"Πρόσβαση στην προηγούμενη εντολή του χώρου εστίασης ",legend:"Πατήστε ${accessPreviousSpace} για να έχετε πρόσβαση στον πιο κοντινό χώρο εστίασης πριν το δρομέα, για παράδειγμα: δύο παρακείμενα στοιχεία ΥΕ. Επαναλάβετε το συνδυασμό πλήκτρων για να φθάσετε στους χώρους μακρινής εστίασης. "},
-{name:"Πρόσβαση στην επόμενη εντολή του χώρου εστίασης",legend:"Πατήστε ${accessNextSpace} για να έχετε πρόσβαση στον πιο κοντινό χώρο εστίασης μετά το δρομέα, για παράδειγμα: δύο παρακείμενα στοιχεία ΥΕ. Επαναλάβετε το συνδυασμό πλήκτρων για τους χώρους μακρινής εστίασης. "},{name:"Βοήθεια Προσβασιμότητας",legend:"Πατήστε ${a11yHelp}"},{name:"Επικολλήστε ως απλό κείμενο.",legend:"Πιέστε $(pastetext)",legendEdge:"Πιέστε $(pastetext), ακολουθούμενο με (paste)_"}]}],tab:"Tab",pause:"Pause",capslock:"Caps Lock",
-escape:"Escape",pageUp:"Page Up",pageDown:"Page Down",leftArrow:"Αριστερό Βέλος",upArrow:"Πάνω Βέλος",rightArrow:"Δεξί Βέλος",downArrow:"Κάτω Βέλος",insert:"Insert ",leftWindowKey:"Αριστερό Πλήκτρο Windows",rightWindowKey:"Δεξί Πλήκτρο Windows",selectKey:"Πλήκτρο Select",numpad0:"Αριθμητικό πληκτρολόγιο 0",numpad1:"Αριθμητικό Πληκτρολόγιο 1",numpad2:"Αριθμητικό πληκτρολόγιο 2",numpad3:"Αριθμητικό πληκτρολόγιο 3",numpad4:"Αριθμητικό πληκτρολόγιο 4",numpad5:"Αριθμητικό πληκτρολόγιο 5",numpad6:"Αριθμητικό πληκτρολόγιο 6",
-numpad7:"Αριθμητικό πληκτρολόγιο 7",numpad8:"Αριθμητικό πληκτρολόγιο 8",numpad9:"Αριθμητικό πληκτρολόγιο 9",multiply:"Πολλαπλασιασμός",add:"Πρόσθεση",subtract:"Αφαίρεση",decimalPoint:"Υποδιαστολή",divide:"Διαίρεση",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"6",f7:"7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"Ερωτηματικό",equalSign:"Σύμβολο Ισότητας",comma:"Κόμμα",dash:"Παύλα",period:"Τελεία",forwardSlash:"Κάθετος",graveAccent:"Βαρεία",openBracket:"Άνοιγμα Παρένθεσης",
-backSlash:"Ανάστροφη Κάθετος",closeBracket:"Κλείσιμο Παρένθεσης",singleQuote:"Απόστροφος"});
\ No newline at end of file
diff --git a/web/modules/ckeditor/vendor/plugins/a11yhelp/dialogs/lang/en-au.js b/web/modules/ckeditor/vendor/plugins/a11yhelp/dialogs/lang/en-au.js
deleted file mode 100644
index 6dca4c466edf22fe110dfc36852139539d0ce06e..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/plugins/a11yhelp/dialogs/lang/en-au.js
+++ /dev/null
@@ -1,11 +0,0 @@
-/*
- Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
- For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
-*/
-CKEDITOR.plugins.setLang("a11yhelp","en-au",{title:"Accessibility Instructions",contents:"Help Contents. To close this dialog press ESC.",legend:[{name:"General",items:[{name:"Editor Toolbar",legend:"Press ${toolbarFocus} to navigate to the toolbar. Move to the next and previous toolbar group with TAB and SHIFT+TAB. Move to the next and previous toolbar button with RIGHT ARROW or LEFT ARROW. Press SPACE or ENTER to activate the toolbar button.The focus will be moved back to the editing area upon activating the toolbar button."},
-{name:"Editor Dialog",legend:"Inside a dialog, press TAB to navigate to the next dialog element, press SHIFT+TAB to move to the previous dialog element, press ENTER to submit the dialog, press ESC to cancel the dialog. When a dialog has multiple tabs, the tab list can be reached either with ALT+F10 or with TAB as part of the dialog tabbing order. With tab list focused, move to the next and previous tab with RIGHT and LEFT ARROW, respectively."},{name:"Editor Context Menu",legend:"Press ${contextMenu} or APPLICATION KEY to open context-menu. Then move to next menu option with TAB or DOWN ARROW. Move to previous option with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the menu option. Open sub-menu of current option with SPACE or ENTER or RIGHT ARROW. Go back to parent menu item with ESC or LEFT ARROW. Close context menu with ESC."},
-{name:"Editor List Box",legend:"Inside a list-box, move to next list item with TAB OR DOWN ARROW. Move to previous list item with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the list option. Press ESC to close the list-box."},{name:"Editor Element Path Bar",legend:"Press ${elementsPathFocus} to navigate to the elements path bar. Move to next element button with TAB or RIGHT ARROW. Move to previous button with SHIFT+TAB or LEFT ARROW. Press SPACE or ENTER to select the element in editor."}]},
-{name:"Commands",items:[{name:" Undo command",legend:"Press ${undo}"},{name:" Redo command",legend:"Press ${redo}"},{name:" Bold command",legend:"Press ${bold}"},{name:" Italic command",legend:"Press ${italic}"},{name:" Underline command",legend:"Press ${underline}"},{name:" Link command",legend:"Press ${link}"},{name:" Toolbar Collapse command",legend:"Press ${toolbarCollapse}"},{name:" Access previous focus space command",legend:"Press ${accessPreviousSpace} to access the closest unreachable focus space before the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},
-{name:" Access next focus space command",legend:"Press ${accessNextSpace} to access the closest unreachable focus space after the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},{name:" Accessibility Help",legend:"Press ${a11yHelp}"},{name:" Paste as plain text",legend:"Press ${pastetext}",legendEdge:"Press ${pastetext}, followed by ${paste}"}]}],tab:"Tab",pause:"Pause",capslock:"Caps Lock",escape:"Escape",pageUp:"Page Up",pageDown:"Page Down",
-leftArrow:"Left Arrow",upArrow:"Up Arrow",rightArrow:"Right Arrow",downArrow:"Down Arrow",insert:"Insert",leftWindowKey:"Left Windows key",rightWindowKey:"Right Windows key",selectKey:"Select key",numpad0:"Numpad 0",numpad1:"Numpad 1",numpad2:"Numpad 2",numpad3:"Numpad 3",numpad4:"Numpad 4",numpad5:"Numpad 5",numpad6:"Numpad 6",numpad7:"Numpad 7",numpad8:"Numpad 8",numpad9:"Numpad 9",multiply:"Multiply",add:"Add",subtract:"Subtract",decimalPoint:"Decimal Point",divide:"Divide",f1:"F1",f2:"F2",f3:"F3",
-f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"Semicolon",equalSign:"Equal Sign",comma:"Comma",dash:"Dash",period:"Period",forwardSlash:"Forward Slash",graveAccent:"Grave Accent",openBracket:"Open Bracket",backSlash:"Backslash",closeBracket:"Close Bracket",singleQuote:"Single Quote"});
\ No newline at end of file
diff --git a/web/modules/ckeditor/vendor/plugins/a11yhelp/dialogs/lang/en-gb.js b/web/modules/ckeditor/vendor/plugins/a11yhelp/dialogs/lang/en-gb.js
deleted file mode 100644
index dd73506c38fbd53e52ce38e69c0e77ec89ff8214..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/plugins/a11yhelp/dialogs/lang/en-gb.js
+++ /dev/null
@@ -1,11 +0,0 @@
-/*
- Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
- For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
-*/
-CKEDITOR.plugins.setLang("a11yhelp","en-gb",{title:"Accessibility Instructions",contents:"Help Contents. To close this dialog press ESC.",legend:[{name:"General",items:[{name:"Editor Toolbar",legend:"Press ${toolbarFocus} to navigate to the toolbar. Move to the next and previous toolbar group with TAB and SHIFT+TAB. Move to the next and previous toolbar button with RIGHT ARROW or LEFT ARROW. Press SPACE or ENTER to activate the toolbar button.The focus will be moved back to the editing area upon activating the toolbar button."},
-{name:"Editor Dialog",legend:"Inside a dialog, press TAB to navigate to the next dialog element, press SHIFT+TAB to move to the previous dialog element, press ENTER to submit the dialog, press ESC to cancel the dialog. When a dialog has multiple tabs, the tab list can be reached either with ALT+F10 or with TAB as part of the dialog tabbing order. With tab list focused, move to the next and previous tab with RIGHT and LEFT ARROW, respectively."},{name:"Editor Context Menu",legend:"Press ${contextMenu} or APPLICATION KEY to open context-menu. Then move to next menu option with TAB or DOWN ARROW. Move to previous option with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the menu option. Open sub-menu of current option with SPACE or ENTER or RIGHT ARROW. Go back to parent menu item with ESC or LEFT ARROW. Close context menu with ESC."},
-{name:"Editor List Box",legend:"Inside a list-box, move to next list item with TAB OR DOWN ARROW. Move to previous list item with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the list option. Press ESC to close the list-box."},{name:"Editor Element Path Bar",legend:"Press ${elementsPathFocus} to navigate to the elements path bar. Move to next element button with TAB or RIGHT ARROW. Move to previous button with SHIFT+TAB or LEFT ARROW. Press SPACE or ENTER to select the element in editor."}]},
-{name:"Commands",items:[{name:" Undo command",legend:"Press ${undo}"},{name:" Redo command",legend:"Press ${redo}"},{name:" Bold command",legend:"Press ${bold}"},{name:" Italic command",legend:"Press ${italic}"},{name:" Underline command",legend:"Press ${underline}"},{name:" Link command",legend:"Press ${link}"},{name:" Toolbar Collapse command",legend:"Press ${toolbarCollapse}"},{name:" Access previous focus space command",legend:"Press ${accessPreviousSpace} to access the closest unreachable focus space before the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},
-{name:" Access next focus space command",legend:"Press ${accessNextSpace} to access the closest unreachable focus space after the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},{name:" Accessibility Help",legend:"Press ${a11yHelp}"},{name:" Paste as plain text",legend:"Press ${pastetext}",legendEdge:"Press ${pastetext}, followed by ${paste}"}]}],tab:"Tab",pause:"Pause",capslock:"Caps Lock",escape:"Escape",pageUp:"Page Up",pageDown:"Page Down",
-leftArrow:"Left Arrow",upArrow:"Up Arrow",rightArrow:"Right Arrow",downArrow:"Down Arrow",insert:"Insert",leftWindowKey:"Left Windows key",rightWindowKey:"Right Windows key",selectKey:"Select key",numpad0:"Numpad 0",numpad1:"Numpad 1",numpad2:"Numpad 2",numpad3:"Numpad 3",numpad4:"Numpad 4",numpad5:"Numpad 5",numpad6:"Numpad 6",numpad7:"Numpad 7",numpad8:"Numpad 8",numpad9:"Numpad 9",multiply:"Multiply",add:"Add",subtract:"Subtract",decimalPoint:"Decimal Point",divide:"Divide",f1:"F1",f2:"F2",f3:"F3",
-f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"Semicolon",equalSign:"Equal Sign",comma:"Comma",dash:"Dash",period:"Period",forwardSlash:"Forward Slash",graveAccent:"Grave Accent",openBracket:"Open Bracket",backSlash:"Backslash",closeBracket:"Close Bracket",singleQuote:"Single Quote"});
\ No newline at end of file
diff --git a/web/modules/ckeditor/vendor/plugins/a11yhelp/dialogs/lang/en.js b/web/modules/ckeditor/vendor/plugins/a11yhelp/dialogs/lang/en.js
deleted file mode 100644
index 331b1f7b4ea2281684e1d9888e268403af8678b7..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/plugins/a11yhelp/dialogs/lang/en.js
+++ /dev/null
@@ -1,11 +0,0 @@
-/*
- Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
- For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
-*/
-CKEDITOR.plugins.setLang("a11yhelp","en",{title:"Accessibility Instructions",contents:"Help Contents. To close this dialog press ESC.",legend:[{name:"General",items:[{name:"Editor Toolbar",legend:"Press ${toolbarFocus} to navigate to the toolbar. Move to the next and previous toolbar group with TAB and SHIFT+TAB. Move to the next and previous toolbar button with RIGHT ARROW or LEFT ARROW. Press SPACE or ENTER to activate the toolbar button.The focus will be moved back to the editing area upon activating the toolbar button."},
-{name:"Editor Dialog",legend:"Inside a dialog, press TAB to navigate to the next dialog element, press SHIFT+TAB to move to the previous dialog element, press ENTER to submit the dialog, press ESC to cancel the dialog. When a dialog has multiple tabs, the tab list can be reached either with ALT+F10 or with TAB as part of the dialog tabbing order. With tab list focused, move to the next and previous tab with RIGHT and LEFT ARROW, respectively."},{name:"Editor Context Menu",legend:"Press ${contextMenu} or APPLICATION KEY to open context-menu. Then move to next menu option with TAB or DOWN ARROW. Move to previous option with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the menu option. Open sub-menu of current option with SPACE or ENTER or RIGHT ARROW. Go back to parent menu item with ESC or LEFT ARROW. Close context menu with ESC."},
-{name:"Editor List Box",legend:"Inside a list-box, move to next list item with TAB OR DOWN ARROW. Move to previous list item with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the list option. Press ESC to close the list-box."},{name:"Editor Element Path Bar",legend:"Press ${elementsPathFocus} to navigate to the elements path bar. Move to next element button with TAB or RIGHT ARROW. Move to previous button with SHIFT+TAB or LEFT ARROW. Press SPACE or ENTER to select the element in editor."}]},
-{name:"Commands",items:[{name:" Undo command",legend:"Press ${undo}"},{name:" Redo command",legend:"Press ${redo}"},{name:" Bold command",legend:"Press ${bold}"},{name:" Italic command",legend:"Press ${italic}"},{name:" Underline command",legend:"Press ${underline}"},{name:" Link command",legend:"Press ${link}"},{name:" Toolbar Collapse command",legend:"Press ${toolbarCollapse}"},{name:" Access previous focus space command",legend:"Press ${accessPreviousSpace} to access the closest unreachable focus space before the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},
-{name:" Access next focus space command",legend:"Press ${accessNextSpace} to access the closest unreachable focus space after the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},{name:" Accessibility Help",legend:"Press ${a11yHelp}"},{name:" Paste as plain text",legend:"Press ${pastetext}",legendEdge:"Press ${pastetext}, followed by ${paste}"}]}],tab:"Tab",pause:"Pause",capslock:"Caps Lock",escape:"Escape",pageUp:"Page Up",pageDown:"Page Down",
-leftArrow:"Left Arrow",upArrow:"Up Arrow",rightArrow:"Right Arrow",downArrow:"Down Arrow",insert:"Insert",leftWindowKey:"Left Windows key",rightWindowKey:"Right Windows key",selectKey:"Select key",numpad0:"Numpad 0",numpad1:"Numpad 1",numpad2:"Numpad 2",numpad3:"Numpad 3",numpad4:"Numpad 4",numpad5:"Numpad 5",numpad6:"Numpad 6",numpad7:"Numpad 7",numpad8:"Numpad 8",numpad9:"Numpad 9",multiply:"Multiply",add:"Add",subtract:"Subtract",decimalPoint:"Decimal Point",divide:"Divide",f1:"F1",f2:"F2",f3:"F3",
-f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"Semicolon",equalSign:"Equal Sign",comma:"Comma",dash:"Dash",period:"Period",forwardSlash:"Forward Slash",graveAccent:"Grave Accent",openBracket:"Open Bracket",backSlash:"Backslash",closeBracket:"Close Bracket",singleQuote:"Single Quote"});
\ No newline at end of file
diff --git a/web/modules/ckeditor/vendor/plugins/a11yhelp/dialogs/lang/eo.js b/web/modules/ckeditor/vendor/plugins/a11yhelp/dialogs/lang/eo.js
deleted file mode 100644
index 68d3cae51bea6ee72647fb19882a539cb976cf50..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/plugins/a11yhelp/dialogs/lang/eo.js
+++ /dev/null
@@ -1,13 +0,0 @@
-/*
- Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
- For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
-*/
-CKEDITOR.plugins.setLang("a11yhelp","eo",{title:"Uzindikoj pri atingeblo",contents:"Helpilenhavo. Por fermi tiun dialogon, premu la ESKAPAN klavon.",legend:[{name:"Ĝeneralaĵoj",items:[{name:"Ilbreto de la redaktilo",legend:"Premu ${toolbarFocus} por atingi la ilbreton. Moviĝu al la sekva aŭ antaŭa grupoj de la ilbreto per la klavoj TABA kaj MAJUSKLIGA+TABA. Moviĝu al la sekva aŭ antaŭa butonoj de la ilbreto per la klavoj SAGO DEKSTREN kaj SAGO MALDEKSTREN. Premu la SPACETklavon aŭ la ENENklavon por aktivigi la ilbretbutonon."},
-{name:"Redaktildialogo",legend:"En dialogo, premu la TABAN klavon por navigi al la sekva dialogelemento, premu la MAJUSKLIGAN+TABAN klavon por iri al la antaŭa dialogelemento, premu la ENEN klavon por sendi la dialogon, premu la ESKAPAN klavon por nuligi la dialogon. Kiam dialogo havas multajn langetojn, eblas atingi la langetliston aŭ per ALT+F10 aŭ per la TABA klavo kiel parton de la dialoga taba ordo. En langetlisto, moviĝu al la sekva kaj antaŭa langeto per la klavoj SAGO DEKSTREN KAJ MALDEKSTREN respektive."},
-{name:"Kunteksta menuo de la redaktilo",legend:"Premu ${contextMenu} aŭ entajpu la KLAVKOMBINAĴON por malfermi la kuntekstan menuon. Poste moviĝu al la sekva opcio de la menuo per la klavoj TABA aŭ SAGO SUBEN. Moviĝu al la antaŭa opcio per la klavoj MAJUSKLGA + TABA aŭ SAGO SUPREN. Premu la SPACETklavon aŭ ENENklavon por selekti la menuopcion. Malfermu la submenuon de la kuranta opcio per la SPACETklavo aŭ la ENENklavo aŭ la SAGO DEKSTREN. Revenu al la elemento de la patra menuo per la klavoj ESKAPA aŭ SAGO MALDEKSTREN. Fermu la kuntekstan menuon per la ESKAPA klavo."},
-{name:"Fallisto de la redaktilo",legend:"En fallisto, moviĝu al la sekva listelemento per la klavoj TABA aŭ SAGO SUBEN. Moviĝu al la antaŭa listelemento per la klavoj MAJUSKLIGA+TABA aŭ SAGO SUPREN. Premu la SPACETklavon aŭ ENENklavon por selekti la opcion en la listo. Premu la ESKAPAN klavon por fermi la falmenuon."},{name:"Breto indikanta la vojon al la redaktilelementoj",legend:"Premu ${elementsPathFocus} por navigi al la breto indikanta la vojon al la redaktilelementoj. Moviĝu al la butono de la sekva elemento per la klavoj TABA aŭ SAGO DEKSTREN. Moviĝu al la butono de la antaŭa elemento per la klavoj MAJUSKLIGA+TABA aŭ SAGO MALDEKSTREN. Premu la SPACETklavon aŭ ENENklavon por selekti la elementon en la redaktilo."}]},
-{name:"Komandoj",items:[{name:"Komando malfari",legend:"Premu ${undo}"},{name:"Komando refari",legend:"Premu ${redo}"},{name:"Komando grasa",legend:"Premu ${bold}"},{name:"Komando kursiva",legend:"Premu ${italic}"},{name:"Komando substreki",legend:"Premu ${underline}"},{name:"Komando ligilo",legend:"Premu ${link}"},{name:"Komando faldi la ilbreton",legend:"Premu ${toolbarCollapse}"},{name:"Komando por atingi la antaŭan fokusan spacon",legend:"Press ${accessPreviousSpace} por atingi la plej proksiman neatingeblan fokusan spacon antaŭ la kursoro, ekzemple : du kuntuŝiĝajn HR elementojn. Ripetu la klavkombinaĵon por atingi malproksimajn fokusajn spacojn."},
-{name:"Komando por atingi la sekvan fokusan spacon",legend:"Press ${accessNextSpace} por atingi la plej proksiman neatingeblan fokusan spacon post la kursoro, ekzemple : du kuntuŝiĝajn HR elementojn. Ripetu la klavkombinajôn por atingi malproksimajn fokusajn spacojn"},{name:"Helpilo pri atingeblo",legend:"Premu ${a11yHelp}"},{name:"Algluu kiel platan tekston",legend:"Presu ${pastetext}",legendEdge:"Presu ${pastetext}, sekvatan de ${paste}"}]}],tab:"Tabo",pause:"Paŭzo",capslock:"Majuskla baskulo",
-escape:"Eskapa klavo",pageUp:"Antaŭa Paĝo",pageDown:"Sekva Paĝo",leftArrow:"Sago Maldekstren",upArrow:"Sago Supren",rightArrow:"Sago Dekstren",downArrow:"Sago Suben",insert:"Enmeti",leftWindowKey:"Maldekstra Windows-klavo",rightWindowKey:"Dekstra Windows-klavo",selectKey:"Selektklavo",numpad0:"Nombra Klavaro 0",numpad1:"Nombra Klavaro 1",numpad2:"Nombra Klavaro 2",numpad3:"Nombra Klavaro 3",numpad4:"Nombra Klavaro 4",numpad5:"Nombra Klavaro 5",numpad6:"Nombra Klavaro 6",numpad7:"Nombra Klavaro 7",
-numpad8:"Nombra Klavaro 8",numpad9:"Nombra Klavaro 9",multiply:"Obligi",add:"Almeti",subtract:"Subtrahi",decimalPoint:"Dekuma Punkto",divide:"Dividi",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Nombra Baskulo",scrollLock:"Ruluma Baskulo",semiColon:"Punktokomo",equalSign:"Egalsigno",comma:"Komo",dash:"Haltostreko",period:"Punkto",forwardSlash:"Oblikvo",graveAccent:"Malakuto",openBracket:"Malferma Krampo",backSlash:"Retroklino",closeBracket:"Ferma Krampo",
-singleQuote:"Citilo"});
\ No newline at end of file
diff --git a/web/modules/ckeditor/vendor/plugins/a11yhelp/dialogs/lang/es-mx.js b/web/modules/ckeditor/vendor/plugins/a11yhelp/dialogs/lang/es-mx.js
deleted file mode 100644
index ef993cf929aefa5931bca9d1ae2202c3d2cce261..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/plugins/a11yhelp/dialogs/lang/es-mx.js
+++ /dev/null
@@ -1,13 +0,0 @@
-/*
- Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
- For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
-*/
-CKEDITOR.plugins.setLang("a11yhelp","es-mx",{title:"Instrucciones de accesibilidad",contents:"Contenidos de ayuda. Para cerrar este cuadro de diálogo presione ESC.",legend:[{name:"General",items:[{name:"Barra de herramientas del editor",legend:"Presione ${toolbarFocus} para navegar a la barra de herramientas. Desplácese al grupo de barras de herramientas siguiente y anterior con  SHIFT + TAB. Desplácese al botón siguiente y anterior de la barra de herramientas con FLECHA DERECHA o FLECHA IZQUIERDA. Presione SPACE o ENTER para activar el botón de la barra de herramientas."},
-{name:"Editor de diálogo",legend:"Dentro de un cuadro de diálogo, pulse TAB para desplazarse hasta el siguiente elemento de diálogo, pulse MAYÚS + TAB para desplazarse al elemento de diálogo anterior, pulse ENTER para enviar el diálogo, pulse ESC para cancelar el diálogo. Cuando un cuadro de diálogo tiene varias pestañas, se puede acceder a la lista de pestañas con ALT + F10 o con TAB como parte del orden de tabulación del diálogo. Con la lista de tabuladores enfocada, mueva a la pestaña siguiente y anterior con las flechas DERECHA y IZQUIERDA, respectivamente."},
-{name:"Menú contextual del editor",legend:"Presione ${contextMenu} o CLAVE DE APLICACIÓN para abrir el menú contextual. A continuación, vaya a la siguiente opción del menú con TAB o DOWN ARROW. Desplácese a la opción anterior con SHIFT + TAB o FLECHA ARRIBA. Presione SPACE o ENTER para seleccionar la opción del menú. Abra el submenú de la opción actual con ESPACIO o ENTER o FLECHA DERECHA. Vuelva al elemento de menú principal con ESC o FLECHA IZQUIERDA. Cerrar el menú contextual con ESC."},{name:"Editor de cuadro de lista",
-legend:"Dentro de un cuadro de lista, mueva al siguiente elemento de lista con TAB O FLECHA ABAJO. Mueva al elemento anterior de la lista con MAYÚS + TAB o FLECHA ARRIBA. Presione SPACE o ENTER para seleccionar la opción de lista. Presione ESC para cerrar el cuadro de lista."},{name:"Barra de ruta del elemento del editor",legend:"Presione ${elementsPathFocus} para navegar a la barra de ruta de elementos. Desplácese al siguiente botón de elemento con TAB o FLECHA DERECHA. Desplácese al botón anterior con SHIFT + TAB o FLECHA IZQUIERDA. Presione SPACE o ENTER para seleccionar el elemento en el editor."}]},
-{name:"Comandos",items:[{name:"Comando deshacer",legend:"Presiona ${undo}"},{name:"Comando rehacer",legend:"Presiona ${redo}"},{name:"Comando negrita",legend:"Presiona ${bold}"},{name:"Comando cursiva",legend:"Presiona {italic}"},{name:"Comando subrayado",legend:"Presiona ${underline}"},{name:"Comando enlace",legend:"Presiona ${link}"},{name:"Comando colapsar barra de herramientas",legend:"Presiona ${toolbarCollapse}"},{name:"Acceda al comando de espacio de enfoque anterior",legend:"Presione ${accessPreviousSpace} para acceder al espacio de enfoque inaccesible más cercano antes del cursor, por ejemplo: dos elementos HR adyacentes. Repita la combinación de teclas para alcanzar los espacios de enfoque distantes."},
-{name:"Acceder al siguiente comando de espacio de enfoque",legend:"Pulse ${accessNextSpace} para acceder al espacio de enfoque más cercano inaccesible después del cursor, por ejemplo: dos elementos HR adyacentes. Repita la combinación de teclas para alcanzar los espacios de enfoque distantes."},{name:"Ayuda de accesibilidad",legend:"Presiona ${a11yHelp}"},{name:" Paste as plain text",legend:"Press ${pastetext}",legendEdge:"Press ${pastetext}, followed by ${paste}"}]}],tab:"Tabulador",pause:"Pausa",
-capslock:"Mayúsculas",escape:"Escape",pageUp:"Página arriba",pageDown:"Página abajo",leftArrow:"Flecha izquierda",upArrow:"Flecha arriba",rightArrow:"Flecha derecha",downArrow:"Flecha abajo",insert:"Insertar",leftWindowKey:"Tecla izquierda de Windows",rightWindowKey:"Tecla derecha de Windows",selectKey:"Tecla de selección",numpad0:"Teclado numérico 0",numpad1:"Teclado numérico 1",numpad2:"Teclado numérico 2",numpad3:"Teclado numérico 3",numpad4:"Teclado numérico 4",numpad5:"Teclado numérico 5",numpad6:"Teclado numérico 6",
-numpad7:"Teclado numérico 7",numpad8:"Teclado numérico 8",numpad9:"Teclado numérico 9",multiply:"Multiplicar",add:"Sumar",subtract:"Restar",decimalPoint:"Punto decimal",divide:"Dividir",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Números",scrollLock:"Bloqueo de desplazamiento",semiColon:"punto y coma",equalSign:"Signo igual",comma:"Coma",dash:"Guión",period:"Espacio",forwardSlash:"Diagonal",graveAccent:"Acento grave",openBracket:"Abrir paréntesis",
-backSlash:"Diagonal invertida",closeBracket:"Cerrar paréntesis",singleQuote:"Comillas simple"});
\ No newline at end of file
diff --git a/web/modules/ckeditor/vendor/plugins/a11yhelp/dialogs/lang/es.js b/web/modules/ckeditor/vendor/plugins/a11yhelp/dialogs/lang/es.js
deleted file mode 100644
index 8f29d21055f1a50020e4646ff1b32d5f58958303..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/plugins/a11yhelp/dialogs/lang/es.js
+++ /dev/null
@@ -1,13 +0,0 @@
-/*
- Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
- For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
-*/
-CKEDITOR.plugins.setLang("a11yhelp","es",{title:"Instrucciones de accesibilidad",contents:"Ayuda. Para cerrar presione ESC.",legend:[{name:"General",items:[{name:"Barra de herramientas del editor",legend:'Presiona ${toolbarFocus} para navegar por la barra de herramientas. Para moverse por los distintos grupos de herramientas usa las teclas TAB y MAY+TAB. Para moverse por las distintas herramientas usa FLECHA DERECHA o FECHA IZQUIERDA. Presiona "espacio" o "intro" para activar la herramienta.'},{name:"Editor de diálogo",
-legend:"Dentro del diálogo, presione TAB para navegar a los siguientes elementos de diálogo, presione SHIFT+TAB para moverse a los anteriores elementos de diálogo, presione ENTER para enviar el diálogo, presiona ESC para cancelar el diálogo. Cuando el diálogo tiene multiples pestañas, la lista de pestañas puede ser abarcada con ALT + F10 or con TAB como parte del orden de pestañas del diálogo. ECon la pestaña enfocada, puede moverse a la siguiente o anterior pestaña con las FLECHAS IZQUIRDA y DERECHA respectivamente."},
-{name:"Editor del menú contextual",legend:"Presiona ${contextMenu} o TECLA MENÚ para abrir el menú contextual. Entonces muévete a la siguiente opción del menú con TAB o FLECHA ABAJO. Muévete a la opción previa con SHIFT + TAB o FLECHA ARRIBA. Presiona ESPACIO o ENTER para seleccionar la opción del menú. Abre el submenú de la opción actual con ESPACIO o ENTER o FLECHA DERECHA. Regresa al elemento padre del menú con ESC o FLECHA IZQUIERDA. Cierra el menú contextual con ESC."},{name:"Lista del Editor",
-legend:"Dentro de una lista, te mueves al siguiente elemento de la lista con TAB o FLECHA ABAJO. Te mueves al elemento previo de la lista con SHIFT+TAB o FLECHA ARRIBA. Presiona ESPACIO o ENTER para elegir la opción de la lista. Presiona ESC para cerrar la lista."},{name:"Barra de Ruta del Elemento en el Editor",legend:"Presiona ${elementsPathFocus} para navegar a los elementos de la barra de ruta. Te mueves al siguiente elemento botón con TAB o FLECHA DERECHA. Te mueves al botón previo con SHIFT+TAB o FLECHA IZQUIERDA. Presiona ESPACIO o ENTER para seleccionar el elemento en el editor."}]},
-{name:"Comandos",items:[{name:"Comando deshacer",legend:"Presiona ${undo}"},{name:"Comando rehacer",legend:"Presiona ${redo}"},{name:"Comando negrita",legend:"Presiona ${bold}"},{name:"Comando itálica",legend:"Presiona ${italic}"},{name:"Comando subrayar",legend:"Presiona ${underline}"},{name:"Comando liga",legend:"Presiona ${liga}"},{name:"Comando colapsar barra de herramientas",legend:"Presiona ${toolbarCollapse}"},{name:"Comando accesar el anterior espacio de foco",legend:"Presiona ${accessPreviousSpace} para accesar el espacio de foco no disponible más cercano anterior al cursor, por ejemplo: dos elementos HR adyacentes. Repite la combinación de teclas para alcanzar espacios de foco distantes."},
-{name:"Comando accesar el siguiente spacio de foco",legend:"Presiona ${accessNextSpace} para accesar el espacio de foco no disponible más cercano después del cursor, por ejemplo: dos elementos HR adyacentes. Repite la combinación de teclas para alcanzar espacios de foco distantes."},{name:"Ayuda de Accesibilidad",legend:"Presiona ${a11yHelp}"},{name:" Paste as plain text",legend:"Press ${pastetext}",legendEdge:"Press ${pastetext}, followed by ${paste}"}]}],tab:"Tabulador",pause:"Pausa",capslock:"Bloq. Mayús.",
-escape:"Escape",pageUp:"Regresar Página",pageDown:"Avanzar Página",leftArrow:"Flecha Izquierda",upArrow:"Flecha Arriba",rightArrow:"Flecha Derecha",downArrow:"Flecha Abajo",insert:"Insertar",leftWindowKey:"Tecla Windows Izquierda",rightWindowKey:"Tecla Windows Derecha",selectKey:"Tecla de Selección",numpad0:"Tecla 0 del teclado numérico",numpad1:"Tecla 1 del teclado numérico",numpad2:"Tecla 2 del teclado numérico",numpad3:"Tecla 3 del teclado numérico",numpad4:"Tecla 4 del teclado numérico",numpad5:"Tecla 5 del teclado numérico",
-numpad6:"Tecla 6 del teclado numérico",numpad7:"Tecla 7 del teclado numérico",numpad8:"Tecla 8 del teclado numérico",numpad9:"Tecla 9 del teclado numérico",multiply:"Multiplicar",add:"Sumar",subtract:"Restar",decimalPoint:"Punto Decimal",divide:"Dividir",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"Punto y coma",equalSign:"Signo de Igual",comma:"Coma",dash:"Guión",period:"Punto",forwardSlash:"Diagonal",
-graveAccent:"Acento Grave",openBracket:"Abrir llave",backSlash:"Diagonal Invertida",closeBracket:"Cerrar llave",singleQuote:"Comillas simples"});
\ No newline at end of file
diff --git a/web/modules/ckeditor/vendor/plugins/a11yhelp/dialogs/lang/et.js b/web/modules/ckeditor/vendor/plugins/a11yhelp/dialogs/lang/et.js
deleted file mode 100644
index b6503c831ec7456a59becbc245500c80f5411e77..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/plugins/a11yhelp/dialogs/lang/et.js
+++ /dev/null
@@ -1,11 +0,0 @@
-/*
- Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
- For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
-*/
-CKEDITOR.plugins.setLang("a11yhelp","et",{title:"Hõlbustuste kasutamise juhised",contents:"Abi sisu. Selle dialoogi sulgemiseks vajuta ESC klahvi.",legend:[{name:"Üldine",items:[{name:"Redaktori tööriistariba",legend:"Tööriistaribale navigeerimiseks vajuta ${toolbarFocus}. Järgmisele või eelmisele tööriistagrupile liikumiseks vajuta TAB või SHIFT+TAB. Järgmisele või eelmisele tööriistaribale liikumiseks vajuta PAREMALE NOOLT või VASAKULE NOOLT. Vajuta TÜHIKUT või ENTERIT, et tööriistariba nupp aktiveerida."},
-{name:"Redaktori dialoog",legend:"Dialoogi sees vajuta TAB, et liikuda järgmisele dialoogi elemendile, SHIFT+TAB, et liikuda tagasi, vajuta ENTER dialoogi kinnitamiseks, ESC dialoogi sulgemiseks. Kui dialoogil on mitu kaarti/sakki, pääseb kaartide nimekirjale ligi ALT+F10 klahvidega või TABi kasutades. Kui kaartide nimekiri on fookuses, saab järgmisele ja eelmisele kaardile vastavalt PAREMALE ja VASAKULE NOOLTEGA."},{name:"Redaktori kontekstimenüü",legend:"Vajuta ${contextMenu} või RAKENDUSE KLAHVI, et avada kontekstimenüü. Siis saad liikuda järgmisele reale TAB klahvi või ALLA NOOLEGA. Eelmisele valikule saab liikuda SHIFT+TAB klahvidega või ÜLES NOOLEGA. Kirje valimiseks vajuta TÜHIK või ENTER. Alamenüü saab valida kui alammenüü kirje on aktiivne ja valida kas TÜHIK, ENTER või PAREMALE NOOL. Ülemisse menüüsse tagasi saab ESC klahvi või VASAKULE NOOLEGA. Menüü saab sulgeda ESC klahviga."},
-{name:"Redaktori loetelu kast",legend:"Loetelu kasti sees saab järgmisele reale liikuda TAB klahvi või ALLANOOLEGA. Eelmisele reale saab liikuda SHIFT+TAB klahvide või ÜLESNOOLEGA. Kirje valimiseks vajuta TÜHIKUT või ENTERIT. Loetelu kasti sulgemiseks vajuta ESC klahvi."},{name:"Redaktori elementide järjestuse riba",legend:"Vajuta ${elementsPathFocus} et liikuda asukoha ribal asuvatele elementidele. Järgmise elemendi nupule saab liikuda TAB klahviga või PAREMALE NOOLEGA. Eelmisele nupule saab liikuda SHIFT+TAB klahvi või VASAKULE NOOLEGA. Vajuta TÜHIK või ENTER, et valida redaktoris vastav element."}]},
-{name:"Käsud",items:[{name:"Tühistamise käsk",legend:"Vajuta ${undo}"},{name:"Uuesti tegemise käsk",legend:"Vajuta ${redo}"},{name:"Rasvase käsk",legend:"Vajuta ${bold}"},{name:"Kursiivi käsk",legend:"Vajuta ${italic}"},{name:"Allajoonimise käsk",legend:"Vajuta ${underline}"},{name:"Lingi käsk",legend:"Vajuta ${link}"},{name:"Tööriistariba peitmise käsk",legend:"Vajuta ${toolbarCollapse}"},{name:"Ligipääs eelmisele fookuskohale",legend:"Vajuta ${accessPreviousSpace}, et pääseda ligi lähimale liigipääsematule fookuskohale enne kursorit, näiteks: kahe järjestikuse HR elemendi vahele. Vajuta kombinatsiooni uuesti, et pääseda ligi kaugematele kohtadele."},
-{name:"Ligipääs järgmisele fookuskohale",legend:"Vajuta ${accessNextSpace}, et pääseda ligi lähimale liigipääsematule fookuskohale pärast kursorit, näiteks: kahe järjestikuse HR elemendi vahele. Vajuta kombinatsiooni uuesti, et pääseda ligi kaugematele kohtadele."},{name:"Hõlbustuste abi",legend:"Vajuta ${a11yHelp}"},{name:"Asetamine tavalise tekstina",legend:"Vajuta ${pastetext}",legendEdge:"Vajuta ${pastetext}, siis ${paste}"}]}],tab:"Tabulaator",pause:"Paus",capslock:"Tõstulukk",escape:"Paoklahv",
-pageUp:"Leht üles",pageDown:"Leht alla",leftArrow:"Nool vasakule",upArrow:"Nool üles",rightArrow:"Nool paremale",downArrow:"Nool alla",insert:"Sisetamine",leftWindowKey:"Vasak Windowsi klahv",rightWindowKey:"Parem Windowsi klahv",selectKey:"Vali klahv",numpad0:"Numbriala 0",numpad1:"Numbriala 1",numpad2:"Numbriala 2",numpad3:"Numbriala 3",numpad4:"Numbriala 4",numpad5:"Numbriala 5",numpad6:"Numbriala 6",numpad7:"Numbriala 7",numpad8:"Numbriala 8",numpad9:"Numbriala 9",multiply:"Korrutus",add:"Pluss",
-subtract:"Miinus",decimalPoint:"Koma",divide:"Jagamine",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Numbrilukk",scrollLock:"Kerimislukk",semiColon:"Semikoolon",equalSign:"Võrdusmärk",comma:"Koma",dash:"Sidekriips",period:"Punkt",forwardSlash:"Kaldkriips",graveAccent:"Rõhumärk",openBracket:"Algussulg",backSlash:"Kurakaldkriips",closeBracket:"Lõpusulg",singleQuote:"Ülakoma"});
\ No newline at end of file
diff --git a/web/modules/ckeditor/vendor/plugins/a11yhelp/dialogs/lang/eu.js b/web/modules/ckeditor/vendor/plugins/a11yhelp/dialogs/lang/eu.js
deleted file mode 100644
index 347626043fe3c2e1a490035e5e56b0dbb8e3bdb1..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/plugins/a11yhelp/dialogs/lang/eu.js
+++ /dev/null
@@ -1,12 +0,0 @@
-/*
- Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
- For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
-*/
-CKEDITOR.plugins.setLang("a11yhelp","eu",{title:"Erabilerraztasunaren argibideak",contents:"Laguntzaren edukiak. Elkarrizketa-koadro hau ixteko sakatu ESC.",legend:[{name:"Orokorra",items:[{name:"Editorearen tresna-barra",legend:"Sakatu ${toolbarFocus} tresna-barrara nabigatzeko. Tresna-barrako aurreko eta hurrengo taldera joateko erabili TAB eta MAIUS+TAB. Tresna-barrako aurreko eta hurrengo botoira joateko erabili ESKUIN-GEZIA eta EZKER-GEZIA. Sakatu ZURIUNEA edo SARTU tresna-barrako botoia aktibatzeko."},
-{name:"Editorearen elkarrizketa-koadroa",legend:"Elkarrizketa-koadro baten barruan sakatu TAB hurrengo elementura nabigatzeko, sakatu MAIUS+TAB aurreko elementura joateko, sakatu SARTU elkarrizketa-koadroa bidaltzeko eta sakatu ESC uzteko. Elkarrizketa-koadro batek hainbat fitxa dituenean, ALT+F10 erabiliz irits daiteke fitxen zerrendara, edo TAB erabiliz. Fokoa fitxen zerrendak duenean, aurreko eta hurrengo fitxetara joateko erabili EZKER-GEZIA eta ESKUIN-GEZIA."},{name:"Editorearen testuinguru-menua",
-legend:"Sakatu ${contextMenu} edo APLIKAZIO TEKLA testuinguru-menua irekitzeko. Menuko hurrengo aukerara joateko erabili TAB edo BEHERA GEZIA. Aurreko aukerara nabigatzeko erabili MAIUS+TAB edo GORA GEZIA. Sakatu ZURIUNEA edo SARTU menuko aukera hautatzeko. Ireki uneko aukeraren azpi-menua ZURIUNEA edo SARTU edo ESKUIN-GEZIA erabiliz. Menuko aukera gurasora itzultzeko erabili ESC edo EZKER-GEZIA. Testuinguru-menua ixteko sakatu ESC."},{name:"Editorearen zerrenda-koadroa",legend:"Zerrenda-koadro baten barruan, zerrendako hurrengo elementura joateko erabili TAB edo BEHERA GEZIA. Zerrendako aurreko elementura nabigatzeko MAIUS+TAB edo GORA GEZIA. Sakatu ZURIUNEA edo SARTU zerrendako aukera hautatzeko. Sakatu ESC zerrenda-koadroa ixteko."},
-{name:"Editorearen elementuaren bide-barra",legend:"Sakatu ${elementsPathFocus} elementuaren bide-barrara nabigatzeko. Hurrengo elementuaren botoira joateko erabili TAB edo ESKUIN-GEZIA. Aurreko botoira joateko aldiz erabili MAIUS+TAB edo EZKER-GEZIA. Elementua editorean hautatzeko sakatu ZURIUNEA edo SARTU."}]},{name:"Komandoak",items:[{name:"Desegin komandoa",legend:"Sakatu ${undo}"},{name:"Berregin komandoa",legend:"Sakatu ${redo}"},{name:"Lodia komandoa",legend:"Sakatu ${bold}"},{name:"Etzana komandoa",
-legend:"Sakatu ${italic}"},{name:"Azpimarratu komandoa",legend:"Sakatu ${underline}"},{name:"Esteka komandoa",legend:"Sakatu ${link}"},{name:"Tolestu tresna-barra komandoa",legend:"Sakatu ${toolbarCollapse}"},{name:" Access previous focus space command",legend:"Press ${accessPreviousSpace} to access the closest unreachable focus space before the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},{name:" Access next focus space command",legend:"Press ${accessNextSpace} to access the closest unreachable focus space after the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},
-{name:"Erabilerraztasunaren laguntza",legend:"Sakatu ${a11yHelp}"},{name:"Itsatsi testu arrunt bezala",legend:"Sakatu ${pastetext}",legendEdge:"Sakatu ${pastetext} eta jarraian ${paste}"}]}],tab:"Tabuladorea",pause:"Pausatu",capslock:"Blok Maius",escape:"Ihes",pageUp:"Orria gora",pageDown:"Orria behera",leftArrow:"Ezker-gezia",upArrow:"Gora gezia",rightArrow:"Eskuin-gezia",downArrow:"Behera gezia",insert:"Txertatu",leftWindowKey:"Ezkerreko Windows tekla",rightWindowKey:"Eskuineko Windows tekla",selectKey:"Hautatu tekla",
-numpad0:"Zenbakizko teklatua 0",numpad1:"Zenbakizko teklatua 1",numpad2:"Zenbakizko teklatua 2",numpad3:"Zenbakizko teklatua 3",numpad4:"Zenbakizko teklatua 4",numpad5:"Zenbakizko teklatua 5",numpad6:"Zenbakizko teklatua 6",numpad7:"Zenbakizko teklatua 7",numpad8:"Zenbakizko teklatua 8",numpad9:"Zenbakizko teklatua 9",multiply:"Biderkatu",add:"Gehitu",subtract:"Kendu",decimalPoint:"Koma hamartarra",divide:"Zatitu",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",
-f12:"F12",numLock:"Blok Zenb",scrollLock:"Blok Korr",semiColon:"Puntu eta koma",equalSign:"Berdin zeinua",comma:"Koma",dash:"Marratxoa",period:"Puntua",forwardSlash:"Barra",graveAccent:"Azentu kamutsa",openBracket:"Parentesia ireki",backSlash:"Alderantzizko barra",closeBracket:"Itxi parentesia",singleQuote:"Komatxo bakuna"});
\ No newline at end of file
diff --git a/web/modules/ckeditor/vendor/plugins/a11yhelp/dialogs/lang/fa.js b/web/modules/ckeditor/vendor/plugins/a11yhelp/dialogs/lang/fa.js
deleted file mode 100644
index 0fb420114fa1aa88f39388d72a1b9c6b95c3c865..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/plugins/a11yhelp/dialogs/lang/fa.js
+++ /dev/null
@@ -1,11 +0,0 @@
-/*
- Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
- For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
-*/
-CKEDITOR.plugins.setLang("a11yhelp","fa",{title:"دستورالعمل‌های دسترسی",contents:"راهنمای فهرست مطالب. برای بستن این کادر محاوره‌ای ESC را فشار دهید.",legend:[{name:"عمومی",items:[{name:"نوار ابزار ویرایشگر",legend:"برای باز کردن نوار ابزار،  {toolbarFocus}$ را بفشارید. با کلید Tab و Shift+Tab به مجموعه نوار ابزار بعدی و یا قبلی بروید. با کلید های جهت نمای راست و چپ روی دکمه های نوار ابزار حرکت کنید. برای فعال کردن دکمه مورد نظر کلید Enter و یا Space را بفشارید. با فعال کردن دکمه مورد نظر، تمرکز به محیط ویرایش باز خواهد گشت."},
-{name:"پنجره محاورهای ویرایشگر",legend:"در داخل یک پنجره محاوره‌ای، کلید Tab را بفشارید تا به پنجره‌ی بعدی بروید، Shift+Tab برای حرکت به فیلد قبلی، فشردن Enter برای ثبت اطلاعات پنجره‌، فشردن Esc برای لغو پنجره محاوره‌ای و برای پنجره‌هایی که چندین برگه دارند، فشردن Alt+F10 یا Tab برای حرکت در برگه ها. وقتی بر فهرست برگه ها هستید، به صفحه بعدی و قبلی با کلید های راستی و چپ حرکت کنید."},{name:"منوی متنی ویرایشگر",legend:"${contextMenu} یا کلید برنامههای کاربردی را برای باز کردن منوی متن را بفشارید. سپس میتوانید برای حرکت به گزینه بعدی منو با کلید Tab و یا کلید جهتنمای پایین جابجا شوید. حرکت به گزینه قبلی با Shift+Tab یا کلید جهتنمای بالا. فشردن Space یا Enter برای انتخاب یک گزینه از منو. باز کردن زیر شاخه گزینه منو جاری با کلید Space یا Enter و یا کلید جهتنمای راست و چپ. بازگشت به منوی والد با کلید Esc یا کلید جهتنمای چپ. بستن منوی متن با Esc."},
-{name:"جعبه فهرست ویرایشگر",legend:"در داخل جعبه لیست، قلم دوم از اقلام لیست بعدی را با TAB و یا Arrow Down حرکت دهید. انتقال به قلم دوم از اقلام لیست قبلی را با SHIFT + TAB یا UP ARROW. کلید Space یا ENTER را برای انتخاب گزینه لیست بفشارید. کلید ESC را برای بستن جعبه لیست بفشارید."},{name:"ویرایشگر عنصر نوار راه",legend:"برای رفتن به مسیر عناصر ${elementsPathFocus} را بفشارید. حرکت به کلید عنصر بعدی با کلید Tab یا کلید جهت‌نمای راست. برگشت به کلید قبلی با Shift+Tab یا کلید جهت‌نمای چپ. فشردن Space یا Enter برای انتخاب یک عنصر در ویرایشگر."}]},
-{name:"فرمان‌ها",items:[{name:"بازگشت به آخرین فرمان",legend:"فشردن ${undo}"},{name:"انجام مجدد فرمان",legend:"فشردن ${redo}"},{name:"فرمان درشت کردن متن",legend:"فشردن ${bold}"},{name:"فرمان کج کردن متن",legend:"فشردن ${italic}"},{name:"فرمان زیرخطدار کردن متن",legend:"فشردن ${underline}"},{name:"فرمان پیوند دادن",legend:"فشردن ${link}"},{name:"بستن نوار ابزار فرمان",legend:"فشردن ${toolbarCollapse}"},{name:"دسترسی به فرمان محل تمرکز قبلی",legend:"فشردن ${accessPreviousSpace} برای دسترسی به نزدیک‌ترین فضای قابل دسترسی تمرکز قبل از هشتک، برای مثال: دو عنصر مجاور HR -خط افقی-. تکرار کلید ترکیبی برای رسیدن به فضاهای تمرکز از راه دور."},
-{name:"دسترسی به فضای دستور بعدی",legend:"برای دسترسی به نزدیک‌ترین فضای تمرکز غیر قابل دسترس، ${accessNextSpace} را پس از علامت هشتک بفشارید، برای مثال:  دو عنصر مجاور HR -خط افقی-. کلید ترکیبی را برای رسیدن به فضای تمرکز تکرار کنید."},{name:"راهنمای دسترسی",legend:"فشردن ${a11yHelp}"},{name:"چسباندن به عنوان متن ساده",legend:"فشردن ${pastetext}",legendEdge:"فشردن ${pastetext}، همراه با ${paste}"}]}],tab:"برگه",pause:"توقف",capslock:"Caps Lock",escape:"گریز",pageUp:"صفحه به بالا",pageDown:"صفحه به پایین",
-leftArrow:"پیکان چپ",upArrow:"پیکان بالا",rightArrow:"پیکان راست",downArrow:"پیکان پایین",insert:"ورود",leftWindowKey:"کلید چپ ویندوز",rightWindowKey:"کلید راست ویندوز",selectKey:"انتخاب کلید",numpad0:"کلید شماره 0",numpad1:"کلید شماره 1",numpad2:"کلید شماره 2",numpad3:"کلید شماره 3",numpad4:"کلید شماره 4",numpad5:"کلید شماره 5",numpad6:"کلید شماره 6",numpad7:"کلید شماره 7",numpad8:"کلید شماره 8",numpad9:"کلید شماره 9",multiply:"ضرب",add:"افزودن",subtract:"تفریق",decimalPoint:"نقطه‌ی اعشار",divide:"جدا کردن",
-f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"Semicolon",equalSign:"علامت تساوی",comma:"کاما",dash:"خط تیره",period:"دوره",forwardSlash:"Forward Slash",graveAccent:"Grave Accent",openBracket:"Open Bracket",backSlash:"Backslash",closeBracket:"Close Bracket",singleQuote:"Single Quote"});
\ No newline at end of file
diff --git a/web/modules/ckeditor/vendor/plugins/a11yhelp/dialogs/lang/fi.js b/web/modules/ckeditor/vendor/plugins/a11yhelp/dialogs/lang/fi.js
deleted file mode 100644
index bf1155f91e780dfb2fb3df8b3a3931c61e509935..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/plugins/a11yhelp/dialogs/lang/fi.js
+++ /dev/null
@@ -1,11 +0,0 @@
-/*
- Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
- For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
-*/
-CKEDITOR.plugins.setLang("a11yhelp","fi",{title:"Saavutettavuus ohjeet",contents:"Ohjeen sisällöt. Sulkeaksesi tämän dialogin paina ESC.",legend:[{name:"Yleinen",items:[{name:"Editorin työkalupalkki",legend:"Paina ${toolbarFocus} siirtyäksesi työkalupalkkiin. Siirry seuraavaan ja edelliseen työkalupalkin ryhmään TAB ja SHIFT+TAB näppäimillä. Siirry seuraavaan ja edelliseen työkalupainikkeeseen käyttämällä NUOLI OIKEALLE tai NUOLI VASEMMALLE näppäimillä. Paina VÄLILYÖNTI tai ENTER näppäintä aktivoidaksesi työkalupainikkeen."},
-{name:"Editorin dialogi",legend:"Inside a dialog, press TAB to navigate to the next dialog element, press SHIFT+TAB to move to the previous dialog element, press ENTER to submit the dialog, press ESC to cancel the dialog. When a dialog has multiple tabs, the tab list can be reached either with ALT+F10 or with TAB as part of the dialog tabbing order. With tab list focused, move to the next and previous tab with RIGHT and LEFT ARROW, respectively."},{name:"Editorin oheisvalikko",legend:"Paina ${contextMenu} tai SOVELLUSPAINIKETTA avataksesi oheisvalikon. Liiku seuraavaan valikon vaihtoehtoon TAB tai NUOLI ALAS näppäimillä. Siirry edelliseen vaihtoehtoon SHIFT+TAB tai NUOLI YLÖS näppäimillä. Paina VÄLILYÖNTI tai ENTER valitaksesi valikon kohdan. Avataksesi nykyisen kohdan alivalikon paina VÄLILYÖNTI tai ENTER tai NUOLI OIKEALLE painiketta. Siirtyäksesi takaisin valikon ylemmälle tasolle paina ESC tai NUOLI vasemmalle. Oheisvalikko suljetaan ESC painikkeella."},
-{name:"Editorin listalaatikko",legend:"Listalaatikon sisällä siirry seuraavaan listan kohtaan TAB tai NUOLI ALAS painikkeilla. Siirry edelliseen listan kohtaan SHIFT+TAB tai NUOLI YLÖS painikkeilla. Paina VÄLILYÖNTI tai ENTER valitaksesi listan vaihtoehdon. Paina ESC sulkeaksesi listalaatikon."},{name:"Editorin elementtipolun palkki",legend:"Paina ${elementsPathFocus} siirtyäksesi elementtipolun palkkiin. Siirry seuraavaan elementtipainikkeeseen TAB tai NUOLI OIKEALLE painikkeilla. Siirry aiempaan painikkeeseen SHIFT+TAB tai NUOLI VASEMMALLE painikkeilla. Paina VÄLILYÖNTI tai ENTER valitaksesi elementin editorissa."}]},
-{name:"Komennot",items:[{name:"Peruuta komento",legend:"Paina ${undo}"},{name:"Tee uudelleen komento",legend:"Paina ${redo}"},{name:"Lihavoi komento",legend:"Paina ${bold}"},{name:"Kursivoi komento",legend:"Paina ${italic}"},{name:"Alleviivaa komento",legend:"Paina ${underline}"},{name:"Linkki komento",legend:"Paina ${link}"},{name:"Pienennä työkalupalkki komento",legend:"Paina ${toolbarCollapse}"},{name:"Siirry aiempaan fokustilaan komento",legend:"Paina ${accessPreviousSpace} siiryäksesi lähimpään kursorin edellä olevaan saavuttamattomaan fokustilaan, esimerkiksi: kaksi vierekkäistä HR elementtiä. Toista näppäinyhdistelmää päästäksesi kauempana oleviin fokustiloihin."},
-{name:"Siirry seuraavaan fokustilaan komento",legend:"Paina ${accessPreviousSpace} siiryäksesi lähimpään kursorin jälkeen olevaan saavuttamattomaan fokustilaan, esimerkiksi: kaksi vierekkäistä HR elementtiä. Toista näppäinyhdistelmää päästäksesi kauempana oleviin fokustiloihin."},{name:"Saavutettavuus ohjeet",legend:"Paina ${a11yHelp}"},{name:" Paste as plain text",legend:"Press ${pastetext}",legendEdge:"Press ${pastetext}, followed by ${paste}"}]}],tab:"Tab",pause:"Pause",capslock:"Caps Lock",escape:"Escape",
-pageUp:"Page Up",pageDown:"Page Down",leftArrow:"Left Arrow",upArrow:"Up Arrow",rightArrow:"Right Arrow",downArrow:"Down Arrow",insert:"Insert",leftWindowKey:"Left Windows key",rightWindowKey:"Right Windows key",selectKey:"Select key",numpad0:"Numeronäppäimistö 0",numpad1:"Numeronäppäimistö 1",numpad2:"Numeronäppäimistö 2",numpad3:"Numeronäppäimistö 3",numpad4:"Numeronäppäimistö 4",numpad5:"Numeronäppäimistö 5",numpad6:"Numeronäppäimistö 6",numpad7:"Numeronäppäimistö 7",numpad8:"Numeronäppäimistö 8",
-numpad9:"Numeronäppäimistö 9",multiply:"Multiply",add:"Add",subtract:"Subtract",decimalPoint:"Decimal Point",divide:"Divide",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"Puolipiste",equalSign:"Equal Sign",comma:"Pilkku",dash:"Dash",period:"Piste",forwardSlash:"Forward Slash",graveAccent:"Grave Accent",openBracket:"Open Bracket",backSlash:"Backslash",closeBracket:"Close Bracket",singleQuote:"Single Quote"});
\ No newline at end of file
diff --git a/web/modules/ckeditor/vendor/plugins/a11yhelp/dialogs/lang/fo.js b/web/modules/ckeditor/vendor/plugins/a11yhelp/dialogs/lang/fo.js
deleted file mode 100644
index 46893ab7a57710ba92c5ef01928146ab22b91791..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/plugins/a11yhelp/dialogs/lang/fo.js
+++ /dev/null
@@ -1,11 +0,0 @@
-/*
- Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
- For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
-*/
-CKEDITOR.plugins.setLang("a11yhelp","fo",{title:"Accessibility Instructions",contents:"Help Contents. To close this dialog press ESC.",legend:[{name:"General",items:[{name:"Editor Toolbar",legend:"Press ${toolbarFocus} to navigate to the toolbar. Move to the next and previous toolbar group with TAB and SHIFT+TAB. Move to the next and previous toolbar button with RIGHT ARROW or LEFT ARROW. Press SPACE or ENTER to activate the toolbar button.The focus will be moved back to the editing area upon activating the toolbar button."},
-{name:"Editor Dialog",legend:"Inside a dialog, press TAB to navigate to the next dialog element, press SHIFT+TAB to move to the previous dialog element, press ENTER to submit the dialog, press ESC to cancel the dialog. When a dialog has multiple tabs, the tab list can be reached either with ALT+F10 or with TAB as part of the dialog tabbing order. With tab list focused, move to the next and previous tab with RIGHT and LEFT ARROW, respectively."},{name:"Editor Context Menu",legend:"Press ${contextMenu} or APPLICATION KEY to open context-menu. Then move to next menu option with TAB or DOWN ARROW. Move to previous option with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the menu option. Open sub-menu of current option with SPACE or ENTER or RIGHT ARROW. Go back to parent menu item with ESC or LEFT ARROW. Close context menu with ESC."},
-{name:"Editor List Box",legend:"Inside a list-box, move to next list item with TAB OR DOWN ARROW. Move to previous list item with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the list option. Press ESC to close the list-box."},{name:"Editor Element Path Bar",legend:"Press ${elementsPathFocus} to navigate to the elements path bar. Move to next element button with TAB or RIGHT ARROW. Move to previous button with SHIFT+TAB or LEFT ARROW. Press SPACE or ENTER to select the element in editor."}]},
-{name:"Commands",items:[{name:" Undo command",legend:"Press ${undo}"},{name:" Redo command",legend:"Press ${redo}"},{name:" Bold command",legend:"Press ${bold}"},{name:" Italic command",legend:"Press ${italic}"},{name:" Underline command",legend:"Press ${underline}"},{name:" Link command",legend:"Press ${link}"},{name:" Toolbar Collapse command",legend:"Press ${toolbarCollapse}"},{name:" Access previous focus space command",legend:"Press ${accessPreviousSpace} to access the closest unreachable focus space before the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},
-{name:" Access next focus space command",legend:"Press ${accessNextSpace} to access the closest unreachable focus space after the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},{name:" Accessibility Help",legend:"Press ${a11yHelp}"},{name:" Paste as plain text",legend:"Press ${pastetext}",legendEdge:"Press ${pastetext}, followed by ${paste}"}]}],tab:"Tab",pause:"Pause",capslock:"Caps Lock",escape:"Escape",pageUp:"Page Up",pageDown:"Page Down",
-leftArrow:"Left Arrow",upArrow:"Up Arrow",rightArrow:"Right Arrow",downArrow:"Down Arrow",insert:"Insert",leftWindowKey:"Left Windows key",rightWindowKey:"Right Windows key",selectKey:"Select key",numpad0:"Numpad 0",numpad1:"Numpad 1",numpad2:"Numpad 2",numpad3:"Numpad 3",numpad4:"Numpad 4",numpad5:"Numpad 5",numpad6:"Numpad 6",numpad7:"Numpad 7",numpad8:"Numpad 8",numpad9:"Numpad 9",multiply:"Falda",add:"Pluss",subtract:"Frádráttar",decimalPoint:"Decimal Point",divide:"Býta",f1:"F1",f2:"F2",f3:"F3",
-f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"Semikolon",equalSign:"Javnatekn",comma:"Komma",dash:"Dash",period:"Punktum",forwardSlash:"Forward Slash",graveAccent:"Grave Accent",openBracket:"Open Bracket",backSlash:"Backslash",closeBracket:"Close Bracket",singleQuote:"Single Quote"});
\ No newline at end of file
diff --git a/web/modules/ckeditor/vendor/plugins/a11yhelp/dialogs/lang/fr-ca.js b/web/modules/ckeditor/vendor/plugins/a11yhelp/dialogs/lang/fr-ca.js
deleted file mode 100644
index 50ff25984f786ec49e7571da59fe8e90bc70e9a4..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/plugins/a11yhelp/dialogs/lang/fr-ca.js
+++ /dev/null
@@ -1,11 +0,0 @@
-/*
- Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
- For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
-*/
-CKEDITOR.plugins.setLang("a11yhelp","fr-ca",{title:"Instructions d'accessibilité",contents:"Contenu de l'aide.  Pour fermer cette fenêtre, appuyez sur ESC.",legend:[{name:"Général",items:[{name:"Barre d'outil de l'éditeur",legend:"Appuyer sur ${toolbarFocus} pour accéder à la barre d'outils. Se déplacer vers les groupes suivant ou précédent de la barre d'outil avec les touches TAB et SHIFT+TAB. Se déplacer vers les boutons suivant ou précédent de la barre d'outils avec les touches FLECHE DROITE et FLECHE GAUCHE. Appuyer sur la barre d'espace ou la touche ENTRER pour activer le bouton de barre d'outils."},
-{name:"Dialogue de l'éditeur",legend:"Inside a dialog, press TAB to navigate to the next dialog element, press SHIFT+TAB to move to the previous dialog element, press ENTER to submit the dialog, press ESC to cancel the dialog. When a dialog has multiple tabs, the tab list can be reached either with ALT+F10 or with TAB as part of the dialog tabbing order. With tab list focused, move to the next and previous tab with RIGHT and LEFT ARROW, respectively."},{name:"Menu contextuel de l'éditeur",legend:"Appuyer sur ${contextMenu} ou entrer le RACCOURCI CLAVIER pour ouvrir le menu contextuel. Puis se déplacer vers l'option suivante du menu avec les touches TAB ou FLECHE BAS. Se déplacer vers l'option précédente avec les touches SHIFT+TAB ou FLECHE HAUT. appuyer sur la BARRE D'ESPACE ou la touche ENTREE pour sélectionner l'option du menu. Oovrir le sous-menu de l'option courante avec la BARRE D'ESPACE ou les touches ENTREE ou FLECHE DROITE. Revenir à l'élément de menu parent avec les touches ESC ou FLECHE GAUCHE. Fermer le menu contextuel avec ESC."},
-{name:"Menu déroulant de l'éditeur",legend:"A l'intérieur d'une liste en menu déroulant, se déplacer vers l'élément suivant de la liste avec les touches TAB ou FLECHE BAS. Se déplacer vers l'élément précédent de la liste avec les touches SHIFT+TAB ou FLECHE HAUT. Appuyer sur la BARRE D'ESPACE ou sur ENTREE pour sélectionner l'option dans la liste. Appuyer sur ESC pour fermer le menu déroulant."},{name:"Barre d'emplacement des éléments de l'éditeur",legend:"Appuyer sur ${elementsPathFocus} pour naviguer vers la barre d'emplacement des éléments de léditeur. Se déplacer vers le bouton d'élément suivant avec les touches TAB ou FLECHE DROITE. Se déplacer vers le bouton d'élément précédent avec les touches SHIFT+TAB ou FLECHE GAUCHE. Appuyer sur la BARRE D'ESPACE ou sur ENTREE pour sélectionner l'élément dans l'éditeur."}]},
-{name:"Commandes",items:[{name:"Annuler",legend:"Appuyer sur ${undo}"},{name:"Refaire",legend:"Appuyer sur ${redo}"},{name:"Gras",legend:"Appuyer sur ${bold}"},{name:"Italique",legend:"Appuyer sur ${italic}"},{name:"Souligné",legend:"Appuyer sur ${underline}"},{name:"Lien",legend:"Appuyer sur ${link}"},{name:"Enrouler la barre d'outils",legend:"Appuyer sur ${toolbarCollapse}"},{name:"Accéder à l'objet de focus précédent",legend:"Appuyer ${accessPreviousSpace} pour accéder au prochain espace disponible avant le curseur, par exemple: deux éléments HR adjacents.  Répéter la combinaison pour joindre les éléments d'espaces distantes."},
-{name:"Accéder au prochain objet de focus",legend:"Appuyer ${accessNextSpace} pour accéder au prochain espace disponible après le curseur, par exemple: deux éléments HR adjacents.  Répéter la combinaison pour joindre les éléments d'espaces distantes."},{name:"Aide d'accessibilité",legend:"Appuyer sur ${a11yHelp}"},{name:" Paste as plain text",legend:"Press ${pastetext}",legendEdge:"Press ${pastetext}, followed by ${paste}"}]}],tab:"Tab",pause:"Pause",capslock:"Caps Lock",escape:"Escape",pageUp:"Page Up",
-pageDown:"Page Down",leftArrow:"Left Arrow",upArrow:"Up Arrow",rightArrow:"Right Arrow",downArrow:"Down Arrow",insert:"Insert",leftWindowKey:"Left Windows key",rightWindowKey:"Right Windows key",selectKey:"Select key",numpad0:"Numpad 0",numpad1:"Numpad 1",numpad2:"Numpad 2",numpad3:"Numpad 3",numpad4:"Numpad 4",numpad5:"Numpad 5",numpad6:"Numpad 6",numpad7:"Numpad 7",numpad8:"Numpad 8",numpad9:"Numpad 9",multiply:"Multiply",add:"Add",subtract:"Subtract",decimalPoint:"Decimal Point",divide:"Divide",
-f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"Semicolon",equalSign:"Equal Sign",comma:"Comma",dash:"Dash",period:"Period",forwardSlash:"Forward Slash",graveAccent:"Grave Accent",openBracket:"Open Bracket",backSlash:"Backslash",closeBracket:"Close Bracket",singleQuote:"Single Quote"});
\ No newline at end of file
diff --git a/web/modules/ckeditor/vendor/plugins/a11yhelp/dialogs/lang/fr.js b/web/modules/ckeditor/vendor/plugins/a11yhelp/dialogs/lang/fr.js
deleted file mode 100644
index c13cf511ede80ef6925fe9f939e6f481482c03b4..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/plugins/a11yhelp/dialogs/lang/fr.js
+++ /dev/null
@@ -1,13 +0,0 @@
-/*
- Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
- For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
-*/
-CKEDITOR.plugins.setLang("a11yhelp","fr",{title:"Instructions d'accessibilité",contents:"Contenu de l'aide. Pour fermer cette fenêtre, appuyez sur la touche Échap.",legend:[{name:"Général",items:[{name:"Barre d'outils de l'éditeur",legend:"Appuyer sur ${toolbarFocus} pour accéder à la barre d'outils. Se déplacer vers le groupe suivant ou précédent de la barre d'outils avec les touches Tab et Maj+Tab. Se déplacer vers le bouton suivant ou précédent de la barre d'outils avec les touches Flèche droite et Flèche gauche. Appuyer sur la barre d'espace ou la touche Entrée pour activer le bouton de barre d'outils."},
-{name:"Fenêtre de l'éditeur",legend:"Dans une boîte de dialogue, appuyer sur Tab pour passer à l'élément suivant, appuyer sur Maj+Tab pour passer à l'élément précédent, appuyer sur Entrée pour valider, appuyer sur Échap pour annuler. Quand une boîte de dialogue possède des onglets, la liste peut être atteinte avec Alt+F10 ou avec Tab. Dans la liste des onglets, se déplacer vers le suivant et le précédent avec les touches Flèche droite et Flèche gauche respectivement."},{name:"Menu contextuel de l'éditeur",
-legend:"Appuyer sur ${contextMenu} ou sur la touche Menu pour ouvrir le menu contextuel. Se déplacer ensuite vers l'option suivante du menu avec les touches Tab ou Flèche bas. Se déplacer vers l'option précédente avec les touches Maj+Tab ou Flèche haut. Appuyer sur la barre d'espace ou la touche Entrée pour sélectionner l'option du menu. Appuyer sur la barre d'espace, la touche Entrée ou Flèche droite pour ouvrir le sous-menu de l'option sélectionnée. Revenir à l'élément de menu parent avec la touche Échap ou Flèche gauche. Fermer le menu contextuel avec Échap."},
-{name:"Zone de liste de l'éditeur",legend:"Dans une liste en menu déroulant, se déplacer vers l'élément suivant de la liste avec les touches Tab ou Flèche bas. Se déplacer vers l'élément précédent de la liste avec les touches Maj+Tab ou Flèche haut. Appuyer sur la barre d'espace ou sur Entrée pour sélectionner l'option dans la liste. Appuyer sur Échap pour fermer le menu déroulant."},{name:"Barre du chemin d'éléments de l'éditeur",legend:"Appuyer sur ${elementsPathFocus} pour naviguer vers la barre du fil d'Ariane des éléments. Se déplacer vers le bouton de l'élément suivant avec les touches Tab ou Flèche droite. Se déplacer vers le bouton précédent avec les touches Maj+Tab ou Flèche gauche. Appuyer sur la barre d'espace ou sur Entrée pour sélectionner l'élément dans l'éditeur."}]},
-{name:"Commandes",items:[{name:" Annuler la commande",legend:"Appuyer sur ${undo}"},{name:"Commande restaurer",legend:"Appuyer sur ${redo}"},{name:" Commande gras",legend:"Appuyer sur ${bold}"},{name:" Commande italique",legend:"Appuyer sur ${italic}"},{name:" Commande souligné",legend:"Appuyer sur ${underline}"},{name:" Commande lien",legend:"Appuyer sur ${link}"},{name:" Commande enrouler la barre d'outils",legend:"Appuyer sur ${toolbarCollapse}"},{name:"Commande d'accès à l'élément sélectionnable précédent",
-legend:"Appuyer sur ${accessNextSpace} pour accéder à l'élément sélectionnable inatteignable le plus proche avant le curseur, par exemple : deux lignes horizontales adjacentes. Répéter la combinaison de touches pour atteindre les éléments sélectionnables précédents."},{name:"Commande d'accès à l'élément sélectionnable suivant",legend:"Appuyer sur ${accessNextSpace} pour accéder à l'élément sélectionnable inatteignable le plus proche après le curseur, par exemple : deux lignes horizontales adjacentes. Répéter la combinaison de touches pour atteindre les éléments sélectionnables suivants."},
-{name:" Aide sur l'accessibilité",legend:"Appuyer sur ${a11yHelp}"},{name:"Coller comme texte sans mise en forme",legend:"Appuyer sur ${pastetext}",legendEdge:"Enfoncez ${pastetext}, suivi par ${paste}"}]}],tab:"Tabulation",pause:"Pause",capslock:"Verr. Maj.",escape:"Échap",pageUp:"Page supérieure",pageDown:"Page suivante",leftArrow:"Flèche gauche",upArrow:"Flèche haut",rightArrow:"Flèche droite",downArrow:"Flèche basse",insert:"Inser",leftWindowKey:"Touche Windows gauche",rightWindowKey:"Touche Windows droite",
-selectKey:"Touche Sélectionner",numpad0:"0 du pavé numérique",numpad1:"1 du pavé numérique",numpad2:"2 du pavé numérique",numpad3:"3 du pavé numérique",numpad4:"4 du pavé numérique",numpad5:"5 du pavé numérique",numpad6:"6 du pavé numérique",numpad7:"7 du pavé numérique",numpad8:"Pavé numérique 8",numpad9:"9 du pavé numérique",multiply:"Multiplier",add:"Plus",subtract:"Moins",decimalPoint:"Point décimal",divide:"Diviser",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",
-f11:"F11",f12:"F12",numLock:"Verr. Num.",scrollLock:"Arrêt défil.",semiColon:"Point-virgule",equalSign:"Signe égal",comma:"Virgule",dash:"Tiret",period:"Point",forwardSlash:"Barre oblique",graveAccent:"Accent grave",openBracket:"Parenthèse ouvrante",backSlash:"Barre oblique inverse",closeBracket:"Parenthèse fermante",singleQuote:"Apostrophe"});
\ No newline at end of file
diff --git a/web/modules/ckeditor/vendor/plugins/a11yhelp/dialogs/lang/gl.js b/web/modules/ckeditor/vendor/plugins/a11yhelp/dialogs/lang/gl.js
deleted file mode 100644
index a7a952a648efbed2f53d4318f8dfee9e198405b7..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/plugins/a11yhelp/dialogs/lang/gl.js
+++ /dev/null
@@ -1,12 +0,0 @@
-/*
- Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
- For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
-*/
-CKEDITOR.plugins.setLang("a11yhelp","gl",{title:"Instrucións de accesibilidade",contents:"Axuda. Para pechar este diálogo prema ESC.",legend:[{name:"Xeral",items:[{name:"Barra de ferramentas do editor",legend:"Prema ${toolbarFocus} para navegar pola barra de ferramentas. Para moverse polos distintos grupos de ferramentas use as teclas TAB e MAIÚS+TAB. Para moverse polas distintas ferramentas use FRECHA DEREITA ou FRECHA ESQUERDA. Prema ESPAZO ou INTRO para activar o botón da barra de ferramentas."},
-{name:"Editor de diálogo",legend:"Dentro do diálogo, prema TAB para navegar cara os seguintes elementos de diálogo, prema MAIÚS+TAB para moverse cara os anteriores elementos de diálogo, prema INTRO para enviar o diálogo, prema ESC para cancelar o diálogo. Cando o diálogo ten múltiples lapelas, a lista de lapelas pode cinguirse con ALT+F10 ou con TAB como parte da orde de lapelas do diálogo. Coa lapela en foco, pode moverse cara a seguinte ou a anterior lapela coas FRECHAS ESQUERDA e DEREICHA respectivamente."},
-{name:"Editor do menú contextual",legend:"Prema ${contextMenu} ou a TECLA MENÚ para abrir o menú contextual. A seguir móvase á seguinte opción do menú con TAB ou FRECHA ABAIXO. Móvase á opción anterior con MAIÚS + TAB ou FRECHA ARRIBA. Prema ESPAZO ou INTRO para seleccionar a opción do menú. Abra o submenú da opción actual con ESPAZO ou INTRO ou FRECHA DEREITA. Regrese ao elemento principal do menú con ESC ou FRECHA ESQUERDA. Peche o menú contextual con ESC."},{name:"Lista do editor",legend:"Dentro dunha lista, móvase ao seguinte elemento da lista con TAB ou FRECHA ABAIXO. Móvase ao elemento anterior da lista con MAIÚS+TAB ou FRECHA ARRIBA. Prema ESPAZO ou INTRO para escoller a opción da lista. Prema ESC para pechar a lista."},
-{name:"Barra da ruta ao elemento no editor",legend:"Prema ${elementsPathFocus} para navegar ata os elementos da barra de ruta. Móvase ao seguinte elemento botón con TAB ou FRECHA DEREITA. Móvase ao botón anterior con MAIÚS+TAB ou FRECHA ESQUERDA. Prema ESPAZO ou INTRO para seleccionar o elemento no editor."}]},{name:"Ordes",items:[{name:"Orde «desfacer»",legend:"Prema ${undo}"},{name:"Orde «refacer»",legend:"Prema ${redo}"},{name:"Orde «negra»",legend:"Prema ${bold}"},{name:"Orde «cursiva»",legend:"Prema ${italic}"},
-{name:"Orde «subliñar»",legend:"Prema ${underline}"},{name:"Orde «ligazón»",legend:"Prema ${link}"},{name:"Orde «contraer a barra de ferramentas»",legend:"Prema ${toolbarCollapse}"},{name:"Orde «acceder ao anterior espazo en foco»",legend:"Prema ${accessPreviousSpace} para acceder ao espazo máis próximo de foco inalcanzábel anterior ao cursor, por exemplo: dous elementos HR adxacentes. Repita a combinación de teclas para chegar a espazos de foco distantes."},{name:"Orde «acceder ao seguinte espazo en foco»",
-legend:"Prema ${accessNextSpace} para acceder ao espazo máis próximo de foco inalcanzábel posterior ao cursor, por exemplo: dous elementos HR adxacentes. Repita a combinación de teclas para chegar a espazos de foco distantes."},{name:"Axuda da accesibilidade",legend:"Prema ${a11yHelp}"},{name:"Pegar como texto simple",legend:"Prema ${pastetext}",legendEdge:"Prema ${pastetext}, seguido de ${paste}"}]}],tab:"Tabulador",pause:"Pausa",capslock:"Bloq. Maiús",escape:"Escape",pageUp:"Páxina arriba",pageDown:"Páxina abaixo",
-leftArrow:"Frecha esquerda",upArrow:"Frecha arriba",rightArrow:"Frecha dereita",downArrow:"Frecha abaixo",insert:"Inserir",leftWindowKey:"Tecla Windows esquerda",rightWindowKey:"Tecla Windows dereita",selectKey:"Escolla a tecla",numpad0:"Tec. numérico 0",numpad1:"Tec. numérico 1",numpad2:"Tec. numérico 2",numpad3:"Tec. numérico 3",numpad4:"Tec. numérico 4",numpad5:"Tec. numérico 5",numpad6:"Tec. numérico 6",numpad7:"Tec. numérico 7",numpad8:"Tec. numérico 8",numpad9:"Tec. numérico 9",multiply:"Multiplicar",
-add:"Sumar",subtract:"Restar",decimalPoint:"Punto decimal",divide:"Dividir",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Bloq. num.",scrollLock:"Bloq. despraz.",semiColon:"Punto e coma",equalSign:"Signo igual",comma:"Coma",dash:"Guión",period:"Punto",forwardSlash:"Barra inclinada",graveAccent:"Acento grave",openBracket:"Abrir corchete",backSlash:"Barra invertida",closeBracket:"Pechar corchete",singleQuote:"Comiña simple"});
\ No newline at end of file
diff --git a/web/modules/ckeditor/vendor/plugins/a11yhelp/dialogs/lang/gu.js b/web/modules/ckeditor/vendor/plugins/a11yhelp/dialogs/lang/gu.js
deleted file mode 100644
index 9cbedd002a51ad70acea5f2c54c52cbb97953b52..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/plugins/a11yhelp/dialogs/lang/gu.js
+++ /dev/null
@@ -1,11 +0,0 @@
-/*
- Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
- For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
-*/
-CKEDITOR.plugins.setLang("a11yhelp","gu",{title:"એક્ક્ષેબિલિટી ની વિગતો",contents:"હેલ્પ. આ બંધ કરવા ESC દબાવો.",legend:[{name:"જનરલ",items:[{name:"એડિટર ટૂલબાર",legend:"Press ${toolbarFocus} to navigate to the toolbar. Move to the next and previous toolbar group with TAB and SHIFT+TAB. Move to the next and previous toolbar button with RIGHT ARROW or LEFT ARROW. Press SPACE or ENTER to activate the toolbar button.The focus will be moved back to the editing area upon activating the toolbar button."},
-{name:"એડિટર ડાયલોગ",legend:"Inside a dialog, press TAB to navigate to the next dialog element, press SHIFT+TAB to move to the previous dialog element, press ENTER to submit the dialog, press ESC to cancel the dialog. When a dialog has multiple tabs, the tab list can be reached either with ALT+F10 or with TAB as part of the dialog tabbing order. With tab list focused, move to the next and previous tab with RIGHT and LEFT ARROW, respectively."},{name:"Editor Context Menu",legend:"Press ${contextMenu} or APPLICATION KEY to open context-menu. Then move to next menu option with TAB or DOWN ARROW. Move to previous option with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the menu option. Open sub-menu of current option with SPACE or ENTER or RIGHT ARROW. Go back to parent menu item with ESC or LEFT ARROW. Close context menu with ESC."},
-{name:"Editor List Box",legend:"Inside a list-box, move to next list item with TAB OR DOWN ARROW. Move to previous list item with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the list option. Press ESC to close the list-box."},{name:"Editor Element Path Bar",legend:"Press ${elementsPathFocus} to navigate to the elements path bar. Move to next element button with TAB or RIGHT ARROW. Move to previous button with SHIFT+TAB or LEFT ARROW. Press SPACE or ENTER to select the element in editor."}]},
-{name:"કમાંડસ",items:[{name:"અન્ડું કમાંડ",legend:"$ દબાવો {undo}"},{name:"ફરી કરો કમાંડ",legend:"$ દબાવો {redo}"},{name:"બોલ્દનો કમાંડ",legend:"$ દબાવો {bold}"},{name:" Italic command",legend:"Press ${italic}"},{name:" Underline command",legend:"Press ${underline}"},{name:" Link command",legend:"Press ${link}"},{name:" Toolbar Collapse command",legend:"Press ${toolbarCollapse}"},{name:" Access previous focus space command",legend:"Press ${accessPreviousSpace} to access the closest unreachable focus space before the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},
-{name:" Access next focus space command",legend:"Press ${accessNextSpace} to access the closest unreachable focus space after the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},{name:" Accessibility Help",legend:"Press ${a11yHelp}"},{name:" Paste as plain text",legend:"Press ${pastetext}",legendEdge:"Press ${pastetext}, followed by ${paste}"}]}],tab:"Tab",pause:"Pause",capslock:"Caps Lock",escape:"Escape",pageUp:"Page Up",pageDown:"Page Down",
-leftArrow:"Left Arrow",upArrow:"Up Arrow",rightArrow:"Right Arrow",downArrow:"Down Arrow",insert:"Insert",leftWindowKey:"Left Windows key",rightWindowKey:"Right Windows key",selectKey:"Select key",numpad0:"Numpad 0",numpad1:"Numpad 1",numpad2:"Numpad 2",numpad3:"Numpad 3",numpad4:"Numpad 4",numpad5:"Numpad 5",numpad6:"Numpad 6",numpad7:"Numpad 7",numpad8:"Numpad 8",numpad9:"Numpad 9",multiply:"Multiply",add:"Add",subtract:"Subtract",decimalPoint:"Decimal Point",divide:"Divide",f1:"F1",f2:"F2",f3:"F3",
-f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"Semicolon",equalSign:"Equal Sign",comma:"Comma",dash:"Dash",period:"Period",forwardSlash:"Forward Slash",graveAccent:"Grave Accent",openBracket:"Open Bracket",backSlash:"Backslash",closeBracket:"Close Bracket",singleQuote:"Single Quote"});
\ No newline at end of file
diff --git a/web/modules/ckeditor/vendor/plugins/a11yhelp/dialogs/lang/he.js b/web/modules/ckeditor/vendor/plugins/a11yhelp/dialogs/lang/he.js
deleted file mode 100644
index 106bf327eb4cbf4d172ee4bf03c50e09efd1d983..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/plugins/a11yhelp/dialogs/lang/he.js
+++ /dev/null
@@ -1,11 +0,0 @@
-/*
- Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
- For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
-*/
-CKEDITOR.plugins.setLang("a11yhelp","he",{title:"הוראות נגישות",contents:"הוראות נגישות. לסגירה לחץ אסקייפ (ESC).",legend:[{name:"כללי",items:[{name:"סרגל הכלים",legend:"לחץ על ${toolbarFocus} כדי לנווט לסרגל הכלים. עבור לכפתור הבא עם מקש הטאב (TAB) או חץ שמאלי. עבור לכפתור הקודם עם מקש השיפט (SHIFT) + טאב (TAB) או חץ ימני. לחץ רווח או אנטר (ENTER) כדי להפעיל את הכפתור הנבחר."},{name:"דיאלוגים (חלונות תשאול)",legend:"Inside a dialog, press TAB to navigate to the next dialog element, press SHIFT+TAB to move to the previous dialog element, press ENTER to submit the dialog, press ESC to cancel the dialog. When a dialog has multiple tabs, the tab list can be reached either with ALT+F10 or with TAB as part of the dialog tabbing order. With tab list focused, move to the next and previous tab with RIGHT and LEFT ARROW, respectively."},
-{name:"תפריט ההקשר (Context Menu)",legend:"לחץ ${contextMenu} או APPLICATION KEYכדי לפתוח את תפריט ההקשר. עבור לאפשרות הבאה עם טאב (TAB) או חץ למטה. עבור לאפשרות הקודמת עם שיפט (SHIFT) + טאב (TAB) או חץ למעלה. לחץ רווח או אנטר (ENTER) כדי לבחור את האפשרות. פתח את תת התפריט (Sub-menu) של האפשרות הנוכחית עם רווח או אנטר (ENTER) או חץ שמאלי. חזור לתפריט האב עם אסקייפ (ESC) או חץ שמאלי. סגור את תפריט ההקשר עם אסקייפ (ESC)."},{name:"תפריטים צפים (List boxes)",legend:"Inside a list-box, move to next list item with TAB OR DOWN ARROW. Move to previous list item with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the list option. Press ESC to close the list-box."},
-{name:"עץ אלמנטים (Elements Path)",legend:"לחץ ${elementsPathFocus} כדי לנווט לעץ האלמנטים. עבור לפריט הבא עם טאב (TAB) או חץ ימני. עבור לפריט הקודם עם שיפט (SHIFT) + טאב (TAB) או חץ שמאלי. לחץ רווח או אנטר (ENTER) כדי לבחור את האלמנט בעורך."}]},{name:"פקודות",items:[{name:" ביטול צעד אחרון",legend:"לחץ ${undo}"},{name:" חזרה על צעד אחרון",legend:"לחץ ${redo}"},{name:" הדגשה",legend:"לחץ ${bold}"},{name:" הטייה",legend:"לחץ ${italic}"},{name:" הוספת קו תחתון",legend:"לחץ ${underline}"},{name:" הוספת לינק",
-legend:"לחץ ${link}"},{name:" כיווץ סרגל הכלים",legend:"לחץ ${toolbarCollapse}"},{name:"גישה למיקום המיקוד הקודם",legend:"לחץ ${accessPreviousSpace} כדי לגשת למיקום המיקוד הלא-נגיש הקרוב לפני הסמן, למשל בין שני אלמנטים סמוכים מסוג HR. חזור על צירוף מקשים זה כדי להגיע למקומות מיקוד רחוקים יותר."},{name:"גישה למיקום המיקוד הבא",legend:"לחץ ${accessNextSpace} כדי לגשת למיקום המיקוד הלא-נגיש הקרוב אחרי הסמן, למשל בין שני אלמנטים סמוכים מסוג HR. חזור על צירוף מקשים זה כדי להגיע למקומות מיקוד רחוקים יותר."},
-{name:" הוראות נגישות",legend:"לחץ ${a11yHelp}"},{name:" Paste as plain text",legend:"Press ${pastetext}",legendEdge:"Press ${pastetext}, followed by ${paste}"}]}],tab:"Tab",pause:"Pause",capslock:"Caps Lock",escape:"Escape",pageUp:"Page Up",pageDown:"Page Down",leftArrow:"חץ שמאלה",upArrow:"חץ למעלה",rightArrow:"חץ ימינה",downArrow:"חץ למטה",insert:"הכנס",leftWindowKey:"Left Windows key",rightWindowKey:"Right Windows key",selectKey:"בחר מקש",numpad0:"Numpad 0",numpad1:"Numpad 1",numpad2:"Numpad 2",
-numpad3:"Numpad 3",numpad4:"Numpad 4",numpad5:"Numpad 5",numpad6:"Numpad 6",numpad7:"Numpad 7",numpad8:"Numpad 8",numpad9:"Numpad 9",multiply:"Multiply",add:"הוסף",subtract:"Subtract",decimalPoint:"Decimal Point",divide:"Divide",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"Semicolon",equalSign:"Equal Sign",comma:"Comma",dash:"Dash",period:"Period",forwardSlash:"סלאש",graveAccent:"Grave Accent",
-openBracket:"Open Bracket",backSlash:"סלאש הפוך",closeBracket:"Close Bracket",singleQuote:"ציטוט יחיד"});
\ No newline at end of file
diff --git a/web/modules/ckeditor/vendor/plugins/a11yhelp/dialogs/lang/hi.js b/web/modules/ckeditor/vendor/plugins/a11yhelp/dialogs/lang/hi.js
deleted file mode 100644
index b512ec442c96b1be1dbcc24244bf7eb6b433a36e..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/plugins/a11yhelp/dialogs/lang/hi.js
+++ /dev/null
@@ -1,11 +0,0 @@
-/*
- Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
- For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
-*/
-CKEDITOR.plugins.setLang("a11yhelp","hi",{title:"Accessibility Instructions",contents:"Help Contents. To close this dialog press ESC.",legend:[{name:"सामान्य",items:[{name:"Editor Toolbar",legend:"Press ${toolbarFocus} to navigate to the toolbar. Move to the next and previous toolbar group with TAB and SHIFT+TAB. Move to the next and previous toolbar button with RIGHT ARROW or LEFT ARROW. Press SPACE or ENTER to activate the toolbar button.The focus will be moved back to the editing area upon activating the toolbar button."},
-{name:"Editor Dialog",legend:"Inside a dialog, press TAB to navigate to the next dialog element, press SHIFT+TAB to move to the previous dialog element, press ENTER to submit the dialog, press ESC to cancel the dialog. When a dialog has multiple tabs, the tab list can be reached either with ALT+F10 or with TAB as part of the dialog tabbing order. With tab list focused, move to the next and previous tab with RIGHT and LEFT ARROW, respectively."},{name:"Editor Context Menu",legend:"Press ${contextMenu} or APPLICATION KEY to open context-menu. Then move to next menu option with TAB or DOWN ARROW. Move to previous option with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the menu option. Open sub-menu of current option with SPACE or ENTER or RIGHT ARROW. Go back to parent menu item with ESC or LEFT ARROW. Close context menu with ESC."},
-{name:"Editor List Box",legend:"Inside a list-box, move to next list item with TAB OR DOWN ARROW. Move to previous list item with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the list option. Press ESC to close the list-box."},{name:"Editor Element Path Bar",legend:"Press ${elementsPathFocus} to navigate to the elements path bar. Move to next element button with TAB or RIGHT ARROW. Move to previous button with SHIFT+TAB or LEFT ARROW. Press SPACE or ENTER to select the element in editor."}]},
-{name:"Commands",items:[{name:" Undo command",legend:"Press ${undo}"},{name:" Redo command",legend:"Press ${redo}"},{name:" Bold command",legend:"Press ${bold}"},{name:" Italic command",legend:"Press ${italic}"},{name:" Underline command",legend:"Press ${underline}"},{name:" Link command",legend:"Press ${link}"},{name:" Toolbar Collapse command",legend:"Press ${toolbarCollapse}"},{name:" Access previous focus space command",legend:"Press ${accessPreviousSpace} to access the closest unreachable focus space before the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},
-{name:" Access next focus space command",legend:"Press ${accessNextSpace} to access the closest unreachable focus space after the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},{name:" Accessibility Help",legend:"Press ${a11yHelp}"},{name:" Paste as plain text",legend:"Press ${pastetext}",legendEdge:"Press ${pastetext}, followed by ${paste}"}]}],tab:"Tab",pause:"Pause",capslock:"Caps Lock",escape:"Escape",pageUp:"Page Up",pageDown:"Page Down",
-leftArrow:"Left Arrow",upArrow:"Up Arrow",rightArrow:"Right Arrow",downArrow:"Down Arrow",insert:"Insert",leftWindowKey:"Left Windows key",rightWindowKey:"Right Windows key",selectKey:"Select key",numpad0:"Numpad 0",numpad1:"Numpad 1",numpad2:"Numpad 2",numpad3:"Numpad 3",numpad4:"Numpad 4",numpad5:"Numpad 5",numpad6:"Numpad 6",numpad7:"Numpad 7",numpad8:"Numpad 8",numpad9:"Numpad 9",multiply:"Multiply",add:"Add",subtract:"Subtract",decimalPoint:"Decimal Point",divide:"Divide",f1:"F1",f2:"F2",f3:"F3",
-f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"Semicolon",equalSign:"Equal Sign",comma:"Comma",dash:"Dash",period:"Period",forwardSlash:"Forward Slash",graveAccent:"Grave Accent",openBracket:"Open Bracket",backSlash:"Backslash",closeBracket:"Close Bracket",singleQuote:"Single Quote"});
\ No newline at end of file
diff --git a/web/modules/ckeditor/vendor/plugins/a11yhelp/dialogs/lang/hr.js b/web/modules/ckeditor/vendor/plugins/a11yhelp/dialogs/lang/hr.js
deleted file mode 100644
index 1af96cd451021f7d42a6d5c839d6d986810b6e31..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/plugins/a11yhelp/dialogs/lang/hr.js
+++ /dev/null
@@ -1,11 +0,0 @@
-/*
- Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
- For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
-*/
-CKEDITOR.plugins.setLang("a11yhelp","hr",{title:"Upute dostupnosti",contents:"Sadržaj pomoći. Za zatvaranje pritisnite ESC.",legend:[{name:"Općenito",items:[{name:"Alatna traka",legend:"Pritisni ${toolbarFocus} za navigaciju do alatne trake. Pomicanje do prethodne ili sljedeće alatne grupe vrši se pomoću SHIFT+TAB i TAB. Pomicanje do prethodnog ili sljedećeg gumba u alatnoj traci vrši se pomoću lijeve i desne strelice kursora. Pritisnite SPACE ili ENTER za aktivaciju alatne trake."},{name:"Dijalog",
-legend:"Unutar dijaloga, pritisnite TAB kako bi navigirali do sljedećeg elementa dijaloga, pritisnite SHIFT+TAB kako bi se pomaknuli do prethodnog elementa, pritisnite ENTER kako bi poslali dijalog, pritisnite ESC za gašenje dijaloga. Kada dijalog ima više kartica, listi kartica se može pristupiti pomoću ALT+F10 ili sa TAB. Kada je fokusirana lista kartica, pomaknite se naprijed ili nazad pomoću strelica LIJEVO ili DESNO."},{name:"Kontekstni izbornik",legend:"Pritisnite ${contextMenu} ili APPLICATION tipku za otvaranje kontekstnog izbornika. Pomicanje se vrši TAB ili strelicom kursora prema dolje ili SHIFT+TAB ili strelica kursora prema gore. SPACE ili ENTER odabiru opciju izbornika. Otvorite podizbornik trenutne opcije sa  SPACE, ENTER ili desna strelica kursora. Povratak na prethodni izbornik vrši se sa ESC ili lijevom strelicom kursora. Zatvaranje se vrši pritiskom na tipku ESC."},
-{name:"Lista",legend:"Unutar list-boxa, pomicanje na sljedeću stavku vrši se sa TAB ili strelica kursora prema dolje. Na prethodnu sa SHIFT+TAB ili strelica prema gore. Pritiskom na SPACE ili ENTER odabire se stavka ili ESC za zatvaranje."},{name:"Traka putanje elemenata",legend:"Pritisnite ${elementsPathFocus} za navigaciju po putanji elemenata. Pritisnite TAB ili desnu strelicu kursora za pomicanje na sljedeći element ili SHIFT+TAB ili lijeva strelica kursora za pomicanje na prethodni element. Pritiskom na SPACE ili ENTER vrši se odabir elementa."}]},
-{name:"Naredbe",items:[{name:"Vrati naredbu",legend:"Pritisni ${undo}"},{name:"Ponovi naredbu",legend:"Pritisni ${redo}"},{name:"Bold naredba",legend:"Pritisni ${bold}"},{name:"Italic naredba",legend:"Pritisni ${italic}"},{name:"Underline naredba",legend:"Pritisni ${underline}"},{name:"Link naredba",legend:"Pritisni ${link}"},{name:"Smanji alatnu traku naredba",legend:"Pritisni ${toolbarCollapse}"},{name:"Naredba za pristupi prethodnom prostoru fokusa",legend:"Pritisni ${accessPreviousSpace} za pristup najbližem nedostupnom razmaku prije kursora, npr.: dva spojena HR elementa. Ponovnim pritiskom dohvatiti će se sljedeći nedostupni razmak."},
-{name:"Naredba za pristup sljedećem prostoru fokusa",legend:"Pritisni ${accessNextSpace} za pristup najbližem nedostupnom razmaku nakon kursora, npr.: dva spojena HR elementa. Ponovnim pritiskom dohvatiti će se sljedeći nedostupni razmak."},{name:"Pomoć za dostupnost",legend:"Pritisni ${a11yHelp}"},{name:"Zalijepi kao čisti tekst",legend:"Pritisnite ${pastetext}",legendEdge:"Pritisnite ${pastetext}, zatim ${paste}"}]}],tab:"Tab",pause:"Pause",capslock:"Caps Lock",escape:"Escape",pageUp:"Page Up",
-pageDown:"Page Down",leftArrow:"Lijev strelica",upArrow:"Strelica gore",rightArrow:"Desna strelica",downArrow:"Strelica dolje",insert:"Insert",leftWindowKey:"Lijeva Windows tipka",rightWindowKey:"Desna Windows tipka",selectKey:"Tipka Select",numpad0:"Numpad 0",numpad1:"Numpad 1",numpad2:"Numpad 2",numpad3:"Numpad 3",numpad4:"Numpad 4",numpad5:"Numpad 5",numpad6:"Numpad 6",numpad7:"Numpad 7",numpad8:"umpad 8",numpad9:"Numpad 9",multiply:"Množenje",add:"Zbrajanje",subtract:"Oduzimanje",decimalPoint:"Decimalna točka",
-divide:"Dijeljenje",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"Točka zarez",equalSign:"Jednako",comma:"Zarez",dash:"Crtica",period:"Točka",forwardSlash:"Kosa crta",graveAccent:"Akcent",openBracket:"Otvorena uglata zagrada",backSlash:"Obrnuta kosa crta",closeBracket:"Zatvorena uglata zagrada",singleQuote:"Jednostruki navodnik"});
\ No newline at end of file
diff --git a/web/modules/ckeditor/vendor/plugins/a11yhelp/dialogs/lang/hu.js b/web/modules/ckeditor/vendor/plugins/a11yhelp/dialogs/lang/hu.js
deleted file mode 100644
index d0a5ebf149d9836c31e48e0b966d2406f6ca017f..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/plugins/a11yhelp/dialogs/lang/hu.js
+++ /dev/null
@@ -1,12 +0,0 @@
-/*
- Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
- For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
-*/
-CKEDITOR.plugins.setLang("a11yhelp","hu",{title:"Kisegítő utasítások",contents:"Súgó tartalmak. A párbeszédablak bezárásához nyomjon ESC-et.",legend:[{name:"Általános",items:[{name:"Szerkesztő Eszköztár",legend:"Nyomjon ${toolbarFocus} hogy kijelölje az eszköztárat. A következő és előző eszköztár csoporthoz a TAB és SHIFT+TAB-al juthat el. A következő és előző eszköztár gombhoz a BAL NYÍL vagy JOBB NYÍL gombbal juthat el. Nyomjon SPACE-t vagy ENTER-t hogy aktiválja az eszköztár gombot."},{name:"Szerkesző párbeszéd ablak",
-legend:"Párbeszédablakban nyomjon TAB-ot a következő párbeszédmezőhöz ugráshoz, nyomjon SHIFT + TAB-ot az előző mezőhöz ugráshoz, nyomjon ENTER-t a párbeszédablak elfogadásához, nyomjon ESC-et a párbeszédablak elvetéséhez. Azokhoz a párbeszédablakokhoz, amik több fület tartalmaznak, nyomjon ALT + F10-et vagy TAB-ot hogy a fülekre ugorjon. Ezután a TAB-al vagy a JOBB NYÍLLAL a következő fülre ugorhat."},{name:"Szerkesztő helyi menü",legend:"Nyomjon ${contextMenu}-t vagy ALKALMAZÁS BILLENTYŰT a helyi menü megnyitásához. Ezután a következő menüpontra léphet a TAB vagy LEFELÉ NYÍLLAL. Az előző opciót a SHIFT+TAB vagy FELFELÉ NYÍLLAL érheti el. Nyomjon SPACE-t vagy ENTER-t a menüpont kiválasztásához. A jelenlegi menüpont almenüjének megnyitásához nyomjon SPACE-t vagy ENTER-t, vagy JOBB NYILAT. A főmenühöz való visszatéréshez nyomjon ESC-et vagy BAL NYILAT. A helyi menü bezárása az ESC billentyűvel lehetséges."},
-{name:"Szerkesztő lista",legend:"A listán belül a következő elemre a TAB vagy LEFELÉ NYÍLLAL mozoghat. Az előző elem kiválasztásához nyomjon SHIFT+TAB-ot vagy FELFELÉ NYILAT. Nyomjon SPACE-t vagy ENTER-t az elem kiválasztásához. Az ESC billentyű megnyomásával bezárhatja a listát."},{name:"Szerkesztő elem utak sáv",legend:"Nyomj ${elementsPathFocus} hogy kijelöld a elemek út sávját. A következő elem gombhoz a TAB-al vagy a JOBB NYÍLLAL juthatsz el. Az előző gombhoz a SHIFT+TAB vagy BAL NYÍLLAL mehetsz. A SPACE vagy ENTER billentyűvel kiválaszthatod az elemet a szerkesztőben."}]},
-{name:"Parancsok",items:[{name:"Parancs visszavonása",legend:"Nyomj ${undo}"},{name:"Parancs megismétlése",legend:"Nyomjon ${redo}"},{name:"Félkövér parancs",legend:"Nyomjon ${bold}"},{name:"Dőlt parancs",legend:"Nyomjon ${italic}"},{name:"Aláhúzott parancs",legend:"Nyomjon ${underline}"},{name:"Link parancs",legend:"Nyomjon ${link}"},{name:"Szerkesztősáv összecsukása parancs",legend:"Nyomjon ${toolbarCollapse}"},{name:"Hozzáférés az előző fókusz helyhez parancs",legend:"Nyomj ${accessNextSpace} hogy hozzáférj a legközelebbi elérhetetlen fókusz helyhez a hiányjel előtt, például: két szomszédos HR elemhez. Ismételd meg a billentyűkombinációt hogy megtaláld a távolabbi fókusz helyeket."},
-{name:"Hozzáférés a következő fókusz helyhez parancs",legend:"Nyomj ${accessNextSpace} hogy hozzáférj a legközelebbi elérhetetlen fókusz helyhez a hiányjel után, például: két szomszédos HR elemhez. Ismételd meg a billentyűkombinációt hogy megtaláld a távolabbi fókusz helyeket."},{name:"Kisegítő súgó",legend:"Nyomjon ${a11yHelp}"},{name:"Beillesztés egyszerű szövegként",legend:"Nyomja meg: ${pastetext}",legendEdge:"Nyomjon ${pastetext}-t, majd ${paste}-t"}]}],tab:"Tab",pause:"Pause",capslock:"Caps Lock",
-escape:"Escape",pageUp:"Page Up",pageDown:"Page Down",leftArrow:"balra nyíl",upArrow:"felfelé nyíl",rightArrow:"jobbra nyíl",downArrow:"lefelé nyíl",insert:"Insert",leftWindowKey:"bal Windows-billentyű",rightWindowKey:"jobb Windows-billentyű",selectKey:"Billentyű választása",numpad0:"Számbillentyűk 0",numpad1:"Számbillentyűk 1",numpad2:"Számbillentyűk 2",numpad3:"Számbillentyűk 3",numpad4:"Számbillentyűk 4",numpad5:"Számbillentyűk 5",numpad6:"Számbillentyűk 6",numpad7:"Számbillentyűk 7",numpad8:"Számbillentyűk 8",
-numpad9:"Számbillentyűk 9",multiply:"Szorzás",add:"Hozzáadás",subtract:"Kivonás",decimalPoint:"Tizedespont",divide:"Osztás",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"Pontosvessző",equalSign:"Egyenlőségjel",comma:"Vessző",dash:"Kötőjel",period:"Pont",forwardSlash:"Perjel",graveAccent:"Visszafelé dőlő ékezet",openBracket:"Nyitó szögletes zárójel",backSlash:"fordított perjel",closeBracket:"Záró szögletes zárójel",
-singleQuote:"szimpla idézőjel"});
\ No newline at end of file
diff --git a/web/modules/ckeditor/vendor/plugins/a11yhelp/dialogs/lang/id.js b/web/modules/ckeditor/vendor/plugins/a11yhelp/dialogs/lang/id.js
deleted file mode 100644
index ffc3b8f599029433dc9643667a3881f0ed074a3e..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/plugins/a11yhelp/dialogs/lang/id.js
+++ /dev/null
@@ -1,11 +0,0 @@
-/*
- Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
- For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
-*/
-CKEDITOR.plugins.setLang("a11yhelp","id",{title:"Instruksi Accessibility",contents:"Bantuan. Tekan ESC untuk menutup dialog ini.",legend:[{name:"Umum",items:[{name:"Toolbar Editor",legend:"Tekan ${toolbarFocus} untuk berpindah ke toolbar. Untuk berpindah ke group toolbar selanjutnya dan sebelumnya gunakan TAB dan SHIFT+TAB. Untuk berpindah ke tombol toolbar selanjutnya dan sebelumnya gunakan RIGHT ARROW atau LEFT ARROW. Tekan SPASI atau ENTER untuk mengaktifkan tombol toolbar."},{name:"Dialog Editor",
-legend:"Pada jendela dialog, tekan TAB untuk berpindah pada elemen dialog selanjutnya, tekan SHIFT+TAB untuk berpindah pada elemen dialog sebelumnya, tekan ENTER untuk submit dialog, tekan ESC untuk membatalkan dialog. Pada dialog dengan multi tab, daftar tab dapat diakses dengan ALT+F10 ataupun dengan tombol TAB sesuai urutan tab pada dialog. Jika daftar tab aktif terpilih, untuk berpindah tab dapat menggunakan RIGHT dan LEFT ARROW."},{name:"Context Menu Editor",legend:"Press ${contextMenu} or APPLICATION KEY to open context-menu. Then move to next menu option with TAB or DOWN ARROW. Move to previous option with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the menu option. Open sub-menu of current option with SPACE or ENTER or RIGHT ARROW. Go back to parent menu item with ESC or LEFT ARROW. Close context menu with ESC."},
-{name:"List Box Editor",legend:"Inside a list-box, move to next list item with TAB OR DOWN ARROW. Move to previous list item with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the list option. Press ESC to close the list-box."},{name:"Editor Element Path Bar",legend:"Press ${elementsPathFocus} to navigate to the elements path bar. Move to next element button with TAB or RIGHT ARROW. Move to previous button with SHIFT+TAB or LEFT ARROW. Press SPACE or ENTER to select the element in editor."}]},
-{name:"Commands",items:[{name:" Undo command",legend:"Press ${undo}"},{name:" Redo command",legend:"Press ${redo}"},{name:" Bold command",legend:"Press ${bold}"},{name:" Italic command",legend:"Press ${italic}"},{name:" Underline command",legend:"Press ${underline}"},{name:" Link command",legend:"Press ${link}"},{name:" Toolbar Collapse command",legend:"Press ${toolbarCollapse}"},{name:" Access previous focus space command",legend:"Press ${accessPreviousSpace} to access the closest unreachable focus space before the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},
-{name:" Access next focus space command",legend:"Press ${accessNextSpace} to access the closest unreachable focus space after the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},{name:" Accessibility Help",legend:"Press ${a11yHelp}"},{name:" Paste as plain text",legend:"Press ${pastetext}",legendEdge:"Press ${pastetext}, followed by ${paste}"}]}],tab:"Tab",pause:"Pause",capslock:"Caps Lock",escape:"Escape",pageUp:"Page Up",pageDown:"Page Down",
-leftArrow:"Left Arrow",upArrow:"Up Arrow",rightArrow:"Right Arrow",downArrow:"Down Arrow",insert:"Insert",leftWindowKey:"Left Windows key",rightWindowKey:"Right Windows key",selectKey:"Select key",numpad0:"Numpad 0",numpad1:"Numpad 1",numpad2:"Numpad 2",numpad3:"Numpad 3",numpad4:"Numpad 4",numpad5:"Numpad 5",numpad6:"Numpad 6",numpad7:"Numpad 7",numpad8:"Numpad 8",numpad9:"Numpad 9",multiply:"Multiply",add:"Add",subtract:"Subtract",decimalPoint:"Decimal Point",divide:"Divide",f1:"F1",f2:"F2",f3:"F3",
-f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"Semicolon",equalSign:"Equal Sign",comma:"Comma",dash:"Dash",period:"Period",forwardSlash:"Forward Slash",graveAccent:"Grave Accent",openBracket:"Open Bracket",backSlash:"Backslash",closeBracket:"Close Bracket",singleQuote:"Single Quote"});
\ No newline at end of file
diff --git a/web/modules/ckeditor/vendor/plugins/a11yhelp/dialogs/lang/it.js b/web/modules/ckeditor/vendor/plugins/a11yhelp/dialogs/lang/it.js
deleted file mode 100644
index c0b981eed17fda8bc6db1dee6c1dc9c9088688de..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/plugins/a11yhelp/dialogs/lang/it.js
+++ /dev/null
@@ -1,13 +0,0 @@
-/*
- Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
- For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
-*/
-CKEDITOR.plugins.setLang("a11yhelp","it",{title:"Istruzioni di Accessibilità",contents:"Contenuti di Aiuto. Per chiudere questa finestra premi ESC.",legend:[{name:"Generale",items:[{name:"Barra degli strumenti Editor",legend:"Premere ${toolbarFocus} per passare alla barra degli strumenti. Usare TAB per spostarsi al gruppo successivo, MAIUSC+TAB per spostarsi a quello precedente. Usare FRECCIA DESTRA per spostarsi al pulsante successivo, FRECCIA SINISTRA per spostarsi a quello precedente. Premere SPAZIO o INVIO per attivare il pulsante della barra degli strumenti."},
-{name:"Finestra Editor",legend:"All'interno di una finestra di dialogo è possibile premere TAB per passare all'elemento successivo della finestra, MAIUSC+TAB per passare a quello precedente; premere INVIO per inviare i dati della finestra, oppure ESC per annullare l'operazione. Quando una finestra di dialogo ha più schede, è possibile passare all'elenco delle schede sia con ALT+F10 che con TAB, in base all'ordine delle tabulazioni della finestra. Quando l'elenco delle schede è attivo, premere la FRECCIA DESTRA o la FRECCIA SINISTRA per passare rispettivamente alla scheda successiva o a quella precedente."},
-{name:"Menù contestuale Editor",legend:"Premi ${contextMenu} o TASTO APPLICAZIONE per aprire il menu contestuale. Dunque muoviti all'opzione successiva del menu con il tasto TAB o con la Freccia Sotto. Muoviti all'opzione precedente con  MAIUSC+TAB o con Freccia Sopra. Premi SPAZIO o INVIO per scegliere l'opzione di menu. Apri il sottomenu dell'opzione corrente con SPAZIO o INVIO oppure con la Freccia Destra. Torna indietro al menu superiore con ESC oppure Freccia Sinistra. Chiudi il menu contestuale con ESC."},
-{name:"Box Lista Editor",legend:"All'interno di un elenco di opzioni, per spostarsi all'elemento successivo premere TAB oppure FRECCIA GIÙ. Per spostarsi all'elemento precedente usare SHIFT+TAB oppure FRECCIA SU. Premere SPAZIO o INVIO per selezionare l'elemento della lista. Premere ESC per chiudere l'elenco di opzioni."},{name:"Barra percorso elementi editor",legend:"Premere ${elementsPathFocus} per passare agli elementi della barra del percorso. Usare TAB o FRECCIA DESTRA per passare al pulsante successivo. Per passare al pulsante precedente premere MAIUSC+TAB o FRECCIA SINISTRA. Premere SPAZIO o INVIO per selezionare l'elemento nell'editor."}]},
-{name:"Comandi",items:[{name:" Annulla comando",legend:"Premi ${undo}"},{name:" Ripeti comando",legend:"Premi ${redo}"},{name:" Comando Grassetto",legend:"Premi ${bold}"},{name:" Comando Corsivo",legend:"Premi ${italic}"},{name:" Comando Sottolineato",legend:"Premi ${underline}"},{name:" Comando Link",legend:"Premi ${link}"},{name:" Comando riduci barra degli strumenti",legend:"Premi ${toolbarCollapse}"},{name:"Comando di accesso al precedente spazio di focus",legend:"Premi ${accessPreviousSpace} per accedere il più vicino spazio di focus non raggiungibile prima del simbolo caret, per esempio due elementi HR adiacenti. Ripeti la combinazione di tasti per raggiungere spazi di focus distanti."},
-{name:"Comando di accesso al prossimo spazio di focus",legend:"Premi ${accessNextSpace} per accedere il più vicino spazio di focus non raggiungibile dopo il simbolo caret, per esempio due elementi HR adiacenti. Ripeti la combinazione di tasti per raggiungere spazi di focus distanti."},{name:" Aiuto Accessibilità",legend:"Premi ${a11yHelp}"},{name:"Incolla come testo semplice",legend:"Premi ${pastetext}",legendEdge:"Premi ${pastetext}, seguito da ${paste}"}]}],tab:"Tab",pause:"Pausa",capslock:"Bloc Maiusc",
-escape:"Esc",pageUp:"Pagina sù",pageDown:"Pagina giù",leftArrow:"Freccia sinistra",upArrow:"Freccia su",rightArrow:"Freccia destra",downArrow:"Freccia giù",insert:"Ins",leftWindowKey:"Tasto di Windows sinistro",rightWindowKey:"Tasto di Windows destro",selectKey:"Tasto di selezione",numpad0:"0 sul tastierino numerico",numpad1:"1 sul tastierino numerico",numpad2:"2 sul tastierino numerico",numpad3:"3 sul tastierino numerico",numpad4:"4 sul tastierino numerico",numpad5:"5 sul tastierino numerico",numpad6:"6 sul tastierino numerico",
-numpad7:"7 sul tastierino numerico",numpad8:"8 sul tastierino numerico",numpad9:"9 sul tastierino numerico",multiply:"Moltiplicazione",add:"Più",subtract:"Sottrazione",decimalPoint:"Punto decimale",divide:"Divisione",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Bloc Num",scrollLock:"Bloc Scorr",semiColon:"Punto-e-virgola",equalSign:"Segno di uguale",comma:"Virgola",dash:"Trattino",period:"Punto",forwardSlash:"Barra",graveAccent:"Accento grave",
-openBracket:"Parentesi quadra aperta",backSlash:"Barra rovesciata",closeBracket:"Parentesi quadra chiusa",singleQuote:"Apostrofo"});
\ No newline at end of file
diff --git a/web/modules/ckeditor/vendor/plugins/a11yhelp/dialogs/lang/ja.js b/web/modules/ckeditor/vendor/plugins/a11yhelp/dialogs/lang/ja.js
deleted file mode 100644
index 0ba756af8db7c37fb44e419c817a620c0e04b96a..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/plugins/a11yhelp/dialogs/lang/ja.js
+++ /dev/null
@@ -1,9 +0,0 @@
-/*
- Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
- For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
-*/
-CKEDITOR.plugins.setLang("a11yhelp","ja",{title:"ユーザー補助の説明",contents:"ヘルプ このダイアログを閉じるには ESCを押してください。",legend:[{name:"全般",items:[{name:"エディターツールバー",legend:"${toolbarFocus} を押すとツールバーのオン/オフ操作ができます。カーソルをツールバーのグループで移動させるにはTabかSHIFT+Tabを押します。グループ内でカーソルを移動させるには、右カーソルか左カーソルを押します。スペースキーやエンターを押すとボタンを有効/無効にすることができます。"},{name:"編集ダイアログ",legend:"Inside a dialog, press TAB to navigate to the next dialog element, press SHIFT+TAB to move to the previous dialog element, press ENTER to submit the dialog, press ESC to cancel the dialog. When a dialog has multiple tabs, the tab list can be reached either with ALT+F10 or with TAB as part of the dialog tabbing order. With tab list focused, move to the next and previous tab with RIGHT and LEFT ARROW, respectively."},
-{name:"エディターのメニュー",legend:"${contextMenu} キーかAPPLICATION KEYを押すとコンテキストメニューが開きます。Tabか下カーソルでメニューのオプション選択が下に移動します。戻るには、SHIFT+Tabか上カーソルです。スペースもしくはENTERキーでメニューオプションを決定できます。現在選んでいるオプションのサブメニューを開くには、スペース、もしくは右カーソルを押します。サブメニューから親メニューに戻るには、ESCか左カーソルを押してください。ESCでコンテキストメニュー自体をキャンセルできます。"},{name:"エディターリストボックス",legend:"リストボックス内で移動するには、Tabか下カーソルで次のアイテムへ移動します。SHIFT+Tabで前のアイテムに戻ります。リストのオプションを選択するには、スペースもしくは、ENTERを押してください。リストボックスを閉じるには、ESCを押してください。"},{name:"エディター要素パスバー",legend:"${elementsPathFocus} を押すとエレメントパスバーを操作出来ます。Tabか右カーソルで次のエレメントを選択できます。前のエレメントを選択するには、SHIFT+Tabか左カーソルです。スペースもしくは、ENTERでエディタ内の対象エレメントを選択出来ます。"}]},
-{name:"コマンド",items:[{name:"元に戻す",legend:"${undo} をクリック"},{name:"やり直し",legend:"${redo} をクリック"},{name:"太字",legend:"${bold} をクリック"},{name:"斜体 ",legend:"${italic} をクリック"},{name:"下線",legend:"${underline} をクリック"},{name:"リンク",legend:"${link} をクリック"},{name:"ツールバーをたたむ",legend:"${toolbarCollapse} をクリック"},{name:"前のカーソル移動のできないポイントへ",legend:"${accessPreviousSpace} を押すとカーソルより前にあるカーソルキーで入り込めないスペースへ移動できます。例えば、HRエレメントが2つ接している場合などです。離れた場所へは、複数回キーを押します。"},{name:"次のカーソルポイントへ移動する",legend:"${accessNextSpace} を押すとカーソルより後ろにあるカーソルキーで入り込めないスペースへ移動できます。例えば、HRエレメントが2つ接している場合などです。離れた場所へは、複数回キーを押します。"},
-{name:"ユーザー補助ヘルプ",legend:"${a11yHelp} をクリック"},{name:" Paste as plain text",legend:"Press ${pastetext}",legendEdge:"Press ${pastetext}, followed by ${paste}"}]}],tab:"Tab",pause:"Pause",capslock:"Caps Lock",escape:"Escape",pageUp:"Page Up",pageDown:"Page Down",leftArrow:"左矢印",upArrow:"上矢印",rightArrow:"右矢印",downArrow:"下矢印",insert:"Insert",leftWindowKey:"左Windowキー",rightWindowKey:"右のWindowキー",selectKey:"Select",numpad0:"Num 0",numpad1:"Num 1",numpad2:"Num 2",numpad3:"Num 3",numpad4:"Num 4",numpad5:"Num 5",
-numpad6:"Num 6",numpad7:"Num 7",numpad8:"Num 8",numpad9:"Num 9",multiply:"掛ける",add:"足す",subtract:"引く",decimalPoint:"小数点",divide:"割る",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"セミコロン",equalSign:"イコール記号",comma:"カンマ",dash:"ダッシュ",period:"ピリオド",forwardSlash:"フォワードスラッシュ",graveAccent:"グレイヴアクセント",openBracket:"開きカッコ",backSlash:"バックスラッシュ",closeBracket:"閉じカッコ",singleQuote:"シングルクォート"});
\ No newline at end of file
diff --git a/web/modules/ckeditor/vendor/plugins/a11yhelp/dialogs/lang/km.js b/web/modules/ckeditor/vendor/plugins/a11yhelp/dialogs/lang/km.js
deleted file mode 100644
index b619fb60d6490f4f707308473fd3fbfce7cff1d9..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/plugins/a11yhelp/dialogs/lang/km.js
+++ /dev/null
@@ -1,11 +0,0 @@
-/*
- Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
- For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
-*/
-CKEDITOR.plugins.setLang("a11yhelp","km",{title:"Accessibility Instructions",contents:"មាតិកា​ជំនួយ។ ដើម្បី​បិទ​ផ្ទាំង​នេះ សូម​ចុច ESC ។",legend:[{name:"ទូទៅ",items:[{name:"របារ​ឧបករណ៍​កម្មវិធី​និពន្ធ",legend:"Press ${toolbarFocus} to navigate to the toolbar. Move to the next and previous toolbar group with TAB and SHIFT+TAB. Move to the next and previous toolbar button with RIGHT ARROW or LEFT ARROW. Press SPACE or ENTER to activate the toolbar button.The focus will be moved back to the editing area upon activating the toolbar button."},
-{name:"ផ្ទាំង​កម្មវិធីនិពន្ធ",legend:"Inside a dialog, press TAB to navigate to the next dialog element, press SHIFT+TAB to move to the previous dialog element, press ENTER to submit the dialog, press ESC to cancel the dialog. When a dialog has multiple tabs, the tab list can be reached either with ALT+F10 or with TAB as part of the dialog tabbing order. With tab list focused, move to the next and previous tab with RIGHT and LEFT ARROW, respectively."},{name:"ម៉ីនុយបរិបទអ្នកកែសម្រួល",legend:"Press ${contextMenu} or APPLICATION KEY to open context-menu. Then move to next menu option with TAB or DOWN ARROW. Move to previous option with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the menu option. Open sub-menu of current option with SPACE or ENTER or RIGHT ARROW. Go back to parent menu item with ESC or LEFT ARROW. Close context menu with ESC."},
-{name:"ប្រអប់បញ្ជីអ្នកកែសម្រួល",legend:"Inside a list-box, move to next list item with TAB OR DOWN ARROW. Move to previous list item with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the list option. Press ESC to close the list-box."},{name:"Editor Element Path Bar",legend:"Press ${elementsPathFocus} to navigate to the elements path bar. Move to next element button with TAB or RIGHT ARROW. Move to previous button with SHIFT+TAB or LEFT ARROW. Press SPACE or ENTER to select the element in editor."}]},
-{name:"ពាក្យបញ្ជា",items:[{name:"ការ​បញ្ជា​មិនធ្វើវិញ",legend:"ចុច ${undo}"},{name:"ការបញ្ជា​ធ្វើវិញ",legend:"ចុច ${redo}"},{name:"ការបញ្ជា​អក្សរ​ដិត",legend:"ចុច ${bold}"},{name:"ការបញ្ជា​អក្សរ​ទ្រេត",legend:"ចុច ${italic}"},{name:"ពាក្យបញ្ជា​បន្ទាត់​ពីក្រោម",legend:"ចុច ${underline}"},{name:"ពាក្យបញ្ជា​តំណ",legend:"ចុច ${link}"},{name:" Toolbar Collapse command",legend:"Press ${toolbarCollapse}"},{name:" Access previous focus space command",legend:"Press ${accessPreviousSpace} to access the closest unreachable focus space before the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},
-{name:" Access next focus space command",legend:"Press ${accessNextSpace} to access the closest unreachable focus space after the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},{name:"ជំនួយ​ពី​ភាព​ងាយស្រួល",legend:"ជួយ ${a11yHelp}"},{name:" Paste as plain text",legend:"Press ${pastetext}",legendEdge:"Press ${pastetext}, followed by ${paste}"}]}],tab:"Tab",pause:"ផ្អាក",capslock:"Caps Lock",escape:"ចាកចេញ",pageUp:"ទំព័រ​លើ",pageDown:"ទំព័រ​ក្រោម",
-leftArrow:"ព្រួញ​ឆ្វេង",upArrow:"ព្រួញ​លើ",rightArrow:"ព្រួញ​ស្ដាំ",downArrow:"ព្រួញ​ក្រោម",insert:"បញ្ចូល",leftWindowKey:"Left Windows key",rightWindowKey:"Right Windows key",selectKey:"ជ្រើស​គ្រាប់​ចុច",numpad0:"Numpad 0",numpad1:"Numpad 1",numpad2:"Numpad 2",numpad3:"Numpad 3",numpad4:"Numpad 4",numpad5:"Numpad 5",numpad6:"Numpad 6",numpad7:"Numpad 7",numpad8:"Numpad 8",numpad9:"Numpad 9",multiply:"គុណ",add:"បន្ថែម",subtract:"ដក",decimalPoint:"ចំណុចទសភាគ",divide:"ចែក",f1:"F1",f2:"F2",f3:"F3",f4:"F4",
-f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"បិទ​រំកិល",semiColon:"ចុច​ក្បៀស",equalSign:"សញ្ញា​អឺរ៉ូ",comma:"ក្បៀស",dash:"Dash",period:"ចុច",forwardSlash:"Forward Slash",graveAccent:"Grave Accent",openBracket:"តង្កៀប​បើក",backSlash:"Backslash",closeBracket:"តង្កៀប​បិទ",singleQuote:"បន្តក់​មួយ"});
\ No newline at end of file
diff --git a/web/modules/ckeditor/vendor/plugins/a11yhelp/dialogs/lang/ko.js b/web/modules/ckeditor/vendor/plugins/a11yhelp/dialogs/lang/ko.js
deleted file mode 100644
index 68084c473b8469ca56f49a8c00c56814b6a7f2b8..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/plugins/a11yhelp/dialogs/lang/ko.js
+++ /dev/null
@@ -1,10 +0,0 @@
-/*
- Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
- For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
-*/
-CKEDITOR.plugins.setLang("a11yhelp","ko",{title:"접근성 설명",contents:"도움말. 이 창을 닫으시려면 ESC 를 누르세요.",legend:[{name:"일반",items:[{name:"편집기 툴바",legend:"툴바를 탐색하시려면 ${toolbarFocus} 를 투르세요. 이전/다음 툴바 그룹으로 이동하시려면 TAB 키 또는 SHIFT+TAB 키를 누르세요. 이전/다음 툴바 버튼으로 이동하시려면 오른쪽 화살표 키 또는 왼쪽 화살표 키를 누르세요. 툴바 버튼을 활성화 하려면 SPACE 키 또는 ENTER 키를 누르세요."},{name:"편집기 다이얼로그",legend:"TAB 키를 누르면 다음 대화상자로 이동하고, SHIFT+TAB 키를 누르면 이전 대화상자로 이동합니다. 대화상자를 제출하려면 ENTER 키를 누르고, ESC 키를 누르면 대화상자를 취소합니다. 대화상자에 탭이 여러개 있을 때, ALT+F10 키 또는 TAB 키를 누르면 순서에 따라 탭 목록에 도달할 수 있습니다. 탭 목록에 초점이 맞을 때, 오른쪽과 왼쪽 화살표 키를 이용하면 각각 다음과 이전 탭으로 이동할 수 있습니다."},
-{name:"편집기 환경 메뉴",legend:"${contextMenu} 또는 어플리케이션 키를 누르면 환경-메뉴를 열 수 있습니다. 환경-메뉴에서 TAB 키 또는 아래 화살표 키를 누르면 다음 메뉴 옵션으로 이동할 수 있습니다. 이전 옵션으로 이동은 SHIFT+TAB 키 또는 위 화살표 키를 눌러서 할 수 있습니다. 스페이스 키 또는 ENTER 키를 눌러서 메뉴 옵션을 선택할 수 있습니다. 스페이스 키 또는 ENTER 키 또는 오른쪽 화살표 키를 눌러서 하위 메뉴를 열 수 있습니다. 부모 메뉴 항목으로 돌아가려면 ESC 키 또는 왼쪽 화살표 키를 누릅니다. ESC 키를 눌러서 환경-메뉴를 닫습니다."},{name:"편집기 목록 박스",legend:"리스트-박스 내에서, 목록의 다음 항목으로 이동하려면 TAB 키 또는 아래쪽 화살표 키를 누릅니다. 목록의 이전 항목으로 이동하려면 SHIFT+TAB 키 또는 위쪽 화살표 키를 누릅니다. 스페이스 키 또는 ENTER 키를 누르면 목록의 해당 옵션을 선택합니다. ESC 키를 눌러서 리스트-박스를 닫을 수 있습니다."},
-{name:"편집기 요소 경로 막대",legend:"${elementsPathFocus}를 눌러서 요소 경로 막대를 탐색할 수 있습니다. 다음 요소로 이동하려면 TAB 키 또는 오른쪽 화살표 키를 누릅니다. SHIFT+TAB 키 또는 왼쪽 화살표 키를 누르면 이전 버튼으로 이동할 수 있습니다. 스페이스 키나 ENTER 키를 누르면 편집기의 해당 항목을 선택합니다."}]},{name:"명령",items:[{name:" 명령 실행 취소",legend:"${undo} 누르시오"},{name:" 명령 다시 실행",legend:"${redo} 누르시오"},{name:" 굵게 명령",legend:"${bold} 누르시오"},{name:" 기울임 꼴 명령",legend:"${italic} 누르시오"},{name:" 밑줄 명령",legend:"${underline} 누르시오"},{name:" 링크 명령",legend:"${link} 누르시오"},{name:" 툴바 줄이기 명령",legend:"${toolbarCollapse} 누르시오"},
-{name:" 이전 포커스 공간 접근 명령",legend:"탈자 기호(^) 이전에 ${accessPreviousSpace} 를 누르면, 접근 불가능하면서 가장 가까운 포커스 영역에 접근합니다. 예를 들면, 두 인접한 HR 요소가 있습니다. 키 조합을 반복해서 멀리있는 포커스 영역들에 도달할 수 있습니다."},{name:"다음 포커스 공간 접근 명령",legend:"탈자 기호(^) 다음에 ${accessNextSpace} 를 누르면, 접근 불가능하면서 가장 가까운 포커스 영역에 접근합니다. 예를 들면, 두 인접한 HR 요소가 있습니다. 키 조합을 반복해서 멀리있는 포커스 영역들에 도달할 수 있습니다. "},{name:" 접근성 도움말",legend:"${a11yHelp} 누르시오"},{name:" Paste as plain text",legend:"Press ${pastetext}",legendEdge:"Press ${pastetext}, followed by ${paste}"}]}],
-tab:"탭 키",pause:"일시정지 키",capslock:"캡스 록 키",escape:"이스케이프 키",pageUp:"페이지 업 키",pageDown:"페이지 다운 키",leftArrow:"왼쪽 화살표 키",upArrow:"위쪽 화살표 키",rightArrow:"오른쪽 화살표 키",downArrow:"아래쪽 화살표 키",insert:"인서트 키",leftWindowKey:"왼쪽 윈도우 키",rightWindowKey:"오른쪽 윈도우 키",selectKey:"셀렉트 키",numpad0:"숫자 패드 0 키",numpad1:"숫자 패드 1 키",numpad2:"숫자 패드 2 키",numpad3:"숫자 패드 3 키",numpad4:"숫자 패드 4 키",numpad5:"숫자 패드 5 키",numpad6:"숫자 패드 6 키",numpad7:"숫자 패드 7 키",numpad8:"숫자 패드 8 키",numpad9:"숫자 패드 9 키",multiply:"곱셈(*) 키",add:"덧셈(+) 키",subtract:"뺄셈(-) 키",
-decimalPoint:"온점(.) 키",divide:"나눗셈(/) 키",f1:"F1 키",f2:"F2 키",f3:"F3 키",f4:"F4 키",f5:"F5 키",f6:"F6 키",f7:"F7 키",f8:"F8 키",f9:"F9 키",f10:"F10 키",f11:"F11 키",f12:"F12 키",numLock:"Num Lock 키",scrollLock:"Scroll Lock 키",semiColon:"세미콜론(;) 키",equalSign:"등호(\x3d) 키",comma:"쉼표(,) 키",dash:"대시(-) 키",period:"온점(.) 키",forwardSlash:"슬래시(/) 키",graveAccent:"억음 악센트(`) 키",openBracket:"브라켓 열기([) 키",backSlash:"역슬래시(\\\\) 키",closeBracket:"브라켓 닫기(]) 키",singleQuote:"외 따옴표(') 키"});
\ No newline at end of file
diff --git a/web/modules/ckeditor/vendor/plugins/a11yhelp/dialogs/lang/ku.js b/web/modules/ckeditor/vendor/plugins/a11yhelp/dialogs/lang/ku.js
deleted file mode 100644
index d8e77e418adb60072fd52cd8a0dac1fb3f3827ce..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/plugins/a11yhelp/dialogs/lang/ku.js
+++ /dev/null
@@ -1,11 +0,0 @@
-/*
- Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
- For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
-*/
-CKEDITOR.plugins.setLang("a11yhelp","ku",{title:"ڕێنمای لەبەردەستدابوون",contents:"پێکهاتەی یارمەتی. کلیك ESC بۆ داخستنی ئەم دیالۆگه.",legend:[{name:"گشتی",items:[{name:"تووڵامرازی دەستكاریكەر",legend:"کلیك ${toolbarFocus} بۆ ڕابەری تووڵامراز. بۆ گواستنەوەی پێشوو داهاتووی گرووپی تووڵامرازی داگرتنی کلیلی TAB لەگەڵ‌ SHIFT+TAB. بۆ گواستنەوەی پێشوو داهاتووی دووگمەی تووڵامرازی لەڕێی کلیلی تیری دەستی ڕاست یان کلیلی تیری دەستی چەپ. کلیکی کلیلی SPACE یان ENTER بۆ چالاککردنی دووگمەی تووڵامراز."},{name:"دیالۆگی دەستكاریكەر",
-legend:"لەناوەوەی دیالۆگ, کلیکی کلیلی TAB بۆ ڕابەری دیالۆگێکی تر, داگرتنی کلیلی SHIFT + TAB بۆ گواستنەوەی بۆ دیالۆگی پێشووتر, کلیكی کلیلی ENTER بۆ ڕازیکردنی دیالۆگەکە, کلیكی کلیلی ESC بۆ هەڵوەشاندنەوەی دیالۆگەکە. بۆ دیالۆگی بازدەری (تابی) زیاتر, کلیكی کلیلی ALT + F10 بۆ ڕابه‌ری لیستی بازده‌ره‌کان، یان کلیكی کلیلی TAB. بۆچوونه‌ بازده‌ری تابی پێشوو  یان دوواتر کلیلی تیری دەستی ڕاست یان چەپ بکە."},{name:"پێڕستی سەرنووسەر",legend:"کلیك ${contextMenu} یان دوگمەی لیسته‌(Menu) بۆ کردنەوەی لیستەی دەق. بۆ چوونە هەڵبژاردەیەکی تر له‌ لیسته‌ کلیکی کلیلی TAB یان کلیلی تیری ڕوو لەخوارەوه‌ بۆ چوون بۆ هەڵبژاردەی پێشوو کلیکی کلیلی SHIFT+TAB یان کلیلی تیری ڕوو له‌ سەرەوە. داگرتنی کلیلی SPACE یان ENTER بۆ هەڵبژاردنی هەڵبژاردەی لیسته‌. بۆ کردنەوەی لقی ژێر لیسته‌ لەهەڵبژاردەی لیستە کلیکی کلیلی SPACE یان ENTER یان کلیلی تیری دەستی ڕاست. بۆ گەڕانەوه بۆ سەرەوەی لیسته‌ کلیکی کلیلی ESC یان کلیلی تیری دەستی چەپ. بۆ داخستنی لیستە کلیكی کلیلی ESC بکە."},
-{name:"لیستی سنووقی سەرنووسەر",legend:"لەناو سنوقی لیست, چۆن بۆ هەڵنبژاردەی لیستێکی تر کلیکی کلیلی TAB یان کلیلی تیری ڕوو لەخوار. چوون بۆ هەڵبژاردەی لیستی پێشوو کلیکی کلیلی SHIFT+TAB یان کلیلی تیری ڕوو لەسەرەوه‌. کلیکی کلیلی SPACE یان ENTER بۆ دیاریکردنی ‌هەڵبژاردەی لیست. کلیکی کلیلی ESC بۆ داخستنی سنوقی لیست."},{name:"تووڵامرازی توخم",legend:"کلیك ${elementsPathFocus} بۆ ڕابەری تووڵامرازی توخمەکان. چوون بۆ دوگمەی توخمێکی تر کلیکی کلیلی TAB یان کلیلی تیری دەستی ڕاست. چوون بۆ دوگمەی توخمی پێشوو کلیلی SHIFT+TAB یان کلیکی کلیلی تیری دەستی چەپ. داگرتنی کلیلی SPACE یان ENTER بۆ دیاریکردنی توخمەکه‌ لەسەرنووسه."}]},
-{name:"فەرمانەکان",items:[{name:"پووچکردنەوەی فەرمان",legend:"کلیك ${undo}"},{name:"هەڵگەڕانەوەی فەرمان",legend:"کلیك ${redo}"},{name:"فەرمانی دەقی قەڵەو",legend:"کلیك ${bold}"},{name:"فەرمانی دەقی لار",legend:"کلیك ${italic}"},{name:"فەرمانی ژێرهێڵ",legend:"کلیك ${underline}"},{name:"فەرمانی به‌ستەر",legend:"کلیك ${link}"},{name:"شاردەنەوەی تووڵامراز",legend:"کلیك ${toolbarCollapse}"},{name:"چوونەناو سەرنجدانی پێشوی فەرمانی بۆشایی",legend:"کلیک ${accessPreviousSpace} to access the closest unreachable focus space before the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},
-{name:"چوونەناو سەرنجدانی داهاتووی فەرمانی بۆشایی",legend:"کلیک ${accessNextSpace} to access the closest unreachable focus space after the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},{name:"دەستپێگەیشتنی یارمەتی",legend:"کلیك ${a11yHelp}"},{name:"لکاندنی وەك دەقی ڕوون",legend:"کلیکی ${pastetext}",legendEdge:"کلیکی ${pastetext}، شوێنکەوتکراوە بە ${paste}"}]}],tab:"تاب",pause:"پشوو",capslock:"قفڵدانی پیتی گەورە",escape:"چوونە دەرەوە",pageUp:"پەڕە بەرەوسەر",
-pageDown:"پەڕە بەرەوخوار",leftArrow:"تیری دەستی چەپ",upArrow:"تیری بەرەوسەر",rightArrow:"تیری دەستی ڕاست",downArrow:"تیری بەرەوخوار",insert:"خستنە ناو",leftWindowKey:"پەنجەرەی چەپ",rightWindowKey:"پەنجەرەی ڕاست",selectKey:"هەڵبژێرە",numpad0:"Numpad 0",numpad1:"1",numpad2:"2",numpad3:"3",numpad4:"4",numpad5:"5",numpad6:"6",numpad7:"7",numpad8:"8",numpad9:"9",multiply:"*",add:"+",subtract:"-",decimalPoint:".",divide:"/",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",
-f11:"F11",f12:"F12",numLock:"قفڵدانی ژمارە",scrollLock:"قفڵدانی هێڵی هاتووچۆپێکردن",semiColon:";",equalSign:"\x3d",comma:",",dash:"-",period:".",forwardSlash:"/",graveAccent:"`",openBracket:"[",backSlash:"\\\\",closeBracket:"}",singleQuote:"'"});
\ No newline at end of file
diff --git a/web/modules/ckeditor/vendor/plugins/a11yhelp/dialogs/lang/lt.js b/web/modules/ckeditor/vendor/plugins/a11yhelp/dialogs/lang/lt.js
deleted file mode 100644
index 83ebc76855fdf43c78c5fc8c01d65c41768f5266..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/plugins/a11yhelp/dialogs/lang/lt.js
+++ /dev/null
@@ -1,11 +0,0 @@
-/*
- Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
- For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
-*/
-CKEDITOR.plugins.setLang("a11yhelp","lt",{title:"Accessibility Instructions",contents:"Help Contents. To close this dialog press ESC.",legend:[{name:"Bendros savybės",items:[{name:"Editor Toolbar",legend:"Press ${toolbarFocus} to navigate to the toolbar. Move to the next and previous toolbar group with TAB and SHIFT+TAB. Move to the next and previous toolbar button with RIGHT ARROW or LEFT ARROW. Press SPACE or ENTER to activate the toolbar button.The focus will be moved back to the editing area upon activating the toolbar button."},
-{name:"Editor Dialog",legend:"Inside a dialog, press TAB to navigate to the next dialog element, press SHIFT+TAB to move to the previous dialog element, press ENTER to submit the dialog, press ESC to cancel the dialog. When a dialog has multiple tabs, the tab list can be reached either with ALT+F10 or with TAB as part of the dialog tabbing order. With tab list focused, move to the next and previous tab with RIGHT and LEFT ARROW, respectively."},{name:"Editor Context Menu",legend:"Press ${contextMenu} or APPLICATION KEY to open context-menu. Then move to next menu option with TAB or DOWN ARROW. Move to previous option with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the menu option. Open sub-menu of current option with SPACE or ENTER or RIGHT ARROW. Go back to parent menu item with ESC or LEFT ARROW. Close context menu with ESC."},
-{name:"Editor List Box",legend:"Inside a list-box, move to next list item with TAB OR DOWN ARROW. Move to previous list item with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the list option. Press ESC to close the list-box."},{name:"Editor Element Path Bar",legend:"Press ${elementsPathFocus} to navigate to the elements path bar. Move to next element button with TAB or RIGHT ARROW. Move to previous button with SHIFT+TAB or LEFT ARROW. Press SPACE or ENTER to select the element in editor."}]},
-{name:"Commands",items:[{name:" Undo command",legend:"Press ${undo}"},{name:" Redo command",legend:"Press ${redo}"},{name:" Bold command",legend:"Press ${bold}"},{name:" Italic command",legend:"Press ${italic}"},{name:" Underline command",legend:"Press ${underline}"},{name:" Link command",legend:"Press ${link}"},{name:" Toolbar Collapse command",legend:"Press ${toolbarCollapse}"},{name:" Access previous focus space command",legend:"Press ${accessPreviousSpace} to access the closest unreachable focus space before the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},
-{name:" Access next focus space command",legend:"Press ${accessNextSpace} to access the closest unreachable focus space after the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},{name:" Accessibility Help",legend:"Press ${a11yHelp}"},{name:" Paste as plain text",legend:"Press ${pastetext}",legendEdge:"Press ${pastetext}, followed by ${paste}"}]}],tab:"Tab",pause:"Pause",capslock:"Caps Lock",escape:"Escape",pageUp:"Page Up",pageDown:"Page Down",
-leftArrow:"Left Arrow",upArrow:"Up Arrow",rightArrow:"Right Arrow",downArrow:"Down Arrow",insert:"Insert",leftWindowKey:"Left Windows key",rightWindowKey:"Right Windows key",selectKey:"Select key",numpad0:"Numpad 0",numpad1:"Numpad 1",numpad2:"Numpad 2",numpad3:"Numpad 3",numpad4:"Numpad 4",numpad5:"Numpad 5",numpad6:"Numpad 6",numpad7:"Numpad 7",numpad8:"Numpad 8",numpad9:"Numpad 9",multiply:"Multiply",add:"Add",subtract:"Subtract",decimalPoint:"Decimal Point",divide:"Divide",f1:"F1",f2:"F2",f3:"F3",
-f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"Semicolon",equalSign:"Equal Sign",comma:"Comma",dash:"Dash",period:"Period",forwardSlash:"Forward Slash",graveAccent:"Grave Accent",openBracket:"Open Bracket",backSlash:"Backslash",closeBracket:"Close Bracket",singleQuote:"Single Quote"});
\ No newline at end of file
diff --git a/web/modules/ckeditor/vendor/plugins/a11yhelp/dialogs/lang/lv.js b/web/modules/ckeditor/vendor/plugins/a11yhelp/dialogs/lang/lv.js
deleted file mode 100644
index 25da1a4aad69b6e8df43e2494db372f8b9dd9cc4..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/plugins/a11yhelp/dialogs/lang/lv.js
+++ /dev/null
@@ -1,12 +0,0 @@
-/*
- Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
- For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
-*/
-CKEDITOR.plugins.setLang("a11yhelp","lv",{title:"Pieejamības instrukcija",contents:"Palīdzības saturs. Lai aizvērtu ciet šo dialogu nospiediet ESC.",legend:[{name:"Galvenais",items:[{name:"Redaktora rīkjosla",legend:"Nospiediet ${toolbarFocus} lai pārvietotos uz rīkjoslu. Lai pārvietotos uz nākošo vai iepriekšējo rīkjoslas grupu izmantojiet pogu TAB un SHIFT+TAB. Lai pārvietotos uz nākošo vai iepriekšējo rīkjoslas pogu izmantojiet Kreiso vai Labo bultiņu. Nospiediet Atstarpi vai ENTER lai aktivizētu rīkjosla pogu."},
-{name:"Redaktora dialoga  logs",legend:"Inside a dialog, press TAB to navigate to the next dialog element, press SHIFT+TAB to move to the previous dialog element, press ENTER to submit the dialog, press ESC to cancel the dialog. When a dialog has multiple tabs, the tab list can be reached either with ALT+F10 or with TAB as part of the dialog tabbing order. With tab list focused, move to the next and previous tab with RIGHT and LEFT ARROW, respectively."},{name:"Redaktora satura izvēle",legend:"Nospiediet ${contextMenu} vai APPLICATION KEY lai atvērtu satura izvēlni. Lai pārvietotos uz nākošo izvēlnes opciju izmantojiet pogu TAB vai pogu Bultiņu uz leju. Lai pārvietotos uz iepriekšējo opciju izmantojiet  SHIFT+TAB vai pogu Bultiņa uz augšu. Nospiediet SPACE vai ENTER lai izvelētos izvēlnes opciju. Atveriet tekošajā opcija apakšizvēlni ar SAPCE vai ENTER ka ari to var izdarīt ar Labo bultiņu. Lai atgrieztos atpakaļ uz sakuma izvēlni nospiediet ESC vai Kreiso bultiņu. Lai aizvērtu ciet izvēlnes saturu nospiediet ESC."},
-{name:"Redaktora saraksta lauks",legend:"Saraksta laukā, lai pārvietotos uz nākošo saraksta elementu nospiediet TAB vai pogu Bultiņa uz leju. Lai pārvietotos uz iepriekšējo saraksta elementu nospiediet SHIFT+TAB vai pogu Bultiņa uz augšu. Nospiediet SPACE vai ENTER lai izvēlētos saraksta opcijas. Nospiediet ESC lai aizvērtu saraksta lauku."},{name:"Redaktora elementa ceļa josla",legend:"Nospiediet ${elementsPathFocus} lai pārvietotos uz elementa ceļa joslu. Lai pārvietotos uz nākošo elementa pogu izmantojiet TAB vai Labo bultiņu. Lai pārvietotos uz iepriekšējo elementa pogu izmantojiet SHIFT+TAB vai Kreiso bultiņu. Nospiediet SPACE vai ENTER lai izvēlētos elementu redaktorā."}]},
-{name:"Komandas",items:[{name:"Komanda atcelt darbību",legend:"Nospiediet ${undo}"},{name:"Komanda atkārtot darbību",legend:"Nospiediet ${redo}"},{name:"Treknraksta komanda",legend:"Nospiediet ${bold}"},{name:"Kursīva komanda",legend:"Nospiediet ${italic}"},{name:"Apakšsvītras komanda ",legend:"Nospiediet ${underline}"},{name:"Saites komanda",legend:"Nospiediet ${link}"},{name:"Rīkjoslas aizvēršanas komanda",legend:"Nospiediet ${toolbarCollapse}"},{name:"Piekļūt iepriekšējai fokusa vietas komandai",
-legend:"Nospiediet ${accessPreviousSpace} lai piekļūtu tuvākajai nepieejamajai fokusa vietai pirms kursora. Piemēram: diviem blakus esošiem līnijas HR elementiem. Atkārtojiet taustiņu kombināciju lai piekļūtu pie tālākām vietām."},{name:"Piekļūt nākošā fokusa apgabala komandai",legend:"Nospiediet ${accessNextSpace} lai piekļūtu tuvākajai nepieejamajai fokusa vietai pēc kursora. Piemēram: diviem blakus esošiem līnijas HR elementiem. Atkārtojiet taustiņu kombināciju lai piekļūtu pie tālākām vietām."},
-{name:"Pieejamības palīdzība",legend:"Nospiediet ${a11yHelp}"},{name:" Paste as plain text",legend:"Press ${pastetext}",legendEdge:"Press ${pastetext}, followed by ${paste}"}]}],tab:"Tab",pause:"Pause",capslock:"Caps Lock",escape:"Escape",pageUp:"Page Up",pageDown:"Page Down",leftArrow:"Left Arrow",upArrow:"Up Arrow",rightArrow:"Right Arrow",downArrow:"Down Arrow",insert:"Insert",leftWindowKey:"Left Windows key",rightWindowKey:"Right Windows key",selectKey:"Select key",numpad0:"Numpad 0",numpad1:"Numpad 1",
-numpad2:"Numpad 2",numpad3:"Numpad 3",numpad4:"Numpad 4",numpad5:"Numpad 5",numpad6:"Numpad 6",numpad7:"Numpad 7",numpad8:"Numpad 8",numpad9:"Numpad 9",multiply:"Multiply",add:"Add",subtract:"Subtract",decimalPoint:"Decimal Point",divide:"Divide",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"Semicolon",equalSign:"Equal Sign",comma:"Comma",dash:"Dash",period:"Period",forwardSlash:"Forward Slash",
-graveAccent:"Grave Accent",openBracket:"Open Bracket",backSlash:"Backslash",closeBracket:"Close Bracket",singleQuote:"Single Quote"});
\ No newline at end of file
diff --git a/web/modules/ckeditor/vendor/plugins/a11yhelp/dialogs/lang/mk.js b/web/modules/ckeditor/vendor/plugins/a11yhelp/dialogs/lang/mk.js
deleted file mode 100644
index 1e0246ed0f1b2f71656fd796e6a2aeb3a4e8e1f0..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/plugins/a11yhelp/dialogs/lang/mk.js
+++ /dev/null
@@ -1,11 +0,0 @@
-/*
- Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
- For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
-*/
-CKEDITOR.plugins.setLang("a11yhelp","mk",{title:"Инструкции за пристапност",contents:"Содржина на делот за помош. За да го затворите овој дијалог притиснете ESC.",legend:[{name:"Општо",items:[{name:"Мени за уредувачот",legend:"Press ${toolbarFocus} to navigate to the toolbar. Move to the next and previous toolbar group with TAB and SHIFT+TAB. Move to the next and previous toolbar button with RIGHT ARROW or LEFT ARROW. Press SPACE or ENTER to activate the toolbar button.The focus will be moved back to the editing area upon activating the toolbar button."},
-{name:"Дијалот за едиторот",legend:"Inside a dialog, press TAB to navigate to the next dialog element, press SHIFT+TAB to move to the previous dialog element, press ENTER to submit the dialog, press ESC to cancel the dialog. When a dialog has multiple tabs, the tab list can be reached either with ALT+F10 or with TAB as part of the dialog tabbing order. With tab list focused, move to the next and previous tab with RIGHT and LEFT ARROW, respectively."},{name:"Контекст-мени на уредувачот",legend:"Press ${contextMenu} or APPLICATION KEY to open context-menu. Then move to next menu option with TAB or DOWN ARROW. Move to previous option with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the menu option. Open sub-menu of current option with SPACE or ENTER or RIGHT ARROW. Go back to parent menu item with ESC or LEFT ARROW. Close context menu with ESC."},
-{name:"Editor List Box",legend:"Inside a list-box, move to next list item with TAB OR DOWN ARROW. Move to previous list item with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the list option. Press ESC to close the list-box."},{name:"Editor Element Path Bar",legend:"Press ${elementsPathFocus} to navigate to the elements path bar. Move to next element button with TAB or RIGHT ARROW. Move to previous button with SHIFT+TAB or LEFT ARROW. Press SPACE or ENTER to select the element in editor."}]},
-{name:"Наредби",items:[{name:" Undo command",legend:"Press ${undo}"},{name:" Redo command",legend:"Press ${redo}"},{name:" Bold command",legend:"Press ${bold}"},{name:" Italic command",legend:"Press ${italic}"},{name:" Underline command",legend:"Press ${underline}"},{name:" Link command",legend:"Press ${link}"},{name:" Toolbar Collapse command",legend:"Press ${toolbarCollapse}"},{name:" Access previous focus space command",legend:"Press ${accessPreviousSpace} to access the closest unreachable focus space before the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},
-{name:" Access next focus space command",legend:"Press ${accessNextSpace} to access the closest unreachable focus space after the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},{name:" Accessibility Help",legend:"Press ${a11yHelp}"},{name:" Paste as plain text",legend:"Press ${pastetext}",legendEdge:"Press ${pastetext}, followed by ${paste}"}]}],tab:"Tab",pause:"Пауза",capslock:"Caps Lock",escape:"Escape",pageUp:"Page Up",pageDown:"Page Up",
-leftArrow:"Стрелка лево",upArrow:"Стрелка горе",rightArrow:"Стрелка десно",downArrow:"Стрелка доле",insert:"Insert",leftWindowKey:"Лево Windows копче",rightWindowKey:"Десно Windows копче",selectKey:"Select копче",numpad0:"Нум. таст. 0",numpad1:"Нум. таст. 1",numpad2:"Нум. таст. 2",numpad3:"Нум. таст. 3",numpad4:"Нум. таст. 4",numpad5:"Нум. таст. 5",numpad6:"Нум. таст. 6",numpad7:"Нум. таст. 7",numpad8:"Нум. таст. 8",numpad9:"Нум. таст. 9",multiply:"Multiply",add:"Add",subtract:"Subtract",decimalPoint:"Decimal Point",
-divide:"Divide",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"Semicolon",equalSign:"Equal Sign",comma:"Comma",dash:"Dash",period:"Period",forwardSlash:"Forward Slash",graveAccent:"Grave Accent",openBracket:"Open Bracket",backSlash:"Backslash",closeBracket:"Close Bracket",singleQuote:"Single Quote"});
\ No newline at end of file
diff --git a/web/modules/ckeditor/vendor/plugins/a11yhelp/dialogs/lang/mn.js b/web/modules/ckeditor/vendor/plugins/a11yhelp/dialogs/lang/mn.js
deleted file mode 100644
index 439fb58b28714e2dbccefd92c0a5e538f9d8defe..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/plugins/a11yhelp/dialogs/lang/mn.js
+++ /dev/null
@@ -1,11 +0,0 @@
-/*
- Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
- For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
-*/
-CKEDITOR.plugins.setLang("a11yhelp","mn",{title:"Accessibility Instructions",contents:"Help Contents. To close this dialog press ESC.",legend:[{name:"Ерөнхий",items:[{name:"Editor Toolbar",legend:"Press ${toolbarFocus} to navigate to the toolbar. Move to the next and previous toolbar group with TAB and SHIFT+TAB. Move to the next and previous toolbar button with RIGHT ARROW or LEFT ARROW. Press SPACE or ENTER to activate the toolbar button.The focus will be moved back to the editing area upon activating the toolbar button."},
-{name:"Editor Dialog",legend:"Inside a dialog, press TAB to navigate to the next dialog element, press SHIFT+TAB to move to the previous dialog element, press ENTER to submit the dialog, press ESC to cancel the dialog. When a dialog has multiple tabs, the tab list can be reached either with ALT+F10 or with TAB as part of the dialog tabbing order. With tab list focused, move to the next and previous tab with RIGHT and LEFT ARROW, respectively."},{name:"Editor Context Menu",legend:"Press ${contextMenu} or APPLICATION KEY to open context-menu. Then move to next menu option with TAB or DOWN ARROW. Move to previous option with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the menu option. Open sub-menu of current option with SPACE or ENTER or RIGHT ARROW. Go back to parent menu item with ESC or LEFT ARROW. Close context menu with ESC."},
-{name:"Editor List Box",legend:"Inside a list-box, move to next list item with TAB OR DOWN ARROW. Move to previous list item with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the list option. Press ESC to close the list-box."},{name:"Editor Element Path Bar",legend:"Press ${elementsPathFocus} to navigate to the elements path bar. Move to next element button with TAB or RIGHT ARROW. Move to previous button with SHIFT+TAB or LEFT ARROW. Press SPACE or ENTER to select the element in editor."}]},
-{name:"Commands",items:[{name:" Undo command",legend:"Press ${undo}"},{name:" Redo command",legend:"Press ${redo}"},{name:" Bold command",legend:"Press ${bold}"},{name:" Italic command",legend:"Press ${italic}"},{name:" Underline command",legend:"Press ${underline}"},{name:" Link command",legend:"Press ${link}"},{name:" Toolbar Collapse command",legend:"Press ${toolbarCollapse}"},{name:" Access previous focus space command",legend:"Press ${accessPreviousSpace} to access the closest unreachable focus space before the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},
-{name:" Access next focus space command",legend:"Press ${accessNextSpace} to access the closest unreachable focus space after the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},{name:" Accessibility Help",legend:"Press ${a11yHelp}"},{name:" Paste as plain text",legend:"Press ${pastetext}",legendEdge:"Press ${pastetext}, followed by ${paste}"}]}],tab:"Tab",pause:"Pause",capslock:"Caps Lock",escape:"Escape",pageUp:"Page Up",pageDown:"Page Down",
-leftArrow:"Left Arrow",upArrow:"Up Arrow",rightArrow:"Right Arrow",downArrow:"Down Arrow",insert:"Insert",leftWindowKey:"Left Windows key",rightWindowKey:"Right Windows key",selectKey:"Select key",numpad0:"Numpad 0",numpad1:"Numpad 1",numpad2:"Numpad 2",numpad3:"Numpad 3",numpad4:"Numpad 4",numpad5:"Numpad 5",numpad6:"Numpad 6",numpad7:"Numpad 7",numpad8:"Numpad 8",numpad9:"Numpad 9",multiply:"Multiply",add:"Add",subtract:"Subtract",decimalPoint:"Decimal Point",divide:"Divide",f1:"F1",f2:"F2",f3:"F3",
-f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"Semicolon",equalSign:"Equal Sign",comma:"Comma",dash:"Dash",period:"Period",forwardSlash:"Forward Slash",graveAccent:"Grave Accent",openBracket:"Open Bracket",backSlash:"Backslash",closeBracket:"Close Bracket",singleQuote:"Single Quote"});
\ No newline at end of file
diff --git a/web/modules/ckeditor/vendor/plugins/a11yhelp/dialogs/lang/nb.js b/web/modules/ckeditor/vendor/plugins/a11yhelp/dialogs/lang/nb.js
deleted file mode 100644
index 0cf4f8dd58d35edc648ed6eb9e517690ab0396e9..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/plugins/a11yhelp/dialogs/lang/nb.js
+++ /dev/null
@@ -1,12 +0,0 @@
-/*
- Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
- For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
-*/
-CKEDITOR.plugins.setLang("a11yhelp","nb",{title:"Instruksjoner for tilgjengelighet",contents:"Innhold for hjelp. Trykk ESC for å lukke denne dialogen.",legend:[{name:"Generelt",items:[{name:"Verktøylinje for editor",legend:"Trykk ${toolbarFocus} for å navigere til verktøylinjen. Flytt til neste og forrige verktøylinjegruppe med TAB og SHIFT+TAB. Flytt til neste og forrige verktøylinjeknapp med HØYRE PILTAST og VENSTRE PILTAST. Trykk MELLOMROM eller ENTER for å aktivere verktøylinjeknappen."},{name:"Dialog for editor",
-legend:"Mens du er i en dialog, trykk TAB for å navigere til neste dialogelement, trykk SHIFT+TAB for å flytte til forrige dialogelement, trykk ENTER for å akseptere dialogen, trykk ESC for å avbryte dialogen. Når en dialog har flere faner, kan fanelisten nås med enten ALT+F10 eller med TAB. Når fanelisten er fokusert, går man til neste og forrige fane med henholdsvis HØYRE og VENSTRE PILTAST."},{name:"Kontekstmeny for editor",legend:"Trykk ${contextMenu} eller MENYKNAPP for å åpne kontekstmeny. Gå til neste alternativ i menyen med TAB eller PILTAST NED. Gå til forrige alternativ med SHIFT+TAB eller PILTAST OPP. Trykk MELLOMROM eller ENTER for å velge menyalternativet. Åpne undermenyen på valgt alternativ med MELLOMROM eller ENTER eller HØYRE PILTAST. Gå tilbake til overordnet menyelement med ESC eller VENSTRE PILTAST. Lukk kontekstmenyen med ESC."},
-{name:"Listeboks for editor",legend:"I en listeboks, gå til neste alternativ i listen med TAB eller PILTAST NED. Gå til forrige alternativ i listen med SHIFT+TAB eller PILTAST OPP. Trykk MELLOMROM eller ENTER for å velge alternativet i listen. Trykk ESC for å lukke listeboksen."},{name:"Verktøylinje for elementsti",legend:"Trykk ${elementsPathFocus} for å navigere til verktøylinjen som viser elementsti. Gå til neste elementknapp med TAB eller HØYRE PILTAST. Gå til forrige elementknapp med SHIFT+TAB eller VENSTRE PILTAST. Trykk MELLOMROM eller ENTER for å velge elementet i editoren."}]},
-{name:"Hurtigtaster",items:[{name:"Angre",legend:"Trykk ${undo}"},{name:"Gjør om",legend:"Trykk ${redo}"},{name:"Fet tekst",legend:"Trykk ${bold}"},{name:"Kursiv tekst",legend:"Trykk ${italic}"},{name:"Understreking",legend:"Trykk ${underline}"},{name:"Lenke",legend:"Trykk ${link}"},{name:"Skjul verktøylinje",legend:"Trykk ${toolbarCollapse}"},{name:"Gå til forrige fokusområde",legend:"Trykk ${accessPreviousSpace} for å komme til nærmeste fokusområde før skrivemarkøren som ikke kan nås på vanlig måte, for eksempel to tilstøtende HR-elementer. Gjenta tastekombinasjonen for å komme til fokusområder lenger unna i dokumentet."},
-{name:"Gå til neste fokusområde",legend:"Trykk ${accessNextSpace} for å komme til nærmeste fokusområde etter skrivemarkøren som ikke kan nås på vanlig måte, for eksempel to tilstøtende HR-elementer. Gjenta tastekombinasjonen for å komme til fokusområder lenger unna i dokumentet."},{name:"Hjelp for tilgjengelighet",legend:"Trykk ${a11yHelp}"},{name:"Lim inn som ren tekst",legend:"Trykk ${pastetext}",legendEdge:"Trykk ${pastetext}, etterfulgt av ${past}"}]}],tab:"Tabulator",pause:"Pause",capslock:"Caps Lock",
-escape:"Escape",pageUp:"Page Up",pageDown:"Page Down",leftArrow:"Venstre piltast",upArrow:"Opp-piltast",rightArrow:"Høyre piltast",downArrow:"Ned-piltast",insert:"Insert",leftWindowKey:"Venstre Windows-tast",rightWindowKey:"Høyre Windows-tast",selectKey:"Velg nøkkel",numpad0:"Numerisk tastatur 0",numpad1:"Numerisk tastatur 1",numpad2:"Numerisk tastatur 2",numpad3:"Numerisk tastatur 3",numpad4:"Numerisk tastatur 4",numpad5:"Numerisk tastatur 5",numpad6:"Numerisk tastatur 6",numpad7:"Numerisk tastatur 7",
-numpad8:"Numerisk tastatur 8",numpad9:"Numerisk tastatur 9",multiply:"Multipliser",add:"Legg til",subtract:"Trekk fra",decimalPoint:"Desimaltegn",divide:"Divider",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"Semikolon",equalSign:"Likhetstegn",comma:"Komma",dash:"Bindestrek",period:"Punktum",forwardSlash:"Forover skråstrek",graveAccent:"Grav aksent",openBracket:"Åpne parentes",backSlash:"Bakover skråstrek",
-closeBracket:"Lukk parentes",singleQuote:"Enkelt sitattegn"});
\ No newline at end of file
diff --git a/web/modules/ckeditor/vendor/plugins/a11yhelp/dialogs/lang/nl.js b/web/modules/ckeditor/vendor/plugins/a11yhelp/dialogs/lang/nl.js
deleted file mode 100644
index f778316f3a3c66c850dc0e6279468c27031eea63..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/plugins/a11yhelp/dialogs/lang/nl.js
+++ /dev/null
@@ -1,12 +0,0 @@
-/*
- Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
- For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
-*/
-CKEDITOR.plugins.setLang("a11yhelp","nl",{title:"Toegankelijkheidsinstructies",contents:"Help-inhoud. Druk op ESC om dit dialoog te sluiten.",legend:[{name:"Algemeen",items:[{name:"Werkbalk tekstverwerker",legend:"Druk op ${toolbarFocus} om naar de werkbalk te navigeren. Om te schakelen naar de volgende en vorige werkbalkgroep, gebruik TAB en SHIFT+TAB. Om te schakelen naar de volgende en vorige werkbalkknop, gebruik de PIJL RECHTS en PIJL LINKS. Druk op SPATIE of ENTER om een werkbalkknop te activeren."},
-{name:"Dialoog tekstverwerker",legend:"In een dialoogvenster, druk op TAB om te navigeren naar het volgende veld. Druk op SHIFT+TAB om naar het vorige veld te navigeren. Druk op ENTER om het dialoogvenster te verzenden. Druk op ESC om het dialoogvenster te sluiten. Bij dialoogvensters met meerdere tabbladen kan de tabset bereikt worden met ALT+F10 of met TAB als onderdeel van de tabvolgorde in het dialoogvenster. Als de tabset focus heeft, kun je schakalen naar het volgende en vorige tabblad met respectievelijk PIJL RECHTS en PIJL LINKS."},
-{name:"Contextmenu tekstverwerker",legend:"Druk op ${contextMenu} of APPLICATION KEY om het contextmenu te openen. Schakel naar de volgende menuoptie met TAB of PIJL OMLAAG. Schakel naar de vorige menuoptie met SHIFT+TAB of PIJL OMHOOG. Druk op SPATIE of ENTER om een menuoptie te selecteren. Op een submenu van de huidige optie met SPATIE, ENTER of PIJL RECHTS. Ga terug naar de bovenliggende menuoptie met ESC of PIJL LINKS. Sluit het contextmenu met ESC."},{name:"Keuzelijst tekstverwerker",legend:"In een keuzelijst, schakel naar het volgende item met TAB of PIJL OMLAAG. Schakel naar het vorige item met SHIFT+TAB of PIJL OMHOOG. Druk op SPATIE of ENTER om het item te selecteren. Druk op ESC om de keuzelijst te sluiten."},
-{name:"Elementenpad werkbalk tekstverwerker",legend:"Druk op ${elementsPathFocus} om naar het elementenpad te navigeren. Om te schakelen naar het volgende element, gebruik TAB of PIJL RECHTS. Om te schakelen naar het vorige element, gebruik SHIFT+TAB or PIJL LINKS. Druk op SPATIE of ENTER om een element te selecteren in de tekstverwerker."}]},{name:"Opdrachten",items:[{name:"Ongedaan maken opdracht",legend:"Druk op ${undo}"},{name:"Opnieuw uitvoeren opdracht",legend:"Druk op ${redo}"},{name:"Vetgedrukt opdracht",
-legend:"Druk op ${bold}"},{name:"Cursief opdracht",legend:"Druk op ${italic}"},{name:"Onderstrepen opdracht",legend:"Druk op ${underline}"},{name:"Link opdracht",legend:"Druk op ${link}"},{name:"Werkbalk inklappen opdracht",legend:"Druk op ${toolbarCollapse}"},{name:"Ga naar vorige focus spatie commando",legend:"Druk ${accessPreviousSpace} om toegang te verkrijgen tot de dichtstbijzijnde onbereikbare focus spatie voor de caret, bijvoorbeeld: twee aangrenzende HR elementen. Herhaal de toetscombinatie om de verste focus spatie te bereiken."},
-{name:"Ga naar volgende focus spatie commando",legend:"Druk ${accessNextSpace} om toegang te verkrijgen tot de dichtstbijzijnde onbereikbare focus spatie na de caret, bijvoorbeeld: twee aangrenzende HR elementen. Herhaal de toetscombinatie om de verste focus spatie te bereiken."},{name:"Toegankelijkheidshulp",legend:"Druk op ${a11yHelp}"},{name:"Plakken als platte tekst",legend:"Druk op ${pastetext}",legendEdge:"Druk op ${pastetext}, gevolgd door ${paste}"}]}],tab:"Tab",pause:"Pause",capslock:"Caps Lock",
-escape:"Escape",pageUp:"Page Up",pageDown:"Page Down",leftArrow:"Pijl naar links",upArrow:"Pijl omhoog",rightArrow:"Pijl naar rechts",downArrow:"Pijl naar beneden",insert:"Invoegen",leftWindowKey:"Linker Windows-toets",rightWindowKey:"Rechter Windows-toets",selectKey:"Selecteer toets",numpad0:"Numpad 0",numpad1:"Numpad 1",numpad2:"Numpad 2",numpad3:"Numpad 3",numpad4:"Numpad 4",numpad5:"Numpad 5",numpad6:"Numpad 6",numpad7:"Numpad 7",numpad8:"Numpad 8",numpad9:"Numpad 9",multiply:"Vermenigvuldigen",
-add:"Toevoegen",subtract:"Aftrekken",decimalPoint:"Decimaalteken",divide:"Delen",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"Puntkomma",equalSign:"Is gelijk-teken",comma:"Komma",dash:"Koppelteken",period:"Punt",forwardSlash:"Slash",graveAccent:"Accent grave",openBracket:"Vierkant haakje openen",backSlash:"Backslash",closeBracket:"Vierkant haakje sluiten",singleQuote:"Apostrof"});
\ No newline at end of file
diff --git a/web/modules/ckeditor/vendor/plugins/a11yhelp/dialogs/lang/no.js b/web/modules/ckeditor/vendor/plugins/a11yhelp/dialogs/lang/no.js
deleted file mode 100644
index b91fef763e441c0acc0b879930bd1b0a9fee40b5..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/plugins/a11yhelp/dialogs/lang/no.js
+++ /dev/null
@@ -1,11 +0,0 @@
-/*
- Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
- For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
-*/
-CKEDITOR.plugins.setLang("a11yhelp","no",{title:"Instruksjoner for tilgjengelighet",contents:"Innhold for hjelp. Trykk ESC for å lukke denne dialogen.",legend:[{name:"Generelt",items:[{name:"Verktøylinje for editor",legend:"Trykk ${toolbarFocus} for å navigere til verktøylinjen. Flytt til neste og forrige verktøylinjegruppe med TAB og SHIFT+TAB. Flytt til neste og forrige verktøylinjeknapp med HØYRE PILTAST og VENSTRE PILTAST. Trykk MELLOMROM eller ENTER for å aktivere verktøylinjeknappen."},{name:"Dialog for editor",
-legend:"Inside a dialog, press TAB to navigate to the next dialog element, press SHIFT+TAB to move to the previous dialog element, press ENTER to submit the dialog, press ESC to cancel the dialog. When a dialog has multiple tabs, the tab list can be reached either with ALT+F10 or with TAB as part of the dialog tabbing order. With tab list focused, move to the next and previous tab with RIGHT and LEFT ARROW, respectively."},{name:"Kontekstmeny for editor",legend:"Trykk ${contextMenu} eller MENYKNAPP for å åpne kontekstmeny. Gå til neste alternativ i menyen med TAB eller PILTAST NED. Gå til forrige alternativ med SHIFT+TAB eller PILTAST OPP. Trykk MELLOMROM eller ENTER for å velge menyalternativet. Åpne undermenyen på valgt alternativ med MELLOMROM eller ENTER eller HØYRE PILTAST. Gå tilbake til overordnet menyelement med ESC eller VENSTRE PILTAST. Lukk kontekstmenyen med ESC."},
-{name:"Listeboks for editor",legend:"I en listeboks, gå til neste alternativ i listen med TAB eller PILTAST NED. Gå til forrige alternativ i listen med SHIFT+TAB eller PILTAST OPP. Trykk MELLOMROM eller ENTER for å velge alternativet i listen. Trykk ESC for å lukke listeboksen."},{name:"Verktøylinje for elementsti",legend:"Trykk ${elementsPathFocus} for å navigere til verktøylinjen som viser elementsti. Gå til neste elementknapp med TAB eller HØYRE PILTAST. Gå til forrige elementknapp med SHIFT+TAB eller VENSTRE PILTAST. Trykk MELLOMROM eller ENTER for å velge elementet i editoren."}]},
-{name:"Kommandoer",items:[{name:"Angre",legend:"Trykk ${undo}"},{name:"Gjør om",legend:"Trykk ${redo}"},{name:"Fet tekst",legend:"Trykk ${bold}"},{name:"Kursiv tekst",legend:"Trykk ${italic}"},{name:"Understreking",legend:"Trykk ${underline}"},{name:"Link",legend:"Trykk ${link}"},{name:"Skjul verktøylinje",legend:"Trykk ${toolbarCollapse}"},{name:"Gå til forrige fokusområde",legend:"Trykk ${accessPreviousSpace} for å komme til nærmeste fokusområde før skrivemarkøren som ikke kan nås på vanlig måte, for eksempel to tilstøtende HR-elementer. Gjenta tastekombinasjonen for å komme til fokusområder lenger unna i dokumentet."},
-{name:"Gå til neste fokusområde",legend:"Trykk ${accessNextSpace} for å komme til nærmeste fokusområde etter skrivemarkøren som ikke kan nås på vanlig måte, for eksempel to tilstøtende HR-elementer. Gjenta tastekombinasjonen for å komme til fokusområder lenger unna i dokumentet."},{name:"Hjelp for tilgjengelighet",legend:"Trykk ${a11yHelp}"},{name:"Lim inn som ren tekst",legend:"Press ${pastetext}",legendEdge:"Press ${pastetext}, followed by ${paste}"}]}],tab:"Tab",pause:"Pause",capslock:"Caps Lock",
-escape:"Escape",pageUp:"Page Up",pageDown:"Page Down",leftArrow:"Left Arrow",upArrow:"Up Arrow",rightArrow:"Right Arrow",downArrow:"Down Arrow",insert:"Insert",leftWindowKey:"Left Windows key",rightWindowKey:"Right Windows key",selectKey:"Select key",numpad0:"Numpad 0",numpad1:"Numpad 1",numpad2:"Numpad 2",numpad3:"Numpad 3",numpad4:"Numpad 4",numpad5:"Numpad 5",numpad6:"Numpad 6",numpad7:"Numpad 7",numpad8:"Numpad 8",numpad9:"Numpad 9",multiply:"Multiply",add:"Add",subtract:"Subtract",decimalPoint:"Decimal Point",
-divide:"Divide",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"Semikolon",equalSign:"Likhetstegn",comma:"Komma",dash:"Bindestrek",period:"Punktum",forwardSlash:"Forward Slash",graveAccent:"Grave Accent",openBracket:"Open Bracket",backSlash:"Backslash",closeBracket:"Close Bracket",singleQuote:"Enkelt anførselstegn"});
\ No newline at end of file
diff --git a/web/modules/ckeditor/vendor/plugins/a11yhelp/dialogs/lang/oc.js b/web/modules/ckeditor/vendor/plugins/a11yhelp/dialogs/lang/oc.js
deleted file mode 100644
index 8834c76c2ada420b885e473ea163de10d6e84f68..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/plugins/a11yhelp/dialogs/lang/oc.js
+++ /dev/null
@@ -1,12 +0,0 @@
-/*
- Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
- For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
-*/
-CKEDITOR.plugins.setLang("a11yhelp","oc",{title:"Instruccions d'accessibilitat",contents:"Contengut de l'ajuda. Per tampar aquesta fenèstra, quichatz sus la tòca Escap.",legend:[{name:"General",items:[{name:"Barra d'aisinas de l'editor",legend:"Quichar sus ${toolbarFocus} per accedir a la barra d'aisinas. Se desplaçar cap al groupe seguent o precedent de la barra d'aisinas amb las tòcas Tab e Maj+Tab. Se desplaçar cap al boton seguent o precedent de la barra d'aisinas amb las tòcas Sageta dreita e Sageta esquèrra. Quichar sus la barra d'espaci o la tòca Entrada per activer lo boton de barra d'aisinas."},
-{name:"Fenèstra de l'editor",legend:"Dins una bóstia de dialòg, quichar sus Tab per passar a l'element seguent, quichar sus Maj+Tab per passar a l'element precedent, quichar sus Entrada per validar, quichar sus Escap per anullar. Quand una bóstia de dialòg possedís des onglets, la lista pòt èsser atenta amb Alt+F10 o amb Tab. Dins la lista dels onglets, se desplaçar cap al seguent e lo precedent amb las tòcas Sageta dreita e Sageta esquèrra respectivament."},{name:"Menú contextual de l'editor",legend:"Quichar sus ${contextMenu} o sus la tòca Menú per dobrir lo menú contextual. Se desplaçar ensuite cap a l'opcion seguenta del menú amb las tòcas Tab o Sageta bas. Se desplaçar cap a l'opcion precedenta amb las tòcas Maj+Tab o Sageta naut. Quichar sus la barra d'espaci o la tòca Entrada per seleccionar l'opcion del menu. Quichar sus la barra d'espaci, la tòca Entrada o Sageta dreita per dobrir lo sosmenú de l'opcion seleccionada. Tornar a l'element de menú parent amb la tòca Escap o Sageta esquèrra. Tampar lo menú contextual amb Escap."},
-{name:"Zòna de lista de l'editor",legend:"Dins una lista en menú desenrotlant, se desplaçar cap a l'element seguent de la lista amb las tòcas Tab o Sageta bas. Se desplaçar cap a l'element precedent de la lista amb las tòcas Maj+Tab o Sageta naut. Quichar sus la barra d'espaci o sus Entrada per seleccionar l'opcion dins la lista. Quichar sus Escap per tampar lo menú desenrotlant."},{name:"Barra del camin d'elements de l'editor",legend:"Quichar sus ${elementsPathFocus} per naviguer cap a la barra del fial d'Ariana dels elements. Se desplaçar cap al boton de l'element seguent amb las tòcas Tab o Sageta dreita. Se desplaçar cap al boton precedent amb las tòcas Maj+Tab o Sageta esquèrra. Quichar sus la barra d'espaci o sus Entrada per seleccionar l'element dins l'editor."}]},
-{name:"Comandas",items:[{name:"Anullar la comanda",legend:"Quichar sus ${undo}"},{name:"Comanda restablir",legend:"Quichar sus ${redo}"},{name:" Comanda gras",legend:"Quichar sus ${bold}"},{name:" Comanda italica",legend:"Quichar sus ${italic}"},{name:" Comanda solinhat",legend:"Quichar sus ${underline}"},{name:" Comanda ligam",legend:"Quichar sus ${link}"},{name:"Comanda enrotlar la barra d'aisinas",legend:"Quichar sus ${toolbarCollapse}"},{name:"Comanda d'accès a l'element seleccionable precedent",
-legend:"Quichar sus ${accessNextSpace} per accedir a l'element seleccionable inategnible lo mai pròche abans lo cursor, per exemple : doas linhas orizontalas adjacentas. Repetir la combinason de tòcas per aténher los elements seleccionables precedents."},{name:"Comanda d'accès a l'element seleccionable seguent",legend:"Quichar sus ${accessNextSpace} per accedir a l'element seleccionable inatenhible lo mai pròche aprèp lo cursor, per exemple : doas linhas orizontalas adjacentas. Repetir la combinason de tòcas per aténher los elements seleccionables seguents."},
-{name:" Ajuda sus l'accessibilitat",legend:"Quichar sus ${a11yHelp}"},{name:" Paste as plain text",legend:"Press ${pastetext}",legendEdge:"Press ${pastetext}, followed by ${paste}"}]}],tab:"Tabulacion",pause:"Pausa",capslock:"Verr. Maj.",escape:"Escap",pageUp:"Pagina superiora",pageDown:"Pagina seguenta",leftArrow:"Sageta esquèrra",upArrow:"Sageta naut",rightArrow:"Sageta dreita",downArrow:"Sageta bassa",insert:"Inser",leftWindowKey:"Tòca Windows esquèrra",rightWindowKey:"Tòca Windows dreita",selectKey:"Tòca Seleccionar",
-numpad0:"0 del pavat numeric",numpad1:"1 del pavat numeric",numpad2:"2 del pavat numeric",numpad3:"3 del pavat numeric",numpad4:"4 del pavat numeric",numpad5:"5 del pavat numeric",numpad6:"6 del pavat numeric",numpad7:"7 del pavat numeric",numpad8:"Pavat numeric 8",numpad9:"9 del pavat numeric",multiply:"Multiplicar",add:"Plus",subtract:"Mens",decimalPoint:"Punt decimal",divide:"Devesir",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Verr. Num.",
-scrollLock:"Arrèst desfil.",semiColon:"Punt-virgula",equalSign:"Signe egal",comma:"Virgula",dash:"Jonhent",period:"Punt",forwardSlash:"Barra oblica",graveAccent:"Accent grèu",openBracket:"Parentèsi dobèrta",backSlash:"Barra oblica invèrsa",closeBracket:"Parentèsi tampanta",singleQuote:"Apostròfa"});
\ No newline at end of file
diff --git a/web/modules/ckeditor/vendor/plugins/a11yhelp/dialogs/lang/pl.js b/web/modules/ckeditor/vendor/plugins/a11yhelp/dialogs/lang/pl.js
deleted file mode 100644
index 41dfb9961e8aa60668c7c858cecddb049d2b7e72..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/plugins/a11yhelp/dialogs/lang/pl.js
+++ /dev/null
@@ -1,13 +0,0 @@
-/*
- Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
- For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
-*/
-CKEDITOR.plugins.setLang("a11yhelp","pl",{title:"Instrukcje dotyczące dostępności",contents:"Zawartość pomocy. Wciśnij ESC, aby zamknąć to okno.",legend:[{name:"Informacje ogólne",items:[{name:"Pasek narzędzi edytora",legend:"Naciśnij ${toolbarFocus}, by przejść do paska narzędzi. Przejdź do następnej i poprzedniej grupy narzędzi używając TAB oraz SHIFT+TAB. Przejdź do następnego i poprzedniego przycisku paska narzędzi za pomocą STRZAŁKI W PRAWO lub STRZAŁKI W LEWO. Naciśnij SPACJĘ lub ENTER by aktywować przycisk paska narzędzi."},
-{name:"Okno dialogowe edytora",legend:"Wewnątrz okna dialogowego naciśnij TAB, by przejść do kolejnego elementu tego okna lub SHIFT+TAB, by przejść do poprzedniego elementu okna. Naciśnij ENTER w celu zatwierdzenia opcji okna dialogowego lub ESC w celu anulowania zmian. Jeśli okno dialogowe ma kilka zakładek, do listy zakładek można przejść za pomocą ALT+F10 lub TAB. Gdy lista zakładek jest aktywna, możesz przejść do kolejnej i poprzedniej zakładki za pomocą STRZAŁKI W PRAWO i STRZAŁKI W LEWO."},
-{name:"Menu kontekstowe edytora",legend:"Wciśnij ${contextMenu} lub PRZYCISK APLIKACJI aby otworzyć menu kontekstowe. Przejdź do następnej pozycji menu wciskając TAB lub STRZAŁKĘ W DÓŁ. Przejdź do poprzedniej pozycji menu wciskając SHIFT + TAB lub STRZAŁKĘ W GÓRĘ. Wciśnij SPACJĘ lub ENTER aby wygrać pozycję menu. Otwórz pod-menu obecnej pozycji wciskając SPACJĘ lub ENTER lub STRZAŁKĘ W PRAWO. Wróć do pozycji nadrzędnego menu wciskając ESC lub STRZAŁKĘ W LEWO. Zamknij menu wciskając ESC."},{name:"Lista w edytorze",
-legend:"Wewnątrz listy przejdź do kolejnego elementu listy za pomocą przycisku TAB lub STRZAŁKI W DÓŁ. Przejdź do poprzedniego elementu listy za pomocą SHIFT+TAB lub STRZAŁKI W GÓRĘ. Naciśnij SPACJĘ lub ENTER w celu wybrania opcji z listy. Naciśnij ESC, by zamknąć listę."},{name:"Pasek ścieżki elementów edytora",legend:"Naciśnij ${elementsPathFocus} w celu przejścia do paska ścieżki elementów edytora. W celu przejścia do kolejnego elementu naciśnij klawisz TAB lub STRZAŁKI W PRAWO. W celu przejścia do poprzedniego elementu naciśnij klawisze SHIFT+TAB lub STRZAŁKI W LEWO. By wybrać element w edytorze, użyj klawisza SPACJI lub ENTER."}]},
-{name:"Polecenia",items:[{name:"Polecenie Cofnij",legend:"Naciśnij ${undo}"},{name:"Polecenie Ponów",legend:"Naciśnij ${redo}"},{name:"Polecenie Pogrubienie",legend:"Naciśnij ${bold}"},{name:"Polecenie Kursywa",legend:"Naciśnij ${italic}"},{name:"Polecenie Podkreślenie",legend:"Naciśnij ${underline}"},{name:"Polecenie Wstaw/ edytuj odnośnik",legend:"Naciśnij ${link}"},{name:"Polecenie schowaj pasek narzędzi",legend:"Naciśnij ${toolbarCollapse}"},{name:"Przejdź do poprzedniego miejsca, w którym można ustawić focus",
-legend:"Naciśnij ${accessPreviousSpace}, aby przejść do najbliższego niedostępnego miejsca przed kursorem, w którym można ustawić focus. Przykład: dwa przylegające elementy HR. Powtórz ten skrót klawiaturowy, by dotrzeć do kolejnych takich miejsc."},{name:"Przejdź do następnego miejsca, w którym można ustawić focus",legend:"Naciśnij ${accessNextSpace}, aby przejść do najbliższego niedostępnego miejsca po kursorze, w którym można ustawić focus. Przykład: dwa przylegające elementy HR. Powtórz ten skrót klawiaturowy, by dotrzeć do kolejnych takich miejsc."},
-{name:"Pomoc dotycząca dostępności",legend:"Naciśnij ${a11yHelp}"},{name:"Wklej jako tekst",legend:"Naciśnij ${pastetext}",legendEdge:"Naciśnij ${pastetext}, a następnie ${paste}"}]}],tab:"Tab",pause:"Pause",capslock:"Caps Lock",escape:"Escape",pageUp:"Page Up",pageDown:"Page Down",leftArrow:"Strzałka w lewo",upArrow:"Strzałka w górę",rightArrow:"Strzałka w prawo",downArrow:"Strzałka w dół",insert:"Insert",leftWindowKey:"Lewy klawisz Windows",rightWindowKey:"Prawy klawisz Windows",selectKey:"Klawisz wyboru",
-numpad0:"Klawisz 0 na klawiaturze numerycznej",numpad1:"Klawisz 1 na klawiaturze numerycznej",numpad2:"Klawisz 2 na klawiaturze numerycznej",numpad3:"Klawisz 3 na klawiaturze numerycznej",numpad4:"Klawisz 4 na klawiaturze numerycznej",numpad5:"Klawisz 5 na klawiaturze numerycznej",numpad6:"Klawisz 6 na klawiaturze numerycznej",numpad7:"Klawisz 7 na klawiaturze numerycznej",numpad8:"Klawisz 8 na klawiaturze numerycznej",numpad9:"Klawisz 9 na klawiaturze numerycznej",multiply:"Przemnóż",add:"Plus",
-subtract:"Minus",decimalPoint:"Separator dziesiętny",divide:"Podziel",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"Średnik",equalSign:"Znak równości",comma:"Przecinek",dash:"Pauza",period:"Kropka",forwardSlash:"Ukośnik prawy",graveAccent:"Akcent słaby",openBracket:"Nawias kwadratowy otwierający",backSlash:"Ukośnik lewy",closeBracket:"Nawias kwadratowy zamykający",singleQuote:"Apostrof"});
\ No newline at end of file
diff --git a/web/modules/ckeditor/vendor/plugins/a11yhelp/dialogs/lang/pt-br.js b/web/modules/ckeditor/vendor/plugins/a11yhelp/dialogs/lang/pt-br.js
deleted file mode 100644
index 6fe5403c5b11173a6f03f17b3a906f39060cc036..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/plugins/a11yhelp/dialogs/lang/pt-br.js
+++ /dev/null
@@ -1,13 +0,0 @@
-/*
- Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
- For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
-*/
-CKEDITOR.plugins.setLang("a11yhelp","pt-br",{title:"Instruções de Acessibilidade",contents:"Conteúdo da Ajuda. Para fechar este diálogo pressione ESC.",legend:[{name:"Geral",items:[{name:"Barra de Ferramentas do Editor",legend:"Pressione ${toolbarFocus} para navegar para a barra de ferramentas. Mova para o anterior ou próximo grupo de ferramentas com TAB e SHIFT+TAB. Mova para o anterior ou próximo botão com SETA PARA DIREITA or SETA PARA ESQUERDA. Pressione ESPAÇO ou ENTER para ativar o botão da barra de ferramentas."},
-{name:"Diálogo do Editor",legend:"Dentro de um diálogo, pressione TAB para navegar para o próximo elemento. Pressione SHIFT+TAB para mover para o elemento anterior. Pressione ENTER ara enviar o diálogo. pressione ESC para cancelar o diálogo. Quando um diálogo tem múltiplas abas, a lista de abas pode ser acessada com ALT+F10 ou TAB, como parte da ordem de tabulação do diálogo. Com a lista de abas em foco, mova para a próxima aba e para a aba anterior com a SETA DIREITA ou SETA ESQUERDA, respectivamente."},
-{name:"Menu de Contexto do Editor",legend:"Pressione ${contextMenu} ou TECLA DE MENU para abrir o menu de contexto, então mova para a próxima opção com TAB ou SETA PARA BAIXO. Mova para a anterior com SHIFT+TAB ou SETA PARA CIMA. Pressione ESPAÇO ou ENTER para selecionar a opção do menu. Abra o submenu da opção atual com ESPAÇO ou ENTER ou SETA PARA DIREITA. Volte para o menu pai com ESC ou SETA PARA ESQUERDA. Feche o menu de contexto com ESC."},{name:"Caixa de Lista do Editor",legend:"Dentro de uma caixa de lista, mova para o próximo item com TAB ou SETA PARA BAIXO. Mova para o item anterior com SHIFT+TAB ou SETA PARA CIMA. Pressione ESPAÇO ou ENTER para selecionar uma opção na lista. Pressione ESC para fechar a caixa de lista."},
-{name:"Barra de Caminho do Elementos do Editor",legend:"Pressione ${elementsPathFocus} para a barra de caminho dos elementos. Mova para o próximo botão de elemento com TAB ou SETA PARA DIREITA. Mova para o botão anterior com SHIFT+TAB ou SETA PARA ESQUERDA. Pressione ESPAÇO ou ENTER para selecionar o elemento no editor."}]},{name:"Comandos",items:[{name:" Comando Desfazer",legend:"Pressione ${undo}"},{name:" Comando Refazer",legend:"Pressione ${redo}"},{name:" Comando Negrito",legend:"Pressione ${bold}"},
-{name:" Comando Itálico",legend:"Pressione ${italic}"},{name:" Comando Sublinhado",legend:"Pressione ${underline}"},{name:" Comando Link",legend:"Pressione ${link}"},{name:" Comando Fechar Barra de Ferramentas",legend:"Pressione ${toolbarCollapse}"},{name:"Acessar o comando anterior de spaço de foco",legend:"Pressione ${accessNextSpace} para acessar o espaço de foco não alcançável mais próximo antes do cursor, por exemplo: dois elementos HR adjacentes. Repita a combinação de teclas para alcançar espaços de foco distantes."},
-{name:"Acessar próximo fomando de spaço de foco",legend:"Pressione ${accessNextSpace} para acessar o espaço de foco não alcançável mais próximo após o cursor, por exemplo: dois elementos HR adjacentes. Repita a combinação de teclas para alcançar espaços de foco distantes."},{name:" Ajuda de Acessibilidade",legend:"Pressione ${a11yHelp}"},{name:"Colar como texto sem formatação",legend:"Pressione ${pastetext}",legendEdge:"Pressione ${pastetext}, seguido de ${paste}"}]}],tab:"Tecla Tab",pause:"Pause",
-capslock:"Caps Lock",escape:"Escape",pageUp:"Page Up",pageDown:"Page Down",leftArrow:"Seta à Esquerda",upArrow:"Seta à Cima",rightArrow:"Seta à Direita",downArrow:"Seta à Baixo",insert:"Insert",leftWindowKey:"Tecla do Windows Esquerda",rightWindowKey:"Tecla do Windows Direita",selectKey:"Tecla Selecionar",numpad0:"0 do Teclado Numérico",numpad1:"1 do Teclado Numérico",numpad2:"2 do Teclado Numérico",numpad3:"3 do Teclado Numérico",numpad4:"4 do Teclado Numérico",numpad5:"5 do Teclado Numérico",numpad6:"6 do Teclado Numérico",
-numpad7:"7 do Teclado Numérico",numpad8:"8 do Teclado Numérico",numpad9:"9 do Teclado Numérico",multiply:"Multiplicar",add:"Mais",subtract:"Subtrair",decimalPoint:"Ponto",divide:"Dividir",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"Ponto-e-vírgula",equalSign:"Igual",comma:"Vírgula",dash:"Hífen",period:"Ponto",forwardSlash:"Barra",graveAccent:"Acento Grave",openBracket:"Abrir Conchetes",
-backSlash:"Contra-barra",closeBracket:"Fechar Colchetes",singleQuote:"Aspas Simples"});
\ No newline at end of file
diff --git a/web/modules/ckeditor/vendor/plugins/a11yhelp/dialogs/lang/pt.js b/web/modules/ckeditor/vendor/plugins/a11yhelp/dialogs/lang/pt.js
deleted file mode 100644
index 95519a15baccc0de02f7db1f4426e0eea3b43291..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/plugins/a11yhelp/dialogs/lang/pt.js
+++ /dev/null
@@ -1,12 +0,0 @@
-/*
- Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
- For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
-*/
-CKEDITOR.plugins.setLang("a11yhelp","pt",{title:"Instruções de acessibilidade",contents:"Conteúdo de ajuda. Use a tecla ESC para fechar esta janela.",legend:[{name:"Geral",items:[{name:"Barra de ferramentas do editor",legend:"Clique em ${toolbarFocus} para navegar na barra de ferramentas. Para navegar entre o grupo da barra de ferramentas anterior e seguinte use TAB e SHIFT+TAB. Para navegar entre o botão da barra de ferramentas seguinte e anterior use a SETA DIREITA ou SETA ESQUERDA. Carregue em ESPAÇO ou ENTER para ativar o botão da barra de ferramentas."},
-{name:"Janela do editor",legend:"Dentro de uma janela de diálogo, use TAB para navegar para o campo seguinte; use SHIFT + TAB para mover para o campo anterior, use ENTER para submeter a janela, use ESC para cancelar a janela. Para as janelas que tenham vários separadores, use ALT + F10 para navegar na lista de separadores. Na lista pode mover entre o separador seguinte ou anterior com SETA DIREITA e SETA ESQUERDA, respetivamente"},{name:"Menu de contexto do editor",legend:"Clique em ${contextMenu} ou TECLA APLICAÇÃO para abrir o menu de contexto. Depois vá para a opção do menu seguinte com TAB ou SETA PARA BAIXO. Vá para a opção anterior com  SHIFT+TAB ou SETA PARA CIMA. Pressione ESPAÇO ou ENTER para selecionar a opção do menu.  Abra o submenu da opção atual com ESPAÇO, ENTER ou SETA DIREITA. Vá para o item do menu contentor com ESC ou SETA ESQUERDA. Feche o menu de contexto com ESC."},
-{name:"Editor de caixa em lista",legend:"Dentro de uma lista, para navegar para o item seguinte da lista use TAB ou SETA PARA BAIXO. Para o item anterior da lista use SHIFT+TAB ou SETA PARA BAIXO. Carregue em ESPAÇO ou ENTER para selecionar a opção lista. Carregue em ESC para fechar a caixa da lista."},{name:"Editor da barra de caminho dos elementos",legend:"Clique em ${elementsPathFocus} para navegar na barra de caminho dos elementos. Para o botão do elemento seguinte use TAB ou SETA DIREITA. para o botão anterior use SHIFT+TAB ou SETA ESQUERDA. Carregue em ESPAÇO ou ENTER para selecionar o elemento no editor."}]},
-{name:"Comandos",items:[{name:"Comando de anular",legend:"Carregar ${undo}"},{name:"Comando de refazer",legend:"Clique ${redo}"},{name:"Comando de negrito",legend:"Pressione ${bold}"},{name:"Comando de itálico",legend:"Pressione ${italic}"},{name:"Comando de sublinhado",legend:"Pressione ${underline}"},{name:"Comando de hiperligação",legend:"Pressione ${link}"},{name:"Comando de ocultar barra de ferramentas",legend:"Pressione ${toolbarCollapse}"},{name:"Aceder ao comando espaço de foco anterior",
-legend:"Clique em ${accessPreviousSpace} para aceder ao espaço do focos inalcançável mais perto antes do sinal de omissão, por exemplo: dois elementos HR adjacentes. Repetir a combinação da chave para alcançar os espaços dos focos distantes."},{name:"Acesso comando do espaço focus seguinte",legend:"Pressione ${accessNextSpace} para aceder ao espaço do focos inalcançável mais perto depois do sinal de omissão, por exemplo: dois elementos HR adjacentes. Repetir a combinação da chave para alcançar os espaços dos focos distantes."},
-{name:"Ajuda a acessibilidade",legend:"Pressione ${a11yHelp}"},{name:" Paste as plain text",legend:"Press ${pastetext}",legendEdge:"Press ${pastetext}, followed by ${paste}"}]}],tab:"Separador",pause:"Pausa",capslock:"Maiúsculas",escape:"Esc",pageUp:"Subir página",pageDown:"Descer página",leftArrow:"Seta esquerda",upArrow:"Seta para cima",rightArrow:"Seta direita",downArrow:"Seta para baixo",insert:"Inserir",leftWindowKey:"Tecla esquerda Windows",rightWindowKey:"Tecla direita Windows",selectKey:"Selecionar tecla",
-numpad0:"Numpad 0",numpad1:"Numpad 1",numpad2:"Numpad 2",numpad3:"Numpad 3",numpad4:"Numpad 4",numpad5:"Numpad 5",numpad6:"Numpad 6",numpad7:"Numpad 7",numpad8:"Numpad 8",numpad9:"Numpad 9",multiply:"Multiplicar",add:"Adicionar",subtract:"Subtrair",decimalPoint:"Ponto decimal",divide:"Separar",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"Ponto e vírgula",equalSign:"Sinald e igual",comma:"Vírgula",
-dash:"Cardinal",period:"Ponto",forwardSlash:"Forward Slash",graveAccent:"Acento grave",openBracket:"Open Bracket",backSlash:"Backslash",closeBracket:"Close Bracket",singleQuote:"Plica"});
\ No newline at end of file
diff --git a/web/modules/ckeditor/vendor/plugins/a11yhelp/dialogs/lang/ro.js b/web/modules/ckeditor/vendor/plugins/a11yhelp/dialogs/lang/ro.js
deleted file mode 100644
index 2aadf15fc20a70185b46ccca0ab679874db229b9..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/plugins/a11yhelp/dialogs/lang/ro.js
+++ /dev/null
@@ -1,12 +0,0 @@
-/*
- Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
- For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
-*/
-CKEDITOR.plugins.setLang("a11yhelp","ro",{title:"Instrucțiuni Accesibilitate",contents:"Cuprins. Pentru a închide acest dialog, apăsați tasta ESC.",legend:[{name:"General",items:[{name:"Editor bară de instrumente.",legend:"Apasă ${toolbarFocus} pentru a naviga pe de instrumente. Pentru deplasarea la următorul sau anteriorul grup de instrumente se folosesc tastele TAB și SHIFT+TAB. Pentru deplasare pe urmatorul sau anteriorul instrument se folosesc tastele SĂGEATĂ DREAPTA sau SĂGEATĂ STÂNGA. Tasta SPAȚIU sau ENTER activează instrumentul."},
-{name:"Dialog editor",legend:"În interiorul unui dialog, se apasă TAB pentru navigarea la următorul element de dialog, SHIFT+TAB pentru deplasarea la anteriorul element de dialog, ENTER pentru validare dialog, ESC pentru anulare dialog. Când un dialog are secțiuni multiple, lista secțiunilor este accesibilă cu ALT+F10 sau cu TAB ca parte a ordonării secționării dialogului. Cu lista secțiunii activată, deplasarea înainte înapoi se face cu tastele SĂGEATĂ DREAPTA și respectiv STÂNGA."},{name:"Editor meniu contextual",
-legend:"Apasă ${contextMenu} sau TASTA MENIU pentru a deschide meniul contextual. Se trece la următoarea opțiune din meniu cu TAB sau SĂGEATĂ JOS. La opțiunea anterioară cu SHIFT+TAB sau SĂGEATĂ SUS. Se apasă SPAȚIU sau ENTER pentru a selecta opțiunea. Deschide sub-meniul opțiunii curente cu SPAȚIU sau ENTER sau SĂGEATĂ DREAPTA. Se revine la elementul din meniul părinte cu ESC sau SĂGEATĂ STÂNGA. Închide meniul de context cu ESC."},{name:"Caseta listă a editorului",legend:"În interiorul unei liste, treci la următorull element cu TAB sau SĂGEATĂ JOS. Treci la elementul anterior din listă cu SHIFT+TAB sau SĂGEATĂ SUS. Apasă SPAȚIU sau ENTER pentru a selecta opțiunea din listă. Apasă ESC pentru a închide lista."},
-{name:"Bara căii editorului de elemente",legend:"Apasă ${elementsPathFocus} pentru navigare pe elementele barei. Mergi la următorul buton cu TAB sau SĂGEATĂ JOS. Treci la butonul anterior din listă cu SHIFT+TAB sau SĂGEATĂ SUS. Apasă SPAȚIU sau ENTER pentru a selecta butonul în editor."}]},{name:"Comenzi",items:[{name:"Revino anterior (Undo)",legend:"Apasă ${undo}"},{name:"Comanda precedentă",legend:"Apasă ${redo}"},{name:"Îngroșat (Bold)",legend:"Apasă ${bold}"},{name:"Înclinat (Italic)",legend:"Apasă ${italic}"},
-{name:"Subliniere (Underline)",legend:"Apasă ${underline}"},{name:"Legatură (Link)",legend:"Apasă ${link}"},{name:"Desfășurare Bară instrumente",legend:"Apasă ${toolbarCollapse}"},{name:"Accesare spațiu focus anterior",legend:"Apasă ${accessPreviousSpace} pentru a accesa cel mai apropiat spațiu focus indisponibil înaintea cursorului, de exemplu: 2 elemente adiacente HR. Repetă combinația de taste pentru a accesa spațiile îndepărtate de focus."},{name:"Accesare spațiu focus următor",legend:"Apasă ${accessNextSpace} pentru a accesa cel mai apropiat spațiu focus indisponibil după cursor, de exemplu: 2 elemente adiacente HR. Repetă combinația de taste pentru a accesa spațiile îndepărtate de focus."},
-{name:"Ajutor Accesibilitate",legend:"Apasă ${a11yHelp}"},{name:"Adaugă ca Text simplu (Plain Text)",legend:"Apasă ${pastetext}",legendEdge:"Apasă ${pastetext}, urmat de ${paste}"}]}],tab:"TAB",pause:"Pauză",capslock:"Majuscule",escape:"Esc - renunță",pageUp:"Pagină sus",pageDown:"Săgeată jos",leftArrow:"Săgeată stânga",upArrow:"Săgeată sus",rightArrow:"Săgeată dreapta",downArrow:"Săgeată jos",insert:"Inserează",leftWindowKey:"Windows stânga",rightWindowKey:"Windows dreapta",selectKey:"Tasta Selecție",
-numpad0:"0 Numeric",numpad1:"1 Numeric",numpad2:"2 Numeric",numpad3:"3 Numeric",numpad4:"4 Numeric",numpad5:"5 Numeric",numpad6:"6 Numeric",numpad7:"7 Numeric",numpad8:"8 Numeric",numpad9:"9 Numeric",multiply:"Înmulțire",add:"Adunare",subtract:"Scădere",decimalPoint:"Punct zecimal",divide:"Împărțire",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"NumLock",scrollLock:"Scroll Lock",semiColon:"Punct și virgulă",equalSign:"Egal",comma:"Virgulă",
-dash:"Linie",period:"Punct",forwardSlash:"Slash",graveAccent:"Accent grav",openBracket:"Paranteză dreaptă stânga",backSlash:"Backslash",closeBracket:"Paranteză dreaptă dreapta",singleQuote:"Ghilimea simplă"});
\ No newline at end of file
diff --git a/web/modules/ckeditor/vendor/plugins/a11yhelp/dialogs/lang/ru.js b/web/modules/ckeditor/vendor/plugins/a11yhelp/dialogs/lang/ru.js
deleted file mode 100644
index 32e2dc519d67e57a3c2f379991d1298cb3673a75..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/plugins/a11yhelp/dialogs/lang/ru.js
+++ /dev/null
@@ -1,11 +0,0 @@
-/*
- Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
- For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
-*/
-CKEDITOR.plugins.setLang("a11yhelp","ru",{title:"Горячие клавиши",contents:"Помощь. Для закрытия этого окна нажмите ESC.",legend:[{name:"Основное",items:[{name:"Панель инструментов",legend:"Нажмите ${toolbarFocus} для перехода к панели инструментов. Для перемещения между группами панели инструментов используйте TAB и SHIFT+TAB. Для перемещения между кнопками панели иструментов используйте кнопки ВПРАВО или ВЛЕВО. Нажмите ПРОБЕЛ или ENTER для запуска кнопки панели инструментов."},{name:"Диалоги",legend:'Внутри диалога, нажмите TAB чтобы перейти к следующему элементу диалога, нажмите SHIFT+TAB чтобы перейти к предыдущему элементу диалога, нажмите ENTER чтобы отправить диалог, нажмите ESC чтобы отменить диалог. Когда диалоговое окно имеет несколько вкладок, получить доступ к панели вкладок как части диалога можно нажатием или сочетания ALT+F10 или TAB, при этом активные элементы диалога будут перебираться с учетом порядка табуляции. При активной панели вкладок, переход к следующей или предыдущей вкладке осуществляется нажатием стрелки "ВПРАВО" или стрелки "ВЛЕВО" соответственно.'},
-{name:"Контекстное меню",legend:'Нажмите ${contextMenu} или клавишу APPLICATION, чтобы открыть контекстное меню. Затем перейдите к следующему пункту меню с помощью TAB или стрелкой "ВНИЗ". Переход к предыдущей опции - SHIFT+TAB или стрелкой "ВВЕРХ". Нажмите SPACE, или ENTER, чтобы задействовать опцию меню. Открыть подменю текущей опции - SPACE или ENTER или стрелкой "ВПРАВО". Возврат к родительскому пункту меню - ESC или стрелкой "ВЛЕВО". Закрытие контекстного меню - ESC.'},{name:"Редактор списка",
-legend:'Внутри окна списка, переход к следующему пункту списка - TAB или стрелкой "ВНИЗ". Переход к предыдущему пункту списка - SHIFT+TAB или стрелкой "ВВЕРХ". Нажмите SPACE, или ENTER, чтобы задействовать опцию списка. Нажмите ESC, чтобы закрыть окно списка.'},{name:"Путь к элементу",legend:'Нажмите ${elementsPathFocus}, чтобы перейти к панели пути элементов. Переход к следующей кнопке элемента - TAB или стрелкой "ВПРАВО". Переход к предыдущей кнопку - SHIFT+TAB или стрелкой "ВЛЕВО". Нажмите SPACE, или ENTER, чтобы выбрать элемент в редакторе.'}]},
-{name:"Команды",items:[{name:"Отменить",legend:"Нажмите ${undo}"},{name:"Повторить",legend:"Нажмите ${redo}"},{name:"Полужирный",legend:"Нажмите ${bold}"},{name:"Курсив",legend:"Нажмите ${italic}"},{name:"Подчеркнутый",legend:"Нажмите ${underline}"},{name:"Гиперссылка",legend:"Нажмите ${link}"},{name:"Свернуть панель инструментов",legend:"Нажмите ${toolbarCollapse}"},{name:"Команды доступа к предыдущему фокусному пространству",legend:'Нажмите ${accessPreviousSpace}, чтобы обратиться к ближайшему недостижимому фокусному пространству перед символом "^", например: два смежных HR элемента. Повторите комбинацию клавиш, чтобы достичь отдаленных фокусных пространств.'},
-{name:"Команды доступа к следующему фокусному пространству",legend:"Press ${accessNextSpace} to access the closest unreachable focus space after the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},{name:"Справка по горячим клавишам",legend:"Нажмите ${a11yHelp}"},{name:"Вставить только текст",legend:"Нажмите ${pastetext}",legendEdge:"Нажмите ${pastetext} и затем ${paste}"}]}],tab:"Tab",pause:"Pause",capslock:"Caps Lock",escape:"Esc",pageUp:"Page Up",
-pageDown:"Page Down",leftArrow:"Стрелка влево",upArrow:"Стрелка вверх",rightArrow:"Стрелка вправо",downArrow:"Стрелка вниз",insert:"Insert",leftWindowKey:"Левая клавиша Windows",rightWindowKey:"Правая клавиша Windows",selectKey:"Выбрать",numpad0:"Цифра 0",numpad1:"Цифра 1",numpad2:"Цифра 2",numpad3:"Цифра 3",numpad4:"Цифра 4",numpad5:"Цифра 5",numpad6:"Цифра 6",numpad7:"Цифра 7",numpad8:"Цифра 8",numpad9:"Цифра 9",multiply:"Умножить",add:"Плюс",subtract:"Вычесть",decimalPoint:"Десятичная точка",divide:"Делить",
-f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"Точка с запятой",equalSign:"Равно",comma:"Запятая",dash:"Тире",period:"Точка",forwardSlash:"Наклонная черта",graveAccent:"Апостроф",openBracket:"Открыть скобку",backSlash:"Обратная наклонная черта",closeBracket:"Закрыть скобку",singleQuote:"Одинарная кавычка"});
\ No newline at end of file
diff --git a/web/modules/ckeditor/vendor/plugins/a11yhelp/dialogs/lang/si.js b/web/modules/ckeditor/vendor/plugins/a11yhelp/dialogs/lang/si.js
deleted file mode 100644
index 5cded6c9bbf1c65cd1c0ab6fb24366d47af65c63..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/plugins/a11yhelp/dialogs/lang/si.js
+++ /dev/null
@@ -1,10 +0,0 @@
-/*
- Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
- For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
-*/
-CKEDITOR.plugins.setLang("a11yhelp","si",{title:"ළඟා වියහැකි ",contents:"උදව් සඳහා අන්තර්ගතය.නික්මයෙමට ESC බොත්තම ඔබන්න",legend:[{name:"පොදු කරුණු",items:[{name:"සංස්කරණ මෙවලම් ",legend:"ඔබන්න ${මෙවලම් තීරු අවධානය} මෙවලම් තීරුවේ එහා මෙහා යෑමට.ඉදිරියට යෑමට හා ආපසු යෑමට මෙවලම් තීරුකාණ්ඩය හා TAB හා SHIFT+TAB .ඉදිරියට යෑමට හා ආපසු යෑමට මෙවලම් තීරු බොත්තම සමග RIGHT ARROW හෝ LEFT ARROW.මෙවලම් තීරු බොත්තම සක්‍රිය කර ගැනීමට SPACE හෝ ENTER බොත්තම ඔබන්න."},{name:"සංස්කරණ ",legend:"Inside a dialog, press TAB to navigate to the next dialog element, press SHIFT+TAB to move to the previous dialog element, press ENTER to submit the dialog, press ESC to cancel the dialog. When a dialog has multiple tabs, the tab list can be reached either with ALT+F10 or with TAB as part of the dialog tabbing order. With tab list focused, move to the next and previous tab with RIGHT and LEFT ARROW, respectively."},
-{name:"සංස්කරණ අඩංගුවට ",legend:"ඔබන්න ${අන්තර්ගත මෙනුව} හෝ  APPLICATION KEY  අන්තර්ගත-මෙනුව විවුරතකිරීමට. ඊළඟ මෙනුව-ව්කල්පයන්ට යෑමට TAB හෝ DOWN ARROW බොත්තම ද, පෙර විකල්පයන්ටයෑමට SHIFT+TAB හෝ  UP ARROW බොත්තම ද, මෙනුව-ව්කල්පයන් තේරීමට SPACE හෝ ENTER බොත්තම ද,  දැනට විවුර්තව ඇති උප-මෙනුවක වීකල්ප තේරීමට SPACE හෝ ENTER හෝ RIGHT ARROW ද, නැවත පෙර ප්‍රධාන මෙනුවට යෑමට  ESC හෝ LEFT ARROW බොත්තම ද.  අන්තර්ගත-මෙනුව වැසීමට  ESC බොත්තම ද ඔබන්න."},{name:"සංස්කරණ තේරුම් ",legend:"තේරුම් කොටුව තුළ , ඊළඟ අයිතමයට යෑමට TAB හෝ DOWN ARROW , පෙර අයිතමයට යෑමට SHIFT+TAB හෝ UP ARROW . අයිතම විකල්පයන් තේරීමට SPACE හෝ ENTER ,තේරුම් කොටුව වැසීමට ESC බොත්තම් ද ඔබන්න."},
-{name:"සංස්කරණ අංග සහිත ",legend:"ඔබන්න ${මෙවලම් තීරු අවධානය} මෙවලම් තීරුවේ එහා මෙහා යෑමට.ඉදිරියට යෑමට හා ආපසු යෑමට මෙවලම් තීරුකාණ්ඩය හා TAB හා SHIFT+TAB .ඉදිරියට යෑමට හා ආපසු යෑමට මෙවලම් තීරු බොත්තම සමග RIGHT ARROW හෝ LEFT ARROW.මෙවලම් තීරු බොත්තම සක්‍රිය කර ගැනීමට SPACE හෝ ENTER බොත්තම ඔබන්න."}]},{name:"විධාන",items:[{name:"විධානය වෙනස් ",legend:"ඔබන්න ${වෙනස් කිරීම}"},{name:"විධාන නැවත් පෙර පරිදිම වෙනස්කර ගැනීම.",legend:"ඔබන්න ${නැවත් පෙර පරිදිම වෙනස්කර ගැනීම}"},{name:"තද අකුරින් විධාන",legend:"ඔබන්න ${තද }"},
-{name:"බැධී අකුරු විධාන",legend:"ඔබන්න ${බැධී අකුරු }"},{name:"යටින් ඉරි ඇද ඇති විධාන.",legend:"ඔබන්න ${යටින් ඉරි ඇද ඇති}"},{name:"සම්බන්ධිත විධාන",legend:"ඔබන්න ${සම්බන්ධ }"},{name:"මෙවලම් තීරු හැකුලුම් විධාන",legend:"ඔබන්න ${මෙවලම් තීරු හැකුලුම් }"},{name:"යොමුවීමට පෙර  වැදගත්  විධාන",legend:"ඔබන්න ${යොමුවීමට ඊළඟ }"},{name:"යොමුවීමට ඊළග වැදගත්  විධාන",legend:"ඔබන්න ${යොමුවීමට ඊළඟ }"},{name:"ප්‍රවේශ ",legend:"ඔබන්න  ${a11y }"},{name:" Paste as plain text",legend:"Press ${pastetext}",legendEdge:"Press ${pastetext}, followed by ${paste}"}]}],
-tab:"Tab",pause:"Pause",capslock:"Caps Lock",escape:"Escape",pageUp:"Page Up",pageDown:"Page Down",leftArrow:"Left Arrow",upArrow:"Up Arrow",rightArrow:"Right Arrow",downArrow:"Down Arrow",insert:"Insert",leftWindowKey:"Left Windows key",rightWindowKey:"Right Windows key",selectKey:"Select key",numpad0:"Numpad 0",numpad1:"Numpad 1",numpad2:"Numpad 2",numpad3:"Numpad 3",numpad4:"Numpad 4",numpad5:"Numpad 5",numpad6:"Numpad 6",numpad7:"Numpad 7",numpad8:"Numpad 8",numpad9:"Numpad 9",multiply:"Multiply",
-add:"Add",subtract:"Subtract",decimalPoint:"Decimal Point",divide:"Divide",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"Semicolon",equalSign:"Equal Sign",comma:"Comma",dash:"Dash",period:"Period",forwardSlash:"Forward Slash",graveAccent:"Grave Accent",openBracket:"Open Bracket",backSlash:"Backslash",closeBracket:"Close Bracket",singleQuote:"Single Quote"});
\ No newline at end of file
diff --git a/web/modules/ckeditor/vendor/plugins/a11yhelp/dialogs/lang/sk.js b/web/modules/ckeditor/vendor/plugins/a11yhelp/dialogs/lang/sk.js
deleted file mode 100644
index aa3a2fac8cb090717059699cd6fbb301afa69764..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/plugins/a11yhelp/dialogs/lang/sk.js
+++ /dev/null
@@ -1,11 +0,0 @@
-/*
- Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
- For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
-*/
-CKEDITOR.plugins.setLang("a11yhelp","sk",{title:"Inštrukcie prístupnosti",contents:"Pomocný obsah. Pre zatvorenie tohto okna, stlačte ESC.",legend:[{name:"Všeobecne",items:[{name:"Lišta nástrojov editora",legend:"Stlačením ${toolbarFocus} prejdete na panel nástrojov. Medzi ďalšou a predchádzajúcou skupinou sa pohybujete s TAB a SHIFT+TAB. Medzi ďalším a predchádzajúcim tlačidlom na panelu nástrojov sa pohybujete s ŠÍPKA VPRAVO a ŠÍPKA VĽAVO. Stlačte medzerník alebo ENTER pre aktiváciu tlačidla lišty nástrojov. Po aktivácii tlačidla sa fókus presunie späť do editačnej oblasti."},
-{name:"Editorový dialóg",legend:"V dialógovom okne stlačte TAB pre presun na ďalší prvok, SHIFT+TAB pre presun na predchádzajúci prvok, ENTER pre odoslanie, ESC pre zrušenie. Keď má dialógové okno viacero kariet, zoznam kariet dosiahnete buď stlačením ALT+F10 alebo s TAB v príslušnom poradí kariet. So zameraným zoznamom kariet sa pohybujte k ďalšej alebo predchádzajúcej karte cez PRAVÚ a ĽAVÚ ŠÍPKU."},{name:"Editorové kontextové menu",legend:"Stlačte ${contextMenu} alebo APPLICATION KEY pre otvorenie kontextového menu. Potom sa presúvajte na ďalšie možnosti menu s TAB alebo dolnou šípkou. Presunte sa k predchádzajúcej možnosti s SHIFT+TAB alebo hornou šípkou. Stlačte medzerník alebo ENTER pre výber možnosti menu. Otvorte pod-menu danej možnosti s medzerníkom, alebo ENTER, alebo pravou šípkou. Vráťte sa späť do položky rodičovského menu s ESC alebo ľavou šípkou. Zatvorte kontextové menu s ESC."},
-{name:"Editorov box zoznamu",legend:"V boxe zoznamu, presuňte sa na ďalšiu položku v zozname s TAB alebo dolnou šípkou. Presuňte sa k predchádzajúcej položke v zozname so SHIFT+TAB alebo hornou šípkou. Stlačte medzerník alebo ENTER pre výber možnosti zoznamu. Stlačte ESC pre zatvorenie boxu zoznamu."},{name:"Editorove pásmo cesty prvku",legend:"Stlačte ${elementsPathFocus} pre navigovanie na pásmo cesty elementu. Presuňte sa na tlačidlo ďalšieho prvku s TAB alebo pravou šípkou. Presuňte sa k predchádzajúcemu tlačidlu s SHIFT+TAB alebo ľavou šípkou. Stlačte medzerník alebo ENTER pre výber prvku v editore."}]},
-{name:"Príkazy",items:[{name:"Vrátiť príkazy",legend:"Stlačte ${undo}"},{name:"Nanovo vrátiť príkaz",legend:"Stlačte ${redo}"},{name:"Príkaz na stučnenie",legend:"Stlačte ${bold}"},{name:"Príkaz na kurzívu",legend:"Stlačte ${italic}"},{name:"Príkaz na podčiarknutie",legend:"Stlačte ${underline}"},{name:"Príkaz na odkaz",legend:"Stlačte ${link}"},{name:"Príkaz na zbalenie lišty nástrojov",legend:"Stlačte ${toolbarCollapse}"},{name:"Prejsť na predchádzajúcu zamerateľnú medzeru príkazu",legend:"Stlačte ${accessPreviousSpace} pre prístup na najbližšie nedosiahnuteľné zamerateľné medzery pred vsuvkuo. Napríklad: dve za sebou idúce horizontálne čiary. Opakujte kombináciu klávesov pre dosiahnutie vzdialených zamerateľných medzier."},
-{name:"Prejsť na ďalší ",legend:"Stlačte ${accessNextSpace} pre prístup na najbližšie nedosiahnuteľné zamerateľné medzery po vsuvke. Napríklad: dve za sebou idúce horizontálne čiary. Opakujte kombináciu klávesov pre dosiahnutie vzdialených zamerateľných medzier."},{name:"Pomoc prístupnosti",legend:"Stlačte ${a11yHelp}"},{name:"Vložiť ako čistý text",legend:"Stlačte ${pastetext}",legendEdge:"Stlačte ${pastetext} a potom ${paste}"}]}],tab:"Tab",pause:"Pause",capslock:"Caps Lock",escape:"Escape",pageUp:"Stránka hore",
-pageDown:"Stránka dole",leftArrow:"Šípka naľavo",upArrow:"Šípka hore",rightArrow:"Šípka napravo",downArrow:"Šípka dole",insert:"Insert",leftWindowKey:"Ľavé Windows tlačidlo",rightWindowKey:"Pravé Windows tlačidlo",selectKey:"Tlačidlo Select",numpad0:"Numpad 0",numpad1:"Numpad 1",numpad2:"Numpad 2",numpad3:"Numpad 3",numpad4:"Numpad 4",numpad5:"Numpad 5",numpad6:"Numpad 6",numpad7:"Numpad 7",numpad8:"Numpad 8",numpad9:"Numpad 9",multiply:"Násobenie",add:"Sčítanie",subtract:"Odčítanie",decimalPoint:"Desatinná čiarka",
-divide:"Delenie",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"Bodkočiarka",equalSign:"Rovná sa",comma:"Čiarka",dash:"Pomĺčka",period:"Bodka",forwardSlash:"Lomítko",graveAccent:"Zdôrazňovanie prízvuku",openBracket:"Hranatá zátvorka otváracia",backSlash:"Backslash",closeBracket:"Hranatá zátvorka zatváracia",singleQuote:"Jednoduché úvodzovky"});
\ No newline at end of file
diff --git a/web/modules/ckeditor/vendor/plugins/a11yhelp/dialogs/lang/sl.js b/web/modules/ckeditor/vendor/plugins/a11yhelp/dialogs/lang/sl.js
deleted file mode 100644
index db862df40a61923b73386a26538543fc0c46c608..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/plugins/a11yhelp/dialogs/lang/sl.js
+++ /dev/null
@@ -1,11 +0,0 @@
-/*
- Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
- For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
-*/
-CKEDITOR.plugins.setLang("a11yhelp","sl",{title:"Navodila za dostopnost",contents:"Vsebina pomoči. Če želite zapreti pogovorno okno, pritisnite ESC.",legend:[{name:"Splošno",items:[{name:"Orodna vrstica urejevalnika",legend:"Pritisnite ${toolbarFocus} za pomik v orodno vrstico. Z TAB in SHIFT+TAB se pomikate na naslednjo in prejšnjo skupino orodne vrstice. Z DESNO PUŠČICO ali LEVO PUŠČICO se pomikate na naslednji in prejšnji gumb orodne vrstice. Pritisnite SPACE ali ENTER, da aktivirate gumb orodne vrstice."},
-{name:"Urejevalno Pogovorno Okno",legend:"Inside a dialog, press TAB to navigate to the next dialog element, press SHIFT+TAB to move to the previous dialog element, press ENTER to submit the dialog, press ESC to cancel the dialog. When a dialog has multiple tabs, the tab list can be reached either with ALT+F10 or with TAB as part of the dialog tabbing order. With tab list focused, move to the next and previous tab with RIGHT and LEFT ARROW, respectively."},{name:"Kontekstni meni urejevalnika",legend:"Pritisnite ${contextMenu} ali APPLICATION KEY, da odprete kontekstni meni. Nato se premaknite na naslednjo možnost menija s tipko TAB ali PUŠČICA DOL. Premakniti se na prejšnjo možnost z SHIFT + TAB ali PUŠČICA GOR. Pritisnite SPACE ali ENTER za izbiro možnosti menija. Odprite podmeni trenutne možnosti menija s tipko SPACE ali ENTER ali DESNA PUŠČICA. Vrnite se na matični element menija s tipko ESC ali LEVA PUŠČICA. Zaprite kontekstni meni z ESC."},
-{name:"Urejevalno Seznamsko Polje",legend:"Znotraj seznama, se premaknete na naslednji element seznama s tipko TAB ali PUŠČICO DOL. Z SHIFT+TAB ali PUŠČICO GOR se premaknete na prejšnji element seznama. Pritisnite tipko SPACE ali ENTER za izbiro elementa. Pritisnite tipko ESC, da zaprete seznam."},{name:"Urejevalna vrstica poti elementa",legend:"Pritisnite ${elementsPathFocus} za pomikanje po vrstici elementnih poti. S TAB ali DESNA PUŠČICA se premaknete na naslednji gumb elementa. Z SHIFT+TAB ali LEVO PUŠČICO se premaknete na prejšnji gumb elementa. Pritisnite SPACE ali ENTER za izbiro elementa v urejevalniku."}]},
-{name:"Ukazi",items:[{name:"Razveljavi ukaz",legend:"Pritisnite ${undo}"},{name:"Ponovi ukaz",legend:"Pritisnite ${redo}"},{name:"Krepki ukaz",legend:"Pritisnite ${bold}"},{name:"Ležeči ukaz",legend:"Pritisnite ${italic}"},{name:"Poudarni ukaz",legend:"Pritisnite ${underline}"},{name:"Ukaz povezave",legend:"Pritisnite ${link}"},{name:"Skrči Orodno Vrstico Ukaz",legend:"Pritisnite ${toolbarCollapse}"},{name:"Dostop do prejšnjega ukaza ostrenja",legend:"Pritisnite ${accessPreviousSpace} za dostop do najbližjega nedosegljivega osredotočenega prostora pred strešico, npr.: dva sosednja HR elementa. Ponovite kombinacijo tipk, da dosežete oddaljene osredotočene prostore."},
-{name:"Dostop do naslednjega ukaza ostrenja",legend:"Pritisnite ${accessNextSpace} za dostop do najbližjega nedosegljivega osredotočenega prostora po strešici, npr.: dva sosednja HR elementa. Ponovite kombinacijo tipk, da dosežete oddaljene osredotočene prostore."},{name:"Pomoč dostopnosti",legend:"Pritisnite ${a11yHelp}"},{name:" Paste as plain text",legend:"Press ${pastetext}",legendEdge:"Press ${pastetext}, followed by ${paste}"}]}],tab:"Tab",pause:"Pause",capslock:"Caps Lock",escape:"Escape",
-pageUp:"Page Up",pageDown:"Page Down",leftArrow:"Puščica levo",upArrow:"Puščica gor",rightArrow:"Puščica desno",downArrow:"Puščica dol",insert:"Insert",leftWindowKey:"Leva tipka Windows",rightWindowKey:"Desna tipka Windows",selectKey:"Select tipka",numpad0:"Numpad 0",numpad1:"Numpad 1",numpad2:"Numpad 2",numpad3:"Numpad 3",numpad4:"Numpad 4",numpad5:"Numpad 5",numpad6:"Numpad 6",numpad7:"Numpad 7",numpad8:"Numpad 8",numpad9:"Numpad 9",multiply:"Zmnoži",add:"Dodaj",subtract:"Odštej",decimalPoint:"Decimalna vejica",
-divide:"Deli",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"Podpičje",equalSign:"Enačaj",comma:"Vejica",dash:"Vezaj",period:"Pika",forwardSlash:"Desna poševnica",graveAccent:"Krativec",openBracket:"Oklepaj",backSlash:"Leva poševnica",closeBracket:"Zaklepaj",singleQuote:"Opuščaj"});
\ No newline at end of file
diff --git a/web/modules/ckeditor/vendor/plugins/a11yhelp/dialogs/lang/sq.js b/web/modules/ckeditor/vendor/plugins/a11yhelp/dialogs/lang/sq.js
deleted file mode 100644
index 07d331412ab0c79348a99dbc291933212e13e79a..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/plugins/a11yhelp/dialogs/lang/sq.js
+++ /dev/null
@@ -1,12 +0,0 @@
-/*
- Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
- For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
-*/
-CKEDITOR.plugins.setLang("a11yhelp","sq",{title:"Udhëzimet e Qasjes",contents:"Përmbajtja ndihmëse. Për ta mbyllur dialogun shtyp ESC.",legend:[{name:"Të përgjithshme",items:[{name:"Shiriti i Redaktuesit",legend:"Shtyp ${toolbarFocus} për të shfletuar kokështrirjen. Kalo tek grupi paraprak ose pasues i shiritit përmes kombinacionit TAB dhe SHIFT+TAB, në tastierë. Kalo tek pulla paraprake ose pasuese e kokështrirjes përmes SHIGJETË DJATHTAS ose SHIGJETËS MAJTAS, në tastierë. Shtyp HAPËSIRË ose ENTER Move to the next and previous toolbar button with RIGHT ARROW për të aktivizuar pullën e kokështrirjes."},
-{name:"Dialogu i Redaktuesit",legend:"Në brendi të dialogut, shtyp TAB për të kaluar tek elementi tjetër i dialogut, shtyp SHIFT+TAB për të kaluar tek elementi paraprak i dialogut, shtyp ENTER për të shtuar dialogun, shtyp ESC për të anuluar dialogun.  Kur një dialog ka më shumë fletë, lista e fletëve mund të hapet përmes ALT+F10 ose përmes TAB si pjesë e radhitjes së fletëve të dialogut. Me listën e fokusuar të fletëve,kalo tek fleta paraprake dhe pasuese përmes SHIGJETËS MAJSA ose DJATHTAS."},{name:"Menyja Kontestuese e Redaktorit",
-legend:"Shtyp ${contextMenu} ose APPLICATION KEY për të hapur menynë kontekstuale. Pastaj kalo tek mundësia tjetër e menysë përmes TAB ose SHIGJETËS POSHTË. Kalo tek mundësia paraprake përmes SHIFT+TAB ose SHIGJETA SIPËR. Shtyp SPACE ose ENTER për të përzgjedhur mundësinë e menysë. Hape nënmenynë e mundësisë aktuale përmes tastës HAPËSIRË ose ENTER ose SHIGJETËS DJATHTAS. Kalo prapa tek artikulli i menysë prind përmes ESC ose SHIGJETËS MAJTAS. Mbylle menynë kontekstuale përmes ESC."},{name:"Kutiza e Listës së Redaktuesit",
-legend:"Brenda kutisë së listës, kalo tek artikulli pasues i listës përmes TAB ose SHIGJETËS POSHTË. Kalo tek artikulli paraprak i listës përmes SHIFT+TAB ose SHIGJETËS SIPËR. Shtyp tastën HAPËSIRË ose ENTER për të përzgjedhur mundësitë e listës. Shtyp ESC për të mbyllur kutinë e listës."},{name:"Shiriti i Rrugës së Elementeve të Redaktorit",legend:"Shtyp ${elementsPathFocus} për të lëvizur tek shiriti i elementeve. Kalo tek pulla pasuese e elementit përmes TAB ose SHIGJETËS DJATHTAS. Kalo tek pulla paraprake përmes SHIFT+TAB ose SHIGJETËS MAJTAS. Shtyp tastën HAPËSIRË ose ENTER për të përzgjedhur elementin tek redaktuesi."}]},
-{name:"Komandat",items:[{name:"Rikthe komandën",legend:"Shtyp ${undo}"},{name:"Ribëj komandën",legend:"Shtyp ${redo}"},{name:"Komanda e trashjes së tekstit",legend:"Shtyp ${bold}"},{name:"Komanda kursive",legend:"Shtyp ${italic}"},{name:"Komanda e nënvijëzimit",legend:"Shtyp ${underline}"},{name:"Komanda e Nyjes",legend:"Shtyp ${link}"},{name:"Komanda e Mbjedhjes së Kokështrirjes",legend:"Shtyp ${toolbarCollapse}"},{name:"Qasu komandës paraprake të hapësirës së fokusimit",legend:"Shtyp ${accessPreviousSpace} për t'iu qasur hapësirës më të afërt të paarritshme të fokusimit para simbolit ^, për shembull: dy elemente të afërt  HR. Përsërit kombinacionin e tasteve për të arritur hapësirë të largët fokusimi."},
-{name:"Qasu komandës pasuese të hapësirës së fokusimit",legend:"Shtyp ${accessNextSpace} për t'iu qasur hapësirës më të afërt të paarritshme të fokusimit pas shenjës ^, për shembull: dy elemente të afërt HR. Përsërit kombinacionin e tasteve për të arritur hapësirën e largët të fokusimit."},{name:"Ndihmë Qasjeje",legend:"Shtyp ${a11yHelp}"},{name:"Hidhe si tekst të thjeshtë",legend:"Shtyp ${pastetext}",legendEdge:"Shtyp ${pastetext}, pasuar nga ${paste}"}]}],tab:"Tab",pause:"Pause",capslock:"Caps Lock",
-escape:"Escape",pageUp:"Faqja sipër",pageDown:"Faqja poshtë",leftArrow:"Shigjeta majtas",upArrow:"Shigjeta sipër",rightArrow:"Shigjeta djathtas",downArrow:"Shigjeta poshtë",insert:"Insert",leftWindowKey:"Pulla Majtas e Windows-it",rightWindowKey:"Pulla Djathtas e Windows-it",selectKey:"Pulla Përzgjedhëse",numpad0:"Numpad 0",numpad1:"Numpad 1",numpad2:"Numpad 2",numpad3:"Numpad 3",numpad4:"Numpad 4",numpad5:"Numpad 5",numpad6:"Numpad 6",numpad7:"Numpad 7",numpad8:"Numpad 8",numpad9:"Numpad 9",multiply:"Shumëzo",
-add:"Shto",subtract:"Zbrit",decimalPoint:"Pika Decimale",divide:"Pjesëto",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"Pikëpresje",equalSign:"Shenja e Barazimit",comma:"Presje",dash:"minus",period:"Pikë",forwardSlash:"Vija e pjerrët përpara",graveAccent:"Shenja e theksit",openBracket:"Hape kllapën",backSlash:"Vija e pjerrët prapa",closeBracket:"Mbylle kllapën",singleQuote:"Thonjëz e vetme"});
\ No newline at end of file
diff --git a/web/modules/ckeditor/vendor/plugins/a11yhelp/dialogs/lang/sr-latn.js b/web/modules/ckeditor/vendor/plugins/a11yhelp/dialogs/lang/sr-latn.js
deleted file mode 100644
index 80fb6e4b431f61db22851d7528569ff7aab2457b..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/plugins/a11yhelp/dialogs/lang/sr-latn.js
+++ /dev/null
@@ -1,12 +0,0 @@
-/*
- Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
- For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
-*/
-CKEDITOR.plugins.setLang("a11yhelp","sr-latn",{title:"Uputstva za pomoć",contents:"Sadržaji za pomoć. Da bi ste zatvorili diјalog pritisnite ESC.",legend:[{name:"Opšte",items:[{name:"Alatke za uređivanje",legend:"Pritisnite ${toolbarFocus} da bi označili alatke. Do sledeće i prethodne grupe alatki možete doći sa tasterom  TAB i SHIFT+TAB. Do tastera sledeće i predthodne grupe alatki možete doći sa tasterima STRELICA LEVO i STRELICA DESNO. Pritisnite  SPACE ili ENTER da bi aktivirali taster alatki."},
-{name:"Uređivač dijaloga",legend:"U prozoru dijalog pritisnite TAB da bi došli do sledećeg polja dijaloga, pritisnite ENTER za prihvatanje dijaloga, pritisnite ESC za odbijanje dijaloga. Kada dijalog ima više kartica, do njih možete doći pritiskom na ALT + F10 ili  TAB. Zatim sa TAB ili STRELICA  DESNO dolazite do naredne kartice."},{name:"Uređivač lokalnog menija",legend:"Pritisnite  ${contextMenu} ili APPLICATION TASTER za otvaranje lokalnog menija. Zatim sa TAB ili STRELICA DOLE možete preći na sledeću tačku menija.  Prethodnu opciju možete postići sa SHIFT+TAB ili STRELICA GORE. Pritisnite SPACE ili ENTER za odabir tačke menija. Pritisnite SPACE ili ENTER  da bi ste otvorili podmeni trenutne stavke menija. Za povratak u glavni meni pritisnite ESC ili STRELICA DESNO. Zatvorite lokalni meni pomoću tastera ESC."},
-{name:"Uređjivač liste",legend:"Do sledećеg elementa liste možete doći sa TAB ili STERLICA DOLE. Za odabir prethodnog elementa  pritisnite SHIFT+TAB ili STREKICA DOLE. Za odabir elementa pritisnite SPACE ili ENTER. Sa pritiskom ESC zatvarate listu. "},{name:"Uredjivač trake puta elemenata",legend:"Pritisnite $ {elementsPathFocus} da bi ste označili traku puta elenementa. Do sledećеg elementa  možete doći sa TAB ili STRELICA DESNO. Do prethodnоg dolazite sa SHIFT+TAB ili STRELICA DESNO. Sa SPACE ili ENTER možete odbrati element u uredjivaču."}]},
-{name:"Komanda",items:[{name:"Otkaži komandu",legend:"Pritisni ${undo}"},{name:"Prepoznavanje komande",legend:"Pritisni ${redo}"},{name:"Podebljana komanda",legend:"Pritisni ${bold}"},{name:"Kurziv komanda",legend:"Pritisni ${italic}"},{name:"Precrtana komanda",legend:"Pritisni ${underline}"},{name:"Link komanda",legend:"Pritisni ${link}"},{name:"Zatvori traku uredjivača komanda ",legend:"Pritisni ${toolbarCollapse}"},{name:"Pristup prethodnom fokus mestu komanda ",legend:"Pritisni ${accessNextSpace} da bi pristupio najbližem nedostupnom fokus mestu pre znaka hiányjel, na primer: dva susedna HR elementa.Ponovi kombinaciju tastera da pronadješ fokus mesto koje se nalazi dalje."},
-{name:"Pristup sledećem fokus mestu komanda ",legend:"Pritisni ${accessNextSpace} da bi pristupio najbližem nedostupnom fokus mestu posle znaka hiányjel, na primer: dva susedna HR elementa.Ponovi kombinaciju tastera da pronadješ fokus mesto koje se nalazi dalje."},{name:"Pomoć pristupačnosti",legend:"Pritisni ${a11yHelp}"},{name:"Nalepi kao običan tekst",legend:"Pritisnite: ${pastetext}",legendEdge:"Pritisnite ${pastetext}-t, zatim ${paste}-t"}]}],tab:"Tab",pause:"Pause",capslock:"Caps Lock",escape:"Escape",
-pageUp:"Page Up",pageDown:"Page Down",leftArrow:"Strelica levo",upArrow:"strelica gore",rightArrow:"strelica desno",downArrow:"strelica dole",insert:"Insert",leftWindowKey:"levi Windows-taster",rightWindowKey:"desni Windows-taster",selectKey:"Odabir tastera",numpad0:"Tasteri sa brojevima 0",numpad1:"Tasteri sa brojevima 1",numpad2:"Tasteri sa brojevima 2",numpad3:"Tasteri sa brojevima 3",numpad4:"Tasteri sa brojevima 4",numpad5:"Tasteri sa brojevima 5",numpad6:"Tasteri sa brojevima 6",numpad7:"Tasteri sa brojevima 7",
-numpad8:"Tasteri sa brojevima 8",numpad9:"Tasteri sa brojevima 9",multiply:"Množenje",add:"Sabiranje",subtract:"Oduzimanje",decimalPoint:"Decimalna tačka",divide:"Deljenjje",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"Tačka zarez",equalSign:"Znak jednakosti",comma:"Zarez",dash:"Crtica",period:"Tačka",forwardSlash:"Kosa crta",graveAccent:"Obrnuti znak akcenta",openBracket:"Otvorena čoškasta zagrada",
-backSlash:"Obrnuta kosa crta",closeBracket:"Zatvorena ćoškasta zagrada",singleQuote:"Simpli znak navoda"});
\ No newline at end of file
diff --git a/web/modules/ckeditor/vendor/plugins/a11yhelp/dialogs/lang/sr.js b/web/modules/ckeditor/vendor/plugins/a11yhelp/dialogs/lang/sr.js
deleted file mode 100644
index 6a4cefef1ffff3a6e8d1f09a1d43a34ab5cc4bae..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/plugins/a11yhelp/dialogs/lang/sr.js
+++ /dev/null
@@ -1,12 +0,0 @@
-/*
- Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
- For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
-*/
-CKEDITOR.plugins.setLang("a11yhelp","sr",{title:"Упутства за помоћ",contents:"Садржаји за помоћ. Да би сте затворили дијалог притисните ЕСЦ",legend:[{name:"Опште",items:[{name:"Алатке за преуређиванје",legend:"Притисните ${toolbarFocus} да би означили алатке. До следеће и претходне групе алатки можете дићи тастером  TAB и SHIFT+TAB. До тастера следеће и претходне групе алатки можете доћи са тастерима СТРЕЛИЦА ЛЕВО и СТРЕЛИЦА ДЕСНО. Притисните СПАЦЕ и ЕНТЕР да би активирали тастер алатки."},{name:"Уређивач дијалога",
-legend:"У прозору дијалог притисните ТАБ да би дошли до следећег поља дијалога, притисните ЕНТЕР за прихватање дијалога, притисните ЕСЦ за одбијање дијалога. Када дијалог има више картица, до њих можете доћи притиском на АЛТ+Ф10 или ТАБ. Затим са ТАБ или СТРЕЛИЦА ДЕСНО долазите до наредне картице."},{name:"Уређивач локалног менија.",legend:"Притисните ${contextMenu} или APPLICATION ТАСТЕР за отварање локалног менија. Затим са ТАБ или СТРЕЛИЦА ДОЛЕ можете прећи на следећу зачку менија. Претходну опцију можете постићи са ШХИФТ+ТАБ или СТРЕЛИЦА ГОРЕ. Притисните СПАЦЕ или ЕНТЕР за одабир тачке менија. Притисните СПАЦЕ или ЕНТЕР да би се отворио подмени тренутне ставке менија. За повратак у главни мени притисмите ЕСЦ или СТРЕЛИЦА ДЕСНО. Затворите локални мени помоћу тастера ЕСЦ."},
-{name:"Уређивач листе",legend:"До следећег елемента листе можете дочи са ТАБ или СТРЕЛИЦА ДОЛЕ. За одабир петходног елемента притисните СХИФТ+TAБ или  СТРЕЛИЦА ДОЛЕ. За одабир елемента притисните СПАЦЕ или ЕНТЕР. Са притиско ЕСЦ затварате листу. "},{name:"Уређивач траке пута елемената",legend:"Притисни ${elementsPathFocus} да би означили траку пута елемената. До следећег елемента можете доћи са TAБ или СТРЕЛИЦА ДЕСНО. До претходног долазите са СХИФТ+TAБ или СТРЕЛИЦА ДЕСНО. Са  СПАЦЕ или ЕНТЕР можете одабрати елемент у уређивачу."}]},
-{name:"Команда",items:[{name:"Откажи команду",legend:"Притисни ${undo}"},{name:"Понови команду",legend:"Притисни ${redo}"},{name:"Подебљана команда",legend:"Притисни ${bold}"},{name:"Курзив команда",legend:"Притисни ${italic}"},{name:"Прецтрана команда",legend:"Притисни ${underline}"},{name:"Линк команда",legend:"Притисни ${link}"},{name:"Затвори траку уређивача команда",legend:"Притисни ${toolbarCollapse}"},{name:"Приступ претходном фокус месту команда",legend:"Притисни ${accessNextSpace} да би приступио најближем недоступном фокус месту пре знака  hiányjel, на пример: дав сусаедна ХР елемента. Понови комбинацију тастера да пронађеш фокус место које се налази даље."},
-{name:"Приступ следећем фокус  месту команда ",legend:"Притисни ${accessNextSpace} да би приступио најближем недоступном фокус месту после знака hiányjel, на пример: дав сусаедна ХР елемента. Понови комбинацију тастера да пронађеш фокус место које се налази даље."},{name:"Помоћ приступачнсти",legend:"Притисни ${a11yHelp}"},{name:" Налепи као обичан текст",legend:"Притисните: ${pastetext}",legendEdge:"Притисните ${pastetext}, затим ${paste}"}]}],tab:"Tab",pause:"Pause",capslock:"Caps Lock",escape:"Escape",
-pageUp:"Page Up",pageDown:"Page Down",leftArrow:"Стрелица лево",upArrow:"Стрелица горе",rightArrow:"Стрелица десно",downArrow:"Стрелица доле",insert:"Insert",leftWindowKey:"леви Windows-тастер",rightWindowKey:"десни Windows-тастер",selectKey:"Одабир тастера",numpad0:"Тастери са бројевима 0",numpad1:"Тастери са бројевима 1",numpad2:"Тастери са бројевима 2",numpad3:"Тастери са бројевима 3",numpad4:"Тастери са бројевима 4",numpad5:"Тастери са бројевима 5",numpad6:"Тастери са бројевима 6",numpad7:"Тастери са бројевима 7",
-numpad8:"Тастери са бројевима 8",numpad9:" Тастери са бројевима 9",multiply:"Множење",add:"Сабирање",subtract:"Одузимање",decimalPoint:"Децимална тачка",divide:"Дељење",f1:"Ф1",f2:"Ф2",f3:"Ф3",f4:"Ф4",f5:"Ф5",f6:"Ф6",f7:"Ф7",f8:"Ф8",f9:"Ф9",f10:"Ф10",f11:"Ф11",f12:"Ф12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"Тачка зарез",equalSign:"Знак једнакости",comma:"Зарез",dash:"Цртица",period:"Тачка",forwardSlash:"Коса црта",graveAccent:"Обрнути знак акцента",openBracket:"Отворена ћошкаста заграда",
-backSlash:"обрнута коса црта",closeBracket:"Затворена ћошкаста заграда",singleQuote:"Симпли знак навода"});
\ No newline at end of file
diff --git a/web/modules/ckeditor/vendor/plugins/a11yhelp/dialogs/lang/sv.js b/web/modules/ckeditor/vendor/plugins/a11yhelp/dialogs/lang/sv.js
deleted file mode 100644
index 784e24edcc3e26dab263ad754ba8cc491491d4bf..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/plugins/a11yhelp/dialogs/lang/sv.js
+++ /dev/null
@@ -1,11 +0,0 @@
-/*
- Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
- For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
-*/
-CKEDITOR.plugins.setLang("a11yhelp","sv",{title:"Hjälpmedelsinstruktioner",contents:"Hjälpinnehåll. För att stänga denna dialogruta trycker du på ESC.",legend:[{name:"Allmänt",items:[{name:"Editor verktygsfält",legend:"Tryck på ${toolbarFocus} för att navigera till verktygsfältet. Flytta till nästa och föregående verktygsfältsgrupp med TAB och SHIFT+TAB. Flytta till nästa och föregående knapp i verktygsfältet med HÖGERPIL eller VÄNSTERPIL. Tryck SPACE eller ENTER för att aktivera knappen i verktygsfältet."},
-{name:"Dialogeditor",legend:"Inuti en dialogruta, tryck TAB för att navigera till nästa fält i dialogrutan, tryck SKIFT+TAB för att flytta till föregående fält, tryck ENTER för att skicka. Du avbryter och stänger dialogen med ESC. För dialogrutor som har flera flikar, tryck ALT+F10 eller TAB för att navigera till fliklistan. med fliklistan vald flytta till nästa och föregående flik med HÖGER- eller VÄNSTERPIL."},{name:"Editor för innehållsmeny",legend:"Tryck på $ {contextMenu} eller PROGRAMTANGENTEN för att öppna snabbmenyn. Flytta sedan till nästa menyalternativ med TAB eller NEDPIL. Flytta till föregående alternativ med SHIFT + TABB eller UPPIL. Tryck Space eller ENTER för att välja menyalternativ. Öppna undermeny av nuvarande alternativ med SPACE eller ENTER eller HÖGERPIL. Gå tillbaka till överordnade menyalternativ med ESC eller VÄNSTERPIL. Stäng snabbmenyn med ESC."},
-{name:"Editor för list-box",legend:"Inuti en list-box, gå till nästa listobjekt med TAB eller NEDPIL. Flytta till föregående listobjekt med SHIFT+TAB eller UPPIL. Tryck SPACE eller ENTER för att välja listan alternativet. Tryck ESC för att stänga list-boxen."},{name:"Editor för elementens sökväg",legend:"Tryck på ${elementsPathFocus} för att navigera till verktygsfältet för elementens sökvägar. Flytta till nästa elementknapp med TAB eller HÖGERPIL. Flytta till föregående knapp med SKIFT+TAB eller VÄNSTERPIL. Tryck SPACE eller ENTER för att välja element i redigeraren."}]},
-{name:"Kommandon",items:[{name:"Ångra kommando",legend:"Tryck på ${undo}"},{name:"Gör om kommando",legend:"Tryck på ${redo}"},{name:"Kommandot fet stil",legend:"Tryck på ${bold}"},{name:"Kommandot kursiv",legend:"Tryck på ${italic}"},{name:"Kommandot understruken",legend:"Tryck på ${underline}"},{name:"Kommandot länk",legend:"Tryck på ${link}"},{name:"Verktygsfält Dölj kommandot",legend:"Tryck på ${toolbarCollapse}"},{name:"Gå till föregående fokus plats",legend:"Tryck på ${accessPreviousSpace} för att gå till närmast onåbara utrymme före markören, exempel: två intilliggande HR element. Repetera tangentkombinationen för att gå till nästa."},
-{name:"Tillgå nästa fokuskommandots utrymme",legend:"Tryck ${accessNextSpace} på för att komma åt den närmaste onåbar fokus utrymme efter cirkumflex, till exempel: två intilliggande HR element. Upprepa tangentkombinationen för att nå avlägsna fokus utrymmen."},{name:"Hjälp om tillgänglighet",legend:"Tryck ${a11yHelp}"},{name:"Klistra in som vanlig text",legend:"Tryck ${pastetext}",legendEdge:"Tryck ${pastetext}, följt av ${paste}"}]}],tab:"Tab",pause:"Paus",capslock:"Caps lock",escape:"Escape",pageUp:"Sida Up",
-pageDown:"Sida Ned",leftArrow:"Vänsterpil",upArrow:"Uppil",rightArrow:"Högerpil",downArrow:"Nedåtpil",insert:"Infoga",leftWindowKey:"Vänster Windowstangent",rightWindowKey:"Höger Windowstangent",selectKey:"Välj tangent",numpad0:"Nummer 0",numpad1:"Nummer 1",numpad2:"Nummer 2",numpad3:"Nummer 3",numpad4:"Nummer 4",numpad5:"Nummer 5",numpad6:"Nummer 6",numpad7:"Nummer 7",numpad8:"Nummer 8",numpad9:"Nummer 9",multiply:"Multiplicera",add:"Addera",subtract:"Minus",decimalPoint:"Decimalpunkt",divide:"Dividera",
-f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"Semikolon",equalSign:"Lika med tecken",comma:"Komma",dash:"Minus",period:"Punkt",forwardSlash:"Snedstreck framåt",graveAccent:"Accent",openBracket:"Öppningsparentes",backSlash:"Snedstreck bakåt",closeBracket:"Slutparentes",singleQuote:"Enkelt Citattecken"});
\ No newline at end of file
diff --git a/web/modules/ckeditor/vendor/plugins/a11yhelp/dialogs/lang/th.js b/web/modules/ckeditor/vendor/plugins/a11yhelp/dialogs/lang/th.js
deleted file mode 100644
index 9d9a572623a36022e458357522c2d57a6c74c79d..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/plugins/a11yhelp/dialogs/lang/th.js
+++ /dev/null
@@ -1,11 +0,0 @@
-/*
- Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
- For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
-*/
-CKEDITOR.plugins.setLang("a11yhelp","th",{title:"Accessibility Instructions",contents:"Help Contents. To close this dialog press ESC.",legend:[{name:"ทั่วไป",items:[{name:"แถบเครื่องมือสำหรับเครื่องมือช่วยพิมพ์",legend:"Press ${toolbarFocus} to navigate to the toolbar. Move to the next and previous toolbar group with TAB and SHIFT+TAB. Move to the next and previous toolbar button with RIGHT ARROW or LEFT ARROW. Press SPACE or ENTER to activate the toolbar button.The focus will be moved back to the editing area upon activating the toolbar button."},
-{name:"Editor Dialog",legend:"Inside a dialog, press TAB to navigate to the next dialog element, press SHIFT+TAB to move to the previous dialog element, press ENTER to submit the dialog, press ESC to cancel the dialog. When a dialog has multiple tabs, the tab list can be reached either with ALT+F10 or with TAB as part of the dialog tabbing order. With tab list focused, move to the next and previous tab with RIGHT and LEFT ARROW, respectively."},{name:"Editor Context Menu",legend:"Press ${contextMenu} or APPLICATION KEY to open context-menu. Then move to next menu option with TAB or DOWN ARROW. Move to previous option with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the menu option. Open sub-menu of current option with SPACE or ENTER or RIGHT ARROW. Go back to parent menu item with ESC or LEFT ARROW. Close context menu with ESC."},
-{name:"Editor List Box",legend:"Inside a list-box, move to next list item with TAB OR DOWN ARROW. Move to previous list item with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the list option. Press ESC to close the list-box."},{name:"Editor Element Path Bar",legend:"Press ${elementsPathFocus} to navigate to the elements path bar. Move to next element button with TAB or RIGHT ARROW. Move to previous button with SHIFT+TAB or LEFT ARROW. Press SPACE or ENTER to select the element in editor."}]},
-{name:"คำสั่ง",items:[{name:"เลิกทำคำสั่ง",legend:"วาง ${undo}"},{name:"คำสั่งสำหรับทำซ้ำ",legend:"วาง ${redo}"},{name:"คำสั่งสำหรับตัวหนา",legend:"วาง ${bold}"},{name:"คำสั่งสำหรับตัวเอียง",legend:"วาง ${italic}"},{name:"คำสั่งสำหรับขีดเส้นใต้",legend:"วาง ${underline}"},{name:"คำสั่งสำหรับลิงก์",legend:"วาง ${link}"},{name:" Toolbar Collapse command",legend:"Press ${toolbarCollapse}"},{name:" Access previous focus space command",legend:"Press ${accessPreviousSpace} to access the closest unreachable focus space before the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},
-{name:" Access next focus space command",legend:"Press ${accessNextSpace} to access the closest unreachable focus space after the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},{name:" Accessibility Help",legend:"Press ${a11yHelp}"},{name:" Paste as plain text",legend:"Press ${pastetext}",legendEdge:"Press ${pastetext}, followed by ${paste}"}]}],tab:"Tab",pause:"Pause",capslock:"Caps Lock",escape:"Escape",pageUp:"Page Up",pageDown:"Page Down",
-leftArrow:"Left Arrow",upArrow:"Up Arrow",rightArrow:"Right Arrow",downArrow:"Down Arrow",insert:"Insert",leftWindowKey:"Left Windows key",rightWindowKey:"Right Windows key",selectKey:"Select key",numpad0:"Numpad 0",numpad1:"Numpad 1",numpad2:"Numpad 2",numpad3:"Numpad 3",numpad4:"Numpad 4",numpad5:"Numpad 5",numpad6:"Numpad 6",numpad7:"Numpad 7",numpad8:"Numpad 8",numpad9:"Numpad 9",multiply:"Multiply",add:"Add",subtract:"Subtract",decimalPoint:"Decimal Point",divide:"Divide",f1:"F1",f2:"F2",f3:"F3",
-f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"Semicolon",equalSign:"Equal Sign",comma:"Comma",dash:"Dash",period:"Period",forwardSlash:"Forward Slash",graveAccent:"Grave Accent",openBracket:"Open Bracket",backSlash:"Backslash",closeBracket:"Close Bracket",singleQuote:"Single Quote"});
\ No newline at end of file
diff --git a/web/modules/ckeditor/vendor/plugins/a11yhelp/dialogs/lang/tr.js b/web/modules/ckeditor/vendor/plugins/a11yhelp/dialogs/lang/tr.js
deleted file mode 100644
index 364fde4faddce7d7394b83ffd28eda5680e128b4..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/plugins/a11yhelp/dialogs/lang/tr.js
+++ /dev/null
@@ -1,12 +0,0 @@
-/*
- Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
- For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
-*/
-CKEDITOR.plugins.setLang("a11yhelp","tr",{title:"Erişilebilirlik Talimatları",contents:"Yardım içeriği. Bu pencereyi kapatmak için ESC tuşuna basın.",legend:[{name:"Genel",items:[{name:"Düzenleyici Araç Çubuğu",legend:"Araç çubuğunda gezinmek için ${toolbarFocus} basın. TAB ve SHIFT+TAB ile önceki ve sonraki araç çubuğu grubuna taşıyın. SAĞ OK veya SOL OK ile önceki ve sonraki bir araç çubuğu düğmesini hareket ettirin. SPACE tuşuna basın veya araç çubuğu düğmesini etkinleştirmek için ENTER tuşna basın."},
-{name:"Diyalog Düzenleyici",legend:"Dialog penceresi içinde, sonraki iletişim alanına gitmek için SEKME tuşuna basın, önceki alana geçmek için SHIFT + TAB tuşuna basın, pencereyi göndermek için ENTER tuşuna basın, dialog penceresini iptal etmek için ESC tuşuna basın. Birden çok sekme sayfaları olan diyalogların, sekme listesine gitmek için ALT + F10 tuşlarına basın. Sonra TAB veya SAĞ OK sonraki sekmeye taşıyın. SHIFT + TAB veya SOL OK ile önceki sekmeye geçin. Sekme sayfayı seçmek için SPACE veya ENTER tuşuna basın."},
-{name:"İçerik Menü Editörü",legend:"İçerik menüsünü açmak için ${contextMenu} veya UYGULAMA TUŞU'na basın. Daha sonra SEKME veya AŞAĞI OK ile bir sonraki menü seçeneği taşıyın. SHIFT + TAB veya YUKARI OK ile önceki seçeneğe gider. Menü seçeneğini seçmek için SPACE veya ENTER tuşuna basın. Seçili seçeneğin alt menüsünü SPACE ya da ENTER veya SAĞ OK açın. Üst menü öğesini geçmek için ESC veya SOL OK ile geri dönün. ESC ile bağlam menüsünü kapatın."},{name:"Liste Kutusu Editörü",legend:"Liste kutusu içinde, bir sonraki liste öğesine SEKME VEYA AŞAĞI OK ile taşıyın. SHIFT+TAB veya YUKARI önceki liste öğesi taşıyın. Liste seçeneği seçmek için SPACE veya ENTER tuşuna basın. Liste kutusunu kapatmak için ESC tuşuna basın."},
-{name:"Element Yol Çubuğu Editörü",legend:"Elementlerin yol çubuğunda gezinmek için ${ElementsPathFocus} basın. SEKME veya SAĞ OK ile sonraki element düğmesine taşıyın. SHIFT+TAB veya SOL OK önceki düğmeye hareket ettirin. Editör içindeki elementi seçmek için ENTER veya SPACE tuşuna basın."}]},{name:"Komutlar",items:[{name:"Komutu geri al",legend:"$(undo)'ya basın"},{name:"Komutu geri al",legend:"${redo} basın"},{name:" Kalın komut",legend:"${bold} basın"},{name:" İtalik komutu",legend:"${italic} basın"},
-{name:" Alttan çizgi komutu",legend:"${underline} basın"},{name:" Bağlantı komutu",legend:"${link} basın"},{name:" Araç çubuğu Toplama komutu",legend:"${toolbarCollapse} basın"},{name:"Önceki komut alanına odaklan",legend:"Düzeltme imleçinden önce, en yakın uzaktaki alana erişmek için ${accessPreviousSpace} basın, örneğin: iki birleşik HR elementleri. Aynı tuş kombinasyonu tekrarıyla diğer alanlarada ulaşın."},{name:"Sonraki komut alanına odaklan",legend:"Düzeltme imleçinden sonra, en yakın uzaktaki alana erişmek için ${accessNextSpace} basın, örneğin: iki birleşik HR elementleri. Aynı tuş kombinasyonu tekrarıyla diğer alanlarada ulaşın."},
-{name:"Erişilebilirlik Yardımı",legend:"${a11yHelp}'e basın"},{name:"Düz Metin Olarak Yapıştır",legend:"${pastetext} basın",legendEdge:"Önce ${pastetext} ardından${paste} basın"}]}],tab:"Sekme tuşu",pause:"Durdurma tuşu",capslock:"Büyük harf tuşu",escape:"Vazgeç tuşu",pageUp:"Sayfa Yukarı",pageDown:"Sayfa Aşağı",leftArrow:"Sol ok",upArrow:"Yukarı ok",rightArrow:"Sağ ok",downArrow:"Aşağı ok",insert:"Araya gir",leftWindowKey:"Sol windows tuşu",rightWindowKey:"Sağ windows tuşu",selectKey:"Seçme tuşu",
-numpad0:"Nümerik 0",numpad1:"Nümerik 1",numpad2:"Nümerik 2",numpad3:"Nümerik 3",numpad4:"Nümerik 4",numpad5:"Nümerik 5",numpad6:"Nümerik 6",numpad7:"Nümerik 7",numpad8:"Nümerik 8",numpad9:"Nümerik 9",multiply:"Çarpma",add:"Toplama",subtract:"Çıkarma",decimalPoint:"Ondalık işareti",divide:"Bölme",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lk",scrollLock:"Scr Lk",semiColon:"Noktalı virgül",equalSign:"Eşittir",comma:"Virgül",dash:"Eksi",
-period:"Nokta",forwardSlash:"İleri eğik çizgi",graveAccent:"Üst tırnak",openBracket:"Parantez aç",backSlash:"Ters eğik çizgi",closeBracket:"Parantez kapa",singleQuote:"Tek tırnak"});
\ No newline at end of file
diff --git a/web/modules/ckeditor/vendor/plugins/a11yhelp/dialogs/lang/tt.js b/web/modules/ckeditor/vendor/plugins/a11yhelp/dialogs/lang/tt.js
deleted file mode 100644
index 85c5b2a7409ffa5890eb63b34e390d859c5e7a8a..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/plugins/a11yhelp/dialogs/lang/tt.js
+++ /dev/null
@@ -1,11 +0,0 @@
-/*
- Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
- For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
-*/
-CKEDITOR.plugins.setLang("a11yhelp","tt",{title:"Accessibility Instructions",contents:"Help Contents. To close this dialog press ESC.",legend:[{name:"Гомуми",items:[{name:"Editor Toolbar",legend:"Press ${toolbarFocus} to navigate to the toolbar. Move to the next and previous toolbar group with TAB and SHIFT+TAB. Move to the next and previous toolbar button with RIGHT ARROW or LEFT ARROW. Press SPACE or ENTER to activate the toolbar button.The focus will be moved back to the editing area upon activating the toolbar button."},
-{name:"Editor Dialog",legend:"Inside a dialog, press TAB to navigate to the next dialog element, press SHIFT+TAB to move to the previous dialog element, press ENTER to submit the dialog, press ESC to cancel the dialog. When a dialog has multiple tabs, the tab list can be reached either with ALT+F10 or with TAB as part of the dialog tabbing order. With tab list focused, move to the next and previous tab with RIGHT and LEFT ARROW, respectively."},{name:"Editor Context Menu",legend:"Press ${contextMenu} or APPLICATION KEY to open context-menu. Then move to next menu option with TAB or DOWN ARROW. Move to previous option with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the menu option. Open sub-menu of current option with SPACE or ENTER or RIGHT ARROW. Go back to parent menu item with ESC or LEFT ARROW. Close context menu with ESC."},
-{name:"Editor List Box",legend:"Inside a list-box, move to next list item with TAB OR DOWN ARROW. Move to previous list item with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the list option. Press ESC to close the list-box."},{name:"Editor Element Path Bar",legend:"Press ${elementsPathFocus} to navigate to the elements path bar. Move to next element button with TAB or RIGHT ARROW. Move to previous button with SHIFT+TAB or LEFT ARROW. Press SPACE or ENTER to select the element in editor."}]},
-{name:"Командалар",items:[{name:"Кайтару",legend:"${undo} басыгыз"},{name:"Кабатлау",legend:"${redo} басыгыз"},{name:"Калын",legend:"${bold} басыгыз"},{name:"Курсив",legend:"${italic} басыгыз"},{name:"Астына сызылган",legend:"${underline} басыгыз"},{name:"Сылталама",legend:"${link} басыгыз"},{name:" Toolbar Collapse command",legend:"${toolbarCollapse} басыгыз"},{name:" Access previous focus space command",legend:"Press ${accessPreviousSpace} to access the closest unreachable focus space before the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},
-{name:" Access next focus space command",legend:"Press ${accessNextSpace} to access the closest unreachable focus space after the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},{name:" Accessibility Help",legend:"${a11yHelp} басыгыз"},{name:" Paste as plain text",legend:"Press ${pastetext}",legendEdge:"Press ${pastetext}, followed by ${paste}"}]}],tab:"Tab",pause:"Тыныш",capslock:"Caps Lock",escape:"Escape",pageUp:"Page Up",pageDown:"Page Down",
-leftArrow:"Сул якка ук",upArrow:"Өскә таба ук",rightArrow:"Уң якка ук",downArrow:"Аска таба ук",insert:"Өстәү",leftWindowKey:"Сул Windows төймəсе",rightWindowKey:"Уң Windows төймəсе",selectKey:"Select төймəсе",numpad0:"Numpad 0",numpad1:"Numpad 1",numpad2:"Numpad 2",numpad3:"Numpad 3",numpad4:"Numpad 4",numpad5:"Numpad 5",numpad6:"Numpad 6",numpad7:"Numpad 7",numpad8:"Numpad 8",numpad9:"Numpad 9",multiply:"Тапкырлау",add:"Кушу",subtract:"Алу",decimalPoint:"Унарлы нокта",divide:"Бүлү",f1:"F1",f2:"F2",
-f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"Нокталы өтер",equalSign:"Тигезлек билгесе",comma:"Өтер",dash:"Сызык",period:"Дәрәҗә",forwardSlash:"Кыек сызык",graveAccent:"Гравис",openBracket:"Җәя ачу",backSlash:"Кире кыек сызык",closeBracket:"Җәя ябу",singleQuote:"Бер иңле куштырнаклар"});
\ No newline at end of file
diff --git a/web/modules/ckeditor/vendor/plugins/a11yhelp/dialogs/lang/ug.js b/web/modules/ckeditor/vendor/plugins/a11yhelp/dialogs/lang/ug.js
deleted file mode 100644
index 827373ef53c78ac600b3f835be318f0b45a565b4..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/plugins/a11yhelp/dialogs/lang/ug.js
+++ /dev/null
@@ -1,12 +0,0 @@
-/*
- Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
- For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
-*/
-CKEDITOR.plugins.setLang("a11yhelp","ug",{title:"قوشۇمچە چۈشەندۈرۈش",contents:"ياردەم مەزمۇنى. بۇ سۆزلەشكۈنى ياپماقچى بولسىڭىز ESC نى بېسىڭ.",legend:[{name:"ئادەتتىكى",items:[{name:"قورال بالداق تەھرىر",legend:"${toolbarFocus} بېسىلسا قورال بالداققا يېتەكلەيدۇ، TAB ياكى SHIFT+TAB ئارقىلىق قورال بالداق گۇرۇپپىسى تاللىنىدۇ، ئوڭ سول يا ئوقتا توپچا تاللىنىدۇ، بوشلۇق ياكى Enter كۇنۇپكىسىدا تاللانغان توپچىنى قوللىنىدۇ."},{name:"تەھرىرلىگۈچ سۆزلەشكۈسى",legend:"سۆزلەشكۈدە TAB كۇنۇپكىسىدا كېيىنكى سۆز بۆلىكىگە يۆتكىلىدۇ، SHIFT+TAB بىرىكمە كۇنۇپكىسىدا ئالدىنقى سۆز بۆلىكىگە يۆتكىلىدۇ، ENTER كۇنۇپكىسىدا سۆزلەشكۈنى تاپشۇرىدۇ، ESC كۇنۇپكىسى سۆزلەشكۈدىن ۋاز كېچىدۇ. كۆپ بەتكۈچلۈك سۆزلەشكۈگە نىسبەتەن، ALT+F10 دا بەتكۈچ تىزىمىغا يۆتكەيدۇ. ئاندىن TAB كۇنۇپكىسى ياكى ئوڭ يا ئوق كۇنۇپكىسى كېيىنكى بەتكۈچكە يۆتكەيدۇ؛SHIFT+ TAB كۇنۇپكىسى ياكى سول يا ئوق كۇنۇپكىسى ئالدىنقى بەتكۈچكە يۆتكەيدۇ. بوشلۇق كۇنۇپكىسى ياكى ENTER كۇنۇپكىسى بەتكۈچنى تاللايدۇ."},
-{name:"تەھرىرلىگۈچ تىل مۇھىت تىزىملىكى",legend:"${contextMenu} ياكى ئەپ كۇنۇپكىسىدا تىل مۇھىت تىزىملىكىنى ئاچىدۇ. ئاندىن TAB ياكى ئاستى يا ئوق كۇنۇپكىسىدا كېيىنكى تىزىملىك تۈرىگە يۆتكەيدۇ؛ SHIFT+TAB ياكى ئۈستى يا ئوق كۇنۇپكىسىدا ئالدىنقى تىزىملىك تۈرىگە يۆتكەيدۇ. بوشلۇق ياكى ENTER كۇنۇپكىسىدا تىزىملىك تۈرىنى تاللايدۇ. بوشلۇق، ENTER ياكى ئوڭ يا ئوق كۇنۇپكىسىدا تارماق تىزىملىكنى ئاچىدۇ. قايتىش تىزىملىكىگە ESC ياكى سول يا ئوق كۇنۇپكىسى ئىشلىتىلىدۇ. ESC كۇنۇپكىسىدا تىل مۇھىت تىزىملىكى تاقىلىدۇ."},{name:"تەھرىرلىگۈچ تىزىمى",
-legend:"تىزىم قۇتىسىدا، كېيىنكى تىزىم تۈرىگە يۆتكەشتە TAB ياكى ئاستى يا ئوق كۇنۇپكىسى ئىشلىتىلىدۇ. ئالدىنقى تىزىم تۈرىگە يۆتكەشتە SHIFT+TAB ياكى ئۈستى يا ئوق كۇنۇپكىسى ئىشلىتىلىدۇ. بوشلۇق ياكى ENTER كۇنۇپكىسىدا تىزىم تۈرىنى تاللايدۇ.ESC كۇنۇپكىسىدا تىزىم قۇتىسىنى يىغىدۇ."},{name:"تەھرىرلىگۈچ ئېلېمېنت يول بالداق",legend:"${elementsPathFocus} بېسىلسا ئېلېمېنت يول بالداققا يېتەكلەيدۇ، TAB ياكى ئوڭ يا ئوقتا كېيىنكى ئېلېمېنت تاللىنىدۇ، SHIFT+TAB ياكى سول يا ئوقتا ئالدىنقى ئېلېمېنت تاللىنىدۇ، بوشلۇق ياكى Enter كۇنۇپكىسىدا تەھرىرلىگۈچتىكى ئېلېمېنت تاللىنىدۇ."}]},
-{name:"بۇيرۇق",items:[{name:"بۇيرۇقتىن يېنىۋال",legend:"${undo} نى بېسىڭ"},{name:"قايتىلاش بۇيرۇقى",legend:"${redo} نى بېسىڭ"},{name:"توملىتىش بۇيرۇقى",legend:"${bold} نى بېسىڭ"},{name:"يانتۇ بۇيرۇقى",legend:"${italic} نى بېسىڭ"},{name:"ئاستى سىزىق بۇيرۇقى",legend:"${underline} نى بېسىڭ"},{name:"ئۇلانما بۇيرۇقى",legend:"${link} نى بېسىڭ"},{name:"قورال بالداق قاتلاش بۇيرۇقى",legend:"${toolbarCollapse} نى بېسىڭ"},{name:"ئالدىنقى فوكۇس نۇقتىسىنى زىيارەت قىلىدىغان بۇيرۇق",legend:"${accessPreviousSpace} بېسىپ ^ بەلگىسىگە ئەڭ يېقىن زىيارەت قىلغىلى بولمايدىغان فوكۇس نۇقتا رايونىنىڭ ئالدىنى زىيارەت قىلىدۇ، مەسىلەن: ئۆز ئارا قوشنا ئىككى HR ئېلېمېنت. بۇ بىرىكمە كۇنۇپكا تەكرارلانسا يىراقتىكى فوكۇس نۇقتا رايونىغا يەتكىلى بولىدۇ."},
-{name:"كېيىنكى فوكۇس نۇقتىسىنى زىيارەت قىلىدىغان بۇيرۇق",legend:"${accessNextSpace} بېسىپ ^ بەلگىسىگە ئەڭ يېقىن زىيارەت قىلغىلى بولمايدىغان فوكۇس نۇقتا رايونىنىڭ كەينىنى زىيارەت قىلىدۇ، مەسىلەن: ئۆز ئارا قوشنا ئىككى HR ئېلېمېنت. بۇ بىرىكمە كۇنۇپكا تەكرارلانسا يىراقتىكى فوكۇس نۇقتا رايونىغا يەتكىلى بولىدۇ."},{name:"توسالغۇسىز لايىھە چۈشەندۈرۈشى",legend:"${a11yHelp} نى بېسىڭ"},{name:"ساپ تېكىست چاپلاش",legend:"Press ${pastetext}",legendEdge:"Press ${pastetext}, followed by ${paste}"}]}],tab:"Tab",pause:"Pause",
-capslock:"Caps Lock",escape:"Escape",pageUp:"Page Up",pageDown:"Page Down",leftArrow:"سول يا ئوق",upArrow:"ئۈستى يا ئوق",rightArrow:"ئوڭ يا ئوق",downArrow:"ئاستى يا ئوق",insert:"قىستۇر",leftWindowKey:"سول Windows كۇنۇپكىسى",rightWindowKey:"ئوڭ Windows كۇنۇپكىسى",selectKey:"تاللاش كۇنۇپكىسى",numpad0:"سان تاختا 0",numpad1:"سان تاختا 1",numpad2:"سان تاختا 2",numpad3:"سان تاختا 3",numpad4:"سان تاختا 4",numpad5:"سان تاختا 5",numpad6:"سان تاختا 6",numpad7:"سان تاختا 7",numpad8:"سان تاختا 8",numpad9:"سان تاختا 9",
-multiply:"يۇلتۇز كۇنۇپكىسى",add:"قوشۇش",subtract:"ئېلىش",decimalPoint:"كەسىر چېكىت",divide:"بۆلۈش",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"سان قۇلۇپ كۇنۇپكىسى",scrollLock:"سۈرگۈچ قۇلۇپ كۇنۇپكىسى",semiColon:"چېكىتلىك پەش",equalSign:"تەڭلىك بەلگىسى",comma:"پەش",dash:"سىزىقچە",period:"چېكىت",forwardSlash:"سولغا يانتۇ سىزىق",graveAccent:"ئۇرغۇ بەلگىسى",openBracket:"ئېچىلغان تىرناق",backSlash:"ئوڭغا يانتۇ سىزىق",closeBracket:"يېپىلغان تىرناق",
-singleQuote:"يالاڭ پەش"});
\ No newline at end of file
diff --git a/web/modules/ckeditor/vendor/plugins/a11yhelp/dialogs/lang/uk.js b/web/modules/ckeditor/vendor/plugins/a11yhelp/dialogs/lang/uk.js
deleted file mode 100644
index a529919fa666e7a939469e04abc85994f4ba4b7f..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/plugins/a11yhelp/dialogs/lang/uk.js
+++ /dev/null
@@ -1,12 +0,0 @@
-/*
- Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
- For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
-*/
-CKEDITOR.plugins.setLang("a11yhelp","uk",{title:"Спеціальні Інструкції",contents:"Довідка. Натисніть ESC і вона зникне.",legend:[{name:"Основне",items:[{name:"Панель Редактора",legend:"Натисніть ${toolbarFocus} для переходу до панелі інструментів. Для переміщення між групами панелі інструментів використовуйте TAB і SHIFT+TAB. Для переміщення між кнопками панелі іструментів використовуйте кнопки СТРІЛКА ВПРАВО або ВЛІВО. Натисніть ПРОПУСК або ENTER для запуску кнопки панелі інструментів."},{name:"Діалог Редактора",
-legend:'Усередині діалогу, натисніть TAB щоб перейти до наступного елементу діалогу, натисніть SHIFT+TAB щоб перейти до попереднього елемента діалогу, натисніть ENTER щоб відправити діалог, натисніть ESC щоб скасувати діалог. Коли діалогове вікно має декілька вкладок, отримати доступ до панелі вкладок як частині діалогу можна натисканням або поєднання ALT+F10 або TAB, при цьому активні елементи діалогу будуть перебиратися з урахуванням порядку табуляції. При активній панелі вкладок, перехід до наступної або попередньої вкладці здійснюється натисканням стрілки "ВПРАВО" або стрілки "ВЛЕВО" відповідно.'},
-{name:"Контекстне Меню Редактора",legend:"Press ${contextMenu} or APPLICATION KEY to open context-menu. Потім перейдіть до наступного пункту меню за допомогою TAB або СТРІЛКИ ВНИЗ. Натисніть ПРОПУСК або ENTER для вибору параметру меню. Відкрийте підменю поточного параметру, натиснувши ПРОПУСК або ENTER або СТРІЛКУ ВПРАВО. Перейдіть до батьківського елемента меню, натиснувши ESC або СТРІЛКУ ВЛІВО. Закрийте контекстне меню, натиснувши ESC."},{name:"Скринька Списків Редактора",legend:"Усередині списку, перехід до наступного пункту списку виконується клавішею TAB або СТРІЛКА ВНИЗ. Перехід до попереднього елемента списку клавішею SHIFT+TAB або СТРІЛКА ВГОРУ. Натисніть ПРОПУСК або ENTER, щоб вибрати параметр списку. Натисніть клавішу ESC, щоб закрити список."},
-{name:"Шлях до елемента редактора",legend:"Натисніть ${elementsPathFocus} для навігації між елементами панелі. Перейдіть до наступного елемента кнопкою TAB або СТРІЛКА ВПРАВО. Перейдіть до попереднього елемента кнопкою SHIFT+TAB або СТРІЛКА ВЛІВО. Натисніть ПРОПУСК або ENTER для вибору елемента в редакторі."}]},{name:"Команди",items:[{name:"Відмінити команду",legend:"Натисніть ${undo}"},{name:"Повторити",legend:"Натисніть ${redo}"},{name:"Жирний",legend:"Натисніть ${bold}"},{name:"Курсив",legend:"Натисніть ${italic}"},
-{name:"Підкреслений",legend:"Натисніть ${underline}"},{name:"Посилання",legend:"Натисніть ${link}"},{name:"Згорнути панель інструментів",legend:"Натисніть ${toolbarCollapse}"},{name:"Доступ до попереднього місця фокусування",legend:"Натисніть ${accessNextSpace} для доступу до найближчої недосяжної області фокусування перед кареткою, наприклад: два сусідні елементи HR. Повторіть комбінацію клавіш для досягнення віддалених областей фокусування."},{name:"Доступ до наступного місця фокусування",legend:"Натисніть ${accessNextSpace} для доступу до найближчої недосяжної області фокусування після каретки, наприклад: два сусідні елементи HR. Повторіть комбінацію клавіш для досягнення віддалених областей фокусування."},
-{name:"Допомога з доступності",legend:"Натисніть ${a11yHelp}"},{name:"Вставити як звичайний текст",legend:"Натисніть ${pastetext}",legendEdge:"Натисніть ${pastetext}, а потім ${paste}"}]}],tab:"Tab",pause:"Pause",capslock:"Caps Lock",escape:"Esc",pageUp:"Page Up",pageDown:"Page Down",leftArrow:"Ліва стрілка",upArrow:"Стрілка вгору",rightArrow:"Права стрілка",downArrow:"Стрілка вниз",insert:"Вставити",leftWindowKey:"Ліва клавіша Windows",rightWindowKey:"Права клавіша Windows",selectKey:"Виберіть клавішу",
-numpad0:"Numpad 0",numpad1:"Numpad 1",numpad2:"Numpad 2",numpad3:"Numpad 3",numpad4:"Numpad 4",numpad5:"Numpad 5",numpad6:"Numpad 6",numpad7:"Numpad 7",numpad8:"Numpad 8",numpad9:"Numpad 9",multiply:"Множення",add:"Додати",subtract:"Віднімання",decimalPoint:"Десяткова кома",divide:"Ділення",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"Крапка з комою",equalSign:"Знак рівності",comma:"Кома",
-dash:"Тире",period:"Період",forwardSlash:"Коса риска",graveAccent:"Гравіс",openBracket:"Відкрити дужку",backSlash:"Зворотна коса риска",closeBracket:"Закрити дужку",singleQuote:"Одинарні лапки"});
\ No newline at end of file
diff --git a/web/modules/ckeditor/vendor/plugins/a11yhelp/dialogs/lang/vi.js b/web/modules/ckeditor/vendor/plugins/a11yhelp/dialogs/lang/vi.js
deleted file mode 100644
index 459357d5e390d7d4c89b501bc4be8bba6020ef8e..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/plugins/a11yhelp/dialogs/lang/vi.js
+++ /dev/null
@@ -1,11 +0,0 @@
-/*
- Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
- For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
-*/
-CKEDITOR.plugins.setLang("a11yhelp","vi",{title:"Hướng dẫn trợ năng",contents:"Nội dung Hỗ trợ. Nhấn ESC để đóng hộp thoại.",legend:[{name:"Chung",items:[{name:"Thanh công cụ soạn thảo",legend:"Nhấn ${toolbarFocus} để điều hướng đến thanh công cụ. Nhấn TAB và SHIFT+TAB để chuyển đến nhóm thanh công cụ khác. Nhấn MŨI TÊN PHẢI hoặc MŨI TÊN TRÁI để chuyển sang nút khác trên thanh công cụ. Nhấn PHÍM CÁCH hoặc ENTER để kích hoạt nút trên thanh công cụ."},{name:"Hộp thoại Biên t",legend:"Inside a dialog, press TAB to navigate to the next dialog element, press SHIFT+TAB to move to the previous dialog element, press ENTER to submit the dialog, press ESC to cancel the dialog. When a dialog has multiple tabs, the tab list can be reached either with ALT+F10 or with TAB as part of the dialog tabbing order. With tab list focused, move to the next and previous tab with RIGHT and LEFT ARROW, respectively."},
-{name:"Trình đơn Ngữ cảnh cBộ soạn thảo",legend:"Nhấn ${contextMenu} hoặc PHÍM ỨNG DỤNG để mở thực đơn ngữ cảnh. Sau đó nhấn TAB hoặc MŨI TÊN XUỐNG để di chuyển đến tuỳ chọn tiếp theo của thực đơn. Nhấn SHIFT+TAB hoặc MŨI TÊN LÊN để quay lại tuỳ chọn trước. Nhấn DẤU CÁCH hoặc ENTER để chọn tuỳ chọn của thực đơn. Nhấn DẤU CÁCH hoặc ENTER hoặc MŨI TÊN SANG PHẢI để mở thực đơn con của tuỳ chọn hiện tại. Nhấn ESC hoặc MŨI TÊN SANG TRÁI để quay trở lại thực đơn gốc. Nhấn ESC để đóng thực đơn ngữ cảnh."},
-{name:"Hộp danh sách trình biên tập",legend:"Trong một danh sách chọn, di chuyển đối tượng tiếp theo với phím TAB hoặc phím mũi tên hướng xuống. Di chuyển đến đối tượng trước đó bằng cách nhấn tổ hợp phím SHIFT+TAB hoặc mũi tên hướng lên. Phím khoảng cách hoặc phím ENTER để chọn các tùy chọn trong danh sách. Nhấn phím ESC để đóng lại danh sách chọn."},{name:"Thanh đường dẫn các đối tượng",legend:"Nhấn ${elementsPathFocus} để điều hướng các đối tượng trong thanh đường dẫn. Di chuyển đến đối tượng tiếp theo bằng phím TAB hoặc phím mũi tên bên phải. Di chuyển đến đối tượng trước đó bằng tổ hợp phím SHIFT+TAB hoặc phím mũi tên bên trái. Nhấn phím khoảng cách hoặc ENTER để chọn đối tượng trong trình soạn thảo."}]},
-{name:"Lệnh",items:[{name:"Làm lại lện",legend:"Ấn ${undo}"},{name:"Làm lại lệnh",legend:"Ấn ${redo}"},{name:"Lệnh in đậm",legend:"Ấn ${bold}"},{name:"Lệnh in nghiêng",legend:"Ấn ${italic}"},{name:"Lệnh gạch dưới",legend:"Ấn ${underline}"},{name:"Lệnh liên kết",legend:"Nhấn ${link}"},{name:"Lệnh hiển thị thanh công cụ",legend:"Nhấn${toolbarCollapse}"},{name:"Truy cập đến lệnh tập trung vào khoảng cách trước đó",legend:"Ấn ${accessPreviousSpace} để truy cập đến phần tập trung khoảng cách sau phần còn sót lại của khoảng cách gần nhất vốn không tác động đến được , thí dụ: hai yếu tố điều chỉnh HR. Lặp lại các phím kết họep này để vươn đến phần khoảng cách."},
-{name:"Truy cập phần đối tượng lệnh khoảng trống",legend:"Ấn ${accessNextSpace} để truy cập đến phần tập trung khoảng cách sau phần còn sót lại của khoảng cách gần nhất vốn không tác động đến được , thí dụ: hai yếu tố điều chỉnh HR. Lặp lại các phím kết họep này để vươn đến phần khoảng cách."},{name:"Trợ giúp liên quan",legend:"Nhấn ${a11yHelp}"},{name:" Paste as plain text",legend:"Press ${pastetext}",legendEdge:"Press ${pastetext}, followed by ${paste}"}]}],tab:"Phím Tab",pause:"Phím Pause",capslock:"Phím Caps Lock",
-escape:"Phím Escape",pageUp:"Phím Page Up",pageDown:"Phím Page Down",leftArrow:"Phím Left Arrow",upArrow:"Phím Up Arrow",rightArrow:"Phím Right Arrow",downArrow:"Phím Down Arrow",insert:"Chèn",leftWindowKey:"Phím Left Windows",rightWindowKey:"Phím Right Windows ",selectKey:"Chọn phím",numpad0:"Phím 0",numpad1:"Phím 1",numpad2:"Phím 2",numpad3:"Phím 3",numpad4:"Phím 4",numpad5:"Phím 5",numpad6:"Phím 6",numpad7:"Phím 7",numpad8:"Phím 8",numpad9:"Phím 9",multiply:"Nhân",add:"Thêm",subtract:"Trừ",decimalPoint:"Điểm số thập phân",
-divide:"Chia",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"Dấu chấm phẩy",equalSign:"Đăng nhập bằng",comma:"Dấu phẩy",dash:"Dấu gạch ngang",period:"Phím .",forwardSlash:"Phím /",graveAccent:"Phím `",openBracket:"Open Bracket",backSlash:"Dấu gạch chéo ngược",closeBracket:"Gần giá đỡ",singleQuote:"Trích dẫn"});
\ No newline at end of file
diff --git a/web/modules/ckeditor/vendor/plugins/a11yhelp/dialogs/lang/zh-cn.js b/web/modules/ckeditor/vendor/plugins/a11yhelp/dialogs/lang/zh-cn.js
deleted file mode 100644
index 35c2625c8e18aa7fbc5941151db4dccc1e7505e3..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/plugins/a11yhelp/dialogs/lang/zh-cn.js
+++ /dev/null
@@ -1,9 +0,0 @@
-/*
- Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
- For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
-*/
-CKEDITOR.plugins.setLang("a11yhelp","zh-cn",{title:"辅助功能说明",contents:"帮助内容。要关闭此对话框请按 ESC 键。",legend:[{name:"常规",items:[{name:"编辑器工具栏",legend:"按 ${toolbarFocus} 切换到工具栏,使用 TAB 键和 SHIFT+TAB 组合键移动到上一个和下一个工具栏组。使用左右箭头键移动到上一个或下一个工具栏按钮。按空格键或回车键以选中工具栏按钮。"},{name:"编辑器对话框",legend:"在对话框内,按 TAB 键移动到下一个字段,按 SHIFT + TAB 组合键移动到上一个字段,按 ENTER 键提交对话框,按 ESC 键取消对话框。对于有多选项卡的对话框,可以按 ALT + F10 直接切换到或者按 TAB 键逐步移到选项卡列表,当焦点移到选项卡列表时可以用左右箭头键来移动到前后的选项卡。"},{name:"编辑器上下文菜单",legend:"用 ${contextMenu} 或者“应用程序键”打开上下文菜单。然后用 TAB 键或者下箭头键来移动到下一个菜单项;SHIFT + TAB 组合键或者上箭头键移动到上一个菜单项。用 SPACE 键或者 ENTER 键选择菜单项。用 SPACE 键,ENTER 键或者右箭头键打开子菜单。返回菜单用 ESC 键或者左箭头键。用 ESC 键关闭上下文菜单。"},
-{name:"编辑器列表框",legend:"在列表框中,移到下一列表项用 TAB 键或者下箭头键。移到上一列表项用SHIFT+TAB 组合键或者上箭头键,用 SPACE 键或者 ENTER 键选择列表项。用 ESC 键收起列表框。"},{name:"编辑器元素路径栏",legend:"按 ${elementsPathFocus} 以导航到元素路径栏,使用 TAB 键或右箭头键选择下一个元素,使用 SHIFT+TAB 组合键或左箭头键选择上一个元素,按空格键或回车键以选定编辑器里的元素。"}]},{name:"命令",items:[{name:" 撤消命令",legend:"按 ${undo}"},{name:" 重做命令",legend:"按 ${redo}"},{name:" 加粗命令",legend:"按 ${bold}"},{name:" 倾斜命令",legend:"按 ${italic}"},{name:" 下划线命令",legend:"按 ${underline}"},{name:" 链接命令",legend:"按 ${link}"},{name:" 工具栏折叠命令",legend:"按 ${toolbarCollapse}"},
-{name:"访问前一个焦点区域的命令",legend:"按 ${accessPreviousSpace} 访问^符号前最近的不可访问的焦点区域,例如:两个相邻的 HR 元素。重复此组合按键可以到达远处的焦点区域。"},{name:"访问下一个焦点区域命令",legend:"按 ${accessNextSpace} 以访问^符号后最近的不可访问的焦点区域。例如:两个相邻的 HR 元素。重复此组合按键可以到达远处的焦点区域。"},{name:"辅助功能帮助",legend:"按 ${a11yHelp}"},{name:"粘贴为纯文本",legend:"按 ${pastetext}",legendEdge:"按 ${pastetext},然后再按 ${paste}"}]}],tab:"Tab 键",pause:"暂停键",capslock:"大写锁定键",escape:"Esc 键",pageUp:"上翻页键",pageDown:"下翻页键",leftArrow:"向左箭头键",upArrow:"向上箭头键",rightArrow:"向右箭头键",downArrow:"向下箭头键",insert:"插入键",
-leftWindowKey:"左 WIN 键",rightWindowKey:"右 WIN 键",selectKey:"选择键",numpad0:"小键盘 0 键",numpad1:"小键盘 1 键",numpad2:"小键盘 2 键",numpad3:"小键盘 3 键",numpad4:"小键盘 4 键",numpad5:"小键盘 5 键",numpad6:"小键盘 6 键",numpad7:"小键盘 7 键",numpad8:"小键盘 8 键",numpad9:"小键盘 9 键",multiply:"星号键",add:"加号键",subtract:"减号键",decimalPoint:"小数点键",divide:"除号键",f1:"F1 键",f2:"F2 键",f3:"F3 键",f4:"F4 键",f5:"F5 键",f6:"F6 键",f7:"F7 键",f8:"F8 键",f9:"F9 键",f10:"F10 键",f11:"F11 键",f12:"F12 键",numLock:"数字锁定键",scrollLock:"滚动锁定键",semiColon:"分号键",equalSign:"等号键",
-comma:"逗号键",dash:"短划线键",period:"句号键",forwardSlash:"斜杠键",graveAccent:"重音符键",openBracket:"左中括号键",backSlash:"反斜杠键",closeBracket:"右中括号键",singleQuote:"单引号键"});
\ No newline at end of file
diff --git a/web/modules/ckeditor/vendor/plugins/a11yhelp/dialogs/lang/zh.js b/web/modules/ckeditor/vendor/plugins/a11yhelp/dialogs/lang/zh.js
deleted file mode 100644
index 27dcf659e01a870ff814983454bb4a4b5372a9ae..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/plugins/a11yhelp/dialogs/lang/zh.js
+++ /dev/null
@@ -1,9 +0,0 @@
-/*
- Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
- For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
-*/
-CKEDITOR.plugins.setLang("a11yhelp","zh",{title:"輔助工具指南",contents:"說明內容。若要關閉此對話框請按「ESC」。",legend:[{name:"一般",items:[{name:"編輯器工具列",legend:"請按 ${toolbarFocus} 以導覽到工具列。利用 TAB 或 SHIFT+TAB 以便移動到下一個及前一個工具列群組。利用右方向鍵或左方向鍵以便移動到下一個及上一個工具列按鈕。按下空白鍵或 ENTER 鍵啟用工具列按鈕。"},{name:"編輯器對話方塊",legend:"在對話框中,按下 TAB 鍵以導覽到下一個對話框元素,按下 SHIFT+TAB 以移動到上一個對話框元素,按下 ENTER 以遞交對話框,按下 ESC 以取消對話框。當對話框有多個分頁時,可以使用 ALT+F10 或是在對話框分頁順序中的一部份按下 TAB 以使用分頁列表。焦點在分頁列表上時,分別使用右方向鍵及左方向鍵移動到下一個及上一個分頁。"},{name:"編輯器內容功能表",legend:"請按下「${contextMenu}」或是「應用程式鍵」以開啟內容選單。以「TAB」或是「↓」鍵移動到下一個選單選項。以「SHIFT + TAB」或是「↑」鍵移動到上一個選單選項。按下「空白鍵」或是「ENTER」鍵以選取選單選項。以「空白鍵」或「ENTER」或「→」開啟目前選項之子選單。以「ESC」或「←」回到父選單。以「ESC」鍵關閉內容選單」。"},
-{name:"編輯器清單方塊",legend:"在清單方塊中,使用 TAB 或下方向鍵移動到下一個列表項目。使用 SHIFT+TAB 或上方向鍵移動到上一個列表項目。按下空白鍵或 ENTER 以選取列表選項。按下 ESC 以關閉清單方塊。"},{name:"編輯器元件路徑工具列",legend:"請按 ${elementsPathFocus} 以瀏覽元素路徑列。利用 TAB 或右方向鍵以便移動到下一個元素按鈕。利用 SHIFT 或左方向鍵以便移動到上一個按鈕。按下空白鍵或 ENTER 鍵來選取在編輯器中的元素。"}]},{name:"命令",items:[{name:"復原命令",legend:"請按下「${undo}」"},{name:"重複命令",legend:"請按下「 ${redo}」"},{name:"粗體命令",legend:"請按下「${bold}」"},{name:"斜體",legend:"請按下「${italic}」"},{name:"底線命令",legend:"請按下「${underline}」"},{name:"連結",legend:"請按下「${link}」"},
-{name:"隱藏工具列",legend:"請按下「${toolbarCollapse}」"},{name:"存取前一個焦點空間命令",legend:"請按下 ${accessPreviousSpace} 以存取最近但無法靠近之插字符號前的焦點空間。舉例:二個相鄰的 HR 元素。\r\n重複按鍵以存取較遠的焦點空間。"},{name:"存取下一個焦點空間命令",legend:"請按下 ${accessNextSpace} 以存取最近但無法靠近之插字符號後的焦點空間。舉例:二個相鄰的 HR 元素。\r\n重複按鍵以存取較遠的焦點空間。"},{name:"協助工具說明",legend:"請按下「${a11yHelp}」"},{name:"以純文字貼上",legend:"按 ${pastetext}",legendEdge:"按 ${pastetext},再來是 ${paste}"}]}],tab:"Tab",pause:"Pause",capslock:"Caps Lock",escape:"Esc",pageUp:"Page Up",pageDown:"Page Down",leftArrow:"向左箭號",
-upArrow:"向上鍵號",rightArrow:"向右鍵號",downArrow:"向下鍵號",insert:"插入",leftWindowKey:"左方 Windows 鍵",rightWindowKey:"右方 Windows 鍵",selectKey:"選擇鍵",numpad0:"Numpad 0",numpad1:"Numpad 1",numpad2:"Numpad 2",numpad3:"Numpad 3",numpad4:"Numpad 4",numpad5:"Numpad 5",numpad6:"Numpad 6",numpad7:"Numpad 7",numpad8:"Numpad 8",numpad9:"Numpad 9",multiply:"乘號",add:"新增",subtract:"減號",decimalPoint:"小數點",divide:"除號",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",
-scrollLock:"Scroll Lock",semiColon:"分號",equalSign:"等號",comma:"逗號",dash:"虛線",period:"句點",forwardSlash:"斜線",graveAccent:"抑音符號",openBracket:"左方括號",backSlash:"反斜線",closeBracket:"右方括號",singleQuote:"單引號"});
\ No newline at end of file
diff --git a/web/modules/ckeditor/vendor/plugins/about/dialogs/about.js b/web/modules/ckeditor/vendor/plugins/about/dialogs/about.js
deleted file mode 100644
index ffa2500e917e2f61dca79fd0727d4d09b909e2bd..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/plugins/about/dialogs/about.js
+++ /dev/null
@@ -1,8 +0,0 @@
-/*
- Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
- For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
-*/
-CKEDITOR.dialog.add("about",function(a){a=a.lang.about;var b=CKEDITOR.getUrl(CKEDITOR.plugins.get("about").path+"dialogs/"+(CKEDITOR.env.hidpi?"hidpi/":"")+"logo_ckeditor.png");return{title:a.dlgTitle,minWidth:390,minHeight:210,contents:[{id:"tab1",label:"",title:"",expand:!0,padding:0,elements:[{type:"html",html:'\x3cstyle type\x3d"text/css"\x3e.cke_about_container{color:#000 !important;padding:10px 10px 0;margin-top:5px}.cke_about_container p{margin: 0 0 10px;}.cke_about_container .cke_about_logo{height:81px;background-color:#fff;background-image:url('+
-b+");"+(CKEDITOR.env.hidpi?"background-size:194px 58px;":"")+'background-position:center; background-repeat:no-repeat;margin-bottom:10px;}.cke_about_container a{cursor:pointer !important;color:#00B2CE !important;text-decoration:underline !important;}.cke_about_container \x3e p,.cke_rtl .cke_about_container \x3e p{text-align:center;}\x3c/style\x3e\x3cdiv class\x3d"cke_about_container"\x3e\x3cdiv class\x3d"cke_about_logo"\x3e\x3c/div\x3e\x3cp\x3eCKEditor '+CKEDITOR.version+" (revision "+CKEDITOR.revision+
-')\x3cbr\x3e\x3ca target\x3d"_blank" rel\x3d"noopener noreferrer" href\x3d"https://ckeditor.com/"\x3ehttps://ckeditor.com\x3c/a\x3e\x3c/p\x3e\x3cp\x3e'+a.moreInfo+'\x3cbr\x3e\x3ca target\x3d"_blank" rel\x3d"noopener noreferrer" href\x3d"https://ckeditor.com/legal/ckeditor-oss-license/"\x3ehttps://ckeditor.com/legal/ckeditor-oss-license/\x3c/a\x3e\x3c/p\x3e\x3cp\x3e'+a.copy.replace("$1",'\x3ca target\x3d"_blank" rel\x3d"noopener noreferrer" href\x3d"https://cksource.com/"\x3eCKSource\x3c/a\x3e Holding sp. z o.o')+
-"\x3c/p\x3e\x3c/div\x3e"}]}],buttons:[CKEDITOR.dialog.cancelButton]}});
\ No newline at end of file
diff --git a/web/modules/ckeditor/vendor/plugins/about/dialogs/hidpi/logo_ckeditor.png b/web/modules/ckeditor/vendor/plugins/about/dialogs/hidpi/logo_ckeditor.png
deleted file mode 100644
index d6c88392914ab140ea9444356a5e4002ee6462f8..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/plugins/about/dialogs/hidpi/logo_ckeditor.png
+++ /dev/null
@@ -1,42 +0,0 @@
-�PNG
-
-���
IHDR������t���g�^���bKGD�������������	pHYs��������� �IDATx��y|T���?Ͻ3I��EP�*�ʖ��$3�̝�Eת�.V[m���n $j[�~�k�j���Z�O�V��R���$3!��	��"jQ@@v��{���c� �$L�_��^�;3w�}ι��<gy�����z���kӬ�'�C�*�i�AhV@�Lfes�Q�m}O"�H$�Po��~�Wcߴ����2T�n0���`J���Q���}2�4�s�eqK$Io���G
-�gVӐ�����ܱ����+�b1x�E "Y$��7E�����)8�[�ʞ���
:�OD�Y`��eM�H$�5J�^�͋���M�+��5)���O�~�}��O�g����	�DF�H�ܕ��#�i0_�}wO{T�.���ӭF�c+����DFNJ�9�����/���'�*���c�«5�5w����Gt�D"Š�0���L���Y�(��[��Dg�y�Hd�Zz|��rJ�uI$���1�&ʜۈ�)�0?:��Q�)i`�)�czޟe��H$R��;�������԰����KC۬VzP���6���k���n���5g
������{b]v8ܬ.�D����/���z��;*���!D���,�Hz��<�:s��6�>�-DK�����}��Чr5��L���GC}Ȥ��a���U��r0����-�
-K$�T�sc7��0�l��=���B��y��=�M���_��@�H���]3zecT*�~���a��!����^�Xg�l��x8 k�D"�b`]0J�-/8���)��7+���M�W^��y�	��3�:t��Ǣ��
-a�R���,��-�	��������>!z=��FK$�N�m�D��X�}��F�߮5�SZ���e�e�����&(������y42�4!<5���D|�����d@��\1f����$-"�2���g4�Y�){��6.�	�|G'�P���|@�
���OE-[�Oͅ:��ڈ@Cj���8'�d�lb�D"9&����M�U�����*�px3/�s\�h�����1|���r�I{���O7^�q�`s��[G4˪-�Hz^~�����+ϊ����qh�ω�Fy��O}�lݽe���#�'�@�6���qx�HY�%I�HI7Qf���Je���S!���0�������������N�=!����Կ�5R$I�D���o�T�x�`�B���{�9������Gf0��V�D'N�D���(���es�ү�����L$I{0u��jQ�2�f�BiƘ��~����4�g�,*�J͡T6�����Ao�{�<*KE"���vu���yn2f�rԙ�^��!� G�O��V����;,��w�q8�#�`�� c�jY0�$5b����;vn���%Ni�o�����	E3�.���:ڈ�����������'�g˱�D�%1��xԣ̚�VU+C�����@?i�6������dv��!k�ظ���4��b�3��S������`��e�H$�N��Z���F"sv�°�a����_8 �/.?s����:ԍF@�����S�oO���{�Z��_�XY2���b0 �kgD�,E���@����/�tt����|�{?�j�ި������������_re�H$��p����"�v����Ȁ��cn��6��w*h$S�������3C�>���U
�#�H:��N���P3K!�xh`n�h�� (�������p����`��J���H$���Y+��]
-��1�H!�dh0�
���%�ڨȽ1�r����d'�M�dǯ�KY.���b�>je�]̰I�tV�ľs�߀���@ѵ��X�E��*t����[?gzK�"«��$�/F"�����]k;[����SZtA����x�r�o6�����n�Cz��
�6�3C���Ā���`$I�#�~�*��%�1�Y��6��V�!��Qe��Ч�^*�E"���y4�
�������o����80m���׃�������p���G���KGy�(���je�,���@�Q�oT�_%KE"��)�C
-A
-���w�_o����R*�G���\�v��o�������~��2g��2=O�D"9*���Di�� �o��Ć�ā��<���tV_��7: �Fy��R$I�#&'w_���5�s
���^��o!EyX�Z�φ�ʐ�ڟ0##s�\` �H:0�\i�T���4+��l������S����Kf���s��}A�n����}_'�B"����R*��Ȕ�H�Q�cz��;3D�"�ՙ�:t��)������?�dAH$�vc:B��΄O{W���tU{s<[���/�-��Qy����vG>a��� MfU�Q���A�����cYY�n�?c��!p��7�v'�_����S��/o�3f���5�'OƼy�[kX5
A��]ߵij��YI�P4~<V,m�]^8�4�}��N���0 �G��_�fg�
-�ꂗ�h�!��Dy^�=�~,������g֛6���2݉,Ev��Q�w_�ۮ�����Sq��1��'�8�������@� ��w�С��߱�������� ��~�P�m�������j����]�,��*�֣}��1�4V#�N�"Ov4���i�?P���Ш������j�nc�I�&V�
T��<���9�x��IA��+?����M�u�,�Tq#��(7��T}ND�Z�AT�YM�����{���:c�u�24��s�F�����F7�.(����Pg��c�q�5Gc�KL�{��?I�H�n^�զ
�S����CՍ�_2�K�Z߾�G`����~�
-�>�p|���2@tNC�ۥH����
-�E%Z����5 ��
�z�V��ZlťCuC�c���P��j�{���r��4���l!�!��w�a>Z�5a��i����-g��0�R��V�С]f�w��(�
�����J�XT��@���w!cN�hWKƸU��
�V���G���|��M0*�����@y��)��B?5�4LL�{E�J+!����s.�72�Bp8O�	���j�nݰ�v�먿�͵-'���6qI8eX����M�u�$]��eRf��`�V��1���"���/΁I�3�m�T�]�,��?�h1��jPP\��M���X"[�Q_[[ф��B���ʼnG�^��^��A�0�����{翇wE��5�7��a�e��nd"-�Q�7BL�M��xT�l�����8�}�ƺO"�.l�� �&���C�0�]=O�'�:' �[����������d�h �
-�7�>[��} ����l�.M0
���r����f<7�C+S��\�{�(����B����2јj_��C�(�����>hU�G�rL�cE���Ƕ�Te���
-�n�����kܰ:\W�/Ą``0�}F6�)x�leֺQZ�Qz�b��
�n��B`��
-��Q����w�{���24��Yq�\�^���u���;Fy�s7����m�J3TfV���`���ry��?���K��%(�򺲻��Mj�x`�e�;�����R
-T����'��ڝ�L�w
�����d�iߩx.���K�hѢn����q��,C�S+�#�ݤ��d��-�jmc@<B�3�qJ����xYUL�� %0�,V��`��Ү���buh3YpE�b����1��P�(�נ���<�nXme�����o=w��G���H*n0��썆VY�ȕM�f���\�;l|h:��)��������"�"���N��B��Fa��@]U��:pB"�������X���]J���i%��e��c愂b׭A�����2��vw˽���P�^�B��#"�U�P� �_��f�Z�Ҷ��cQ]��{_�M����W:�X�~�V�k!�8_%�����(v��N��K:��愪b�a�JP�ӛ�籁&ef#�|ݫ,MȎa��Y�B���U�&�G��M�����t�����Vĉ'b���X=x�_�8')"�,���'��,h���h׼.L��t�u�M_!:�`<gs�]X�[��[7MC�ۍB�t�6�[��>��n���P[��p��`N�4Eym7G1���5����@���%= Ȉ�Uٵ����|`���(��U��T��Kt��@�Zz����������޻�/Y�B��=C�O���������4H|D���@ٴ�:�@f���O�N���jIJg��l�Q�]����KZE
 R��K[Yj��V����Eғ��Z⺘u��5QU�
��Go	P�̅{�9jeh-o+L+@�QXB:1lT$�D:#6�g=�x��[�f�Y�M�t�����E|7�0�г�H�-h��w)
-ley���IoP*���Zm��!p�EsIOr��"�Я���O�ȟ����[l�v?|�4e����\. ��
`q/X+�;o���D������߭os<�3�/� ��C9FD\���/?^��bg��h��	�ֺ��B��K+�Ӆɓ''��4iRJ�9qb�$?v8&�y��¾��e�`�
-���úJ�@G�%� }!���5{���M��i�~(�����}w/մ���3�v:�X�t)
-.{�@I=�g�Ϸ���D����*���[[�9���yɆ�6_o�iw[��=[w��b�.��M,~�Lj����Q`w]n�;�-����F����ڐ��ۜ0Q�8zWiQIY��]ì6���|�Ŧ�k�iwo�l��V�6���thkzq�]gi�Ů%�B&��(�9��v�f�M{��*�=��n8J�28���D��
-�ggG�%��$]&Ҳ�N��naƻ�&MB*���eq�y6��3ʺ�XN��ߒ%�;�6�An�����׸?���L��?���l�Ɵ�Hd�$R�LJ5Xl���}�~:cƌO�B� ��o@~������1���tcNL�^Ϗ�6��$�G��W��������VT�QX\z�!�g�!�J�/n���]*������B�u��Ǧ
j��ȱڜk�����V�v.�
�p�923
-�K�j�����۵�BMr�^[�-lO0H���k\�.њ`����XpA�L���~��ɮ����J�,AAq�-l�# ������q�5��e{�,�5��a�kBD�8VFG+�+��?����?):m�efǻ)���\����a��a�>��>��}�������B�BG����������6�gƻ`�u�j�VC��V�6���5����q��5�������`�kw2�zoC#=��~�;��2��*t8;,R$]���,�d$:�������u�~���*�0EQ�`�{w���S�8q"��磰x��0�H�oSQ}������m̛7���r*��>`�'��������3R�f��*��
-f1���=��X�r8TR���f������=��H�ۗ�#�Y����M�{���\��[B5�V!�����#�&$��f�F3������QXvTAH�e�]�
�O%����6���rC]�ק�2����K�{6�rU�ڽ��߹(VvI:M��8h���n�0-�k�x7��u���?DW\���^�0l4�#�@�`E�PSUg�9�P���
-�5��x�ha�2ļ�ؽ�NP~Y�au�Ů
!�	f����D��H�u���6׿Al�/3��X���_ i�FU�q�#�˭������5XxZ;�@��x�!�k��k���L��DWI3aa4�/�pF��K:2#Me�xD�SQ��^V����1N�6���k����'�~���jE5Y},(��P�t�R$]��vmL<)Z�K>��'�껸�����y(()֍�]C�@�%
5UKI�ieswS_���|�E�x�eF}��pna������=?��]�E4�<��Rym�Z�W�zc�$����Gr8���s��SO��[Zj�z5�(0�����:�hS�����@�]k̯�ddHd[�G�T�>�_p���/d���s�sֿ�~����a}7�q���ᬄ���-�z�w��.-n��n"��f�L�(*e�<��#��
-��r�d����q��.!H~�<8.*t�6YTR.�=�ص^+�.�v�x ��[_�y���/"~@0��5)�D�9&೏�"���G�c���E����Ϲp�g{��z����*)W��Y>�_o-�E��D����g��<[�G�P��b׬��ՇQ~�vwy5~�F*)�F��.�n�~'���Y�2�:�.uf�uO����ɉy�]�z���5��(a��>�>�x�`츥J�ђ�f(V[i.�Yh�v*UDj�A�]�`��Mm⫼-v�h���&�C�6'����e)v���z�ngpV��_p�X���#���<P����?x�]�����bw.cl�xs���%
-�)q]�?�c68@���M��y�u�y��q�f��1�)�]Ԛm��c_�Ɵ�"ﺞ�������p��V�͛m�E'��w�:I"hM(w��_��{J�y��Ty0V��;����k��~gR�P}����DC��X��
`�K�BG�wI�X��,t�P�oy|�`���~�7��2ʴ:���~o{f�Y�=]q��bs�fp^�{
}9}UK��t������+ۦ���Ưm
$�-�S��ӝ�z�%��ٷ������c}RM��O���1�ŗ�[&�o3ʰڵ_$ͮ�k|��# ��3����ִyV���&$���:$q
-].T��]D/$�*xJ�ŗ��9&f��Š�au�=
�ݭW�T�Vx��l��c�s��Ptf��r%����z�F��&c��z�FRd��S���	=����رf�pE�{��,6�:���n�V��8X�ݜ������Kg�g/������f���i�jc�@����y�P�f�0����W;{�:����@r|��Ab��!�6��s���%2�S���}��g'm/�k��L�3W�)�i:7g�:�z���S̬B�Y�l��ק�e����L2��������PS�*�8f3!��̔N�p0�+�XzY��Ib�8����w�b���2tC���Ww���
-��N1,����P�4t�|u~,����c=.�`�p����/K�Jluh3X�%��O�9�[o�T�FOnn�je��
-)��cڥ�?�|�Z���wB҅^"l����23Z�H�����;e�u�޵V��,�?b]1�,6��Zť�����,�Z��س��鵆�H�&�[o����;�����%`f�����ܘ;V}f�9
�������t�����0�&y�T{��C����,�3XD��c��!��R�asR���|��^����	��L�4	�v�5���b������RWS���W��]���P6%�c��N���Q�RX�G�9Zǿ��݅@�fQ�X:"��� �B��Dҥ
-�a����&�i��(��Z�w�M��`ۢE��T���3]`C��6�*��9�j��>{,E�Sk#G]�C5q:�;-�@���r�nN�֙qǚ3f ��j�na��JrD. �i��e������MI��d�J�\��t�oڵ����k'������_UU���#,.����¬*��c��,��C���gd�J��L��<ݐu���m�`��m�D����O:��EW]���Is�靠��_
-��rk�%�t��~ܺ��h�v�RT�e�U`|����ӿ��f�kX�;rVaǨa���lTܖt�i�;_N�Ȁ"8(�wy��40�������.�k(�f�ز��HL|��
��+;�'��]��ș`��dn"I�Oic�{`h�����nR-%����1o���6�>�=�(P�9�-Z���~�K�s�����ڜ/k}�.��=iW�s�0Dv�=��٧��/Z���Swb:-�H��g]E�Ch�'�����V�����|�
G���Z�-22����b7�S��[m�Yݵ���d09'���<},�oFߜ���@��%ZVT\:(���X��h��ΰ��w휂G�O%S��۸T���pbp�֟��t�]#��G��0x���̔b�6���`IDAT �2���Iy�2�pɼy�Z�;HmŽ9��[��_�l$X�(��-q7Y�=��-Ӆ`�o��'y����K�j�1iSǠ�����%�I]�x謜��<N͂is����*
5�]*���G�:��@r:�u�~�k�nC��EvI��pV��v�x!���lgv[:6�OE���p�>�����A�bN�*�ڵG��C��V��#4�߉���P�);����
�ʹ��{|�D���N��H$-��&$���U��;v���&M¢��t�,6�F��b����S�~&�G��$)�.�{�bp̜m�9߲�xR��7���d/G�����[�>��KD/�z��`��u���Iڕe�Izyn��թD`�5n:ǝ /]�mPv�f"4%�-�������U�c��uy�gE�oo��o
-E)yZt�������l�Y/��r��
-�J�j�"�16���]�.�<y2�/,6��E�Ϯ�z���
-.2����c�����I'�[��P�Y��i(ī�`��KJ�V�Y�N��t�bf��I]X��KG�tl�f�'ka�k�91�H�4�s�?�=--�y4������?"�E�z�o0qb�5�7H�?'<�XV�Юt���L_���[1o�<X�"��k4��=q_�~7�xZ22ə�b
P ǔLP'N��V���Ԃ�.+R��[�K�.,q9k�nX����1c����溌��ҭ�5���aUB���*�(���(#��	'3sERT�J}ղ�֒�����1�%S�N�}#��>lj����f��2�'M��`��Ű�u���6Z�s2�[�	���ڵ[-Z������(}�'OF�ڏ|�yX���0�J��D��+{��l�����������&�V��_-^�q�tSVh�<Qd��x��k�n���{���7oZ�Z(֘�����ttp��UE.� ��8����5B7Ŀ�ߪ��_��R����b�l�},��&�'⩮��ݖ>�@,�PY)�8J��:������}�_�B��0�YC���@�����'뀙��p�]�����(���M�O�R���v�8�l��kv�ɦ���gX?ou�L�=���!�j����g�]�	�ű��7����y/��H�e����_����d�o�vg�*>��`���W��6�l�ފx�:��h�O��N�g�Th/��D�����=PV�cc�lu~�Z���<3n�	�EV��	����������^v�F9&�7��ޓ�tm]m���ۃb@�+{1�����}�r��m/�6��K��2G���DZi4����4?-T@��f�3��� }0q6\�z��{��HJ]a�h
~w��Q�����2�r\���0��h�/�a�����ފ���
�t��]����k&�	ƞ���6�2��uխ+���ʰxɲ}E6����b�4��y�Ŧ��s�ya�j�f�(*Ն�-���3�u-IY@����C�X3b
��V��6��<�`�9+�1�n��3O:h0U9a��V�����խ3������U��\����k�n��].ڶ�obn��U"��.�}�Ц%�H�b�0�
�����R�t�3�4!<5LȕZp/:6�}�o�~���6M�`p�#���̷���q�΃�CD��D��ф����3Ҳ�`Rn��x6�A�c��`xK�!]����R�M��0�>!�#MØ������=��n�ljk����:�
 6'���Qn�b�����ܖ��D|�n�>@k��#.�2�rЉ¦�oR�r��A���f,1��Gnn��G�����I'
�h���֑��"6�w�Ŧ��'�fl��r\ނ������u?)�@��}�jw�.pԅ�thw\/�w�ғ�e�Y�;�p݅ɯ���4��O�E���d��l��*�������йD��D��1�ř挳st�i�����
���%��`�Su_�~���
-�~ҽ:��CCC��s�_� z�@�����x�mA��RR��jO@!�����zʉ�V�}�������jbE�7ػ��#�@�����Öu�ǃ��>6e���|�f������K�z/�����{K�j>�u��?,U:%������x��]h]ݭ�}���)��IJ���=w=�<G�/�h)�w��ƍ`&P.�����LT��F��v���8
�	b"���M�M�2��+��v&��:��[m�D߫��<��4'�lYʖ��<oX���2���S�~�7:��h0B������D��E+;�t��"`0Cb��V�0Qu_��O>��g�3�~�����vϯ����}O��^Q���p�SP\
-!D1_�Ds�GZ�̾�����k7�/1
-��AL�1����r�{��T�������8����m'`;C	(*^���|:�����3۽h���TX�o@(P���ޥ��y+.=�x�V�roNm?�}��H�&�p��ևl�5��#Θ13f�8nmluN@з���;���e�wl5p�����҉���P]��o�g�bP��F�l2�1ă&��}����Q��&͐��Z�$I��1>�fHKtJ�TD�D"9�0��HO�Px�4�D"�1PI],͐�m2��-
!�Hz&2b
��A����$I��9zE�6͗�H����Y������QC"����
̸�!͑6<
-�zy���D"�91���)�Is�CX@�yOICH$���Y+a��>I�Zi�cʾ��1��䘈Ax�h��w`���Z)�rlP�\�s�_��$~����f�/�2��̣�yz���6���7{5�M)-"�Hz>2�3`f�`D��|"<(��#,W�6��0�I
-�D"9�b��"��fw�0��5���>�fꖠl��㘣�����H$�o��F��Wc�}#�5k��	L����3�[mtz�@�����5$IZ�A�aĬ���v�7ږt�ڴ�T�׸?�I��CF�$Mh׶�g��	�`����(����vc�bR
-Dy�x���&L���D�{#�d��P�g3P(�xX�	����}n���M�5A�_��D"饑A[���FE~�Bt��Ҕ�ѿ��߳�����2�F���H$�o_d�L��#B��_I�R CQol�>j=�d�lB���H$��� ���_��y�6g���������<G�'+��WK!�H$�Md�D����E��k�H8ba���F$�ߜ�<��>��#!�H����h]0	G�Q�[/*����L��[�� �WIQ�1���D�}�H$)q��(�{b%��ss��C���������t�Q�w}V&6$߷D"��J���~�<{�(a�g�^l�
-�70+o�#u��&D䘀D"��A���������
-�F��{�����(��O���A�t�R$���B�ӫ3��5ngO���hIN��������T�Ɓr�YT"��Ƞ���pO�Q���L�8����2�F!�jQ�wѮ�����!)�DF)&sn#Z����X�<CG����M"��/��y��C"��Ƞh����"��y�*
-��m�J��w0)Ì�y6���!�Hdd����Y�=S/�����/1��2{��C�K����"�:$�D��1&k��S��0_�}wO{T�.��g?~�gd<���������CI�k���/Ey�5��+A�6ŧ�K�JQ��?r���3���H$�;�Ѝ,��)��.�=���7�xg������_(k�D"��A��z�����('�J���k�-T@.Q��{�o�����D"�M�������E��+��r�w�9сfS�G�0�"�Xd�9����+�["�H�b���O��޻�K�6�Zy21����P2�f��dV67O����$�D����vҼM�A����IEND�B`�
\ No newline at end of file
diff --git a/web/modules/ckeditor/vendor/plugins/about/dialogs/logo_ckeditor.png b/web/modules/ckeditor/vendor/plugins/about/dialogs/logo_ckeditor.png
deleted file mode 100644
index cdf17c024ced2b3b1573058299f6a0681351b395..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/plugins/about/dialogs/logo_ckeditor.png
+++ /dev/null
@@ -1,15 +0,0 @@
-�PNG
-
-���
IHDR�������:���� �E���bKGD�������������	pHYs����������IDATx��]{tSU��}��/�*0� /ET|���$)IZ��"���8�k���q���L[��uz]�i@��FsgF�GQ\���̫M�&�)|�(���
-�I���i���A�Jt��Zg��d�}�}�����|g��d\ր�ŗ`�+�M�,��r"@MD�U{�%9[[�ՠ�t���ۯk��ꑶ44K�x���D�VQ����.��PS��T�Hfg���dQ^�F��&�C;�?
�)?��?u�B� �ޠiC�w��_�3�ސ����-%���ǝ0�"U�TgG��R��Mߧ"G[��iW÷�	{�`���>��!��G�f?��3Җ�-�i&��q*��֥g�lZ|�~�ЕoFl�e��5$�#�h��w]�՛׾23��O�H�D�S�tҎ��lC��!DKr�+�ʂoe�?���v`�
��e���wRLS����w~�a#�T4o��ց9;�1F+D��;ji�5q�AD�ɐ�J��n��P�L�,#�#j�$M�z#dUl����u�b�{��)�5�'�#	� �Y����uwe.ߚ�e�t�B�*#���x�)J�J��ԭ�w�N'�dt���x̧IJ:D�����=� ���t���/�L���\�)[e�E�<�̧�;��u�uF!�� Z���	~�P��~��r
��k�P���7:{�lf<ǒ�H
�E[c%�Ȩ�:(��I'm�+��o� ���`�h�BJ^��RS��N-B	�=�d���"$�@�*��5E�P�8t�nY���t4GS���!�|�K&"m��	R�M�|N
-2�7
-��Α�k"i,��7��iԶ.��T�!�E/��3�w
RU�~*� >�)�����%�jq�ǚ���̐��Q�i\Cb"���:��
��T���o�x@2(,m�_��qOy��#gh��r
	�@F�cRYH����Đ��ڒ�Gd�y�ش�K]����2t�C?��4�kHH�;S^J�9��nXc�yQ"�`�$�#M�خHS��HS�#�89�����E�%\�M�:ē�rE���f?L��QF��� yc���V�K����5�k�Hf���	T��v��2�81�u�c%���m`�lǂ
jI��o㆚L�	�כl'�2}z�}䙭I�F9E�m'eh�l6�͢�&۷}����H�םz*��yY����ZY�K~�]�됥��@�}�Ynz��kQ�?���۔�!�%9��ǰp!��<��F�<_�|�d`/���@��>�����^�ʓ�0Zw��T���TYfj��,�Jн�}�#�`�ZG�����MyI�"�Y]���Tƙk�.b�0�s�;��
-&�o�*�>�c�ϹDoDC�?�I0�|�\�����2x�M�ߍ����M�i�,mBۧ��BK�5	v���*�����n
-�N��5}Y�1��'L�͇$�k�H�'Rr�ެ��8���އ(�կ�;�HC]C�'�)��>A�f�\3p��d}�����$�����8>sL��|��&&��^7�f�-R�1�U��v̰p!��}��
���=�%W8%"H�\ӖT�=�
���f���+**�7G��J�y�>��T&��\��+WbJ~��1U�_�iѦ�@�}#B��'s�����&[�w�J���t���a�+/�O�)���\�%3,q	������Η*�4��>����]x)LS����5��� Rf}�7��Q$��Y��M�A�>��)���rv(#���,��7�~)+��zp��k�H�7b�i��WyD�r� qsF��<��q�l~i�*5Q	����.I�AXQ�u��`���`�U�.6L-�7X�<��D�zq�Z���%j���i��l�	{���D�ȏ9_��X)�g谼�����K��#�u���O����>��Ɏ;����A\P�s~d6�o���@e|V�[W�7Yƃy^��vMu������3[Q�u#�d�I�� �:�i�uGi牕Ё�C� �[���pϽؾ[��k�{����2������3�	)�<�
5.�&��<�S�~Ց�}���?��|�%�ʪ�.��	{�G�&���Ѷ� q_���Q|�Y١]e�:�@��3@DJ~�۾�������<�2E,���5j���:>J��:�̙3�msxߧX�aCR��;uZ�q�eF�I�raJ�m�ћ�I�EH-(�F��$���_�Q#K���\��L��9{�����3��������_��J'���_HU>C@M�ȚF�_^-՛�:{
-^]=��W����D���@�h��j�c[/όD"� 趠۽�`�]�,'� �����%JB���6c������+\�|f���=)cof/@��m6�`���傠g����i���DÉp}��n�5(,D�ÁX�� j�ܳ�&�m�W"���ʰz͆����豸���ѹzL��03o��ڙ,��r"�l�����DTA�UU����A�zf?�����]�����<�g��We����"�x���10��'�rs|��[Z��
�w{=8^�@���ׁ��dY�y�dtZ9�����f�`)e�#x�����l�KK���>��x�>Hй�ҩ�ղ3��\������T�0��y�k�-T�\IDn]�m�*W�m2��h4��<A��C�e��s�~�@ƀ�S%�FDw���!E����1^(�Z����.91>&��ct����}��~��%m�e�l����ʕ+QXX�1�%�]ͮ�{(�w�}=���g���%/#"G��y���ӻ�O��)].���/�I��r~,��<$U�����,v&w��Δ,�a����'�k�!�uuwj��d��"F@c��>�Ջm���AT���������z�5�̆�(wUe4�h��/ɂ�z�Y�c�5�X��q�(�\�\cA�|�7A��V���f�QPX�_��cʍ��������h�Ei?�m�}��}�n�^YE(��%w�|zO�' ��Dd���])n~�������_,�h�	3�M�W	�B��YW����������� lw����yj*7��N�A9U$�
Kg��D���N��f~g�t���*�t-�4�c	#����ԩsN�ƙ3�-��[�1��~ ���E�R�P�玑��Y��LhYq�R�Ē@,|\IJ��m*�AU}�y�|��P冏�Z���=GO׾%��/�˰��b��y����>�
-���B��$�c,G��j��Sw�_�NTo��Čks-ӆ<�w�ĽqJ���Y�܂i#d8��>�3��p8�Of~T����/�2�KXrj�PO����.��ez�A��;յU����f^�k��<�u��k��]�����V+�n7
-�ӆ�Q�謭�j������F���$�7?����
�����0���d�f�8��p�-�� ��u��f�S����m�� �	H��I�P`~�|\9`\�ʹ�݊^?�EG9|���7L����<sAh��c�Ϸ��Y�`|b�Q�@(ԩ{�L�h;��D�2;~=]�q��p&b�#{�!��L��i��W�`��mN��I�,
-�:j�ҧ=�|0�m��D���F���_p5��j�ɚ���'�D�������n���,n`V�����|[��d�C��'2&�N_�*,,������$��B�`{�n�c
�&�Y�KI��^&PLg�M��;x!�����qծ7ٚ�Ą�?m�w=�3E����|#���w]����T��	|�1��5^7�>�NJ���g0Y�����������E<<����8�o	�¾_Qi��z�/0c�H��ɉ鸒�/��vb^��Ss�Z�c�Q�E�UU�z����皭���骐��p��r[��|5���x���:��E��Z�No�>��w嚭?]�v�=L�������;�����k׮m�`o
rͶ˥�}~��2�`?�q��ǿ���;+�`����=�o�:�\��>w�e�z�e�wf��Uk6���D �/`���G�f~����@�Z�k��h�'%Wmk�h�ԩs:d4�S�@*������M���[��+��F�UR����5U�-�=�^;�����L֟�]�v�a���74�[�rCJ�8�+����&�+`^�7F��
��L���♛��z��Q0!%9�f���I�M&�|��{���*V��tN�����1�֦�N��������Hu�I��5�<t�7��M
��D�{��B���ލ;��+���۳	Tϵ+�>vL�-U�mÕ��_W����Tۼ)��52����V\��,���X�f�������z0�~��-�J��
�C�83f5gn�}�)�c�t:U���d���s!C�~�D�[d8�I��V��9N���d�gɋA�N�ҽ%�bA��s�t�+"�B��)�ȧ���o�L�h׎� ���͛?��ϾxO����C��d�H�6�c����GI�܀���$HP“y�����8h0Z2x<�b��~�JQ�=̘C�K���`���yf|�Ͻf�y����%�e0Z��0F�?�xB=%����]�g�1_<R'%f���5Z_�����s�6x��s͖ˤ�f��So��L�#f\ɒ3���������&�S_Q���hw�����\�JAs�9Wd�M���\f#��9��&��+�u}�k�"Ъ��ϯ>������<�8�8Lj�����d9����ؚ�?��T�8=(�"���EEEX��[Mzk���w2x.@׃������|��^��o�2�6i��H�xآ�r�q��5k�o��$B�<�	���T����%�s��:Fa�C��F7��	`� �R���{0a�	f�Kݕ"tU��nI��:��s,�Sѿ�u�m�XU���@gu1z�����2̞����]�c�X�i^%ۓ�/h�o�@�l��WLGYY�6���������.`-D�9��~��}�����g)]珞c����	����I-ץ���^���?áM�J5�BGO~_3��T��WD`H?@�~��"z哟�n�v���+�8�����q0�w��f�����x�MC�Z�̇C8x_�E���AK�Qt�qBf�6M�zo�0�z�?00�e�D��Ҝe�5��"�|��rܷ��9h<��M]��
-��Ҝe(^Bv
�fZC)]��C�"Ү%V�W�\�%;%)��i��-�h=�|F*����P.�_�T��_]��X>Y�+�yN���T�-��(mP��H񥁬���4����W�N��GB�cX��j�"D�Z�s
pr[v
N�Eh�G�`�
8�ۜ}�fO&"@�����D���#�h�H�!�,BgL��?��w#�!l_�H�����5�hH]��'ӭ�*Ѝ!B�7�D%̱	�4�y���ҡ�{�5tK��R�����JD�
-�b�9���
��^�iD�w�XT,�����Y���'ڬ6
-ОtA��%�j*���#���p��b�r���d�dd�j"����-�ih�V��Ӎ�ǧפ��j!����IEND�B`�
\ No newline at end of file
diff --git a/web/modules/ckeditor/vendor/plugins/clipboard/dialogs/paste.js b/web/modules/ckeditor/vendor/plugins/clipboard/dialogs/paste.js
deleted file mode 100644
index 29cd687af335682150af5f30349f52bdef8a2695..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/plugins/clipboard/dialogs/paste.js
+++ /dev/null
@@ -1,11 +0,0 @@
-/*
- Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
- For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
-*/
-CKEDITOR.dialog.add("paste",function(c){function k(a){var b=new CKEDITOR.dom.document(a.document),g=b.getBody(),d=b.getById("cke_actscrpt");d&&d.remove();g.setAttribute("contenteditable",!0);g.on(e.mainPasteEvent,function(a){a=e.initPasteDataTransfer(a);f?a!=f&&(f=e.initPasteDataTransfer()):f=a});if(CKEDITOR.env.ie&&8>CKEDITOR.env.version)b.getWindow().on("blur",function(){b.$.selection.empty()});b.on("keydown",function(a){a=a.data;var b;switch(a.getKeystroke()){case 27:this.hide();b=1;break;case 9:case CKEDITOR.SHIFT+
-9:this.changeFocus(1),b=1}b&&a.preventDefault()},this);c.fire("ariaWidget",new CKEDITOR.dom.element(a.frameElement));b.getWindow().getFrame().removeCustomData("pendingFocus")&&g.focus()}var h=c.lang.clipboard,e=CKEDITOR.plugins.clipboard,f;c.on("pasteDialogCommit",function(a){a.data&&c.fire("paste",{type:"auto",dataValue:a.data.dataValue,method:"paste",dataTransfer:a.data.dataTransfer||e.initPasteDataTransfer()})},null,null,1E3);return{title:h.paste,minWidth:CKEDITOR.env.ie&&CKEDITOR.env.quirks?370:
-350,minHeight:CKEDITOR.env.quirks?250:245,onShow:function(){this.parts.dialog.$.offsetHeight;this.setupContent();this._.committed=!1},onLoad:function(){(CKEDITOR.env.ie7Compat||CKEDITOR.env.ie6Compat)&&"rtl"==c.lang.dir&&this.parts.contents.setStyle("overflow","hidden")},onOk:function(){this.commitContent()},contents:[{id:"general",label:c.lang.common.generalTab,elements:[{type:"html",id:"pasteMsg",html:'\x3cdiv style\x3d"white-space:normal;width:340px"\x3e'+h.pasteMsg+"\x3c/div\x3e"},{type:"html",
-id:"editing_area",style:"width:100%;height:100%",html:"",focus:function(){var a=this.getInputElement(),b=a.getFrameDocument().getBody();!b||b.isReadOnly()?a.setCustomData("pendingFocus",1):b.focus()},setup:function(){var a=this.getDialog(),b='\x3chtml dir\x3d"'+c.config.contentsLangDirection+'" lang\x3d"'+(c.config.contentsLanguage||c.langCode)+'"\x3e\x3chead\x3e\x3cstyle\x3ebody{margin:3px;height:95%;word-break:break-all;}\x3c/style\x3e\x3c/head\x3e\x3cbody\x3e\x3cscript id\x3d"cke_actscrpt" type\x3d"text/javascript"\x3ewindow.parent.CKEDITOR.tools.callFunction('+
-CKEDITOR.tools.addFunction(k,a)+",this);\x3c/script\x3e\x3c/body\x3e\x3c/html\x3e",g=CKEDITOR.env.air?"javascript:void(0)":CKEDITOR.env.ie&&!CKEDITOR.env.edge?"javascript:void((function(){"+encodeURIComponent("document.open();("+CKEDITOR.tools.fixDomain+")();document.close();")+'})())"':"",d=CKEDITOR.dom.element.createFromHtml('\x3ciframe class\x3d"cke_pasteframe" frameborder\x3d"0"  allowTransparency\x3d"true" src\x3d"'+g+'" aria-label\x3d"'+h.pasteArea+'" aria-describedby\x3d"'+a.getContentElement("general",
-"pasteMsg").domId+'"\x3e\x3c/iframe\x3e');f=null;d.on("load",function(a){a.removeListener();a=d.getFrameDocument();a.write(b);c.focusManager.add(a.getBody());CKEDITOR.env.air&&k.call(this,a.getWindow().$)},a);d.setCustomData("dialog",a);a=this.getElement();a.setHtml("");a.append(d);if(CKEDITOR.env.ie&&!CKEDITOR.env.edge){var e=CKEDITOR.dom.element.createFromHtml('\x3cspan tabindex\x3d"-1" style\x3d"position:absolute" role\x3d"presentation"\x3e\x3c/span\x3e');e.on("focus",function(){setTimeout(function(){d.$.contentWindow.focus()})});
-a.append(e);this.focus=function(){e.focus();this.fire("focus")}}this.getInputElement=function(){return d};CKEDITOR.env.ie&&(a.setStyle("display","block"),a.setStyle("height",d.$.offsetHeight+2+"px"))},commit:function(){var a=this.getDialog().getParentEditor(),b=this.getInputElement().getFrameDocument().getBody(),c=b.getBogus();c&&c.remove();b=b.getHtml();this.getDialog()._.committed=!0;a.fire("pasteDialogCommit",{dataValue:b,dataTransfer:f||e.initPasteDataTransfer()})}}]}]}});
\ No newline at end of file
diff --git a/web/modules/ckeditor/vendor/plugins/dialog/dialogDefinition.js b/web/modules/ckeditor/vendor/plugins/dialog/dialogDefinition.js
deleted file mode 100644
index 9361af4ba39a6e776675f48cd7ccb5f364874c05..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/plugins/dialog/dialogDefinition.js
+++ /dev/null
@@ -1,4 +0,0 @@
-/*
- Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
- For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
-*/
diff --git a/web/modules/ckeditor/vendor/plugins/dialog/styles/dialog.css b/web/modules/ckeditor/vendor/plugins/dialog/styles/dialog.css
deleted file mode 100644
index add83eb2258afb02fb86516ab337d3942f20ffc5..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/plugins/dialog/styles/dialog.css
+++ /dev/null
@@ -1,18 +0,0 @@
-.cke_dialog_open {
-	overflow: hidden;
-}
-
-.cke_dialog_container {
-	position: fixed;
-	overflow-y: auto;
-	overflow-x: auto;
-	width: 100%;
-	height: 100%;
-	top: 0;
-	left: 0;
-	z-index: 10010;
-}
-
-.cke_dialog_body {
-	position: relative;
-}
diff --git a/web/modules/ckeditor/vendor/plugins/icons.png b/web/modules/ckeditor/vendor/plugins/icons.png
deleted file mode 100644
index 331a155f7e77d608bcecc95060556417af6da4b2..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/plugins/icons.png
+++ /dev/null
@@ -1,30 +0,0 @@
-�PNG
-
-���
IHDR������������1��cIDATx^��U�$������
-%> 
-������vw�i���55[l1����"1!*���`�`���J
-A$�0(>@0�!�@�(����a�����;��7��G{~�a��=s���~��[����E�׻b|||��ݫW�ކ>Q8���[r?�PO;ٙ�LLL\D��L�ר$[1��8RМ�S�kK��Z@����&�S�iRڲ���8����2�G!�U`!���[�&��I(覲��h�7Pw�7�%hK2;;{��@/��Ľhˆ*y>��Y�����+�̇���	9�^'@ٵk�!S��~%΢;IU�\	9�%���H@�W�>��t>�ο#	��0��$�djj�X����$y@'��g0�^�@�W%�����LI@[�k��F�xJX�R��'n$z/Ę�V.R�ҽ��i`ӦMG�,,'�g�ׄ/�����}QIND[��+W+��-Z�.��і���v5ڲ��Jށ�$�lw�~
-����S��e�����R�H�*$����8N&�l0J�I=#�j����qJkA�����Ǖ�c�|kVU�uh�B*(����mi�A�(T�$^���������^+gff^BWfNOO�u���(����H�{����{1���]^+
-m{oŘ����+�)��./���8ΰ@�u7O[��G�N�����5�V��h_���>�E��\.&�C�(:Ir���
-��7R,]�ik;�t���Rp��D�<��s�=�0��wh_&H���}��k��}���q�׃���q=h�XH��� 
�����z�z��I�^r�
-��ic�E�.�R�6�_k_�q�2�iv^o�ij?������Z�k�<��7j}�b&��ߨ�	�oKՈ]�Z`wj}�8��@�%1ɕZ@������֍�?"\�15��ƎRUԄ��o���Oη��Pe�G��'V:J��8΁
-M�9zS�G��f͚SiZoF������6�Ї���v�hUe��Z�Ǖ}�kS{/�o>M��QE�	��qrrr�rx�;�_��ի�F=}]hE>��z��|��>��l۶��^f�]A��:�m\�e�G��ٴi�ae�/�6�nݺז��..����+�4[�&P�$O���棲�Y��:���w�!C/ZhQ���6;���G����%`�$נ�FS&eO;��8�"�oY	t[(��*���p���6��u�@ʞtHٓ){�!eO:��A�	�8Nw�.�}���S$X�+�n�/�!eO:��I��=鐲�5&�8Cݦ�NMM��z�V�ShUڍ���#�轞�sg�s	�l��Sf9�F����9R�'���=m)�C��ު�]���}���X�A����0��U��@�F�w�7BAO���D�@{��(��2�G�'ݏK��:����({������l��������%�a~~�`>'�O꒩}#Ƀ���I�����%|)b��ϕ	�Kx�Y����xˁt�`R���q�����X&�}�\�$������3l��*-���^-�Gc>g�zti���v>oJ@�e�Q
S��5�L_S�L`��5&���H`G���g�����H`G��T@r�n+}�Z�{�@���>p����͘���
��kL*0����
-ic�Z��������������l߾}��`|w���`|w���`���E�,^���_��`|w���`|w���`�����J-�ʗ����X.��q��03�Y^3�\V����L�����%.>�fZ'�w��^��܎&����q��-c��+ݐ���(�%X%y�L@��ѹIj	(�萒Z�A�J�8N����Y��zRǥ�ٴ
-Е`������"g��?˞$�a��A��1�c6����v�����u���Z/��y�
-�X�W���V�����{�썕TA�X��u�]��
-�+i]�9���Gt�����kDVBM��]	V00V�q�M��d�:Y�l���
-�M��${�g?��Dj�@f��X�cM����U�~��ҙXk"�c������
-�/J+gfx��qZ�S5%�=Ag���`|���R���t{H	�wO�8�"277��uZ��٩I�qذa��XnJ7�������X���A��2,5%�`�^�9����z�aP���^�cЩI0vq�^,���l	�,.�[J0�{�q�"8[�Fj��5�K�`l:5	�..؛%S�-���`)���	���0}bbbϯ��D�	CΏ�����ǫ)(�����Y�����n�&��{ս����a�X���س��uh�T
�Y6f�X�dT
���8�7
-��_:?C>&ۙ:>ܙ�Ɔ
-L}6�/a���nc��*dV`��|	��d�3Lf�<��L��10�K�]A�$bc�=��W!�X��
-b��8ξ&wڊ�ֵ�L�[c&hC�VUC@� �O�K01�K�
-��6t��qp�ϙ��2e�|i*h�>�Xk��D+{�
-�Yh��8���r3���*#���j�-'At2E��199y�iT>"⫍?��*&�p6�b�dltD6t}+�,D����Vn=�g���e�kY���!�e|ޔ��ǜ�2��k*#��5	X�l]�$�ڱ])А�
-4��"u�]sD��]K@��<���J@�G��
-�7|jm���w,;��VO`��5&���H`G��s��"��
-t�+P�Q,q4�-�W��9�)K�/���M	�y���@;�+����TѶ(ڶE�v�hj��y�9�X�}���	�q�Ƥ`	쨐6����?P�m���@Ѷ-�</��y�q�����wB�Ÿ
-�TN�I����LLJդ��t}�w��ξ�Ld&4����^�z�Iha�X%�ړp�����H�'�t��\-[��=	��C�˺A����p�j߼|��C�]�z�p�$:>X�T[@zl�-�ѦE$�ﲪ˂=΁��%��������;I��y��q����G������{>u,�����I,M$�%�f���J���!u,���J�f�~���"r�F�Q~�	�Xn�,��I$Гijjj���ek	>�r��G��MG���ne�IW����Z�\�	��p���	r�&�w�%�G`P-7bK8�
�<Pk�ne�/Xb�M&���Эz5��Zп����UM�\c�T0M�e���h�������?�#UU�c���:�M�|�˫�������>����� :�����Ы�/���m<�e�76&�#%��$+��p��ij�_�6p�zg��x���p��(��֣_E��D�ؐ+�8CުZx�E������3/���є�I&I%`8I�rr0Q?4�^�/��*����i���m�_
1��_m�6/���B��A�|Y��#X/{��U����r)~����%ܪ������'��~5�@{�Dy��C�UD
@ԏ
����3���B3Q?4��y�����3$୪%�[�t�tn|��4%`�IR	N���L�
���y��"���3�LOO�A���t�+
-�a�&���:�����%�S�(�Ü�\�ߣm��[��Pe������kF2\�3]����:������H%��f��2�_Z;�|GQ��}�?��ΏUp�i�(��L������
-z�ίK6o�|��j}���֔��If�mtt��L�m+����(��̎�K-��D��T��[A����?���P������9��H�.�9�@�
-�PU��(k׮=�J�8KޞmeI`�K�.j��E
���!W���"�̹��!W5�ꢆ\���`R�q���2���x�Q�E�-���z՟���{��HΣ����9�c�ѴD�{(����K�G�@~Z9���@D~#N�{�$;��F�e���NP�t#��R�9�3�4M�,da�EmY�u���݄���xOЋ)/��_�k>X���VP�c$�57�xO�`����2�^��M��{��U���z�3���elZ�;�H����sւ҄^���/b^�����u�ʩ ���H�%��H�s�p���/t���7.�رc �ؑ�����+W��AZ8����+;�nݺ�.2233�^�"��P	�o߾�F8���r�
-�XYy���pLK������WPĮX�b�
-�XI�=�$H0U�a�ҥsg���/�6�u�Do����IEND�B`�
\ No newline at end of file
diff --git a/web/modules/ckeditor/vendor/plugins/icons_hidpi.png b/web/modules/ckeditor/vendor/plugins/icons_hidpi.png
deleted file mode 100644
index 1979dd167ea54095b328ad3ca96850e7546b56fe..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/plugins/icons_hidpi.png
+++ /dev/null
@@ -1,53 +0,0 @@
-�PNG
-
-���
IHDR��� ��	�����N:��5�IDATx^�	�vWY�Ѷjűu	֊V]b�e��x��~�&_���Ơ����C��|jpI.m��8���.�D�8���$�X!*���Z��$}���x���}�>�����zr�������}sﳿ����_0��ju������{vvvւ���޳�;�i�?��_����9�^�誏���FfKbkkk����ӝ�&�Y����j��Z�
�����2յ�g0&�����'�n5�}W��:�����x��Uq�W|�x1��W=EW����N�`_�>F��{�$ݻj�\xᅟu�=�|���3u<�-�����,
-��:uj�
-��-��x��j�
-�[��/���x�h��5�;�\|�=���`/r3n���\mf#P�C�v�`�� 'O�\����3g�Y�f�fvO��+�.���ͬX�k|��i�]�CH���,ʹs�>���ީ:����,���Ա��Jx
�����߫��׿ۊ�W�E�����W�-�
���o��[�_�!��8qb-�������AA?�9s�G�VLay�ZQ�h�5=I}L�|OBlww��HJL����(�ѷ��Z���	������8�?S���+@�HH���&4K�8��G��d׃��/T�j��X��BX7>{��ת^5CP]���'�_����N���Uo><���hs�x��7���q��V�$�_V�	Ir���V_��	��'h�W_�0��	�4��s�� |�	���Z�GY������U�b�ȳ�o5H�g��p����
-�z��[l��OD�<��$�xի¯��nJ����U12��v���W����z�|���.T�*���d�T��G��l����Շ�~5\̚/1u��zM�S�o5x'�@C��]�9��Ǐ_�ɮk���6�:�<W�����'�T�%����#����
�'� � �`P)Ay�W��շ������X�V�S	�pL�'cN_�YVȋ�~2� Y�d/V�Y� o`0�pU�Ea鶩�bƯR������*�IX�cUo1N�<�4_!G[u���g����y�����!X�k��J��>MP�E����7����ds�����`���Kp���	�΢Xw���u�����:�q���/�r�'Uo1l�8%[/;kŪ3;��Ή�N����$'���-�34g	�Bl{~I�'C�5�5�p*� � ������'دjo��	���/˿��5����s�c&s���<��~�3
-s�|�����/��Dg�h��x=�7��{�C����m�hoo����a��_mן3�7rf�zgnA~U��;[��V‘�Ͷ�k�fA��R��b43n# x&l���<Q�D`M­�-������ς������[w�~?I��O3����wCJ�W�j���&_�e��T��Q��R��Jy���_i3x��[�c_�~f_�g�����5�?�n,�0(�������+0>3�E����s��E�����{����?�q��}��5_��/'^mo_e	���?�d�|���w���%�l������!��8�SAR�s�p�4˿R��0'?e����g	R�3hd��r;v���slV���;Ŀ�Z��L~y{�Ƀ � � ���ժ=�0�MǕ���w�8�����:>TJY�l�w���h�Tu�*ǚ�?�wWBoz��7P��3^!�M���:��Z{PE-�x���y�=#o�Y7����)�ğ0	&�kB~O�g�ޖ�2�������[�_Q�ٱ��π
-8u������i/�_��,���r�n���9�;{��v}��7�^�3
-s��s�y��v�Ǭ��$�ԍۏx��G|�܋��I�x����oP=$J���۾�x_G����u�C,ٷ��A���r����wI��M�~�رO�q���\X�;]՜[ٮ��ώ�	��{炁�c�+��l7�yw���X��C��C��F� � � X�M��-����[��^Tc�w�-�S�}�[� �71 �M�5��Ą����y'����=����u�pY2����ӧ?�u}@��Fh�sbb��˜/�i�KH�>`���OLT��M��?�
-pڝ���	z�^��@	���u���3����Ĝ�������_��Ĝ�ƺ�*3_�����>��o�t;W!!˞�X�%��,sbb��B�>th��'d�sx7K�n/�W&��sbb�ެ�������x#ӿ�Q���91I%
-[����kys�=1����R,Du��f��z/��XЗ"0�kNL� � � ���R�?��o������z���z��UCG�v��xL�M��%�Hի�A�����N�-�oQ�jP�T�j��ת�j�z��UL�%Y��X�ת��TT��`M{|�����+P��V6�N�u�Yh*⬌����z��=-��0<|ԟ�F��K	���T�����k�j�����د�~/)}�C?C������c!�V��U��˿�����T�0I�@Tg����%p��[��/�Җ9s��?����j��������Ē�֯������$�V˹s�>I�
�f�����rX�G�y�\��F����	^sb/�m�1��!๶�aI��$r��_�����&�?��<?%^'%^G�d�K@�
-��pj� � � �{'�������7��OE�����y�[�������j�Z��p��W�?������G��r����Q������M����_�¿�v�Q��YcK����s�A�%��FTǠ�۴o����&��t�+Em���}�V�j{�K��@��������V[d�UΉ�N�F������ 
-	TdW��-���G����_r�
�Q3U)�~��{�hJ0�}%���TL�VŇ,�P;�Q�ƶ��w\�-�c�ׇ�,�㟪^��'O�p�yU���z�Tn��>��OWPli��:%��v?{K�{T'�>f�����x��X:5K�p�)a6/��/��/V�,4Bpۊkt����gо�q��d�}{7
�ɋu�o�?��Ylٞ����a�����M��ߏ��c�5Ίt�K���G�ON���<e���^��@NJ�;w.�Os� � �`#���ꅿ�����'��I�1�U����O���Щ�������������0�ki3Kp4�zq��o�O��,IБ��@`&�Z�~Zǫ�{��b��u<��e��tS��'����Ş����^�H��䋎�Dx�����YJ�A�?��z�����%Q
-�Yi�]�;cH�J�$�7����((����3\���4����=Q��~�ҭ��R�� ����K	�(���>	�6C�j?��T���ڷ_����L���`���/ßj?��T���ڷ@�k�j�������������j|@
�����7� � hɝ��㼀�L���!	��8/h��2�~������xJP�Ӿ8/��8/�N��4���pI��R��xx&���dN���1�$(>�R�%��>�OBǽ���Ov0�~�������S�';�j?��=�~�����L��\�j�AA�}������;w��8[���h���O����B������G4��#/a6�or=	Svww��:9L�=U����M��'��z��<\�7�����W˜�W:���K?[u	>���jI=Cu���j��mS�ի�2+�^�i���>�k���B�;��:��8����`���p�:�l���W�ՙDP�?W���^FoP�x����9��o>}0 �Ϛ����,��������_��>	�٫�j3+�yح�-�?+���C<h��  ��m��,������ �d5m��J<F�'��%�1���x 9�������Ds�:f �����q�x�1�7�9�e�%���	}$����ς=�!�^�]�!���KQm(x[W�����t�9�~�ϭ�#�zbU�L�q�y/t�D��A�����_m:0[�ɏ�ƚ���t��{���I�k�����/+۳���S��د�1s�uL��gv�Nǎ@E[�kt�����1��;_�1���/�L�m���O���������!�$����>�����/���v=�f_~��d�U�㞓#��?Z��X�/b�b��̫^˦��Ɔr����,� � ��9��&��eؔ>D������
��okB���,������ň��@(��p:�⼠I ��$� �� � ��~��%W~��d���e�?;�T0���1�o���Vδ$���ovvH�M���/+�4HI�>���vS�_�n��N��8�:��ͫ���شU�,)��n�R�x[�~=���L����X(Ve:�j�Պ���'�֦PJ��Nվ�8����A�O��X��w�k�w�K	��K�K
-��E��j<~��%Q}�w�`_K� L�����:���PJ��J+T�俨��/���CI��F�k��x}��}5P�
-����Y�'����J3�P�$ԯI����V)�&�$}���>�w�z?�j{��g���h����:��t?E�o5��#�ɸ�*9~�x�� � ���v�TH���8/�N����?�j�Պ���{�KSJ�t��K�K
-��E��
-W~��%Q}�w�`_!Q� L�uB/��	t()���V�D�QA�y_��}���)�%����J5P�
-��k�����J3�P�$ԯI ��`%�}�(q^AA�8�{���YR4^5�[4^�A�ln�x�`n�xA]��E�uP��E�A�B�O@ƈ�o�j�D�}�1m�trc]��R;�騶_�Sz?Y�[R4~���<���A
��t�%�[4^5�[4^�A�ln�x�`n�xAAAТ��r�}5�%IVɴ��@�����
-�l���� F�N����e���Sq֠ӯ���f3�<o3�sd�g�-��i�4���p� (���X�~t`�-H֊Y��}'O�|�����2(��|�v�fd㰤��c�,�z��e�db>n��f�|Et6N� a�f�S�3�T�l�����c߅�i���Z��%�OJL��z����X���#tP''6�B�e���Q���n}�WuRb���a���Ig�]�N(Xf[�/���u�vW���[�<3�"�M��4�N��@������$X���;�C|�5~��V�!��M@�	�̟��
-��W�{t��{p�������j��?�+���ˉ�� � � 
*������M�>X�����z��o����i�Y!O	����-��,޹O"����>��x?;LL�7�b	�-P�%OV>�� ,2�hU�R0)���_k�����?9����Ft| ����+��T�>�p/�u��Q�W�i�	��A|ߨ-������?�~�T���~6|~ui��m7
-����#	��V��0���ЇR�h�^S�πO��
-�����q�H�@4�����$� � ����>��,��H�����tl#X�P-;s��tl#X��V����,�������=���Y�<�ۯ�/��/��	�d1��yEkw�8�����l^��m�
������m���I�ܣ$������6�O�m��ƌۖ�ӵ[��o��S����}���ά	�%ˉ�|�������|4r�*�D@�O����}ZG,b
-#{��݂x�����Ch�7����+�-�v�LZ�ZlK:	��*j?lAS�=?[�0�K.�d�,�u�m����xb���|dq��+���%��������4ؤJ���3p�رe~$+a�oB'N�8??��
-�ڬ����ܞ�'β�AAAL���|��GZN�5'�����{�x�>�\Bj��TB����01���%�@E�|�:`�VL����`RگX��}�P��t�Z~��?I��p/kD��'P��<G�ߢ�}'��׊�f��FQ��?G��0��+�;<<Lo�Xtr�ΰ���S�g�����=�jV`1f+>��}}4,���A��>���>�z�E�}|B|Vx_��X���o�{E��� � � �o���{~�s�E��"��Y<��ϼG0���:&T+�ˢ�H���O=^}ۏ�n4t���^����%<��:ے+�{��>	��|�)h�$�evBg������Xп��>��&ꟁ�]˘��uF������x������{M���	�������|
-�U�o;pz^K��͌�9���
-p<%�%�e�k��O%���v�ф6�F��o���=� � � >~�A�/^}�v<%�������^''���-���-/����R��:�6�F�vpeA�m����a�C�DJ0Ƥ%P+>��x��:������ۺCD�u�4>T���x4���%���-/���R�j4�h�P�F�,9%�?�ܧ�x��n��KII��~ � � ��c����ߗ�:(�+�c���`��1�������h�yn�xP�T#
-�L���ɶ�����0ġO"%c҃��DJ�E�E�l,4��[�'�o0>>Tt�ʉ�L)@I��`��PQA-@�)U[�Fs�����8/� � � �o������ߧ~F��n/}��g4�V��h�q���`4Zp�K4N&՘�"�����z)�8YjB|)�:'�:� %^G�Y���շu+R�~��4�g߸�[�`С�~�QGcE��hzN��5�[4^(�yAAAAP������)�c�����Ѩ�ZQ?�Qǵ�~�,Zx�K4N5��Ȅ+�l�^�h�,j��DJ0Ƥ'��R�H�סh���%��ױ�~�I%��jE�V��Ɗ��F��t���R�j4�h�P�� � � ���x��ǔ]W�՗���=���o��x����~����&϶�gZ�������j}w��OF�푗�ϙ��dl��hο�fv�ص%�U�PBA���'�S�::J%��U�zڿ1J+�8\1����T�K�.eS�oaT
�շ������{���X����g�%*��+�z-�9�����5�����6��\!�eu݆���t��|�59��x;u^#>�Gگ��ޗ��g���s�Q�t�8R,F{�>Ծ�֑��&NԾ3P+c�Ծ�}���N�T_E�[������}��>O:��DvFAAAC�?�O������:��M�A[�;�R{���A)�����=E����n"啘
-W+%}[��_��c^}ۮ�-�@&@R8�rhc�-@���\{�-���ѧz�•��̃�c�n���U�NC�����L�n
Pب�J�/�Y�l58�j%��@Z�`L�[l�n5(	l~:zX~\���oI�$5#�I����[�R�I%�(ǎkF�u<� � � (�ʶ+�g��_��:�/�6����yDT�̀�}}b:�_�[0[5p�ٕ���`L�gA��VGR	`9}E��>�݂mW�fP��>�O"���S?G�N�3�[���A�8[M��yOȾS���K�)�9�9��`�Td���޾��
��S�[�Y�3V�XB�����{����z_�9IM�P��5Te47\	�zAA�F��s�ﯨc��:��dW!="��������;	`r�v���R�@�����=���ڿ1���o�H�a��P��z��N�:9?��^�5PN\��[qΏ�m��@u�۔ڥ����U`�~�M�N��M��o��R�U��z��Klcl|Ɗ.}�"�ge1,؝��|�QAA�aP�Gy�)������T��ok9ߕ��11��|aZ���
-(���N�?jϑK`c��X��~,�/���.��-H�xSK	��ɭ���l�c�+�*��\��rz�Q}��>�O��:?�4�&��S$����x�Ne�;Ut>��\��Q{H�x^T�;����T���q�I@���wsq�ĉu�_E�� � �`vR�V-����?������ݑ��F����&���ޯ������d������~	���cE�{����?_�K�F�@q�
-�
���z��䀮/ѦDmڒl*	\�>��.��o&ъ��*�����Rm	�J�l�m[�5��MnPCo��F���u=o{�j����j�-x%�}�:��m��{�/�!F�n�>S��NP�`;UnC_J>T7+�=P?�g�@���lUo6��샧V@�a�:A0<Pxi���Uu���M�y�����)�$��4z�/CS�9��������d:oD�Xk���oTgch�hߊ��ʔ}[|6��}���b+����X��$�oh|��վ�����ڌe�wlo�W���l-�g�j�G� ���I�l�]�H�
��H�H�S�d.��Ja�~�����Y�/ArR�;����}&��>*I�:	�&쏴�f��WJ���tr���vAAA5(�i�����2՟_OU�U4��Mޡ��� ,Ŧ��M����=���M���ό}�$j���Ŕo���u��w�4zɶ����w�
-���X���g!�m�}6۷%�~;Љ�O%7����O�:�%W��o��@��[ͽ"�L�������T����}��ώ��~	���E���%կvꗔ��(ٗ��
-J����+C�ߗ��Ɠ���.���w꽢�z���d�����R�(�{�	���mO�+������+��x�6���G�WJ�8g��{��{�����R*�5�=D�	���28�C�q=����^Q��&������s	X������}jP{�{���0�����oV1?sBW�?":�%xM`0�p=B�h"�goR�H� � ���v�(����F��	�TUBk��9/(�������>
R��O��b�77���y���Vȫ��{^��P\���:!�3�Jnb�X��@��V+$V��+8.N)k��U�R�<8�P�-4�~�i�Z���R��E��Bi�DѾ��-�񒾎�}�Ձ�+����>��B�a)a���?�a����}�����{{���
-h�x�CIu��Ý���������j��_%��*޾����8W�b?�~����M@
���׸�k�?4���[u�6N��
-:!�O�3W�J�=Vٳ"�~�������������
-=/���Ǐ� 	� � Jl�����G�T[l�=/�����N|� AuK�@��jŁ,巚{E���|A1�%��xY�@ɾ4�Q�
-
-W����WJ�*8�0�V}�+���u���b_�p�����E��Nj
-(H��O�/�pK��W9�:~�8�/�9�D3O���}��x�*������ � 6�vs^����l伀5__�OU�'�:/��ܹ����H����t^�����(�����8�j�ʿ�����w;���ڿZ����X:����&ց3���T��VH�@5�Wp\�R���P��lSt����OC�'� >P����XJ�4^�h_R(��(ڗtm��OѾ�}k?ђ,�?\�������Ce�}1åNj
-K��/*�0�7>վStVJ�گgPr��8��e��*y�1�?�j{�G��z?������LOg�ʶ���1�[�?W��}}^�\!� � ���r�j�jφ���y͌o��*�h��~TQ�[�%�\���sp���[�f��+��:M��&دomm�Ʈ����Z�o��I���]�	4�����`3|����h_v�eT�E��f
-�P�E�e~�ov8K��^��Z�q��:s��-���R6���B�7��_R�E��~�r�b䷨�"��z�`o�������.���S��%�Qx�p3o���ș�}xx����Z�c�G�g�K�ϳ���mڗł�h�&��T]��|ў�����	6�/u,	ip<���V]�_�7��E[���~��`�	��~�����>��ې��cA	���xpb+��7���|��u���ZQ?@u,��P��� I%����>]ugG�~ض��%����l���+q߼�@���f�����q{�rod�O�g�رc����Ol�;-���?� � �`�R�����e���Y�=��^�K�G�o�^TY�&T�o�l�����[���J�g\�?;�*>jX��^-�-��
-��Y��_�^g���̸�._�?;�@گ�C���W����| �W��k�9�f<7��r���zN�?�R�������P�������韝\�K�]f'�����M�o����s0���/�T�����gARe�\����gm�"��e���i�S���'�JHǽ�*����ݿ�q���X�������D.;�ׄ��Z�59�j�ӫE��`Yti�n�^ӧW�%��4�;�z�O��V;�꫿# ;.s6�����))�� � �N�]�D['8��:ޢJ����ܳLQ���N�?�
-��$�_���+~��'���/o.P���`(�o��_*P�v$������������ޗ����){�{���d�pn�H��N�"��d9�Ztis��q����ޗ�g'(�?;���?Y��������@�/���f�럝\ Mt1r	��[l�fd���1���	'(׿& �#�R}}�m��޽�a�8�E�ub^��??P	l��"珫��Y�Ztis�T�[�d7x`�8nFl��K���S-ϳ����w>�4J9�}����~GV�W/� � q�̙��$��,K���}�������>�g�\۪���Q08�Y�I:����jd���x�I	 8K�h�x
Zʭ��|lp��T����`�
-؃�t�-��=W'��z�sП�gA�c�A�E�v��R7�1�����*�{Fn�{ڼJ^�u<%��@��2������ ���Kʗks}��9YRp���~���a>1�{۔�^�@�c�;_��Z�N�&�B�O��r�ئX�W}b��.�@�A+�T��'O�|�Q�jߥ����]�?x|��c�DLj����l��ly��K�j������y۔�^���o}�Cg~�'p�W|����ڟ�d��g�^ф��,�wX�[�9BiF�9�����(1����?��	PR��\ۗ�uL�dQ��q_.!^5NAAt������^�V�|
(�O@���=����N������'�nrc�fs�,I��/.
a��:�Ǭ�����-�LJB�{c�}٫��%:W�g
�����,��?�.|f�������|�HѶ=���xJ�:�ʩ����^����'�G9gK���/Q�LbI���9YR���(�q�[��3�sܯH��E
�:>H����8;�z>	�
���bA�6g^�>|�
-��<�3T��ޢ��.��j��@���1�+Aǩ�І��~��y�^R��s&:��|���C����r���3���h��s����,%VAs�JnBYj�LW��)�	u(��*�
xI`��
.���%U~ϵ�\��4Nu�����U�AA�$��p�*����d�����k>)g�lp�����_��|lp�{-�apN	��N|����2{�E؎����m��>*����0	֓U?�/ٞ��4�������M�H͒y�5�%�#�f��*�!,�@������N��*���Z��c'�:���s	�q� � ��C���׏v|��v����؎�4LNb�x&%��������v��C��$�����[����|�߁3�K>h|�v'>_��/�
-��Wr�R�d�~L)M�CiF�T�l��HC�opY���(��{���z?�q��C︯?��'� � >��_D��~�I�뷷��l�n������V�Ǩ�llmm=�9A�4庶�e�A�}���9z�8�o���c�^����9y{��ߢ0�����M�{{{�[Č?��3��B�hlW�����-0b��q�B���g���/�R��L�E�J�n���^*{�U8�z5�|���êײ���mj�Q�Z��;T_��,�Uٞ��Uox�������t�[�Z2�\���W�`1Ӷ�2�[C%����������%�>MS�&��V�!�
-�~���i�S�5~�(��
-���k�1�[C�vpŃs�ĉg��4x3�m�[c���/�&�z��={����^T��ܹs���|�����
���������fl����ՠ~ �f�%��A����cǾR���������7U/�-�7�1�P���gI�=�׋�:V?�����h�dR�v�a"��U/����]�k�	�mA~���0��t�w���~��?
-��H��U��&/��čC�iܧ�q�������8���p3�e��z����%:��
-��ߚ����y���.��`��?��Y�/�����Un��Dp�J�v��C��R=������ڮ1/�9�y ����_���W�����6� � ���˪��ׯ:9�\�o)�z�uꈞ���?���7��W�����6!��+7;|�Or6C��,5�>���הn��ϾS�W%����>�h����r���ܘ�C�P���?(��a�j
����b	̭�Nh����kE��`������bz�
-֫5h
-�E=�@W�<��׾~�����}�HU�+���>���T��KQ`1����?(��R똅L�WZ�!����+P�@���������	
q���ת�@�گ�N��*��ھ��c5�����;���9T�\?�te� � � ���s��m�����:mz�?��E�����Y�����>(�l[����W�PM��/�?{{{��:jQ�ꪫ>�zZ�'a���AP��շ5��D��&OT�՘��X���K�*N��ۚ�`O�C�?�l{_�N��3%�1�ߧ1���0@����o^���ls\�c��\���>�X):N%�q���XY�2�K�b��*۾k���oY߻TNj%u���Ŝ��(��3��{�پE'�{�-b�;��d]�xU����}���ȏ�!��2	��䰠W��0�W�x5��W`Hd��e�$,��X	{�=bL�Il&�~$;~��S�/� � � Fs���
�+��mT=X��Y��/���>�Y��&|D�)����/g�3I$��'�3�hP$����g�&�c5U0^!�*�{@��f]^g�X%��%r���b��㜤�xUiy��;�)}��%�L�(���۾���|��9�c�Z��������8ζ�9� 4V3�A���˜����y�wF�U	�#���/C�F��b���C
(��߈L�$+�0���U'E��&��o�[�-?���_��9\����?#:��~�L��x5X:���a&�@2��j�AAAA�F�4u�8/8"q^�	V*�؎��g��z�&�|�l�yAAR	bfg��<�����Ɖ���v*�� � � �`Ӝ����>"/���}D}�G���G��V|Qs�XY���<��c9}e�W�M�G��rY���� � � ��=�A�L�7�K/����������o0_|�ڙ��MѠ^`��c��u�
-l��`��G�3E��`.����N�ض��<�9Ϲg�x�I���v2Ŷ��:Òx�I�n�}�L�ma�DgXo;�1u2Ŷ�Nt�%񶓘�d�m����je�� � � � ����8���:5�����IEND�B`�
\ No newline at end of file
diff --git a/web/modules/ckeditor/vendor/plugins/image2/dialogs/image2.js b/web/modules/ckeditor/vendor/plugins/image2/dialogs/image2.js
deleted file mode 100644
index 93d15094662cc622ebba87ce157d4556e0629315..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/plugins/image2/dialogs/image2.js
+++ /dev/null
@@ -1,15 +0,0 @@
-/*
- Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
- For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
-*/
-CKEDITOR.dialog.add("image2",function(f){function C(){var a=this.getValue().match(D);(a=!(!a||0===parseInt(a[1],10)))||alert(c.invalidLength.replace("%1",c[this.id]).replace("%2","px"));return a}function N(){function a(a,c){q.push(b.once(a,function(a){for(var b;b=q.pop();)b.removeListener();c(a)}))}var b=r.createElement("img"),q=[];return function(q,c,e){a("load",function(){var a=E(b);c.call(e,b,a.width,a.height)});a("error",function(){c(null)});a("abort",function(){c(null)});b.setAttribute("src",
-(w.baseHref||"")+q+"?"+Math.random().toString(16).substring(2))}}function F(){var a=this.getValue();t(!1);a!==x.data.src?(G(a,function(a,b,c){t(!0);if(!a)return m(!1);g.setValue(!1===f.config.image2_prefillDimensions?0:b);h.setValue(!1===f.config.image2_prefillDimensions?0:c);u=k=b;v=l=c;m(H.checkHasNaturalRatio(a))}),n=!0):n?(t(!0),g.setValue(k),h.setValue(l),n=!1):t(!0)}function I(){if(e){var a=this.getValue();if(a&&(a.match(D)||m(!1),"0"!==a)){var b="width"==this.id,c=k||u,d=l||v,a=b?Math.round(a/
-c*d):Math.round(a/d*c);isNaN(a)||(b?h:g).setValue(a)}}}function m(a){if(d){if("boolean"==typeof a){if(y)return;e=a}else a=g.getValue(),y=!0,(e=!e)&&a&&(a*=l/k,isNaN(a)||h.setValue(Math.round(a)));d[e?"removeClass":"addClass"]("cke_btn_unlocked");d.setAttribute("aria-checked",e);CKEDITOR.env.hc&&d.getChild(0).setHtml(e?CKEDITOR.env.ie?"■":"▣":CKEDITOR.env.ie?"□":"▢")}}function t(a){a=a?"enable":"disable";g[a]();h[a]()}var D=/(^\s*(\d+)(px)?\s*$)|^$/i,J=CKEDITOR.tools.getNextId(),K=CKEDITOR.tools.getNextId(),
-b=f.lang.image2,c=f.lang.common,O=(new CKEDITOR.template('\x3cdiv\x3e\x3ca href\x3d"javascript:void(0)" tabindex\x3d"-1" title\x3d"'+b.lockRatio+'" class\x3d"cke_btn_locked" id\x3d"{lockButtonId}" role\x3d"checkbox"\x3e\x3cspan class\x3d"cke_icon"\x3e\x3c/span\x3e\x3cspan class\x3d"cke_label"\x3e'+b.lockRatio+'\x3c/span\x3e\x3c/a\x3e\x3ca href\x3d"javascript:void(0)" tabindex\x3d"-1" title\x3d"'+b.resetSize+'" class\x3d"cke_btn_reset" id\x3d"{resetButtonId}" role\x3d"button"\x3e\x3cspan class\x3d"cke_label"\x3e'+
-b.resetSize+"\x3c/span\x3e\x3c/a\x3e\x3c/div\x3e")).output({lockButtonId:J,resetButtonId:K}),H=CKEDITOR.plugins.image2,w=f.config,z=!(!w.filebrowserImageBrowseUrl&&!w.filebrowserBrowseUrl),A=f.widgets.registered.image.features,E=H.getNatural,r,x,L,G,k,l,u,v,n,e,y,d,p,g,h,B,M=[{id:"src",type:"text",label:c.url,onKeyup:F,onChange:F,setup:function(a){this.setValue(a.data.src)},commit:function(a){a.setData("src",this.getValue())},validate:CKEDITOR.dialog.validate.notEmpty(b.urlMissing)}];z&&M.push({type:"button",
-id:"browse",style:"display:inline-block;margin-top:14px;",align:"center",label:f.lang.common.browseServer,hidden:!0,filebrowser:"info:src"});return{title:b.title,minWidth:250,minHeight:100,onLoad:function(){r=this._.element.getDocument();G=N()},onShow:function(){x=this.getModel();L=x.parts.image;n=y=e=!1;B=E(L);u=k=B.width;v=l=B.height},contents:[{id:"info",label:b.infoTab,elements:[{type:"vbox",padding:0,children:[{type:"hbox",widths:["100%"],className:"cke_dialog_image_url",children:M}]},{id:"alt",
-type:"text",label:b.alt,setup:function(a){this.setValue(a.data.alt)},commit:function(a){a.setData("alt",this.getValue())},validate:!0===f.config.image2_altRequired?CKEDITOR.dialog.validate.notEmpty(b.altMissing):null},{type:"hbox",widths:["25%","25%","50%"],requiredContent:A.dimension.requiredContent,children:[{type:"text",width:"45px",id:"width",label:c.width,validate:C,onKeyUp:I,onLoad:function(){g=this},setup:function(a){this.setValue(a.data.width)},commit:function(a){a.setData("width",this.getValue())}},
-{type:"text",id:"height",width:"45px",label:c.height,validate:C,onKeyUp:I,onLoad:function(){h=this},setup:function(a){this.setValue(a.data.height)},commit:function(a){a.setData("height",this.getValue())}},{id:"lock",type:"html",style:"margin-top:18px;width:40px;height:20px;",onLoad:function(){function a(a){a.on("mouseover",function(){this.addClass("cke_btn_over")},a);a.on("mouseout",function(){this.removeClass("cke_btn_over")},a)}var b=this.getDialog();d=r.getById(J);p=r.getById(K);d&&(b.addFocusable(d,
-4+z),d.on("click",function(a){m();a.data&&a.data.preventDefault()},this.getDialog()),a(d));p&&(b.addFocusable(p,5+z),p.on("click",function(a){n?(g.setValue(u),h.setValue(v)):(g.setValue(k),h.setValue(l));a.data&&a.data.preventDefault()},this),a(p))},setup:function(a){m(a.data.lock)},commit:function(a){a.setData("lock",e)},html:O}]},{type:"hbox",id:"alignment",requiredContent:A.align.requiredContent,children:[{id:"align",type:"radio",items:[[c.alignNone,"none"],[c.left,"left"],[c.center,"center"],
-[c.right,"right"]],label:c.align,setup:function(a){this.setValue(a.data.align)},commit:function(a){a.setData("align",this.getValue())}}]},{id:"hasCaption",type:"checkbox",label:b.captioned,requiredContent:A.caption.requiredContent,setup:function(a){this.setValue(a.data.hasCaption)},commit:function(a){a.setData("hasCaption",this.getValue())}}]},{id:"Upload",hidden:!0,filebrowser:"uploadButton",label:b.uploadTab,elements:[{type:"file",id:"upload",label:b.btnUpload,style:"height:40px"},{type:"fileButton",
-id:"uploadButton",filebrowser:"info:src",label:b.btnUpload,"for":["Upload","upload"]}]}]}});
\ No newline at end of file
diff --git a/web/modules/ckeditor/vendor/plugins/magicline/images/hidpi/icon-rtl.png b/web/modules/ckeditor/vendor/plugins/magicline/images/hidpi/icon-rtl.png
deleted file mode 100644
index 4a8d2bfdabcc7271dde74ba441d11deb5adc5663..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/plugins/magicline/images/hidpi/icon-rtl.png
+++ /dev/null
@@ -1,4 +0,0 @@
-�PNG
-
-���
IHDR���������r�py���PLTE���������������������H�m���tRNS�������o���DIDAT�cPQa���4+4�
-Ô��Bכ��M����ff0}iP����D@&L�&3�j'���_S�~�R.����IEND�B`�
\ No newline at end of file
diff --git a/web/modules/ckeditor/vendor/plugins/magicline/images/hidpi/icon.png b/web/modules/ckeditor/vendor/plugins/magicline/images/hidpi/icon.png
deleted file mode 100644
index b981bb5c6c40ef143fbd1dbd92e17c3471a6e635..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/plugins/magicline/images/hidpi/icon.png
+++ /dev/null
@@ -1,4 +0,0 @@
-�PNG
-
-���
IHDR���������r�py���PLTE������������������������#~�_���tRNS�������������WIDAT�}���0ߕZ1���>�~
-[)C��C	��!��!��٭�	�m�T����X����O�!fg|-1%I�?�b�}��%N�����IEND�B`�
\ No newline at end of file
diff --git a/web/modules/ckeditor/vendor/plugins/magicline/images/icon-rtl.png b/web/modules/ckeditor/vendor/plugins/magicline/images/icon-rtl.png
deleted file mode 100644
index 55b5b5f949a60c8fabc63867fd7827fe33d0ab71..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/plugins/magicline/images/icon-rtl.png
+++ /dev/null
@@ -1,5 +0,0 @@
-�PNG
-
-���
IHDR���	���
-���ft����QIDAT��A
-� 5������a!&�k��4�NAee%�A���L�H����g�Nzm���Ps�]lu�=b�&����#��3������IEND�B`�
\ No newline at end of file
diff --git a/web/modules/ckeditor/vendor/plugins/magicline/images/icon.png b/web/modules/ckeditor/vendor/plugins/magicline/images/icon.png
deleted file mode 100644
index e063433632af33f66b95443d81e2548322a280c2..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/plugins/magicline/images/icon.png
+++ /dev/null
@@ -1,4 +0,0 @@
-�PNG
-
-���
IHDR���	���
-���ft����LIDATӅ�1�0�U��ڬ����B�zb8�	Q�v�X��0���b��ܴI	Pun���m��줁�vc��B7/�'ܸ�������IEND�B`�
\ No newline at end of file
diff --git a/web/modules/ckeditor/vendor/plugins/pastefromgdocs/filter/default.js b/web/modules/ckeditor/vendor/plugins/pastefromgdocs/filter/default.js
deleted file mode 100644
index 3c187022b63c5496d840955f60091a27e724445f..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/plugins/pastefromgdocs/filter/default.js
+++ /dev/null
@@ -1,8 +0,0 @@
-/*
- Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
- For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
-*/
-(function(){function g(b){return""===b?!1:b}function h(b){if(!/(o|u)l/i.test(b.parent.name))return b;d.elements.replaceWithChildren(b);return!1}function k(b){function d(a,f){var b,c;if(a&&"tr"===a.name){b=a.children;for(c=0;c<f.length&&b[c];c++)b[c].attributes.width=f[c];d(a.next,f)}}var c=b.parent;b=function(a){return CKEDITOR.tools.array.map(a,function(a){return Number(a.attributes.width)})}(b.children);var a=function(a){return CKEDITOR.tools.array.reduce(a,function(a,b){return a+b},0)}(b);c.attributes.width=
-a;d(function(a){return(a=CKEDITOR.tools.array.find(a.children,function(a){return a.name&&("tr"===a.name||"tbody"===a.name)}))&&a.name&&"tbody"===a.name?a.children[0]:a}(c),b)}var e=CKEDITOR.plugins.pastetools,d=e.filters.common,c=d.styles;CKEDITOR.plugins.pastetools.filters.gdocs={rules:function(b,e,l){return{elementNames:[[/^meta/,""]],comment:function(){return!1},attributes:{id:function(a){return!/^docs\-internal\-guid\-/.test(a)},dir:function(a){return"ltr"===a?!1:a},style:function(a,b){return g(c.normalizedStyles(b,
-e))},"class":function(a){return g(a.replace(/kix-line-break/ig,""))}},elements:{div:function(a){var b=1===a.children.length,c="table"===a.children[0].name;"div"===a.name&&b&&c&&delete a.attributes.align},colgroup:k,span:function(a){c.createStyleStack(a,l,e,/vertical-align|white-space|font-variant/);var b=/vertical-align:\s*sub/,d=a.attributes.style;/vertical-align:\s*super/.test(d)?a.name="sup":b.test(d)&&(a.name="sub");a.attributes.style=d.replace(/vertical-align\s*.+?;?/,"")},b:function(a){d.elements.replaceWithChildren(a);
-return!1},p:function(a){if(a.parent&&"li"===a.parent.name)return d.elements.replaceWithChildren(a),!1},ul:function(a){c.pushStylesLower(a);return h(a)},ol:function(a){c.pushStylesLower(a);return h(a)},li:function(a){c.pushStylesLower(a);var b=a.children,e=/(o|u)l/i;1===b.length&&e.test(b[0].name)&&(d.elements.replaceWithChildren(a),a=!1);return a}}}}};CKEDITOR.pasteFilters.gdocs=e.createFilter({rules:[d.rules,CKEDITOR.plugins.pastetools.filters.gdocs.rules]})})();
\ No newline at end of file
diff --git a/web/modules/ckeditor/vendor/plugins/pastefromlibreoffice/filter/default.js b/web/modules/ckeditor/vendor/plugins/pastefromlibreoffice/filter/default.js
deleted file mode 100644
index 61cec049a2446739f6a4534f936997e3ad8775b1..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/plugins/pastefromlibreoffice/filter/default.js
+++ /dev/null
@@ -1,11 +0,0 @@
-/*
- Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
- For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
-*/
-(function(){function k(b,c){if(!(b.previous&&g(b.previous)&&b.getFirst().children.length&&1===b.children.length&&g(b.getFirst().getFirst())))return!1;for(var d=l(b.previous),a=0,f=d,r=q();f=f.getAscendant(r);)a++;return(a=m(b,a))?(d.add(a),a.filterChildren(c),!0):!1}function l(b){var c=b.children[b.children.length-1];return g(c)||"li"===c.name?l(c):b}function q(){var b=!1;return function(c){return b?!1:g(c)||"li"===c.name?g(c):(b=!0,!1)}}function m(b,c){return c?m(b.getFirst().getFirst(),--c):b}function g(b){return"ol"===
-b.name||"ul"===b.name}function h(){return!1}var n=CKEDITOR.plugins.pastetools,p=n.filters.common,e=p.styles;CKEDITOR.plugins.pastetools.filters.libreoffice={rules:function(b,c,d){return{root:function(a){a.filterChildren(d)},comment:function(){return!1},elementNames:[[/^head$/i,""],[/^meta$/i,""],[/^strike$/i,"s"]],elements:{"!doctype":function(a){a.replaceWithChildren()},span:function(a){a.attributes.style&&(a.attributes.style=e.normalizedStyles(a,c),e.createStyleStack(a,d,c));CKEDITOR.tools.object.entries(a.attributes).length||
-a.replaceWithChildren()},p:function(a){var f=CKEDITOR.tools.parseCssText(a.attributes.style);if(c.plugins.pagebreak&&("always"===f["page-break-before"]||"page"===f["break-before"])){var b=CKEDITOR.plugins.pagebreak.createElement(c),b=CKEDITOR.htmlParser.fragment.fromHtml(b.getOuterHtml()).children[0];b.insertBefore(a)}a.attributes.style=CKEDITOR.tools.writeCssText(f);a.filterChildren(d);e.createStyleStack(a,d,c)},div:function(a){e.createStyleStack(a,d,c)},a:function(a){if(a.attributes.style){var c=
-a.attributes;a=CKEDITOR.tools.parseCssText(a.attributes.style);"#000080"===a.color&&delete a.color;"underline"===a["text-decoration"]&&delete a["text-decoration"];a=CKEDITOR.tools.writeCssText(a);c.style=a}},h1:function(a){e.createStyleStack(a,d,c)},h2:function(a){e.createStyleStack(a,d,c)},h3:function(a){e.createStyleStack(a,d,c)},h4:function(a){e.createStyleStack(a,d,c)},h5:function(a){e.createStyleStack(a,d,c)},h6:function(a){e.createStyleStack(a,d,c)},pre:function(a){e.createStyleStack(a,d,c)},
-font:function(a){var c;c="a"===a.parent.name&&"#000080"===a.attributes.color?!0:1!==a.parent.children.length||"sup"!==a.parent.name&&"sub"!==a.parent.name||"2"!==a.attributes.size?!1:!0;c&&a.replaceWithChildren();c=CKEDITOR.tools.parseCssText(a.attributes.style);var b=a.getFirst();a.attributes.size&&b&&b.type===CKEDITOR.NODE_ELEMENT&&/font-size/.test(b.attributes.style)&&a.replaceWithChildren();c["font-size"]&&(delete a.attributes.size,a.name="span",b&&b.type===CKEDITOR.NODE_ELEMENT&&b.attributes.size&&
-b.replaceWithChildren())},ul:function(a){if(k(a,d))return!1},ol:function(a){if(k(a,d))return!1},img:function(a){if(!a.attributes.src)return!1},table:function(a){var c=a.attributes;a=a.attributes.style;var b=CKEDITOR.tools.parseCssText(a);b["border-collapse"]||(b["border-collapse"]="collapse",a=CKEDITOR.tools.writeCssText(b));c.style=a}},attributes:{style:function(a,b){return e.normalizedStyles(b,c)||!1},align:function(a,b){if("img"!==b.name){var c=CKEDITOR.tools.parseCssText(b.attributes.style);c["text-align"]=
-b.attributes.align;b.attributes.style=CKEDITOR.tools.writeCssText(c);return!1}},cellspacing:h,cellpadding:h,border:h}}}};CKEDITOR.pasteFilters.libreoffice=n.createFilter({rules:[p.rules,CKEDITOR.plugins.pastetools.filters.libreoffice.rules]})})();
\ No newline at end of file
diff --git a/web/modules/ckeditor/vendor/plugins/pastefromword/filter/default.js b/web/modules/ckeditor/vendor/plugins/pastefromword/filter/default.js
deleted file mode 100644
index 054f7d674b7cd0bc49575d2eaa67ec3c943f8545..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/plugins/pastefromword/filter/default.js
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
- For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
-*/
-(function(){function r(){return!1}var n=CKEDITOR.tools,B=CKEDITOR.plugins.pastetools,t=B.filters.common,k=t.styles,C=t.createAttributeStack,z=t.lists.getElementIndentation,D=["o:p","xml","script","meta","link"],E="v:arc v:curve v:line v:oval v:polyline v:rect v:roundrect v:group".split(" "),A={},y=0,q={},g,p;CKEDITOR.plugins.pastetools.filters.word=q;CKEDITOR.plugins.pastefromword=q;q.rules=function(c,b,d){function e(a){(a.attributes["o:gfxdata"]||"v:group"===a.parent.name)&&l.push(a.attributes.id)}
-var f=Boolean(c.match(/mso-list:\s*l\d+\s+level\d+\s+lfo\d+/)),l=[],w={root:function(a){a.filterChildren(d);CKEDITOR.plugins.pastefromword.lists.cleanup(g.createLists(a))},elementNames:[[/^\?xml:namespace$/,""],[/^v:shapetype/,""],[new RegExp(D.join("|")),""]],elements:{a:function(a){if(a.attributes.name){if("_GoBack"==a.attributes.name){delete a.name;return}if(a.attributes.name.match(/^OLE_LINK\d+$/)){delete a.name;return}}if(a.attributes.href&&a.attributes.href.match(/#.+$/)){var b=a.attributes.href.match(/#(.+)$/)[1];
-A[b]=a}a.attributes.name&&A[a.attributes.name]&&(a=A[a.attributes.name],a.attributes.href=a.attributes.href.replace(/.*#(.*)$/,"#$1"))},div:function(a){if(b.plugins.pagebreak&&a.attributes["data-cke-pagebreak"])return a;k.createStyleStack(a,d,b)},img:function(a){if(a.parent&&a.parent.attributes){var b=a.parent.attributes;(b=b.style||b.STYLE)&&b.match(/mso\-list:\s?Ignore/)&&(a.attributes["cke-ignored"]=!0)}k.mapCommonStyles(a);a.attributes.src&&a.attributes.src.match(/^file:\/\//)&&a.attributes.alt&&
-a.attributes.alt.match(/^https?:\/\//)&&(a.attributes.src=a.attributes.alt);a=a.attributes["v:shapes"]?a.attributes["v:shapes"].split(" "):[];b=CKEDITOR.tools.array.every(a,function(a){return-1<l.indexOf(a)});if(a.length&&b)return!1},p:function(a){a.filterChildren(d);if(a.attributes.style&&a.attributes.style.match(/display:\s*none/i))return!1;if(g.thisIsAListItem(b,a))p.isEdgeListItem(b,a)&&p.cleanupEdgeListItem(a),g.convertToFakeListItem(b,a),n.array.reduce(a.children,function(a,b){"p"===b.name&&
-(0<a&&(new CKEDITOR.htmlParser.element("br")).insertBefore(b),b.replaceWithChildren(),a+=1);return a},0);else{var c=a.getAscendant(function(a){return"ul"==a.name||"ol"==a.name}),f=n.parseCssText(a.attributes.style);c&&!c.attributes["cke-list-level"]&&f["mso-list"]&&f["mso-list"].match(/level/)&&(c.attributes["cke-list-level"]=f["mso-list"].match(/level(\d+)/)[1]);b.config.enterMode==CKEDITOR.ENTER_BR&&(delete a.name,a.add(new CKEDITOR.htmlParser.element("br")))}k.createStyleStack(a,d,b)},pre:function(a){g.thisIsAListItem(b,
-a)&&g.convertToFakeListItem(b,a);k.createStyleStack(a,d,b)},h1:function(a){g.thisIsAListItem(b,a)&&g.convertToFakeListItem(b,a);k.createStyleStack(a,d,b)},h2:function(a){g.thisIsAListItem(b,a)&&g.convertToFakeListItem(b,a);k.createStyleStack(a,d,b)},h3:function(a){g.thisIsAListItem(b,a)&&g.convertToFakeListItem(b,a);k.createStyleStack(a,d,b)},h4:function(a){g.thisIsAListItem(b,a)&&g.convertToFakeListItem(b,a);k.createStyleStack(a,d,b)},h5:function(a){g.thisIsAListItem(b,a)&&g.convertToFakeListItem(b,
-a);k.createStyleStack(a,d,b)},h6:function(a){g.thisIsAListItem(b,a)&&g.convertToFakeListItem(b,a);k.createStyleStack(a,d,b)},font:function(a){if(a.getHtml().match(/^\s*$/))return a.parent.type===CKEDITOR.NODE_ELEMENT&&(new CKEDITOR.htmlParser.text(" ")).insertAfter(a),!1;b&&!0===b.config.pasteFromWordRemoveFontStyles&&a.attributes.size&&delete a.attributes.size;CKEDITOR.dtd.tr[a.parent.name]&&CKEDITOR.tools.arrayCompare(CKEDITOR.tools.object.keys(a.attributes),["class","style"])?k.createStyleStack(a,
-d,b):C(a,d)},ul:function(a){if(f)return"li"==a.parent.name&&0===n.indexOf(a.parent.children,a)&&k.setStyle(a.parent,"list-style-type","none"),g.dissolveList(a),!1},li:function(a){p.correctLevelShift(a);f&&(a.attributes.style=k.normalizedStyles(a,b),k.pushStylesLower(a))},ol:function(a){if(f)return"li"==a.parent.name&&0===n.indexOf(a.parent.children,a)&&k.setStyle(a.parent,"list-style-type","none"),g.dissolveList(a),!1},span:function(a){a.filterChildren(d);a.attributes.style=k.normalizedStyles(a,b);
-if(!a.attributes.style||a.attributes.style.match(/^mso\-bookmark:OLE_LINK\d+$/)||a.getHtml().match(/^(\s|&nbsp;)+$/))return t.elements.replaceWithChildren(a),!1;a.attributes.style.match(/FONT-FAMILY:\s*Symbol/i)&&a.forEach(function(a){a.value=a.value.replace(/&nbsp;/g,"")},CKEDITOR.NODE_TEXT,!0);k.createStyleStack(a,d,b)},"v:imagedata":r,"v:shape":function(a){var b=!1;if(null===a.getFirst("v:imagedata"))e(a);else{a.parent.find(function(c){"img"==c.name&&c.attributes&&c.attributes["v:shapes"]==a.attributes.id&&
-(b=!0)},!0);if(b)return!1;var c="";"v:group"===a.parent.name?e(a):(a.forEach(function(a){a.attributes&&a.attributes.src&&(c=a.attributes.src)},CKEDITOR.NODE_ELEMENT,!0),a.filterChildren(d),a.name="img",a.attributes.src=a.attributes.src||c,delete a.attributes.type)}},style:function(){return!1},object:function(a){return!(!a.attributes||!a.attributes.data)},br:function(a){if(b.plugins.pagebreak&&(a=n.parseCssText(a.attributes.style,!0),"always"===a["page-break-before"]||"page"===a["break-before"]))return a=
-CKEDITOR.plugins.pagebreak.createElement(b),CKEDITOR.htmlParser.fragment.fromHtml(a.getOuterHtml()).children[0]}},attributes:{style:function(a,c){return k.normalizedStyles(c,b)||!1},"class":function(a){a=a.replace(/(el\d+)|(font\d+)|msonormal|msolistparagraph\w*/ig,"");return""===a?!1:a},cellspacing:r,cellpadding:r,border:r,"v:shapes":r,"o:spid":r},comment:function(a){a.match(/\[if.* supportFields.*\]/)&&y++;"[endif]"==a&&(y=0<y?y-1:0);return!1},text:function(a,b){if(y)return"";var c=b.parent&&b.parent.parent;
-return c&&c.attributes&&c.attributes.style&&c.attributes.style.match(/mso-list:\s*ignore/i)?a.replace(/&nbsp;/g," "):a}};n.array.forEach(E,function(a){w.elements[a]=e});return w};q.lists={thisIsAListItem:function(c,b){return p.isEdgeListItem(c,b)||b.attributes.style&&b.attributes.style.match(/mso\-list:\s?l\d/)&&"li"!==b.parent.name||b.attributes["cke-dissolved"]||b.getHtml().match(/<!\-\-\[if !supportLists]\-\->/)?!0:!1},convertToFakeListItem:function(c,b){p.isDegenerateListItem(c,b)&&p.assignListLevels(c,
-b);this.getListItemInfo(b);if(!b.attributes["cke-dissolved"]){var d;b.forEach(function(b){!d&&"img"==b.name&&b.attributes["cke-ignored"]&&"*"==b.attributes.alt&&(d="·",b.remove())},CKEDITOR.NODE_ELEMENT);b.forEach(function(b){d||b.value.match(/^ /)||(d=b.value)},CKEDITOR.NODE_TEXT);if("undefined"==typeof d)return;b.attributes["cke-symbol"]=d.replace(/(?: |&nbsp;).*$/,"");g.removeSymbolText(b)}var e=b.attributes&&n.parseCssText(b.attributes.style);if(e["margin-left"]){var f=e["margin-left"],l=b.attributes["cke-list-level"];
-(f=Math.max(CKEDITOR.tools.convertToPx(f)-40*l,0))?e["margin-left"]=f+"px":delete e["margin-left"];b.attributes.style=CKEDITOR.tools.writeCssText(e)}b.name="cke:li"},convertToRealListItems:function(c){var b=[];c.forEach(function(c){"cke:li"==c.name&&(c.name="li",b.push(c))},CKEDITOR.NODE_ELEMENT,!1);return b},removeSymbolText:function(c){var b=c.attributes["cke-symbol"],d=c.findOne(function(c){return c.value&&-1<c.value.indexOf(b)},!0),e;d&&(d.value=d.value.replace(b,""),e=d.parent,e.getHtml().match(/^(\s|&nbsp;)*$/)&&
-e!==c?e.remove():d.value||d.remove())},setListSymbol:function(c,b,d){d=d||1;var e=n.parseCssText(c.attributes.style);if("ol"==c.name){if(c.attributes.type||e["list-style-type"])return;var f={"[ivx]":"lower-roman","[IVX]":"upper-roman","[a-z]":"lower-alpha","[A-Z]":"upper-alpha","\\d":"decimal"},l;for(l in f)if(g.getSubsectionSymbol(b).match(new RegExp(l))){e["list-style-type"]=f[l];break}c.attributes["cke-list-style-type"]=e["list-style-type"]}else f={"·":"disc",o:"circle","§":"square"},!e["list-style-type"]&&
-f[b]&&(e["list-style-type"]=f[b]);g.setListSymbol.removeRedundancies(e,d);(c.attributes.style=CKEDITOR.tools.writeCssText(e))||delete c.attributes.style},setListStart:function(c){for(var b=[],d=0,e=0;e<c.children.length;e++)b.push(c.children[e].attributes["cke-symbol"]||"");b[0]||d++;switch(c.attributes["cke-list-style-type"]){case "lower-roman":case "upper-roman":c.attributes.start=g.toArabic(g.getSubsectionSymbol(b[d]))-d;break;case "lower-alpha":case "upper-alpha":c.attributes.start=g.getSubsectionSymbol(b[d]).replace(/\W/g,
-"").toLowerCase().charCodeAt(0)-96-d;break;case "decimal":c.attributes.start=parseInt(g.getSubsectionSymbol(b[d]),10)-d||1}"1"==c.attributes.start&&delete c.attributes.start;delete c.attributes["cke-list-style-type"]},numbering:{toNumber:function(c,b){function d(b){b=b.toUpperCase();for(var c=1,d=1;0<b.length;d*=26)c+="ABCDEFGHIJKLMNOPQRSTUVWXYZ".indexOf(b.charAt(b.length-1))*d,b=b.substr(0,b.length-1);return c}function e(b){var c=[[1E3,"M"],[900,"CM"],[500,"D"],[400,"CD"],[100,"C"],[90,"XC"],[50,
-"L"],[40,"XL"],[10,"X"],[9,"IX"],[5,"V"],[4,"IV"],[1,"I"]];b=b.toUpperCase();for(var d=c.length,a=0,e=0;e<d;++e)for(var g=c[e],u=g[1].length;b.substr(0,u)==g[1];b=b.substr(u))a+=g[0];return a}return"decimal"==b?Number(c):"upper-roman"==b||"lower-roman"==b?e(c.toUpperCase()):"lower-alpha"==b||"upper-alpha"==b?d(c):1},getStyle:function(c){c=c.slice(0,1);var b={i:"lower-roman",v:"lower-roman",x:"lower-roman",l:"lower-roman",m:"lower-roman",I:"upper-roman",V:"upper-roman",X:"upper-roman",L:"upper-roman",
-M:"upper-roman"}[c];b||(b="decimal",c.match(/[a-z]/)&&(b="lower-alpha"),c.match(/[A-Z]/)&&(b="upper-alpha"));return b}},getSubsectionSymbol:function(c){return(c.match(/([\da-zA-Z]+).?$/)||["placeholder","1"])[1]},setListDir:function(c){var b=0,d=0;c.forEach(function(c){"li"==c.name&&("rtl"==(c.attributes.dir||c.attributes.DIR||"").toLowerCase()?d++:b++)},CKEDITOR.ELEMENT_NODE);d>b&&(c.attributes.dir="rtl")},createList:function(c){return(c.attributes["cke-symbol"].match(/([\da-np-zA-NP-Z]).?/)||[])[1]?
-new CKEDITOR.htmlParser.element("ol"):new CKEDITOR.htmlParser.element("ul")},createLists:function(c){function b(b){return CKEDITOR.tools.array.reduce(b,function(b,a){if(a.attributes&&a.attributes.style)var c=CKEDITOR.tools.parseCssText(a.attributes.style)["margin-left"];return c?b+parseInt(c,10):b},0)}var d,e,f,l=g.convertToRealListItems(c);if(0===l.length)return[];var k=g.groupLists(l);for(c=0;c<k.length;c++){var a=k[c],h=a[0];for(f=0;f<a.length;f++)if(1==a[f].attributes["cke-list-level"]){h=a[f];
-break}var h=[g.createList(h)],m=h[0],u=[h[0]];m.insertBefore(a[0]);for(f=0;f<a.length;f++){d=a[f];for(e=d.attributes["cke-list-level"];e>h.length;){var v=g.createList(d),x=m.children;0<x.length?x[x.length-1].add(v):(x=new CKEDITOR.htmlParser.element("li",{style:"list-style-type:none"}),x.add(v),m.add(x));h.push(v);u.push(v);m=v;e==h.length&&g.setListSymbol(v,d.attributes["cke-symbol"],e)}for(;e<h.length;)h.pop(),m=h[h.length-1],e==h.length&&g.setListSymbol(m,d.attributes["cke-symbol"],e);d.remove();
-m.add(d)}h[0].children.length&&(f=h[0].children[0].attributes["cke-symbol"],!f&&1<h[0].children.length&&(f=h[0].children[1].attributes["cke-symbol"]),f&&g.setListSymbol(h[0],f));for(f=0;f<u.length;f++)g.setListStart(u[f]);for(f=0;f<a.length;f++)this.determineListItemValue(a[f])}CKEDITOR.tools.array.forEach(l,function(a){for(var c=[],d=a.parent;d;)"li"===d.name&&c.push(d),d=d.parent;var c=b(c),e;c&&(a.attributes=a.attributes||{},d=CKEDITOR.tools.parseCssText(a.attributes.style),e=d["margin-left"]||
-0,(e=Math.max(parseInt(e,10)-c,0))?d["margin-left"]=e+"px":delete d["margin-left"],a.attributes.style=CKEDITOR.tools.writeCssText(d))});return l},cleanup:function(c){var b=["cke-list-level","cke-symbol","cke-list-id","cke-indentation","cke-dissolved"],d,e;for(d=0;d<c.length;d++)for(e=0;e<b.length;e++)delete c[d].attributes[b[e]]},determineListItemValue:function(c){if("ol"===c.parent.name){var b=this.calculateValue(c),d=c.attributes["cke-symbol"].match(/[a-z0-9]+/gi),e;d&&(d=d[d.length-1],e=c.parent.attributes["cke-list-style-type"]||
-this.numbering.getStyle(d),d=this.numbering.toNumber(d,e),d!==b&&(c.attributes.value=d))}},calculateValue:function(c){if(!c.parent)return 1;var b=c.parent;c=c.getIndex();var d=null,e,f,g;for(g=c;0<=g&&null===d;g--)f=b.children[g],f.attributes&&void 0!==f.attributes.value&&(e=g,d=parseInt(f.attributes.value,10));null===d&&(d=void 0!==b.attributes.start?parseInt(b.attributes.start,10):1,e=0);return d+(c-e)},dissolveList:function(c){function b(a){return 50<=a?"l"+b(a-50):40<=a?"xl"+b(a-40):10<=a?"x"+
-b(a-10):9==a?"ix":5<=a?"v"+b(a-5):4==a?"iv":1<=a?"i"+b(a-1):""}function d(a,b){function c(b,d){return b&&b.parent?a(b.parent)?c(b.parent,d+1):c(b.parent,d):d}return c(b,0)}var e=function(b){return function(a){return a.name==b}},f=function(b){return e("ul")(b)||e("ol")(b)},g=CKEDITOR.tools.array,w=[],a,h;c.forEach(function(b){w.push(b)},CKEDITOR.NODE_ELEMENT,!1);a=g.filter(w,e("li"));var m=g.filter(w,f);g.forEach(m,function(a){var c=a.attributes.type,h=parseInt(a.attributes.start,10)||1,m=d(f,a)+1;
-c||(c=n.parseCssText(a.attributes.style)["list-style-type"]);g.forEach(g.filter(a.children,e("li")),function(d,e){var f;switch(c){case "disc":f="·";break;case "circle":f="o";break;case "square":f="§";break;case "1":case "decimal":f=h+e+".";break;case "a":case "lower-alpha":f=String.fromCharCode(97+h-1+e)+".";break;case "A":case "upper-alpha":f=String.fromCharCode(65+h-1+e)+".";break;case "i":case "lower-roman":f=b(h+e)+".";break;case "I":case "upper-roman":f=b(h+e).toUpperCase()+".";break;default:f=
-"ul"==a.name?"·":h+e+"."}d.attributes["cke-symbol"]=f;d.attributes["cke-list-level"]=m})});a=g.reduce(a,function(b,a){var c=a.children[0];if(c&&c.name&&c.attributes.style&&c.attributes.style.match(/mso-list:/i)){k.pushStylesLower(a,{"list-style-type":!0,display:!0});var d=n.parseCssText(c.attributes.style,!0);k.setStyle(a,"mso-list",d["mso-list"],!0);k.setStyle(c,"mso-list","");delete a["cke-list-level"];(c=d.display?"display":d.DISPLAY?"DISPLAY":"")&&k.setStyle(a,"display",d[c],!0)}if(1===a.children.length&&
-f(a.children[0]))return b;a.name="p";a.attributes["cke-dissolved"]=!0;b.push(a);return b},[]);for(h=a.length-1;0<=h;h--)a[h].insertAfter(c);for(h=m.length-1;0<=h;h--)delete m[h].name},groupLists:function(c){var b,d,e=[[c[0]]],f=e[0];d=c[0];d.attributes["cke-indentation"]=d.attributes["cke-indentation"]||z(d);for(b=1;b<c.length;b++){d=c[b];var l=c[b-1];d.attributes["cke-indentation"]=d.attributes["cke-indentation"]||z(d);d.previous!==l&&(g.chopDiscontinuousLists(f,e),e.push(f=[]));f.push(d)}g.chopDiscontinuousLists(f,
-e);return e},chopDiscontinuousLists:function(c,b){for(var d={},e=[[]],f,l=0;l<c.length;l++){var k=d[c[l].attributes["cke-list-level"]],a=this.getListItemInfo(c[l]),h,m;k?(m=k.type.match(/alpha/)&&7==k.index?"alpha":m,m="o"==c[l].attributes["cke-symbol"]&&14==k.index?"alpha":m,h=g.getSymbolInfo(c[l].attributes["cke-symbol"],m),a=this.getListItemInfo(c[l]),(k.type!=h.type||f&&a.id!=f.id&&!this.isAListContinuation(c[l]))&&e.push([])):h=g.getSymbolInfo(c[l].attributes["cke-symbol"]);for(f=parseInt(c[l].attributes["cke-list-level"],
-10)+1;20>f;f++)d[f]&&delete d[f];d[c[l].attributes["cke-list-level"]]=h;e[e.length-1].push(c[l]);f=a}[].splice.apply(b,[].concat([n.indexOf(b,c),1],e))},isAListContinuation:function(c){var b=c;do if((b=b.previous)&&b.type===CKEDITOR.NODE_ELEMENT){if(void 0===b.attributes["cke-list-level"])break;if(b.attributes["cke-list-level"]===c.attributes["cke-list-level"])return b.attributes["cke-list-id"]===c.attributes["cke-list-id"]}while(b);return!1},toArabic:function(c){return c.match(/[ivxl]/i)?c.match(/^l/i)?
-50+g.toArabic(c.slice(1)):c.match(/^lx/i)?40+g.toArabic(c.slice(1)):c.match(/^x/i)?10+g.toArabic(c.slice(1)):c.match(/^ix/i)?9+g.toArabic(c.slice(2)):c.match(/^v/i)?5+g.toArabic(c.slice(1)):c.match(/^iv/i)?4+g.toArabic(c.slice(2)):c.match(/^i/i)?1+g.toArabic(c.slice(1)):g.toArabic(c.slice(1)):0},getSymbolInfo:function(c,b){var d=c.toUpperCase()==c?"upper-":"lower-",e={"·":["disc",-1],o:["circle",-2],"§":["square",-3]};if(c in e||b&&b.match(/(disc|circle|square)/))return{index:e[c][1],type:e[c][0]};
-if(c.match(/\d/))return{index:c?parseInt(g.getSubsectionSymbol(c),10):0,type:"decimal"};c=c.replace(/\W/g,"").toLowerCase();return!b&&c.match(/[ivxl]+/i)||b&&"alpha"!=b||"roman"==b?{index:g.toArabic(c),type:d+"roman"}:c.match(/[a-z]/i)?{index:c.charCodeAt(0)-97,type:d+"alpha"}:{index:-1,type:"disc"}},getListItemInfo:function(c){if(void 0!==c.attributes["cke-list-id"])return{id:c.attributes["cke-list-id"],level:c.attributes["cke-list-level"]};var b=n.parseCssText(c.attributes.style)["mso-list"],d=
-{id:"0",level:"1"};b&&(b+=" ",d.level=b.match(/level(.+?)\s+/)[1],d.id=b.match(/l(\d+?)\s+/)[1]);c.attributes["cke-list-level"]=void 0!==c.attributes["cke-list-level"]?c.attributes["cke-list-level"]:d.level;c.attributes["cke-list-id"]=d.id;return d}};g=q.lists;q.heuristics={isEdgeListItem:function(c,b){if(!CKEDITOR.env.edge||!c.config.pasteFromWord_heuristicsEdgeList)return!1;var d="";b.forEach&&b.forEach(function(b){d+=b.value},CKEDITOR.NODE_TEXT);return d.match(/^(?: |&nbsp;)*\(?[a-zA-Z0-9]+?[\.\)](?: |&nbsp;){2,}/)?
-!0:p.isDegenerateListItem(c,b)},cleanupEdgeListItem:function(c){var b=!1;c.forEach(function(c){b||(c.value=c.value.replace(/^(?:&nbsp;|[\s])+/,""),c.value.length&&(b=!0))},CKEDITOR.NODE_TEXT)},isDegenerateListItem:function(c,b){return!!b.attributes["cke-list-level"]||b.attributes.style&&!b.attributes.style.match(/mso\-list/)&&!!b.find(function(c){if(c.type==CKEDITOR.NODE_ELEMENT&&b.name.match(/h\d/i)&&c.getHtml().match(/^[a-zA-Z0-9]+?[\.\)]$/))return!0;var e=n.parseCssText(c.attributes&&c.attributes.style,
-!0);if(!e)return!1;var f=e["font-family"]||"";return(e.font||e["font-size"]||"").match(/7pt/i)&&!!c.previous||f.match(/symbol/i)},!0).length},assignListLevels:function(c,b){if(!b.attributes||void 0===b.attributes["cke-list-level"]){for(var d=[z(b)],e=[b],f=[],g=CKEDITOR.tools.array,k=g.map;b.next&&b.next.attributes&&!b.next.attributes["cke-list-level"]&&p.isDegenerateListItem(c,b.next);)b=b.next,d.push(z(b)),e.push(b);var a=k(d,function(a,b){return 0===b?0:a-d[b-1]}),h=this.guessIndentationStep(g.filter(d,
-function(a){return 0!==a})),f=k(d,function(a){return Math.round(a/h)});-1!==g.indexOf(f,0)&&(f=k(f,function(a){return a+1}));g.forEach(e,function(a,b){a.attributes["cke-list-level"]=f[b]});return{indents:d,levels:f,diffs:a}}},guessIndentationStep:function(c){return c.length?Math.min.apply(null,c):null},correctLevelShift:function(c){if(this.isShifted(c)){var b=CKEDITOR.tools.array.filter(c.children,function(b){return"ul"==b.name||"ol"==b.name}),d=CKEDITOR.tools.array.reduce(b,function(b,c){return(c.children&&
-1==c.children.length&&p.isShifted(c.children[0])?[c]:c.children).concat(b)},[]);CKEDITOR.tools.array.forEach(b,function(b){b.remove()});CKEDITOR.tools.array.forEach(d,function(b){c.add(b)});delete c.name}},isShifted:function(c){return"li"!==c.name?!1:0===CKEDITOR.tools.array.filter(c.children,function(b){return b.name&&("ul"==b.name||"ol"==b.name||"p"==b.name&&0===b.children.length)?!1:!0}).length}};p=q.heuristics;g.setListSymbol.removeRedundancies=function(c,b){(1===b&&"disc"===c["list-style-type"]||
-"decimal"===c["list-style-type"])&&delete c["list-style-type"]};CKEDITOR.cleanWord=CKEDITOR.pasteFilters.word=B.createFilter({rules:[t.rules,q.rules],additionalTransforms:function(c){CKEDITOR.plugins.clipboard.isCustomDataTypesSupported&&(c=t.styles.inliner.inline(c).getBody().getHtml());return c.replace(/<!\[/g,"\x3c!--[").replace(/\]>/g,"]--\x3e")}});CKEDITOR.config.pasteFromWord_heuristicsEdgeList=!0})();
\ No newline at end of file
diff --git a/web/modules/ckeditor/vendor/plugins/pastetools/filter/common.js b/web/modules/ckeditor/vendor/plugins/pastetools/filter/common.js
deleted file mode 100644
index bce639a9dd84e5aaa366a0a495853b5969d84511..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/plugins/pastetools/filter/common.js
+++ /dev/null
@@ -1,24 +0,0 @@
-/*
- Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
- For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
-*/
-(function(){function q(a,b,c){b+=c;for(var d=a[b],e=/[\s]/;d&&e.test(d);)b+=c,d=a[b];return d}function r(a){return/%$/.test(a)?a:a+"px"}function t(a){var b=a.margin?"margin":a.MARGIN?"MARGIN":!1,c,d;if(b){d=CKEDITOR.tools.style.parse.margin(a[b]);for(c in d)a["margin-"+c]=d[c];delete a[b]}}function u(a){var b="background-color:transparent;background:transparent;background-color:none;background:none;background-position:initial initial;background-repeat:initial initial;caret-color;font-family:-webkit-standard;font-variant-caps;letter-spacing:normal;orphans;widows;text-transform:none;word-spacing:0px;-webkit-text-size-adjust:auto;-webkit-text-stroke-width:0px;text-indent:0px;margin-bottom:0in".split(";"),
-c=CKEDITOR.tools.parseCssText(a.attributes.style),d,e;for(d in c)e=d+":"+c[d],CKEDITOR.tools.array.some(b,function(a){return e.substring(0,a.length).toLowerCase()===a})&&delete c[d];c=CKEDITOR.tools.writeCssText(c);""!==c?a.attributes.style=c:delete a.attributes.style}function v(a){a=a.config.font_names;var b=[];if(!a||!a.length)return!1;b=CKEDITOR.tools.array.map(a.split(";"),function(a){return-1===a.indexOf("/")?a:a.split("/")[1]});return b.length?b:!1}function w(a,b){var c=a.split(",");return CKEDITOR.tools.array.find(b,
-function(a){for(var e=0;e<c.length;e++)if(-1===a.indexOf(CKEDITOR.tools.trim(c[e])))return!1;return!0})||a}var g,m=CKEDITOR.tools,p={};CKEDITOR.plugins.pastetools.filters.common=p;p.rules=function(a,b,c){var d=v(b);return{elements:{"^":function(a){u(a);if(a.attributes.bgcolor){var b=CKEDITOR.tools.parseCssText(a.attributes.style);b["background-color"]||(b["background-color"]=a.attributes.bgcolor,a.attributes.style=CKEDITOR.tools.writeCssText(b))}},span:function(a){if(a.hasClass("Apple-converted-space"))return new CKEDITOR.htmlParser.text(" ")},
-table:function(a){a.filterChildren(c);var b=a.parent,f=b&&b.parent,d,h;if(b.name&&"div"===b.name&&b.attributes.align&&1===m.object.keys(b.attributes).length&&1===b.children.length){a.attributes.align=b.attributes.align;d=b.children.splice(0);a.remove();for(h=d.length-1;0<=h;h--)f.add(d[h],b.getIndex());b.remove()}g.convertStyleToPx(a)},tr:function(a){a.attributes={}},td:function(a){var d=a.getAscendant("table"),d=m.parseCssText(d.attributes.style,!0),f=d.background;f&&g.setStyle(a,"background",f,
-!0);(d=d["background-color"])&&g.setStyle(a,"background-color",d,!0);var d=m.parseCssText(a.attributes.style,!0),f=d.border?CKEDITOR.tools.style.border.fromCssRule(d.border):{},f=m.style.border.splitCssValues(d,f),l=CKEDITOR.tools.clone(d),h;for(h in l)0==h.indexOf("border")&&delete l[h];a.attributes.style=CKEDITOR.tools.writeCssText(l);d.background&&(h=CKEDITOR.tools.style.parse.background(d.background),h.color&&(g.setStyle(a,"background-color",h.color,!0),g.setStyle(a,"background","")));for(var n in f)h=
-d[n]?CKEDITOR.tools.style.border.fromCssRule(d[n]):f[n],"none"===h.style?g.setStyle(a,n,"none"):g.setStyle(a,n,h.toString());g.mapCommonStyles(a);g.convertStyleToPx(a);g.createStyleStack(a,c,b,/margin|text\-align|padding|list\-style\-type|width|height|border|white\-space|vertical\-align|background/i)},font:function(a){a.attributes.face&&d&&(a.attributes.face=w(a.attributes.face,d))}}}};p.styles={setStyle:function(a,b,c,d){var e=m.parseCssText(a.attributes.style);d&&e[b]||(""===c?delete e[b]:e[b]=
-c,a.attributes.style=CKEDITOR.tools.writeCssText(e))},convertStyleToPx:function(a){var b=a.attributes.style;b&&(a.attributes.style=b.replace(/\d+(\.\d+)?pt/g,function(a){return CKEDITOR.tools.convertToPx(a)+"px"}))},mapStyles:function(a,b){for(var c in b)if(a.attributes[c]){if("function"===typeof b[c])b[c](a.attributes[c]);else g.setStyle(a,b[c],a.attributes[c]);delete a.attributes[c]}},mapCommonStyles:function(a){return g.mapStyles(a,{vAlign:function(b){g.setStyle(a,"vertical-align",b)},width:function(b){g.setStyle(a,
-"width",r(b))},height:function(b){g.setStyle(a,"height",r(b))}})},normalizedStyles:function(a,b){var c="background-color:transparent border-image:none color:windowtext direction:ltr mso- visibility:visible div:border:none".split(" "),d="font-family font font-size color background-color line-height text-decoration".split(" "),e=function(){for(var a=[],b=0;b<arguments.length;b++)arguments[b]&&a.push(arguments[b]);return-1!==m.indexOf(c,a.join(":"))},k=!0===CKEDITOR.plugins.pastetools.getConfigValue(b,
-"removeFontStyles"),f=m.parseCssText(a.attributes.style);"cke:li"==a.name&&(f["TEXT-INDENT"]&&f.MARGIN?(a.attributes["cke-indentation"]=p.lists.getElementIndentation(a),f.MARGIN=f.MARGIN.replace(/(([\w\.]+ ){3,3})[\d\.]+(\w+$)/,"$10$3")):delete f["TEXT-INDENT"],delete f["text-indent"]);for(var l=m.object.keys(f),h=0;h<l.length;h++){var n=l[h].toLowerCase(),g=f[l[h]],q=CKEDITOR.tools.indexOf;(k&&-1!==q(d,n.toLowerCase())||e(null,n,g)||e(null,n.replace(/\-.*$/,"-"))||e(null,n)||e(a.name,n,g)||e(a.name,
-n.replace(/\-.*$/,"-"))||e(a.name,n)||e(g))&&delete f[l[h]]}var r=CKEDITOR.plugins.pastetools.getConfigValue(b,"keepZeroMargins");t(f);(function(){CKEDITOR.tools.array.forEach(["top","right","bottom","left"],function(a){a="margin-"+a;if(a in f){var b=CKEDITOR.tools.convertToPx(f[a]);b||r?f[a]=b?b+"px":0:delete f[a]}})})();return CKEDITOR.tools.writeCssText(f)},createStyleStack:function(a,b,c,d){var e=[];a.filterChildren(b);for(b=a.children.length-1;0<=b;b--)e.unshift(a.children[b]),a.children[b].remove();
-g.sortStyles(a);b=m.parseCssText(g.normalizedStyles(a,c));c=a;var k="span"===a.name,f;for(f in b)if(!f.match(d||/margin((?!-)|-left|-top|-bottom|-right)|text-indent|text-align|width|border|padding/i))if(k)k=!1;else{var l=new CKEDITOR.htmlParser.element("span");l.attributes.style=f+":"+b[f];c.add(l);c=l;delete b[f]}CKEDITOR.tools.isEmpty(b)?delete a.attributes.style:a.attributes.style=CKEDITOR.tools.writeCssText(b);for(b=0;b<e.length;b++)c.add(e[b])},sortStyles:function(a){for(var b=["border","border-bottom",
-"font-size","background"],c=m.parseCssText(a.attributes.style),d=m.object.keys(c),e=[],k=[],f=0;f<d.length;f++)-1!==m.indexOf(b,d[f].toLowerCase())?e.push(d[f]):k.push(d[f]);e.sort(function(a,c){var d=m.indexOf(b,a.toLowerCase()),e=m.indexOf(b,c.toLowerCase());return d-e});d=[].concat(e,k);e={};for(f=0;f<d.length;f++)e[d[f]]=c[d[f]];a.attributes.style=CKEDITOR.tools.writeCssText(e)},pushStylesLower:function(a,b,c){if(!a.attributes.style||0===a.children.length)return!1;b=b||{};var d={"list-style-type":!0,
-width:!0,height:!0,border:!0,"border-":!0},e=m.parseCssText(a.attributes.style),k;for(k in e)if(!(k.toLowerCase()in d||d[k.toLowerCase().replace(/\-.*$/,"-")]||k.toLowerCase()in b)){for(var f=!1,l=0;l<a.children.length;l++){var h=a.children[l];if(h.type===CKEDITOR.NODE_TEXT&&c){var n=new CKEDITOR.htmlParser.element("span");n.setHtml(h.value);h.replaceWith(n);h=n}h.type===CKEDITOR.NODE_ELEMENT&&(f=!0,g.setStyle(h,k,e[k]))}f&&delete e[k]}a.attributes.style=CKEDITOR.tools.writeCssText(e);return!0},inliner:{filtered:"break-before break-after break-inside page-break page-break-before page-break-after page-break-inside".split(" "),
-parse:function(a){function b(a){var b=new CKEDITOR.dom.element("style"),c=new CKEDITOR.dom.element("iframe");c.hide();CKEDITOR.document.getBody().append(c);c.$.contentDocument.documentElement.appendChild(b.$);b.$.textContent=a;c.remove();return b.$.sheet}function c(a){var b=a.indexOf("{"),c=a.indexOf("}");return d(a.substring(b+1,c),!0)}var d=CKEDITOR.tools.parseCssText,e=g.inliner.filter,k=a.is?a.$.sheet:b(a);a=[];var f;if(k)for(k=k.cssRules,f=0;f<k.length;f++)k[f].type===window.CSSRule.STYLE_RULE&&
-a.push({selector:k[f].selectorText,styles:e(c(k[f].cssText))});return a},filter:function(a){var b=g.inliner.filtered,c=m.array.indexOf,d={},e;for(e in a)-1===c(b,e)&&(d[e]=a[e]);return d},sort:function(a){return a.sort(function(a){var c=CKEDITOR.tools.array.map(a,function(a){return a.selector});return function(a,b){var k=-1!==(""+a.selector).indexOf(".")?1:0,k=(-1!==(""+b.selector).indexOf(".")?1:0)-k;return 0!==k?k:c.indexOf(b.selector)-c.indexOf(a.selector)}}(a))},inline:function(a){var b=g.inliner.parse,
-c=g.inliner.sort,d=function(a){a=(new DOMParser).parseFromString(a,"text/html");return new CKEDITOR.dom.document(a)}(a);a=d.find("style");c=c(function(a){var c=[],d;for(d=0;d<a.count();d++)c=c.concat(b(a.getItem(d)));return c}(a));CKEDITOR.tools.array.forEach(c,function(a){var b=a.styles;a=d.find(a.selector);var c,g,h;t(b);for(h=0;h<a.count();h++)c=a.getItem(h),g=CKEDITOR.tools.parseCssText(c.getAttribute("style")),t(g),g=CKEDITOR.tools.extend({},g,b),c.setAttribute("style",CKEDITOR.tools.writeCssText(g))});
-return d}}};g=p.styles;p.lists={getElementIndentation:function(a){a=m.parseCssText(a.attributes.style);if(a.margin||a.MARGIN){a.margin=a.margin||a.MARGIN;var b={styles:{margin:a.margin}};CKEDITOR.filter.transformationsTools.splitMarginShorthand(b);a["margin-left"]=b.styles["margin-left"]}return parseInt(m.convertToPx(a["margin-left"]||"0px"),10)}};p.elements={replaceWithChildren:function(a){for(var b=a.children.length-1;0<=b;b--)a.children[b].insertAfter(a)}};p.createAttributeStack=function(a,b){var c,
-d=[];a.filterChildren(b);for(c=a.children.length-1;0<=c;c--)d.unshift(a.children[c]),a.children[c].remove();c=a.attributes;var e=a,g=!0,f;for(f in c)if(g)g=!1;else{var l=new CKEDITOR.htmlParser.element(a.name);l.attributes[f]=c[f];e.add(l);e=l;delete c[f]}for(c=0;c<d.length;c++)e.add(d[c])};p.parseShorthandMargins=t;p.rtf={getGroups:function(a,b){for(var c=[],d,e=0;d=p.rtf.getGroup(a,b,{start:e});)e=d.end,c.push(d);return c},removeGroups:function(a,b){for(var c;c=p.rtf.getGroup(a,b);){var d=a.substring(0,
-c.start);c=a.substring(c.end);a=d+c}return a},getGroup:function(a,b,c){var d=0;b=new RegExp("\\{\\\\"+b,"g");var e;c=CKEDITOR.tools.object.merge({start:0},c||{});b.lastIndex=c.start;c=b.exec(a);if(!c)return null;b=c.index;e=a[b];do{var g="{"===e&&"\\"!==q(a,b,-1)&&"\\"===q(a,b,1);e="}"===e&&"\\"!==q(a,b,-1)&&0<d;g?d++:e&&d--;e=a[++b]}while(e&&0<d);return{start:c.index,end:b,content:a.substring(c.index,b)}},extractGroupContent:function(a){var b;b=(b=a.match(/^\{\\(\w+)/))?b[1]:null;a=a.replace(/\}([^{\s]+)/g,
-"} $1");a=p.rtf.removeGroups(a,"(?!"+b+")");a=CKEDITOR.tools.trim(a.replace(/^\{(\\[\w-]+\s*)+/g,""));return a.replace(/}$/,"")}}})();
\ No newline at end of file
diff --git a/web/modules/ckeditor/vendor/plugins/pastetools/filter/image.js b/web/modules/ckeditor/vendor/plugins/pastetools/filter/image.js
deleted file mode 100644
index 7d0203a80335e5bb906a17c716463b64093eb5c3..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/plugins/pastetools/filter/image.js
+++ /dev/null
@@ -1,12 +0,0 @@
-/*
- Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
- For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
-*/
-(function(){function u(a,c,b){c=l(c);var e,d;if(0===c.length)return a;e=CKEDITOR.tools.array.map(c,function(a){return h(a)},this);if(b.length!==e.length)return CKEDITOR.error("pastetools-failed-image-extraction",{rtf:c.length,html:b.length}),a;for(d=0;d<b.length;d++)if(0===b[d].indexOf("file://"))if(e[d]){var k=b[d].replace(/\\/g,"\\\\");a=a.replace(new RegExp("(\x3cimg [^\x3e]*src\x3d[\"']?)"+k),"$1"+e[d])}else CKEDITOR.error("pastetools-unsupported-image",{type:c[d].type,index:d});return a}function v(a,
-c,b){var e=CKEDITOR.tools.array.unique(CKEDITOR.tools.array.filter(b,function(a){return a.match(/^blob:/i)}));b=CKEDITOR.tools.array.map(e,m);CKEDITOR.tools.promise.all(b).then(function(b){CKEDITOR.tools.array.forEach(b,function(b,c){if(b){var d=e[c],d=a.editable().find('img[src\x3d"'+d+'"]').toArray();CKEDITOR.tools.array.forEach(d,function(a){a.setAttribute("src",b);a.setAttribute("data-cke-saved-src",b)},this)}else CKEDITOR.error("pastetools-unsupported-image",{type:"blob",index:c})})});return c}
-function l(a){function c(a){return"string"!==typeof a?-1:CKEDITOR.tools.array.indexOf(d,function(b){return b.id===a})}function b(a){var b=a.match(/\\blipuid (\w+)\}/);a=a.match(/\\bliptag(-?\d+)/);return b?b[1]:a?a[1]:null}var e=CKEDITOR.plugins.pastetools.filters.common.rtf,d=[];a=e.removeGroups(a,"(?:(?:header|footer)[lrf]?|nonshppict|shprslt)");a=e.getGroups(a,"pict");if(!a)return d;for(var k=0;k<a.length;k++){var f=a[k].content,h=b(f),n=t(f),g=c(h),p=-1!==g&&d[g].hex,l=p&&d[g].type===n,p=p&&d[g].type!==
-n&&g===d.length-1,m=-1!==f.indexOf("\\defshp"),q=-1!==CKEDITOR.tools.array.indexOf(CKEDITOR.pasteFilters.image.supportedImageTypes,n),r=-1!==CKEDITOR.tools.indexOf(f,"fHorizRule");l?d.push(d[g]):p||m||r||(f={id:h,hex:q?e.extractGroupContent(f).replace(/\s/g,""):null,type:n},-1!==g?d.splice(g,1,f):d.push(f))}return d}function q(a){for(var c=/<img[^>]+src="([^"]+)[^>]+/g,b=[],e;e=c.exec(a);)b.push(e[1]);return b}function t(a){var c=CKEDITOR.tools.array.find(CKEDITOR.pasteFilters.image.recognizableImageTypes,
-function(b){return b.marker.test(a)});return c?c.type:"unknown"}function h(a){var c=-1!==CKEDITOR.tools.array.indexOf(CKEDITOR.pasteFilters.image.supportedImageTypes,a.type),b=a.hex;if(!c)return null;"string"===typeof b&&(b=CKEDITOR.tools.convertHexStringToBytes(a.hex));return a.type?"data:"+a.type+";base64,"+CKEDITOR.tools.convertBytesToBase64(b):null}function m(a){return new CKEDITOR.tools.promise(function(c){CKEDITOR.ajax.load(a,function(a){a=new Uint8Array(a);var e=r(a);a=h({type:e,hex:a});c(a)},
-"arraybuffer")})}function r(a){a=a.subarray(0,4);var c=CKEDITOR.tools.array.map(a,function(a){return a.toString(16)}).join("");return(a=CKEDITOR.tools.array.find(CKEDITOR.pasteFilters.image.recognizableImageSignatures,function(a){return 0===c.indexOf(a.signature)}))?a.type:null}CKEDITOR.pasteFilters.image=function(a,c,b){var e;if(c.activeFilter&&!c.activeFilter.check("img[src]"))return a;e=q(a);return 0===e.length?a:b?u(a,b,e):v(c,a,e)};CKEDITOR.pasteFilters.image.extractFromRtf=l;CKEDITOR.pasteFilters.image.extractTagsFromHtml=
-q;CKEDITOR.pasteFilters.image.getImageType=t;CKEDITOR.pasteFilters.image.createSrcWithBase64=h;CKEDITOR.pasteFilters.image.convertBlobUrlToBase64=m;CKEDITOR.pasteFilters.image.getImageTypeFromSignature=r;CKEDITOR.pasteFilters.image.supportedImageTypes=["image/png","image/jpeg","image/gif"];CKEDITOR.pasteFilters.image.recognizableImageTypes=[{marker:/\\pngblip/,type:"image/png"},{marker:/\\jpegblip/,type:"image/jpeg"},{marker:/\\emfblip/,type:"image/emf"},{marker:/\\wmetafile\d/,type:"image/wmf"}];
-CKEDITOR.pasteFilters.image.recognizableImageSignatures=[{signature:"ffd8ff",type:"image/jpeg"},{signature:"47494638",type:"image/gif"},{signature:"89504e47",type:"image/png"}]})();
\ No newline at end of file
diff --git a/web/modules/ckeditor/vendor/plugins/showblocks/images/block_address.png b/web/modules/ckeditor/vendor/plugins/showblocks/images/block_address.png
deleted file mode 100644
index 5abdae127953d052a36ca481023730baf8e10461..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/plugins/showblocks/images/block_address.png
+++ /dev/null
@@ -1,4 +0,0 @@
-�PNG
-
-���
IHDR���,�������r�����PLTE�������֍����tRNS���0J���?IDAT�c�P��}�-�Զ�q�>0���:�;�zq(�c׫��>0|7�u(�����];6
-��qM�Dp�����IEND�B`�
\ No newline at end of file
diff --git a/web/modules/ckeditor/vendor/plugins/showblocks/images/block_blockquote.png b/web/modules/ckeditor/vendor/plugins/showblocks/images/block_blockquote.png
deleted file mode 100644
index a8f497353cc5abb02cb78b7eba55772e1f5db540..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/plugins/showblocks/images/block_blockquote.png
+++ /dev/null
@@ -1,3 +0,0 @@
-�PNG
-
-���
IHDR���:��������Nu���PLTE�������֍����tRNS���0J���AIDAT�c�0����8`��{m�ڲ� �zk0�#�q,�����S�S�wl�?���ح�1�5a����6����IEND�B`�
\ No newline at end of file
diff --git a/web/modules/ckeditor/vendor/plugins/showblocks/images/block_div.png b/web/modules/ckeditor/vendor/plugins/showblocks/images/block_div.png
deleted file mode 100644
index 87b3c17146e79e8dcced15939f24a0f16ad50c61..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/plugins/showblocks/images/block_div.png
+++ /dev/null
@@ -1,3 +0,0 @@
-�PNG
-
-���
IHDR���������1�(���PLTE�������֍����tRNS���0J���&IDAT�c����^��
���q�0�v(~�	���(�c>����IEND�B`�
\ No newline at end of file
diff --git a/web/modules/ckeditor/vendor/plugins/showblocks/images/block_h1.png b/web/modules/ckeditor/vendor/plugins/showblocks/images/block_h1.png
deleted file mode 100644
index 3933325c08f3f4eacec46c97600f7cba01ead54f..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/plugins/showblocks/images/block_h1.png
+++ /dev/null
@@ -1,3 +0,0 @@
-�PNG
-
-���
IHDR���������8�R���PLTE�������֍����tRNS���0J���IDAT�c�����������{(��#� a�Hf$f8E������IEND�B`�
\ No newline at end of file
diff --git a/web/modules/ckeditor/vendor/plugins/showblocks/images/block_h2.png b/web/modules/ckeditor/vendor/plugins/showblocks/images/block_h2.png
deleted file mode 100644
index c99894c2650ae1745e0e4156d775fe84d00efff0..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/plugins/showblocks/images/block_h2.png
+++ /dev/null
@@ -1,3 +0,0 @@
-�PNG
-
-���
IHDR���������8�R���PLTE�������֍����tRNS���0J���&IDAT�c���������@����{�����	�9�#�hZ����IEND�B`�
\ No newline at end of file
diff --git a/web/modules/ckeditor/vendor/plugins/showblocks/images/block_h3.png b/web/modules/ckeditor/vendor/plugins/showblocks/images/block_h3.png
deleted file mode 100644
index cb73d679eb840b9728569b27d8b1933af47aa689..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/plugins/showblocks/images/block_h3.png
+++ /dev/null
@@ -1,3 +0,0 @@
-�PNG
-
-���
IHDR���������8�R���PLTE�������֍����tRNS���0J���"IDAT�c���������@�����y
�G�A��7�#�Tm�����IEND�B`�
\ No newline at end of file
diff --git a/web/modules/ckeditor/vendor/plugins/showblocks/images/block_h4.png b/web/modules/ckeditor/vendor/plugins/showblocks/images/block_h4.png
deleted file mode 100644
index 7af6bb4984d8448881d5461a33db46165416381d..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/plugins/showblocks/images/block_h4.png
+++ /dev/null
@@ -1,3 +0,0 @@
-�PNG
-
-���
IHDR����������H
Q���PLTE�������֍����tRNS���0J���"IDAT�c����{��!��v ���!Y��N'��+|�����IEND�B`�
\ No newline at end of file
diff --git a/web/modules/ckeditor/vendor/plugins/showblocks/images/block_h5.png b/web/modules/ckeditor/vendor/plugins/showblocks/images/block_h5.png
deleted file mode 100644
index ce5bec16cfa84d461672f8b0721911d90a06e445..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/plugins/showblocks/images/block_h5.png
+++ /dev/null
@@ -1,3 +0,0 @@
-�PNG
-
-���
IHDR���������8�R���PLTE�������֍����tRNS���0J���%IDAT�c��������~ �o`��Hb}�	�V#.n3�F����IEND�B`�
\ No newline at end of file
diff --git a/web/modules/ckeditor/vendor/plugins/showblocks/images/block_h6.png b/web/modules/ckeditor/vendor/plugins/showblocks/images/block_h6.png
deleted file mode 100644
index e67b982985ca30ae46dae8049c0f99a35dfc2930..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/plugins/showblocks/images/block_h6.png
+++ /dev/null
@@ -1,3 +0,0 @@
-�PNG
-
-���
IHDR���������8�R���PLTE�������֍����tRNS���0J���"IDAT�c���������@����C?��"���F#6���g����IEND�B`�
\ No newline at end of file
diff --git a/web/modules/ckeditor/vendor/plugins/showblocks/images/block_p.png b/web/modules/ckeditor/vendor/plugins/showblocks/images/block_p.png
deleted file mode 100644
index 63a582024687b942afac422016a0ac37e3e9d827..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/plugins/showblocks/images/block_p.png
+++ /dev/null
@@ -1,3 +0,0 @@
-�PNG
-
-���
IHDR���
��������4���PLTE�������֍����tRNS���0J���IDAT�c����>�`�^B �GA�r�4���#����IEND�B`�
\ No newline at end of file
diff --git a/web/modules/ckeditor/vendor/plugins/showblocks/images/block_pre.png b/web/modules/ckeditor/vendor/plugins/showblocks/images/block_pre.png
deleted file mode 100644
index 955a8689a13a394a9e715673d23750a6847eb617..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/plugins/showblocks/images/block_pre.png
+++ /dev/null
@@ -1,3 +0,0 @@
-�PNG
-
-���
IHDR���������ڣ�+���PLTE�������֍����tRNS���0J���'IDAT�c����a����a���o�a@V����'�фu����IEND�B`�
\ No newline at end of file
diff --git a/web/modules/ckeditor/vendor/plugins/sourcedialog/dialogs/sourcedialog.js b/web/modules/ckeditor/vendor/plugins/sourcedialog/dialogs/sourcedialog.js
deleted file mode 100644
index a061201faff883fbdfb875795d700605ee0ab30c..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/plugins/sourcedialog/dialogs/sourcedialog.js
+++ /dev/null
@@ -1,6 +0,0 @@
-/*
- Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
- For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
-*/
-CKEDITOR.dialog.add("sourcedialog",function(a){var b=CKEDITOR.document.getWindow().getViewPaneSize(),e=Math.min(b.width-70,800),b=b.height/1.5,d;return{title:a.lang.sourcedialog.title,minWidth:100,minHeight:100,onShow:function(){this.setValueOf("main","data",d=a.getData())},onOk:function(){function b(f,c){a.focus();a.setData(c,function(){f.hide();var b=a.createRange();b.moveToElementEditStart(a.editable());b.select()})}return function(){var a=this.getValueOf("main","data").replace(/\r/g,""),c=this;
-if(a===d)return!0;setTimeout(function(){b(c,a)});return!1}}(),contents:[{id:"main",label:a.lang.sourcedialog.title,elements:[{type:"textarea",id:"data",dir:"ltr",inputStyle:"cursor:auto;width:"+e+"px;height:"+b+"px;tab-size:4;text-align:left;","class":"cke_source"}]}]}});
\ No newline at end of file
diff --git a/web/modules/ckeditor/vendor/plugins/specialchar/dialogs/lang/_translationstatus.txt b/web/modules/ckeditor/vendor/plugins/specialchar/dialogs/lang/_translationstatus.txt
deleted file mode 100644
index 422ab45cbdb571c2ea4730287bde2fa61538bd12..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/plugins/specialchar/dialogs/lang/_translationstatus.txt
+++ /dev/null
@@ -1,20 +0,0 @@
-Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
-For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
-
-cs.js      Found: 118 Missing: 0
-cy.js      Found: 118 Missing: 0
-de.js      Found: 118 Missing: 0
-el.js      Found: 16 Missing: 102
-eo.js      Found: 118 Missing: 0
-et.js      Found: 31 Missing: 87
-fa.js      Found: 24 Missing: 94
-fi.js      Found: 23 Missing: 95
-fr.js      Found: 118 Missing: 0
-hr.js      Found: 23 Missing: 95
-it.js      Found: 118 Missing: 0
-nb.js      Found: 118 Missing: 0
-nl.js      Found: 118 Missing: 0
-no.js      Found: 118 Missing: 0
-tr.js      Found: 118 Missing: 0
-ug.js      Found: 39 Missing: 79
-zh-cn.js   Found: 118 Missing: 0
diff --git a/web/modules/ckeditor/vendor/plugins/specialchar/dialogs/lang/af.js b/web/modules/ckeditor/vendor/plugins/specialchar/dialogs/lang/af.js
deleted file mode 100644
index de40926b39e694ca66c162b011db9148eb5676e3..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/plugins/specialchar/dialogs/lang/af.js
+++ /dev/null
@@ -1,13 +0,0 @@
-/*
- Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
- For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
-*/
-CKEDITOR.plugins.setLang("specialchar","af",{euro:"Euroteken",lsquo:"Linker enkelkwotasie",rsquo:"Regter enkelkwotasie",ldquo:"Linker dubbelkwotasie",rdquo:"Regter dubbelkwotasie",ndash:"Kortkoppelteken",mdash:"Langkoppelteken",iexcl:"Omgekeerdeuitroepteken",cent:"Centteken",pound:"Pondteken",curren:"Geldeenheidteken",yen:"Yenteken",brvbar:"Gebreekte balk",sect:"Afdeelingsteken",uml:"Deelteken",copy:"Kopieregteken",ordf:"Vroulikekenteken",laquo:"Linkgeoorienteerde aanhaalingsteken",not:"Verbodeteken",
-reg:"Regestrasieteken",macr:"Lengteteken",deg:"Gradeteken",sup2:"Kwadraatteken",sup3:"Kubiekteken",acute:"Akuutaksentteken",micro:"Mikroteken",para:"Pilcrow sign",middot:"Middle dot",cedil:"Cedilla",sup1:"Superscript one",ordm:"Masculine ordinal indicator",raquo:"Right-pointing double angle quotation mark",frac14:"Vulgar fraction one quarter",frac12:"Vulgar fraction one half",frac34:"Vulgar fraction three quarters",iquest:"Inverted question mark",Agrave:"Latin capital letter A with grave accent",
-Aacute:"Latin capital letter A with acute accent",Acirc:"Latin capital letter A with circumflex",Atilde:"Latin capital letter A with tilde",Auml:"Latin capital letter A with diaeresis",Aring:"Latin capital letter A with ring above",AElig:"Latin capital letter Æ",Ccedil:"Latin capital letter C with cedilla",Egrave:"Latin capital letter E with grave accent",Eacute:"Latin capital letter E with acute accent",Ecirc:"Latin capital letter E with circumflex",Euml:"Latin capital letter E with diaeresis",Igrave:"Latin capital letter I with grave accent",
-Iacute:"Latin capital letter I with acute accent",Icirc:"Latin capital letter I with circumflex",Iuml:"Latin capital letter I with diaeresis",ETH:"Latin capital letter Eth",Ntilde:"Latin capital letter N with tilde",Ograve:"Latin capital letter O with grave accent",Oacute:"Latin capital letter O with acute accent",Ocirc:"Latin capital letter O with circumflex",Otilde:"Latin capital letter O with tilde",Ouml:"Latin capital letter O with diaeresis",times:"Multiplication sign",Oslash:"Latin capital letter O with stroke",
-Ugrave:"Latin capital letter U with grave accent",Uacute:"Latin capital letter U with acute accent",Ucirc:"Latin capital letter U with circumflex",Uuml:"Latin capital letter U with diaeresis",Yacute:"Latin capital letter Y with acute accent",THORN:"Latin capital letter Thorn",szlig:"Latin small letter sharp s",agrave:"Latin small letter a with grave accent",aacute:"Latin small letter a with acute accent",acirc:"Latin small letter a with circumflex",atilde:"Latin small letter a with tilde",auml:"Latin small letter a with diaeresis",
-aring:"Latin small letter a with ring above",aelig:"Latin small letter æ",ccedil:"Latin small letter c with cedilla",egrave:"Latin small letter e with grave accent",eacute:"Latin small letter e with acute accent",ecirc:"Latin small letter e with circumflex",euml:"Latin small letter e with diaeresis",igrave:"Latin small letter i with grave accent",iacute:"Latin small letter i with acute accent",icirc:"Latin small letter i with circumflex",iuml:"Latin small letter i with diaeresis",eth:"Latin small letter eth",
-ntilde:"Latin small letter n with tilde",ograve:"Latin small letter o with grave accent",oacute:"Latin small letter o with acute accent",ocirc:"Latin small letter o with circumflex",otilde:"Latin small letter o with tilde",ouml:"Latin small letter o with diaeresis",divide:"Division sign",oslash:"Latin small letter o with stroke",ugrave:"Latin small letter u with grave accent",uacute:"Latin small letter u with acute accent",ucirc:"Latin small letter u with circumflex",uuml:"Latin small letter u with diaeresis",
-yacute:"Latin small letter y with acute accent",thorn:"Latin small letter thorn",yuml:"Latin small letter y with diaeresis",OElig:"Latin capital ligature OE",oelig:"Latin small ligature oe",372:"Latin capital letter W with circumflex",374:"Latin capital letter Y with circumflex",373:"Latin small letter w with circumflex",375:"Latin small letter y with circumflex",sbquo:"Single low-9 quotation mark",8219:"Single high-reversed-9 quotation mark",bdquo:"Double low-9 quotation mark",hellip:"Horizontal ellipsis",
-trade:"Trade mark sign",9658:"Black right-pointing pointer",bull:"Bullet",rarr:"Rightwards arrow",rArr:"Rightwards double arrow",hArr:"Left right double arrow",diams:"Black diamond suit",asymp:"Almost equal to"});
\ No newline at end of file
diff --git a/web/modules/ckeditor/vendor/plugins/specialchar/dialogs/lang/ar.js b/web/modules/ckeditor/vendor/plugins/specialchar/dialogs/lang/ar.js
deleted file mode 100644
index d81a336923039f3f778ced8083594efe9245e1cc..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/plugins/specialchar/dialogs/lang/ar.js
+++ /dev/null
@@ -1,13 +0,0 @@
-/*
- Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
- For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
-*/
-CKEDITOR.plugins.setLang("specialchar","ar",{euro:"رمز اليورو",lsquo:"علامة تنصيص فردية علي اليسار",rsquo:"علامة تنصيص فردية علي اليمين",ldquo:"علامة تنصيص مزدوجة علي اليسار",rdquo:"علامة تنصيص مزدوجة علي اليمين",ndash:"En dash",mdash:"Em dash",iexcl:"علامة تعجب مقلوبة",cent:"رمز السنت",pound:"رمز الاسترليني",curren:"رمز العملة",yen:"رمز الين",brvbar:"شريط مقطوع",sect:"رمز القسم",uml:"Diaeresis",copy:"علامة حقوق الطبع",ordf:"Feminine ordinal indicator",laquo:"Left-pointing double angle quotation mark",
-not:"ليست علامة",reg:"علامة مسجّلة",macr:"Macron",deg:"Degree sign",sup2:"Superscript two",sup3:"Superscript three",acute:"Acute accent",micro:"Micro sign",para:"Pilcrow sign",middot:"Middle dot",cedil:"Cedilla",sup1:"Superscript one",ordm:"Masculine ordinal indicator",raquo:"Right-pointing double angle quotation mark",frac14:"Vulgar fraction one quarter",frac12:"Vulgar fraction one half",frac34:"Vulgar fraction three quarters",iquest:"علامة الإستفهام غير صحيحة",Agrave:"Latin capital letter A with grave accent",
-Aacute:"Latin capital letter A with acute accent",Acirc:"Latin capital letter A with circumflex",Atilde:"Latin capital letter A with tilde",Auml:"Latin capital letter A with diaeresis",Aring:"Latin capital letter A with ring above",AElig:"Latin capital letter Æ",Ccedil:"Latin capital letter C with cedilla",Egrave:"Latin capital letter E with grave accent",Eacute:"Latin capital letter E with acute accent",Ecirc:"Latin capital letter E with circumflex",Euml:"Latin capital letter E with diaeresis",Igrave:"Latin capital letter I with grave accent",
-Iacute:"Latin capital letter I with acute accent",Icirc:"Latin capital letter I with circumflex",Iuml:"Latin capital letter I with diaeresis",ETH:"Latin capital letter Eth",Ntilde:"Latin capital letter N with tilde",Ograve:"Latin capital letter O with grave accent",Oacute:"Latin capital letter O with acute accent",Ocirc:"Latin capital letter O with circumflex",Otilde:"Latin capital letter O with tilde",Ouml:"Latin capital letter O with diaeresis",times:"Multiplication sign",Oslash:"Latin capital letter O with stroke",
-Ugrave:"Latin capital letter U with grave accent",Uacute:"Latin capital letter U with acute accent",Ucirc:"Latin capital letter U with circumflex",Uuml:"Latin capital letter U with diaeresis",Yacute:"Latin capital letter Y with acute accent",THORN:"Latin capital letter Thorn",szlig:"Latin small letter sharp s",agrave:"Latin small letter a with grave accent",aacute:"Latin small letter a with acute accent",acirc:"Latin small letter a with circumflex",atilde:"Latin small letter a with tilde",auml:"Latin small letter a with diaeresis",
-aring:"Latin small letter a with ring above",aelig:"Latin small letter æ",ccedil:"Latin small letter c with cedilla",egrave:"Latin small letter e with grave accent",eacute:"Latin small letter e with acute accent",ecirc:"Latin small letter e with circumflex",euml:"Latin small letter e with diaeresis",igrave:"Latin small letter i with grave accent",iacute:"Latin small letter i with acute accent",icirc:"Latin small letter i with circumflex",iuml:"Latin small letter i with diaeresis",eth:"Latin small letter eth",
-ntilde:"Latin small letter n with tilde",ograve:"Latin small letter o with grave accent",oacute:"Latin small letter o with acute accent",ocirc:"Latin small letter o with circumflex",otilde:"Latin small letter o with tilde",ouml:"Latin small letter o with diaeresis",divide:"Division sign",oslash:"Latin small letter o with stroke",ugrave:"Latin small letter u with grave accent",uacute:"Latin small letter u with acute accent",ucirc:"Latin small letter u with circumflex",uuml:"Latin small letter u with diaeresis",
-yacute:"Latin small letter y with acute accent",thorn:"Latin small letter thorn",yuml:"Latin small letter y with diaeresis",OElig:"Latin capital ligature OE",oelig:"Latin small ligature oe",372:"Latin capital letter W with circumflex",374:"Latin capital letter Y with circumflex",373:"Latin small letter w with circumflex",375:"Latin small letter y with circumflex",sbquo:"Single low-9 quotation mark",8219:"Single high-reversed-9 quotation mark",bdquo:"Double low-9 quotation mark",hellip:"Horizontal ellipsis",
-trade:"Trade mark sign",9658:"Black right-pointing pointer",bull:"Bullet",rarr:"Rightwards arrow",rArr:"Rightwards double arrow",hArr:"Left right double arrow",diams:"Black diamond suit",asymp:"Almost equal to"});
\ No newline at end of file
diff --git a/web/modules/ckeditor/vendor/plugins/specialchar/dialogs/lang/az.js b/web/modules/ckeditor/vendor/plugins/specialchar/dialogs/lang/az.js
deleted file mode 100644
index f41941f08d1bbc3ce7f9cb81bb02e6d69948d0d0..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/plugins/specialchar/dialogs/lang/az.js
+++ /dev/null
@@ -1,10 +0,0 @@
-/*
- Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
- For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
-*/
-CKEDITOR.plugins.setLang("specialchar","az",{euro:"Avropa valyuta işarəsi",lsquo:"Sol tək dırnaq işarəsi",rsquo:"Sağ tək dırnaq işarəsi",ldquo:"Sol cüt dırnaq işarəsi",rdquo:"Sağ cüt dırnaq işarəsi",ndash:"Çıxma işarəsi",mdash:"Tire",iexcl:"Çevrilmiş nida işarəsi",cent:"Sent işarəsi",pound:"Funt sterlinq işarəsi",curren:"Valyuta işarəsi",yen:"İena işarəsi",brvbar:"Sınmış zolaq",sect:"Paraqraf işarəsi",uml:"Umlyaut",copy:"Müəllif hüquqları haqqında işarəsi",ordf:"Qadın sıra indikatoru (a)",laquo:"Sola göstərən cüt bucaqlı dırnaq",
-not:"QEYRİ işarəsi",reg:"Qeyd olunmuş işarəsi",macr:"Makron",deg:"Dərəcə işarəsi",sup2:"Yuxarı indeks 2",sup3:"Yuxarı indeks 3",acute:"Vurğu işarəsi",micro:"Mikro işarəsi",para:"Abzas işarəsi",middot:"Orta nöqtə",cedil:"Tsedilla işarəsi",sup1:"Yuxarı indeks 1",ordm:"Kişi say indikatoru (o)",raquo:"Sağa göstərən cüt bucaqlı dırnaq",frac14:"Dörddə bir hissə kəsri",frac12:"Bir yarım kəsri",frac34:"Dörddə üç hissə kəsri",iquest:"Çevrilmiş sual işarəsi",Agrave:"Soldan vurğu ilə A",Aacute:"Vurğu ilə A",
-Acirc:"Dam işarəsi ilə A",Atilde:"Tilda işarəsi ilə A",Auml:"Umlyaut ilə A",Aring:"Dairəli A",AElig:"Æ hərfi",Ccedil:"Tsedilla ilə C",Egrave:"Soldan vurğu ilə E",Eacute:"Vurğu ilə E",Ecirc:"Dam işarəsi ilə E",Euml:"Umlyaut ilə E",Igrave:"Soldan vurğu ilə I",Iacute:"Vurğu ilə I",Icirc:"Dam işarəsi ilə I",Iuml:"Umlyaut ilə I",ETH:"Eth latin hərfi",Ntilde:"Tilda işarəsi ilə N",Ograve:"Soldan vurğu ilə O",Oacute:"Vurğu ilə O",Ocirc:"Dam işarəsi ilə E",Otilde:"Tilda işarəsi ilə O",Ouml:"Umlyaut ilə O",
-times:"Vurma işarəsi",Oslash:"Üstxəttli O",Ugrave:"Soldan vurğu ilə U",Uacute:"Vurğu ilə U",Ucirc:"Dam işarəsi ilə U",Uuml:"Umlyaut ilə U",Yacute:"Vurğu ilə Y",THORN:"Thorn hərfi",szlig:"İti s kiçik hərfi",agrave:"Soldan vurğu ilə a",aacute:"Vurğu ilə a",acirc:"Dam işarəsi ilə a",atilde:"Tilda işarəsi ilə a",auml:"Umlyaut ilə a",aring:"Dairəli a",aelig:"æ hərfi",ccedil:"ç hərfi",egrave:"Soldan vurğu ilə e",eacute:"Vurğu ilə e",ecirc:"Dam işarəsi ilə e",euml:"Umlyaut ilə e",igrave:"Soldan vurğu ilə i",
-iacute:"Vurğu ilə i",icirc:"Dam işarəsi ilə i",iuml:"Umlyaut ilə i",eth:"eth kiçik hərfi",ntilde:"Tilda işarəsi ilə n",ograve:"Soldan vurğu ilə o",oacute:"Vurğu ilə o",ocirc:"Dam işarəsi ilə o",otilde:"Tilda işarəsi ilə o",ouml:"Umlyaut ilə o",divide:"Bölünmə işarəsi",oslash:"Üstxəttli o",ugrave:"Soldan vurğu ilə u",uacute:"Vurğu ilə u",ucirc:"Dam işarəsi ilə u",uuml:"Umlyaut ilə u",yacute:"Vurğu ilə y",thorn:"Thorn kiçik hərfi",yuml:"Umlyaut ilə y",OElig:"OE ligaturası",oelig:"oe ligaturası",372:"Dam işarəsi ilə W",
-374:"Dam işarəsi ilə Y",373:"Dam işarəsi ilə w",375:"Dam işarəsi ilə y",sbquo:"Aşağı dırnaq",8219:"Tək yuxarı çevrilmiş dırnaq",bdquo:"Aşağı cütlü dırnaqlar",hellip:"Üfüqi ellips",trade:"Əmtəə nişanı",9658:"Sağa göstərici",bull:"Marker",rarr:"Sağa istiqamətləndirən ox",rArr:"Sağa istiqamətləndirən cütlü ox",hArr:"Hərtərəfli ox",diams:"Qara kərpic",asymp:"Təxmini barabər"});
\ No newline at end of file
diff --git a/web/modules/ckeditor/vendor/plugins/specialchar/dialogs/lang/bg.js b/web/modules/ckeditor/vendor/plugins/specialchar/dialogs/lang/bg.js
deleted file mode 100644
index 9635a0007caad4394a0fcd0865c995d933d85223..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/plugins/specialchar/dialogs/lang/bg.js
+++ /dev/null
@@ -1,13 +0,0 @@
-/*
- Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
- For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
-*/
-CKEDITOR.plugins.setLang("specialchar","bg",{euro:"Евро знак",lsquo:"Лява маркировка за цитат",rsquo:"Дясна маркировка за цитат",ldquo:"Лява двойна кавичка за цитат",rdquo:"Дясна двойна кавичка за цитат",ndash:"\\\\",mdash:"/",iexcl:"Обърната питанка",cent:"Знак за цент",pound:"Знак за паунд",curren:"Валутен знак",yen:"Знак за йена",brvbar:"Прекъсната линия",sect:"Знак за секция",uml:"Diaeresis",copy:"Знак за Copyright",ordf:"Женски ординарен индикатор",laquo:"Знак с двоен ъгъл за означаване на лява посока",
-not:"Not sign",reg:"Registered sign",macr:"Macron",deg:"Degree sign",sup2:"Superscript two",sup3:"Superscript three",acute:"Acute accent",micro:"Micro sign",para:"Pilcrow sign",middot:"Middle dot",cedil:"Cedilla",sup1:"Superscript one",ordm:"Masculine ordinal indicator",raquo:"Right-pointing double angle quotation mark",frac14:"Vulgar fraction one quarter",frac12:"Vulgar fraction one half",frac34:"Vulgar fraction three quarters",iquest:"Inverted question mark",Agrave:"Latin capital letter A with grave accent",
-Aacute:"Latin capital letter A with acute accent",Acirc:"Latin capital letter A with circumflex",Atilde:"Latin capital letter A with tilde",Auml:"Latin capital letter A with diaeresis",Aring:"Latin capital letter A with ring above",AElig:"Latin capital letter Æ",Ccedil:"Latin capital letter C with cedilla",Egrave:"Latin capital letter E with grave accent",Eacute:"Latin capital letter E with acute accent",Ecirc:"Latin capital letter E with circumflex",Euml:"Latin capital letter E with diaeresis",Igrave:"Latin capital letter I with grave accent",
-Iacute:"Latin capital letter I with acute accent",Icirc:"Latin capital letter I with circumflex",Iuml:"Latin capital letter I with diaeresis",ETH:"Latin capital letter Eth",Ntilde:"Latin capital letter N with tilde",Ograve:"Latin capital letter O with grave accent",Oacute:"Latin capital letter O with acute accent",Ocirc:"Latin capital letter O with circumflex",Otilde:"Latin capital letter O with tilde",Ouml:"Latin capital letter O with diaeresis",times:"Multiplication sign",Oslash:"Latin capital letter O with stroke",
-Ugrave:"Latin capital letter U with grave accent",Uacute:"Latin capital letter U with acute accent",Ucirc:"Latin capital letter U with circumflex",Uuml:"Latin capital letter U with diaeresis",Yacute:"Latin capital letter Y with acute accent",THORN:"Latin capital letter Thorn",szlig:"Latin small letter sharp s",agrave:"Latin small letter a with grave accent",aacute:"Latin small letter a with acute accent",acirc:"Latin small letter a with circumflex",atilde:"Latin small letter a with tilde",auml:"Latin small letter a with diaeresis",
-aring:"Latin small letter a with ring above",aelig:"Latin small letter æ",ccedil:"Latin small letter c with cedilla",egrave:"Latin small letter e with grave accent",eacute:"Latin small letter e with acute accent",ecirc:"Latin small letter e with circumflex",euml:"Latin small letter e with diaeresis",igrave:"Latin small letter i with grave accent",iacute:"Latin small letter i with acute accent",icirc:"Latin small letter i with circumflex",iuml:"Latin small letter i with diaeresis",eth:"Latin small letter eth",
-ntilde:"Latin small letter n with tilde",ograve:"Latin small letter o with grave accent",oacute:"Latin small letter o with acute accent",ocirc:"Latin small letter o with circumflex",otilde:"Latin small letter o with tilde",ouml:"Latin small letter o with diaeresis",divide:"Division sign",oslash:"Latin small letter o with stroke",ugrave:"Latin small letter u with grave accent",uacute:"Latin small letter u with acute accent",ucirc:"Latin small letter u with circumflex",uuml:"Latin small letter u with diaeresis",
-yacute:"Latin small letter y with acute accent",thorn:"Latin small letter thorn",yuml:"Latin small letter y with diaeresis",OElig:"Latin capital ligature OE",oelig:"Latin small ligature oe",372:"Latin capital letter W with circumflex",374:"Latin capital letter Y with circumflex",373:"Latin small letter w with circumflex",375:"Latin small letter y with circumflex",sbquo:"Single low-9 quotation mark",8219:"Single high-reversed-9 quotation mark",bdquo:"Double low-9 quotation mark",hellip:"Horizontal ellipsis",
-trade:"Trade mark sign",9658:"Black right-pointing pointer",bull:"Bullet",rarr:"Rightwards arrow",rArr:"Rightwards double arrow",hArr:"Left right double arrow",diams:"Black diamond suit",asymp:"Almost equal to"});
\ No newline at end of file
diff --git a/web/modules/ckeditor/vendor/plugins/specialchar/dialogs/lang/ca.js b/web/modules/ckeditor/vendor/plugins/specialchar/dialogs/lang/ca.js
deleted file mode 100644
index 1bea341ac13d8446525ae9abda226dc514750be0..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/plugins/specialchar/dialogs/lang/ca.js
+++ /dev/null
@@ -1,14 +0,0 @@
-/*
- Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
- For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
-*/
-CKEDITOR.plugins.setLang("specialchar","ca",{euro:"Símbol d'euro",lsquo:"Signe de cometa simple esquerra",rsquo:"Signe de cometa simple dreta",ldquo:"Signe de cometa doble esquerra",rdquo:"Signe de cometa doble dreta",ndash:"Guió",mdash:"Guió baix",iexcl:"Signe d'exclamació inversa",cent:"Símbol de percentatge",pound:"Símbol de lliura",curren:"Símbol de moneda",yen:"Símbol de Yen",brvbar:"Barra trencada",sect:"Símbol de secció",uml:"Dièresi",copy:"Símbol de Copyright",ordf:"Indicador ordinal femení",
-laquo:"Signe de cometes angulars esquerra",not:"Símbol de negació",reg:"Símbol registrat",macr:"Macron",deg:"Símbol de grau",sup2:"Superíndex dos",sup3:"Superíndex tres",acute:"Accent agut",micro:"Símbol de micro",para:"Símbol de calderó",middot:"Punt volat",cedil:"Ce trencada",sup1:"Superíndex u",ordm:"Indicador ordinal masculí",raquo:"Signe de cometes angulars dreta",frac14:"Fracció vulgar un quart",frac12:"Fracció vulgar una meitat",frac34:"Fracció vulgar tres quarts",iquest:"Símbol d'interrogació invertit",
-Agrave:"Lletra majúscula llatina A amb accent greu",Aacute:"Lletra majúscula llatina A amb accent agut",Acirc:"Lletra majúscula llatina A amb circumflex",Atilde:"Lletra majúscula llatina A amb titlla",Auml:"Lletra majúscula llatina A amb dièresi",Aring:"Lletra majúscula llatina A amb anell superior",AElig:"Lletra majúscula llatina Æ",Ccedil:"Lletra majúscula llatina C amb ce trencada",Egrave:"Lletra majúscula llatina E amb accent greu",Eacute:"Lletra majúscula llatina E amb accent agut",Ecirc:"Lletra majúscula llatina E amb circumflex",
-Euml:"Lletra majúscula llatina E amb dièresi",Igrave:"Lletra majúscula llatina I amb accent greu",Iacute:"Lletra majúscula llatina I amb accent agut",Icirc:"Lletra majúscula llatina I amb circumflex",Iuml:"Lletra majúscula llatina I amb dièresi",ETH:"Lletra majúscula llatina Eth",Ntilde:"Lletra majúscula llatina N amb titlla",Ograve:"Lletra majúscula llatina O amb accent greu",Oacute:"Lletra majúscula llatina O amb accent agut",Ocirc:"Lletra majúscula llatina O amb circumflex",Otilde:"Lletra majúscula llatina O amb titlla",
-Ouml:"Lletra majúscula llatina O amb dièresi",times:"Símbol de multiplicació",Oslash:"Lletra majúscula llatina O amb barra",Ugrave:"Lletra majúscula llatina U amb accent greu",Uacute:"Lletra majúscula llatina U amb accent agut",Ucirc:"Lletra majúscula llatina U amb circumflex",Uuml:"Lletra majúscula llatina U amb dièresi",Yacute:"Lletra majúscula llatina Y amb accent agut",THORN:"Lletra majúscula llatina Thorn",szlig:"Lletra minúscula llatina sharp s",agrave:"Lletra minúscula llatina a amb accent greu",
-aacute:"Lletra minúscula llatina a amb accent agut",acirc:"Lletra minúscula llatina a amb circumflex",atilde:"Lletra minúscula llatina a amb titlla",auml:"Lletra minúscula llatina a amb dièresi",aring:"Lletra minúscula llatina a amb anell superior",aelig:"Lletra minúscula llatina æ",ccedil:"Lletra minúscula llatina c amb ce trencada",egrave:"Lletra minúscula llatina e amb accent greu",eacute:"Lletra minúscula llatina e amb accent agut",ecirc:"Lletra minúscula llatina e amb circumflex",euml:"Lletra minúscula llatina e amb dièresi",
-igrave:"Lletra minúscula llatina i amb accent greu",iacute:"Lletra minúscula llatina i amb accent agut",icirc:"Lletra minúscula llatina i amb circumflex",iuml:"Lletra minúscula llatina i amb dièresi",eth:"Lletra minúscula llatina eth",ntilde:"Lletra minúscula llatina n amb titlla",ograve:"Lletra minúscula llatina o amb accent greu",oacute:"Lletra minúscula llatina o amb accent agut",ocirc:"Lletra minúscula llatina o amb circumflex",otilde:"Lletra minúscula llatina o amb titlla",ouml:"Lletra minúscula llatina o amb dièresi",
-divide:"Símbol de divisió",oslash:"Lletra minúscula llatina o amb barra",ugrave:"Lletra minúscula llatina u amb accent greu",uacute:"Lletra minúscula llatina u amb accent agut",ucirc:"Lletra minúscula llatina u amb circumflex",uuml:"Lletra minúscula llatina u amb dièresi",yacute:"Lletra minúscula llatina y amb accent agut",thorn:"Lletra minúscula llatina thorn",yuml:"Lletra minúscula llatina y amb dièresi",OElig:"Lligadura majúscula llatina OE",oelig:"Lligadura minúscula llatina oe",372:"Lletra majúscula llatina W amb circumflex",
-374:"Lletra majúscula llatina Y amb circumflex",373:"Lletra minúscula llatina w amb circumflex",375:"Lletra minúscula llatina y amb circumflex",sbquo:"Signe de cita simple baixa-9",8219:"Signe de cita simple alta-invertida-9",bdquo:"Signe de cita doble baixa-9",hellip:"Punts suspensius",trade:"Símbol de marca registrada",9658:"Punter negre apuntant cap a la dreta",bull:"Vinyeta",rarr:"Fletxa cap a la dreta",rArr:"Doble fletxa cap a la dreta",hArr:"Doble fletxa esquerra dreta",diams:"Vestit negre diamant",
-asymp:"Gairebé igual a"});
\ No newline at end of file
diff --git a/web/modules/ckeditor/vendor/plugins/specialchar/dialogs/lang/cs.js b/web/modules/ckeditor/vendor/plugins/specialchar/dialogs/lang/cs.js
deleted file mode 100644
index c3414236bd06b2e2c3c8f5b6a55e4e4037409623..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/plugins/specialchar/dialogs/lang/cs.js
+++ /dev/null
@@ -1,13 +0,0 @@
-/*
- Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
- For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
-*/
-CKEDITOR.plugins.setLang("specialchar","cs",{euro:"Znak eura",lsquo:"Počáteční uvozovka jednoduchá",rsquo:"Koncová uvozovka jednoduchá",ldquo:"Počáteční uvozovka dvojitá",rdquo:"Koncová uvozovka dvojitá",ndash:"En pomlčka",mdash:"Em pomlčka",iexcl:"Obrácený vykřičník",cent:"Znak centu",pound:"Znak libry",curren:"Znak měny",yen:"Znak jenu",brvbar:"Přerušená svislá čára",sect:"Znak oddílu",uml:"Přehláska",copy:"Znak copyrightu",ordf:"Ženský indikátor rodu",laquo:"Znak dvojitých lomených uvozovek vlevo",
-not:"Logistický zápor",reg:"Znak registrace",macr:"Pomlčka nad",deg:"Znak stupně",sup2:"Dvojka jako horní index",sup3:"Trojka jako horní index",acute:"Čárka nad vpravo",micro:"Znak mikro",para:"Znak odstavce",middot:"Tečka uprostřed",cedil:"Ocásek vlevo",sup1:"Jednička jako horní index",ordm:"Mužský indikátor rodu",raquo:"Znak dvojitých lomených uvozovek vpravo",frac14:"Obyčejný zlomek jedna čtvrtina",frac12:"Obyčejný zlomek jedna polovina",frac34:"Obyčejný zlomek tři čtvrtiny",iquest:"Znak obráceného otazníku",
-Agrave:"Velké písmeno latinky A s čárkou nad vlevo",Aacute:"Velké písmeno latinky A s čárkou nad vpravo",Acirc:"Velké písmeno latinky A s vokáněm",Atilde:"Velké písmeno latinky A s tildou",Auml:"Velké písmeno latinky A s dvěma tečkami",Aring:"Velké písmeno latinky A s kroužkem nad",AElig:"Velké písmeno latinky Æ",Ccedil:"Velké písmeno latinky C s ocáskem vlevo",Egrave:"Velké písmeno latinky E s čárkou nad vlevo",Eacute:"Velké písmeno latinky E s čárkou nad vpravo",Ecirc:"Velké písmeno latinky E s vokáněm",
-Euml:"Velké písmeno latinky E s dvěma tečkami",Igrave:"Velké písmeno latinky I s čárkou nad vlevo",Iacute:"Velké písmeno latinky I s čárkou nad vpravo",Icirc:"Velké písmeno latinky I s vokáněm",Iuml:"Velké písmeno latinky I s dvěma tečkami",ETH:"Velké písmeno latinky Eth",Ntilde:"Velké písmeno latinky N s tildou",Ograve:"Velké písmeno latinky O s čárkou nad vlevo",Oacute:"Velké písmeno latinky O s čárkou nad vpravo",Ocirc:"Velké písmeno latinky O s vokáněm",Otilde:"Velké písmeno latinky O s tildou",
-Ouml:"Velké písmeno latinky O s dvěma tečkami",times:"Znak násobení",Oslash:"Velké písmeno latinky O přeškrtnuté",Ugrave:"Velké písmeno latinky U s čárkou nad vlevo",Uacute:"Velké písmeno latinky U s čárkou nad vpravo",Ucirc:"Velké písmeno latinky U s vokáněm",Uuml:"Velké písmeno latinky U s dvěma tečkami",Yacute:"Velké písmeno latinky Y s čárkou nad vpravo",THORN:"Velké písmeno latinky Thorn",szlig:"Malé písmeno latinky ostré s",agrave:"Malé písmeno latinky a s čárkou nad vlevo",aacute:"Malé písmeno latinky a s čárkou nad vpravo",
-acirc:"Malé písmeno latinky a s vokáněm",atilde:"Malé písmeno latinky a s tildou",auml:"Malé písmeno latinky a s dvěma tečkami",aring:"Malé písmeno latinky a s kroužkem nad",aelig:"Malé písmeno latinky ae",ccedil:"Malé písmeno latinky c s ocáskem vlevo",egrave:"Malé písmeno latinky e s čárkou nad vlevo",eacute:"Malé písmeno latinky e s čárkou nad vpravo",ecirc:"Malé písmeno latinky e s vokáněm",euml:"Malé písmeno latinky e s dvěma tečkami",igrave:"Malé písmeno latinky i s čárkou nad vlevo",iacute:"Malé písmeno latinky i s čárkou nad vpravo",
-icirc:"Malé písmeno latinky i s vokáněm",iuml:"Malé písmeno latinky i s dvěma tečkami",eth:"Malé písmeno latinky eth",ntilde:"Malé písmeno latinky n s tildou",ograve:"Malé písmeno latinky o s čárkou nad vlevo",oacute:"Malé písmeno latinky o s čárkou nad vpravo",ocirc:"Malé písmeno latinky o s vokáněm",otilde:"Malé písmeno latinky o s tildou",ouml:"Malé písmeno latinky o s dvěma tečkami",divide:"Znak dělení",oslash:"Malé písmeno latinky o přeškrtnuté",ugrave:"Malé písmeno latinky u s čárkou nad vlevo",
-uacute:"Malé písmeno latinky u s čárkou nad vpravo",ucirc:"Malé písmeno latinky u s vokáněm",uuml:"Malé písmeno latinky u s dvěma tečkami",yacute:"Malé písmeno latinky y s čárkou nad vpravo",thorn:"Malé písmeno latinky thorn",yuml:"Malé písmeno latinky y s dvěma tečkami",OElig:"Velká ligatura latinky OE",oelig:"Malá ligatura latinky OE",372:"Velké písmeno latinky W s vokáněm",374:"Velké písmeno latinky Y s vokáněm",373:"Malé písmeno latinky w s vokáněm",375:"Malé písmeno latinky y s vokáněm",sbquo:"Dolní 9 uvozovka jednoduchá",
-8219:"Horní obrácená 9 uvozovka jednoduchá",bdquo:"Dolní 9 uvozovka dvojitá",hellip:"Trojtečkový úvod",trade:"Obchodní značka",9658:"Černý ukazatel směřující vpravo",bull:"Kolečko",rarr:"Šipka vpravo",rArr:"Dvojitá šipka vpravo",hArr:"Dvojitá šipka vlevo a vpravo",diams:"Černé piky",asymp:"Téměř se rovná"});
\ No newline at end of file
diff --git a/web/modules/ckeditor/vendor/plugins/specialchar/dialogs/lang/cy.js b/web/modules/ckeditor/vendor/plugins/specialchar/dialogs/lang/cy.js
deleted file mode 100644
index 8e243481f5e5eecfeccdbe336d89e32bd46e0b5a..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/plugins/specialchar/dialogs/lang/cy.js
+++ /dev/null
@@ -1,14 +0,0 @@
-/*
- Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
- For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
-*/
-CKEDITOR.plugins.setLang("specialchar","cy",{euro:"Arwydd yr Ewro",lsquo:"Dyfynnod chwith unigol",rsquo:"Dyfynnod dde unigol",ldquo:"Dyfynnod chwith dwbl",rdquo:"Dyfynnod dde dwbl",ndash:"Cysylltnod en",mdash:"Cysylltnod em",iexcl:"Ebychnod gwrthdro",cent:"Arwydd sent",pound:"Arwydd punt",curren:"Arwydd arian cyfred",yen:"Arwydd yen",brvbar:"Bar toriedig",sect:"Arwydd adran",uml:"Didolnod",copy:"Arwydd hawlfraint",ordf:"Dangosydd benywaidd",laquo:"Dyfynnod dwbl ar ongl i'r chwith",not:"Arwydd Nid",
-reg:"Arwydd cofrestredig",macr:"Macron",deg:"Arwydd gradd",sup2:"Dau uwchsgript",sup3:"Tri uwchsgript",acute:"Acen ddyrchafedig",micro:"Arwydd micro",para:"Arwydd pilcrow",middot:"Dot canol",cedil:"Sedila",sup1:"Un uwchsgript",ordm:"Dangosydd gwrywaidd",raquo:"Dyfynnod dwbl ar ongl i'r dde",frac14:"Ffracsiwn cyffredin un cwarter",frac12:"Ffracsiwn cyffredin un hanner",frac34:"Ffracsiwn cyffredin tri chwarter",iquest:"Marc cwestiwn gwrthdroëdig",Agrave:"Priflythyren A Lladinaidd gydag acen ddisgynedig",
-Aacute:"Priflythyren A Lladinaidd gydag acen ddyrchafedig",Acirc:"Priflythyren A Lladinaidd gydag acen grom",Atilde:"Priflythyren A Lladinaidd gyda thild",Auml:"Priflythyren A Lladinaidd gyda didolnod",Aring:"Priflythyren A Lladinaidd gyda chylch uwchben",AElig:"Priflythyren Æ Lladinaidd",Ccedil:"Priflythyren C Lladinaidd gyda sedila",Egrave:"Priflythyren E Lladinaidd gydag acen ddisgynedig",Eacute:"Priflythyren E Lladinaidd gydag acen ddyrchafedig",Ecirc:"Priflythyren E Lladinaidd gydag acen grom",
-Euml:"Priflythyren E Lladinaidd gyda didolnod",Igrave:"Priflythyren I Lladinaidd gydag acen ddisgynedig",Iacute:"Priflythyren I Lladinaidd gydag acen ddyrchafedig",Icirc:"Priflythyren I Lladinaidd gydag acen grom",Iuml:"Priflythyren I Lladinaidd gyda didolnod",ETH:"Priflythyren Eth",Ntilde:"Priflythyren N Lladinaidd gyda thild",Ograve:"Priflythyren O Lladinaidd gydag acen ddisgynedig",Oacute:"Priflythyren O Lladinaidd gydag acen ddyrchafedig",Ocirc:"Priflythyren O Lladinaidd gydag acen grom",Otilde:"Priflythyren O Lladinaidd gyda thild",
-Ouml:"Priflythyren O Lladinaidd gyda didolnod",times:"Arwydd lluosi",Oslash:"Priflythyren O Lladinaidd gyda strôc",Ugrave:"Priflythyren U Lladinaidd gydag acen ddisgynedig",Uacute:"Priflythyren U Lladinaidd gydag acen ddyrchafedig",Ucirc:"Priflythyren U Lladinaidd gydag acen grom",Uuml:"Priflythyren U Lladinaidd gyda didolnod",Yacute:"Priflythyren Y Lladinaidd gydag acen ddyrchafedig",THORN:"Priflythyren Thorn",szlig:"Llythyren s fach Lladinaidd siarp ",agrave:"Llythyren a fach Lladinaidd gydag acen ddisgynedig",
-aacute:"Llythyren a fach Lladinaidd gydag acen ddyrchafedig",acirc:"Llythyren a fach Lladinaidd gydag acen grom",atilde:"Llythyren a fach Lladinaidd gyda thild",auml:"Llythyren a fach Lladinaidd gyda didolnod",aring:"Llythyren a fach Lladinaidd gyda chylch uwchben",aelig:"Llythyren æ fach Lladinaidd",ccedil:"Llythyren c fach Lladinaidd gyda sedila",egrave:"Llythyren e fach Lladinaidd gydag acen ddisgynedig",eacute:"Llythyren e fach Lladinaidd gydag acen ddyrchafedig",ecirc:"Llythyren e fach Lladinaidd gydag acen grom",
-euml:"Llythyren e fach Lladinaidd gyda didolnod",igrave:"Llythyren i fach Lladinaidd gydag acen ddisgynedig",iacute:"Llythyren i fach Lladinaidd gydag acen ddyrchafedig",icirc:"Llythyren i fach Lladinaidd gydag acen grom",iuml:"Llythyren i fach Lladinaidd gyda didolnod",eth:"Llythyren eth fach",ntilde:"Llythyren n fach Lladinaidd gyda thild",ograve:"Llythyren o fach Lladinaidd gydag acen ddisgynedig",oacute:"Llythyren o fach Lladinaidd gydag acen ddyrchafedig",ocirc:"Llythyren o fach Lladinaidd gydag acen grom",
-otilde:"Llythyren o fach Lladinaidd gyda thild",ouml:"Llythyren o fach Lladinaidd gyda didolnod",divide:"Arwydd rhannu",oslash:"Llythyren o fach Lladinaidd gyda strôc",ugrave:"Llythyren u fach Lladinaidd gydag acen ddisgynedig",uacute:"Llythyren u fach Lladinaidd gydag acen ddyrchafedig",ucirc:"Llythyren u fach Lladinaidd gydag acen grom",uuml:"Llythyren u fach Lladinaidd gyda didolnod",yacute:"Llythyren y fach Lladinaidd gydag acen ddisgynedig",thorn:"Llythyren o fach Lladinaidd gyda strôc",yuml:"Llythyren y fach Lladinaidd gyda didolnod",
-OElig:"Priflythyren cwlwm OE Lladinaidd ",oelig:"Priflythyren cwlwm oe Lladinaidd ",372:"Priflythyren W gydag acen grom",374:"Priflythyren Y gydag acen grom",373:"Llythyren w fach gydag acen grom",375:"Llythyren y fach gydag acen grom",sbquo:"Dyfynnod sengl 9-isel",8219:"Dyfynnod sengl 9-uchel cildro",bdquo:"Dyfynnod dwbl 9-isel",hellip:"Coll geiriau llorweddol",trade:"Arwydd marc masnachol",9658:"Pwyntydd du i'r dde",bull:"Bwled",rarr:"Saeth i'r dde",rArr:"Saeth ddwbl i'r dde",hArr:"Saeth ddwbl i'r chwith",
-diams:"Siwt diemwnt du",asymp:"Bron yn hafal iddo"});
\ No newline at end of file
diff --git a/web/modules/ckeditor/vendor/plugins/specialchar/dialogs/lang/da.js b/web/modules/ckeditor/vendor/plugins/specialchar/dialogs/lang/da.js
deleted file mode 100644
index c1d3b37a0544abc59bb19fad93e513c8fbf913a1..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/plugins/specialchar/dialogs/lang/da.js
+++ /dev/null
@@ -1,11 +0,0 @@
-/*
- Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
- For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
-*/
-CKEDITOR.plugins.setLang("specialchar","da",{euro:"Euro-tegn",lsquo:"Venstre enkelt anførselstegn",rsquo:"Højre enkelt anførselstegn",ldquo:"Venstre dobbelt anførselstegn",rdquo:"Højre dobbelt anførselstegn",ndash:"Bindestreg",mdash:"Tankestreg",iexcl:"Omvendt udråbstegn",cent:"Cent-tegn",pound:"Pund-tegn",curren:"Valuta-tegn",yen:"Yen-tegn",brvbar:"Brudt streg",sect:"Paragraftegn",uml:"Umlaut",copy:"Copyright-tegn",ordf:"Feminin ordinal indikator",laquo:"Venstre dobbel citations-vinkel",not:"Negation",
-reg:"Registreret varemærke tegn",macr:"Macron",deg:"Grad-tegn",sup2:"Superscript to",sup3:"Superscript tre",acute:"Prim-tegn",micro:"Mikro-tegn",para:"Pilcrow-tegn",middot:"Punkt-tegn",cedil:"Cedille",sup1:"Superscript et",ordm:"Maskulin ordinal indikator",raquo:"Højre dobbel citations-vinkel",frac14:"En fjerdedel",frac12:"En halv",frac34:"En tredjedel",iquest:"Omvendt udråbstegn",Agrave:"Stort A med accent grave",Aacute:"Stort A med accent aigu",Acirc:"Stort A med cirkumfleks",Atilde:"Stort A med tilde",
-Auml:"Stort A med umlaut",Aring:"Stort Å",AElig:"Stort Æ",Ccedil:"Stort C med cedille",Egrave:"Stort E med accent grave",Eacute:"Stort E med accent aigu",Ecirc:"Stort E med cirkumfleks",Euml:"Stort E med umlaut",Igrave:"Stort I med accent grave",Iacute:"Stort I med accent aigu",Icirc:"Stort I med cirkumfleks",Iuml:"Stort I med umlaut",ETH:"Stort Ð (edd)",Ntilde:"Stort N med tilde",Ograve:"Stort O med accent grave",Oacute:"Stort O med accent aigu",Ocirc:"Stort O med cirkumfleks",Otilde:"Stort O med tilde",
-Ouml:"Stort O med umlaut",times:"Gange-tegn",Oslash:"Stort Ø",Ugrave:"Stort U med accent grave",Uacute:"Stort U med accent aigu",Ucirc:"Stort U med cirkumfleks",Uuml:"Stort U med umlaut",Yacute:"Stort Y med accent aigu",THORN:"Stort Thorn",szlig:"Lille eszett",agrave:"Lille a med accent grave",aacute:"Lille a med accent aigu",acirc:"Lille a med cirkumfleks",atilde:"Lille a med tilde",auml:"Lille a med umlaut",aring:"Lilla å",aelig:"Lille æ",ccedil:"Lille c med cedille",egrave:"Lille e med accent grave",
-eacute:"Lille e med accent aigu",ecirc:"Lille e med cirkumfleks",euml:"Lille e med umlaut",igrave:"Lille i med accent grave",iacute:"Lille i med accent aigu",icirc:"Lille i med cirkumfleks",iuml:"Lille i med umlaut",eth:"Lille ð (edd)",ntilde:"Lille n med tilde",ograve:"Lille o med accent grave",oacute:"Lille o med accent aigu",ocirc:"Lille o med cirkumfleks",otilde:"Lille o med tilde",ouml:"Lille o med umlaut",divide:"Divisions-tegn",oslash:"Lille ø",ugrave:"Lille u med accent grave",uacute:"Lille u med accent aigu",
-ucirc:"Lille u med cirkumfleks",uuml:"Lille u med umlaut",yacute:"Lille y med accent aigu",thorn:"Lille thorn",yuml:"Lille y med umlaut",OElig:"Stort Æ",oelig:"Lille æ",372:"Stort W med cirkumfleks",374:"Stort Y med cirkumfleks",373:"Lille w med cirkumfleks",375:"Lille y med cirkumfleks",sbquo:"Lavt enkelt 9-komma citationstegn",8219:"Højt enkelt 9-komma citationstegn",bdquo:"Dobbelt 9-komma citationstegn",hellip:"Tre horizontale prikker",trade:"Varemærke-tegn",9658:"Sort højre pil",bull:"Punkt",
-rarr:"Højre pil",rArr:"Højre dobbelt pil",hArr:"Venstre højre dobbelt pil",diams:"Sort diamant",asymp:"Næsten lig med"});
\ No newline at end of file
diff --git a/web/modules/ckeditor/vendor/plugins/specialchar/dialogs/lang/de-ch.js b/web/modules/ckeditor/vendor/plugins/specialchar/dialogs/lang/de-ch.js
deleted file mode 100644
index e7fb72342242a6b1cc25e2307d8540ad6932df93..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/plugins/specialchar/dialogs/lang/de-ch.js
+++ /dev/null
@@ -1,13 +0,0 @@
-/*
- Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
- For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
-*/
-CKEDITOR.plugins.setLang("specialchar","de-ch",{euro:"Euro-Zeichen",lsquo:"Hochkomma links",rsquo:"Hochkomma rechts",ldquo:"Anführungszeichen links",rdquo:"Anführungszeichen rechts",ndash:"Kleiner Strich",mdash:"Mittlerer Strich",iexcl:"Invertiertes Ausrufezeichen",cent:"Cent-Zeichen",pound:"Pfund-Zeichen",curren:"Währungszeichen",yen:"Yen",brvbar:"Gestrichelte Linie",sect:"Paragrafenzeichen",uml:"Diäresis",copy:"Copyright-Zeichen",ordf:"Feminine ordinal Anzeige",laquo:"Nach links zeigenden Doppel-Winkel Anführungszeichen",
-not:"Not-Zeichen",reg:"Registriert-Zeichen",macr:"Längezeichen",deg:"Grad-Zeichen",sup2:"Hoch 2",sup3:"Hoch 3",acute:"Akzentzeichen ",micro:"Mikro-Zeichen",para:"Pilcrow-Zeichen",middot:"Mittelpunkt",cedil:"Cedilla",sup1:"Hoch 1",ordm:"Männliche Ordnungszahl Anzeige",raquo:"Nach rechts zeigenden Doppel-Winkel Anführungszeichen",frac14:"ein Viertel",frac12:"Hälfte",frac34:"Dreiviertel",iquest:"Umgekehrtes Fragezeichen",Agrave:"Lateinischer Buchstabe A mit Accent grave",Aacute:"Lateinischer Buchstabe A mit Akutakzent",
-Acirc:"Lateinischer Buchstabe A mit Zirkumflex",Atilde:"Lateinischer Buchstabe A mit Tilde",Auml:"Lateinischer Buchstabe A mit Trema",Aring:"Lateinischer Buchstabe A mit Ring oben",AElig:"Lateinischer Buchstabe Æ",Ccedil:"Lateinischer Buchstabe C mit Cedille",Egrave:"Lateinischer Buchstabe E mit Accent grave",Eacute:"Lateinischer Buchstabe E mit Akutakzent",Ecirc:"Lateinischer Buchstabe E mit Zirkumflex",Euml:"Lateinischer Buchstabe E Trema",Igrave:"Lateinischer Buchstabe I mit Accent grave",Iacute:"Lateinischer Buchstabe I mit Akutakzent",
-Icirc:"Lateinischer Buchstabe I mit Zirkumflex",Iuml:"Lateinischer Buchstabe I mit Trema",ETH:"Lateinischer Buchstabe Eth",Ntilde:"Lateinischer Buchstabe N mit Tilde",Ograve:"Lateinischer Buchstabe O mit Accent grave",Oacute:"Lateinischer Buchstabe O mit Akutakzent",Ocirc:"Lateinischer Buchstabe O mit Zirkumflex",Otilde:"Lateinischer Buchstabe O mit Tilde",Ouml:"Lateinischer Buchstabe O mit Trema",times:"Multiplikation",Oslash:"Lateinischer Buchstabe O durchgestrichen",Ugrave:"Lateinischer Buchstabe U mit Accent grave",
-Uacute:"Lateinischer Buchstabe U mit Akutakzent",Ucirc:"Lateinischer Buchstabe U mit Zirkumflex",Uuml:"Lateinischer Buchstabe a mit Trema",Yacute:"Lateinischer Buchstabe a mit Akzent",THORN:"Lateinischer Buchstabe mit Dorn",szlig:"Kleiner lateinischer Buchstabe scharfem s",agrave:"Kleiner lateinischer Buchstabe a mit Accent grave",aacute:"Kleiner lateinischer Buchstabe a mit Akut",acirc:"Lateinischer Buchstabe a mit Zirkumflex",atilde:"Lateinischer Buchstabe a mit Tilde",auml:"Kleiner lateinischer Buchstabe a mit Trema",
-aring:"Kleiner lateinischer Buchstabe a mit Ring oben",aelig:"Lateinischer Buchstabe æ",ccedil:"Kleiner lateinischer Buchstabe c mit Cedille",egrave:"Kleiner lateinischer Buchstabe e mit Accent grave",eacute:"Kleiner lateinischer Buchstabe e mit Akut",ecirc:"Kleiner lateinischer Buchstabe e mit Zirkumflex",euml:"Kleiner lateinischer Buchstabe e mit Trema",igrave:"Kleiner lateinischer Buchstabe i mit AkzentGrave",iacute:"Kleiner lateinischer Buchstabe i mit Akzent",icirc:"Kleiner lateinischer Buchstabe i mit Zirkumflex",
-iuml:"Kleiner lateinischer Buchstabe i mit Trema",eth:"Kleiner lateinischer Buchstabe eth",ntilde:"Kleiner lateinischer Buchstabe n mit Tilde",ograve:"Kleiner lateinischer Buchstabe o mit Accent grave",oacute:"Kleiner lateinischer Buchstabe o mit Akzent",ocirc:"Kleiner lateinischer Buchstabe o mit Zirkumflex",otilde:"Lateinischer Buchstabe i mit Tilde",ouml:"Kleiner lateinischer Buchstabe o mit Trema",divide:"Divisionszeichen",oslash:"Kleiner lateinischer Buchstabe o durchgestrichen",ugrave:"Kleiner lateinischer Buchstabe u mit Accent grave",
-uacute:"Kleiner lateinischer Buchstabe u mit Akut",ucirc:"Kleiner lateinischer Buchstabe u mit Zirkumflex",uuml:"Kleiner lateinischer Buchstabe u mit Trema",yacute:"Kleiner lateinischer Buchstabe y mit Akut",thorn:"Kleiner lateinischer Buchstabe Dorn",yuml:"Kleiner lateinischer Buchstabe y mit Trema",OElig:"Lateinischer Buchstabe Ligatur OE",oelig:"Kleiner lateinischer Buchstabe Ligatur OE",372:"Lateinischer Buchstabe W mit Zirkumflex",374:"Lateinischer Buchstabe Y mit Zirkumflex",373:"Kleiner lateinischer Buchstabe w mit Zirkumflex",
-375:"Kleiner lateinischer Buchstabe y mit Zirkumflex",sbquo:"Tiefergestelltes Komma",8219:"Rumgedrehtes Komma",bdquo:"Doppeltes Anführungszeichen unten",hellip:"horizontale Auslassungspunkte",trade:"Handelszeichen",9658:"Dreickspfeil rechts",bull:"Bullet",rarr:"Pfeil rechts",rArr:"Doppelpfeil rechts",hArr:"Doppelpfeil links",diams:"Karo",asymp:"Ungefähr"});
\ No newline at end of file
diff --git a/web/modules/ckeditor/vendor/plugins/specialchar/dialogs/lang/de.js b/web/modules/ckeditor/vendor/plugins/specialchar/dialogs/lang/de.js
deleted file mode 100644
index 8519b532ee2ffa00a4975b8a4f8cb63f94e93cea..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/plugins/specialchar/dialogs/lang/de.js
+++ /dev/null
@@ -1,13 +0,0 @@
-/*
- Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
- For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
-*/
-CKEDITOR.plugins.setLang("specialchar","de",{euro:"Euro Zeichen",lsquo:"Hochkomma links",rsquo:"Hochkomma rechts",ldquo:"Anführungszeichen links",rdquo:"Anführungszeichen rechts",ndash:"Kleiner Strich",mdash:"Mittlerer Strich",iexcl:"Invertiertes Ausrufezeichen",cent:"Cent-Zeichen",pound:"Pfund-Zeichen",curren:"Währungszeichen",yen:"Yen",brvbar:"Gestrichelte Linie",sect:"Paragrafenzeichen",uml:"Diäresis",copy:"Copyright-Zeichen",ordf:"Feminine ordinal Anzeige",laquo:"Nach links zeigenden Doppel-Winkel Anführungszeichen",
-not:"Not-Zeichen",reg:"Registriert-Zeichen",macr:"Längezeichen",deg:"Grad-Zeichen",sup2:"Hoch 2",sup3:"Hoch 3",acute:"Akzentzeichen ",micro:"Mikro-Zeichen",para:"Pilcrow-Zeichen",middot:"Mittelpunkt",cedil:"Cedilla",sup1:"Hoch 1",ordm:"Männliche Ordnungszahl Anzeige",raquo:"Nach rechts zeigenden Doppel-Winkel Anführungszeichen",frac14:"ein Viertel",frac12:"Hälfte",frac34:"Dreiviertel",iquest:"Umgekehrtes Fragezeichen",Agrave:"Lateinischer Buchstabe A mit AkzentGrave",Aacute:"Lateinischer Buchstabe A mit Akutakzent",
-Acirc:"Lateinischer Buchstabe A mit Zirkumflex",Atilde:"Lateinischer Buchstabe A mit Tilde",Auml:"Lateinischer Buchstabe A mit Trema",Aring:"Lateinischer Buchstabe A mit Ring oben",AElig:"Lateinischer Buchstabe Æ",Ccedil:"Lateinischer Buchstabe C mit Cedille",Egrave:"Lateinischer Buchstabe E mit AkzentGrave",Eacute:"Lateinischer Buchstabe E mit Akutakzent",Ecirc:"Lateinischer Buchstabe E mit Zirkumflex",Euml:"Lateinischer Buchstabe E Trema",Igrave:"Lateinischer Buchstabe I mit AkzentGrave",Iacute:"Lateinischer Buchstabe I mit Akutakzent",
-Icirc:"Lateinischer Buchstabe I mit Zirkumflex",Iuml:"Lateinischer Buchstabe I mit Trema",ETH:"Lateinischer Buchstabe Eth",Ntilde:"Lateinischer Buchstabe N mit Tilde",Ograve:"Lateinischer Buchstabe O mit AkzentGrave",Oacute:"Lateinischer Buchstabe O mit Akutakzent",Ocirc:"Lateinischer Buchstabe O mit Zirkumflex",Otilde:"Lateinischer Buchstabe O mit Tilde",Ouml:"Lateinischer Buchstabe O mit Trema",times:"Multiplikation",Oslash:"Lateinischer Buchstabe O durchgestrichen",Ugrave:"Lateinischer Buchstabe U mit Akzentgrave",
-Uacute:"Lateinischer Buchstabe U mit Akutakzent",Ucirc:"Lateinischer Buchstabe U mit Zirkumflex",Uuml:"Lateinischer Buchstabe a mit Trema",Yacute:"Lateinischer Buchstabe a mit Akzent",THORN:"Lateinischer Buchstabe mit Dorn",szlig:"Kleiner lateinischer Buchstabe scharfe s",agrave:"Kleiner lateinischer Buchstabe a mit Accent grave",aacute:"Kleiner lateinischer Buchstabe a mit Akut",acirc:"Lateinischer Buchstabe a mit Zirkumflex",atilde:"Lateinischer Buchstabe a mit Tilde",auml:"Kleiner lateinischer Buchstabe a mit Trema",
-aring:"Kleiner lateinischer Buchstabe a mit Ring oben",aelig:"Lateinischer Buchstabe æ",ccedil:"Kleiner lateinischer Buchstabe c mit Cedille",egrave:"Kleiner lateinischer Buchstabe e mit Accent grave",eacute:"Kleiner lateinischer Buchstabe e mit Akut",ecirc:"Kleiner lateinischer Buchstabe e mit Zirkumflex",euml:"Kleiner lateinischer Buchstabe e mit Trema",igrave:"Kleiner lateinischer Buchstabe i mit AkzentGrave",iacute:"Kleiner lateinischer Buchstabe i mit Akzent",icirc:"Kleiner lateinischer Buchstabe i mit Zirkumflex",
-iuml:"Kleiner lateinischer Buchstabe i mit Trema",eth:"Kleiner lateinischer Buchstabe eth",ntilde:"Kleiner lateinischer Buchstabe n mit Tilde",ograve:"Kleiner lateinischer Buchstabe o mit Accent grave",oacute:"Kleiner lateinischer Buchstabe o mit Akzent",ocirc:"Kleiner lateinischer Buchstabe o mit Zirkumflex",otilde:"Lateinischer Buchstabe i mit Tilde",ouml:"Kleiner lateinischer Buchstabe o mit Trema",divide:"Divisionszeichen",oslash:"Kleiner lateinischer Buchstabe o durchgestrichen",ugrave:"Kleiner lateinischer Buchstabe u mit Accent grave",
-uacute:"Kleiner lateinischer Buchstabe u mit Akut",ucirc:"Kleiner lateinischer Buchstabe u mit Zirkumflex",uuml:"Kleiner lateinischer Buchstabe u mit Trema",yacute:"Kleiner lateinischer Buchstabe y mit Akut",thorn:"Kleiner lateinischer Buchstabe Dorn",yuml:"Kleiner lateinischer Buchstabe y mit Trema",OElig:"Lateinischer Buchstabe Ligatur OE",oelig:"Kleiner lateinischer Buchstabe Ligatur OE",372:"Lateinischer Buchstabe W mit Zirkumflex",374:"Lateinischer Buchstabe Y mit Zirkumflex",373:"Kleiner lateinischer Buchstabe w mit Zirkumflex",
-375:"Kleiner lateinischer Buchstabe y mit Zirkumflex",sbquo:"Tiefergestelltes Komma",8219:"Rumgedrehtes Komma",bdquo:"Doppeltes Anführungszeichen unten",hellip:"horizontale Auslassungspunkte",trade:"Handelszeichen",9658:"Dreickspfeil rechts",bull:"Bullet",rarr:"Pfeil rechts",rArr:"Doppelpfeil rechts",hArr:"Doppelpfeil links",diams:"Karo",asymp:"Ungefähr"});
\ No newline at end of file
diff --git a/web/modules/ckeditor/vendor/plugins/specialchar/dialogs/lang/el.js b/web/modules/ckeditor/vendor/plugins/specialchar/dialogs/lang/el.js
deleted file mode 100644
index aa1843c5c86eba3e1043a6c5af01f163a2e003f9..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/plugins/specialchar/dialogs/lang/el.js
+++ /dev/null
@@ -1,13 +0,0 @@
-/*
- Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
- For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
-*/
-CKEDITOR.plugins.setLang("specialchar","el",{euro:"Σύμβολο Ευρώ",lsquo:"Αριστερός χαρακτήρας μονού εισαγωγικού",rsquo:"Δεξιός χαρακτήρας μονού εισαγωγικού",ldquo:"Αριστερός χαρακτήρας ευθύγραμμων εισαγωγικών",rdquo:"Δεξιός χαρακτήρας ευθύγραμμων εισαγωγικών",ndash:"Παύλα en",mdash:"Παύλα em",iexcl:"Ανάποδο θαυμαστικό",cent:"Σύμβολο σεντ",pound:"Σύμβολο λίρας",curren:"Σύμβολο συναλλαγματικής μονάδας",yen:"Σύμβολο Γιεν",brvbar:"Σπασμένη μπάρα",sect:"Σύμβολο τμήματος",uml:"Διαίρεση",copy:"Σύμβολο πνευματικών δικαιωμάτων",
-ordf:"Θηλυκός τακτικός δείκτης",laquo:"Γωνιώδη εισαγωγικά αριστερής κατάδειξης",not:"Σύμβολο άρνησης",reg:"Σύμβολο σημάτων κατατεθέν",macr:"Μακρόν",deg:"Σύμβολο βαθμού",sup2:"Εκτεθειμένο δύο",sup3:"Εκτεθειμένο τρία",acute:"Οξεία",micro:"Σύμβολο μικρού",para:"Σύμβολο παραγράφου",middot:"Μέση τελεία",cedil:"Υπογεγραμμένη",sup1:"Εκτεθειμένο ένα",ordm:"Αρσενικός τακτικός δείκτης",raquo:"Γωνιώδη εισαγωγικά δεξιάς κατάδειξης",frac14:"Γνήσιο κλάσμα ενός τετάρτου",frac12:"Γνήσιο κλάσμα ενός δεύτερου",frac34:"Γνήσιο κλάσμα τριών τετάρτων",
-iquest:"Ανάποδο θαυμαστικό",Agrave:"Λατινικό κεφαλαίο γράμμα A με βαρεία",Aacute:"Λατινικό κεφαλαίο γράμμα A με οξεία",Acirc:"Λατινικό κεφαλαίο γράμμα A με περισπωμένη",Atilde:"Λατινικό κεφαλαίο γράμμα A με περισπωμένη",Auml:"Λατινικό κεφαλαίο γράμμα A με διαλυτικά",Aring:"Λατινικό κεφαλαίο γράμμα A με δακτύλιο επάνω",AElig:"Λατινικό κεφαλαίο γράμμα Æ",Ccedil:"Λατινικό κεφαλαίο γράμμα C με υπογεγραμμένη",Egrave:"Λατινικό κεφαλαίο γράμμα E με βαρεία",Eacute:"Λατινικό κεφαλαίο γράμμα E με οξεία",Ecirc:"Λατινικό κεφαλαίο γράμμα Ε με περισπωμένη ",
-Euml:"Λατινικό κεφαλαίο γράμμα Ε με διαλυτικά",Igrave:"Λατινικό κεφαλαίο γράμμα I με βαρεία",Iacute:"Λατινικό κεφαλαίο γράμμα I με οξεία",Icirc:"Λατινικό κεφαλαίο γράμμα I  με περισπωμένη",Iuml:"Λατινικό κεφαλαίο γράμμα I με διαλυτικά ",ETH:"Λατινικό κεφαλαίο γράμμα Eth",Ntilde:"Λατινικό κεφαλαίο γράμμα N με περισπωμένη",Ograve:"Λατινικό κεφαλαίο γράμμα O με βαρεία",Oacute:"Λατινικό κεφαλαίο γράμμα O με οξεία",Ocirc:"Λατινικό κεφαλαίο γράμμα O με περισπωμένη ",Otilde:"Λατινικό κεφαλαίο γράμμα O με περισπωμένη",
-Ouml:"Λατινικό κεφαλαίο γράμμα O με διαλυτικά",times:"Σύμβολο πολλαπλασιασμού",Oslash:"Λατινικό κεφαλαίο γράμμα O με μολυβιά",Ugrave:"Λατινικό κεφαλαίο γράμμα U με βαρεία",Uacute:"Λατινικό κεφαλαίο γράμμα U με οξεία",Ucirc:"Λατινικό κεφαλαίο γράμμα U με περισπωμένη",Uuml:"Λατινικό κεφαλαίο γράμμα U με διαλυτικά",Yacute:"Λατινικό κεφαλαίο γράμμα Y με οξεία",THORN:"Λατινικό κεφαλαίο γράμμα Thorn",szlig:"Λατινικό μικρό γράμμα απότομο s",agrave:"Λατινικό μικρό γράμμα a με βαρεία",aacute:"Λατινικό μικρό γράμμα a με οξεία",
-acirc:"Λατινικό μικρό γράμμα a με περισπωμένη",atilde:"Λατινικό μικρό γράμμα a με περισπωμένη",auml:"Λατινικό μικρό γράμμα a με διαλυτικά",aring:"Λατινικό μικρό γράμμα a με δακτύλιο πάνω",aelig:"Λατινικό μικρό γράμμα æ",ccedil:"Λατινικό μικρό γράμμα c με υπογεγραμμένη",egrave:"Λατινικό μικρό γράμμα ε με βαρεία",eacute:"Λατινικό μικρό γράμμα e με οξεία",ecirc:"Λατινικό μικρό γράμμα e με περισπωμένη",euml:"Λατινικό μικρό γράμμα e με διαλυτικά",igrave:"Λατινικό μικρό γράμμα i με βαρεία",iacute:"Λατινικό μικρό γράμμα i με οξεία",
-icirc:"Λατινικό μικρό γράμμα i με περισπωμένη",iuml:"Λατινικό μικρό γράμμα i με διαλυτικά",eth:"Λατινικό μικρό γράμμα eth",ntilde:"Λατινικό μικρό γράμμα n με περισπωμένη",ograve:"Λατινικό μικρό γράμμα o με βαρεία",oacute:"Λατινικό μικρό γράμμα o με οξεία ",ocirc:"Λατινικό πεζό γράμμα o με περισπωμένη",otilde:"Λατινικό μικρό γράμμα o με περισπωμένη ",ouml:"Λατινικό μικρό γράμμα o με διαλυτικά",divide:"Σύμβολο διαίρεσης",oslash:"Λατινικό μικρό γράμμα o με περισπωμένη",ugrave:"Λατινικό μικρό γράμμα u με βαρεία",
-uacute:"Λατινικό μικρό γράμμα u με οξεία",ucirc:"Λατινικό μικρό γράμμα u με περισπωμένη",uuml:"Λατινικό μικρό γράμμα u με διαλυτικά",yacute:"Λατινικό μικρό γράμμα y με οξεία",thorn:"Λατινικό μικρό γράμμα thorn",yuml:"Λατινικό μικρό γράμμα y με διαλυτικά",OElig:"Λατινικό κεφαλαίο σύμπλεγμα ΟΕ",oelig:"Λατινικό μικρό σύμπλεγμα oe",372:"Λατινικό κεφαλαίο γράμμα W με περισπωμένη",374:"Λατινικό κεφαλαίο γράμμα Y με περισπωμένη",373:"Λατινικό μικρό γράμμα w με περισπωμένη",375:"Λατινικό μικρό γράμμα y με περισπωμένη",
-sbquo:"Ενιαίο χαμηλο -9 εισαγωγικό ",8219:"Ενιαίο υψηλο ανεστραμμένο-9 εισαγωγικό ",bdquo:"Διπλό χαμηλό-9 εισαγωγικό ",hellip:"Οριζόντια αποσιωπητικά",trade:"Σύμβολο εμπορικού κατατεθέν",9658:"Μαύρος δείκτης που δείχνει προς τα δεξιά",bull:"Κουκκίδα",rarr:"Δεξί βελάκι",rArr:"Διπλό δεξί βελάκι",hArr:"Διπλό βελάκι αριστερά-δεξιά",diams:"Μαύρο διαμάντι",asymp:"Σχεδόν ίσο με"});
\ No newline at end of file
diff --git a/web/modules/ckeditor/vendor/plugins/specialchar/dialogs/lang/en-au.js b/web/modules/ckeditor/vendor/plugins/specialchar/dialogs/lang/en-au.js
deleted file mode 100644
index 2c03bce69cd5621a488a968d39cd840dd2466f1b..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/plugins/specialchar/dialogs/lang/en-au.js
+++ /dev/null
@@ -1,13 +0,0 @@
-/*
- Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
- For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
-*/
-CKEDITOR.plugins.setLang("specialchar","en-au",{euro:"Euro sign",lsquo:"Left single quotation mark",rsquo:"Right single quotation mark",ldquo:"Left double quotation mark",rdquo:"Right double quotation mark",ndash:"En dash",mdash:"Em dash",iexcl:"Inverted exclamation mark",cent:"Cent sign",pound:"Pound sign",curren:"Currency sign",yen:"Yen sign",brvbar:"Broken bar",sect:"Section sign",uml:"Diaeresis",copy:"Copyright sign",ordf:"Feminine ordinal indicator",laquo:"Left-pointing double angle quotation mark",
-not:"Not sign",reg:"Registered sign",macr:"Macron",deg:"Degree sign",sup2:"Superscript two",sup3:"Superscript three",acute:"Acute accent",micro:"Micro sign",para:"Pilcrow sign",middot:"Middle dot",cedil:"Cedilla",sup1:"Superscript one",ordm:"Masculine ordinal indicator",raquo:"Right-pointing double angle quotation mark",frac14:"Vulgar fraction one quarter",frac12:"Vulgar fraction one half",frac34:"Vulgar fraction three quarters",iquest:"Inverted question mark",Agrave:"Latin capital letter A with grave accent",
-Aacute:"Latin capital letter A with acute accent",Acirc:"Latin capital letter A with circumflex",Atilde:"Latin capital letter A with tilde",Auml:"Latin capital letter A with diaeresis",Aring:"Latin capital letter A with ring above",AElig:"Latin capital letter Æ",Ccedil:"Latin capital letter C with cedilla",Egrave:"Latin capital letter E with grave accent",Eacute:"Latin capital letter E with acute accent",Ecirc:"Latin capital letter E with circumflex",Euml:"Latin capital letter E with diaeresis",Igrave:"Latin capital letter I with grave accent",
-Iacute:"Latin capital letter I with acute accent",Icirc:"Latin capital letter I with circumflex",Iuml:"Latin capital letter I with diaeresis",ETH:"Latin capital letter Eth",Ntilde:"Latin capital letter N with tilde",Ograve:"Latin capital letter O with grave accent",Oacute:"Latin capital letter O with acute accent",Ocirc:"Latin capital letter O with circumflex",Otilde:"Latin capital letter O with tilde",Ouml:"Latin capital letter O with diaeresis",times:"Multiplication sign",Oslash:"Latin capital letter O with stroke",
-Ugrave:"Latin capital letter U with grave accent",Uacute:"Latin capital letter U with acute accent",Ucirc:"Latin capital letter U with circumflex",Uuml:"Latin capital letter U with diaeresis",Yacute:"Latin capital letter Y with acute accent",THORN:"Latin capital letter Thorn",szlig:"Latin small letter sharp s",agrave:"Latin small letter a with grave accent",aacute:"Latin small letter a with acute accent",acirc:"Latin small letter a with circumflex",atilde:"Latin small letter a with tilde",auml:"Latin small letter a with diaeresis",
-aring:"Latin small letter a with ring above",aelig:"Latin small letter æ",ccedil:"Latin small letter c with cedilla",egrave:"Latin small letter e with grave accent",eacute:"Latin small letter e with acute accent",ecirc:"Latin small letter e with circumflex",euml:"Latin small letter e with diaeresis",igrave:"Latin small letter i with grave accent",iacute:"Latin small letter i with acute accent",icirc:"Latin small letter i with circumflex",iuml:"Latin small letter i with diaeresis",eth:"Latin small letter eth",
-ntilde:"Latin small letter n with tilde",ograve:"Latin small letter o with grave accent",oacute:"Latin small letter o with acute accent",ocirc:"Latin small letter o with circumflex",otilde:"Latin small letter o with tilde",ouml:"Latin small letter o with diaeresis",divide:"Division sign",oslash:"Latin small letter o with stroke",ugrave:"Latin small letter u with grave accent",uacute:"Latin small letter u with acute accent",ucirc:"Latin small letter u with circumflex",uuml:"Latin small letter u with diaeresis",
-yacute:"Latin small letter y with acute accent",thorn:"Latin small letter thorn",yuml:"Latin small letter y with diaeresis",OElig:"Latin capital ligature OE",oelig:"Latin small ligature oe",372:"Latin capital letter W with circumflex",374:"Latin capital letter Y with circumflex",373:"Latin small letter w with circumflex",375:"Latin small letter y with circumflex",sbquo:"Single low-9 quotation mark",8219:"Single high-reversed-9 quotation mark",bdquo:"Double low-9 quotation mark",hellip:"Horizontal ellipsis",
-trade:"Trade mark sign",9658:"Black right-pointing pointer",bull:"Bullet",rarr:"Rightwards arrow",rArr:"Rightwards double arrow",hArr:"Left right double arrow",diams:"Black diamond suit",asymp:"Almost equal to"});
\ No newline at end of file
diff --git a/web/modules/ckeditor/vendor/plugins/specialchar/dialogs/lang/en-ca.js b/web/modules/ckeditor/vendor/plugins/specialchar/dialogs/lang/en-ca.js
deleted file mode 100644
index ca807e43694224d8098039e5a6cd285f76999ba9..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/plugins/specialchar/dialogs/lang/en-ca.js
+++ /dev/null
@@ -1,13 +0,0 @@
-/*
- Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
- For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
-*/
-CKEDITOR.plugins.setLang("specialchar","en-ca",{euro:"Euro sign",lsquo:"Left single quotation mark",rsquo:"Right single quotation mark",ldquo:"Left double quotation mark",rdquo:"Right double quotation mark",ndash:"En dash",mdash:"Em dash",iexcl:"Inverted exclamation mark",cent:"Cent sign",pound:"Pound sign",curren:"Currency sign",yen:"Yen sign",brvbar:"Broken bar",sect:"Section sign",uml:"Diaeresis",copy:"Copyright sign",ordf:"Feminine ordinal indicator",laquo:"Left-pointing double angle quotation mark",
-not:"Not sign",reg:"Registered sign",macr:"Macron",deg:"Degree sign",sup2:"Superscript two",sup3:"Superscript three",acute:"Acute accent",micro:"Micro sign",para:"Pilcrow sign",middot:"Middle dot",cedil:"Cedilla",sup1:"Superscript one",ordm:"Masculine ordinal indicator",raquo:"Right-pointing double angle quotation mark",frac14:"Vulgar fraction one quarter",frac12:"Vulgar fraction one half",frac34:"Vulgar fraction three quarters",iquest:"Inverted question mark",Agrave:"Latin capital letter A with grave accent",
-Aacute:"Latin capital letter A with acute accent",Acirc:"Latin capital letter A with circumflex",Atilde:"Latin capital letter A with tilde",Auml:"Latin capital letter A with diaeresis",Aring:"Latin capital letter A with ring above",AElig:"Latin capital letter Æ",Ccedil:"Latin capital letter C with cedilla",Egrave:"Latin capital letter E with grave accent",Eacute:"Latin capital letter E with acute accent",Ecirc:"Latin capital letter E with circumflex",Euml:"Latin capital letter E with diaeresis",Igrave:"Latin capital letter I with grave accent",
-Iacute:"Latin capital letter I with acute accent",Icirc:"Latin capital letter I with circumflex",Iuml:"Latin capital letter I with diaeresis",ETH:"Latin capital letter Eth",Ntilde:"Latin capital letter N with tilde",Ograve:"Latin capital letter O with grave accent",Oacute:"Latin capital letter O with acute accent",Ocirc:"Latin capital letter O with circumflex",Otilde:"Latin capital letter O with tilde",Ouml:"Latin capital letter O with diaeresis",times:"Multiplication sign",Oslash:"Latin capital letter O with stroke",
-Ugrave:"Latin capital letter U with grave accent",Uacute:"Latin capital letter U with acute accent",Ucirc:"Latin capital letter U with circumflex",Uuml:"Latin capital letter U with diaeresis",Yacute:"Latin capital letter Y with acute accent",THORN:"Latin capital letter Thorn",szlig:"Latin small letter sharp s",agrave:"Latin small letter a with grave accent",aacute:"Latin small letter a with acute accent",acirc:"Latin small letter a with circumflex",atilde:"Latin small letter a with tilde",auml:"Latin small letter a with diaeresis",
-aring:"Latin small letter a with ring above",aelig:"Latin small letter æ",ccedil:"Latin small letter c with cedilla",egrave:"Latin small letter e with grave accent",eacute:"Latin small letter e with acute accent",ecirc:"Latin small letter e with circumflex",euml:"Latin small letter e with diaeresis",igrave:"Latin small letter i with grave accent",iacute:"Latin small letter i with acute accent",icirc:"Latin small letter i with circumflex",iuml:"Latin small letter i with diaeresis",eth:"Latin small letter eth",
-ntilde:"Latin small letter n with tilde",ograve:"Latin small letter o with grave accent",oacute:"Latin small letter o with acute accent",ocirc:"Latin small letter o with circumflex",otilde:"Latin small letter o with tilde",ouml:"Latin small letter o with diaeresis",divide:"Division sign",oslash:"Latin small letter o with stroke",ugrave:"Latin small letter u with grave accent",uacute:"Latin small letter u with acute accent",ucirc:"Latin small letter u with circumflex",uuml:"Latin small letter u with diaeresis",
-yacute:"Latin small letter y with acute accent",thorn:"Latin small letter thorn",yuml:"Latin small letter y with diaeresis",OElig:"Latin capital ligature OE",oelig:"Latin small ligature oe",372:"Latin capital letter W with circumflex",374:"Latin capital letter Y with circumflex",373:"Latin small letter w with circumflex",375:"Latin small letter y with circumflex",sbquo:"Single low-9 quotation mark",8219:"Single high-reversed-9 quotation mark",bdquo:"Double low-9 quotation mark",hellip:"Horizontal ellipsis",
-trade:"Trade mark sign",9658:"Black right-pointing pointer",bull:"Bullet",rarr:"Rightwards arrow",rArr:"Rightwards double arrow",hArr:"Left right double arrow",diams:"Black diamond suit",asymp:"Almost equal to"});
\ No newline at end of file
diff --git a/web/modules/ckeditor/vendor/plugins/specialchar/dialogs/lang/en-gb.js b/web/modules/ckeditor/vendor/plugins/specialchar/dialogs/lang/en-gb.js
deleted file mode 100644
index e6b649ffd4e0124fe740b2e99674d2d1bf314f7c..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/plugins/specialchar/dialogs/lang/en-gb.js
+++ /dev/null
@@ -1,13 +0,0 @@
-/*
- Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
- For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
-*/
-CKEDITOR.plugins.setLang("specialchar","en-gb",{euro:"Euro sign",lsquo:"Left single quotation mark",rsquo:"Right single quotation mark",ldquo:"Left double quotation mark",rdquo:"Right double quotation mark",ndash:"En dash",mdash:"Em dash",iexcl:"Inverted exclamation mark",cent:"Cent sign",pound:"Pound sign",curren:"Currency sign",yen:"Yen sign",brvbar:"Broken bar",sect:"Section sign",uml:"Diaeresis",copy:"Copyright sign",ordf:"Feminine ordinal indicator",laquo:"Left-pointing double angle quotation mark",
-not:"Not sign",reg:"Registered sign",macr:"Macron",deg:"Degree sign",sup2:"Superscript two",sup3:"Superscript three",acute:"Acute accent",micro:"Micro sign",para:"Pilcrow sign",middot:"Middle dot",cedil:"Cedilla",sup1:"Superscript one",ordm:"Masculine ordinal indicator",raquo:"Right-pointing double angle quotation mark",frac14:"Vulgar fraction one quarter",frac12:"Vulgar fraction one half",frac34:"Vulgar fraction three quarters",iquest:"Inverted question mark",Agrave:"Latin capital letter A with grave accent",
-Aacute:"Latin capital letter A with acute accent",Acirc:"Latin capital letter A with circumflex",Atilde:"Latin capital letter A with tilde",Auml:"Latin capital letter A with diaeresis",Aring:"Latin capital letter A with ring above",AElig:"Latin capital letter Æ",Ccedil:"Latin capital letter C with cedilla",Egrave:"Latin capital letter E with grave accent",Eacute:"Latin capital letter E with acute accent",Ecirc:"Latin capital letter E with circumflex",Euml:"Latin capital letter E with diaeresis",Igrave:"Latin capital letter I with grave accent",
-Iacute:"Latin capital letter I with acute accent",Icirc:"Latin capital letter I with circumflex",Iuml:"Latin capital letter I with diaeresis",ETH:"Latin capital letter Eth",Ntilde:"Latin capital letter N with tilde",Ograve:"Latin capital letter O with grave accent",Oacute:"Latin capital letter O with acute accent",Ocirc:"Latin capital letter O with circumflex",Otilde:"Latin capital letter O with tilde",Ouml:"Latin capital letter O with diaeresis",times:"Multiplication sign",Oslash:"Latin capital letter O with stroke",
-Ugrave:"Latin capital letter U with grave accent",Uacute:"Latin capital letter U with acute accent",Ucirc:"Latin capital letter U with circumflex",Uuml:"Latin capital letter U with diaeresis",Yacute:"Latin capital letter Y with acute accent",THORN:"Latin capital letter Thorn",szlig:"Latin small letter sharp s",agrave:"Latin small letter a with grave accent",aacute:"Latin small letter a with acute accent",acirc:"Latin small letter a with circumflex",atilde:"Latin small letter a with tilde",auml:"Latin small letter a with diaeresis",
-aring:"Latin small letter a with ring above",aelig:"Latin small letter æ",ccedil:"Latin small letter c with cedilla",egrave:"Latin small letter e with grave accent",eacute:"Latin small letter e with acute accent",ecirc:"Latin small letter e with circumflex",euml:"Latin small letter e with diaeresis",igrave:"Latin small letter i with grave accent",iacute:"Latin small letter i with acute accent",icirc:"Latin small letter i with circumflex",iuml:"Latin small letter i with diaeresis",eth:"Latin small letter eth",
-ntilde:"Latin small letter n with tilde",ograve:"Latin small letter o with grave accent",oacute:"Latin small letter o with acute accent",ocirc:"Latin small letter o with circumflex",otilde:"Latin small letter o with tilde",ouml:"Latin small letter o with diaeresis",divide:"Division sign",oslash:"Latin small letter o with stroke",ugrave:"Latin small letter u with grave accent",uacute:"Latin small letter u with acute accent",ucirc:"Latin small letter u with circumflex",uuml:"Latin small letter u with diaeresis",
-yacute:"Latin small letter y with acute accent",thorn:"Latin small letter thorn",yuml:"Latin small letter y with diaeresis",OElig:"Latin capital ligature OE",oelig:"Latin small ligature oe",372:"Latin capital letter W with circumflex",374:"Latin capital letter Y with circumflex",373:"Latin small letter w with circumflex",375:"Latin small letter y with circumflex",sbquo:"Single low-9 quotation mark",8219:"Single high-reversed-9 quotation mark",bdquo:"Double low-9 quotation mark",hellip:"Horizontal ellipsis",
-trade:"Trade mark sign",9658:"Black right-pointing pointer",bull:"Bullet",rarr:"Rightwards arrow",rArr:"Rightwards double arrow",hArr:"Left right double arrow",diams:"Black diamond suit",asymp:"Almost equal to"});
\ No newline at end of file
diff --git a/web/modules/ckeditor/vendor/plugins/specialchar/dialogs/lang/en.js b/web/modules/ckeditor/vendor/plugins/specialchar/dialogs/lang/en.js
deleted file mode 100644
index b5d78fd40a6794d76da42d9d5e65bba5657ff501..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/plugins/specialchar/dialogs/lang/en.js
+++ /dev/null
@@ -1,13 +0,0 @@
-/*
- Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
- For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
-*/
-CKEDITOR.plugins.setLang("specialchar","en",{euro:"Euro sign",lsquo:"Left single quotation mark",rsquo:"Right single quotation mark",ldquo:"Left double quotation mark",rdquo:"Right double quotation mark",ndash:"En dash",mdash:"Em dash",iexcl:"Inverted exclamation mark",cent:"Cent sign",pound:"Pound sign",curren:"Currency sign",yen:"Yen sign",brvbar:"Broken bar",sect:"Section sign",uml:"Diaeresis",copy:"Copyright sign",ordf:"Feminine ordinal indicator",laquo:"Left-pointing double angle quotation mark",
-not:"Not sign",reg:"Registered sign",macr:"Macron",deg:"Degree sign",sup2:"Superscript two",sup3:"Superscript three",acute:"Acute accent",micro:"Micro sign",para:"Pilcrow sign",middot:"Middle dot",cedil:"Cedilla",sup1:"Superscript one",ordm:"Masculine ordinal indicator",raquo:"Right-pointing double angle quotation mark",frac14:"Vulgar fraction one quarter",frac12:"Vulgar fraction one half",frac34:"Vulgar fraction three quarters",iquest:"Inverted question mark",Agrave:"Latin capital letter A with grave accent",
-Aacute:"Latin capital letter A with acute accent",Acirc:"Latin capital letter A with circumflex",Atilde:"Latin capital letter A with tilde",Auml:"Latin capital letter A with diaeresis",Aring:"Latin capital letter A with ring above",AElig:"Latin capital letter Æ",Ccedil:"Latin capital letter C with cedilla",Egrave:"Latin capital letter E with grave accent",Eacute:"Latin capital letter E with acute accent",Ecirc:"Latin capital letter E with circumflex",Euml:"Latin capital letter E with diaeresis",Igrave:"Latin capital letter I with grave accent",
-Iacute:"Latin capital letter I with acute accent",Icirc:"Latin capital letter I with circumflex",Iuml:"Latin capital letter I with diaeresis",ETH:"Latin capital letter Eth",Ntilde:"Latin capital letter N with tilde",Ograve:"Latin capital letter O with grave accent",Oacute:"Latin capital letter O with acute accent",Ocirc:"Latin capital letter O with circumflex",Otilde:"Latin capital letter O with tilde",Ouml:"Latin capital letter O with diaeresis",times:"Multiplication sign",Oslash:"Latin capital letter O with stroke",
-Ugrave:"Latin capital letter U with grave accent",Uacute:"Latin capital letter U with acute accent",Ucirc:"Latin capital letter U with circumflex",Uuml:"Latin capital letter U with diaeresis",Yacute:"Latin capital letter Y with acute accent",THORN:"Latin capital letter Thorn",szlig:"Latin small letter sharp s",agrave:"Latin small letter a with grave accent",aacute:"Latin small letter a with acute accent",acirc:"Latin small letter a with circumflex",atilde:"Latin small letter a with tilde",auml:"Latin small letter a with diaeresis",
-aring:"Latin small letter a with ring above",aelig:"Latin small letter æ",ccedil:"Latin small letter c with cedilla",egrave:"Latin small letter e with grave accent",eacute:"Latin small letter e with acute accent",ecirc:"Latin small letter e with circumflex",euml:"Latin small letter e with diaeresis",igrave:"Latin small letter i with grave accent",iacute:"Latin small letter i with acute accent",icirc:"Latin small letter i with circumflex",iuml:"Latin small letter i with diaeresis",eth:"Latin small letter eth",
-ntilde:"Latin small letter n with tilde",ograve:"Latin small letter o with grave accent",oacute:"Latin small letter o with acute accent",ocirc:"Latin small letter o with circumflex",otilde:"Latin small letter o with tilde",ouml:"Latin small letter o with diaeresis",divide:"Division sign",oslash:"Latin small letter o with stroke",ugrave:"Latin small letter u with grave accent",uacute:"Latin small letter u with acute accent",ucirc:"Latin small letter u with circumflex",uuml:"Latin small letter u with diaeresis",
-yacute:"Latin small letter y with acute accent",thorn:"Latin small letter thorn",yuml:"Latin small letter y with diaeresis",OElig:"Latin capital ligature OE",oelig:"Latin small ligature oe",372:"Latin capital letter W with circumflex",374:"Latin capital letter Y with circumflex",373:"Latin small letter w with circumflex",375:"Latin small letter y with circumflex",sbquo:"Single low-9 quotation mark",8219:"Single high-reversed-9 quotation mark",bdquo:"Double low-9 quotation mark",hellip:"Horizontal ellipsis",
-trade:"Trade mark sign",9658:"Black right-pointing pointer",bull:"Bullet",rarr:"Rightwards arrow",rArr:"Rightwards double arrow",hArr:"Left right double arrow",diams:"Black diamond suit",asymp:"Almost equal to"});
\ No newline at end of file
diff --git a/web/modules/ckeditor/vendor/plugins/specialchar/dialogs/lang/eo.js b/web/modules/ckeditor/vendor/plugins/specialchar/dialogs/lang/eo.js
deleted file mode 100644
index 7c26ff978926a75c3b5690649ebc0927d8b10169..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/plugins/specialchar/dialogs/lang/eo.js
+++ /dev/null
@@ -1,12 +0,0 @@
-/*
- Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
- For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
-*/
-CKEDITOR.plugins.setLang("specialchar","eo",{euro:"Eŭrosigno",lsquo:"Supra 6-citilo",rsquo:"Supra 9-citilo",ldquo:"Supra 66-citilo",rdquo:"Supra 99-citilo",ndash:"Streketo",mdash:"Substreko",iexcl:"Renversita krisigno",cent:"Cendosigno",pound:"Pundosigno",curren:"Monersigno",yen:"Enosigno",brvbar:"Rompita vertikala streko",sect:"Kurba paragrafo",uml:"Tremao",copy:"Kopirajtosigno",ordf:"Adjektiva numerfinaĵo",laquo:"Duobla malplio-citilo",not:"Negohoko",reg:"Registrita marko",macr:"Superstreko",deg:"Gradosigno",
-sup2:"Supra indico 2",sup3:"Supra indico 3",acute:"Dekstra korno",micro:"Mikrosigno",para:"Rekta paragrafo",middot:"Meza punkto",cedil:"Zoeto",sup1:"Supra indico 1",ordm:"Substantiva numerfinaĵo",raquo:"Duobla plio-citilo",frac14:"Kvaronosigno",frac12:"Duonosigno",frac34:"Trikvaronosigno",iquest:"renversita demandosigno",Agrave:"Latina ĉeflitero A kun liva korno",Aacute:"Latina ĉeflitero A kun dekstra korno",Acirc:"Latina ĉeflitero A kun ĉapelo",Atilde:"Latina ĉeflitero A kun tildo",Auml:"Latina ĉeflitero A kun tremao",
-Aring:"Latina ĉeflitero A kun superringo",AElig:"Latina ĉeflitera ligaturo Æ",Ccedil:"Latina ĉeflitero C kun zoeto",Egrave:"Latina ĉeflitero E kun liva korno",Eacute:"Latina ĉeflitero E kun dekstra korno",Ecirc:"Latina ĉeflitero E kun ĉapelo",Euml:"Latina ĉeflitero E kun tremao",Igrave:"Latina ĉeflitero I kun liva korno",Iacute:"Latina ĉeflitero I kun dekstra korno",Icirc:"Latina ĉeflitero I kun ĉapelo",Iuml:"Latina ĉeflitero I kun tremao",ETH:"Latina ĉeflitero islanda edo",Ntilde:"Latina ĉeflitero N kun tildo",
-Ograve:"Latina ĉeflitero O kun liva korno",Oacute:"Latina ĉeflitero O kun dekstra korno",Ocirc:"Latina ĉeflitero O kun ĉapelo",Otilde:"Latina ĉeflitero O kun tildo",Ouml:"Latina ĉeflitero O kun tremao",times:"Multipliko",Oslash:"Latina ĉeflitero O trastrekita",Ugrave:"Latina ĉeflitero U kun liva korno",Uacute:"Latina ĉeflitero U kun dekstra korno",Ucirc:"Latina ĉeflitero U kun ĉapelo",Uuml:"Latina ĉeflitero U kun tremao",Yacute:"Latina ĉeflitero Y kun dekstra korno",THORN:"Latina ĉeflitero islanda dorno",
-szlig:"Latina etlitero germana sozo (akra s)",agrave:"Latina etlitero a kun liva korno",aacute:"Latina etlitero a kun dekstra korno",acirc:"Latina etlitero a kun ĉapelo",atilde:"Latina etlitero a kun tildo",auml:"Latina etlitero a kun tremao",aring:"Latina etlitero a kun superringo",aelig:"Latina etlitera ligaturo æ",ccedil:"Latina etlitero c kun zoeto",egrave:"Latina etlitero e kun liva korno",eacute:"Latina etlitero e kun dekstra korno",ecirc:"Latina etlitero e kun ĉapelo",euml:"Latina etlitero e kun tremao",
-igrave:"Latina etlitero i kun liva korno",iacute:"Latina etlitero i kun dekstra korno",icirc:"Latina etlitero i kun ĉapelo",iuml:"Latina etlitero i kun tremao",eth:"Latina etlitero islanda edo",ntilde:"Latina etlitero n kun tildo",ograve:"Latina etlitero o kun liva korno",oacute:"Latina etlitero o kun dekstra korno",ocirc:"Latina etlitero o kun ĉapelo",otilde:"Latina etlitero o kun tildo",ouml:"Latina etlitero o kun tremao",divide:"Dividosigno",oslash:"Latina etlitero o trastrekita",ugrave:"Latina etlitero u kun liva korno",
-uacute:"Latina etlitero u kun dekstra korno",ucirc:"Latina etlitero u kun ĉapelo",uuml:"Latina etlitero u kun tremao",yacute:"Latina etlitero y kun dekstra korno",thorn:"Latina etlitero islanda dorno",yuml:"Latina etlitero y kun tremao",OElig:"Latina ĉeflitera ligaturo Œ",oelig:"Latina etlitera ligaturo œ",372:"Latina ĉeflitero W kun ĉapelo",374:"Latina ĉeflitero Y kun ĉapelo",373:"Latina etlitero w kun ĉapelo",375:"Latina etlitero y kun ĉapelo",sbquo:"Suba 9-citilo",8219:"Supra renversita 9-citilo",
-bdquo:"Suba 99-citilo",hellip:"Tripunkto",trade:"Varmarka signo",9658:"Nigra sago dekstren",bull:"Bulmarko",rarr:"Sago dekstren",rArr:"Duobla sago dekstren",hArr:"Duobla sago maldekstren",diams:"Nigra kvadrato",asymp:"Preskaŭ egala"});
\ No newline at end of file
diff --git a/web/modules/ckeditor/vendor/plugins/specialchar/dialogs/lang/es-mx.js b/web/modules/ckeditor/vendor/plugins/specialchar/dialogs/lang/es-mx.js
deleted file mode 100644
index 44aef0dd83b52508d66df82fc535160c2b1ea696..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/plugins/specialchar/dialogs/lang/es-mx.js
+++ /dev/null
@@ -1,13 +0,0 @@
-/*
- Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
- For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
-*/
-CKEDITOR.plugins.setLang("specialchar","es-mx",{euro:"Signo de Euro",lsquo:"Comillas simple izquierda",rsquo:"Comillas simple derecha",ldquo:"Comillas dobles izquierda",rdquo:"Comillas dobles derecha",ndash:"Guión corto",mdash:"Guión largo",iexcl:"Signo de exclamación invertido",cent:"Signo de centavo",pound:"Signo de Libra",curren:"Signo de moneda",yen:"Signo de Yen",brvbar:"Barra rota",sect:"Signo de la sección",uml:"Diéresis",copy:"Signo de Derechos reservados",ordf:"Indicador ordinal femenino",
-laquo:"Señal de doble ángulo hacia la izquierda",not:"Sin signo",reg:"Signo registrado",macr:"Macron",deg:"signo de grados",sup2:"Superíndice dos",sup3:"Superíndice tres",acute:"Acento agudo",micro:"Signo micro",para:"Signo pilcrow",middot:"Punto medio",cedil:"Cedilla",sup1:"Superíndice uno",ordm:"Indicador ordinal masculino",raquo:"Señal de doble ángulo hacia la derecha",frac14:"Fracción un cuarto",frac12:"Fracción medio",frac34:"Fracción tres cuartos",iquest:"Signo de interrogación invertido",Agrave:"Letra mayúscula latina A con acento grave",
-Aacute:"Letra mayúscula latina A con acento agudo",Acirc:"Letra mayúscula latina A con circunflexo",Atilde:"Letra mayúscula latina A con tilde",Auml:"Letra mayúscula latina A con diéresis",Aring:"Letra mayúscula latina A con anillo arriba",AElig:"Letra mayúscula latina Æ",Ccedil:"Letra mayúscula latina C con cedilla",Egrave:"Letra mayúscula latina E con acento grave",Eacute:"Letra mayúscula latina E con acento agudo",Ecirc:"Letra mayúscula latina E con circumflex",Euml:"Letra mayúscula latina E con diéresis",
-Igrave:"Letra mayúscula latina I con acento grave",Iacute:"Letra mayúscula latina I con acento agudo",Icirc:"Letra mayúscula latina I con circumflex",Iuml:"Letra mayúscula latina E con diéresis",ETH:"Letra mayúscula latina Eth",Ntilde:"Letra mayúscula latina N con tilde",Ograve:"Letra mayúscula latina O con acento grave",Oacute:"Letra mayúscula latina O con acento agudo",Ocirc:"Letra mayúscula latina O con circumflex",Otilde:"Letra mayúscula latina O con tilde",Ouml:"Letra mayúscula latina O con diéresis",
-times:"Signo de multiplicación",Oslash:"Letra mayúscula latina O con trazo",Ugrave:"Letra mayúscula latina U con acento grave",Uacute:"Letra mayúscula latina U con acento agudo",Ucirc:"Letra mayúscula latina U con circumflex",Uuml:"Letra mayúscula latina U con diéresis",Yacute:"Letra mayúscula latina Y con acento agudo",THORN:"Letra mayúscula latina Thorn",szlig:"Letra pequeña latina s",agrave:"Letra pequeña latina a con acento grave",aacute:"Letra pequeña latina a con acento agudo",acirc:"Letra pequeña latina a con circumflex",
-atilde:"Letra pequeña latina a con tilde",auml:"Letra pequeña latina a con diéresis",aring:"Letra pequeña latina a con anillo arriba",aelig:"Letra pequeña latina æ",ccedil:"Letra pequeña latina c con cedilla",egrave:"Letra pequeña latina e con acento grave",eacute:"Letra pequeña latina e con acento agudo",ecirc:"Letra pequeña latina e con circumflex",euml:"Letra pequeña latina e con diéresis",igrave:"Letra pequeña latina i con acento grave",iacute:"Letra pequeña latina i con acento agudo",icirc:"Letra pequeña latina i con circumflex",
-iuml:"Letra pequeña latina i con diéresis",eth:"Letra pequeña latina eth",ntilde:"Letra pequeña latina n con tilde",ograve:"Letra pequeña latina o con acento grave",oacute:"Letra pequeña latina o con acento agudo",ocirc:"Letra pequeña latina o con circumflex",otilde:"Letra pequeña latina o con tilde",ouml:"Letra pequeña latina o con diéresis",divide:"Signo de división",oslash:"Letra pequeña latina o con trazo",ugrave:"Letra pequeña latina u con acento grave",uacute:"Letra pequeña latina u con acento agudo",
-ucirc:"Letra pequeña latina u con circumflex",uuml:"Letra pequeña latina u con diéresis",yacute:"Letra pequeña latina y con acento agudo",thorn:"Espina de letra pequeña latina",yuml:"Letra pequeña latina y con diéresis",OElig:"Ligadura de capital latino OE",oelig:"Ligadura de pequeña latino OE",372:"Letra latina mayúscula W con circunflexo",374:"Letra latina mayúscula Y con circunflexo",373:"Letra latina minúscula w con circunflexo",375:"Letra latina minúscula y con circunflexo",sbquo:"Signo de comillas simple abajo",
-8219:"Signo de comillas simple arriba",bdquo:"Signo de doble comillas abajo",hellip:"Elipsis horizontal",trade:"Signo merccantl",9658:"Puntero derecho negro",bull:"Bala",rarr:"Flecha hacia la derecha",rArr:"Doble flecha hacia la derecha",hArr:"Flecha doble izquierda derecha",diams:"Palo de diamante negro",asymp:"Casi igual a"});
\ No newline at end of file
diff --git a/web/modules/ckeditor/vendor/plugins/specialchar/dialogs/lang/es.js b/web/modules/ckeditor/vendor/plugins/specialchar/dialogs/lang/es.js
deleted file mode 100644
index 2d90d98a81b0e7de71cf54760476a104c6a4689f..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/plugins/specialchar/dialogs/lang/es.js
+++ /dev/null
@@ -1,13 +0,0 @@
-/*
- Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
- For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
-*/
-CKEDITOR.plugins.setLang("specialchar","es",{euro:"Símbolo de euro",lsquo:"Comilla simple izquierda",rsquo:"Comilla simple derecha",ldquo:"Comilla doble izquierda",rdquo:"Comilla doble derecha",ndash:"Guión corto",mdash:"Guión medio largo",iexcl:"Signo de admiración invertido",cent:"Símbolo centavo",pound:"Símbolo libra",curren:"Símbolo moneda",yen:"Símbolo yen",brvbar:"Barra vertical rota",sect:"Símbolo sección",uml:"Diéresis",copy:"Signo de derechos de autor",ordf:"Indicador ordinal femenino",laquo:"Abre comillas angulares",
-not:"Signo negación",reg:"Signo de marca registrada",macr:"Guión alto",deg:"Signo de grado",sup2:"Superíndice dos",sup3:"Superíndice tres",acute:"Acento agudo",micro:"Signo micro",para:"Signo de pi",middot:"Punto medio",cedil:"Cedilla",sup1:"Superíndice uno",ordm:"Indicador orginal masculino",raquo:"Cierra comillas angulares",frac14:"Fracción ordinaria de un quarto",frac12:"Fracción ordinaria de una mitad",frac34:"Fracción ordinaria de tres cuartos",iquest:"Signo de interrogación invertido",Agrave:"Letra A latina mayúscula con acento grave",
-Aacute:"Letra A latina  mayúscula con acento agudo",Acirc:"Letra A latina mayúscula con acento circunflejo",Atilde:"Letra A latina mayúscula con tilde",Auml:"Letra A latina mayúscula con diéresis",Aring:"Letra A latina mayúscula con aro arriba",AElig:"Letra Æ latina mayúscula",Ccedil:"Letra C latina mayúscula con cedilla",Egrave:"Letra E latina mayúscula con acento grave",Eacute:"Letra E latina mayúscula con acento agudo",Ecirc:"Letra E latina mayúscula con acento circunflejo",Euml:"Letra E latina mayúscula con diéresis",
-Igrave:"Letra I latina mayúscula con acento grave",Iacute:"Letra I latina mayúscula con acento agudo",Icirc:"Letra I latina mayúscula con acento circunflejo",Iuml:"Letra I latina mayúscula con diéresis",ETH:"Letra Eth latina mayúscula",Ntilde:"Letra N latina mayúscula con tilde",Ograve:"Letra O latina mayúscula con acento grave",Oacute:"Letra O latina mayúscula con acento agudo",Ocirc:"Letra O latina mayúscula con acento circunflejo",Otilde:"Letra O latina mayúscula con tilde",Ouml:"Letra O latina mayúscula con diéresis",
-times:"Signo de multiplicación",Oslash:"Letra O latina mayúscula con barra inclinada",Ugrave:"Letra U latina mayúscula con acento grave",Uacute:"Letra U latina mayúscula con acento agudo",Ucirc:"Letra U latina mayúscula con acento circunflejo",Uuml:"Letra U latina mayúscula con diéresis",Yacute:"Letra Y latina mayúscula con acento agudo",THORN:"Letra Thorn latina mayúscula",szlig:"Letra s latina fuerte pequeña",agrave:"Letra a latina pequeña con acento grave",aacute:"Letra a latina pequeña con acento agudo",
-acirc:"Letra a latina pequeña con acento circunflejo",atilde:"Letra a latina pequeña con tilde",auml:"Letra a latina pequeña con diéresis",aring:"Letra a latina pequeña con aro arriba",aelig:"Letra æ latina pequeña",ccedil:"Letra c latina pequeña con cedilla",egrave:"Letra e latina pequeña con acento grave",eacute:"Letra e latina pequeña con acento agudo",ecirc:"Letra e latina pequeña con acento circunflejo",euml:"Letra e latina pequeña con diéresis",igrave:"Letra i latina pequeña con acento grave",
-iacute:"Letra i latina pequeña con acento agudo",icirc:"Letra i latina pequeña con acento circunflejo",iuml:"Letra i latina pequeña con diéresis",eth:"Letra eth latina pequeña",ntilde:"Letra n latina pequeña con tilde",ograve:"Letra o latina pequeña con acento grave",oacute:"Letra o latina pequeña con acento agudo",ocirc:"Letra o latina pequeña con acento circunflejo",otilde:"Letra o latina pequeña con tilde",ouml:"Letra o latina pequeña con diéresis",divide:"Signo de división",oslash:"Letra o latina minúscula con barra inclinada",
-ugrave:"Letra u latina pequeña con acento grave",uacute:"Letra u latina pequeña con acento agudo",ucirc:"Letra u latina pequeña con acento circunflejo",uuml:"Letra u latina pequeña con diéresis",yacute:"Letra u latina pequeña con acento agudo",thorn:"Letra thorn latina minúscula",yuml:"Letra y latina pequeña con diéresis",OElig:"Diptongo OE latino en mayúscula",oelig:"Diptongo oe latino en minúscula",372:"Letra W latina mayúscula con acento circunflejo",374:"Letra Y latina mayúscula con acento circunflejo",
-373:"Letra w latina pequeña con acento circunflejo",375:"Letra y latina pequeña con acento circunflejo",sbquo:"Comilla simple baja-9",8219:"Comilla simple alta invertida-9",bdquo:"Comillas dobles bajas-9",hellip:"Puntos suspensivos horizontales",trade:"Signo de marca registrada",9658:"Apuntador negro apuntando a la derecha",bull:"Viñeta",rarr:"Flecha a la derecha",rArr:"Flecha doble a la derecha",hArr:"Flecha izquierda derecha doble",diams:"Diamante negro",asymp:"Casi igual a"});
\ No newline at end of file
diff --git a/web/modules/ckeditor/vendor/plugins/specialchar/dialogs/lang/et.js b/web/modules/ckeditor/vendor/plugins/specialchar/dialogs/lang/et.js
deleted file mode 100644
index 04e8dfcdd5c2b61bf75368678a3f1dba341444d4..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/plugins/specialchar/dialogs/lang/et.js
+++ /dev/null
@@ -1,11 +0,0 @@
-/*
- Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
- For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
-*/
-CKEDITOR.plugins.setLang("specialchar","et",{euro:"Euromärk",lsquo:"Alustav ühekordne jutumärk",rsquo:"Lõpetav ühekordne jutumärk",ldquo:"Alustav kahekordne jutumärk",rdquo:"Lõpetav kahekordne jutumärk",ndash:"Enn-kriips",mdash:"Emm-kriips",iexcl:"Pööratud hüüumärk",cent:"Sendimärk",pound:"Naela märk",curren:"Valuutamärk",yen:"Jeeni märk",brvbar:"Katkestatud kriips",sect:"Lõigu märk",uml:"Täpid",copy:"Autoriõiguse märk",ordf:"Naissoost järjestuse märk",laquo:"Alustav kahekordne nurk jutumärk",not:"Ei-märk",
-reg:"Kaubamärk registreeritud märk",macr:"Pikkusmärk",deg:"Kraadimärk",sup2:"Ülaindeks kaks",sup3:"Ülaindeks kolm",acute:"Akuutrõhk",micro:"Mikro-märk",para:"Lõigumärk",middot:"Keskpunkt",cedil:"Sedii",sup1:"Ülaindeks üks",ordm:"Meessoost järjestuse märk",raquo:"Lõpetav kahekordne nurk jutumärk",frac14:"Lihtmurd veerand",frac12:"Lihtmurd pool",frac34:"Lihtmurd kolmveerand",iquest:"Pööratud küsimärk",Agrave:"Ladina suur A graavisega",Aacute:"Ladina suur A akuudiga",Acirc:"Ladina suur A tsirkumfleksiga",
-Atilde:"Ladina suur A tildega",Auml:"Ladina suur A täppidega",Aring:"Ladina suur A ülasõõriga",AElig:"Ladina suur AE",Ccedil:"Ladina suur E sediiga",Egrave:"Ladina suur E graavisega",Eacute:"Ladina suur E akuudiga",Ecirc:"Ladina suur E tsirkumfleksiga",Euml:"Ladina suur E täppidega",Igrave:"Ladina suur I graavisega",Iacute:"Ladina suur I akuudiga",Icirc:"Ladina suur I tsirkumfleksiga",Iuml:"Ladina suur I täppidega",ETH:"Ladina suur ETH",Ntilde:"Ladina suur N tildega",Ograve:"Ladina suur O graavisega",
-Oacute:"Ladina suur O akuudiga",Ocirc:"Ladina suur O tsirkumfleksiga",Otilde:"Ladina suur O tildega",Ouml:"Täppidega ladina suur O",times:"Korrutusmärk",Oslash:"Ladina suur O kaldkriipsuga",Ugrave:"Ladina suur U graavisega",Uacute:"Ladina suur U akuudiga",Ucirc:"Kandilise katusega suur ladina U",Uuml:"Täppidega ladina suur U",Yacute:"Ladina suur Y akuudiga",THORN:"Ladina suur THORN",szlig:"Ladina väike terav s",agrave:"Ladina väike a graavisega",aacute:"Ladina väike a akuudiga",acirc:"Kandilise katusega ladina väike a",
-atilde:"Tildega ladina väike a",auml:"Täppidega ladina väike a",aring:"Ladina väike a ülasõõriga",aelig:"Ladina väike ae",ccedil:"Ladina väike c sediiga",egrave:"Ladina väike e graavisega",eacute:"Ladina väike e akuudiga",ecirc:"Ladina väike e ülasõõriga",euml:"Ladina väike e täppidega",igrave:"Ladina väike i graavisega",iacute:"Ladina väike i akuudiga",icirc:"Ladina väike i tsirkumfleksiga",iuml:"Ladina väike i täppidega",eth:"Ladina väike ETH",ntilde:"Ladina väike n tildega",ograve:"Ladina väike o graavisega",
-oacute:"Ladina väike o akuudiga",ocirc:"Ladina väike o tsirkumfleksiga",otilde:"Ladina väike o tildega",ouml:"Ladina väike o täppidega",divide:"Jagamismärk",oslash:"Ladina väike o läbiva kaldkriipsuga",ugrave:"Ladina väike u graavisega",uacute:"Ladina väike u akuudiga",ucirc:"Ladina väike u tsirkumfleksiga",uuml:"Ladina väike u täppidega",yacute:"Ladina väike y akuudiga",thorn:"Ladina väike THORN",yuml:"Ladina väike y täppidega",OElig:"Ladina suur ligatuur OE",oelig:"Ladina väike ligatuur OE",372:"Ladina suur W tsirkumfleksiga",
-374:"Ladina suur Y tsirkumfleksiga",373:"Ladina väike w tsirkumfleksiga",375:"Ladina väike y tsirkumfleksiga",sbquo:"Ühekordne jutumärk üheksa all",8219:"Ühekordne jutumärk kuus üleval",bdquo:"Kahekordne jutumärk üheksa all",hellip:"Horisontaalne kolmikpunkt",trade:"Kaubamärgi märk",9658:"Must nool paremale",bull:"Kuul",rarr:"Nool paremale",rArr:"Topeltnool paremale",hArr:"Topeltnool vasakule",diams:"Must romb",asymp:"Ligikaudu võrdne"});
\ No newline at end of file
diff --git a/web/modules/ckeditor/vendor/plugins/specialchar/dialogs/lang/eu.js b/web/modules/ckeditor/vendor/plugins/specialchar/dialogs/lang/eu.js
deleted file mode 100644
index aed5e196afaee334ad0ca59bb326b9b67dde116d..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/plugins/specialchar/dialogs/lang/eu.js
+++ /dev/null
@@ -1,13 +0,0 @@
-/*
- Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
- For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
-*/
-CKEDITOR.plugins.setLang("specialchar","eu",{euro:"Euro zeinua",lsquo:"Left single quotation mark",rsquo:"Right single quotation mark",ldquo:"Left double quotation mark",rdquo:"Right double quotation mark",ndash:"En dash",mdash:"Em dash",iexcl:"Inverted exclamation mark",cent:"Cent sign",pound:"Libera zeinua",curren:"Currency sign",yen:"Yen zeinua",brvbar:"Broken bar",sect:"Section sign",uml:"Dieresia",copy:"Copyright zeinua",ordf:"Feminine ordinal indicator",laquo:"Left-pointing double angle quotation mark",
-not:"Ez zeinua",reg:"Registered sign",macr:"Macron",deg:"Degree sign",sup2:"Superscript two",sup3:"Superscript three",acute:"Acute accent",micro:"Micro sign",para:"Pilcrow sign",middot:"Middle dot",cedil:"Cedilla",sup1:"Superscript one",ordm:"Masculine ordinal indicator",raquo:"Right-pointing double angle quotation mark",frac14:"Vulgar fraction one quarter",frac12:"Vulgar fraction one half",frac34:"Vulgar fraction three quarters",iquest:"Inverted question mark",Agrave:"Latin capital letter A with grave accent",
-Aacute:"Latin capital letter A with acute accent",Acirc:"Latin capital letter A with circumflex",Atilde:"Latin capital letter A with tilde",Auml:"Latin capital letter A with diaeresis",Aring:"Latin capital letter A with ring above",AElig:"Latin capital letter Æ",Ccedil:"Latin capital letter C with cedilla",Egrave:"Latin capital letter E with grave accent",Eacute:"Latin capital letter E with acute accent",Ecirc:"Latin capital letter E with circumflex",Euml:"Latin capital letter E with diaeresis",Igrave:"Latin capital letter I with grave accent",
-Iacute:"Latin capital letter I with acute accent",Icirc:"Latin capital letter I with circumflex",Iuml:"Latin capital letter I with diaeresis",ETH:"Latin capital letter Eth",Ntilde:"Latin capital letter N with tilde",Ograve:"Latin capital letter O with grave accent",Oacute:"Latin capital letter O with acute accent",Ocirc:"Latin capital letter O with circumflex",Otilde:"Latin capital letter O with tilde",Ouml:"Latin capital letter O with diaeresis",times:"Bider zeinua",Oslash:"Latin capital letter O with stroke",
-Ugrave:"Latin capital letter U with grave accent",Uacute:"Latin capital letter U with acute accent",Ucirc:"Latin capital letter U with circumflex",Uuml:"Latin capital letter U with diaeresis",Yacute:"Latin capital letter Y with acute accent",THORN:"Latin capital letter Thorn",szlig:"Latin small letter sharp s",agrave:"Latin small letter a with grave accent",aacute:"Latin small letter a with acute accent",acirc:"Latin small letter a with circumflex",atilde:"Latin small letter a with tilde",auml:"Latin small letter a with diaeresis",
-aring:"Latin small letter a with ring above",aelig:"Latin small letter æ",ccedil:"Latin small letter c with cedilla",egrave:"Latin small letter e with grave accent",eacute:"Latin small letter e with acute accent",ecirc:"Latin small letter e with circumflex",euml:"Latin small letter e with diaeresis",igrave:"Latin small letter i with grave accent",iacute:"Latin small letter i with acute accent",icirc:"Latin small letter i with circumflex",iuml:"Latin small letter i with diaeresis",eth:"Latin small letter eth",
-ntilde:"Latin small letter n with tilde",ograve:"Latin small letter o with grave accent",oacute:"Latin small letter o with acute accent",ocirc:"Latin small letter o with circumflex",otilde:"Latin small letter o with tilde",ouml:"Latin small letter o with diaeresis",divide:"Division sign",oslash:"Latin small letter o with stroke",ugrave:"Latin small letter u with grave accent",uacute:"Latin small letter u with acute accent",ucirc:"Latin small letter u with circumflex",uuml:"Latin small letter u with diaeresis",
-yacute:"Latin small letter y with acute accent",thorn:"Latin small letter thorn",yuml:"Latin small letter y with diaeresis",OElig:"Latin capital ligature OE",oelig:"Latin small ligature oe",372:"Latin capital letter W with circumflex",374:"Latin capital letter Y with circumflex",373:"Latin small letter w with circumflex",375:"Latin small letter y with circumflex",sbquo:"Single low-9 quotation mark",8219:"Single high-reversed-9 quotation mark",bdquo:"Double low-9 quotation mark",hellip:"Horizontal ellipsis",
-trade:"Trade mark sign",9658:"Black right-pointing pointer",bull:"Buleta",rarr:"Rightwards arrow",rArr:"Rightwards double arrow",hArr:"Left right double arrow",diams:"Black diamond suit",asymp:"Almost equal to"});
\ No newline at end of file
diff --git a/web/modules/ckeditor/vendor/plugins/specialchar/dialogs/lang/fa.js b/web/modules/ckeditor/vendor/plugins/specialchar/dialogs/lang/fa.js
deleted file mode 100644
index 257f89c64074c97cc1c1465ebf49ba828f3be281..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/plugins/specialchar/dialogs/lang/fa.js
+++ /dev/null
@@ -1,12 +0,0 @@
-/*
- Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
- For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
-*/
-CKEDITOR.plugins.setLang("specialchar","fa",{euro:"نشان یورو",lsquo:"علامت نقل قول تکی چپ",rsquo:"علامت نقل قول تکی راست",ldquo:"علامت نقل قول دوتایی چپ",rdquo:"علامت نقل قول دوتایی راست",ndash:"خط تیره En",mdash:"خط تیره Em",iexcl:"علامت تعجب وارونه",cent:"نشان سنت",pound:"نشان پوند",curren:"نشان ارز",yen:"نشان ین",brvbar:"نوار شکسته",sect:"نشان بخش",uml:"نشان سواگیری",copy:"نشان کپی رایت",ordf:"شاخص ترتیبی مونث",laquo:"اشاره چپ مکرر برای زاویه علامت نقل قول",not:"نشان ثبت نشده",reg:"نشان ثبت شده",
-macr:"نشان خط بالای حرف",deg:"نشان درجه",sup2:"بالانویس دو",sup3:"بالانویس سه",acute:"لهجه غلیظ",micro:"نشان مایکرو",para:"نشان محل بند",middot:"نقطه میانی",cedil:"سدیل",sup1:"بالانویس 1",ordm:"شاخص ترتیبی مذکر",raquo:"نشان زاویه‌دار دوتایی نقل قول راست چین",frac14:"واحد عامیانه 1/4",frac12:"واحد عامینه نصف",frac34:"واحد عامیانه 3/4",iquest:"علامت سوال معکوس",Agrave:"حرف A بزرگ لاتین با تلفظ غلیظ",Aacute:"حرف A بزرگ لاتین با تلفظ شدید",Acirc:"حرف A بزرگ لاتین با دور",Atilde:"حرف A بزرگ لاتین با صدای کامی",
-Auml:"حرف A بزرگ لاتین با نشان سواگیری",Aring:"حرف A بزرگ لاتین با حلقه بالا",AElig:"حرف Æ بزرگ لاتین",Ccedil:"حرف C بزرگ لاتین با نشان سواگیری",Egrave:"حرف E بزرگ لاتین با تلفظ درشت",Eacute:"حرف E بزرگ لاتین با تلفظ زیر",Ecirc:"حرف E بزرگ لاتین با خمان",Euml:"حرف E بزرگ لاتین با نشان سواگیری",Igrave:"حرف I بزرگ لاتین با تلفظ درشت",Iacute:"حرف I بزرگ لاتین با تلفظ ریز",Icirc:"حرف I بزرگ لاتین با خمان",Iuml:"حرف I بزرگ لاتین با نشان سواگیری",ETH:"حرف لاتین بزرگ واکه ترتیبی",Ntilde:"حرف N بزرگ لاتین با مد",
-Ograve:"حرف O بزرگ لاتین با تلفظ درشت",Oacute:"حرف O بزرگ لاتین با تلفظ ریز",Ocirc:"حرف O بزرگ لاتین با خمان",Otilde:"حرف O بزرگ لاتین با مد",Ouml:"حرف O بزرگ لاتین با نشان سواگیری",times:"نشان ضربدر",Oslash:"حرف O بزرگ لاتین با میان خط",Ugrave:"حرف U بزرگ لاتین با تلفظ درشت",Uacute:"حرف U بزرگ لاتین با تلفظ ریز",Ucirc:"حرف U بزرگ لاتین با خمان",Uuml:"حرف U بزرگ لاتین با نشان سواگیری",Yacute:"حرف Y بزرگ لاتین با تلفظ ریز",THORN:"حرف بزرگ لاتین خاردار",szlig:"حرف کوچک لاتین شارپ s",agrave:"حرف a کوچک لاتین با تلفظ درشت",
-aacute:"حرف a کوچک لاتین با تلفظ ریز",acirc:"حرف a کوچک لاتین با خمان",atilde:"حرف a کوچک لاتین با صدای کامی",auml:"حرف a کوچک لاتین با نشان سواگیری",aring:"حرف a کوچک لاتین گوشواره دار",aelig:"حرف کوچک لاتین æ",ccedil:"حرف c کوچک لاتین با نشان سدیل",egrave:"حرف e کوچک لاتین با تلفظ درشت",eacute:"حرف e کوچک لاتین با تلفظ ریز",ecirc:"حرف e کوچک لاتین با خمان",euml:"حرف e کوچک لاتین با نشان سواگیری",igrave:"حرف i کوچک لاتین با تلفظ درشت",iacute:"حرف i کوچک لاتین با تلفظ ریز",icirc:"حرف i کوچک لاتین با خمان",
-iuml:"حرف i کوچک لاتین با نشان سواگیری",eth:"حرف کوچک لاتین eth",ntilde:"حرف n کوچک لاتین با صدای کامی",ograve:"حرف o کوچک لاتین با تلفظ درشت",oacute:"حرف o کوچک لاتین با تلفظ زیر",ocirc:"حرف o کوچک لاتین با خمان",otilde:"حرف o کوچک لاتین با صدای کامی",ouml:"حرف o کوچک لاتین با نشان سواگیری",divide:"نشان بخش",oslash:"حرف o کوچک لاتین با میان خط",ugrave:"حرف u کوچک لاتین با تلفظ درشت",uacute:"حرف u کوچک لاتین با تلفظ ریز",ucirc:"حرف u کوچک لاتین با خمان",uuml:"حرف u کوچک لاتین با نشان سواگیری",yacute:"حرف y کوچک لاتین با تلفظ ریز",
-thorn:"حرف کوچک لاتین خاردار",yuml:"حرف y کوچک لاتین با نشان سواگیری",OElig:"بند بزرگ لاتین OE",oelig:"بند کوچک لاتین oe",372:"حرف W بزرگ لاتین با خمان",374:"حرف Y بزرگ لاتین با خمان",373:"حرف w کوچک لاتین با خمان",375:"حرف y کوچک لاتین با خمان",sbquo:"نشان نقل قول تکی زیر-9",8219:"نشان نقل قول تکی high-reversed-9",bdquo:"نقل قول دوتایی پایین-9",hellip:"حذف افقی",trade:"نشان تجاری",9658:"نشانگر سیاه جهت راست",bull:"گلوله",rarr:"فلش راست",rArr:"فلش دوتایی راست",hArr:"فلش دوتایی چپ راست",diams:"نشان الماس سیاه",
-asymp:"تقریبا برابر با"});
\ No newline at end of file
diff --git a/web/modules/ckeditor/vendor/plugins/specialchar/dialogs/lang/fi.js b/web/modules/ckeditor/vendor/plugins/specialchar/dialogs/lang/fi.js
deleted file mode 100644
index acd0285b746c3473af4a71d00a136494ba50d731..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/plugins/specialchar/dialogs/lang/fi.js
+++ /dev/null
@@ -1,13 +0,0 @@
-/*
- Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
- For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
-*/
-CKEDITOR.plugins.setLang("specialchar","fi",{euro:"Euron merkki",lsquo:"Vasen yksittäinen lainausmerkki",rsquo:"Oikea yksittäinen lainausmerkki",ldquo:"Vasen kaksoislainausmerkki",rdquo:"Oikea kaksoislainausmerkki",ndash:"En dash",mdash:"Em dash",iexcl:"Inverted exclamation mark",cent:"Sentin merkki",pound:"Punnan merkki",curren:"Valuuttamerkki",yen:"Yenin merkki",brvbar:"Broken bar",sect:"Section sign",uml:"Diaeresis",copy:"Copyright sign",ordf:"Feminine ordinal indicator",laquo:"Left-pointing double angle quotation mark",
-not:"Not sign",reg:"Rekisteröity merkki",macr:"Macron",deg:"Asteen merkki",sup2:"Yläindeksi kaksi",sup3:"Yläindeksi kolme",acute:"Acute accent",micro:"Mikron merkki",para:"Pilcrow sign",middot:"Middle dot",cedil:"Cedilla",sup1:"Yläindeksi yksi",ordm:"Masculine ordinal indicator",raquo:"Right-pointing double angle quotation mark",frac14:"Vulgar fraction one quarter",frac12:"Vulgar fraction one half",frac34:"Vulgar fraction three quarters",iquest:"Ylösalaisin oleva kysymysmerkki",Agrave:"Latin capital letter A with grave accent",
-Aacute:"Latin capital letter A with acute accent",Acirc:"Latin capital letter A with circumflex",Atilde:"Latin capital letter A with tilde",Auml:"Latin capital letter A with diaeresis",Aring:"Latin capital letter A with ring above",AElig:"Latin capital letter Æ",Ccedil:"Latin capital letter C with cedilla",Egrave:"Latin capital letter E with grave accent",Eacute:"Latin capital letter E with acute accent",Ecirc:"Latin capital letter E with circumflex",Euml:"Latin capital letter E with diaeresis",Igrave:"Latin capital letter I with grave accent",
-Iacute:"Latin capital letter I with acute accent",Icirc:"Latin capital letter I with circumflex",Iuml:"Latin capital letter I with diaeresis",ETH:"Latin capital letter Eth",Ntilde:"Latin capital letter N with tilde",Ograve:"Latin capital letter O with grave accent",Oacute:"Latin capital letter O with acute accent",Ocirc:"Latin capital letter O with circumflex",Otilde:"Latin capital letter O with tilde",Ouml:"Latin capital letter O with diaeresis",times:"Kertomerkki",Oslash:"Latin capital letter O with stroke",
-Ugrave:"Latin capital letter U with grave accent",Uacute:"Latin capital letter U with acute accent",Ucirc:"Latin capital letter U with circumflex",Uuml:"Latin capital letter U with diaeresis",Yacute:"Latin capital letter Y with acute accent",THORN:"Latin capital letter Thorn",szlig:"Latin small letter sharp s",agrave:"Latin small letter a with grave accent",aacute:"Latin small letter a with acute accent",acirc:"Latin small letter a with circumflex",atilde:"Latin small letter a with tilde",auml:"Latin small letter a with diaeresis",
-aring:"Latin small letter a with ring above",aelig:"Latin small letter æ",ccedil:"Latin small letter c with cedilla",egrave:"Latin small letter e with grave accent",eacute:"Latin small letter e with acute accent",ecirc:"Latin small letter e with circumflex",euml:"Latin small letter e with diaeresis",igrave:"Latin small letter i with grave accent",iacute:"Latin small letter i with acute accent",icirc:"Latin small letter i with circumflex",iuml:"Latin small letter i with diaeresis",eth:"Latin small letter eth",
-ntilde:"Latin small letter n with tilde",ograve:"Latin small letter o with grave accent",oacute:"Latin small letter o with acute accent",ocirc:"Latin small letter o with circumflex",otilde:"Latin small letter o with tilde",ouml:"Latin small letter o with diaeresis",divide:"Jakomerkki",oslash:"Latin small letter o with stroke",ugrave:"Latin small letter u with grave accent",uacute:"Latin small letter u with acute accent",ucirc:"Latin small letter u with circumflex",uuml:"Latin small letter u with diaeresis",
-yacute:"Latin small letter y with acute accent",thorn:"Latin small letter thorn",yuml:"Latin small letter y with diaeresis",OElig:"Latin capital ligature OE",oelig:"Latin small ligature oe",372:"Latin capital letter W with circumflex",374:"Latin capital letter Y with circumflex",373:"Latin small letter w with circumflex",375:"Latin small letter y with circumflex",sbquo:"Single low-9 quotation mark",8219:"Single high-reversed-9 quotation mark",bdquo:"Double low-9 quotation mark",hellip:"Horizontal ellipsis",
-trade:"Tavaramerkki merkki",9658:"Black right-pointing pointer",bull:"Bullet",rarr:"Nuoli oikealle",rArr:"Kaksoisnuoli oikealle",hArr:"Kaksoisnuoli oikealle ja vasemmalle",diams:"Black diamond suit",asymp:"Noin"});
\ No newline at end of file
diff --git a/web/modules/ckeditor/vendor/plugins/specialchar/dialogs/lang/fr-ca.js b/web/modules/ckeditor/vendor/plugins/specialchar/dialogs/lang/fr-ca.js
deleted file mode 100644
index 54ec8009196ecc4c262ade36431a6b6ffcf6aca1..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/plugins/specialchar/dialogs/lang/fr-ca.js
+++ /dev/null
@@ -1,10 +0,0 @@
-/*
- Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
- For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
-*/
-CKEDITOR.plugins.setLang("specialchar","fr-ca",{euro:"Symbole Euro",lsquo:"Guillemet simple ouvrant",rsquo:"Guillemet simple fermant",ldquo:"Guillemet double ouvrant",rdquo:"Guillemet double fermant",ndash:"Tiret haut",mdash:"Tiret",iexcl:"Point d'exclamation inversé",cent:"Symbole de cent",pound:"Symbole de Livre Sterling",curren:"Symbole monétaire",yen:"Symbole du Yen",brvbar:"Barre scindée",sect:"Symbole de section",uml:"Tréma",copy:"Symbole de copyright",ordf:"Indicateur ordinal féminin",laquo:"Guillemet français ouvrant",
-not:"Indicateur de négation",reg:"Symbole de marque déposée",macr:"Macron",deg:"Degré",sup2:"Exposant 2",sup3:"Exposant 3",acute:"Accent aigüe",micro:"Symbole micro",para:"Paragraphe",middot:"Point médian",cedil:"Cédille",sup1:"Exposant 1",ordm:"Indicateur ordinal masculin",raquo:"Guillemet français fermant",frac14:"Un quart",frac12:"Une demi",frac34:"Trois quart",iquest:"Point d'interrogation inversé",Agrave:"A accent grave",Aacute:"A accent aigüe",Acirc:"A circonflexe",Atilde:"A tilde",Auml:"A tréma",
-Aring:"A avec un rond au dessus",AElig:"Æ majuscule",Ccedil:"C cédille",Egrave:"E accent grave",Eacute:"E accent aigüe",Ecirc:"E accent circonflexe",Euml:"E tréma",Igrave:"I accent grave",Iacute:"I accent aigüe",Icirc:"I accent circonflexe",Iuml:"I tréma",ETH:"Lettre majuscule islandaise ED",Ntilde:"N tilde",Ograve:"O accent grave",Oacute:"O accent aigüe",Ocirc:"O accent circonflexe",Otilde:"O tilde",Ouml:"O tréma",times:"Symbole de multiplication",Oslash:"O barré",Ugrave:"U accent grave",Uacute:"U accent aigüe",
-Ucirc:"U accent circonflexe",Uuml:"U tréma",Yacute:"Y accent aigüe",THORN:"Lettre islandaise Thorn majuscule",szlig:"Lettre minuscule allemande s dur",agrave:"a accent grave",aacute:"a accent aigüe",acirc:"a accent circonflexe",atilde:"a tilde",auml:"a tréma",aring:"a avec un cercle au dessus",aelig:"æ",ccedil:"c cédille",egrave:"e accent grave",eacute:"e accent aigüe",ecirc:"e accent circonflexe",euml:"e tréma",igrave:"i accent grave",iacute:"i accent aigüe",icirc:"i accent circonflexe",iuml:"i tréma",
-eth:"Lettre minuscule islandaise ED",ntilde:"n tilde",ograve:"o accent grave",oacute:"o accent aigüe",ocirc:"O accent circonflexe",otilde:"O tilde",ouml:"O tréma",divide:"Symbole de division",oslash:"o barré",ugrave:"u accent grave",uacute:"u accent aigüe",ucirc:"u accent circonflexe",uuml:"u tréma",yacute:"y accent aigüe",thorn:"Lettre islandaise thorn minuscule",yuml:"y tréma",OElig:"ligature majuscule latine Œ",oelig:"ligature minuscule latine œ",372:"W accent circonflexe",374:"Y accent circonflexe",
-373:"w accent circonflexe",375:"y accent circonflexe",sbquo:"Guillemet simple fermant",8219:"Guillemet-virgule supérieur culbuté",bdquo:"Guillemet-virgule double inférieur",hellip:"Points de suspension",trade:"Symbole de marque déposée",9658:"Flèche noire pointant vers la droite",bull:"Puce",rarr:"Flèche vers la droite",rArr:"Flèche double vers la droite",hArr:"Flèche double vers la gauche",diams:"Carreau",asymp:"Presque égal"});
\ No newline at end of file
diff --git a/web/modules/ckeditor/vendor/plugins/specialchar/dialogs/lang/fr.js b/web/modules/ckeditor/vendor/plugins/specialchar/dialogs/lang/fr.js
deleted file mode 100644
index 38974037985733b6e7a7ee06d0c411f39c11a413..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/plugins/specialchar/dialogs/lang/fr.js
+++ /dev/null
@@ -1,12 +0,0 @@
-/*
- Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
- For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
-*/
-CKEDITOR.plugins.setLang("specialchar","fr",{euro:"Symbole euro",lsquo:"Guillemet simple ouvrant",rsquo:"Guillemet simple fermant",ldquo:"Guillemet double ouvrant",rdquo:"Guillemet double fermant",ndash:"Tiret demi-cadratin",mdash:"Tiret cadratin",iexcl:"Point d'exclamation inversé",cent:"Symbole cent",pound:"Symbole Livre sterling",curren:"Symbole monétaire",yen:"Symbole yen",brvbar:"Barre verticale scindée",sect:"Signe de section",uml:"Tréma",copy:"Symbole Copyright",ordf:"Indicateur ordinal féminin",
-laquo:"Guillemet français ouvrant",not:"Crochet de négation",reg:"Symbole de marque déposée",macr:"Macron",deg:"Symbole degré",sup2:"Exposant 2",sup3:"Exposant 3",acute:"Accent aigu",micro:"Symbole micro",para:"Symbole pied-de-mouche",middot:"Point médian",cedil:"Cédille",sup1:"Exposant 1",ordm:"Indicateur ordinal masculin",raquo:"Guillemet français fermant",frac14:"Fraction un quart",frac12:"Fraction un demi",frac34:"Fraction trois quarts",iquest:"Point d'interrogation inversé",Agrave:"A accent grave majuscule",
-Aacute:"A accent aigu majuscule",Acirc:"A accent circonflexe majuscule",Atilde:"A caron majuscule",Auml:"A tréma majuscule",Aring:"A rond majuscule",AElig:"Ligature Æ majuscule",Ccedil:"C cédille majuscule",Egrave:"E accent grave majuscule",Eacute:"E accent aigu majuscule",Ecirc:"E accent circonflexe majuscule",Euml:"E tréma majuscule",Igrave:"I accent grave majuscule",Iacute:"I accent aigu majuscule",Icirc:"I accent circonflexe majuscule",Iuml:"I tréma majuscule",ETH:"Lettre majuscule islandaise ED",
-Ntilde:"N caron majuscule",Ograve:"O accent grave majuscule",Oacute:"O accent aigu majuscule",Ocirc:"O accent circonflexe majuscule",Otilde:"O caron majuscule",Ouml:"O tréma majuscule",times:"Symbole de multiplication",Oslash:"O barré majuscule",Ugrave:"U accent grave majuscule",Uacute:"U accent aigu majuscule",Ucirc:"U accent circonflexe majuscule",Uuml:"U tréma majuscule",Yacute:"Y accent aigu majuscule",THORN:"Lettre islandaise thorn majuscule",szlig:"Lettre minuscule allemande S dur",agrave:"A accent grave minuscule",
-aacute:"A accent aigu minuscule",acirc:"A accent circonflexe minuscule",atilde:"A tilde minuscule",auml:"A tréma minuscule",aring:"A rond minuscule",aelig:"Ligature Æ minuscule",ccedil:"C cédille minuscule",egrave:"E accent grave minuscule",eacute:"E accent aigu minuscule",ecirc:"E accent circonflexe minuscule",euml:"E tréma minuscule",igrave:"I accent grave minuscule",iacute:"I accent aigu minuscule",icirc:"I accent circonflexe minuscule",iuml:"i minuscule tréma",eth:"Lettre minuscule islandaise ED",
-ntilde:"N caron minuscule",ograve:"O minuscule accent grave",oacute:"O accent aigu minuscule",ocirc:"O accent circonflexe minuscule",otilde:"O tilde minuscule",ouml:"O tréma minuscule",divide:"Symbole de division",oslash:"O barré minuscule",ugrave:"U accent grave minuscule",uacute:"U accent aigu minuscule",ucirc:"U accent circonflexe minuscule",uuml:"U tréma minuscule",yacute:"Y accent aigu minuscule",thorn:"Lettre islandaise thorn minuscule",yuml:"Y tréma minuscule",OElig:"Ligature Œ majuscule",
-oelig:"Ligature Œ minuscule",372:"W accent circonflexe majuscule",374:"Y accent circonflexe majuscule",373:"W accent circonflexe minuscule",375:"Y accent circonflexe minuscule",sbquo:"Guillemet simple fermant inférieur",8219:"Guillemet-virgule supérieur culbuté",bdquo:"Guillemet-virgule double inférieur",hellip:"Points de suspension",trade:"Symbole de marque commerciale",9658:"Flèche noire pointant vers la droite",bull:"Gros point médian",rarr:"Flèche vers la droite",rArr:"Double flèche vers la droite",
-hArr:"Double flèche vers la gauche",diams:"Losange noir",asymp:"Environ égal"});
\ No newline at end of file
diff --git a/web/modules/ckeditor/vendor/plugins/specialchar/dialogs/lang/gl.js b/web/modules/ckeditor/vendor/plugins/specialchar/dialogs/lang/gl.js
deleted file mode 100644
index 4708165a75a834c7aece57fb4f398a7a62cb8d00..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/plugins/specialchar/dialogs/lang/gl.js
+++ /dev/null
@@ -1,13 +0,0 @@
-/*
- Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
- For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
-*/
-CKEDITOR.plugins.setLang("specialchar","gl",{euro:"Símbolo do euro",lsquo:"Comiña simple esquerda",rsquo:"Comiña simple dereita",ldquo:"Comiñas dobres esquerda",rdquo:"Comiñas dobres dereita",ndash:"Guión",mdash:"Raia",iexcl:"Signo de admiración invertido",cent:"Símbolo do centavo",pound:"Símbolo da libra",curren:"Símbolo de moeda",yen:"Símbolo do yen",brvbar:"Barra vertical rota",sect:"Símbolo de sección",uml:"Diérese",copy:"Símbolo de dereitos de autoría",ordf:"Indicador ordinal feminino",laquo:"Comiñas latinas, apertura",
-not:"Signo negación",reg:"Símbolo de marca rexistrada",macr:"Guión alto",deg:"Signo de grao",sup2:"Superíndice dous",sup3:"Superíndice tres",acute:"Acento agudo",micro:"Signo de micro",para:"Signo de pi",middot:"Punto medio",cedil:"Cedilla",sup1:"Superíndice un",ordm:"Indicador ordinal masculino",raquo:"Comiñas latinas, peche",frac14:"Fracción ordinaria de un cuarto",frac12:"Fracción ordinaria de un medio",frac34:"Fracción ordinaria de tres cuartos",iquest:"Signo de interrogación invertido",Agrave:"Letra A latina maiúscula con acento grave",
-Aacute:"Letra A latina maiúscula con acento agudo",Acirc:"Letra A latina maiúscula con acento circunflexo",Atilde:"Letra A latina maiúscula con til",Auml:"Letra A latina maiúscula con diérese",Aring:"Letra A latina maiúscula con aro enriba",AElig:"Letra Æ latina maiúscula",Ccedil:"Letra C latina maiúscula con cedilla",Egrave:"Letra E latina maiúscula con acento grave",Eacute:"Letra E latina maiúscula con acento agudo",Ecirc:"Letra E latina maiúscula con acento circunflexo",Euml:"Letra E latina maiúscula con diérese",
-Igrave:"Letra I latina maiúscula con acento grave",Iacute:"Letra I latina maiúscula con acento agudo",Icirc:"Letra I latina maiúscula con acento circunflexo",Iuml:"Letra I latina maiúscula con diérese",ETH:"Letra Ed latina maiúscula",Ntilde:"Letra N latina maiúscula con til",Ograve:"Letra O latina maiúscula con acento grave",Oacute:"Letra O latina maiúscula con acento agudo",Ocirc:"Letra O latina maiúscula con acento circunflexo",Otilde:"Letra O latina maiúscula con til",Ouml:"Letra O latina maiúscula con diérese",
-times:"Signo de multiplicación",Oslash:"Letra O latina maiúscula con barra transversal",Ugrave:"Letra U latina maiúscula con acento grave",Uacute:"Letra U latina maiúscula con acento agudo",Ucirc:"Letra U latina maiúscula con acento circunflexo",Uuml:"Letra U latina maiúscula con diérese",Yacute:"Letra Y latina maiúscula con acento agudo",THORN:"Letra Thorn latina maiúscula",szlig:"Letra s latina forte minúscula",agrave:"Letra a latina minúscula con acento grave",aacute:"Letra a latina minúscula con acento agudo",
-acirc:"Letra a latina minúscula con acento circunflexo",atilde:"Letra a latina minúscula con til",auml:"Letra a latina minúscula con diérese",aring:"Letra a latina minúscula con aro enriba",aelig:"Letra æ latina minúscula",ccedil:"Letra c latina minúscula con cedilla",egrave:"Letra e latina minúscula con acento grave",eacute:"Letra e latina minúscula con acento agudo",ecirc:"Letra e latina minúscula con acento circunflexo",euml:"Letra e latina minúscula con diérese",igrave:"Letra i latina minúscula con acento grave",
-iacute:"Letra i latina minúscula con acento agudo",icirc:"Letra i latina minúscula con acento circunflexo",iuml:"Letra i latina minúscula con diérese",eth:"Letra ed latina minúscula",ntilde:"Letra n latina minúscula con til",ograve:"Letra o latina minúscula con acento grave",oacute:"Letra o latina minúscula con acento agudo",ocirc:"Letra o latina minúscula con acento circunflexo",otilde:"Letra o latina minúscula con til",ouml:"Letra o latina minúscula con diérese",divide:"Signo de división",oslash:"Letra o latina minúscula con barra transversal",
-ugrave:"Letra u latina minúscula con acento grave",uacute:"Letra u latina minúscula con acento agudo",ucirc:"Letra u latina minúscula con acento circunflexo",uuml:"Letra u latina minúscula con diérese",yacute:"Letra y latina minúscula con acento agudo",thorn:"Letra Thorn latina minúscula",yuml:"Letra y latina minúscula con diérese",OElig:"Ligadura OE latina maiúscula",oelig:"Ligadura oe latina minúscula",372:"Letra W latina maiúscula con acento circunflexo",374:"Letra Y latina maiúscula con acento circunflexo",
-373:"Letra w latina minúscula con acento circunflexo",375:"Letra y latina minúscula con acento circunflexo",sbquo:"Comiña simple baixa, de apertura",8219:"Comiña simple alta, de peche",bdquo:"Comiñas dobres baixas, de apertura",hellip:"Elipse, puntos suspensivos",trade:"Signo de marca rexistrada",9658:"Apuntador negro apuntando á dereita",bull:"Viñeta",rarr:"Frecha á dereita",rArr:"Frecha dobre á dereita",hArr:"Frecha dobre da esquerda á dereita",diams:"Diamante negro",asymp:"Case igual a"});
\ No newline at end of file
diff --git a/web/modules/ckeditor/vendor/plugins/specialchar/dialogs/lang/he.js b/web/modules/ckeditor/vendor/plugins/specialchar/dialogs/lang/he.js
deleted file mode 100644
index 6f0c7e039dc2ef96ea053236d95de5d0c8aa2c77..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/plugins/specialchar/dialogs/lang/he.js
+++ /dev/null
@@ -1,12 +0,0 @@
-/*
- Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
- For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
-*/
-CKEDITOR.plugins.setLang("specialchar","he",{euro:"יורו",lsquo:"סימן ציטוט יחיד שמאלי",rsquo:"סימן ציטוט יחיד ימני",ldquo:"סימן ציטוט כפול שמאלי",rdquo:"סימן ציטוט כפול ימני",ndash:"קו מפריד קצר",mdash:"קו מפריד ארוך",iexcl:"סימן קריאה הפוך",cent:"סנט",pound:"פאונד",curren:"מטבע",yen:"ין",brvbar:"קו שבור",sect:"סימן מקטע",uml:"שתי נקודות אופקיות (Diaeresis)",copy:"סימן זכויות יוצרים (Copyright)",ordf:"סימן אורדינאלי נקבי",laquo:"סימן ציטוט זווית כפולה לשמאל",not:"סימן שלילה מתמטי",reg:"סימן רשום",
-macr:"מקרון (הגיה ארוכה)",deg:"מעלות",sup2:"2 בכתיב עילי",sup3:"3 בכתיב עילי",acute:"סימן דגוש (Acute)",micro:"מיקרו",para:"סימון פסקה",middot:"נקודה אמצעית",cedil:"סדיליה",sup1:"1 בכתיב עילי",ordm:"סימן אורדינאלי זכרי",raquo:"סימן ציטוט זווית כפולה לימין",frac14:"רבע בשבר פשוט",frac12:"חצי בשבר פשוט",frac34:"שלושה רבעים בשבר פשוט",iquest:"סימן שאלה הפוך",Agrave:"אות לטינית A עם גרש (Grave)",Aacute:"Latin capital letter A with acute accent",Acirc:"Latin capital letter A with circumflex",Atilde:"Latin capital letter A with tilde",
-Auml:"Latin capital letter A with diaeresis",Aring:"Latin capital letter A with ring above",AElig:"אות לטינית Æ גדולה",Ccedil:"Latin capital letter C with cedilla",Egrave:"אות לטינית E עם גרש (Grave)",Eacute:"Latin capital letter E with acute accent",Ecirc:"Latin capital letter E with circumflex",Euml:"Latin capital letter E with diaeresis",Igrave:"אות לטינית I עם גרש (Grave)",Iacute:"Latin capital letter I with acute accent",Icirc:"Latin capital letter I with circumflex",Iuml:"Latin capital letter I with diaeresis",
-ETH:"אות לטינית Eth גדולה",Ntilde:"Latin capital letter N with tilde",Ograve:"אות לטינית O עם גרש (Grave)",Oacute:"Latin capital letter O with acute accent",Ocirc:"Latin capital letter O with circumflex",Otilde:"Latin capital letter O with tilde",Ouml:"Latin capital letter O with diaeresis",times:"סימן כפל",Oslash:"Latin capital letter O with stroke",Ugrave:"אות לטינית U עם גרש (Grave)",Uacute:"Latin capital letter U with acute accent",Ucirc:"Latin capital letter U with circumflex",Uuml:"Latin capital letter U with diaeresis",
-Yacute:"Latin capital letter Y with acute accent",THORN:"אות לטינית Thorn גדולה",szlig:"אות לטינית s חדה קטנה",agrave:"אות לטינית a עם גרש (Grave)",aacute:"Latin small letter a with acute accent",acirc:"Latin small letter a with circumflex",atilde:"Latin small letter a with tilde",auml:"Latin small letter a with diaeresis",aring:"Latin small letter a with ring above",aelig:"אות לטינית æ קטנה",ccedil:"Latin small letter c with cedilla",egrave:"אות לטינית e עם גרש (Grave)",eacute:"Latin small letter e with acute accent",
-ecirc:"Latin small letter e with circumflex",euml:"Latin small letter e with diaeresis",igrave:"אות לטינית i עם גרש (Grave)",iacute:"Latin small letter i with acute accent",icirc:"Latin small letter i with circumflex",iuml:"Latin small letter i with diaeresis",eth:"אות לטינית eth קטנה",ntilde:"Latin small letter n with tilde",ograve:"אות לטינית o עם גרש (Grave)",oacute:"Latin small letter o with acute accent",ocirc:"Latin small letter o with circumflex",otilde:"Latin small letter o with tilde",ouml:"Latin small letter o with diaeresis",
-divide:"סימן חלוקה",oslash:"Latin small letter o with stroke",ugrave:"אות לטינית u עם גרש (Grave)",uacute:"Latin small letter u with acute accent",ucirc:"Latin small letter u with circumflex",uuml:"Latin small letter u with diaeresis",yacute:"Latin small letter y with acute accent",thorn:"אות לטינית thorn קטנה",yuml:"Latin small letter y with diaeresis",OElig:"Latin capital ligature OE",oelig:"Latin small ligature oe",372:"Latin capital letter W with circumflex",374:"Latin capital letter Y with circumflex",
-373:"Latin small letter w with circumflex",375:"Latin small letter y with circumflex",sbquo:"סימן ציטוט נמוך יחיד",8219:"סימן ציטוט",bdquo:"סימן ציטוט נמוך כפול",hellip:"שלוש נקודות",trade:"סימן טריידמארק",9658:"סמן שחור לצד ימין",bull:"תבליט (רשימה)",rarr:"חץ לימין",rArr:"חץ כפול לימין",hArr:"חץ כפול לימין ושמאל",diams:"יהלום מלא",asymp:"כמעט שווה"});
\ No newline at end of file
diff --git a/web/modules/ckeditor/vendor/plugins/specialchar/dialogs/lang/hr.js b/web/modules/ckeditor/vendor/plugins/specialchar/dialogs/lang/hr.js
deleted file mode 100644
index 9cf926d731eadc9a5736bf796a4d18a970040028..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/plugins/specialchar/dialogs/lang/hr.js
+++ /dev/null
@@ -1,13 +0,0 @@
-/*
- Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
- For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
-*/
-CKEDITOR.plugins.setLang("specialchar","hr",{euro:"Euro znak",lsquo:"Lijevi jednostruki navodnik",rsquo:"Desni jednostruki navodnik",ldquo:"Lijevi dvostruki navodnik",rdquo:"Desni dvostruki navodnik",ndash:"En crtica",mdash:"Em crtica",iexcl:"Naopaki uskličnik",cent:"Cent znak",pound:"Funta znak",curren:"Znak valute",yen:"Yen znak",brvbar:"Potrgana prečka",sect:"Znak odjeljka",uml:"Prijeglasi",copy:"Copyright znak",ordf:"Ženska redna oznaka",laquo:"Lijevi dvostruki uglati navodnik",not:"Not znak",
-reg:"Registered znak",macr:"Crta iznad",deg:"Stupanj znak",sup2:"Eksponent 2",sup3:"Eksponent tri",acute:"Akcent",micro:"Mikro znak",para:"Znak paragrafa",middot:"Srednja točka",cedil:"Cedilla",sup1:"Eksponent 1",ordm:"Muška redna oznaka",raquo:"Desni dvostruku uglati navodnik",frac14:"Četvrtina",frac12:"Polovina",frac34:"Tri četvrtine",iquest:"Naopaki upitnik",Agrave:"Veliko latinsko slovo A s akcentom",Aacute:"Latinično veliko slovo A sa oštrim naglaskom",Acirc:"Latinično veliko slovo A sa circumflex",
-Atilde:"Latinično veliko slovo A sa tildom",Auml:"Latinično veliko slovo A sa diaeresis",Aring:"Latinično veliko slovo A sa gornjim prstenom",AElig:"Latinično veliko slovo Æ",Ccedil:"Veliko latinično slovo C sa cedilla",Egrave:"Veliko latinično slovo E sa akcentom",Eacute:"Veliko latinično slovo E sa  akcentom",Ecirc:"Veliko latinično slovo E sa circumflex",Euml:"Veliko latinično slovo E sa diaresis",Igrave:"Veliko latinično slovo I sa akcentom",Iacute:"Veliko latinično slovo I sa akcentom",Icirc:"Veliko latinično slovo I sa circumflex",
-Iuml:"Veliko latinično slovo I sa diaresis",ETH:"Veliko latinično slovo Eth",Ntilde:"Veliko latinično slovo N sa tildom",Ograve:"Veliko latinično slovo O sa akcentom",Oacute:"Veliko latinično slovo O sa akcentom",Ocirc:"Veliko latinično slovo O sa circumflex",Otilde:"Veliko latinično slovo O sa tildom",Ouml:"Veliko latinično slovo O sa diaresis",times:"Znak množenja",Oslash:"Veliko latinično slovo O sa crtom",Ugrave:"Veliko latinično slovo U sa akcentom",Uacute:"Veliko latinično slovo U sa akcentom",
-Ucirc:"Veliko latinično slovo U sa circumflex",Uuml:"Veliko latinično slovo U sa diaresis",Yacute:"Veliko latinično slovo Y sa akcentom",THORN:"Veliko latinično slovo Trn",szlig:"Malo latinično slovo oštro s",agrave:"Malo latinično slovo a sa akcentom",aacute:"Malo latinično slovo sa akcentom",acirc:"Malo latinično slovo a sa circumflex",atilde:"Malo latinično slovo a sa tildom",auml:"Malo latinično slovo a sa diaresis",aring:"Malo latinično slovo a sa gornjim prstenom",aelig:"Malo latinično slovo æ",
-ccedil:"Malo latinično slovo e sa cedilla",egrave:"Malo latinično slovo e sa akcentom",eacute:"Malo latinično slovo e sa akcentom",ecirc:"Malo latinično slovo e sa circumflex",euml:"Malo latinično slovo e sa diaresis",igrave:"Malo latinično slovo i sa akcentom",iacute:"Malo latinično slovo i sa akcentom",icirc:"Malo latinično slovo i sa circumflex",iuml:"Malo latinično slovo i sa diaresis",eth:"Malo latinično slovo eth",ntilde:"Malo latinično slovo n sa tildom",ograve:"Malo latinično slovo o sa akcentom",
-oacute:"Malo latinično slovo o sa akcentom",ocirc:"Malo latinično slovo o sa circumflex",otilde:"Malo latinično slovo o sa tildom",ouml:"Malo latinično slovo o sa diaresis",divide:"Znak dijeljenja",oslash:"Malo latinično slovo o sa crtom",ugrave:"Malo latinično slovo s akcentom",uacute:"Malo latinično slovo u sa akcentom",ucirc:"Malo latinično slovo sa circumflex",uuml:"Malo latinično slovo u sa diaresis",yacute:"Malo latinično slovo y s akcentom",thorn:"Malo latinično slovo Trn",yuml:"Malo latinično slovo y sa diaresis",
-OElig:"Veliko latinično slovo OE",oelig:"Malo latinično slovoe OE",372:"Veliko latinično slovo W sa circumflex",374:"Veliko latinično slovo Y sa circumflex",373:"Malo latinično slovo w sa circumflex",375:"Malo latinično slovo y sa circumflex",sbquo:"Jednostruki donji navodnik",8219:"Jednostruki gornji navodnik",bdquo:"Dvostruki donji navodnik",hellip:"Tri točkice",trade:"TM znak",9658:"Crni desni pokazivač",bull:"Bullet",rarr:"Desna strelica",rArr:"Desna dvostruka strelica",hArr:"Dvostruka strelica",
-diams:"Crni dijamant",asymp:"Približno"});
\ No newline at end of file
diff --git a/web/modules/ckeditor/vendor/plugins/specialchar/dialogs/lang/hu.js b/web/modules/ckeditor/vendor/plugins/specialchar/dialogs/lang/hu.js
deleted file mode 100644
index cccdca33af3237f39c3b6a783e1379797c446cf1..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/plugins/specialchar/dialogs/lang/hu.js
+++ /dev/null
@@ -1,12 +0,0 @@
-/*
- Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
- For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
-*/
-CKEDITOR.plugins.setLang("specialchar","hu",{euro:"Euró jel",lsquo:"Bal szimpla idézőjel",rsquo:"Jobb szimpla idézőjel",ldquo:"Bal dupla idézőjel",rdquo:"Jobb dupla idézőjel",ndash:"Rövid gondolatjel",mdash:"Hosszú gondolatjel",iexcl:"Fordított felkiáltójel",cent:"Cent jel",pound:"Font jel",curren:"Valuta jel",yen:"Yen jel",brvbar:"Hosszú kettőspont",sect:"Paragrafus jel",uml:"Kettős hangzó jel",copy:"Szerzői jog jel",ordf:"Női sorrend mutatója",laquo:"Balra mutató duplanyíl",not:"Feltételes kötőjel",
-reg:"Bejegyzett védjegy jele",macr:"Hosszúsági jel",deg:"Fok jel",sup2:"Négyzeten jel",sup3:"Köbön jel",acute:"Éles ékezet",micro:"Mikro-jel",para:"Bekezdés jel",middot:"Közép pont",cedil:"Cédille",sup1:"Elsőn jel",ordm:"Férfi sorrend mutatója",raquo:"Jobbra mutató duplanyíl",frac14:"Egy negyed jel",frac12:"Egy ketted jel",frac34:"Három negyed jel",iquest:"Fordított kérdőjel",Agrave:"Latin nagy A fordított ékezettel",Aacute:"Latin nagy A normál ékezettel",Acirc:"Latin nagy A hajtott ékezettel",Atilde:"Latin nagy A hullámjellel",
-Auml:"Latin nagy A kettőspont ékezettel",Aring:"Latin nagy A gyűrű ékezettel",AElig:"Latin nagy Æ betű",Ccedil:"Latin nagy C cedillával",Egrave:"Latin nagy E fordított ékezettel",Eacute:"Latin nagy E normál ékezettel",Ecirc:"Latin nagy E hajtott ékezettel",Euml:"Latin nagy E dupla kettőspont ékezettel",Igrave:"Latin nagy I fordított ékezettel",Iacute:"Latin nagy I normál ékezettel",Icirc:"Latin nagy I hajtott ékezettel",Iuml:"Latin nagy I kettőspont ékezettel",ETH:"Latin nagy Eth betű",Ntilde:"Latin nagy N hullámjellel",
-Ograve:"Latin nagy O fordított ékezettel",Oacute:"Latin nagy O normál ékezettel",Ocirc:"Latin nagy O hajtott ékezettel",Otilde:"Latin nagy O hullámjellel",Ouml:"Latin nagy O kettőspont ékezettel",times:"Szorzás jel",Oslash:"Latin O betű áthúzással",Ugrave:"Latin nagy U fordított ékezettel",Uacute:"Latin nagy U normál ékezettel",Ucirc:"Latin nagy U hajtott ékezettel",Uuml:"Latin nagy U kettőspont ékezettel",Yacute:"Latin nagy Y normál ékezettel",THORN:"Latin nagy Thorn betű",szlig:"Latin kis s betű",
-agrave:"Latin kis a fordított ékezettel",aacute:"Latin kis a normál ékezettel",acirc:"Latin kis a hajtott ékezettel",atilde:"Latin kis a hullámjellel",auml:"Latin kis a kettőspont ékezettel",aring:"Latin kis a gyűrű ékezettel",aelig:"Latin kis æ betű",ccedil:"Latin kis c cedillával",egrave:"Latin kis e fordított ékezettel",eacute:"Latin kis e normál ékezettel",ecirc:"Latin kis e hajtott ékezettel",euml:"Latin kis e dupla kettőspont ékezettel",igrave:"Latin kis i fordított ékezettel",iacute:"Latin kis i normál ékezettel",
-icirc:"Latin kis i hajtott ékezettel",iuml:"Latin kis i kettőspont ékezettel",eth:"Latin kis eth betű",ntilde:"Latin kis n hullámjellel",ograve:"Latin kis o fordított ékezettel",oacute:"Latin kis o normál ékezettel",ocirc:"Latin kis o hajtott ékezettel",otilde:"Latin kis o hullámjellel",ouml:"Latin kis o kettőspont ékezettel",divide:"Osztásjel",oslash:"Latin kis o betű áthúzással",ugrave:"Latin kis u fordított ékezettel",uacute:"Latin kis u normál ékezettel",ucirc:"Latin kis u hajtott ékezettel",
-uuml:"Latin kis u kettőspont ékezettel",yacute:"Latin kis y normál ékezettel",thorn:"Latin kis thorn jel",yuml:"Latin kis y kettőspont ékezettel",OElig:"Latin nagy OE-jel",oelig:"Latin kis oe-jel",372:"Latin nagy W hajtott ékezettel",374:"Latin nagy Y hajtott ékezettel",373:"Latin kis w hajtott ékezettel",375:"Latin kis y hajtott ékezettel",sbquo:"Nyitó nyomdai szimpla idézőjel",8219:"Záró nyomdai záró idézőjel",bdquo:"Nyitó nyomdai dupla idézőjel",hellip:"Három pont",trade:"Kereskedelmi védjegy jele",
-9658:"Jobbra mutató fekete mutató",bull:"Golyó",rarr:"Jobbra mutató nyíl",rArr:"Jobbra mutató duplanyíl",hArr:"Bal-jobb duplanyíl",diams:"Fekete gyémánt jel",asymp:"Majdnem egyenlő jel"});
\ No newline at end of file
diff --git a/web/modules/ckeditor/vendor/plugins/specialchar/dialogs/lang/id.js b/web/modules/ckeditor/vendor/plugins/specialchar/dialogs/lang/id.js
deleted file mode 100644
index d88fdff141ee02e9ec5915e9399ae36535bc9c05..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/plugins/specialchar/dialogs/lang/id.js
+++ /dev/null
@@ -1,13 +0,0 @@
-/*
- Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
- For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
-*/
-CKEDITOR.plugins.setLang("specialchar","id",{euro:"Tanda Euro",lsquo:"Tanda kutip tunggal kiri",rsquo:"Tanda kutip tunggal kanan",ldquo:"Tanda kutip ganda kiri",rdquo:"Tanda kutip ganda kanan",ndash:"Tanda hubung",mdash:"Sisipan",iexcl:"Tanda seru terbalik",cent:"Tanda cent",pound:"Tanda pound",curren:"Tanda mata uang",yen:"Tanda Yen",brvbar:"Broken bar",sect:"Penanda bagian",uml:"Diaeresis",copy:"Tanda Hak Cipta",ordf:"Indikator ordinal feminin",laquo:"Tanda kutip sudut ganda mengarah ke kiri",not:"Bukan tanda",
-reg:"Tanda Telah Terdaftar",macr:"Garis makron",deg:"Tanda derajat",sup2:"Superskrip dua",sup3:"Superskrip tiga",acute:"Aksen akut",micro:"Tanda mikro",para:"Tanda Pilcrow",middot:"Titik tengah",cedil:"Cedilla",sup1:"Superskrip satu",ordm:"Indikator ordinal maskulin",raquo:"Tanda kutip sudut ganda menunjuk ke kanan",frac14:"Bilangan Pecahan seperempat",frac12:"Bilangan Pecahan setengah",frac34:"Bilangan Pecahan tigaperempat",iquest:"Tanda baca terbalik",Agrave:"Huruf kapital Latin A dengan aksen grave",
-Aacute:"Huruf kapital Latin A dengan aksen acute",Acirc:"Huruf kapital Latin A dengan circumflex",Atilde:"Huruf kapital Latin A dengan tilde",Auml:"Huruf kapital Latin A dengan diaeresis",Aring:"Huruf kapital Latin A dengan cincin di atas",AElig:"huruf kapital latin Æ",Ccedil:"Huruf kapital latin C dengan cedilla",Egrave:"Huruf kapital Latin E dengan aksen grave",Eacute:"Huruf kapital Latin E dengan aksen acute",Ecirc:"Huruf kapital Latin E dengan circumflex",Euml:"Latin capital letter E with diaeresis",
-Igrave:"Latin capital letter I with grave accent",Iacute:"Latin capital letter I with acute accent",Icirc:"Latin capital letter I with circumflex",Iuml:"Latin capital letter I with diaeresis",ETH:"Latin capital letter Eth",Ntilde:"Latin capital letter N with tilde",Ograve:"Latin capital letter O with grave accent",Oacute:"Latin capital letter O with acute accent",Ocirc:"Latin capital letter O with circumflex",Otilde:"Latin capital letter O with tilde",Ouml:"Latin capital letter O with diaeresis",
-times:"Tanda perkalian",Oslash:"Latin capital letter O with stroke",Ugrave:"Latin capital letter U with grave accent",Uacute:"Latin capital letter U with acute accent",Ucirc:"Latin capital letter U with circumflex",Uuml:"Latin capital letter U with diaeresis",Yacute:"Latin capital letter Y with acute accent",THORN:"Latin capital letter Thorn",szlig:"Latin small letter sharp s",agrave:"Latin small letter a with grave accent",aacute:"Latin small letter a with acute accent",acirc:"Latin small letter a with circumflex",
-atilde:"Latin small letter a with tilde",auml:"Latin small letter a with diaeresis",aring:"Latin small letter a with ring above",aelig:"Latin small letter æ",ccedil:"Latin small letter c with cedilla",egrave:"Latin small letter e with grave accent",eacute:"Latin small letter e with acute accent",ecirc:"Latin small letter e with circumflex",euml:"Latin small letter e with diaeresis",igrave:"Latin small letter i with grave accent",iacute:"Latin small letter i with acute accent",icirc:"Latin small letter i with circumflex",
-iuml:"Latin small letter i with diaeresis",eth:"Latin small letter eth",ntilde:"Latin small letter n with tilde",ograve:"Latin small letter o with grave accent",oacute:"Latin small letter o with acute accent",ocirc:"Latin small letter o with circumflex",otilde:"Latin small letter o with tilde",ouml:"Latin small letter o with diaeresis",divide:"Tanda bagi",oslash:"Latin small letter o with stroke",ugrave:"Latin small letter u with grave accent",uacute:"Latin small letter u with acute accent",ucirc:"Latin small letter u with circumflex",
-uuml:"Latin small letter u with diaeresis",yacute:"Latin small letter y with acute accent",thorn:"Latin small letter thorn",yuml:"Latin small letter y with diaeresis",OElig:"Latin capital ligature OE",oelig:"Latin small ligature oe",372:"Latin capital letter W with circumflex",374:"Latin capital letter Y with circumflex",373:"Latin small letter w with circumflex",375:"Latin small letter y with circumflex",sbquo:"Single low-9 quotation mark",8219:"Single high-reversed-9 quotation mark",bdquo:"Double low-9 quotation mark",
-hellip:"Horizontal ellipsis",trade:"Trade mark sign",9658:"Black right-pointing pointer",bull:"Bullet",rarr:"Rightwards arrow",rArr:"Rightwards double arrow",hArr:"Left right double arrow",diams:"Black diamond suit",asymp:"Almost equal to"});
\ No newline at end of file
diff --git a/web/modules/ckeditor/vendor/plugins/specialchar/dialogs/lang/it.js b/web/modules/ckeditor/vendor/plugins/specialchar/dialogs/lang/it.js
deleted file mode 100644
index ab291bd853e816688aa614b936861acd61996710..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/plugins/specialchar/dialogs/lang/it.js
+++ /dev/null
@@ -1,14 +0,0 @@
-/*
- Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
- For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
-*/
-CKEDITOR.plugins.setLang("specialchar","it",{euro:"Simbolo Euro",lsquo:"Virgoletta singola sinistra",rsquo:"Virgoletta singola destra",ldquo:"Virgolette aperte",rdquo:"Virgolette chiuse",ndash:"Trattino",mdash:"Trattino lungo",iexcl:"Punto esclavamativo invertito",cent:"Simbolo Cent",pound:"Simbolo Sterlina",curren:"Simbolo Moneta",yen:"Simbolo Yen",brvbar:"Barra interrotta",sect:"Simbolo di sezione",uml:"Dieresi",copy:"Simbolo Copyright",ordf:"Indicatore ordinale femminile",laquo:"Virgolette basse aperte",
-not:"Nessun segno",reg:"Simbolo Registrato",macr:"Macron",deg:"Simbolo Grado",sup2:"Apice Due",sup3:"Apice Tre",acute:"Accento acuto",micro:"Simbolo Micro",para:"Simbolo Paragrafo",middot:"Punto centrale",cedil:"Cediglia",sup1:"Apice Uno",ordm:"Indicatore ordinale maschile",raquo:"Virgolette basse chiuse",frac14:"Frazione volgare un quarto",frac12:"Frazione volgare un mezzo",frac34:"Frazione volgare tre quarti",iquest:"Punto interrogativo invertito",Agrave:"Lettera maiuscola latina A con accento grave",
-Aacute:"Lettera maiuscola latina A con accento acuto",Acirc:"Lettera maiuscola latina A con accento circonflesso",Atilde:"Lettera maiuscola latina A con tilde",Auml:"Lettera maiuscola latina A con dieresi",Aring:"Lettera maiuscola latina A con anello sopra",AElig:"Lettera maiuscola latina Æ",Ccedil:"Lettera maiuscola latina C con cediglia",Egrave:"Lettera maiuscola latina E con accento grave",Eacute:"Lettera maiuscola latina E con accento acuto",Ecirc:"Lettera maiuscola latina E con accento circonflesso",
-Euml:"Lettera maiuscola latina E con dieresi",Igrave:"Lettera maiuscola latina I con accento grave",Iacute:"Lettera maiuscola latina I con accento acuto",Icirc:"Lettera maiuscola latina I con accento circonflesso",Iuml:"Lettera maiuscola latina I con dieresi",ETH:"Lettera maiuscola latina Eth",Ntilde:"Lettera maiuscola latina N con tilde",Ograve:"Lettera maiuscola latina O con accento grave",Oacute:"Lettera maiuscola latina O con accento acuto",Ocirc:"Lettera maiuscola latina O con accento circonflesso",
-Otilde:"Lettera maiuscola latina O con tilde",Ouml:"Lettera maiuscola latina O con dieresi",times:"Simbolo di moltiplicazione",Oslash:"Lettera maiuscola latina O barrata",Ugrave:"Lettera maiuscola latina U con accento grave",Uacute:"Lettera maiuscola latina U con accento acuto",Ucirc:"Lettera maiuscola latina U con accento circonflesso",Uuml:"Lettera maiuscola latina U con accento circonflesso",Yacute:"Lettera maiuscola latina Y con accento acuto",THORN:"Lettera maiuscola latina Thorn",szlig:"Lettera latina minuscola doppia S",
-agrave:"Lettera minuscola latina a con accento grave",aacute:"Lettera minuscola latina a con accento acuto",acirc:"Lettera minuscola latina a con accento circonflesso",atilde:"Lettera minuscola latina a con tilde",auml:"Lettera minuscola latina a con dieresi",aring:"Lettera minuscola latina a con anello superiore",aelig:"Lettera minuscola latina ae",ccedil:"Lettera minuscola latina c con cediglia",egrave:"Lettera minuscola latina e con accento grave",eacute:"Lettera minuscola latina e con accento acuto",
-ecirc:"Lettera minuscola latina e con accento circonflesso",euml:"Lettera minuscola latina e con dieresi",igrave:"Lettera minuscola latina i con accento grave",iacute:"Lettera minuscola latina i con accento acuto",icirc:"Lettera minuscola latina i con accento circonflesso",iuml:"Lettera minuscola latina i con dieresi",eth:"Lettera minuscola latina eth",ntilde:"Lettera minuscola latina n con tilde",ograve:"Lettera minuscola latina o con accento grave",oacute:"Lettera minuscola latina o con accento acuto",
-ocirc:"Lettera minuscola latina o con accento circonflesso",otilde:"Lettera minuscola latina o con tilde",ouml:"Lettera minuscola latina o con dieresi",divide:"Simbolo di divisione",oslash:"Lettera minuscola latina o barrata",ugrave:"Lettera minuscola latina u con accento grave",uacute:"Lettera minuscola latina u con accento acuto",ucirc:"Lettera minuscola latina u con accento circonflesso",uuml:"Lettera minuscola latina u con dieresi",yacute:"Lettera minuscola latina y con accento acuto",thorn:"Lettera minuscola latina thorn",
-yuml:"Lettera minuscola latina y con dieresi",OElig:"Legatura maiuscola latina OE",oelig:"Legatura minuscola latina oe",372:"Lettera maiuscola latina W con accento circonflesso",374:"Lettera maiuscola latina Y con accento circonflesso",373:"Lettera minuscola latina w con accento circonflesso",375:"Lettera minuscola latina y con accento circonflesso",sbquo:"Singola virgoletta bassa low-9",8219:"Singola virgoletta bassa low-9 inversa",bdquo:"Doppia virgoletta bassa low-9",hellip:"Ellissi orizzontale",
-trade:"Simbolo TM",9658:"Puntatore nero rivolto verso destra",bull:"Punto",rarr:"Freccia verso destra",rArr:"Doppia freccia verso destra",hArr:"Doppia freccia sinistra destra",diams:"Simbolo nero diamante",asymp:"Quasi uguale a"});
\ No newline at end of file
diff --git a/web/modules/ckeditor/vendor/plugins/specialchar/dialogs/lang/ja.js b/web/modules/ckeditor/vendor/plugins/specialchar/dialogs/lang/ja.js
deleted file mode 100644
index cccb9dfffa661ae02f2b0e1b4cb4c35043465a78..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/plugins/specialchar/dialogs/lang/ja.js
+++ /dev/null
@@ -1,9 +0,0 @@
-/*
- Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
- For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
-*/
-CKEDITOR.plugins.setLang("specialchar","ja",{euro:"ユーロ記号",lsquo:"左シングル引用符",rsquo:"右シングル引用符",ldquo:"左ダブル引用符",rdquo:"右ダブル引用符",ndash:"半角ダッシュ",mdash:"全角ダッシュ",iexcl:"逆さ感嘆符",cent:"セント記号",pound:"ポンド記号",curren:"通貨記号",yen:"円記号",brvbar:"上下に分かれた縦棒",sect:"節記号",uml:"分音記号(ウムラウト)",copy:"著作権表示記号",ordf:"女性序数標識",laquo:" 始め二重山括弧引用記号",not:"論理否定記号",reg:"登録商標記号",macr:"長音符",deg:"度記号",sup2:"上つき2, 2乗",sup3:"上つき3, 3乗",acute:"揚音符",micro:"ミクロン記号",para:"段落記号",middot:"中黒",cedil:"セディラ",sup1:"上つき1",ordm:"男性序数標識",raquo:"終わり二重山括弧引用記号",
-frac14:"四分の一",frac12:"二分の一",frac34:"四分の三",iquest:"逆疑問符",Agrave:"抑音符つき大文字A",Aacute:"揚音符つき大文字A",Acirc:"曲折アクセントつき大文字A",Atilde:"チルダつき大文字A",Auml:"分音記号つき大文字A",Aring:"リングつき大文字A",AElig:"AとEの合字",Ccedil:"セディラつき大文字C",Egrave:"抑音符つき大文字E",Eacute:"揚音符つき大文字E",Ecirc:"曲折アクセントつき大文字E",Euml:"分音記号つき大文字E",Igrave:"抑音符つき大文字I",Iacute:"揚音符つき大文字I",Icirc:"曲折アクセントつき大文字I",Iuml:"分音記号つき大文字I",ETH:"[アイスランド語]大文字ETH",Ntilde:"チルダつき大文字N",Ograve:"抑音符つき大文字O",Oacute:"揚音符つき大文字O",Ocirc:"曲折アクセントつき大文字O",Otilde:"チルダつき大文字O",Ouml:" 分音記号つき大文字O",
-times:"乗算記号",Oslash:"打ち消し線つき大文字O",Ugrave:"抑音符つき大文字U",Uacute:"揚音符つき大文字U",Ucirc:"曲折アクセントつき大文字U",Uuml:"分音記号つき大文字U",Yacute:"揚音符つき大文字Y",THORN:"[アイスランド語]大文字THORN",szlig:"ドイツ語エスツェット",agrave:"抑音符つき小文字a",aacute:"揚音符つき小文字a",acirc:"曲折アクセントつき小文字a",atilde:"チルダつき小文字a",auml:"分音記号つき小文字a",aring:"リングつき小文字a",aelig:"aとeの合字",ccedil:"セディラつき小文字c",egrave:"抑音符つき小文字e",eacute:"揚音符つき小文字e",ecirc:"曲折アクセントつき小文字e",euml:"分音記号つき小文字e",igrave:"抑音符つき小文字i",iacute:"揚音符つき小文字i",icirc:"曲折アクセントつき小文字i",iuml:"分音記号つき小文字i",eth:"アイスランド語小文字eth",
-ntilde:"チルダつき小文字n",ograve:"抑音符つき小文字o",oacute:"揚音符つき小文字o",ocirc:"曲折アクセントつき小文字o",otilde:"チルダつき小文字o",ouml:"分音記号つき小文字o",divide:"除算記号",oslash:"打ち消し線つき小文字o",ugrave:"抑音符つき小文字u",uacute:"揚音符つき小文字u",ucirc:"曲折アクセントつき小文字u",uuml:"分音記号つき小文字u",yacute:"揚音符つき小文字y",thorn:"アイスランド語小文字thorn",yuml:"分音記号つき小文字y",OElig:"OとEの合字",oelig:"oとeの合字",372:"曲折アクセントつき大文字W",374:"曲折アクセントつき大文字Y",373:"曲折アクセントつき小文字w",375:"曲折アクセントつき小文字y",sbquo:"シングル下引用符",8219:"左右逆の左引用符",bdquo:"ダブル下引用符",hellip:"三点リーダ",trade:"商標記号",9658:"右黒三角ポインタ",bull:"黒丸",
-rarr:"右矢印",rArr:"右二重矢印",hArr:"左右二重矢印",diams:"ダイヤ",asymp:"漸近"});
\ No newline at end of file
diff --git a/web/modules/ckeditor/vendor/plugins/specialchar/dialogs/lang/km.js b/web/modules/ckeditor/vendor/plugins/specialchar/dialogs/lang/km.js
deleted file mode 100644
index 7845bde63d603b529646ac0e987d1c8a92acaf43..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/plugins/specialchar/dialogs/lang/km.js
+++ /dev/null
@@ -1,13 +0,0 @@
-/*
- Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
- For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
-*/
-CKEDITOR.plugins.setLang("specialchar","km",{euro:"សញ្ញា​អឺរ៉ូ",lsquo:"Left single quotation mark",rsquo:"Right single quotation mark",ldquo:"Left double quotation mark",rdquo:"Right double quotation mark",ndash:"En dash",mdash:"Em dash",iexcl:"Inverted exclamation mark",cent:"សញ្ញា​សេន",pound:"សញ្ញា​ផោន",curren:"សញ្ញា​រូបិយបណ្ណ",yen:"សញ្ញា​យ៉េន",brvbar:"Broken bar",sect:"Section sign",uml:"Diaeresis",copy:"សញ្ញា​រក្សា​សិទ្ធិ",ordf:"Feminine ordinal indicator",laquo:"Left-pointing double angle quotation mark",
-not:"Not sign",reg:"Registered sign",macr:"Macron",deg:"សញ្ញា​ដឺក្រេ",sup2:"Superscript two",sup3:"Superscript three",acute:"Acute accent",micro:"សញ្ញា​មីក្រូ",para:"Pilcrow sign",middot:"Middle dot",cedil:"Cedilla",sup1:"Superscript one",ordm:"Masculine ordinal indicator",raquo:"Right-pointing double angle quotation mark",frac14:"Vulgar fraction one quarter",frac12:"Vulgar fraction one half",frac34:"Vulgar fraction three quarters",iquest:"Inverted question mark",Agrave:"Latin capital letter A with grave accent",
-Aacute:"Latin capital letter A with acute accent",Acirc:"Latin capital letter A with circumflex",Atilde:"Latin capital letter A with tilde",Auml:"Latin capital letter A with diaeresis",Aring:"Latin capital letter A with ring above",AElig:"Latin capital letter Æ",Ccedil:"Latin capital letter C with cedilla",Egrave:"Latin capital letter E with grave accent",Eacute:"Latin capital letter E with acute accent",Ecirc:"Latin capital letter E with circumflex",Euml:"Latin capital letter E with diaeresis",Igrave:"Latin capital letter I with grave accent",
-Iacute:"Latin capital letter I with acute accent",Icirc:"Latin capital letter I with circumflex",Iuml:"Latin capital letter I with diaeresis",ETH:"Latin capital letter Eth",Ntilde:"Latin capital letter N with tilde",Ograve:"Latin capital letter O with grave accent",Oacute:"Latin capital letter O with acute accent",Ocirc:"Latin capital letter O with circumflex",Otilde:"Latin capital letter O with tilde",Ouml:"Latin capital letter O with diaeresis",times:"Multiplication sign",Oslash:"Latin capital letter O with stroke",
-Ugrave:"Latin capital letter U with grave accent",Uacute:"Latin capital letter U with acute accent",Ucirc:"Latin capital letter U with circumflex",Uuml:"Latin capital letter U with diaeresis",Yacute:"Latin capital letter Y with acute accent",THORN:"Latin capital letter Thorn",szlig:"Latin small letter sharp s",agrave:"Latin small letter a with grave accent",aacute:"Latin small letter a with acute accent",acirc:"Latin small letter a with circumflex",atilde:"Latin small letter a with tilde",auml:"Latin small letter a with diaeresis",
-aring:"Latin small letter a with ring above",aelig:"Latin small letter æ",ccedil:"Latin small letter c with cedilla",egrave:"Latin small letter e with grave accent",eacute:"Latin small letter e with acute accent",ecirc:"Latin small letter e with circumflex",euml:"Latin small letter e with diaeresis",igrave:"Latin small letter i with grave accent",iacute:"Latin small letter i with acute accent",icirc:"Latin small letter i with circumflex",iuml:"Latin small letter i with diaeresis",eth:"Latin small letter eth",
-ntilde:"Latin small letter n with tilde",ograve:"Latin small letter o with grave accent",oacute:"Latin small letter o with acute accent",ocirc:"Latin small letter o with circumflex",otilde:"Latin small letter o with tilde",ouml:"Latin small letter o with diaeresis",divide:"Division sign",oslash:"Latin small letter o with stroke",ugrave:"Latin small letter u with grave accent",uacute:"Latin small letter u with acute accent",ucirc:"Latin small letter u with circumflex",uuml:"Latin small letter u with diaeresis",
-yacute:"Latin small letter y with acute accent",thorn:"Latin small letter thorn",yuml:"Latin small letter y with diaeresis",OElig:"Latin capital ligature OE",oelig:"Latin small ligature oe",372:"Latin capital letter W with circumflex",374:"Latin capital letter Y with circumflex",373:"Latin small letter w with circumflex",375:"Latin small letter y with circumflex",sbquo:"Single low-9 quotation mark",8219:"Single high-reversed-9 quotation mark",bdquo:"Double low-9 quotation mark",hellip:"Horizontal ellipsis",
-trade:"Trade mark sign",9658:"Black right-pointing pointer",bull:"Bullet",rarr:"Rightwards arrow",rArr:"Rightwards double arrow",hArr:"Left right double arrow",diams:"Black diamond suit",asymp:"Almost equal to"});
\ No newline at end of file
diff --git a/web/modules/ckeditor/vendor/plugins/specialchar/dialogs/lang/ko.js b/web/modules/ckeditor/vendor/plugins/specialchar/dialogs/lang/ko.js
deleted file mode 100644
index 0800139d0d071dc3ac799a9b3ed6be50e6b40d5b..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/plugins/specialchar/dialogs/lang/ko.js
+++ /dev/null
@@ -1,10 +0,0 @@
-/*
- Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
- For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
-*/
-CKEDITOR.plugins.setLang("specialchar","ko",{euro:"유로화 기호",lsquo:"왼쪽 외 따옴표",rsquo:"오른쪽 외 따옴표",ldquo:"왼쪽 쌍 따옴표",rdquo:"오른쪽 쌍 따옴표",ndash:"반각 대시",mdash:"전각 대시",iexcl:"반전된 느낌표",cent:"센트 기호",pound:"파운드화 기호",curren:"커런시 기호",yen:"위안화 기호",brvbar:"파선",sect:"섹션 기호",uml:"분음 부호",copy:"저작권 기호",ordf:"Feminine ordinal indicator",laquo:"왼쪽 쌍꺽쇠 인용 부호",not:"금지 기호",reg:"등록 기호",macr:"장음 기호",deg:"도 기호",sup2:"위첨자 2",sup3:"위첨자 3",acute:"양음 악센트 부호",micro:"마이크로 기호",para:"단락 기호",middot:"가운데 점",cedil:"세디유",sup1:"위첨자 1",ordm:"Masculine ordinal indicator",
-raquo:"오른쪽 쌍꺽쇠 인용 부호",frac14:"분수 사분의 일",frac12:"분수 이분의 일",frac34:"분수 사분의 삼",iquest:"뒤집힌 물음표",Agrave:"억음 부호가 있는 라틴 대문자 A",Aacute:"양음 악센트 부호가 있는 라틴 대문자 A",Acirc:"곡절 악센트 부호가 있는 라틴 대문자 A",Atilde:"틸데가 있는 라틴 대문자 A",Auml:"분음 기호가 있는 라틴 대문자 A",Aring:"윗고리가 있는 라틴 대문자 A",AElig:"라틴 대문자 Æ",Ccedil:"세디유가 있는 라틴 대문자 C",Egrave:"억음 부호가 있는 라틴 대문자 E",Eacute:"양음 악센트 부호가 있는 라틴 대문자 E",Ecirc:"곡절 악센트 부호가 있는 라틴 대문자 E",Euml:"분음 기호가 있는 라틴 대문자 E",Igrave:"억음 부호가 있는 라틴 대문자 I",Iacute:"양음 악센트 부호가 있는 라틴 대문자 I",Icirc:"곡절 악센트 부호가 있는 라틴 대문자 I",
-Iuml:"분음 기호가 있는 라틴 대문자 I",ETH:"라틴 대문자 Eth",Ntilde:"틸데가 있는 라틴 대문자 N",Ograve:"억음 부호가 있는 라틴 대문자 O",Oacute:"양음 부호가 있는 라틴 대문자 O",Ocirc:"곡절 악센트 부호가 있는 라틴 대문자 O",Otilde:"틸데가 있는 라틴 대문자 O",Ouml:"분음 기호가 있는 라틴 대문자 O",times:"곱하기 기호",Oslash:"사선이 있는 라틴 대문자 O",Ugrave:"억음 부호가 있는 라틴 대문자 U",Uacute:"양음 부호가 있는 라틴 대문자 U",Ucirc:"곡절 악센트 부호가 있는 라틴 대문자 U",Uuml:"분음 기호가 있는 라틴 대문자 U",Yacute:"양음 부호가 있는 라틴 대문자 Y",THORN:"라틴 대문자 Thorn",szlig:"라틴 소문자 sharp s",agrave:"억음 부호가 있는 라틴 소문자 a",aacute:"양음 부호가 있는 라틴 소문자 a",acirc:"곡절 악센트 부호가 있는 라틴 소문자 a",
-atilde:"틸데가 있는 라틴 소문자 a",auml:"분음 기호가 있는 라틴 소문자 a",aring:"윗고리가 있는 라틴 소문자 a",aelig:"라틴 소문자 æ",ccedil:"세디유가 있는 라틴 소문자 c",egrave:"억음 부호가 있는 라틴 소문자 e",eacute:"양음 부호가 있는 라틴 소문자 e",ecirc:"곡절 악센트 부호가 있는 라틴 소문자 e",euml:"분음 기호가 있는 라틴 소문자 e",igrave:"억음 부호가 있는 라틴 소문자 i",iacute:"양음 부호가 있는 라틴 소문자 i",icirc:"곡절 악센트 부호가 있는 라틴 소문자 i",iuml:"분음 기호가 있는 라틴 소문자 i",eth:"라틴 소문자 eth",ntilde:"틸데가 있는 라틴 소문자 n",ograve:"억음 부호가 있는 라틴 소문자 o",oacute:"양음 부호가 있는 라틴 소문자 o",ocirc:"곡절 악센트 부호가 있는 라틴 소문자 o",otilde:"틸데가 있는 라틴 소문자 o",ouml:"분음 기호가 있는 라틴 소문자 o",
-divide:"나누기 기호",oslash:"사선이 있는 라틴 소문자 o",ugrave:"억음 부호가 있는 라틴 소문자 u",uacute:"양음 부호가 있는 라틴 소문자 u",ucirc:"곡절 악센트 부호가 있는 라틴 소문자 u",uuml:"분음 기호가 있는 라틴 소문자 u",yacute:"양음 부호가 있는 라틴 소문자 y",thorn:"라틴 소문자 thorn",yuml:"분음 기호가 있는 라틴 소문자 y",OElig:"라틴 대문합자 OE",oelig:"라틴 소문합자 oe",372:"곡절 악센트 부호가 있는 라틴 대문자 W",374:"곡절 악센트 부호가 있는 라틴 대문자 Y",373:"곡절 악센트 부호가 있는 라틴 소문자 w",375:"곡절 악센트 부호가 있는 라틴 소문자 y",sbquo:"외 아래-9 인용 부호",8219:"외 위쪽-뒤집힌-9 인용 부호",bdquo:"쌍 아래-9 인용 부호",hellip:"수평 생략 부호",trade:"상표 기호",9658:"검정 오른쪽 포인터",bull:"큰 점",
-rarr:"오른쪽 화살표",rArr:"오른쪽 두 줄 화살표",hArr:"양쪽 두 줄 화살표",diams:"검정 다이아몬드",asymp:"근사"});
\ No newline at end of file
diff --git a/web/modules/ckeditor/vendor/plugins/specialchar/dialogs/lang/ku.js b/web/modules/ckeditor/vendor/plugins/specialchar/dialogs/lang/ku.js
deleted file mode 100644
index a8a7d7f1627cbfee1fff0d3dfec81263fa3bd757..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/plugins/specialchar/dialogs/lang/ku.js
+++ /dev/null
@@ -1,13 +0,0 @@
-/*
- Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
- For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
-*/
-CKEDITOR.plugins.setLang("specialchar","ku",{euro:"نیشانەی یۆرۆ",lsquo:"نیشانەی فاریزەی سەرووژێری تاکی چەپ",rsquo:"نیشانەی فاریزەی سەرووژێری تاکی ڕاست",ldquo:"نیشانەی فاریزەی سەرووژێری دووهێندەی چه‌پ",rdquo:"نیشانەی فاریزەی سەرووژێری دووهێندەی ڕاست",ndash:"تەقەڵی کورت",mdash:"تەقەڵی درێژ",iexcl:"نیشانەی هەڵەوگێڕی سەرسوڕهێنەر",cent:"نیشانەی سەنت",pound:"نیشانەی پاوەند",curren:"نیشانەی دراو",yen:"نیشانەی یەنی ژاپۆنی",brvbar:"شریتی ئەستوونی پچڕاو",sect:"نیشانەی دوو s لەسەریەک",uml:"خاڵ",copy:"نیشانەی مافی چاپ",
-ordf:"هێڵ لەسەر پیتی a",laquo:"دوو تیری بەدووایەکی چەپ",not:"نیشانەی نەخێر",reg:"نیشانەی R لەناو بازنەدا",macr:"ماکڕۆن",deg:"نیشانەی پلە",sup2:"سەرنووسی دوو",sup3:"سەرنووسی سێ",acute:"لاری تیژ",micro:"نیشانەی u لق درێژی چەپی خواروو",para:"نیشانەی پەڕەگراف",middot:"ناوەڕاستی خاڵ",cedil:"نیشانەی c ژێر چووکرە",sup1:"سەرنووسی یەک",ordm:"هێڵ لەژێر پیتی o",raquo:"دوو تیری بەدووایەکی ڕاست",frac14:"یەک لەسەر چووار",frac12:"یەک لەسەر دوو",frac34:"سێ لەسەر چووار",iquest:"هێمای هەڵەوگێری پرسیار",Agrave:"پیتی لاتینی A-ی گەورە لەگەڵ ڕوومەتداری لار",
-Aacute:"پیتی لاتینی A-ی گەورە لەگەڵ ڕوومەتداری تیژ",Acirc:"پیتی لاتینی A-ی گەورە لەگەڵ نیشانە لەسەری",Atilde:"پیتی لاتینی A-ی گەورە لەگەڵ زەڕە",Auml:"پیتی لاتینی A-ی گەورە لەگەڵ نیشانە لەسەری",Aring:"پیتی لاتینی گەورەی Å",AElig:"پیتی لاتینی گەورەی Æ",Ccedil:"پیتی لاتینی C-ی گەورە لەگەڵ ژێر چووکرە",Egrave:"پیتی لاتینی E-ی گەورە لەگەڵ ڕوومەتداری لار",Eacute:"پیتی لاتینی E-ی گەورە لەگەڵ ڕوومەتداری تیژ",Ecirc:"پیتی لاتینی E-ی گەورە لەگەڵ نیشانە لەسەری",Euml:"پیتی لاتینی E-ی گەورە لەگەڵ نیشانە لەسەری",
-Igrave:"پیتی لاتینی I-ی گەورە لەگەڵ ڕوومەتداری لار",Iacute:"پیتی لاتینی I-ی گەورە لەگەڵ ڕوومەتداری تیژ",Icirc:"پیتی لاتینی I-ی گەورە لەگەڵ نیشانە لەسەری",Iuml:"پیتی لاتینی I-ی گەورە لەگەڵ نیشانە لەسەری",ETH:"پیتی لاتینی E-ی گەورەی",Ntilde:"پیتی لاتینی N-ی گەورە لەگەڵ زەڕە",Ograve:"پیتی لاتینی O-ی گەورە لەگەڵ ڕوومەتداری لار",Oacute:"پیتی لاتینی O-ی گەورە لەگەڵ ڕوومەتداری تیژ",Ocirc:"پیتی لاتینی O-ی گەورە لەگەڵ نیشانە لەسەری",Otilde:"پیتی لاتینی O-ی گەورە لەگەڵ زەڕە",Ouml:"پیتی لاتینی O-ی گەورە لەگەڵ نیشانە لەسەری",
-times:"نیشانەی لێکدان",Oslash:"پیتی لاتینی گەورەی Ø لەگەڵ هێمای دڵ وەستان",Ugrave:"پیتی لاتینی U-ی گەورە لەگەڵ ڕوومەتداری لار",Uacute:"پیتی لاتینی U-ی گەورە لەگەڵ ڕوومەتداری تیژ",Ucirc:"پیتی لاتینی U-ی گەورە لەگەڵ نیشانە لەسەری",Uuml:"پیتی لاتینی U-ی گەورە لەگەڵ نیشانە لەسەری",Yacute:"پیتی لاتینی Y-ی گەورە لەگەڵ ڕوومەتداری تیژ",THORN:"پیتی لاتینی دڕکی گەورە",szlig:"پیتی لاتنی نووک تیژی s",agrave:"پیتی لاتینی a-ی بچووک لەگەڵ ڕوومەتداری لار",aacute:"پیتی لاتینی a-ی بچووك لەگەڵ ڕوومەتداری تیژ",acirc:"پیتی لاتینی a-ی بچووك لەگەڵ نیشانە لەسەری",
-atilde:"پیتی لاتینی a-ی بچووك لەگەڵ زەڕە",auml:"پیتی لاتینی a-ی بچووك لەگەڵ نیشانە لەسەری",aring:"پیتی لاتینی å-ی بچووك",aelig:"پیتی لاتینی æ-ی بچووك",ccedil:"پیتی لاتینی c-ی بچووك لەگەڵ ژێر چووکرە",egrave:"پیتی لاتینی e-ی بچووك لەگەڵ ڕوومەتداری لار",eacute:"پیتی لاتینی e-ی بچووك لەگەڵ ڕوومەتداری تیژ",ecirc:"پیتی لاتینی e-ی بچووك لەگەڵ نیشانە لەسەری",euml:"پیتی لاتینی e-ی بچووك لەگەڵ نیشانە لەسەری",igrave:"پیتی لاتینی i-ی بچووك لەگەڵ ڕوومەتداری لار",iacute:"پیتی لاتینی i-ی بچووك لەگەڵ ڕوومەتداری تیژ",
-icirc:"پیتی لاتینی i-ی بچووك لەگەڵ نیشانە لەسەری",iuml:"پیتی لاتینی i-ی بچووك لەگەڵ نیشانە لەسەری",eth:"پیتی لاتینی e-ی بچووك",ntilde:"پیتی لاتینی n-ی بچووك لەگەڵ زەڕە",ograve:"پیتی لاتینی o-ی بچووك لەگەڵ ڕوومەتداری لار",oacute:"پیتی لاتینی o-ی بچووك له‌گەڵ ڕوومەتداری تیژ",ocirc:"پیتی لاتینی o-ی بچووك لەگەڵ نیشانە لەسەری",otilde:"پیتی لاتینی o-ی بچووك لەگەڵ زەڕە",ouml:"پیتی لاتینی o-ی بچووك لەگەڵ نیشانە لەسەری",divide:"نیشانەی دابەش",oslash:"پیتی لاتینی گەورەی ø لەگەڵ هێمای دڵ وەستان",ugrave:"پیتی لاتینی u-ی بچووك لەگەڵ ڕوومەتداری لار",
-uacute:"پیتی لاتینی u-ی بچووك لەگەڵ ڕوومەتداری تیژ",ucirc:"پیتی لاتینی u-ی بچووك لەگەڵ نیشانە لەسەری",uuml:"پیتی لاتینی u-ی بچووك لەگەڵ نیشانە لەسەری",yacute:"پیتی لاتینی y-ی بچووك لەگەڵ ڕوومەتداری تیژ",thorn:"پیتی لاتینی دڕکی بچووك",yuml:"پیتی لاتینی y-ی بچووك لەگەڵ نیشانە لەسەری",OElig:"پیتی لاتینی گەورەی پێکەوەنووسراوی OE",oelig:"پیتی لاتینی بچووکی پێکەوەنووسراوی oe",372:"پیتی لاتینی W-ی گەورە لەگەڵ نیشانە لەسەری",374:"پیتی لاتینی Y-ی گەورە لەگەڵ نیشانە لەسەری",373:"پیتی لاتینی w-ی بچووکی لەگەڵ نیشانە لەسەری",
-375:"پیتی لاتینی y-ی بچووکی لەگەڵ نیشانە لەسەری",sbquo:"نیشانەی فاریزەی نزم",8219:"نیشانەی فاریزەی بەرزی پێچەوانە",bdquo:"دوو فاریزەی تەنیش یەك",hellip:"ئاسۆیی بازنە",trade:"نیشانەی بازرگانی",9658:"ئاراستەی ڕەشی دەستی ڕاست",bull:"فیشەك",rarr:"تیری دەستی ڕاست",rArr:"دووتیری دەستی ڕاست",hArr:"دوو تیری ڕاست و چەپ",diams:"ڕەشی پاقڵاوەیی",asymp:"نیشانەی یەکسانە"});
\ No newline at end of file
diff --git a/web/modules/ckeditor/vendor/plugins/specialchar/dialogs/lang/lt.js b/web/modules/ckeditor/vendor/plugins/specialchar/dialogs/lang/lt.js
deleted file mode 100644
index 8fbf8d709001f68bc9385f7667a53874d2da5c9f..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/plugins/specialchar/dialogs/lang/lt.js
+++ /dev/null
@@ -1,13 +0,0 @@
-/*
- Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
- For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
-*/
-CKEDITOR.plugins.setLang("specialchar","lt",{euro:"Euro ženklas",lsquo:"Left single quotation mark",rsquo:"Right single quotation mark",ldquo:"Left double quotation mark",rdquo:"Right double quotation mark",ndash:"En dash",mdash:"Em dash",iexcl:"Inverted exclamation mark",cent:"Cento ženklas",pound:"Svaro ženklas",curren:"Valiutos ženklas",yen:"Jenos ženklas",brvbar:"Broken bar",sect:"Section sign",uml:"Diaeresis",copy:"Copyright sign",ordf:"Feminine ordinal indicator",laquo:"Left-pointing double angle quotation mark",
-not:"Ne ženklas",reg:"Registered sign",macr:"Makronas",deg:"Laipsnio ženklas",sup2:"Superscript two",sup3:"Superscript three",acute:"Acute accent",micro:"Mikro ženklas",para:"Pilcrow sign",middot:"Vidurinis taškas",cedil:"Cedilla",sup1:"Superscript one",ordm:"Masculine ordinal indicator",raquo:"Right-pointing double angle quotation mark",frac14:"Vulgar fraction one quarter",frac12:"Vulgar fraction one half",frac34:"Vulgar fraction three quarters",iquest:"Inverted question mark",Agrave:"Latin capital letter A with grave accent",
-Aacute:"Latin capital letter A with acute accent",Acirc:"Latin capital letter A with circumflex",Atilde:"Latin capital letter A with tilde",Auml:"Latin capital letter A with diaeresis",Aring:"Latin capital letter A with ring above",AElig:"Latin capital letter Æ",Ccedil:"Latin capital letter C with cedilla",Egrave:"Latin capital letter E with grave accent",Eacute:"Latin capital letter E with acute accent",Ecirc:"Latin capital letter E with circumflex",Euml:"Latin capital letter E with diaeresis",Igrave:"Latin capital letter I with grave accent",
-Iacute:"Latin capital letter I with acute accent",Icirc:"Latin capital letter I with circumflex",Iuml:"Latin capital letter I with diaeresis",ETH:"Latin capital letter Eth",Ntilde:"Latin capital letter N with tilde",Ograve:"Latin capital letter O with grave accent",Oacute:"Latin capital letter O with acute accent",Ocirc:"Latin capital letter O with circumflex",Otilde:"Latin capital letter O with tilde",Ouml:"Latin capital letter O with diaeresis",times:"Multiplication sign",Oslash:"Latin capital letter O with stroke",
-Ugrave:"Latin capital letter U with grave accent",Uacute:"Latin capital letter U with acute accent",Ucirc:"Latin capital letter U with circumflex",Uuml:"Latin capital letter U with diaeresis",Yacute:"Latin capital letter Y with acute accent",THORN:"Latin capital letter Thorn",szlig:"Latin small letter sharp s",agrave:"Latin small letter a with grave accent",aacute:"Latin small letter a with acute accent",acirc:"Latin small letter a with circumflex",atilde:"Latin small letter a with tilde",auml:"Latin small letter a with diaeresis",
-aring:"Latin small letter a with ring above",aelig:"Latin small letter æ",ccedil:"Latin small letter c with cedilla",egrave:"Latin small letter e with grave accent",eacute:"Latin small letter e with acute accent",ecirc:"Latin small letter e with circumflex",euml:"Latin small letter e with diaeresis",igrave:"Latin small letter i with grave accent",iacute:"Latin small letter i with acute accent",icirc:"Latin small letter i with circumflex",iuml:"Latin small letter i with diaeresis",eth:"Latin small letter eth",
-ntilde:"Latin small letter n with tilde",ograve:"Latin small letter o with grave accent",oacute:"Latin small letter o with acute accent",ocirc:"Latin small letter o with circumflex",otilde:"Latin small letter o with tilde",ouml:"Latin small letter o with diaeresis",divide:"Division sign",oslash:"Latin small letter o with stroke",ugrave:"Latin small letter u with grave accent",uacute:"Latin small letter u with acute accent",ucirc:"Latin small letter u with circumflex",uuml:"Latin small letter u with diaeresis",
-yacute:"Latin small letter y with acute accent",thorn:"Latin small letter thorn",yuml:"Latin small letter y with diaeresis",OElig:"Latin capital ligature OE",oelig:"Latin small ligature oe",372:"Latin capital letter W with circumflex",374:"Latin capital letter Y with circumflex",373:"Latin small letter w with circumflex",375:"Latin small letter y with circumflex",sbquo:"Single low-9 quotation mark",8219:"Single high-reversed-9 quotation mark",bdquo:"Double low-9 quotation mark",hellip:"Horizontal ellipsis",
-trade:"Trade mark sign",9658:"Black right-pointing pointer",bull:"Bullet",rarr:"Rightwards arrow",rArr:"Rightwards double arrow",hArr:"Left right double arrow",diams:"Black diamond suit",asymp:"Almost equal to"});
\ No newline at end of file
diff --git a/web/modules/ckeditor/vendor/plugins/specialchar/dialogs/lang/lv.js b/web/modules/ckeditor/vendor/plugins/specialchar/dialogs/lang/lv.js
deleted file mode 100644
index 1ac0378e4cdc99fa79310309fe08cdf3e4f3c414..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/plugins/specialchar/dialogs/lang/lv.js
+++ /dev/null
@@ -1,13 +0,0 @@
-/*
- Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
- For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
-*/
-CKEDITOR.plugins.setLang("specialchar","lv",{euro:"Euro zīme",lsquo:"Kreisā  vienkārtīga pēdiņa",rsquo:"Labā  vienkārtīga pēdiņa",ldquo:"Kreisā  dubult pēdiņa",rdquo:"Labā dubult pēdiņa",ndash:"En svītra",mdash:"Em svītra",iexcl:"Apgriezta izsaukuma zīme",cent:"Centu naudas zīme",pound:"Sterliņu mārciņu naudas zīme",curren:"Valūtas zīme",yen:"Jenu naudas zīme",brvbar:"Vertikāla pārrauta līnija",sect:"Paragrāfa zīme",uml:"Diakritiska zīme",copy:"Autortiesību zīme",ordf:"Sievišķas kārtas rādītājs",
-laquo:"Kreisā dubult stūra pēdiņu zīme",not:"Neparakstīts",reg:"Reģistrēta zīme",macr:"Garumzīme",deg:"Grādu zīme",sup2:"Augšraksts divi",sup3:"Augšraksts trīs",acute:"Akūta uzsvara zīme",micro:"Mikro zīme",para:"Rindkopas zīme ",middot:"Vidējs punkts",cedil:"Āķītis zem burta",sup1:"Augšraksts viens",ordm:"Vīrišķīgas kārtas rādītājs",raquo:"Labā dubult stūra pēdiņu zīme",frac14:"Vulgāra frakcija 1/4",frac12:"Vulgāra frakcija 1/2",frac34:"Vulgāra frakcija 3/4",iquest:"Apgriezta jautājuma zīme",Agrave:"Lielais latīņu burts A ar uzsvara zīmi",
-Aacute:"Lielais  latīņu burts A ar akūtu uzsvara zīmi",Acirc:"Lielais latīņu burts A ar diakritisku zīmi",Atilde:"Lielais latīņu burts A ar tildi ",Auml:"Lielais latīņu burts A ar diakritisko zīmi",Aring:"Lielais latīņu burts A ar aplīti augšā",AElig:"Lielais latīņu burts Æ",Ccedil:"Lielais latīņu burts C ar āķīti zem burta",Egrave:"Lielais latīņu burts E ar apostrofu",Eacute:"Lielais latīņu burts E ar akūtu uzsvara zīmi",Ecirc:"Lielais latīņu burts E ar diakritisko zīmi",Euml:"Lielais latīņu burts E ar diakritisko zīmi",
-Igrave:"Lielais latīņu burts I ar uzsvaras  zīmi",Iacute:"Lielais latīņu burts I ar akūtu uzsvara zīmi",Icirc:"Lielais latīņu burts I ar diakritisko zīmi",Iuml:"Lielais latīņu burts I ar diakritisko zīmi",ETH:"Lielais latīņu burts Eth",Ntilde:"Lielais latīņu burts N ar tildi",Ograve:"Lielais latīņu burts O ar uzsvara zīmi",Oacute:"Lielais latīņu burts O ar akūto uzsvara zīmi",Ocirc:"Lielais latīņu burts O ar diakritisko zīmi",Otilde:"Lielais latīņu burts O ar tildi",Ouml:"Lielais latīņu burts O ar diakritisko zīmi",
-times:"Reizināšanas zīme ",Oslash:"Lielais latīņu burts O ar iesvītrojumu",Ugrave:"Lielais latīņu burts U ar uzsvaras zīmi",Uacute:"Lielais latīņu burts U ar akūto uzsvars zīmi",Ucirc:"Lielais latīņu burts U ar diakritisko zīmi",Uuml:"Lielais latīņu burts U ar diakritisko zīmi",Yacute:"Lielais latīņu burts Y ar akūto uzsvaras zīmi",THORN:"Lielais latīņu burts torn",szlig:"Mazs latīņu burts ar ligatūru",agrave:"Mazs latīņu burts a ar uzsvara zīmi",aacute:"Mazs latīņu burts a ar akūto uzsvara zīmi",
-acirc:"Mazs latīņu burts a ar diakritisko zīmi",atilde:"Mazs latīņu burts a ar tildi",auml:"Mazs latīņu burts a ar diakritisko zīmi",aring:"Mazs latīņu burts a ar aplīti augšā",aelig:"Mazs latīņu burts æ",ccedil:"Mazs latīņu burts c ar āķīti zem burta",egrave:"Mazs latīņu burts e ar uzsvara zīmi ",eacute:"Mazs latīņu burts e ar akūtu uzsvara zīmi",ecirc:"Mazs latīņu burts e ar diakritisko zīmi",euml:"Mazs latīņu burts e ar diakritisko zīmi",igrave:"Mazs latīņu burts i ar uzsvara zīmi ",iacute:"Mazs latīņu burts i ar akūtu uzsvara zīmi",
-icirc:"Mazs latīņu burts i ar diakritisko zīmi",iuml:"Mazs latīņu burts i ar diakritisko zīmi",eth:"Mazs latīņu burts eth",ntilde:"Mazs latīņu burts n ar tildi",ograve:"Mazs latīņu burts o ar uzsvara zīmi ",oacute:"Mazs latīņu burts o ar akūtu uzsvara zīmi",ocirc:"Mazs latīņu burts o ar diakritisko zīmi",otilde:"Mazs latīņu burts o ar tildi",ouml:"Mazs latīņu burts o ar diakritisko zīmi",divide:"Dalīšanas zīme",oslash:"Mazs latīņu burts o ar iesvītrojumu",ugrave:"Mazs latīņu burts u ar uzsvara zīmi ",
-uacute:"Mazs latīņu burts u ar  akūtu uzsvara zīmi",ucirc:"Mazs latīņu burts u ar diakritisko zīmi",uuml:"Mazs latīņu burts u ar diakritisko zīmi",yacute:"Mazs latīņu burts y ar  akūtu uzsvaras zīmi",thorn:"Mazs latīņu burts torns",yuml:"Mazs latīņu burts y ar diakritisko zīmi",OElig:"Liela latīņu ligatūra OE",oelig:"Maza latīņu ligatūra oe",372:"Liels latīņu burts W ar diakritisko zīmi ",374:"Liels latīņu burts Y ar diakritisko zīmi ",373:"Mazs latīņu burts w ar diakritisko zīmi ",375:"Mazs latīņu burts y ar diakritisko zīmi ",
-sbquo:"Mazas-9 vienkārtīgas pēdiņas",8219:"Lielas-9 vienkārtīgas apgrieztas pēdiņas",bdquo:"Mazas-9 dubultas pēdiņas",hellip:"Horizontāli daudzpunkti",trade:"Preču zīmes zīme",9658:"Melns pa labi pagriezts radītājs",bull:"Lode",rarr:"Bulta pa labi",rArr:"Dubulta Bulta pa labi",hArr:"Bulta pa kreisi",diams:"Dubulta Bulta pa kreisi",asymp:"Gandrīz vienāds ar"});
\ No newline at end of file
diff --git a/web/modules/ckeditor/vendor/plugins/specialchar/dialogs/lang/nb.js b/web/modules/ckeditor/vendor/plugins/specialchar/dialogs/lang/nb.js
deleted file mode 100644
index 9f3d75b8c428a3fb633cc88e934601ccd51cdd8a..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/plugins/specialchar/dialogs/lang/nb.js
+++ /dev/null
@@ -1,11 +0,0 @@
-/*
- Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
- For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
-*/
-CKEDITOR.plugins.setLang("specialchar","nb",{euro:"Eurosymbol",lsquo:"Venstre enkelt anførselstegn",rsquo:"Høyre enkelt anførselstegn",ldquo:"Venstre dobbelt anførselstegn",rdquo:"Høyre anførsesltegn",ndash:"Kort tankestrek",mdash:"Lang tankestrek",iexcl:"Omvendt utropstegn",cent:"Centsymbol",pound:"Pundsymbol",curren:"Valutategn",yen:"Yensymbol",brvbar:"Brutt loddrett strek",sect:"Paragraftegn",uml:"Tøddel",copy:"Copyrighttegn",ordf:"Feminin ordensindikator",laquo:"Venstre anførselstegn",not:"Negasjonstegn",
-reg:"Registrert varemerke-tegn",macr:"Makron",deg:"Gradsymbol",sup2:"Hevet totall",sup3:"Hevet tretall",acute:"Akutt aksent",micro:"Mikrosymbol",para:"Avsnittstegn",middot:"Midtstilt prikk",cedil:"Cedille",sup1:"Hevet ettall",ordm:"Maskulin ordensindikator",raquo:"Høyre anførselstegn",frac14:"Fjerdedelsbrøk",frac12:"Halvbrøk",frac34:"Tre fjerdedelers brøk",iquest:"Omvendt spørsmålstegn",Agrave:"Stor A med grav aksent",Aacute:"Stor A med akutt aksent",Acirc:"Stor A med cirkumfleks",Atilde:"Stor A med tilde",
-Auml:"Stor A med tøddel",Aring:"Stor Å",AElig:"Stor Æ",Ccedil:"Stor C med cedille",Egrave:"Stor E med grav aksent",Eacute:"Stor E med akutt aksent",Ecirc:"Stor E med cirkumfleks",Euml:"Stor E med tøddel",Igrave:"Stor I med grav aksent",Iacute:"Stor I med akutt aksent",Icirc:"Stor I med cirkumfleks",Iuml:"Stor I med tøddel",ETH:"Stor Edd/stungen D",Ntilde:"Stor N med tilde",Ograve:"Stor O med grav aksent",Oacute:"Stor O med akutt aksent",Ocirc:"Stor O med cirkumfleks",Otilde:"Stor O med tilde",Ouml:"Stor O med tøddel",
-times:"Multiplikasjonstegn",Oslash:"Stor Ø",Ugrave:"Stor U med grav aksent",Uacute:"Stor U med akutt aksent",Ucirc:"Stor U med cirkumfleks",Uuml:"Stor U med tøddel",Yacute:"Stor Y med akutt aksent",THORN:"Stor Thorn",szlig:"Liten dobbelt-s/Eszett",agrave:"Liten a med grav aksent",aacute:"Liten a med akutt aksent",acirc:"Liten a med cirkumfleks",atilde:"Liten a med tilde",auml:"Liten a med tøddel",aring:"Liten å",aelig:"Liten æ",ccedil:"Liten c med cedille",egrave:"Liten e med grav aksent",eacute:"Liten e med akutt aksent",
-ecirc:"Liten e med cirkumfleks",euml:"Liten e med tøddel",igrave:"Liten i med grav aksent",iacute:"Liten i med akutt aksent",icirc:"Liten i med cirkumfleks",iuml:"Liten i med tøddel",eth:"Liten edd/stungen d",ntilde:"Liten n med tilde",ograve:"Liten o med grav aksent",oacute:"Liten o med akutt aksent",ocirc:"Liten o med cirkumfleks",otilde:"Liten o med tilde",ouml:"Liten o med tøddel",divide:"Divisjonstegn",oslash:"Liten ø",ugrave:"Liten u med grav aksent",uacute:"Liten u med akutt aksent",ucirc:"Liten u med cirkumfleks",
-uuml:"Liten u med tøddel",yacute:"Liten y med akutt aksent",thorn:"Liten thorn",yuml:"Liten y med tøddel",OElig:"Stor ligatur av O og E",oelig:"Liten ligatur av o og e",372:"Stor W med cirkumfleks",374:"Stor Y med cirkumfleks",373:"Liten w med cirkumfleks",375:"Liten y med cirkumfleks",sbquo:"Enkelt lavt 9-anførselstegn",8219:"Enkelt høyt reversert 9-anførselstegn",bdquo:"Dobbelt lavt 9-anførselstegn",hellip:"Ellipse",trade:"Varemerkesymbol",9658:"Svart høyrevendt peker",bull:"Tykk interpunkt",rarr:"Høyrevendt pil",
-rArr:"Dobbel høyrevendt pil",hArr:"Dobbel venstrevendt pil",diams:"Svart ruter",asymp:"Omtrent likhetstegn"});
\ No newline at end of file
diff --git a/web/modules/ckeditor/vendor/plugins/specialchar/dialogs/lang/nl.js b/web/modules/ckeditor/vendor/plugins/specialchar/dialogs/lang/nl.js
deleted file mode 100644
index e32d98581580ca60fffdb57121b68e54d8b31519..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/plugins/specialchar/dialogs/lang/nl.js
+++ /dev/null
@@ -1,13 +0,0 @@
-/*
- Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
- For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
-*/
-CKEDITOR.plugins.setLang("specialchar","nl",{euro:"Euro-teken",lsquo:"Linker enkel aanhalingsteken",rsquo:"Rechter enkel aanhalingsteken",ldquo:"Linker dubbel aanhalingsteken",rdquo:"Rechter dubbel aanhalingsteken",ndash:"En dash",mdash:"Em dash",iexcl:"Omgekeerd uitroepteken",cent:"Cent-teken",pound:"Pond-teken",curren:"Valuta-teken",yen:"Yen-teken",brvbar:"Gebroken streep",sect:"Paragraaf-teken",uml:"Trema",copy:"Copyright-teken",ordf:"Vrouwelijk ordinaal",laquo:"Linker guillemet",not:"Ongelijk-teken",
-reg:"Geregistreerd handelsmerk-teken",macr:"Macron",deg:"Graden-teken",sup2:"Superscript twee",sup3:"Superscript drie",acute:"Accent aigu",micro:"Micro-teken",para:"Alinea-teken",middot:"Halfhoge punt",cedil:"Cedille",sup1:"Superscript een",ordm:"Mannelijk ordinaal",raquo:"Rechter guillemet",frac14:"Breuk kwart",frac12:"Breuk half",frac34:"Breuk driekwart",iquest:"Omgekeerd vraagteken",Agrave:"Latijnse hoofdletter A met een accent grave",Aacute:"Latijnse hoofdletter A met een accent aigu",Acirc:"Latijnse hoofdletter A met een circonflexe",
-Atilde:"Latijnse hoofdletter A met een tilde",Auml:"Latijnse hoofdletter A met een trema",Aring:"Latijnse hoofdletter A met een corona",AElig:"Latijnse hoofdletter Æ",Ccedil:"Latijnse hoofdletter C met een cedille",Egrave:"Latijnse hoofdletter E met een accent grave",Eacute:"Latijnse hoofdletter E met een accent aigu",Ecirc:"Latijnse hoofdletter E met een circonflexe",Euml:"Latijnse hoofdletter E met een trema",Igrave:"Latijnse hoofdletter I met een accent grave",Iacute:"Latijnse hoofdletter I met een accent aigu",
-Icirc:"Latijnse hoofdletter I met een circonflexe",Iuml:"Latijnse hoofdletter I met een trema",ETH:"Latijnse hoofdletter Eth",Ntilde:"Latijnse hoofdletter N met een tilde",Ograve:"Latijnse hoofdletter O met een accent grave",Oacute:"Latijnse hoofdletter O met een accent aigu",Ocirc:"Latijnse hoofdletter O met een circonflexe",Otilde:"Latijnse hoofdletter O met een tilde",Ouml:"Latijnse hoofdletter O met een trema",times:"Maal-teken",Oslash:"Latijnse hoofdletter O met een schuine streep",Ugrave:"Latijnse hoofdletter U met een accent grave",
-Uacute:"Latijnse hoofdletter U met een accent aigu",Ucirc:"Latijnse hoofdletter U met een circonflexe",Uuml:"Latijnse hoofdletter U met een trema",Yacute:"Latijnse hoofdletter Y met een accent aigu",THORN:"Latijnse hoofdletter Thorn",szlig:"Latijnse kleine ringel-s",agrave:"Latijnse kleine letter a met een accent grave",aacute:"Latijnse kleine letter a met een accent aigu",acirc:"Latijnse kleine letter a met een circonflexe",atilde:"Latijnse kleine letter a met een tilde",auml:"Latijnse kleine letter a met een trema",
-aring:"Latijnse kleine letter a met een corona",aelig:"Latijnse kleine letter æ",ccedil:"Latijnse kleine letter c met een cedille",egrave:"Latijnse kleine letter e met een accent grave",eacute:"Latijnse kleine letter e met een accent aigu",ecirc:"Latijnse kleine letter e met een circonflexe",euml:"Latijnse kleine letter e met een trema",igrave:"Latijnse kleine letter i met een accent grave",iacute:"Latijnse kleine letter i met een accent aigu",icirc:"Latijnse kleine letter i met een circonflexe",
-iuml:"Latijnse kleine letter i met een trema",eth:"Latijnse kleine letter eth",ntilde:"Latijnse kleine letter n met een tilde",ograve:"Latijnse kleine letter o met een accent grave",oacute:"Latijnse kleine letter o met een accent aigu",ocirc:"Latijnse kleine letter o met een circonflexe",otilde:"Latijnse kleine letter o met een tilde",ouml:"Latijnse kleine letter o met een trema",divide:"Deel-teken",oslash:"Latijnse kleine letter o met een schuine streep",ugrave:"Latijnse kleine letter u met een accent grave",
-uacute:"Latijnse kleine letter u met een accent aigu",ucirc:"Latijnse kleine letter u met een circonflexe",uuml:"Latijnse kleine letter u met een trema",yacute:"Latijnse kleine letter y met een accent aigu",thorn:"Latijnse kleine letter thorn",yuml:"Latijnse kleine letter y met een trema",OElig:"Latijnse hoofdletter Œ",oelig:"Latijnse kleine letter œ",372:"Latijnse hoofdletter W met een circonflexe",374:"Latijnse hoofdletter Y met een circonflexe",373:"Latijnse kleine letter w met een circonflexe",
-375:"Latijnse kleine letter y met een circonflexe",sbquo:"Lage enkele aanhalingsteken",8219:"Hoge omgekeerde enkele aanhalingsteken",bdquo:"Lage dubbele aanhalingsteken",hellip:"Beletselteken",trade:"Trademark-teken",9658:"Zwarte driehoek naar rechts",bull:"Bullet",rarr:"Pijl naar rechts",rArr:"Dubbele pijl naar rechts",hArr:"Dubbele pijl naar links",diams:"Zwart ruitje",asymp:"Benaderingsteken"});
\ No newline at end of file
diff --git a/web/modules/ckeditor/vendor/plugins/specialchar/dialogs/lang/no.js b/web/modules/ckeditor/vendor/plugins/specialchar/dialogs/lang/no.js
deleted file mode 100644
index 7b73e3e9ca44b0d747bfc328a7119dba735f7982..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/plugins/specialchar/dialogs/lang/no.js
+++ /dev/null
@@ -1,11 +0,0 @@
-/*
- Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
- For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
-*/
-CKEDITOR.plugins.setLang("specialchar","no",{euro:"Eurosymbol",lsquo:"Venstre enkelt anførselstegn",rsquo:"Høyre enkelt anførselstegn",ldquo:"Venstre dobbelt anførselstegn",rdquo:"Høyre anførsesltegn",ndash:"Kort tankestrek",mdash:"Lang tankestrek",iexcl:"Omvendt utropstegn",cent:"Centsymbol",pound:"Pundsymbol",curren:"Valutategn",yen:"Yensymbol",brvbar:"Brutt loddrett strek",sect:"Paragraftegn",uml:"Tøddel",copy:"Copyrighttegn",ordf:"Feminin ordensindikator",laquo:"Venstre anførselstegn",not:"Negasjonstegn",
-reg:"Registrert varemerke-tegn",macr:"Makron",deg:"Gradsymbol",sup2:"Hevet totall",sup3:"Hevet tretall",acute:"Akutt aksent",micro:"Mikrosymbol",para:"Avsnittstegn",middot:"Midtstilt prikk",cedil:"Cedille",sup1:"Hevet ettall",ordm:"Maskulin ordensindikator",raquo:"Høyre anførselstegn",frac14:"Fjerdedelsbrøk",frac12:"Halvbrøk",frac34:"Tre fjerdedelers brøk",iquest:"Omvendt spørsmålstegn",Agrave:"Stor A med grav aksent",Aacute:"Stor A med akutt aksent",Acirc:"Stor A med cirkumfleks",Atilde:"Stor A med tilde",
-Auml:"Stor A med tøddel",Aring:"Stor Å",AElig:"Stor Æ",Ccedil:"Stor C med cedille",Egrave:"Stor E med grav aksent",Eacute:"Stor E med akutt aksent",Ecirc:"Stor E med cirkumfleks",Euml:"Stor E med tøddel",Igrave:"Stor I med grav aksent",Iacute:"Stor I med akutt aksent",Icirc:"Stor I med cirkumfleks",Iuml:"Stor I med tøddel",ETH:"Stor Edd/stungen D",Ntilde:"Stor N med tilde",Ograve:"Stor O med grav aksent",Oacute:"Stor O med akutt aksent",Ocirc:"Stor O med cirkumfleks",Otilde:"Stor O med tilde",Ouml:"Stor O med tøddel",
-times:"Multiplikasjonstegn",Oslash:"Stor Ø",Ugrave:"Stor U med grav aksent",Uacute:"Stor U med akutt aksent",Ucirc:"Stor U med cirkumfleks",Uuml:"Stor U med tøddel",Yacute:"Stor Y med akutt aksent",THORN:"Stor Thorn",szlig:"Liten dobbelt-s/Eszett",agrave:"Liten a med grav aksent",aacute:"Liten a med akutt aksent",acirc:"Liten a med cirkumfleks",atilde:"Liten a med tilde",auml:"Liten a med tøddel",aring:"Liten å",aelig:"Liten æ",ccedil:"Liten c med cedille",egrave:"Liten e med grav aksent",eacute:"Liten e med akutt aksent",
-ecirc:"Liten e med cirkumfleks",euml:"Liten e med tøddel",igrave:"Liten i med grav aksent",iacute:"Liten i med akutt aksent",icirc:"Liten i med cirkumfleks",iuml:"Liten i med tøddel",eth:"Liten edd/stungen d",ntilde:"Liten n med tilde",ograve:"Liten o med grav aksent",oacute:"Liten o med akutt aksent",ocirc:"Liten o med cirkumfleks",otilde:"Liten o med tilde",ouml:"Liten o med tøddel",divide:"Divisjonstegn",oslash:"Liten ø",ugrave:"Liten u med grav aksent",uacute:"Liten u med akutt aksent",ucirc:"Liten u med cirkumfleks",
-uuml:"Liten u med tøddel",yacute:"Liten y med akutt aksent",thorn:"Liten thorn",yuml:"Liten y med tøddel",OElig:"Stor ligatur av O og E",oelig:"Liten ligatur av o og e",372:"Stor W med cirkumfleks",374:"Stor Y med cirkumfleks",373:"Liten w med cirkumfleks",375:"Liten y med cirkumfleks",sbquo:"Enkelt lavt 9-anførselstegn",8219:"Enkelt høyt reversert 9-anførselstegn",bdquo:"Dobbelt lavt 9-anførselstegn",hellip:"Ellipse",trade:"Varemerkesymbol",9658:"Svart høyrevendt peker",bull:"Tykk interpunkt",rarr:"Høyrevendt pil",
-rArr:"Dobbel høyrevendt pil",hArr:"Dobbel venstrevendt pil",diams:"Svart ruter",asymp:"Omtrent likhetstegn"});
\ No newline at end of file
diff --git a/web/modules/ckeditor/vendor/plugins/specialchar/dialogs/lang/oc.js b/web/modules/ckeditor/vendor/plugins/specialchar/dialogs/lang/oc.js
deleted file mode 100644
index 5a51193a908e9fea4fa610d5333fcd95a01b233e..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/plugins/specialchar/dialogs/lang/oc.js
+++ /dev/null
@@ -1,12 +0,0 @@
-/*
- Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
- For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
-*/
-CKEDITOR.plugins.setLang("specialchar","oc",{euro:"Simbòl èuro",lsquo:"Vergueta simpla dobrenta",rsquo:"Vergueta simpla tampanta",ldquo:"Vergueta dobla dobrenta",rdquo:"Vergueta dobla tampanta",ndash:"Jonhent semi-quadratin",mdash:"Jonhent quadratin",iexcl:"Punt d'exclamacion inversat",cent:"Simbòl cent",pound:"Simbòl Liura sterling",curren:"Simbòl monetari",yen:"Simbòl ièn",brvbar:"Barra verticala separada",sect:"Signe de seccion",uml:"Trèma",copy:"Simbòl Copyright",ordf:"Indicador ordinal femenin",
-laquo:"Vergueta francesa dobrenta",not:"Croquet de negacion",reg:"Simbòl de marca depausada",macr:"Macron",deg:"Simbòl gra",sup2:"Exponent 2",sup3:"Exponent 3",acute:"Accent agut",micro:"Simbòl micro",para:"Simbòl pè de mòsca",middot:"Punt median",cedil:"Cedilha",sup1:"Exponent 1",ordm:"Indicador ordenal masculin",raquo:"Vergueta francesa tampanta",frac14:"Fraccion un quart",frac12:"Fraccion un mièg",frac34:"Fraccion tres quarts",iquest:"Punt d'interrogacion inversat",Agrave:"A accent grèu majuscula",
-Aacute:"A accent agut majuscula",Acirc:"A accent circonflèxe majuscula",Atilde:"A caron majuscula",Auml:"A trèma majuscula",Aring:"A redond majuscula",AElig:"Ligatura Æ majuscula",Ccedil:"C cédille majuscula",Egrave:"E accent grèu majuscula",Eacute:"E accent agut majuscula",Ecirc:"E accent circonflèxe majuscula",Euml:"E trèma majuscula",Igrave:"I accent grèu majuscula",Iacute:"I accent agut majuscula",Icirc:"I accent circonflèxe majuscula",Iuml:"I trèma majuscula",ETH:"Letra majuscula islandaise ED",
-Ntilde:"N caron majuscula",Ograve:"O accent grèu majuscula",Oacute:"O accent agut majuscula",Ocirc:"O accent circonflèxe majuscula",Otilde:"O caron majuscula",Ouml:"O trèma majuscula",times:"Simbòl de multiplicacion",Oslash:"O raiat majuscula",Ugrave:"U accent grèu majuscula",Uacute:"U accent agut majuscula",Ucirc:"U accent circonflèxe majuscula",Uuml:"U trèma majuscula",Yacute:"Y accent agut majuscula",THORN:"Letra islandesa thorn majuscula",szlig:"Letra minuscula alemanda S dur",agrave:"A accent grèu minuscula",
-aacute:"A accent agut minuscula",acirc:"A accent circonflèxe minuscula",atilde:"A tilda minuscula",auml:"A trèma minuscula",aring:"A redond minuscula",aelig:"Ligatura Æ minuscula",ccedil:"C cédille minuscula",egrave:"E accent grèu minuscula",eacute:"E accent agut minuscula",ecirc:"E accent circonflèxe minuscula",euml:"E trèma minuscula",igrave:"I accent grèu minuscula",iacute:"I accent agut minuscula",icirc:"I accent circonflèxe minuscula",iuml:"i minuscula trèma",eth:"Letra minuscula islandaise ED",
-ntilde:"N caron minuscula",ograve:"O minuscula accent grèu",oacute:"O accent agut minuscula",ocirc:"O accent circonflèxe minuscula",otilde:"O tilda minuscula",ouml:"O trèma minuscula",divide:"Simbòl de division",oslash:"O raiat minuscula",ugrave:"U accent grèu minuscula",uacute:"U accent agut minuscula",ucirc:"U accent circonflèxe minuscula",uuml:"U trèma minuscula",yacute:"Y accent agut minuscula",thorn:"Letra islandaise thorn minuscula",yuml:"Y trèma minuscula",OElig:"Ligatura Œ majuscula",oelig:"Ligatura Œ minuscula",
-372:"W accent circonflèxe majuscula",374:"Y accent circonflèxe majuscula",373:"W accent circonflèxe minuscula",375:"Y accent circonflèxe minuscula",sbquo:"Vergueta simpla tampanta inferior",8219:"Vergueta-virgula superior culbuté",bdquo:"Vergueta-virgula double inferior",hellip:"Punts de suspension",trade:"Simbòl de marca comerciala",9658:"Sageta negra puntant cap a dreita",bull:"Gròs punt median",rarr:"Sageta cap a dreita",rArr:"Sageta dobla cap a dreita",hArr:"Sageta dobla cap a esquèrra",diams:"Lausange negre",
-asymp:"Environ egal"});
\ No newline at end of file
diff --git a/web/modules/ckeditor/vendor/plugins/specialchar/dialogs/lang/pl.js b/web/modules/ckeditor/vendor/plugins/specialchar/dialogs/lang/pl.js
deleted file mode 100644
index 35ee2ee6bc9c3b9804ed17bfb4754ae5bb097b4a..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/plugins/specialchar/dialogs/lang/pl.js
+++ /dev/null
@@ -1,12 +0,0 @@
-/*
- Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
- For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
-*/
-CKEDITOR.plugins.setLang("specialchar","pl",{euro:"Znak euro",lsquo:"Cudzysłów pojedynczy otwierający",rsquo:"Cudzysłów pojedynczy zamykający",ldquo:"Cudzysłów apostrofowy otwierający",rdquo:"Cudzysłów apostrofowy zamykający",ndash:"Półpauza",mdash:"Pauza",iexcl:"Odwrócony wykrzyknik",cent:"Znak centa",pound:"Znak funta",curren:"Znak waluty",yen:"Znak jena",brvbar:"Przerwana pionowa kreska",sect:"Paragraf",uml:"Diereza",copy:"Znak praw autorskich",ordf:"Wskaźnik rodzaju żeńskiego liczebnika porządkowego",
-laquo:"Lewy cudzysłów ostrokątny",not:"Znak negacji",reg:"Zastrzeżony znak towarowy",macr:"Makron",deg:"Znak stopnia",sup2:"Druga potęga",sup3:"Trzecia potęga",acute:"Akcent ostry",micro:"Znak mikro",para:"Znak akapitu",middot:"Kropka środkowa",cedil:"Cedylla",sup1:"Pierwsza potęga",ordm:"Wskaźnik rodzaju męskiego liczebnika porządkowego",raquo:"Prawy cudzysłów ostrokątny",frac14:"Ułamek zwykły jedna czwarta",frac12:"Ułamek zwykły jedna druga",frac34:"Ułamek zwykły trzy czwarte",iquest:"Odwrócony znak zapytania",
-Agrave:"Wielka litera A z akcentem ciężkim",Aacute:"Wielka litera A z akcentem ostrym",Acirc:"Wielka litera A z akcentem przeciągłym",Atilde:"Wielka litera A z tyldą",Auml:"Wielka litera A z dierezą",Aring:"Wielka litera A z kółkiem",AElig:"Wielka ligatura Æ",Ccedil:"Wielka litera C z cedyllą",Egrave:"Wielka litera E z akcentem ciężkim",Eacute:"Wielka litera E z akcentem ostrym",Ecirc:"Wielka litera E z akcentem przeciągłym",Euml:"Wielka litera E z dierezą",Igrave:"Wielka litera I z akcentem ciężkim",
-Iacute:"Wielka litera I z akcentem ostrym",Icirc:"Wielka litera I z akcentem przeciągłym",Iuml:"Wielka litera I z dierezą",ETH:"Wielka litera Eth",Ntilde:"Wielka litera N z tyldą",Ograve:"Wielka litera O z akcentem ciężkim",Oacute:"Wielka litera O z akcentem ostrym",Ocirc:"Wielka litera O z akcentem przeciągłym",Otilde:"Wielka litera O z tyldą",Ouml:"Wielka litera O z dierezą",times:"Znak mnożenia wektorowego",Oslash:"Wielka litera O z przekreśleniem",Ugrave:"Wielka litera U z akcentem ciężkim",Uacute:"Wielka litera U z akcentem ostrym",
-Ucirc:"Wielka litera U z akcentem przeciągłym",Uuml:"Wielka litera U z dierezą",Yacute:"Wielka litera Y z akcentem ostrym",THORN:"Wielka litera Thorn",szlig:"Mała litera ostre s (eszet)",agrave:"Mała litera a z akcentem ciężkim",aacute:"Mała litera a z akcentem ostrym",acirc:"Mała litera a z akcentem przeciągłym",atilde:"Mała litera a z tyldą",auml:"Mała litera a z dierezą",aring:"Mała litera a z kółkiem",aelig:"Mała ligatura æ",ccedil:"Mała litera c z cedyllą",egrave:"Mała litera e z akcentem ciężkim",
-eacute:"Mała litera e z akcentem ostrym",ecirc:"Mała litera e z akcentem przeciągłym",euml:"Mała litera e z dierezą",igrave:"Mała litera i z akcentem ciężkim",iacute:"Mała litera i z akcentem ostrym",icirc:"Mała litera i z akcentem przeciągłym",iuml:"Mała litera i z dierezą",eth:"Mała litera eth",ntilde:"Mała litera n z tyldą",ograve:"Mała litera o z akcentem ciężkim",oacute:"Mała litera o z akcentem ostrym",ocirc:"Mała litera o z akcentem przeciągłym",otilde:"Mała litera o z tyldą",ouml:"Mała litera o z dierezą",
-divide:"Anglosaski znak dzielenia",oslash:"Mała litera o z przekreśleniem",ugrave:"Mała litera u z akcentem ciężkim",uacute:"Mała litera u z akcentem ostrym",ucirc:"Mała litera u z akcentem przeciągłym",uuml:"Mała litera u z dierezą",yacute:"Mała litera y z akcentem ostrym",thorn:"Mała litera thorn",yuml:"Mała litera y z dierezą",OElig:"Wielka ligatura OE",oelig:"Mała ligatura oe",372:"Wielka litera W z akcentem przeciągłym",374:"Wielka litera Y z akcentem przeciągłym",373:"Mała litera w z akcentem przeciągłym",
-375:"Mała litera y z akcentem przeciągłym",sbquo:"Pojedynczy apostrof dolny",8219:"Pojedynczy apostrof górny",bdquo:"Podwójny apostrof dolny",hellip:"Wielokropek",trade:"Znak towarowy",9658:"Czarny wskaźnik wskazujący w prawo",bull:"Punktor",rarr:"Strzałka w prawo",rArr:"Podwójna strzałka w prawo",hArr:"Podwójna strzałka obustronna",diams:"Czarny znak karo",asymp:"Znak prawie równe"});
\ No newline at end of file
diff --git a/web/modules/ckeditor/vendor/plugins/specialchar/dialogs/lang/pt-br.js b/web/modules/ckeditor/vendor/plugins/specialchar/dialogs/lang/pt-br.js
deleted file mode 100644
index 7cb124b4d8a002e134f8a28135a5cdbcb798f45e..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/plugins/specialchar/dialogs/lang/pt-br.js
+++ /dev/null
@@ -1,11 +0,0 @@
-/*
- Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
- For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
-*/
-CKEDITOR.plugins.setLang("specialchar","pt-br",{euro:"Euro",lsquo:"Aspas simples esquerda",rsquo:"Aspas simples direita",ldquo:"Aspas duplas esquerda",rdquo:"Aspas duplas direita",ndash:"Traço",mdash:"Travessão",iexcl:"Ponto de exclamação invertido",cent:"Cent",pound:"Cerquilha",curren:"Dinheiro",yen:"Yen",brvbar:"Bara interrompida",sect:"Símbolo de Parágrafo",uml:"Trema",copy:"Direito de Cópia",ordf:"Indicador ordinal feminino",laquo:"Aspas duplas angulares esquerda",not:"Negação",reg:"Marca Registrada",
-macr:"Mácron",deg:"Grau",sup2:"2 Superscrito",sup3:"3 Superscrito",acute:"Acento agudo",micro:"Micro",para:"Pé de mosca",middot:"Ponto mediano",cedil:"Cedilha",sup1:"1 Superscrito",ordm:"Indicador ordinal masculino",raquo:"Aspas duplas angulares direita",frac14:"Um quarto",frac12:"Um meio",frac34:"Três quartos",iquest:"Interrogação invertida",Agrave:"A maiúsculo com acento grave",Aacute:"A maiúsculo com acento agudo",Acirc:"A maiúsculo com acento circunflexo",Atilde:"A maiúsculo com til",Auml:"A maiúsculo com trema",
-Aring:"A maiúsculo com anel acima",AElig:"Æ maiúsculo",Ccedil:"Ç maiúlculo",Egrave:"E maiúsculo com acento grave",Eacute:"E maiúsculo com acento agudo",Ecirc:"E maiúsculo com acento circumflexo",Euml:"E maiúsculo com trema",Igrave:"I maiúsculo com acento grave",Iacute:"I maiúsculo com acento agudo",Icirc:"I maiúsculo com acento circunflexo",Iuml:"I maiúsculo com crase",ETH:"Eth maiúsculo",Ntilde:"N maiúsculo com til",Ograve:"O maiúsculo com acento grave",Oacute:"O maiúsculo com acento agudo",Ocirc:"O maiúsculo com acento circunflexo",
-Otilde:"O maiúsculo com til",Ouml:"O maiúsculo com trema",times:"Multiplicação",Oslash:"Diâmetro",Ugrave:"U maiúsculo com acento grave",Uacute:"U maiúsculo com acento agudo",Ucirc:"U maiúsculo com acento circunflexo",Uuml:"U maiúsculo com trema",Yacute:"Y maiúsculo com acento agudo",THORN:"Thorn maiúsculo",szlig:"Eszett minúsculo",agrave:"a minúsculo com acento grave",aacute:"a minúsculo com acento agudo",acirc:"a minúsculo com acento circunflexo",atilde:"a minúsculo com til",auml:"a minúsculo com trema",
-aring:"a minúsculo com anel acima",aelig:"æ minúsculo",ccedil:"ç minúsculo",egrave:"e minúsculo com acento grave",eacute:"e minúsculo com acento agudo",ecirc:"e minúsculo com acento circunflexo",euml:"e minúsculo com trema",igrave:"i minúsculo com acento grave",iacute:"i minúsculo com acento agudo",icirc:"i minúsculo com acento circunflexo",iuml:"i minúsculo com trema",eth:"eth minúsculo",ntilde:"n minúsculo com til",ograve:"o minúsculo com acento grave",oacute:"o minúsculo com acento agudo",ocirc:"o minúsculo com acento circunflexo",
-otilde:"o minúsculo com til",ouml:"o minúsculo com trema",divide:"Divisão",oslash:"o minúsculo com cortado ou diâmetro",ugrave:"u minúsculo com acento grave",uacute:"u minúsculo com acento agudo",ucirc:"u minúsculo com acento circunflexo",uuml:"u minúsculo com trema",yacute:"y minúsculo com acento agudo",thorn:"thorn minúsculo",yuml:"y minúsculo com trema",OElig:"Ligação tipográfica OE maiúscula",oelig:"Ligação tipográfica oe minúscula",372:"W maiúsculo com acento circunflexo",374:"Y maiúsculo com acento circunflexo",
-373:"w minúsculo com acento circunflexo",375:"y minúsculo com acento circunflexo",sbquo:"Aspas simples inferior direita",8219:"Aspas simples superior esquerda",bdquo:"Aspas duplas inferior direita",hellip:"Reticências",trade:"Trade mark",9658:"Ponta de seta preta para direita",bull:"Ponto lista",rarr:"Seta para direita",rArr:"Seta dupla para direita",hArr:"Seta dupla direita e esquerda",diams:"Ouros",asymp:"Aproximadamente"});
\ No newline at end of file
diff --git a/web/modules/ckeditor/vendor/plugins/specialchar/dialogs/lang/pt.js b/web/modules/ckeditor/vendor/plugins/specialchar/dialogs/lang/pt.js
deleted file mode 100644
index 966e9508adc40726de43e596acf813c3d80aba8f..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/plugins/specialchar/dialogs/lang/pt.js
+++ /dev/null
@@ -1,13 +0,0 @@
-/*
- Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
- For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
-*/
-CKEDITOR.plugins.setLang("specialchar","pt",{euro:"Símbolo de Euro",lsquo:"Aspa esquerda simples",rsquo:"Aspa direita simples",ldquo:"Aspa esquerda dupla",rdquo:"Aspa direita dupla",ndash:"Travessão simples",mdash:"Travessão longo",iexcl:"Ponto de exclamação invertido",cent:"Símbolo de cêntimo",pound:"Símbolo de Libra",curren:"Símbolo de Moeda",yen:"Símbolo de Iene",brvbar:"Barra quebrada",sect:"Símbolo de secção",uml:"Trema",copy:"Símbolo de direitos de autor",ordf:"Indicador ordinal feminino",laquo:"Aspa esquerda ângulo duplo",
-not:"Não símbolo",reg:"Símbolo de registado",macr:"Mácron",deg:"Símbolo de graus",sup2:"Expoente 2",sup3:"Expoente 3",acute:"Acento agudo",micro:"Símbolo de micro",para:"Símbolo de parágrafo",middot:"Ponto do meio",cedil:"Cedilha",sup1:"Expoente 1",ordm:"Indicador ordinal masculino",raquo:"Aspas ângulo duplo para a direita",frac14:"Fração vulgar 1/4",frac12:"Fração vulgar 1/2",frac34:"Fração vulgar 3/4",iquest:"Ponto de interrogação invertido",Agrave:"Letra maiúscula latina A com acento grave",Aacute:"Letra maiúscula latina A com acento agudo",
-Acirc:"Letra maiúscula latina A com circunflexo",Atilde:"Letra maiúscula latina A com til",Auml:"Letra maiúscula latina A com trema",Aring:"Letra maiúscula latina A com sinal diacrítico",AElig:"Letra maiúscula latina Æ",Ccedil:"Letra maiúscula latina C com cedilha",Egrave:"Letra maiúscula latina E com acento grave",Eacute:"Letra maiúscula latina E com acento agudo",Ecirc:"Letra maiúscula latina E com circunflexo",Euml:"Letra maiúscula latina E com trema",Igrave:"Letra maiúscula latina I com acento grave",
-Iacute:"Letra maiúscula latina I com acento agudo",Icirc:"Letra maiúscula latina I com cincunflexo",Iuml:"Letra maiúscula latina I com trema",ETH:"Letra maiúscula latina Eth (Ðð)",Ntilde:"Letra maiúscula latina N com til",Ograve:"Letra maiúscula latina O com acento grave",Oacute:"Letra maiúscula latina O com acento agudo",Ocirc:"Letra maiúscula latina I com circunflexo",Otilde:"Letra maiúscula latina O com til",Ouml:"Letra maiúscula latina O com trema",times:"Símbolo de multiplicação",Oslash:"Letra maiúscula O com barra",
-Ugrave:"Letra maiúscula latina U com acento grave",Uacute:"Letra maiúscula latina U com acento agudo",Ucirc:"Letra maiúscula latina U com circunflexo",Uuml:"Letra maiúscula latina E com trema",Yacute:"Letra maiúscula latina Y com acento agudo",THORN:"Letra maiúscula latina Rúnico",szlig:"Letra minúscula latina s forte",agrave:"Letra minúscula latina a com acento grave",aacute:"Letra minúscula latina a com acento agudo",acirc:"Letra minúscula latina a com circunflexo",atilde:"Letra minúscula latina a com til",
-auml:"Letra minúscula latina a com trema",aring:"Letra minúscula latina a com sinal diacrítico",aelig:"Letra minúscula latina æ",ccedil:"Letra minúscula latina c com cedilha",egrave:"Letra minúscula latina e com acento grave",eacute:"Letra minúscula latina e com acento agudo",ecirc:"Letra minúscula latina e com circunflexo",euml:"Letra minúscula latina e com trema",igrave:"Letra minúscula latina i com acento grave",iacute:"Letra minúscula latina i com acento agudo",icirc:"Letra minúscula latina i com circunflexo",
-iuml:"Letra pequena latina i com trema",eth:"Letra minúscula latina eth",ntilde:"Letra minúscula latina n com til",ograve:"Letra minúscula latina o com acento grave",oacute:"Letra minúscula latina o com acento agudo",ocirc:"Letra minúscula latina o com circunflexo",otilde:"Letra minúscula latina o com til",ouml:"Letra minúscula latina o com trema",divide:"Símbolo de divisão",oslash:"Letra minúscula latina o com barra",ugrave:"Letra minúscula latina u com acento grave",uacute:"Letra minúscula latina u com acento agudo",
-ucirc:"Letra minúscula latina u com circunflexo",uuml:"Letra minúscula latina u com trema",yacute:"Letra minúscula latina y com acento agudo",thorn:"Letra minúscula latina Rúnico",yuml:"Letra minúscula latina y com trema",OElig:"Ligadura maiúscula latina OE",oelig:"Ligadura minúscula latina oe",372:"Letra maiúscula latina W com circunflexo",374:"Letra maiúscula latina Y com circunflexo",373:"Letra minúscula latina w com circunflexo",375:"Letra minúscula latina y com circunflexo",sbquo:"Aspa Simples inferior-9",
-8219:"Aspa simples superior invertida-9",bdquo:"Aspa duplas inferior-9",hellip:"Elipse horizontal ",trade:"Símbolo de marca registada",9658:"Ponteiro preto direito",bull:"Marca",rarr:"Seta para a direita",rArr:"Seta dupla para a direita",hArr:"Seta dupla direita esquerda",diams:"Naipe diamante preto",asymp:"Quase igual a "});
\ No newline at end of file
diff --git a/web/modules/ckeditor/vendor/plugins/specialchar/dialogs/lang/ro.js b/web/modules/ckeditor/vendor/plugins/specialchar/dialogs/lang/ro.js
deleted file mode 100644
index 3441ddfa476e0e7fa05702d60bda54eb0162343f..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/plugins/specialchar/dialogs/lang/ro.js
+++ /dev/null
@@ -1,13 +0,0 @@
-/*
- Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
- For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
-*/
-CKEDITOR.plugins.setLang("specialchar","ro",{euro:"Simbol EURO €",lsquo:"Ghilimea simplă stânga",rsquo:"Ghilimea simplă dreapta",ldquo:"Ghilimea dublă stânga",rdquo:"Ghilimea dublă dreapta",ndash:"liniuță despărțire cu spații",mdash:"liniuță despărțire cuvinte fără spații",iexcl:"semnul exclamației inversat",cent:"simbol cent",pound:"simbol lira sterlină",curren:"simbol monedă",yen:"simbol yen",brvbar:"bara verticală întreruptă",sect:"simbol paragraf",uml:"tréma",copy:"simbol drept de autor",ordf:"Indicatorul ordinal feminin a superscript",
-laquo:"Left-pointing double angle quotation mark",not:"Not sign",reg:"Registered sign",macr:"Macron",deg:"Degree sign",sup2:"Superscript two",sup3:"Superscript three",acute:"Acute accent",micro:"Micro sign",para:"Pilcrow sign",middot:"Middle dot",cedil:"Sedila",sup1:"Superscript one",ordm:"Masculine ordinal indicator",raquo:"Right-pointing double angle quotation mark",frac14:"Vulgar fraction one quarter",frac12:"Vulgar fraction one half",frac34:"Vulgar fraction three quarters",iquest:"Semnul întrebării inversat",
-Agrave:"Latin capital letter A with grave accent",Aacute:"Latin capital letter A with acute accent",Acirc:"Latin capital letter A with circumflex",Atilde:"Latin capital letter A with tilde",Auml:"Latin capital letter A with diaeresis",Aring:"Latin capital letter A with ring above",AElig:"Latin capital letter Æ",Ccedil:"Latin capital letter C with cedilla",Egrave:"Latin capital letter E with grave accent",Eacute:"Latin capital letter E with acute accent",Ecirc:"Latin capital letter E with circumflex",
-Euml:"Latin capital letter E with diaeresis",Igrave:"Latin capital letter I with grave accent",Iacute:"Latin capital letter I with acute accent",Icirc:"Latin capital letter I with circumflex",Iuml:"Latin capital letter I with diaeresis",ETH:"Latin capital letter Eth",Ntilde:"Latin capital letter N with tilde",Ograve:"Latin capital letter O with grave accent",Oacute:"Latin capital letter O with acute accent",Ocirc:"Latin capital letter O with circumflex",Otilde:"Latin capital letter O with tilde",
-Ouml:"Latin capital letter O with diaeresis",times:"Simbol înmulțire",Oslash:"Latin capital letter O with stroke",Ugrave:"Latin capital letter U with grave accent",Uacute:"Latin capital letter U with acute accent",Ucirc:"Latin capital letter U with circumflex",Uuml:"Latin capital letter U with diaeresis",Yacute:"Latin capital letter Y with acute accent",THORN:"Latin capital letter Thorn",szlig:"Latin small letter sharp s",agrave:"Latin small letter a with grave accent",aacute:"Latin small letter a with acute accent",
-acirc:"Latin small letter a with circumflex",atilde:"Latin small letter a with tilde",auml:"Latin small letter a with diaeresis",aring:"Latin small letter a with ring above",aelig:"Latin small letter æ",ccedil:"Latin small letter c with cedilla",egrave:"Latin small letter e with grave accent",eacute:"Latin small letter e with acute accent",ecirc:"Latin small letter e with circumflex",euml:"Latin small letter e with diaeresis",igrave:"Latin small letter i with grave accent",iacute:"Latin small letter i with acute accent",
-icirc:"Latin small letter i with circumflex",iuml:"Latin small letter i with diaeresis",eth:"Latin small letter eth",ntilde:"Latin small letter n with tilde",ograve:"Latin small letter o with grave accent",oacute:"Latin small letter o with acute accent",ocirc:"Latin small letter o with circumflex",otilde:"Latin small letter o with tilde",ouml:"Latin small letter o with diaeresis",divide:"Simbol împărțire",oslash:"Latin small letter o with stroke",ugrave:"Latin small letter u with grave accent",uacute:"Latin small letter u with acute accent",
-ucirc:"Latin small letter u with circumflex",uuml:"Latin small letter u with diaeresis",yacute:"Latin small letter y with acute accent",thorn:"Latin small letter thorn",yuml:"Latin small letter y with diaeresis",OElig:"Latin capital ligature OE",oelig:"Latin small ligature oe",372:"Latin capital letter W with circumflex",374:"Latin capital letter Y with circumflex",373:"Latin small letter w with circumflex",375:"Latin small letter y with circumflex",sbquo:"Single low-9 quotation mark",8219:"Single high-reversed-9 quotation mark",
-bdquo:"Double low-9 quotation mark",hellip:"Horizontal ellipsis",trade:"Trade mark sign",9658:"Black right-pointing pointer",bull:"Bullet",rarr:"Rightwards arrow",rArr:"Rightwards double arrow",hArr:"Left right double arrow",diams:"Black diamond suit",asymp:"Aproximativ egal cu"});
\ No newline at end of file
diff --git a/web/modules/ckeditor/vendor/plugins/specialchar/dialogs/lang/ru.js b/web/modules/ckeditor/vendor/plugins/specialchar/dialogs/lang/ru.js
deleted file mode 100644
index 292dfe4739fc36961b16b40ab32750504a6c7a25..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/plugins/specialchar/dialogs/lang/ru.js
+++ /dev/null
@@ -1,13 +0,0 @@
-/*
- Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
- For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
-*/
-CKEDITOR.plugins.setLang("specialchar","ru",{euro:"Знак евро",lsquo:"Левая одинарная кавычка",rsquo:"Правая одинарная кавычка",ldquo:"Левая двойная кавычка",rdquo:"Левая двойная кавычка",ndash:"Среднее тире",mdash:"Длинное тире",iexcl:"перевёрнутый восклицательный знак",cent:"Цент",pound:"Фунт",curren:"Знак валюты",yen:"Йена",brvbar:"Вертикальная черта с разрывом",sect:"Знак параграфа",uml:"Умлаут",copy:"Знак охраны авторского права",ordf:"Указатель окончания женского рода ...ая",laquo:"Левая кавычка-«ёлочка»",
-not:"Отрицание",reg:"Знак охраны смежных прав\\t",macr:"Макрон",deg:"Градус",sup2:"Надстрочное два",sup3:"Надстрочное три",acute:"Акут",micro:"Микро",para:"Абзац",middot:"Интерпункт",cedil:"Седиль",sup1:"Надстрочная единица",ordm:"Порядковое числительное",raquo:"Правая кавычка-«ёлочка»",frac14:"Одна четвертая",frac12:"Одна вторая",frac34:"Три четвёртых",iquest:"Перевёрнутый вопросительный знак",Agrave:"Латинская заглавная буква А с апострофом",Aacute:"Латинская заглавная буква A с ударением",Acirc:"Латинская заглавная буква А с циркумфлексом",
-Atilde:"Латинская заглавная буква А с тильдой",Auml:"Латинская заглавная буква А с тремой",Aring:"Латинская заглавная буква А с кольцом над ней",AElig:"Латинская большая буква Æ",Ccedil:"Латинская заглавная буква C с седилью",Egrave:"Латинская заглавная буква Е с апострофом",Eacute:"Латинская заглавная буква Е с ударением",Ecirc:"Латинская заглавная буква Е с циркумфлексом",Euml:"Латинская заглавная буква Е с тремой",Igrave:"Латинская заглавная буква I с апострофом",Iacute:"Латинская заглавная буква I с ударением",
-Icirc:"Латинская заглавная буква I с циркумфлексом",Iuml:"Латинская заглавная буква I с тремой",ETH:"Латинская большая буква Eth",Ntilde:"Латинская заглавная буква N с тильдой",Ograve:"Латинская заглавная буква O с апострофом",Oacute:"Латинская заглавная буква O с ударением",Ocirc:"Латинская заглавная буква O с циркумфлексом",Otilde:"Латинская заглавная буква O с тильдой",Ouml:"Латинская заглавная буква O с тремой",times:"Знак умножения",Oslash:"Латинская большая перечеркнутая O",Ugrave:"Латинская заглавная буква U с апострофом",
-Uacute:"Латинская заглавная буква U с ударением",Ucirc:"Латинская заглавная буква U с циркумфлексом",Uuml:"Латинская заглавная буква U с тремой",Yacute:"Латинская заглавная буква Y с ударением",THORN:"Латинская заглавная буква Thorn",szlig:"Знак диеза",agrave:"Латинская маленькая буква a с апострофом",aacute:"Латинская маленькая буква a с ударением",acirc:"Латинская маленькая буква a с циркумфлексом",atilde:"Латинская маленькая буква a с тильдой",auml:"Латинская маленькая буква a с тремой",aring:"Латинская маленькая буква a с кольцом",
-aelig:"Латинская маленькая буква æ",ccedil:"Латинская маленькая буква с с седилью",egrave:"Латинская маленькая буква е с апострофом",eacute:"Латинская маленькая буква е с ударением",ecirc:"Латинская маленькая буква е с циркумфлексом",euml:"Латинская маленькая буква е с тремой",igrave:"Латинская маленькая буква i с апострофом",iacute:"Латинская маленькая буква i с ударением",icirc:"Латинская маленькая буква i с циркумфлексом",iuml:"Латинская маленькая буква i с тремой",eth:"Латинская маленькая буква eth",
-ntilde:"Латинская маленькая буква n с тильдой",ograve:"Латинская маленькая буква o с апострофом",oacute:"Латинская маленькая буква o с ударением",ocirc:"Латинская маленькая буква o с циркумфлексом",otilde:"Латинская маленькая буква o с тильдой",ouml:"Латинская маленькая буква o с тремой",divide:"Знак деления",oslash:"Латинская строчная перечеркнутая o",ugrave:"Латинская маленькая буква u с апострофом",uacute:"Латинская маленькая буква u с ударением",ucirc:"Латинская маленькая буква u с циркумфлексом",
-uuml:"Латинская маленькая буква u с тремой",yacute:"Латинская маленькая буква y с ударением",thorn:"Латинская маленькая буква thorn",yuml:"Латинская маленькая буква y с тремой",OElig:"Латинская прописная лигатура OE",oelig:"Латинская строчная лигатура oe",372:"Латинская заглавная буква W с циркумфлексом",374:"Латинская заглавная буква Y с циркумфлексом",373:"Латинская маленькая буква w с циркумфлексом",375:"Латинская маленькая буква y с циркумфлексом",sbquo:"Нижняя одинарная кавычка",8219:"Правая одинарная кавычка",
-bdquo:"Левая двойная кавычка",hellip:"Горизонтальное многоточие",trade:"Товарный знак",9658:"Черный указатель вправо",bull:"Маркер списка",rarr:"Стрелка вправо",rArr:"Двойная стрелка вправо",hArr:"Двойная стрелка влево-вправо",diams:"Черный ромб",asymp:"Примерно равно"});
\ No newline at end of file
diff --git a/web/modules/ckeditor/vendor/plugins/specialchar/dialogs/lang/si.js b/web/modules/ckeditor/vendor/plugins/specialchar/dialogs/lang/si.js
deleted file mode 100644
index e2524473bab79039dcecf72c9e1fa0d077447da9..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/plugins/specialchar/dialogs/lang/si.js
+++ /dev/null
@@ -1,13 +0,0 @@
-/*
- Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
- For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
-*/
-CKEDITOR.plugins.setLang("specialchar","si",{euro:"යුරෝ සලකුණ",lsquo:"වමේ තනි උපුටා දක්වීම ",rsquo:"දකුණේ තනි උපුටා දක්වීම ",ldquo:"වමේ දිත්ව  උපුටා දක්වීම ",rdquo:"දකුණේ දිත්ව  උපුටා දක්වීම ",ndash:"En dash",mdash:"Em dash",iexcl:"යටිකුරු හර්ෂදී ",cent:"Cent sign",pound:"Pound sign",curren:"මුල්‍යමය ",yen:"යෙන් ",brvbar:"Broken bar",sect:"තෙරේම් ",uml:"Diaeresis",copy:"පිටපත් අයිතිය ",ordf:"දර්ශකය",laquo:"Left-pointing double angle quotation mark",not:"සලකුණක් නොවේ",reg:"සලකුණක් ලියාපදිංචි කිරීම",
-macr:"මුද්‍රිත ",deg:"සලකුණේ ",sup2:"උඩු ලකුණු දෙක",sup3:"Superscript three",acute:"Acute accent",micro:"Micro sign",para:"Pilcrow sign",middot:"Middle dot",cedil:"Cedilla",sup1:"Superscript one",ordm:"Masculine ordinal indicator",raquo:"Right-pointing double angle quotation mark",frac14:"Vulgar fraction one quarter",frac12:"Vulgar fraction one half",frac34:"Vulgar fraction three quarters",iquest:"Inverted question mark",Agrave:"Latin capital letter A with grave accent",Aacute:"Latin capital letter A with acute accent",
-Acirc:"Latin capital letter A with circumflex",Atilde:"Latin capital letter A with tilde",Auml:"Latin capital letter A with diaeresis",Aring:"Latin capital letter A with ring above",AElig:"Latin capital letter Æ",Ccedil:"Latin capital letter C with cedilla",Egrave:"Latin capital letter E with grave accent",Eacute:"Latin capital letter E with acute accent",Ecirc:"Latin capital letter E with circumflex",Euml:"Latin capital letter E with diaeresis",Igrave:"Latin capital letter I with grave accent",Iacute:"Latin capital letter I with acute accent",
-Icirc:"Latin capital letter I with circumflex",Iuml:"Latin capital letter I with diaeresis",ETH:"Latin capital letter Eth",Ntilde:"Latin capital letter N with tilde",Ograve:"Latin capital letter O with grave accent",Oacute:"Latin capital letter O with acute accent",Ocirc:"Latin capital letter O with circumflex",Otilde:"Latin capital letter O with tilde",Ouml:"Latin capital letter O with diaeresis",times:"Multiplication sign",Oslash:"Latin capital letter O with stroke",Ugrave:"Latin capital letter U with grave accent",
-Uacute:"Latin capital letter U with acute accent",Ucirc:"Latin capital letter U with circumflex",Uuml:"Latin capital letter U with diaeresis",Yacute:"Latin capital letter Y with acute accent",THORN:"Latin capital letter Thorn",szlig:"Latin small letter sharp s",agrave:"Latin small letter a with grave accent",aacute:"Latin small letter a with acute accent",acirc:"Latin small letter a with circumflex",atilde:"Latin small letter a with tilde",auml:"Latin small letter a with diaeresis",aring:"Latin small letter a with ring above",
-aelig:"Latin small letter æ",ccedil:"Latin small letter c with cedilla",egrave:"Latin small letter e with grave accent",eacute:"Latin small letter e with acute accent",ecirc:"Latin small letter e with circumflex",euml:"Latin small letter e with diaeresis",igrave:"Latin small letter i with grave accent",iacute:"Latin small letter i with acute accent",icirc:"Latin small letter i with circumflex",iuml:"Latin small letter i with diaeresis",eth:"Latin small letter eth",ntilde:"Latin small letter n with tilde",
-ograve:"Latin small letter o with grave accent",oacute:"Latin small letter o with acute accent",ocirc:"Latin small letter o with circumflex",otilde:"Latin small letter o with tilde",ouml:"Latin small letter o with diaeresis",divide:"Division sign",oslash:"Latin small letter o with stroke",ugrave:"Latin small letter u with grave accent",uacute:"Latin small letter u with acute accent",ucirc:"Latin small letter u with circumflex",uuml:"Latin small letter u with diaeresis",yacute:"Latin small letter y with acute accent",
-thorn:"Latin small letter thorn",yuml:"Latin small letter y with diaeresis",OElig:"Latin capital ligature OE",oelig:"Latin small ligature oe",372:"Latin capital letter W with circumflex",374:"Latin capital letter Y with circumflex",373:"Latin small letter w with circumflex",375:"Latin small letter y with circumflex",sbquo:"Single low-9 quotation mark",8219:"Single high-reversed-9 quotation mark",bdquo:"Double low-9 quotation mark",hellip:"Horizontal ellipsis",trade:"Trade mark sign",9658:"Black right-pointing pointer",
-bull:"Bullet",rarr:"Rightwards arrow",rArr:"Rightwards double arrow",hArr:"Left right double arrow",diams:"Black diamond suit",asymp:"Almost equal to"});
\ No newline at end of file
diff --git a/web/modules/ckeditor/vendor/plugins/specialchar/dialogs/lang/sk.js b/web/modules/ckeditor/vendor/plugins/specialchar/dialogs/lang/sk.js
deleted file mode 100644
index 2e51979a88b15698fa24feb0d8eec8468387582e..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/plugins/specialchar/dialogs/lang/sk.js
+++ /dev/null
@@ -1,13 +0,0 @@
-/*
- Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
- For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
-*/
-CKEDITOR.plugins.setLang("specialchar","sk",{euro:"Znak eura",lsquo:"Ľavá jednoduchá úvodzovka",rsquo:"Pravá jednoduchá úvodzovka",ldquo:"Pravá dvojitá úvodzovka",rdquo:"Pravá dvojitá úvodzovka",ndash:"En pomlčka",mdash:"Em pomlčka",iexcl:"Obrátený výkričník",cent:"Znak centu",pound:"Znak libry",curren:"Znak meny",yen:"Znak jenu",brvbar:"Prerušená zvislá čiara",sect:"Znak odseku",uml:"Prehláska",copy:"Znak copyrightu",ordf:"Ženský indikátor rodu",laquo:"Znak dvojitých lomených úvodzoviek vľavo",not:"Logistický zápor",
-reg:"Znak registrácie",macr:"Pomlčka nad",deg:"Znak stupňa",sup2:"Dvojka ako horný index",sup3:"Trojka ako horný index",acute:"Dĺžeň",micro:"Znak mikro",para:"Znak odstavca",middot:"Bodka uprostred",cedil:"Chvost vľavo",sup1:"Jednotka ako horný index",ordm:"Mužský indikátor rodu",raquo:"Znak dvojitých lomených úvodzoviek vpravo",frac14:"Obyčajný zlomok jedna štvrtina",frac12:"Obyčajný zlomok jedna polovica",frac34:"Obyčajný zlomok tri štvrtiny",iquest:"Otočený otáznik",Agrave:"Veľké písmeno latinky A s accentom",
-Aacute:"Veľké písmeno latinky A s dĺžňom",Acirc:"Veľké písmeno latinky A s mäkčeňom",Atilde:"Veľké písmeno latinky A s tildou",Auml:"Veľké písmeno latinky A s dvoma bodkami",Aring:"Veľké písmeno latinky A s krúžkom nad",AElig:"Veľké písmeno latinky Æ",Ccedil:"Veľké písmeno latinky C s chvostom vľavo",Egrave:"Veľké písmeno latinky E s accentom",Eacute:"Veľké písmeno latinky E s dĺžňom",Ecirc:"Veľké písmeno latinky E s mäkčeňom",Euml:"Veľké písmeno latinky E s dvoma bodkami",Igrave:"Veľké písmeno latinky I s accentom",
-Iacute:"Veľké písmeno latinky I s dĺžňom",Icirc:"Veľké písmeno latinky I s mäkčeňom",Iuml:"Veľké písmeno latinky I s dvoma bodkami",ETH:"Veľké písmeno latinky Eth",Ntilde:"Veľké písmeno latinky N s tildou",Ograve:"Veľké písmeno latinky O s accentom",Oacute:"Veľké písmeno latinky O s dĺžňom",Ocirc:"Veľké písmeno latinky O s mäkčeňom",Otilde:"Veľké písmeno latinky O s tildou",Ouml:"Veľké písmeno latinky O s dvoma bodkami",times:"Znak násobenia",Oslash:"Veľké písmeno latinky O preškrtnuté",Ugrave:"Veľké písmeno latinky U s accentom",
-Uacute:"Veľké písmeno latinky U s dĺžňom",Ucirc:"Veľké písmeno latinky U s mäkčeňom",Uuml:"Veľké písmeno latinky U s dvoma bodkami",Yacute:"Veľké písmeno latinky Y s dĺžňom",THORN:"Veľké písmeno latinky Thorn",szlig:"Malé písmeno latinky ostré s",agrave:"Malé písmeno latinky a s accentom",aacute:"Malé písmeno latinky a s dĺžňom",acirc:"Malé písmeno latinky a s mäkčeňom",atilde:"Malé písmeno latinky a s tildou",auml:"Malé písmeno latinky a s dvoma bodkami",aring:"Malé písmeno latinky a s krúžkom nad",
-aelig:"Malé písmeno latinky æ",ccedil:"Malé písmeno latinky c s chvostom vľavo",egrave:"Malé písmeno latinky e s accentom",eacute:"Malé písmeno latinky e s dĺžňom",ecirc:"Malé písmeno latinky e s mäkčeňom",euml:"Malé písmeno latinky e s dvoma bodkami",igrave:"Malé písmeno latinky i s accentom",iacute:"Malé písmeno latinky i s dĺžňom",icirc:"Malé písmeno latinky i s mäkčeňom",iuml:"Malé písmeno latinky i s dvoma bodkami",eth:"Malé písmeno latinky eth",ntilde:"Malé písmeno latinky n s tildou",ograve:"Malé písmeno latinky o s accentom",
-oacute:"Malé písmeno latinky o s dĺžňom",ocirc:"Malé písmeno latinky o s mäkčeňom",otilde:"Malé písmeno latinky o s tildou",ouml:"Malé písmeno latinky o s dvoma bodkami",divide:"Znak delenia",oslash:"Malé písmeno latinky o preškrtnuté",ugrave:"Malé písmeno latinky u s accentom",uacute:"Malé písmeno latinky u s dĺžňom",ucirc:"Malé písmeno latinky u s mäkčeňom",uuml:"Malé písmeno latinky u s dvoma bodkami",yacute:"Malé písmeno latinky y s dĺžňom",thorn:"Malé písmeno latinky thorn",yuml:"Malé písmeno latinky y s dvoma bodkami",
-OElig:"Veľká ligatúra latinky OE",oelig:"Malá ligatúra latinky OE",372:"Veľké písmeno latinky W s mäkčeňom",374:"Veľké písmeno latinky Y s mäkčeňom",373:"Malé písmeno latinky w s mäkčeňom",375:"Malé písmeno latinky y s mäkčeňom",sbquo:"Dolná jednoduchá 9-úvodzovka",8219:"Horná jednoduchá otočená 9-úvodzovka",bdquo:"Dolná dvojitá 9-úvodzovka",hellip:"Trojbodkový úvod",trade:"Znak ibchodnej značky",9658:"Čierny ukazovateľ smerujúci vpravo",bull:"Kruh",rarr:"Šípka vpravo",rArr:"Dvojitá šipka vpravo",
-hArr:"Dvojitá šipka vľavo a vpravo",diams:"Čierne piky",asymp:"Skoro sa rovná"});
\ No newline at end of file
diff --git a/web/modules/ckeditor/vendor/plugins/specialchar/dialogs/lang/sl.js b/web/modules/ckeditor/vendor/plugins/specialchar/dialogs/lang/sl.js
deleted file mode 100644
index be829056119f2f53ef2d6e880014847cd33c1912..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/plugins/specialchar/dialogs/lang/sl.js
+++ /dev/null
@@ -1,12 +0,0 @@
-/*
- Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
- For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
-*/
-CKEDITOR.plugins.setLang("specialchar","sl",{euro:"Znak za evro",lsquo:"Levi enojni narekovaj",rsquo:"Desni enojni narekovaj",ldquo:"Levi dvojni narekovaj",rdquo:"Desni dvojni narekovaj",ndash:"Pomišljaj",mdash:"Dolgi pomišljaj",iexcl:"Obrnjen klicaj",cent:"Znak za cent",pound:"Znak za funt",curren:"Znak valute",yen:"Znak za jen",brvbar:"Zlomljena črta",sect:"Znak za člen",uml:"Diereza",copy:"Znak avtorskih pravic",ordf:"Ženski zaporedni kazalnik",laquo:"Levi dvojni lomljeni narekovaj",not:"Znak za ne",
-reg:"Registrirani znak",macr:"Nadčrtano",deg:"Znak za stopinje",sup2:"Nadpisano dva",sup3:"Nadpisano tri",acute:"Ostrivec",micro:"Znak za mikro",para:"Znak za odstavek",middot:"Usredinjena pika",cedil:"Cedilla",sup1:"Nadpisano ena",ordm:"Moški zaporedni kazalnik",raquo:"Desno obrnjen dvojni kotni narekovaj",frac14:"Ena četrtina",frac12:"Ena polovica",frac34:"Tri četrtine",iquest:"Obrnjen vprašaj",Agrave:"Velika latinska črka A s krativcem",Aacute:"Velika latinska črka A z ostrivcem",Acirc:"Velika latinska črka A s strešico",
-Atilde:"Velika latinska črka A z tildo",Auml:"Velika latinska črka A z diaeresis-om",Aring:"Velika latinska črka A z obročem",AElig:"Velika latinska črka Æ",Ccedil:"Velika latinska črka C s cedillo",Egrave:"Velika latinska črka E s krativcem",Eacute:"Velika latinska črka E z ostrivcem",Ecirc:"Velika latinska črka E s strešico",Euml:"Velika latinska črka E z diaeresis-om",Igrave:"Velika latinska črka I s krativcem",Iacute:"Velika latinska črka I z ostrivcem",Icirc:"Velika latinska črka I s strešico",
-Iuml:"Velika latinska črka I z diaeresis-om",ETH:"Velika latinska črka Eth",Ntilde:"Velika latinska črka N s tildo",Ograve:"Velika latinska črka O s krativcem",Oacute:"Velika latinska črka O z ostrivcem",Ocirc:"Velika latinska črka O s strešico",Otilde:"Velika latinska črka O s tildo",Ouml:"Velika latinska črka O z diaeresis-om",times:"Znak za množenje",Oslash:"Velika prečrtana latinska črka O",Ugrave:"Velika latinska črka U s krativcem",Uacute:"Velika latinska črka U z ostrivcem",Ucirc:"Velika latinska črka U s strešico",
-Uuml:"Velika latinska črka U z diaeresis-om",Yacute:"Velika latinska črka Y z ostrivcem",THORN:"Velika latinska črka Thorn",szlig:"Mala ostra latinska črka s",agrave:"Mala latinska črka a s krativcem",aacute:"Mala latinska črka a z ostrivcem",acirc:"Mala latinska črka a s strešico",atilde:"Mala latinska črka a s tildo",auml:"Mala latinska črka a z diaeresis-om",aring:"Mala latinska črka a z obročem",aelig:"Mala latinska črka æ",ccedil:"Mala latinska črka c s cedillo",egrave:"Mala latinska črka e s krativcem",
-eacute:"Mala latinska črka e z ostrivcem",ecirc:"Mala latinska črka e s strešico",euml:"Mala latinska črka e z diaeresis-om",igrave:"Mala latinska črka i s krativcem",iacute:"Mala latinska črka i z ostrivcem",icirc:"Mala latinska črka i s strešico",iuml:"Mala latinska črka i z diaeresis-om",eth:"Mala latinska črka eth",ntilde:"Mala latinska črka n s tildo",ograve:"Mala latinska črka o s krativcem",oacute:"Mala latinska črka o z ostrivcem",ocirc:"Mala latinska črka o s strešico",otilde:"Mala latinska črka o s tildo",
-ouml:"Mala latinska črka o z diaeresis-om",divide:"Znak za deljenje",oslash:"Mala prečrtana latinska črka o",ugrave:"Mala latinska črka u s krativcem",uacute:"Mala latinska črka u z ostrivcem",ucirc:"Mala latinska črka u s strešico",uuml:"Mala latinska črka u z diaeresis-om",yacute:"Mala latinska črka y z ostrivcem",thorn:"Mala latinska črka thorn",yuml:"Mala latinska črka y z diaeresis-om",OElig:"Velika latinska ligatura OE",oelig:"Mala latinska ligatura oe",372:"Velika latinska črka W s strešico",
-374:"Velika latinska črka Y s strešico",373:"Mala latinska črka w s strešico",375:"Mala latinska črka y s strešico",sbquo:"Enojni nizki-9 narekovaj",8219:"Enojni visoki-obrnjen-9 narekovaj",bdquo:"Dvojni nizki-9 narekovaj",hellip:"Horizontalni izpust",trade:"Znak blagovne znamke",9658:"Črni desno-usmerjen kazalec",bull:"Krogla",rarr:"Desno-usmerjena puščica",rArr:"Desno-usmerjena dvojna puščica",hArr:"Leva in desna dvojna puščica",diams:"Črna kara",asymp:"Skoraj enako"});
\ No newline at end of file
diff --git a/web/modules/ckeditor/vendor/plugins/specialchar/dialogs/lang/sq.js b/web/modules/ckeditor/vendor/plugins/specialchar/dialogs/lang/sq.js
deleted file mode 100644
index 9a2aaa8ae512fa538f26b44ea62624ecdc1a7be1..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/plugins/specialchar/dialogs/lang/sq.js
+++ /dev/null
@@ -1,13 +0,0 @@
-/*
- Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
- For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
-*/
-CKEDITOR.plugins.setLang("specialchar","sq",{euro:"Shenja e Euros",lsquo:"Thonjëza majtas me një vi",rsquo:"Thonjëza djathtas me një vi",ldquo:"Thonjëza majtas",rdquo:"Thonjëza djathtas",ndash:"En viza lidhëse",mdash:"Em viza lidhëse",iexcl:"Pikëçuditëse e përmbysur",cent:"Shenja e Centit",pound:"Shejna e Funtit",curren:"Shenja e valutës",yen:"Shenja e Jenit",brvbar:"Viza e këputur",sect:"Shenja e pjesës",uml:"Diaeresis",copy:"Shenja e të drejtave të kopjimit",ordf:"Tregues rendor femror",laquo:"Thonjëz me dy kënde e kthyer majtas",
-not:"Nuk ka shenjë",reg:"Shenja e të regjistruarit",macr:"Macron",deg:"Shenja e shkallës",sup2:"Super-skripta dy",sup3:"Super-skripta tre",acute:"Theks i mprehtë",micro:"Shjenja e Mikros",para:"Shenja Pilkrou",middot:"Pika e Mesme",cedil:"Hark nën shkronja",sup1:"Super-skripta një",ordm:"Tregues rendor mashkullor",raquo:"Thonjëz me dy kënde e kthyer djathtas",frac14:"Thyesa një të katrat",frac12:"Thyesa një të dytat",frac34:"Thyesa tre të katrat",iquest:"Pikëpyetje e përmbysur",Agrave:"Shkronja e madhe latine A me theks të rëndë",
-Aacute:"Shkronja e madhe latine A me theks akute",Acirc:"Shkronja e madhe latine A me theks lakor",Atilde:"Shkronja e madhe latine A me tildë",Auml:"Shkronja e madhe latine A me dy pika",Aring:"Shkronja e madhe latine A me unazë mbi",AElig:"Shkronja e madhe latine Æ",Ccedil:"Shkronja e madhe latine C me hark poshtë",Egrave:"Shkronja e madhe latine E me theks të rëndë",Eacute:"Shkronja e madhe latine E me theks akute",Ecirc:"Shkronja e madhe latine E me theks lakor",Euml:"Shkronja e madhe latine E me dy pika",
-Igrave:"Shkronja e madhe latine I me theks të rëndë",Iacute:"Shkronja e madhe latine I me theks akute",Icirc:"Shkronja e madhe latine I me theks lakor",Iuml:"Shkronja e madhe latine I me dy pika",ETH:"Shkronja e madhe latine Eth",Ntilde:"Shkronja e madhe latine N me tildë",Ograve:"Shkronja e madhe latine O me theks të rëndë",Oacute:"Shkronja e madhe latine O me theks akute",Ocirc:"Shkronja e madhe latine O me theks lakor",Otilde:"Shkronja e madhe latine O me tildë",Ouml:"Shkronja e madhe latine O me dy pika",
-times:"Shenja e shumëzimit",Oslash:"Shkronja e madhe latine O me vizë në mes",Ugrave:"Shkronja e madhe latine U me theks të rëndë",Uacute:"Shkronja e madhe latine U me theks akute",Ucirc:"Shkronja e madhe latine U me theks lakor",Uuml:"Shkronja e madhe latine U me dy pika",Yacute:"Shkronja e madhe latine Y me theks akute",THORN:"Shkronja e madhe latine Thorn",szlig:"Shkronja e vogë latine s e mprehtë",agrave:"Shkronja e vogë latine a me theks të rëndë",aacute:"Shkronja e vogë latine a me theks të mprehtë",
-acirc:"Shkronja e vogël latine a me theks lakor",atilde:"Shkronja e vogël latine a me tildë",auml:"Shkronja e vogël latine a me dy pika",aring:"Shkronja e vogë latine a me unazë mbi",aelig:"Shkronja e vogë latine æ",ccedil:"Shkronja e vogël latine c me hark poshtë",egrave:"Shkronja e vogë latine e me theks të rëndë",eacute:"Shkronja e vogë latine e me theks të mprehtë",ecirc:"Shkronja e vogël latine e me theks lakor",euml:"Shkronja e vogël latine e me dy pika",igrave:"Shkronja e vogë latine i me theks të rëndë",
-iacute:"Shkronja e vogë latine i me theks të mprehtë",icirc:"Shkronja e vogël latine i me theks lakor",iuml:"Shkronja e vogël latine i me dy pika",eth:"Shkronja e vogë latine eth",ntilde:"Shkronja e vogël latine n me tildë",ograve:"Shkronja e vogë latine o me theks të rëndë",oacute:"Shkronja e vogë latine o me theks të mprehtë",ocirc:"Shkronja e vogël latine o me theks lakor",otilde:"Shkronja e vogël latine o me tildë",ouml:"Shkronja e vogël latine o me dy pika",divide:"Shenja ndarëse",oslash:"Shkronja e vogël latine o me vizë në mes",
-ugrave:"Shkronja e vogë latine u me theks të rëndë",uacute:"Shkronja e vogë latine u me theks të mprehtë",ucirc:"Shkronja e vogël latine u me theks lakor",uuml:"Shkronja e vogël latine u me dy pika",yacute:"Shkronja e vogë latine y me theks të mprehtë",thorn:"Shkronja e vogël latine thorn",yuml:"Shkronja e vogël latine y me dy pika",OElig:"Shkronja e madhe e bashkuar latine OE",oelig:"Shkronja e vogël e bashkuar latine oe",372:"Shkronja e madhe latine W me theks lakor",374:"Shkronja e madhe latine Y me theks lakor",
-373:"Shkronja e vogël latine w me theks lakor",375:"Shkronja e vogël latine y me theks lakor",sbquo:"Thonjëz-9 e vetme poshtë",8219:"Thonjëz-9 lartë e vetme e kthyer në të kundërtën",bdquo:"Thonjëza-9 poshtë",hellip:"Tri pika horizontale",trade:"Shenja e Simbolit Tregtarë",9658:"Shenjë tregues kthyer djathtas-prapa",bull:"Pulla",rarr:"Shigjeta djathtas",rArr:"Shenja të dyfishta djathtas",hArr:"Shigjeta e dyfishë majtas-djathtas",diams:"Karo me ngjyrë të zezë",asymp:"Gati e barabar me"});
\ No newline at end of file
diff --git a/web/modules/ckeditor/vendor/plugins/specialchar/dialogs/lang/sr-latn.js b/web/modules/ckeditor/vendor/plugins/specialchar/dialogs/lang/sr-latn.js
deleted file mode 100644
index b8a24741a70bcd25183ef3427fa0adcdd082263f..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/plugins/specialchar/dialogs/lang/sr-latn.js
+++ /dev/null
@@ -1,13 +0,0 @@
-/*
- Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
- For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
-*/
-CKEDITOR.plugins.setLang("specialchar","sr-latn",{euro:"Znak eura",lsquo:"Levi simpli znak navoda",rsquo:"Desni simpli znak navoda",ldquo:"Levi dupli znak navoda",rdquo:"Desni dupli znak navoda",ndash:"Kratka crtica",mdash:"Dugačka crtica",iexcl:"Obrnuti uzvičnik",cent:"Znak za cent",pound:"Znak za funtе",curren:"Znak za valutu",yen:"Znak za jenа",brvbar:"Traka sa prekidom",sect:"Znak paragrafa",uml:"Umlaut",copy:"Znak za autorsko pravo",ordf:"Ženski redni indikator",laquo:"Dupla strelica levo",not:"Bez znaka",
-reg:"Registrovani znak",macr:"Znak dužine",deg:"Znak za stepen",sup2:"Znak za kvadrat",sup3:"Znak za kub",acute:"Oštar akcenat",micro:"Znak mikro",para:"Znak pasusa",middot:"Srednja tačka",cedil:"Cedila",sup1:"Znak na prvom",ordm:"Muški redni indikator",raquo:"Dupla strelica desno",frac14:"Znak za četvrtinu",frac12:"Znak za polovinu",frac34:"Znak za trećinu",iquest:"Obrnuti upitnik",Agrave:"Veliko latinično slovo A sa  obrnutom kukicom.",Aacute:"Veliko latinično slovo A sa kukicom.",Acirc:"Veliko latinično slovo A sa savijenom kukicom.",
-Atilde:"Veliko latinično slovo A sa znakom talasa.",Auml:"Veliko latinično slovo A sa dvotačkom",Aring:"Veliko latinično slovo A sa prstenom iznad.",AElig:"Veliko latinično slovo Æ",Ccedil:"Veliko latinično slovo C sa cedilom",Egrave:"Veliko latinično slovo E sa obrnutom kukicom",Eacute:"Veliko latinično slovo E sa kukicom.",Ecirc:"Veliko latinično slovo E sa savijenom kukicom.",Euml:"Veliko latinično slovo E sa dvotačkom",Igrave:"Veliko latinično slovo I sa obrnutom kukicom",Iacute:"Veliko latinično slovo I sa kukicom.",
-Icirc:"Veliko latinično slovo I sa savijenom kukicom.",Iuml:"Veliko latinično slovo I sa dvotačkom",ETH:"Veliko latinično slovo Eth",Ntilde:"Veliko latinično slovo N sa znakom talasa.",Ograve:"Veliko latinično slovo O sa obrnutom kukicom",Oacute:"Veliko latinično slovo O sa kukicom.",Ocirc:"Veliko latinično slovo O sa savijenom kukicom.",Otilde:"Veliko latinično slovo O sa znakom talasa.",Ouml:"Veliko latinično slovo O sa dvotačkom",times:"Znak množenja",Oslash:"Latinično slovo O precrtano",Ugrave:"Veliko latinično slovo U sa obrnutom kukicom",
-Uacute:"Veliko latinično slovo U sa kukicom",Ucirc:"Veliko latinično slovo U sa savijenom kukicom.",Uuml:"Veliko latinično slovo U sa dvotačkom",Yacute:"Veliko latinično slovo Y sa kukicom",THORN:"Veliko latinično slovo Thotn",szlig:"Malo latinično slovo s",agrave:"Malo latinično slovo a sa obrnutom kukicom",aacute:"Malo latinično slovo a sa kukicom",acirc:"Malo latinično slovo a sa savijenom kukicom",atilde:"Malo latinično slovo a sa znakom talasa",auml:"Malo latinično slovo a sa dvotačkom",aring:"Malo latinično slovo a sa prstenom iznad",
-aelig:"Malo latinično slovo æ",ccedil:"Malo latinično slovo c sa cedilom",egrave:"Malo latinično slovo e sa obrnutom kukicom",eacute:"Malo latinično slovo e sa kukicom",ecirc:"Malo latinično slovo e sa savijenom kukicom",euml:"Malo latinično slovo e sa dvotačkom",igrave:"Malo latinično slovo i sa obrnutom kukicom",iacute:"Malo latinično slovo i sa kukicom",icirc:"Malo latinično slovo i sa savijenom kukicom",iuml:"Malo latinično slovo i sa dvotačkom",eth:"Malo latinično slovo eth",ntilde:"Malo latinično slovo n sa znakom talasa",
-ograve:"Malo latinično slovo o sa obrnutom kukicom",oacute:"Malo latinično slovo o sa kukicom",ocirc:"Malo latinično slovo o sa savijenom kukicom",otilde:"Malo latinično slovo o sa znakom talasa",ouml:"Malo latinično slovo o dvotačkom",divide:"Znak deljenja",oslash:"Malo latinično slovo o precrtano",ugrave:"Malo latinično slovo u sa obrnutom kukicom",uacute:"Malo latinično slovo u sa kukicom",ucirc:"Malo latinično slovo u sa savijenom kukicom",uuml:"Malo latinično slovo u sa dvotačkom",yacute:"Malo latinično slovo y sa kukicom",
-thorn:"Malo latinično slovo thorn",yuml:"Malo latinično slovo y sa dvotačkom",OElig:"Veliki latinični znak OE",oelig:"Mali latinični znak OE",372:"Veliko latinično slovo W sa savijenom kukicom.",374:"Veliko latinično slovo Y sa savijenom kukicom.",373:"Malo latinično slovo w sa savijenom kukicom.",375:"Malo latinično slovo y sa savijenom kukicom.",sbquo:"Tipografski simpli navodnik za otvaranje",8219:"Tipografski simpli navodnik za zatvaranje",bdquo:"Tipografski dupli navodnik ",hellip:"Tri tačke",
-trade:"Znak robne marke",9658:"Crni pokazivač desno",bull:"Tačka",rarr:"Strelica desno",rArr:"Dupla strelica desno",hArr:"Levo desno dupla strelica",diams:"Crni dijamant znak",asymp:"Znak skoro jednako"});
\ No newline at end of file
diff --git a/web/modules/ckeditor/vendor/plugins/specialchar/dialogs/lang/sr.js b/web/modules/ckeditor/vendor/plugins/specialchar/dialogs/lang/sr.js
deleted file mode 100644
index 27d6229fb4677948fdf939f58964f8fbe625fa02..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/plugins/specialchar/dialogs/lang/sr.js
+++ /dev/null
@@ -1,13 +0,0 @@
-/*
- Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
- For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
-*/
-CKEDITOR.plugins.setLang("specialchar","sr",{euro:"Знак еура",lsquo:"Леви симпли знак навода",rsquo:"Десни симпли знак навода",ldquo:"Леви дупли знак навода",rdquo:"Десни дупли знак навода",ndash:"Кратка цртица",mdash:"Дугачка цртица",iexcl:"Обрнути узвичник",cent:"Знак цент",pound:"Знак фунте",curren:"Знак валуте",yen:"Знак јена",brvbar:"Трака са прекидом",sect:"Знак параграфа",uml:"Умлаут",copy:"Знак ауторско право",ordf:"Женски редни индикатор",laquo:"Дупла стрелица лево",not:"Без знака",reg:"Регистровани знак",
-macr:"Знак дужине",deg:"Знак за степен",sup2:"Знак на квадрату",sup3:"Знак на куб",acute:"Оштар акценат",micro:"Знак микро",para:"Знак пасуса",middot:"Средња тачка",cedil:"Цедиле",sup1:"Знак на првом",ordm:"Мушки редни индикатор",raquo:"Десна дупла стрелица",frac14:"Знак за четвртину",frac12:"Знак за половину",frac34:"Знак за трећину",iquest:"Обрнути упитник",Agrave:"Велико латинично слово А са обрнутом кукицом",Aacute:"Велико латинично слово А са кукицом",Acirc:"Велико латинично слово А са савијеном кукицом",
-Atilde:"Велико латинично слово А са знаком таласа",Auml:"Велико латинично слово А са двотачком",Aring:"Велико латинично слово А прстеном изнад",AElig:"Велико латинично слово  Æ",Ccedil:"Велико латинично слово Ц са цедилом",Egrave:"Велико латинично слово Е са обрнутом кукицом",Eacute:"Велико латинично слово Е са кукицом",Ecirc:"Велико латинично слово Е са савијеном кукицом",Euml:"Велико латинично слово Е са двотачком",Igrave:"Велико латинично слово И са обрнутом кукицом",Iacute:"Велико латинично слово И са кукицом",
-Icirc:"Велико латинично слово И са савијеном кукицом",Iuml:"Велико латинично слово И са двотачком",ETH:"Велико латинично слово Eth",Ntilde:"Велико латинично слово Н са знаком таласа",Ograve:"Велико латинично слово О са обрнутом кукицом",Oacute:"Велико латинично слово О са кукицом",Ocirc:"Велико латинично слово О са савијеном кукицом",Otilde:"Велико латинично слово О са знаком таласа",Ouml:"Велико латинично слово О са двотачком",times:"Знак множења",Oslash:"Велико латинично слово О прецртано",Ugrave:"Велико латинично слово У са обрнутом кукицом",
-Uacute:"Велико латинично слово У са кукицом",Ucirc:"Велико латинично слово У са савијеном кукицом",Uuml:"Велико латинично слово У са двотачком",Yacute:"Велико латинично слово ИПСИЛОН са кукицом",THORN:"Велико латинично словоThorn",szlig:"Мало латинично слово с",agrave:"Мало латинично слово с са обрнутом кукицом",aacute:"Мало латинично слово а са кукицом",acirc:"Мало латинично слово а са савијеном кукицом",atilde:"Мало латинично слово а са знаком таласа",auml:"Мало латинично слово а са двотачком",
-aring:"Мало латинично слово а са прстеном изнад",aelig:"Мало латинично слово æ",ccedil:"Мало латинично слово ц са цедилом",egrave:"Мало латинично слово е са обрнутом кукицом",eacute:"Мало латинично слово е са кукицом",ecirc:"Мало латинично слово е са савијеном кукицом",euml:"Мало латинично слово е са двотачком",igrave:"Мало латинично слово и са обрнутом кукицом",iacute:"Мало латинично слово и са кукицом",icirc:"Мало латинично слово и са савијеном кукицом",iuml:"Мало латинично слово и са двотачком",
-eth:"Мало латинично слово  eth",ntilde:" Мало латинично слово н са знаком таласа",ograve:"Мало латинично слово о са обрнутом кукицом",oacute:"Мало латинично слово о са кукицом",ocirc:"Мало латинично слово о са савијеном кукицом",otilde:"Мало латинично слово о са знаком таласа",ouml:"Мало латинично слово о са двотачком",divide:"Знак дељења",oslash:"Мало латинично слово о прецртано",ugrave:"Мало латинично слово у са обрнутом кукицом",uacute:"Мало латинично слово у са кукицом",ucirc:"Мало латинично слово у са савијеном кукицом",
-uuml:"Мало латинично слово у са двотачком",yacute:"Мало латинично слово ипсилон са кукицом",thorn:"Мало латинично слово thorn",yuml:"Мало латинично слово ипсилон са двотачком",OElig:"Белико латинично слово ОЕ",oelig:"Мало латинично слово ОЕ",372:"Белико латинично слово W са савијеном кукицом",374:"Велико латинично слово ипсилон са савијеном кукицом",373:"Мало латинично слово w са савијеном кукицом",375:"Мало латинично слово ипсилон са савијеном кукицом",sbquo:"Типографски симпли наводник за отварање",
-8219:"Типографски симпли наводник за затварање",bdquo:"Типографски дупли наводник ",hellip:"Три тачке",trade:"Знак робне марке",9658:"Црни показивач десно",bull:"Тачка",rarr:"Стрелица десно",rArr:"Дупла стрелица десно",hArr:"Дупла стрелица лево десно",diams:"Црни дијамант знак",asymp:"Знак скоро једнако"});
\ No newline at end of file
diff --git a/web/modules/ckeditor/vendor/plugins/specialchar/dialogs/lang/sv.js b/web/modules/ckeditor/vendor/plugins/specialchar/dialogs/lang/sv.js
deleted file mode 100644
index 3a44aa2a20580fb53281fbc33f1c2b244cd2e495..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/plugins/specialchar/dialogs/lang/sv.js
+++ /dev/null
@@ -1,11 +0,0 @@
-/*
- Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
- For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
-*/
-CKEDITOR.plugins.setLang("specialchar","sv",{euro:"Eurotecken",lsquo:"Enkelt vänster citattecken",rsquo:"Enkelt höger citattecken",ldquo:"Dubbelt vänster citattecken",rdquo:"Dubbelt höger citattecken",ndash:"Snedstreck",mdash:"Långt tankstreck",iexcl:"Inverterad utropstecken",cent:"Centtecken",pound:"Pundtecken",curren:"Valutatecken",yen:"Yentecken",brvbar:"Brutet lodrätt streck",sect:"Paragraftecken",uml:"Diaeresis",copy:"Upphovsrättstecken",ordf:"Feminit ordningstalsindikator",laquo:"Vänsterställt dubbelt vinkelcitationstecken",
-not:"Icke-tecken",reg:"Registrerad",macr:"Macron",deg:"Grader",sup2:"Upphöjt två",sup3:"Upphöjt tre",acute:"Akut accent",micro:"Mikrotecken",para:"Alinea",middot:"Centrerad prick",cedil:"Cedilj",sup1:"Upphöjt en",ordm:"Maskulina ordningsändelsen",raquo:"Högerställt dubbelt vinkelcitationstecken",frac14:"Bråktal - en kvart",frac12:"Bråktal - en halv",frac34:"Bråktal - tre fjärdedelar",iquest:"Inverterat frågetecken",Agrave:"Stort A med grav accent",Aacute:"Stort A med akutaccent",Acirc:"Stort A med circumflex",
-Atilde:"Stort A med tilde",Auml:"Stort A med diaresis",Aring:"Stort A med ring ovan",AElig:"Stort Æ",Ccedil:"Stort C med cedilj",Egrave:"Stort E med grav accent",Eacute:"Stort E med aktuaccent",Ecirc:"Stort E med circumflex",Euml:"Stort E med diaeresis",Igrave:"Stort I med grav accent",Iacute:"Stort I med akutaccent",Icirc:"Stort I med circumflex",Iuml:"Stort I med diaeresis",ETH:"Stort Eth",Ntilde:"Stort N med tilde",Ograve:"Stort O med grav accent",Oacute:"Stort O med aktuaccent",Ocirc:"Stort O med circumflex",
-Otilde:"Stort O med tilde",Ouml:"Stort O med diaeresis",times:"Multiplicera",Oslash:"Stor Ø",Ugrave:"Stort U med grav accent",Uacute:"Stort U med akutaccent",Ucirc:"Stort U med circumflex",Uuml:"Stort U med diaeresis",Yacute:"Stort Y med akutaccent",THORN:"Stort Thorn",szlig:"Litet dubbel-s/Eszett",agrave:"Litet a med grav accent",aacute:"Litet a med akutaccent",acirc:"Litet a med circumflex",atilde:"Litet a med tilde",auml:"Litet a med diaeresis",aring:"Litet a med ring ovan",aelig:"Bokstaven æ",
-ccedil:"Litet c med cedilj",egrave:"Litet e med grav accent",eacute:"Litet e med akutaccent",ecirc:"Litet e med circumflex",euml:"Litet e med diaeresis",igrave:"Litet i med grav accent",iacute:"Litet i med akutaccent",icirc:"LItet i med circumflex",iuml:"Litet i med didaeresis",eth:"Litet eth",ntilde:"Litet n med tilde",ograve:"LItet o med grav accent",oacute:"LItet o med akutaccent",ocirc:"Litet o med circumflex",otilde:"LItet o med tilde",ouml:"Litet o med diaeresis",divide:"Division",oslash:"ø",
-ugrave:"Litet u med grav accent",uacute:"Litet u med akutaccent",ucirc:"LItet u med circumflex",uuml:"Litet u med diaeresis",yacute:"Litet y med akutaccent",thorn:"Litet thorn",yuml:"Litet y med diaeresis",OElig:"Stor ligatur av OE",oelig:"Liten ligatur av oe",372:"Stort W med circumflex",374:"Stort Y med circumflex",373:"Litet w med circumflex",375:"Litet y med circumflex",sbquo:"Enkelt lågt 9-citationstecken",8219:"Enkelt högt bakvänt 9-citationstecken",bdquo:"Dubbelt lågt 9-citationstecken",hellip:"Horisontellt uteslutningstecken",
-trade:"Varumärke",9658:"Svart högervänd pekare",bull:"Listpunkt",rarr:"Högerpil",rArr:"Dubbel högerpil",hArr:"Dubbel vänsterpil",diams:"Svart ruter",asymp:"Ungefär lika med"});
\ No newline at end of file
diff --git a/web/modules/ckeditor/vendor/plugins/specialchar/dialogs/lang/th.js b/web/modules/ckeditor/vendor/plugins/specialchar/dialogs/lang/th.js
deleted file mode 100644
index 4ed9ad93c50a3381af2832f370c55cea837eb2e8..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/plugins/specialchar/dialogs/lang/th.js
+++ /dev/null
@@ -1,13 +0,0 @@
-/*
- Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
- For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
-*/
-CKEDITOR.plugins.setLang("specialchar","th",{euro:"Euro sign",lsquo:"Left single quotation mark",rsquo:"Right single quotation mark",ldquo:"Left double quotation mark",rdquo:"Right double quotation mark",ndash:"En dash",mdash:"Em dash",iexcl:"Inverted exclamation mark",cent:"Cent sign",pound:"Pound sign",curren:"สัญลักษณ์สกุลเงิน",yen:"สัญลักษณ์เงินเยน",brvbar:"Broken bar",sect:"Section sign",uml:"Diaeresis",copy:"Copyright sign",ordf:"Feminine ordinal indicator",laquo:"Left-pointing double angle quotation mark",
-not:"Not sign",reg:"Registered sign",macr:"Macron",deg:"Degree sign",sup2:"Superscript two",sup3:"Superscript three",acute:"Acute accent",micro:"Micro sign",para:"Pilcrow sign",middot:"Middle dot",cedil:"Cedilla",sup1:"Superscript one",ordm:"Masculine ordinal indicator",raquo:"Right-pointing double angle quotation mark",frac14:"Vulgar fraction one quarter",frac12:"Vulgar fraction one half",frac34:"Vulgar fraction three quarters",iquest:"Inverted question mark",Agrave:"Latin capital letter A with grave accent",
-Aacute:"Latin capital letter A with acute accent",Acirc:"Latin capital letter A with circumflex",Atilde:"Latin capital letter A with tilde",Auml:"Latin capital letter A with diaeresis",Aring:"Latin capital letter A with ring above",AElig:"Latin capital letter Æ",Ccedil:"Latin capital letter C with cedilla",Egrave:"Latin capital letter E with grave accent",Eacute:"Latin capital letter E with acute accent",Ecirc:"Latin capital letter E with circumflex",Euml:"Latin capital letter E with diaeresis",Igrave:"Latin capital letter I with grave accent",
-Iacute:"Latin capital letter I with acute accent",Icirc:"Latin capital letter I with circumflex",Iuml:"Latin capital letter I with diaeresis",ETH:"Latin capital letter Eth",Ntilde:"Latin capital letter N with tilde",Ograve:"Latin capital letter O with grave accent",Oacute:"Latin capital letter O with acute accent",Ocirc:"Latin capital letter O with circumflex",Otilde:"Latin capital letter O with tilde",Ouml:"Latin capital letter O with diaeresis",times:"Multiplication sign",Oslash:"Latin capital letter O with stroke",
-Ugrave:"Latin capital letter U with grave accent",Uacute:"Latin capital letter U with acute accent",Ucirc:"Latin capital letter U with circumflex",Uuml:"Latin capital letter U with diaeresis",Yacute:"Latin capital letter Y with acute accent",THORN:"Latin capital letter Thorn",szlig:"Latin small letter sharp s",agrave:"Latin small letter a with grave accent",aacute:"Latin small letter a with acute accent",acirc:"Latin small letter a with circumflex",atilde:"Latin small letter a with tilde",auml:"Latin small letter a with diaeresis",
-aring:"Latin small letter a with ring above",aelig:"Latin small letter æ",ccedil:"Latin small letter c with cedilla",egrave:"Latin small letter e with grave accent",eacute:"Latin small letter e with acute accent",ecirc:"Latin small letter e with circumflex",euml:"Latin small letter e with diaeresis",igrave:"Latin small letter i with grave accent",iacute:"Latin small letter i with acute accent",icirc:"Latin small letter i with circumflex",iuml:"Latin small letter i with diaeresis",eth:"Latin small letter eth",
-ntilde:"Latin small letter n with tilde",ograve:"Latin small letter o with grave accent",oacute:"Latin small letter o with acute accent",ocirc:"Latin small letter o with circumflex",otilde:"Latin small letter o with tilde",ouml:"Latin small letter o with diaeresis",divide:"Division sign",oslash:"Latin small letter o with stroke",ugrave:"Latin small letter u with grave accent",uacute:"Latin small letter u with acute accent",ucirc:"Latin small letter u with circumflex",uuml:"Latin small letter u with diaeresis",
-yacute:"Latin small letter y with acute accent",thorn:"Latin small letter thorn",yuml:"Latin small letter y with diaeresis",OElig:"Latin capital ligature OE",oelig:"Latin small ligature oe",372:"Latin capital letter W with circumflex",374:"Latin capital letter Y with circumflex",373:"Latin small letter w with circumflex",375:"Latin small letter y with circumflex",sbquo:"Single low-9 quotation mark",8219:"Single high-reversed-9 quotation mark",bdquo:"Double low-9 quotation mark",hellip:"Horizontal ellipsis",
-trade:"Trade mark sign",9658:"Black right-pointing pointer",bull:"สัญลักษณ์หัวข้อย่อย",rarr:"Rightwards arrow",rArr:"Rightwards double arrow",hArr:"Left right double arrow",diams:"Black diamond suit",asymp:"Almost equal to"});
\ No newline at end of file
diff --git a/web/modules/ckeditor/vendor/plugins/specialchar/dialogs/lang/tr.js b/web/modules/ckeditor/vendor/plugins/specialchar/dialogs/lang/tr.js
deleted file mode 100644
index 73c34eeecd10c3bff87e366fdd1da6cea91e3df4..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/plugins/specialchar/dialogs/lang/tr.js
+++ /dev/null
@@ -1,12 +0,0 @@
-/*
- Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
- For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
-*/
-CKEDITOR.plugins.setLang("specialchar","tr",{euro:"Euro işareti",lsquo:"Sol tek tırnak işareti",rsquo:"Sağ tek tırnak işareti",ldquo:"Sol çift tırnak işareti",rdquo:"Sağ çift tırnak işareti",ndash:"En tire",mdash:"Em tire",iexcl:"Ters ünlem işareti",cent:"Cent işareti",pound:"Pound işareti",curren:"Para birimi işareti",yen:"Yen işareti",brvbar:"Kırık bar",sect:"Bölüm işareti",uml:"İki sesli harfin ayrılması",copy:"Telif hakkı işareti",ordf:"Dişil sıralı gösterge",laquo:"Sol-işaret çift açı tırnak işareti",
-not:"Not işareti",reg:"Kayıtlı işareti",macr:"Makron",deg:"Derece işareti",sup2:"İkili üstsimge",sup3:"Üçlü üstsimge",acute:"Aksan işareti",micro:"Mikro işareti",para:"Pilcrow işareti",middot:"Orta nokta",cedil:"Kedilla",sup1:"Üstsimge",ordm:"Eril sıralı gösterge",raquo:"Sağ işaret çift açı tırnak işareti",frac14:"Bayağı kesrin dörtte biri",frac12:"Bayağı kesrin bir yarım",frac34:"Bayağı kesrin dörtte üç",iquest:"Ters soru işareti",Agrave:"Aksanlı latin harfi",Aacute:"Aşırı aksanıyla Latin harfi",
-Acirc:"Çarpık Latin harfi",Atilde:"Tilde latin harfi",Auml:"Sesli harf ayrılımlıı latin harfi",Aring:"Halkalı latin büyük A harfi",AElig:"Latin büyük Æ harfi",Ccedil:"Latin büyük C harfi ile kedilla",Egrave:"Aksanlı latin büyük E harfi",Eacute:"Aşırı vurgulu latin büyük E harfi",Ecirc:"Çarpık latin büyük E harfi",Euml:"Sesli harf ayrılımlıı latin büyük E harfi",Igrave:"Aksanlı latin büyük I harfi",Iacute:"Aşırı aksanlı latin büyük I harfi",Icirc:"Çarpık latin büyük I harfi",Iuml:"Sesli harf ayrılımlıı latin büyük I harfi",
-ETH:"Latin büyük Eth harfi",Ntilde:"Tildeli latin büyük N harfi",Ograve:"Aksanlı latin büyük O harfi",Oacute:"Aşırı aksanlı latin büyük O harfi",Ocirc:"Çarpık latin büyük O harfi",Otilde:"Tildeli latin büyük O harfi",Ouml:"Sesli harf ayrılımlı latin büyük O harfi",times:"Çarpma işareti",Oslash:"Vurgulu latin büyük O harfi",Ugrave:"Aksanlı latin büyük U harfi",Uacute:"Aşırı aksanlı latin büyük U harfi",Ucirc:"Çarpık latin büyük U harfi",Uuml:"Sesli harf ayrılımlı latin büyük U harfi",Yacute:"Aşırı aksanlı latin büyük Y harfi",
-THORN:"Latin büyük Thorn harfi",szlig:"Latin küçük keskin s harfi",agrave:"Aksanlı latin küçük a harfi",aacute:"Aşırı aksanlı latin küçük a harfi",acirc:"Çarpık latin küçük a harfi",atilde:"Tildeli latin küçük a harfi",auml:"Sesli harf ayrılımlı latin küçük a harfi",aring:"Halkalı latin küçük a harfi",aelig:"Latin büyük æ harfi",ccedil:"Kedillalı latin küçük c harfi",egrave:"Aksanlı latin küçük e harfi",eacute:"Aşırı aksanlı latin küçük e harfi",ecirc:"Çarpık latin küçük e harfi",euml:"Sesli harf ayrılımlı latin küçük e harfi",
-igrave:"Aksanlı latin küçük i harfi",iacute:"Aşırı aksanlı latin küçük i harfi",icirc:"Çarpık latin küçük i harfi",iuml:"Sesli harf ayrılımlı latin küçük i harfi",eth:"Latin küçük eth harfi",ntilde:"Tildeli latin küçük n harfi",ograve:"Aksanlı latin küçük o harfi",oacute:"Aşırı aksanlı latin küçük o harfi",ocirc:"Çarpık latin küçük o harfi",otilde:"Tildeli latin küçük o harfi",ouml:"Sesli harf ayrılımlı latin küçük o harfi",divide:"Bölme işareti",oslash:"Vurgulu latin küçük o harfi",ugrave:"Aksanlı latin küçük u harfi",
-uacute:"Aşırı aksanlı latin küçük u harfi",ucirc:"Çarpık latin küçük u harfi",uuml:"Sesli harf ayrılımlı latin küçük u harfi",yacute:"Aşırı aksanlı latin küçük y harfi",thorn:"Latin küçük thorn harfi",yuml:"Sesli harf ayrılımlı latin küçük y harfi",OElig:"Latin büyük bağlı OE harfi",oelig:"Latin küçük bağlı oe harfi",372:"Çarpık latin büyük W harfi",374:"Çarpık latin büyük Y harfi",373:"Çarpık latin küçük w harfi",375:"Çarpık latin küçük y harfi",sbquo:"Tek düşük-9 tırnak işareti",8219:"Tek yüksek-ters-9 tırnak işareti",
-bdquo:"Çift düşük-9 tırnak işareti",hellip:"Yatay elips",trade:"Marka tescili işareti",9658:"Siyah sağ işaret işaretçisi",bull:"Koyu nokta",rarr:"Sağa doğru ok",rArr:"Sağa doğru çift ok",hArr:"Sol, sağ çift ok",diams:"Siyah elmas takımı",asymp:"Hemen hemen eşit"});
\ No newline at end of file
diff --git a/web/modules/ckeditor/vendor/plugins/specialchar/dialogs/lang/tt.js b/web/modules/ckeditor/vendor/plugins/specialchar/dialogs/lang/tt.js
deleted file mode 100644
index 3c3f13291feede368c7de521a41a1542ebb045b4..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/plugins/specialchar/dialogs/lang/tt.js
+++ /dev/null
@@ -1,13 +0,0 @@
-/*
- Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
- For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
-*/
-CKEDITOR.plugins.setLang("specialchar","tt",{euro:"Евро тамгасы",lsquo:"Сул бер иңле куштырнаклар",rsquo:"Уң бер иңле куштырнаклар",ldquo:"Сул ике иңле куштырнаклар",rdquo:"Уң ике иңле куштырнаклар",ndash:"Кыска сызык",mdash:"Озын сызык",iexcl:"Әйләндерелгән өндәү билгесе",cent:"Цент тамгасы",pound:"Фунт тамгасы",curren:"Акча берәмлеге тамгасы",yen:"Иена тамгасы",brvbar:"Broken bar",sect:"Параграф билгесе",uml:"Диерезис",copy:"Хокук иясе булу билгесе",ordf:"Feminine ordinal indicator",laquo:"Ачылучы чыршысыман җәя",
-not:"Юклык ишарəсе",reg:"Теркәләнгән булу билгесе",macr:"Макрон",deg:"Градус билгесе",sup2:"Икенче өске индекс",sup3:"Өченче өске индекс",acute:"Басым билгесе",micro:"Микро билгесе",para:"Параграф билгесе",middot:"Уртадагы нокта",cedil:"Седиль",sup1:"Беренче өске индекс",ordm:"Masculine ordinal indicator",raquo:"Ябылучы чыршысыман җәя",frac14:"Гади дүрттән бер билгесе",frac12:"Гади икедән бер билгесе",frac34:"Гади дүрттән өч билгесе",iquest:"Әйләндерелгән өндәү билгесе",Agrave:"Гравис белән латин A баш хәрефе",
-Aacute:"Басым билгесе белән латин A баш хәрефе",Acirc:"Циркумфлекс белән латин A баш хәрефе",Atilde:"Тильда белән латин A баш хәрефе",Auml:"Диерезис белән латин A баш хәрефе",Aring:"Өстендә боҗра булган латин A баш хәрефе",AElig:"Латин Æ баш хәрефе",Ccedil:"Седиль белән латин C баш хәрефе",Egrave:"Гравис белән латин E баш хәрефе",Eacute:"Басым билгесе белән латин E баш хәрефе",Ecirc:"Циркумфлекс белән латин E баш хәрефе",Euml:"Диерезис белән латин E баш хәрефе",Igrave:"Гравис белән латин I баш хәрефе",
-Iacute:"Басым билгесе белән латин I баш хәрефе",Icirc:"Циркумфлекс белән латин I баш хәрефе",Iuml:"Диерезис белән латин I баш хәрефе",ETH:"Латин Eth баш хәрефе",Ntilde:"Тильда белән латин N баш хәрефе",Ograve:"Гравис белән латин O баш хәрефе",Oacute:"Басым билгесе белән латин O баш хәрефе",Ocirc:"Циркумфлекс белән латин O баш хәрефе",Otilde:"Тильда белән латин O баш хәрефе",Ouml:"Диерезис белән латин O баш хәрефе",times:"Тапкырлау билгесе",Oslash:"Сызык белән латин O баш хәрефе",Ugrave:"Гравис белән латин U баш хәрефе",
-Uacute:"Басым билгесе белән латин U баш хәрефе",Ucirc:"Циркумфлекс белән латин U баш хәрефе",Uuml:"Диерезис белән латин U баш хәрефе",Yacute:"Басым билгесе белән латин Y баш хәрефе",THORN:"Латин Thorn баш хәрефе",szlig:"Латин beta юл хәрефе",agrave:"Гравис белән латин a юл хәрефе",aacute:"Басым билгесе белән латин a юл хәрефе",acirc:"Циркумфлекс белән латин a юл хәрефе",atilde:"Тильда белән латин a юл хәрефе",auml:"Диерезис белән латин a юл хәрефе",aring:"Өстендә боҗра булган латин a юл хәрефе",aelig:"Латин æ юл хәрефе",
-ccedil:"Седиль белән латин c юл хәрефе",egrave:"Гравис белән латин e юл хәрефе",eacute:"Басым билгесе белән латин e юл хәрефе",ecirc:"Циркумфлекс белән латин e юл хәрефе",euml:"Диерезис белән латин e юл хәрефе",igrave:"Гравис белән латин i юл хәрефе",iacute:"Басым билгесе белән латин i юл хәрефе",icirc:"Циркумфлекс белән латин i юл хәрефе",iuml:"Диерезис белән латин i юл хәрефе",eth:"Латин eth юл хәрефе",ntilde:"Тильда белән латин n юл хәрефе",ograve:"Гравис белән латин o юл хәрефе",oacute:"Басым билгесе белән латин o юл хәрефе",
-ocirc:"Циркумфлекс белән латин o юл хәрефе",otilde:"Тильда белән латин o юл хәрефе",ouml:"Диерезис белән латин o юл хәрефе",divide:"Бүлү билгесе",oslash:"Сызык белән латин o юл хәрефе",ugrave:"Гравис белән латин u юл хәрефе",uacute:"Басым билгесе белән латин u юл хәрефе",ucirc:"Циркумфлекс белән латин u юл хәрефе",uuml:"Диерезис белән латин u юл хәрефе",yacute:"Басым билгесе белән латин y юл хәрефе",thorn:"Латин thorn юл хәрефе",yuml:"Диерезис белән латин y юл хәрефе",OElig:"Латин лигатура OE баш хәрефе",
-oelig:"Латин лигатура oe юл хәрефе",372:"Циркумфлекс белән латин W баш хәрефе",374:"Циркумфлекс белән латин Y баш хәрефе",373:"Циркумфлекс белән латин w юл хәрефе",375:"Циркумфлекс белән латин y юл хәрефе",sbquo:"Single low-9 quotation mark",8219:"Single high-reversed-9 quotation mark",bdquo:"Double low-9 quotation mark",hellip:"Ятма эллипс",trade:"Сәүдә маркасы билгесе",9658:"Black right-pointing pointer",bull:"Маркер",rarr:"Уң якка ук",rArr:"Уң якка икеләтә ук",hArr:"Ике якка икеләтә ук",diams:"Black diamond suit",
-asymp:"якынча"});
\ No newline at end of file
diff --git a/web/modules/ckeditor/vendor/plugins/specialchar/dialogs/lang/ug.js b/web/modules/ckeditor/vendor/plugins/specialchar/dialogs/lang/ug.js
deleted file mode 100644
index 3929c61da894a03b95ddef509fc3458c7dbb9d43..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/plugins/specialchar/dialogs/lang/ug.js
+++ /dev/null
@@ -1,13 +0,0 @@
-/*
- Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
- For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
-*/
-CKEDITOR.plugins.setLang("specialchar","ug",{euro:"ياۋرو بەلگىسى",lsquo:"يالاڭ پەش سول",rsquo:"يالاڭ پەش ئوڭ",ldquo:"قوش پەش سول",rdquo:"قوش پەش ئوڭ",ndash:"سىزىقچە",mdash:"سىزىق",iexcl:"ئۈندەش",cent:"تىيىن بەلگىسى",pound:"فوند ستېرلىڭ",curren:"پۇل بەلگىسى",yen:"ياپونىيە يىنى",brvbar:"ئۈزۈك بالداق",sect:"پاراگراف بەلگىسى",uml:"تاۋۇش ئايرىش بەلگىسى",copy:"نەشر ھوقۇقى بەلگىسى",ordf:"Feminine ordinal indicator",laquo:"قوش تىرناق سول",not:"غەيرى بەلگە",reg:"خەتلەتكەن تاۋار ماركىسى",macr:"سوزۇش بەلگىسى",
-deg:"گىرادۇس بەلگىسى",sup2:"يۇقىرى ئىندېكىس 2",sup3:"يۇقىرى ئىندېكىس 3",acute:"ئۇرغۇ بەلگىسى",micro:"Micro sign",para:"ئابزاس بەلگىسى",middot:"ئوتتۇرا چېكىت",cedil:"ئاستىغا قوشۇلىدىغان بەلگە",sup1:"يۇقىرى ئىندېكىس 1",ordm:"Masculine ordinal indicator",raquo:"قوش تىرناق ئوڭ",frac14:"ئاددىي كەسىر تۆتتىن بىر",frac12:"ئاددىي كەسىر ئىككىدىن بىر",frac34:"ئاددىي كەسىر ئۈچتىن تۆرت",iquest:"Inverted question mark",Agrave:"Latin capital letter A with grave accent",Aacute:"Latin capital letter A with acute accent",
-Acirc:"Latin capital letter A with circumflex",Atilde:"Latin capital letter A with tilde",Auml:"Latin capital letter A with diaeresis",Aring:"Latin capital letter A with ring above",AElig:"Latin capital letter Æ",Ccedil:"Latin capital letter C with cedilla",Egrave:"Latin capital letter E with grave accent",Eacute:"Latin capital letter E with acute accent",Ecirc:"Latin capital letter E with circumflex",Euml:"Latin capital letter E with diaeresis",Igrave:"Latin capital letter I with grave accent",Iacute:"Latin capital letter I with acute accent",
-Icirc:"Latin capital letter I with circumflex",Iuml:"Latin capital letter I with diaeresis",ETH:"Latin capital letter Eth",Ntilde:"Latin capital letter N with tilde",Ograve:"قوش پەش ئوڭ",Oacute:"Latin capital letter O with acute accent",Ocirc:"Latin capital letter O with circumflex",Otilde:"Latin capital letter O with tilde",Ouml:"Latin capital letter O with diaeresis",times:"Multiplication sign",Oslash:"Latin capital letter O with stroke",Ugrave:"Latin capital letter U with grave accent",Uacute:"Latin capital letter U with acute accent",
-Ucirc:"Latin capital letter U with circumflex",Uuml:"Latin capital letter U with diaeresis",Yacute:"Latin capital letter Y with acute accent",THORN:"Latin capital letter Thorn",szlig:"Latin small letter sharp s",agrave:"Latin small letter a with grave accent",aacute:"Latin small letter a with acute accent",acirc:"Latin small letter a with circumflex",atilde:"Latin small letter a with tilde",auml:"Latin small letter a with diaeresis",aring:"Latin small letter a with ring above",aelig:"Latin small letter æ",
-ccedil:"Latin small letter c with cedilla",egrave:"Latin small letter e with grave accent",eacute:"Latin small letter e with acute accent",ecirc:"Latin small letter e with circumflex",euml:"Latin small letter e with diaeresis",igrave:"Latin small letter i with grave accent",iacute:"Latin small letter i with acute accent",icirc:"Latin small letter i with circumflex",iuml:"Latin small letter i with diaeresis",eth:"Latin small letter eth",ntilde:"تىك موللاق سوئال بەلگىسى",ograve:"Latin small letter o with grave accent",
-oacute:"Latin small letter o with acute accent",ocirc:"Latin small letter o with circumflex",otilde:"Latin small letter o with tilde",ouml:"Latin small letter o with diaeresis",divide:"بۆلۈش بەلگىسى",oslash:"Latin small letter o with stroke",ugrave:"Latin small letter u with grave accent",uacute:"Latin small letter u with acute accent",ucirc:"Latin small letter u with circumflex",uuml:"Latin small letter u with diaeresis",yacute:"Latin small letter y with acute accent",thorn:"Latin small letter thorn",
-yuml:"Latin small letter y with diaeresis",OElig:"Latin capital ligature OE",oelig:"Latin small ligature oe",372:"Latin capital letter W with circumflex",374:"Latin capital letter Y with circumflex",373:"Latin small letter w with circumflex",375:"Latin small letter y with circumflex",sbquo:"Single low-9 quotation mark",8219:"Single high-reversed-9 quotation mark",bdquo:"Double low-9 quotation mark",hellip:"Horizontal ellipsis",trade:"خەتلەتكەن تاۋار ماركىسى بەلگىسى",9658:"Black right-pointing pointer",
-bull:"Bullet",rarr:"ئوڭ يا ئوق",rArr:"ئوڭ قوش سىزىق يا ئوق",hArr:"ئوڭ سول قوش سىزىق يا ئوق",diams:"ئۇيۇل غىچ",asymp:"تەخمىنەن تەڭ"});
\ No newline at end of file
diff --git a/web/modules/ckeditor/vendor/plugins/specialchar/dialogs/lang/uk.js b/web/modules/ckeditor/vendor/plugins/specialchar/dialogs/lang/uk.js
deleted file mode 100644
index d99c4b70e175c8a8237011b3e69f80907c7f5bc4..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/plugins/specialchar/dialogs/lang/uk.js
+++ /dev/null
@@ -1,12 +0,0 @@
-/*
- Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
- For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
-*/
-CKEDITOR.plugins.setLang("specialchar","uk",{euro:"Знак євро",lsquo:"Ліві одинарні лапки",rsquo:"Праві одинарні лапки",ldquo:"Ліві подвійні лапки",rdquo:"Праві подвійні лапки",ndash:"Середнє тире",mdash:"Довге тире",iexcl:"Перевернутий знак оклику",cent:"Знак цента",pound:"Знак фунта",curren:"Знак валюти",yen:"Знак єни",brvbar:"Переривчаста вертикальна лінія",sect:"Знак параграфу",uml:"Умлаут",copy:"Знак авторських прав",ordf:"Жіночий порядковий вказівник",laquo:"ліві вказівні подвійні кутові дужки",
-not:"Заперечення",reg:"Знак охорони суміжних прав",macr:"Макрон",deg:"Знак градуса",sup2:"два у верхньому індексі",sup3:"три у верхньому індексі",acute:"Знак акута",micro:"Знак мікро",para:"Знак абзацу",middot:"Інтерпункт",cedil:"Седиль",sup1:"Один у верхньому індексі",ordm:"Чоловічий порядковий вказівник",raquo:"праві вказівні подвійні кутові дужки",frac14:"Одна четвертина",frac12:"Одна друга",frac34:"три четвертих",iquest:"Перевернутий знак питання",Agrave:"Велика латинська A з гравісом",Aacute:"Велика латинська А з акутом",
-Acirc:"Велика латинська А з циркумфлексом",Atilde:"Велика латинська А з тильдою",Auml:"Велике латинське А з умлаутом",Aring:"Велика латинська A з кільцем згори",AElig:"Велика латинська Æ",Ccedil:"Велика латинська C з седиллю",Egrave:"Велика латинська E з гравісом",Eacute:"Велика латинська E з акутом",Ecirc:"Велика латинська E з циркумфлексом",Euml:"Велика латинська А з умлаутом",Igrave:"Велика латинська I з гравісом",Iacute:"Велика латинська I з акутом",Icirc:"Велика латинська I з циркумфлексом",
-Iuml:"Велика латинська І з умлаутом",ETH:"Велика латинська Eth",Ntilde:"Велика латинська N з тильдою",Ograve:"Велика латинська O з гравісом",Oacute:"Велика латинська O з акутом",Ocirc:"Велика латинська O з циркумфлексом",Otilde:"Велика латинська O з тильдою",Ouml:"Велика латинська О з умлаутом",times:"Знак множення",Oslash:"Велика латинська перекреслена O ",Ugrave:"Велика латинська U з гравісом",Uacute:"Велика латинська U з акутом",Ucirc:"Велика латинська U з циркумфлексом",Uuml:"Велика латинська U з умлаутом",
-Yacute:"Велика латинська Y з акутом",THORN:"Велика латинська Торн",szlig:"Мала латинська есцет",agrave:"Мала латинська a з гравісом",aacute:"Мала латинська a з акутом",acirc:"Мала латинська a з циркумфлексом",atilde:"Мала латинська a з тильдою",auml:"Мала латинська a з умлаутом",aring:"Мала латинська a з кільцем згори",aelig:"Мала латинська æ",ccedil:"Мала латинська C з седиллю",egrave:"Мала латинська e з гравісом",eacute:"Мала латинська e з акутом",ecirc:"Мала латинська e з циркумфлексом",euml:"Мала латинська e з умлаутом",
-igrave:"Мала латинська i з гравісом",iacute:"Мала латинська i з акутом",icirc:"Мала латинська i з циркумфлексом",iuml:"Мала латинська i з умлаутом",eth:"Мала латинська Eth",ntilde:"Мала латинська n з тильдою",ograve:"Мала латинська o з гравісом",oacute:"Мала латинська o з акутом",ocirc:"Мала латинська o з циркумфлексом",otilde:"Мала латинська o з тильдою",ouml:"Мала латинська o з умлаутом",divide:"Знак ділення",oslash:"Мала латинська перекреслена o",ugrave:"Мала латинська u з гравісом",uacute:"Мала латинська u з акутом",
-ucirc:"Мала латинська u з циркумфлексом",uuml:"Мала латинська u з умлаутом",yacute:"Мала латинська y з акутом",thorn:"Мала латинська торн",yuml:"Мала латинська y з умлаутом",OElig:"Велика латинська лігатура OE",oelig:"Мала латинська лігатура oe",372:"Велика латинська W з циркумфлексом",374:"Велика латинська Y з циркумфлексом",373:"Мала латинська w з циркумфлексом",375:"Мала латинська y з циркумфлексом",sbquo:"Одиничні нижні лабки",8219:"Верхні одиничні обернені лабки",bdquo:"Подвійні нижні лабки",
-hellip:"Три крапки",trade:"Знак торгової марки",9658:"Чорний правий вказівник",bull:"Маркер списку",rarr:"Стрілка вправо",rArr:"Подвійна стрілка вправо",hArr:"Подвійна стрілка вліво-вправо",diams:"Чорний діамонт",asymp:"Наближено дорівнює"});
\ No newline at end of file
diff --git a/web/modules/ckeditor/vendor/plugins/specialchar/dialogs/lang/vi.js b/web/modules/ckeditor/vendor/plugins/specialchar/dialogs/lang/vi.js
deleted file mode 100644
index 775516f7b6c22f413be3aa6f9ea88179f996a0bf..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/plugins/specialchar/dialogs/lang/vi.js
+++ /dev/null
@@ -1,14 +0,0 @@
-/*
- Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
- For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
-*/
-CKEDITOR.plugins.setLang("specialchar","vi",{euro:"Ký hiệu Euro",lsquo:"Dấu ngoặc đơn trái",rsquo:"Dấu ngoặc đơn phải",ldquo:"Dấu ngoặc đôi trái",rdquo:"Dấu ngoặc đôi phải",ndash:"Gạch ngang tiếng anh",mdash:"Gạch ngang Em",iexcl:"Chuyển đổi dấu chấm than",cent:"Ký tự tiền Mỹ",pound:"Ký tự tiền Anh",curren:"Ký tự tiền tệ",yen:"Ký tự tiền Yên Nhật",brvbar:"Thanh hỏng",sect:"Ký tự khu vực",uml:"Dấu tách đôi",copy:"Ký tự bản quyền",ordf:"Phần chỉ thị giống cái",laquo:"Chọn dấu ngoặc đôi trái",not:"Không có ký tự",
-reg:"Ký tự đăng ký",macr:"Dấu nguyên âm dài",deg:"Ký tự độ",sup2:"Chữ trồi lên trên dạng 2",sup3:"Chữ trồi lên trên dạng 3",acute:"Dấu trọng âm",micro:"Ký tự micro",para:"Ký tự đoạn văn",middot:"Dấu chấm tròn",cedil:"Dấu móc lưới",sup1:"Ký tự trồi lên cấp 1",ordm:"Ký tự biểu hiện giống đực",raquo:"Chọn dấu ngoặc đôi phải",frac14:"Tỉ lệ một phần tư",frac12:"Tỉ lệ một nửa",frac34:"Tỉ lệ ba phần tư",iquest:"Chuyển đổi dấu chấm hỏi",Agrave:"Ký tự la-tinh viết hoa A với dấu huyền",Aacute:"Ký tự la-tinh viết hoa A với dấu sắc",
-Acirc:"Ký tự la-tinh viết hoa A với dấu mũ",Atilde:"Ký tự la-tinh viết hoa A với dấu ngã",Auml:"Ký tự la-tinh viết hoa A với dấu hai chấm trên đầu",Aring:"Ký tự la-tinh viết hoa A với biểu tượng vòng tròn trên đầu",AElig:"Ký tự la-tinh viết hoa của Æ",Ccedil:"Ký tự la-tinh viết hoa C với dấu móc bên dưới",Egrave:"Ký tự la-tinh viết hoa E với dấu huyền",Eacute:"Ký tự la-tinh viết hoa E với dấu sắc",Ecirc:"Ký tự la-tinh viết hoa E với dấu mũ",Euml:"Ký tự la-tinh viết hoa E với dấu hai chấm trên đầu",
-Igrave:"Ký tự la-tinh viết hoa I với dấu huyền",Iacute:"Ký tự la-tinh viết hoa I với dấu sắc",Icirc:"Ký tự la-tinh viết hoa I với dấu mũ",Iuml:"Ký tự la-tinh viết hoa I với dấu hai chấm trên đầu",ETH:"Viết hoa của ký tự Eth",Ntilde:"Ký tự la-tinh viết hoa N với dấu ngã",Ograve:"Ký tự la-tinh viết hoa O với dấu huyền",Oacute:"Ký tự la-tinh viết hoa O với dấu sắc",Ocirc:"Ký tự la-tinh viết hoa O với dấu mũ",Otilde:"Ký tự la-tinh viết hoa O với dấu ngã",Ouml:"Ký tự la-tinh viết hoa O với dấu hai chấm trên đầu",
-times:"Ký tự phép toán nhân",Oslash:"Ký tự la-tinh viết hoa A với dấu ngã xuống",Ugrave:"Ký tự la-tinh viết hoa U với dấu huyền",Uacute:"Ký tự la-tinh viết hoa U với dấu sắc",Ucirc:"Ký tự la-tinh viết hoa U với dấu mũ",Uuml:"Ký tự la-tinh viết hoa U với dấu hai chấm trên đầu",Yacute:"Ký tự la-tinh viết hoa Y với dấu sắc",THORN:"Phần viết hoa của ký tự Thorn",szlig:"Ký tự viết nhỏ la-tinh của chữ s",agrave:"Ký tự la-tinh thường với dấu huyền",aacute:"Ký tự la-tinh thường với dấu sắc",acirc:"Ký tự la-tinh thường với dấu mũ",
-atilde:"Ký tự la-tinh thường với dấu ngã",auml:"Ký tự la-tinh thường với dấu hai chấm trên đầu",aring:"Ký tự la-tinh viết thường với biểu tượng vòng tròn trên đầu",aelig:"Ký tự la-tinh viết thường của æ",ccedil:"Ký tự la-tinh viết thường của c với dấu móc bên dưới",egrave:"Ký tự la-tinh viết thường e với dấu huyền",eacute:"Ký tự la-tinh viết thường e với dấu sắc",ecirc:"Ký tự la-tinh viết thường e với dấu mũ",euml:"Ký tự la-tinh viết thường e với dấu hai chấm trên đầu",igrave:"Ký tự la-tinh viết thường i với dấu huyền",
-iacute:"Ký tự la-tinh viết thường i với dấu sắc",icirc:"Ký tự la-tinh viết thường i với dấu mũ",iuml:"Ký tự la-tinh viết thường i với dấu hai chấm trên đầu",eth:"Ký tự la-tinh viết thường của eth",ntilde:"Ký tự la-tinh viết thường n với dấu ngã",ograve:"Ký tự la-tinh viết thường o với dấu huyền",oacute:"Ký tự la-tinh viết thường o với dấu sắc",ocirc:"Ký tự la-tinh viết thường o với dấu mũ",otilde:"Ký tự la-tinh viết thường o với dấu ngã",ouml:"Ký tự la-tinh viết thường o với dấu hai chấm trên đầu",
-divide:"Ký hiệu phép tính chia",oslash:"Ký tự la-tinh viết thường o với dấu ngã",ugrave:"Ký tự la-tinh viết thường u với dấu huyền",uacute:"Ký tự la-tinh viết thường u với dấu sắc",ucirc:"Ký tự la-tinh viết thường u với dấu mũ",uuml:"Ký tự la-tinh viết thường u với dấu hai chấm trên đầu",yacute:"Ký tự la-tinh viết thường y với dấu sắc",thorn:"Ký tự la-tinh viết thường của chữ thorn",yuml:"Ký tự la-tinh viết thường y với dấu hai chấm trên đầu",OElig:"Ký tự la-tinh viết hoa gạch nối OE",oelig:"Ký tự la-tinh viết thường gạch nối OE",
-372:"Ký tự la-tinh viết hoa W với dấu mũ",374:"Ký tự la-tinh viết hoa Y với dấu mũ",373:"Ký tự la-tinh viết thường w với dấu mũ",375:"Ký tự la-tinh viết thường y với dấu mũ",sbquo:"Dấu ngoặc đơn thấp số-9",8219:"Dấu ngoặc đơn đảo ngược số-9",bdquo:"Gấp đôi dấu ngoặc đơn số-9",hellip:"Tĩnh dược chiều ngang",trade:"Ký tự thương hiệu",9658:"Ký tự trỏ về hướng bên phải màu đen",bull:"Ký hiệu",rarr:"Mũi tên hướng bên phải",rArr:"Mũi tên hướng bên phải dạng đôi",hArr:"Mũi tên hướng bên trái dạng đôi",diams:"Ký hiệu hình thoi",
-asymp:"Gần bằng với"});
\ No newline at end of file
diff --git a/web/modules/ckeditor/vendor/plugins/specialchar/dialogs/lang/zh-cn.js b/web/modules/ckeditor/vendor/plugins/specialchar/dialogs/lang/zh-cn.js
deleted file mode 100644
index f57e3dfab3c5629cb673e27a3928dda275ed87d3..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/plugins/specialchar/dialogs/lang/zh-cn.js
+++ /dev/null
@@ -1,9 +0,0 @@
-/*
- Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
- For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
-*/
-CKEDITOR.plugins.setLang("specialchar","zh-cn",{euro:"欧元符号",lsquo:"左单引号",rsquo:"右单引号",ldquo:"左双引号",rdquo:"右双引号",ndash:"短划线",mdash:"长划线",iexcl:"竖翻叹号",cent:"分币符号",pound:"英镑符号",curren:"货币符号",yen:"日元符号",brvbar:"间断条",sect:"节标记",uml:"分音符",copy:"版权所有标记",ordf:"阴性顺序指示符",laquo:"左指双尖引号",not:"非标记",reg:"注册标记",macr:"长音符",deg:"度标记",sup2:"上标二",sup3:"上标三",acute:"锐音符",micro:"微符",para:"段落标记",middot:"中间点",cedil:"下加符",sup1:"上标一",ordm:"阳性顺序指示符",raquo:"右指双尖引号",frac14:"普通分数四分之一",frac12:"普通分数二分之一",frac34:"普通分数四分之三",iquest:"竖翻问号",
-Agrave:"带抑音符的拉丁文大写字母 A",Aacute:"带锐音符的拉丁文大写字母 A",Acirc:"带扬抑符的拉丁文大写字母 A",Atilde:"带颚化符的拉丁文大写字母 A",Auml:"带分音符的拉丁文大写字母 A",Aring:"带上圆圈的拉丁文大写字母 A",AElig:"拉丁文大写字母 Æ",Ccedil:"带下加符的拉丁文大写字母 C",Egrave:"带抑音符的拉丁文大写字母 E",Eacute:"带锐音符的拉丁文大写字母 E",Ecirc:"带扬抑符的拉丁文大写字母 E",Euml:"带分音符的拉丁文大写字母 E",Igrave:"带抑音符的拉丁文大写字母 I",Iacute:"带锐音符的拉丁文大写字母 I",Icirc:"带扬抑符的拉丁文大写字母 I",Iuml:"带分音符的拉丁文大写字母 I",ETH:"拉丁文大写字母 Eth",Ntilde:"带颚化符的拉丁文大写字母 N",Ograve:"带抑音符的拉丁文大写字母 O",Oacute:"带锐音符的拉丁文大写字母 O",Ocirc:"带扬抑符的拉丁文大写字母 O",Otilde:"带颚化符的拉丁文大写字母 O",
-Ouml:"带分音符的拉丁文大写字母 O",times:"乘号",Oslash:"带粗线的拉丁文大写字母 O",Ugrave:"带抑音符的拉丁文大写字母 U",Uacute:"带锐音符的拉丁文大写字母 U",Ucirc:"带扬抑符的拉丁文大写字母 U",Uuml:"带分音符的拉丁文大写字母 U",Yacute:"带抑音符的拉丁文大写字母 Y",THORN:"拉丁文大写字母 Thorn",szlig:"拉丁文小写字母清音 S",agrave:"带抑音符的拉丁文小写字母 A",aacute:"带锐音符的拉丁文小写字母 A",acirc:"带扬抑符的拉丁文小写字母 A",atilde:"带颚化符的拉丁文小写字母 A",auml:"带分音符的拉丁文小写字母 A",aring:"带上圆圈的拉丁文小写字母 A",aelig:"拉丁文小写字母 Ae",ccedil:"带下加符的拉丁文小写字母 C",egrave:"带抑音符的拉丁文小写字母 E",eacute:"带锐音符的拉丁文小写字母 E",ecirc:"带扬抑符的拉丁文小写字母 E",euml:"带分音符的拉丁文小写字母 E",igrave:"带抑音符的拉丁文小写字母 I",
-iacute:"带锐音符的拉丁文小写字母 I",icirc:"带扬抑符的拉丁文小写字母 I",iuml:"带分音符的拉丁文小写字母 I",eth:"拉丁文小写字母 Eth",ntilde:"带颚化符的拉丁文小写字母 N",ograve:"带抑音符的拉丁文小写字母 O",oacute:"带锐音符的拉丁文小写字母 O",ocirc:"带扬抑符的拉丁文小写字母 O",otilde:"带颚化符的拉丁文小写字母 O",ouml:"带分音符的拉丁文小写字母 O",divide:"除号",oslash:"带粗线的拉丁文小写字母 O",ugrave:"带抑音符的拉丁文小写字母 U",uacute:"带锐音符的拉丁文小写字母 U",ucirc:"带扬抑符的拉丁文小写字母 U",uuml:"带分音符的拉丁文小写字母 U",yacute:"带抑音符的拉丁文小写字母 Y",thorn:"拉丁文小写字母 Thorn",yuml:"带分音符的拉丁文小写字母 Y",OElig:"拉丁文大写连字 Oe",oelig:"拉丁文小写连字 Oe",372:"带扬抑符的拉丁文大写字母 W",374:"带扬抑符的拉丁文大写字母 Y",
-373:"带扬抑符的拉丁文小写字母 W",375:"带扬抑符的拉丁文小写字母 Y",sbquo:"单下 9 形引号",8219:"单高横翻 9 形引号",bdquo:"双下 9 形引号",hellip:"水平省略号",trade:"商标标志",9658:"实心右指指针",bull:"加重号",rarr:"向右箭头",rArr:"向右双线箭头",hArr:"左右双线箭头",diams:"实心方块纸牌",asymp:"约等于"});
\ No newline at end of file
diff --git a/web/modules/ckeditor/vendor/plugins/specialchar/dialogs/lang/zh.js b/web/modules/ckeditor/vendor/plugins/specialchar/dialogs/lang/zh.js
deleted file mode 100644
index fbcdb3621a4dae756dc9e1120a02c09dc18ef5c2..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/plugins/specialchar/dialogs/lang/zh.js
+++ /dev/null
@@ -1,9 +0,0 @@
-/*
- Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
- For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
-*/
-CKEDITOR.plugins.setLang("specialchar","zh",{euro:"歐元符號",lsquo:"左單引號",rsquo:"右單引號",ldquo:"左雙引號",rdquo:"右雙引號",ndash:"短破折號",mdash:"長破折號",iexcl:"倒置的驚嘆號",cent:"美分符號",pound:"英鎊符號",curren:"貨幣符號",yen:"日圓符號",brvbar:"破折號",sect:"章節符號",uml:"分音符號",copy:"版權符號",ordf:"雌性符號",laquo:"左雙角括號",not:"Not 符號",reg:"註冊商標符號",macr:"長音符號",deg:"度數符號",sup2:"上標字 2",sup3:"上標字 3",acute:"尖音符號",micro:"微",para:"段落符號",middot:"中間點",cedil:"字母 C 下面的尾型符號 ",sup1:"上標",ordm:"雄性符號",raquo:"右雙角括號",frac14:"四分之一符號",frac12:"二分之一符號",frac34:"四分之三符號",
-iquest:"倒置的問號",Agrave:"拉丁大寫字母 A 帶抑音符號",Aacute:"拉丁大寫字母 A 帶尖音符號",Acirc:"拉丁大寫字母 A 帶揚抑符",Atilde:"拉丁大寫字母 A 帶波浪號",Auml:"拉丁大寫字母 A 帶分音符號",Aring:"拉丁大寫字母 A 帶上圓圈",AElig:"拉丁大寫字母 Æ",Ccedil:"拉丁大寫字母 C 帶下尾符號",Egrave:"拉丁大寫字母 E 帶抑音符號",Eacute:"拉丁大寫字母 E 帶尖音符號",Ecirc:"拉丁大寫字母 E 帶揚抑符",Euml:"拉丁大寫字母 E 帶分音符號",Igrave:"拉丁大寫字母 I 帶抑音符號",Iacute:"拉丁大寫字母 I 帶尖音符號",Icirc:"拉丁大寫字母 I 帶揚抑符",Iuml:"拉丁大寫字母 I 帶分音符號",ETH:"拉丁大寫字母 Eth",Ntilde:"拉丁大寫字母 N 帶波浪號",Ograve:"拉丁大寫字母 O 帶抑音符號",Oacute:"拉丁大寫字母 O 帶尖音符號",Ocirc:"拉丁大寫字母 O 帶揚抑符",Otilde:"拉丁大寫字母 O 帶波浪號",
-Ouml:"拉丁大寫字母 O 帶分音符號",times:"乘號",Oslash:"拉丁大寫字母 O 帶粗線符號",Ugrave:"拉丁大寫字母 U 帶抑音符號",Uacute:"拉丁大寫字母 U 帶尖音符號",Ucirc:"拉丁大寫字母 U 帶揚抑符",Uuml:"拉丁大寫字母 U 帶分音符號",Yacute:"拉丁大寫字母 Y 帶尖音符號",THORN:"拉丁大寫字母 Thorn",szlig:"拉丁小寫字母 s",agrave:"拉丁小寫字母 a 帶抑音符號",aacute:"拉丁小寫字母 a 帶尖音符號",acirc:"拉丁小寫字母 a 帶揚抑符",atilde:"拉丁小寫字母 a 帶波浪號",auml:"拉丁小寫字母 a 帶分音符號",aring:"拉丁小寫字母 a 帶上圓圈",aelig:"拉丁小寫字母 æ",ccedil:"拉丁小寫字母 c 帶下尾符號",egrave:"拉丁小寫字母 e 帶抑音符號",eacute:"拉丁小寫字母 e 帶尖音符號",ecirc:"拉丁小寫字母 e 帶揚抑符",euml:"拉丁小寫字母 e 帶分音符號",igrave:"拉丁小寫字母 i 帶抑音符號",
-iacute:"拉丁小寫字母 i 帶尖音符號",icirc:"拉丁小寫字母 i 帶揚抑符",iuml:"拉丁小寫字母 i 帶分音符號",eth:"拉丁小寫字母 eth",ntilde:"拉丁小寫字母 n 帶波浪號",ograve:"拉丁小寫字母 o 帶抑音符號",oacute:"拉丁小寫字母 o 帶尖音符號",ocirc:"拉丁小寫字母 o 帶揚抑符",otilde:"拉丁小寫字母 o 帶波浪號",ouml:"拉丁小寫字母 o 帶分音符號",divide:"除號",oslash:"拉丁小寫字母 o 帶粗線符號",ugrave:"拉丁小寫字母 u 帶抑音符號",uacute:"拉丁小寫字母 u 帶尖音符號",ucirc:"拉丁小寫字母 u 帶揚抑符",uuml:"拉丁小寫字母 u 帶分音符號",yacute:"拉丁小寫字母 y 帶尖音符號",thorn:"拉丁小寫字母 thorn",yuml:"拉丁小寫字母 y 帶分音符號",OElig:"拉丁大寫字母 OE",oelig:"拉丁小寫字母 oe",372:"拉丁大寫字母 W 帶揚抑符",374:"拉丁大寫字母 Y 帶揚抑符",373:"拉丁小寫字母 w 帶揚抑符",
-375:"拉丁小寫字母 y 帶揚抑符",sbquo:"低 9 單引號",8219:"高 9 反轉單引號",bdquo:"低 9 雙引號",hellip:"水平刪節號",trade:"商標符號",9658:"黑色向右指箭號",bull:"項目符號",rarr:"向右箭號",rArr:"向右雙箭號",hArr:"左右雙箭號",diams:"黑鑽套裝",asymp:"約等於"});
\ No newline at end of file
diff --git a/web/modules/ckeditor/vendor/plugins/specialchar/dialogs/specialchar.js b/web/modules/ckeditor/vendor/plugins/specialchar/dialogs/specialchar.js
deleted file mode 100644
index f93434466ef52d96e137d3ecfd99320d403bd6f1..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/plugins/specialchar/dialogs/specialchar.js
+++ /dev/null
@@ -1,14 +0,0 @@
-/*
- Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
- For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
-*/
-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/modules/ckeditor/vendor/plugins/table/dialogs/table.js b/web/modules/ckeditor/vendor/plugins/table/dialogs/table.js
deleted file mode 100644
index 3edf6045dcec73ecaa88d00228b4164895bfb0b1..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/plugins/table/dialogs/table.js
+++ /dev/null
@@ -1,22 +0,0 @@
-/*
- Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
- For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
-*/
-(function(){function w(a){for(var f=0,p=0,n=0,q,d=a.$.rows.length;n<d;n++){q=a.$.rows[n];for(var e=f=0,b,c=q.cells.length;e<c;e++)b=q.cells[e],f+=b.colSpan;f>p&&(p=f)}return p}function t(a){return function(){var f=this.getValue(),f=!!(CKEDITOR.dialog.validate.integer().call(this,f)&&0<f);f||(alert(a),this.select());return f}}function r(a,f){var p=function(d){return new CKEDITOR.dom.element(d,a.document)},r=a.editable(),q=a.plugins.dialogadvtab;return{title:a.lang.table.title,minWidth:310,minHeight:CKEDITOR.env.ie?
-310:280,getModel:function(d){return"tableProperties"!==this.dialog.getName()?null:(d=(d=d.getSelection())&&d.getRanges()[0])?d._getTableElement({table:1}):null},onLoad:function(){var d=this,a=d.getContentElement("advanced","advStyles");if(a)a.on("change",function(){var a=this.getStyle("width",""),c=d.getContentElement("info","txtWidth");c&&c.setValue(a,!0);a=this.getStyle("height","");(c=d.getContentElement("info","txtHeight"))&&c.setValue(a,!0)})},onShow:function(){var d=a.getSelection(),e=d.getRanges(),
-b,c=this.getContentElement("info","txtRows"),h=this.getContentElement("info","txtCols"),u=this.getContentElement("info","txtWidth"),l=this.getContentElement("info","txtHeight");"tableProperties"==f&&((d=d.getSelectedElement())&&d.is("table")?b=d:0<e.length&&(CKEDITOR.env.webkit&&e[0].shrink(CKEDITOR.NODE_ELEMENT),b=a.elementPath(e[0].getCommonAncestor(!0)).contains("table",1)),this._.selectedElement=b);b?(this.setupContent(b),c&&c.disable(),h&&h.disable()):(c&&c.enable(),h&&h.enable());u&&u.onChange();
-l&&l.onChange()},onOk:function(){var d=a.getSelection(),e=this._.selectedElement&&d.createBookmarks(),b=this._.selectedElement||p("table"),c={};this.commitContent(c,b);if(c.info){c=c.info;if(!this._.selectedElement)for(var h=b.append(p("tbody")),f=parseInt(c.txtRows,10)||0,l=parseInt(c.txtCols,10)||0,k=0;k<f;k++)for(var g=h.append(p("tr")),m=0;m<l;m++)g.append(p("td")).appendBogus();f=c.selHeaders;if(!b.$.tHead&&("row"==f||"both"==f)){g=b.getElementsByTag("thead").getItem(0);h=b.getElementsByTag("tbody").getItem(0);
-l=h.getElementsByTag("tr").getItem(0);g||(g=new CKEDITOR.dom.element("thead"),g.insertBefore(h));for(k=0;k<l.getChildCount();k++)h=l.getChild(k),h.type!=CKEDITOR.NODE_ELEMENT||h.data("cke-bookmark")||(h.renameNode("th"),h.setAttribute("scope","col"));g.append(l.remove())}if(null!==b.$.tHead&&"row"!=f&&"both"!=f){g=new CKEDITOR.dom.element(b.$.tHead);for(h=b.getElementsByTag("tbody").getItem(0);0<g.getChildCount();){l=g.getFirst();for(k=0;k<l.getChildCount();k++)m=l.getChild(k),m.type==CKEDITOR.NODE_ELEMENT&&
-(m.renameNode("td"),m.removeAttribute("scope"));h.append(l,!0)}g.remove()}if(!this.hasColumnHeaders&&("col"==f||"both"==f))for(g=0;g<b.$.rows.length;g++)m=new CKEDITOR.dom.element(b.$.rows[g].cells[0]),m.renameNode("th"),m.setAttribute("scope","row");if(this.hasColumnHeaders&&"col"!=f&&"both"!=f)for(k=0;k<b.$.rows.length;k++)g=new CKEDITOR.dom.element(b.$.rows[k]),"tbody"==g.getParent().getName()&&(m=new CKEDITOR.dom.element(g.$.cells[0]),m.renameNode("td"),m.removeAttribute("scope"));c.txtHeight?
-b.setStyle("height",c.txtHeight):b.removeStyle("height");c.txtWidth?b.setStyle("width",c.txtWidth):b.removeStyle("width");b.getAttribute("style")||b.removeAttribute("style")}if(this._.selectedElement)try{d.selectBookmarks(e)}catch(n){}else a.insertElement(b),setTimeout(function(){var d=new CKEDITOR.dom.element(b.$.rows[0].cells[0]),c=a.createRange();c.moveToPosition(d,CKEDITOR.POSITION_AFTER_START);c.select()},0)},contents:[{id:"info",label:a.lang.table.title,elements:[{type:"hbox",widths:[null,null],
-styles:["vertical-align:top"],children:[{type:"vbox",padding:0,children:[{type:"text",id:"txtRows","default":3,label:a.lang.table.rows,required:!0,controlStyle:"width:5em",validate:t(a.lang.table.invalidRows),setup:function(d){this.setValue(d.$.rows.length)},commit:n},{type:"text",id:"txtCols","default":2,label:a.lang.table.columns,required:!0,controlStyle:"width:5em",validate:t(a.lang.table.invalidCols),setup:function(d){this.setValue(w(d))},commit:n},{type:"html",html:"\x26nbsp;"},{type:"select",
-id:"selHeaders",requiredContent:"th","default":"",label:a.lang.table.headers,items:[[a.lang.table.headersNone,""],[a.lang.table.headersRow,"row"],[a.lang.table.headersColumn,"col"],[a.lang.table.headersBoth,"both"]],setup:function(d){var a=this.getDialog();a.hasColumnHeaders=!0;for(var b=0;b<d.$.rows.length;b++){var c=d.$.rows[b].cells[0];if(c&&"th"!=c.nodeName.toLowerCase()){a.hasColumnHeaders=!1;break}}null!==d.$.tHead?this.setValue(a.hasColumnHeaders?"both":"row"):this.setValue(a.hasColumnHeaders?
-"col":"")},commit:n},{type:"text",id:"txtBorder",requiredContent:"table[border]","default":a.filter.check("table[border]")?1:0,label:a.lang.table.border,controlStyle:"width:3em",validate:CKEDITOR.dialog.validate.number(a.lang.table.invalidBorder),setup:function(d){this.setValue(d.getAttribute("border")||"")},commit:function(d,a){this.getValue()?a.setAttribute("border",this.getValue()):a.removeAttribute("border")}},{id:"cmbAlign",type:"select",requiredContent:"table[align]","default":"",label:a.lang.common.align,
-items:[[a.lang.common.notSet,""],[a.lang.common.left,"left"],[a.lang.common.center,"center"],[a.lang.common.right,"right"]],setup:function(a){this.setValue(a.getAttribute("align")||"")},commit:function(a,e){this.getValue()?e.setAttribute("align",this.getValue()):e.removeAttribute("align")}}]},{type:"vbox",padding:0,children:[{type:"hbox",widths:["5em"],children:[{type:"text",id:"txtWidth",requiredContent:"table{width}",controlStyle:"width:5em",label:a.lang.common.width,title:a.lang.common.cssLengthTooltip,
-"default":a.filter.check("table{width}")?500>r.getSize("width")?"100%":500:0,getValue:v,validate:CKEDITOR.dialog.validate.cssLength(a.lang.common.invalidCssLength.replace("%1",a.lang.common.width)),onChange:function(){var a=this.getDialog().getContentElement("advanced","advStyles");a&&a.updateStyle("width",this.getValue())},setup:function(a){a=a.getStyle("width");this.setValue(a)},commit:n}]},{type:"hbox",widths:["5em"],children:[{type:"text",id:"txtHeight",requiredContent:"table{height}",controlStyle:"width:5em",
-label:a.lang.common.height,title:a.lang.common.cssLengthTooltip,"default":"",getValue:v,validate:CKEDITOR.dialog.validate.cssLength(a.lang.common.invalidCssLength.replace("%1",a.lang.common.height)),onChange:function(){var a=this.getDialog().getContentElement("advanced","advStyles");a&&a.updateStyle("height",this.getValue())},setup:function(a){(a=a.getStyle("height"))&&this.setValue(a)},commit:n}]},{type:"html",html:"\x26nbsp;"},{type:"text",id:"txtCellSpace",requiredContent:"table[cellspacing]",
-controlStyle:"width:3em",label:a.lang.table.cellSpace,"default":a.filter.check("table[cellspacing]")?1:0,validate:CKEDITOR.dialog.validate.number(a.lang.table.invalidCellSpacing),setup:function(a){this.setValue(a.getAttribute("cellSpacing")||"")},commit:function(a,e){this.getValue()?e.setAttribute("cellSpacing",this.getValue()):e.removeAttribute("cellSpacing")}},{type:"text",id:"txtCellPad",requiredContent:"table[cellpadding]",controlStyle:"width:3em",label:a.lang.table.cellPad,"default":a.filter.check("table[cellpadding]")?
-1:0,validate:CKEDITOR.dialog.validate.number(a.lang.table.invalidCellPadding),setup:function(a){this.setValue(a.getAttribute("cellPadding")||"")},commit:function(a,e){this.getValue()?e.setAttribute("cellPadding",this.getValue()):e.removeAttribute("cellPadding")}}]}]},{type:"html",align:"right",html:""},{type:"vbox",padding:0,children:[{type:"text",id:"txtCaption",requiredContent:"caption",label:a.lang.table.caption,setup:function(a){this.enable();a=a.getElementsByTag("caption");if(0<a.count()){a=
-a.getItem(0);var e=a.getFirst(CKEDITOR.dom.walker.nodeType(CKEDITOR.NODE_ELEMENT));e&&!e.equals(a.getBogus())?(this.disable(),this.setValue(a.getText())):(a=CKEDITOR.tools.trim(a.getText()),this.setValue(a))}},commit:function(d,e){if(this.isEnabled()){var b=this.getValue(),c=e.getElementsByTag("caption");if(b)0<c.count()?(c=c.getItem(0),c.setHtml("")):(c=new CKEDITOR.dom.element("caption",a.document),e.append(c,!0)),c.append(new CKEDITOR.dom.text(b,a.document));else if(0<c.count())for(b=c.count()-
-1;0<=b;b--)c.getItem(b).remove()}}},{type:"text",id:"txtSummary",bidi:!0,requiredContent:"table[summary]",label:a.lang.table.summary,setup:function(a){this.setValue(a.getAttribute("summary")||"")},commit:function(a,e){this.getValue()?e.setAttribute("summary",this.getValue()):e.removeAttribute("summary")}}]}]},q&&q.createAdvancedTab(a,null,"table")]}}var v=CKEDITOR.tools.cssLength,n=function(a){var f=this.id;a.info||(a.info={});a.info[f]=this.getValue()};CKEDITOR.dialog.add("table",function(a){return r(a,
-"table")});CKEDITOR.dialog.add("tableProperties",function(a){return r(a,"tableProperties")})})();
\ No newline at end of file
diff --git a/web/modules/ckeditor/vendor/plugins/tabletools/dialogs/tableCell.js b/web/modules/ckeditor/vendor/plugins/tabletools/dialogs/tableCell.js
deleted file mode 100644
index 76fcd6597ada37cf078e5f084d244e593f4c6522..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/plugins/tabletools/dialogs/tableCell.js
+++ /dev/null
@@ -1,18 +0,0 @@
-/*
- Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
- For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
-*/
-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/modules/ckeditor/vendor/plugins/widget/images/handle.png b/web/modules/ckeditor/vendor/plugins/widget/images/handle.png
deleted file mode 100644
index ba8cda5b30650babdd9e9b439bf92dd78e7e3425..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/plugins/widget/images/handle.png
+++ /dev/null
@@ -1,3 +0,0 @@
-�PNG
-
-���
IHDR������������y���*PLTE���$$$&&&$$$###%%%$$$&&&%%%%%%%%%%%%%%%%%%2��O���
tRNS�8<@HL������������TIDAT�cй���a�����.00̝����^c�� �
 ��ܻ`�����id@��낛7��.�0�"���$�����IEND�B`�
\ No newline at end of file
diff --git a/web/modules/ckeditor/vendor/skins/moono-lisa/dialog.css b/web/modules/ckeditor/vendor/skins/moono-lisa/dialog.css
deleted file mode 100644
index d63213720609e1a8f609ffd43d1faf8a661438b2..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/skins/moono-lisa/dialog.css
+++ /dev/null
@@ -1,5 +0,0 @@
-/*
-Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
-For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
-*/
-.cke_dialog{visibility:visible}.cke_dialog_body{z-index:1;background:#fff}.cke_dialog strong{font-weight:bold}.cke_dialog_title{font-weight:bold;font-size:12px;cursor:move;position:relative;color:#484848;border-bottom:1px solid #d1d1d1;padding:12px 19px 12px 12px;background:#f8f8f8;letter-spacing:.3px}.cke_dialog_spinner{border-radius:50%;width:12px;height:12px;overflow:hidden;text-indent:-9999em;border:2px solid rgba(102,102,102,0.2);border-left-color:rgba(102,102,102,1);-webkit-animation:dialog_spinner 1s infinite linear;animation:dialog_spinner 1s infinite linear}.cke_browser_ie8 .cke_dialog_spinner,.cke_browser_ie9 .cke_dialog_spinner{background:url(images/spinner.gif) center top no-repeat;width:16px;height:16px;border:0}@-webkit-keyframes dialog_spinner{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes dialog_spinner{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.cke_dialog_contents{background-color:#fff;overflow:auto;padding:15px 10px 5px 10px;margin-top:43px;border-top:1px solid #d1d1d1}.cke_dialog_contents_body{overflow:auto;padding:9px 10px 5px 10px;margin-top:22px}.cke_dialog_footer{text-align:right;position:relative;border-top:1px solid #d1d1d1;background:#f8f8f8}.cke_rtl .cke_dialog_footer{text-align:left}.cke_hc .cke_dialog_footer{outline:0;border-top:1px solid #fff}.cke_dialog .cke_resizer{margin-top:22px}.cke_dialog .cke_resizer_rtl{margin-left:5px}.cke_dialog .cke_resizer_ltr{margin-right:5px}.cke_dialog_tabs{height:33px;display:inline-block;margin:9px 0 0;position:absolute;z-index:2;left:11px}.cke_rtl .cke_dialog_tabs{left:auto;right:11px}a.cke_dialog_tab{height:25px;padding:4px 8px;display:inline-block;cursor:pointer;line-height:26px;outline:0;color:#484848;border:1px solid #d1d1d1;border-radius:3px 3px 0 0;background:#f8f8f8;min-width:90px;text-align:center;margin-left:-1px;letter-spacing:.3px}a.cke_dialog_tab:hover{background-color:#fff}a.cke_dialog_tab:focus{border:2px solid #139ff7;border-bottom-color:#d1d1d1;padding:3px 7px;position:relative;z-index:1}a.cke_dialog_tab_selected{background:#fff;border-bottom-color:#fff;cursor:default;filter:none}a.cke_dialog_tab_selected:hover,a.cke_dialog_tab_selected:focus{border-bottom-color:#fff}.cke_hc a.cke_dialog_tab:hover,.cke_hc a.cke_dialog_tab:focus,.cke_hc a.cke_dialog_tab_selected{border:3px solid;padding:2px 6px}.cke_hc a.cke_dialog_tab:focus{text-decoration:underline}a.cke_dialog_tab_disabled{color:#bababa;cursor:default}.cke_single_page .cke_dialog_tabs{display:none}.cke_single_page .cke_dialog_contents{padding-top:5px;margin-top:0;border-top:0}a.cke_dialog_close_button{background-image:url(images/close.png);background-repeat:no-repeat;background-position:50%;position:absolute;cursor:pointer;text-align:center;height:16px;width:16px;top:11px;z-index:5;opacity:.7;filter:alpha(opacity = 70)}.cke_rtl .cke_dialog_close_button{left:12px}.cke_ltr .cke_dialog_close_button{right:12px}.cke_hc a.cke_dialog_close_button{background-image:none}.cke_hidpi a.cke_dialog_close_button{background-image:url(images/hidpi/close.png);background-size:16px}a.cke_dialog_close_button:hover{opacity:1;filter:alpha(opacity = 100)}a.cke_dialog_close_button span{display:none}.cke_hc a.cke_dialog_close_button span{display:inline;cursor:pointer;font-weight:bold;position:relative;top:3px}div.cke_disabled .cke_dialog_ui_labeled_content div *{background-color:#ddd;cursor:default}.cke_dialog_ui_vbox table,.cke_dialog_ui_hbox table{margin:auto}.cke_dialog_ui_vbox_child{padding:5px 0}.cke_dialog_ui_hbox{width:100%;margin-top:12px}.cke_dialog_ui_hbox_first,.cke_dialog_ui_hbox_child,.cke_dialog_ui_hbox_last{vertical-align:top}.cke_ltr .cke_dialog_ui_hbox_first,.cke_ltr .cke_dialog_ui_hbox_child{padding-right:10px}.cke_rtl .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_ui_hbox_child{padding-left:10px}.cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first,.cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child{padding-right:5px}.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child{padding-left:5px;padding-right:0}.cke_hc div.cke_dialog_ui_input_text,.cke_hc div.cke_dialog_ui_input_password,.cke_hc div.cke_dialog_ui_input_tel,.cke_hc div.cke_dialog_ui_input_textarea,.cke_hc div.cke_dialog_ui_input_select,.cke_hc div.cke_dialog_ui_input_file{border:1px solid}textarea.cke_dialog_ui_input_textarea{overflow:auto;resize:none}input.cke_dialog_ui_input_text,input.cke_dialog_ui_input_password,input.cke_dialog_ui_input_tel,textarea.cke_dialog_ui_input_textarea{background-color:#fff;border:1px solid #bcbcbc;padding:4px 6px;outline:0;width:100%;*width:95%;box-sizing:border-box;border-radius:2px;min-height:28px;margin-left:1px}input.cke_dialog_ui_input_text:hover,input.cke_dialog_ui_input_password:hover,input.cke_dialog_ui_input_tel:hover,textarea.cke_dialog_ui_input_textarea:hover{border:1px solid #aeb3b9}input.cke_dialog_ui_input_text:focus,input.cke_dialog_ui_input_password:focus,input.cke_dialog_ui_input_tel:focus,textarea.cke_dialog_ui_input_textarea:focus,select.cke_dialog_ui_input_select:focus{outline:0;border:2px solid #139ff7}input.cke_dialog_ui_input_text:focus{padding-left:5px}textarea.cke_dialog_ui_input_textarea:focus{padding:3px 5px}select.cke_dialog_ui_input_select:focus{margin:0;width:100%!important}input.cke_dialog_ui_checkbox_input,input.cke_dialog_ui_radio_input{margin-left:1px;margin-right:2px}input.cke_dialog_ui_checkbox_input:focus,input.cke_dialog_ui_checkbox_input:active,input.cke_dialog_ui_radio_input:focus,input.cke_dialog_ui_radio_input:active{border:0;outline:2px solid #139ff7}a.cke_dialog_ui_button{display:inline-block;*display:inline;*zoom:1;padding:4px 1px;margin:0;text-align:center;color:#484848;vertical-align:middle;cursor:pointer;border:1px solid #bcbcbc;border-radius:2px;background:#f8f8f8;letter-spacing:.3px;line-height:18px;box-sizing:border-box}.cke_hc a.cke_dialog_ui_button{border-width:3px}span.cke_dialog_ui_button{padding:0 10px;cursor:pointer}a.cke_dialog_ui_button:hover{background:#fff}a.cke_dialog_ui_button:focus,a.cke_dialog_ui_button:active{border:2px solid #139ff7;outline:0;padding:3px 0}.cke_hc a.cke_dialog_ui_button:hover,.cke_hc a.cke_dialog_ui_button:focus,.cke_hc a.cke_dialog_ui_button:active{border:3px solid}.cke_dialog_footer_buttons a.cke_dialog_ui_button span{color:inherit;font-size:12px;font-weight:bold;padding:0 12px}a.cke_dialog_ui_button_ok{color:#fff;background:#09863e;border:1px solid #09863e}.cke_hc a.cke_dialog_ui_button{border:1px solid #bcbcbc}a.cke_dialog_ui_button_ok:hover{background:#53aa78;border-color:#53aa78}a.cke_dialog_ui_button_ok:focus{box-shadow:inset 0 0 0 2px #FFF}a.cke_dialog_ui_button_ok:focus,a.cke_dialog_ui_button_ok:active{border-color:#139ff7}.cke_hc a.cke_dialog_ui_button_ok:hover,.cke_hc a.cke_dialog_ui_button_ok:focus,.cke_hc a.cke_dialog_ui_button_ok:active{border-color:#484848}a.cke_dialog_ui_button_ok.cke_disabled{background:#d1d1d1;border-color:#d1d1d1;cursor:default}a.cke_dialog_ui_button_ok.cke_disabled span{cursor:default}.cke_dialog_footer_buttons{display:inline-table;margin:5px;width:auto;position:relative;vertical-align:middle}div.cke_dialog_ui_input_select{display:table}select.cke_dialog_ui_input_select{height:28px;line-height:28px;background-color:#fff;border:1px solid #bcbcbc;padding:3px 3px 3px 6px;outline:0;border-radius:2px;margin:0 1px;box-sizing:border-box;width:calc(100% - 2px)!important}.cke_dialog_ui_input_file{width:100%;height:25px}.cke_hc .cke_dialog_ui_labeled_content input:focus,.cke_hc .cke_dialog_ui_labeled_content select:focus,.cke_hc .cke_dialog_ui_labeled_content textarea:focus{outline:1px dotted}.cke_dialog_ui_labeled_label{margin-left:1px}.cke_dialog_ui_labeled_required{font-weight:bold;font-size:1.2em}.cke_dialog .cke_dark_background{background-color:transparent}.cke_dialog .cke_light_background{background-color:#ebebeb}.cke_dialog .cke_centered{text-align:center}.cke_dialog a.cke_btn_reset{float:right;background:url(images/refresh.png) top left no-repeat;width:16px;height:16px;border:1px none;font-size:1px}.cke_hidpi .cke_dialog a.cke_btn_reset{background-size:16px;background-image:url(images/hidpi/refresh.png)}.cke_rtl .cke_dialog a.cke_btn_reset{float:left}.cke_dialog a.cke_btn_locked,.cke_dialog a.cke_btn_unlocked{float:left;width:16px;height:16px;background-repeat:no-repeat;border:none 1px;font-size:1px}.cke_dialog a.cke_btn_locked,.cke_dialog a.cke_btn_unlocked,.cke_dialog a.cke_btn_reset{margin:2px}.cke_dialog a.cke_btn_locked{background-image:url(images/lock.png)}.cke_dialog a.cke_btn_unlocked{background-image:url(images/lock-open.png)}.cke_rtl .cke_dialog a.cke_btn_locked,.cke_rtl .cke_dialog a.cke_btn_unlocked{float:right}.cke_hidpi .cke_dialog a.cke_btn_unlocked,.cke_hidpi .cke_dialog a.cke_btn_locked{background-size:16px}.cke_hidpi .cke_dialog a.cke_btn_locked{background-image:url(images/hidpi/lock.png)}.cke_hidpi .cke_dialog a.cke_btn_unlocked{background-image:url(images/hidpi/lock-open.png)}.cke_dialog a.cke_btn_locked .cke_icon{display:none}.cke_dialog a.cke_btn_over,.cke_dialog a.cke_btn_locked:hover,.cke_dialog a.cke_btn_locked:focus,.cke_dialog a.cke_btn_locked:active,.cke_dialog a.cke_btn_unlocked:hover,.cke_dialog a.cke_btn_unlocked:focus,.cke_dialog a.cke_btn_unlocked:active,.cke_dialog a.cke_btn_reset:hover,.cke_dialog a.cke_btn_reset:focus,.cke_dialog a.cke_btn_reset:active{cursor:pointer;outline:0;margin:0;border:2px solid #139ff7}.cke_dialog fieldset{border:1px solid #bcbcbc}.cke_dialog fieldset legend{padding:0 6px}.cke_dialog_ui_checkbox,.cke_dialog fieldset .cke_dialog_ui_vbox .cke_dialog_ui_checkbox{display:inline-block}.cke_dialog fieldset .cke_dialog_ui_vbox .cke_dialog_ui_checkbox{padding-top:5px}.cke_dialog_ui_checkbox .cke_dialog_ui_checkbox_input,.cke_dialog_ui_checkbox .cke_dialog_ui_checkbox_input+label,.cke_dialog fieldset .cke_dialog_ui_vbox .cke_dialog_ui_checkbox .cke_dialog_ui_checkbox_input,.cke_dialog fieldset .cke_dialog_ui_vbox .cke_dialog_ui_checkbox .cke_dialog_ui_checkbox_input+label{vertical-align:middle}.cke_dialog .ImagePreviewBox{border:1px ridge #bcbcbc;overflow:scroll;height:200px;width:300px;padding:2px;background-color:white}.cke_dialog .ImagePreviewBox table td{white-space:normal}.cke_dialog .ImagePreviewLoader{position:absolute;white-space:normal;overflow:hidden;height:160px;width:230px;margin:2px;padding:2px;opacity:.9;filter:alpha(opacity = 90);background-color:#e4e4e4}.cke_dialog .cke_pastetext{width:346px;height:170px}.cke_dialog .cke_pastetext textarea{width:340px;height:170px;resize:none}.cke_dialog iframe.cke_pasteframe{width:346px;height:130px;background-color:white;border:1px solid #aeb3b9;border-radius:3px}.cke_dialog .cke_hand{cursor:pointer}.cke_disabled{color:#a0a0a0}.cke_dialog_body .cke_label{display:none}.cke_dialog_body label{display:inline;cursor:default;letter-spacing:.3px}.cke_dialog_body label+.cke_dialog_ui_labeled_content{margin-top:2px}.cke_dialog_contents_body .cke_dialog_ui_text,.cke_dialog_contents_body .cke_dialog_ui_select,.cke_dialog_contents_body .cke_dialog_ui_hbox_last>a.cke_dialog_ui_button{margin-top:4px}a.cke_smile{overflow:hidden;display:block;text-align:center;padding:.3em 0}a.cke_smile img{vertical-align:middle}a.cke_specialchar{cursor:inherit;display:block;height:1.25em;padding:.2em .3em;text-align:center}a.cke_smile,a.cke_specialchar{border:2px solid transparent}a.cke_smile:hover,a.cke_smile:focus,a.cke_smile:active,a.cke_specialchar:hover,a.cke_specialchar:focus,a.cke_specialchar:active{background:#fff;outline:0}a.cke_smile:hover,a.cke_specialchar:hover{border-color:#888}a.cke_smile:focus,a.cke_smile:active,a.cke_specialchar:focus,a.cke_specialchar:active{border-color:#139ff7}.cke_dialog_contents a.colorChooser{display:block;margin-top:6px;margin-left:10px;width:80px}.cke_rtl .cke_dialog_contents a.colorChooser{margin-right:10px}.cke_iframe_shim{display:block;position:absolute;top:0;left:0;z-index:-1;filter:alpha(opacity = 0);width:100%;height:100%}.cke_dialog_contents_body .cke_accessibility_legend{margin:2px 7px 2px 2px}.cke_dialog_contents_body .cke_accessibility_legend:focus,.cke_dialog_contents_body .cke_accessibility_legend:active{outline:0;border:2px solid #139ff7;margin:0 5px 0 0}.cke_dialog_contents_body input[type=file]:focus,.cke_dialog_contents_body input[type=file]:active{border:2px solid #139ff7}.cke_dialog_find_fieldset{margin-top:10px!important}.cke_dialog_image_ratiolock{margin-top:52px!important}.cke_dialog_forms_select_order label.cke_dialog_ui_labeled_label{margin-left:0}.cke_dialog_forms_select_order div.cke_dialog_ui_input_select{width:100%}.cke_dialog_forms_select_order_txtsize .cke_dialog_ui_hbox_last{padding-top:4px}.cke_dialog_image_url .cke_dialog_ui_hbox_last{vertical-align:bottom}a.cke_dialog_ui_button.cke_dialog_image_browse{margin-top:10px}.cke_dialog_contents_body .cke_tpl_list{border:#bcbcbc 1px solid;margin:1px}.cke_dialog_contents_body .cke_tpl_list:focus,.cke_dialog_contents_body .cke_tpl_list:active{outline:0;margin:0;border:2px solid #139ff7}.cke_dialog_contents_body .cke_tpl_list a:focus,.cke_dialog_contents_body .cke_tpl_list a:active{outline:0}.cke_dialog_contents_body .cke_tpl_list a:focus .cke_tpl_item,.cke_dialog_contents_body .cke_tpl_list a:active .cke_tpl_item{border:2px solid #139ff7;padding:6px}
\ No newline at end of file
diff --git a/web/modules/ckeditor/vendor/skins/moono-lisa/dialog_ie.css b/web/modules/ckeditor/vendor/skins/moono-lisa/dialog_ie.css
deleted file mode 100644
index bbc2fea56963b1f38c3d348539b276ad396795dc..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/skins/moono-lisa/dialog_ie.css
+++ /dev/null
@@ -1,5 +0,0 @@
-/*
-Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
-For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
-*/
-.cke_dialog{visibility:visible}.cke_dialog_body{z-index:1;background:#fff}.cke_dialog strong{font-weight:bold}.cke_dialog_title{font-weight:bold;font-size:12px;cursor:move;position:relative;color:#484848;border-bottom:1px solid #d1d1d1;padding:12px 19px 12px 12px;background:#f8f8f8;letter-spacing:.3px}.cke_dialog_spinner{border-radius:50%;width:12px;height:12px;overflow:hidden;text-indent:-9999em;border:2px solid rgba(102,102,102,0.2);border-left-color:rgba(102,102,102,1);-webkit-animation:dialog_spinner 1s infinite linear;animation:dialog_spinner 1s infinite linear}.cke_browser_ie8 .cke_dialog_spinner,.cke_browser_ie9 .cke_dialog_spinner{background:url(images/spinner.gif) center top no-repeat;width:16px;height:16px;border:0}@-webkit-keyframes dialog_spinner{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes dialog_spinner{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.cke_dialog_contents{background-color:#fff;overflow:auto;padding:15px 10px 5px 10px;margin-top:43px;border-top:1px solid #d1d1d1}.cke_dialog_contents_body{overflow:auto;padding:9px 10px 5px 10px;margin-top:22px}.cke_dialog_footer{text-align:right;position:relative;border-top:1px solid #d1d1d1;background:#f8f8f8}.cke_rtl .cke_dialog_footer{text-align:left}.cke_hc .cke_dialog_footer{outline:0;border-top:1px solid #fff}.cke_dialog .cke_resizer{margin-top:22px}.cke_dialog .cke_resizer_rtl{margin-left:5px}.cke_dialog .cke_resizer_ltr{margin-right:5px}.cke_dialog_tabs{height:33px;display:inline-block;margin:9px 0 0;position:absolute;z-index:2;left:11px}.cke_rtl .cke_dialog_tabs{left:auto;right:11px}a.cke_dialog_tab{height:25px;padding:4px 8px;display:inline-block;cursor:pointer;line-height:26px;outline:0;color:#484848;border:1px solid #d1d1d1;border-radius:3px 3px 0 0;background:#f8f8f8;min-width:90px;text-align:center;margin-left:-1px;letter-spacing:.3px}a.cke_dialog_tab:hover{background-color:#fff}a.cke_dialog_tab:focus{border:2px solid #139ff7;border-bottom-color:#d1d1d1;padding:3px 7px;position:relative;z-index:1}a.cke_dialog_tab_selected{background:#fff;border-bottom-color:#fff;cursor:default;filter:none}a.cke_dialog_tab_selected:hover,a.cke_dialog_tab_selected:focus{border-bottom-color:#fff}.cke_hc a.cke_dialog_tab:hover,.cke_hc a.cke_dialog_tab:focus,.cke_hc a.cke_dialog_tab_selected{border:3px solid;padding:2px 6px}.cke_hc a.cke_dialog_tab:focus{text-decoration:underline}a.cke_dialog_tab_disabled{color:#bababa;cursor:default}.cke_single_page .cke_dialog_tabs{display:none}.cke_single_page .cke_dialog_contents{padding-top:5px;margin-top:0;border-top:0}a.cke_dialog_close_button{background-image:url(images/close.png);background-repeat:no-repeat;background-position:50%;position:absolute;cursor:pointer;text-align:center;height:16px;width:16px;top:11px;z-index:5;opacity:.7;filter:alpha(opacity = 70)}.cke_rtl .cke_dialog_close_button{left:12px}.cke_ltr .cke_dialog_close_button{right:12px}.cke_hc a.cke_dialog_close_button{background-image:none}.cke_hidpi a.cke_dialog_close_button{background-image:url(images/hidpi/close.png);background-size:16px}a.cke_dialog_close_button:hover{opacity:1;filter:alpha(opacity = 100)}a.cke_dialog_close_button span{display:none}.cke_hc a.cke_dialog_close_button span{display:inline;cursor:pointer;font-weight:bold;position:relative;top:3px}div.cke_disabled .cke_dialog_ui_labeled_content div *{background-color:#ddd;cursor:default}.cke_dialog_ui_vbox table,.cke_dialog_ui_hbox table{margin:auto}.cke_dialog_ui_vbox_child{padding:5px 0}.cke_dialog_ui_hbox{width:100%;margin-top:12px}.cke_dialog_ui_hbox_first,.cke_dialog_ui_hbox_child,.cke_dialog_ui_hbox_last{vertical-align:top}.cke_ltr .cke_dialog_ui_hbox_first,.cke_ltr .cke_dialog_ui_hbox_child{padding-right:10px}.cke_rtl .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_ui_hbox_child{padding-left:10px}.cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first,.cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child{padding-right:5px}.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child{padding-left:5px;padding-right:0}.cke_hc div.cke_dialog_ui_input_text,.cke_hc div.cke_dialog_ui_input_password,.cke_hc div.cke_dialog_ui_input_tel,.cke_hc div.cke_dialog_ui_input_textarea,.cke_hc div.cke_dialog_ui_input_select,.cke_hc div.cke_dialog_ui_input_file{border:1px solid}textarea.cke_dialog_ui_input_textarea{overflow:auto;resize:none}input.cke_dialog_ui_input_text,input.cke_dialog_ui_input_password,input.cke_dialog_ui_input_tel,textarea.cke_dialog_ui_input_textarea{background-color:#fff;border:1px solid #bcbcbc;padding:4px 6px;outline:0;width:100%;*width:95%;box-sizing:border-box;border-radius:2px;min-height:28px;margin-left:1px}input.cke_dialog_ui_input_text:hover,input.cke_dialog_ui_input_password:hover,input.cke_dialog_ui_input_tel:hover,textarea.cke_dialog_ui_input_textarea:hover{border:1px solid #aeb3b9}input.cke_dialog_ui_input_text:focus,input.cke_dialog_ui_input_password:focus,input.cke_dialog_ui_input_tel:focus,textarea.cke_dialog_ui_input_textarea:focus,select.cke_dialog_ui_input_select:focus{outline:0;border:2px solid #139ff7}input.cke_dialog_ui_input_text:focus{padding-left:5px}textarea.cke_dialog_ui_input_textarea:focus{padding:3px 5px}select.cke_dialog_ui_input_select:focus{margin:0;width:100%!important}input.cke_dialog_ui_checkbox_input,input.cke_dialog_ui_radio_input{margin-left:1px;margin-right:2px}input.cke_dialog_ui_checkbox_input:focus,input.cke_dialog_ui_checkbox_input:active,input.cke_dialog_ui_radio_input:focus,input.cke_dialog_ui_radio_input:active{border:0;outline:2px solid #139ff7}a.cke_dialog_ui_button{display:inline-block;*display:inline;*zoom:1;padding:4px 1px;margin:0;text-align:center;color:#484848;vertical-align:middle;cursor:pointer;border:1px solid #bcbcbc;border-radius:2px;background:#f8f8f8;letter-spacing:.3px;line-height:18px;box-sizing:border-box}.cke_hc a.cke_dialog_ui_button{border-width:3px}span.cke_dialog_ui_button{padding:0 10px;cursor:pointer}a.cke_dialog_ui_button:hover{background:#fff}a.cke_dialog_ui_button:focus,a.cke_dialog_ui_button:active{border:2px solid #139ff7;outline:0;padding:3px 0}.cke_hc a.cke_dialog_ui_button:hover,.cke_hc a.cke_dialog_ui_button:focus,.cke_hc a.cke_dialog_ui_button:active{border:3px solid}.cke_dialog_footer_buttons a.cke_dialog_ui_button span{color:inherit;font-size:12px;font-weight:bold;padding:0 12px}a.cke_dialog_ui_button_ok{color:#fff;background:#09863e;border:1px solid #09863e}.cke_hc a.cke_dialog_ui_button{border:1px solid #bcbcbc}a.cke_dialog_ui_button_ok:hover{background:#53aa78;border-color:#53aa78}a.cke_dialog_ui_button_ok:focus{box-shadow:inset 0 0 0 2px #FFF}a.cke_dialog_ui_button_ok:focus,a.cke_dialog_ui_button_ok:active{border-color:#139ff7}.cke_hc a.cke_dialog_ui_button_ok:hover,.cke_hc a.cke_dialog_ui_button_ok:focus,.cke_hc a.cke_dialog_ui_button_ok:active{border-color:#484848}a.cke_dialog_ui_button_ok.cke_disabled{background:#d1d1d1;border-color:#d1d1d1;cursor:default}a.cke_dialog_ui_button_ok.cke_disabled span{cursor:default}.cke_dialog_footer_buttons{display:inline-table;margin:5px;width:auto;position:relative;vertical-align:middle}div.cke_dialog_ui_input_select{display:table}select.cke_dialog_ui_input_select{height:28px;line-height:28px;background-color:#fff;border:1px solid #bcbcbc;padding:3px 3px 3px 6px;outline:0;border-radius:2px;margin:0 1px;box-sizing:border-box;width:calc(100% - 2px)!important}.cke_dialog_ui_input_file{width:100%;height:25px}.cke_hc .cke_dialog_ui_labeled_content input:focus,.cke_hc .cke_dialog_ui_labeled_content select:focus,.cke_hc .cke_dialog_ui_labeled_content textarea:focus{outline:1px dotted}.cke_dialog_ui_labeled_label{margin-left:1px}.cke_dialog_ui_labeled_required{font-weight:bold;font-size:1.2em}.cke_dialog .cke_dark_background{background-color:transparent}.cke_dialog .cke_light_background{background-color:#ebebeb}.cke_dialog .cke_centered{text-align:center}.cke_dialog a.cke_btn_reset{float:right;background:url(images/refresh.png) top left no-repeat;width:16px;height:16px;border:1px none;font-size:1px}.cke_hidpi .cke_dialog a.cke_btn_reset{background-size:16px;background-image:url(images/hidpi/refresh.png)}.cke_rtl .cke_dialog a.cke_btn_reset{float:left}.cke_dialog a.cke_btn_locked,.cke_dialog a.cke_btn_unlocked{float:left;width:16px;height:16px;background-repeat:no-repeat;border:none 1px;font-size:1px}.cke_dialog a.cke_btn_locked,.cke_dialog a.cke_btn_unlocked,.cke_dialog a.cke_btn_reset{margin:2px}.cke_dialog a.cke_btn_locked{background-image:url(images/lock.png)}.cke_dialog a.cke_btn_unlocked{background-image:url(images/lock-open.png)}.cke_rtl .cke_dialog a.cke_btn_locked,.cke_rtl .cke_dialog a.cke_btn_unlocked{float:right}.cke_hidpi .cke_dialog a.cke_btn_unlocked,.cke_hidpi .cke_dialog a.cke_btn_locked{background-size:16px}.cke_hidpi .cke_dialog a.cke_btn_locked{background-image:url(images/hidpi/lock.png)}.cke_hidpi .cke_dialog a.cke_btn_unlocked{background-image:url(images/hidpi/lock-open.png)}.cke_dialog a.cke_btn_locked .cke_icon{display:none}.cke_dialog a.cke_btn_over,.cke_dialog a.cke_btn_locked:hover,.cke_dialog a.cke_btn_locked:focus,.cke_dialog a.cke_btn_locked:active,.cke_dialog a.cke_btn_unlocked:hover,.cke_dialog a.cke_btn_unlocked:focus,.cke_dialog a.cke_btn_unlocked:active,.cke_dialog a.cke_btn_reset:hover,.cke_dialog a.cke_btn_reset:focus,.cke_dialog a.cke_btn_reset:active{cursor:pointer;outline:0;margin:0;border:2px solid #139ff7}.cke_dialog fieldset{border:1px solid #bcbcbc}.cke_dialog fieldset legend{padding:0 6px}.cke_dialog_ui_checkbox,.cke_dialog fieldset .cke_dialog_ui_vbox .cke_dialog_ui_checkbox{display:inline-block}.cke_dialog fieldset .cke_dialog_ui_vbox .cke_dialog_ui_checkbox{padding-top:5px}.cke_dialog_ui_checkbox .cke_dialog_ui_checkbox_input,.cke_dialog_ui_checkbox .cke_dialog_ui_checkbox_input+label,.cke_dialog fieldset .cke_dialog_ui_vbox .cke_dialog_ui_checkbox .cke_dialog_ui_checkbox_input,.cke_dialog fieldset .cke_dialog_ui_vbox .cke_dialog_ui_checkbox .cke_dialog_ui_checkbox_input+label{vertical-align:middle}.cke_dialog .ImagePreviewBox{border:1px ridge #bcbcbc;overflow:scroll;height:200px;width:300px;padding:2px;background-color:white}.cke_dialog .ImagePreviewBox table td{white-space:normal}.cke_dialog .ImagePreviewLoader{position:absolute;white-space:normal;overflow:hidden;height:160px;width:230px;margin:2px;padding:2px;opacity:.9;filter:alpha(opacity = 90);background-color:#e4e4e4}.cke_dialog .cke_pastetext{width:346px;height:170px}.cke_dialog .cke_pastetext textarea{width:340px;height:170px;resize:none}.cke_dialog iframe.cke_pasteframe{width:346px;height:130px;background-color:white;border:1px solid #aeb3b9;border-radius:3px}.cke_dialog .cke_hand{cursor:pointer}.cke_disabled{color:#a0a0a0}.cke_dialog_body .cke_label{display:none}.cke_dialog_body label{display:inline;cursor:default;letter-spacing:.3px}.cke_dialog_body label+.cke_dialog_ui_labeled_content{margin-top:2px}.cke_dialog_contents_body .cke_dialog_ui_text,.cke_dialog_contents_body .cke_dialog_ui_select,.cke_dialog_contents_body .cke_dialog_ui_hbox_last>a.cke_dialog_ui_button{margin-top:4px}a.cke_smile{overflow:hidden;display:block;text-align:center;padding:.3em 0}a.cke_smile img{vertical-align:middle}a.cke_specialchar{cursor:inherit;display:block;height:1.25em;padding:.2em .3em;text-align:center}a.cke_smile,a.cke_specialchar{border:2px solid transparent}a.cke_smile:hover,a.cke_smile:focus,a.cke_smile:active,a.cke_specialchar:hover,a.cke_specialchar:focus,a.cke_specialchar:active{background:#fff;outline:0}a.cke_smile:hover,a.cke_specialchar:hover{border-color:#888}a.cke_smile:focus,a.cke_smile:active,a.cke_specialchar:focus,a.cke_specialchar:active{border-color:#139ff7}.cke_dialog_contents a.colorChooser{display:block;margin-top:6px;margin-left:10px;width:80px}.cke_rtl .cke_dialog_contents a.colorChooser{margin-right:10px}.cke_iframe_shim{display:block;position:absolute;top:0;left:0;z-index:-1;filter:alpha(opacity = 0);width:100%;height:100%}.cke_dialog_contents_body .cke_accessibility_legend{margin:2px 7px 2px 2px}.cke_dialog_contents_body .cke_accessibility_legend:focus,.cke_dialog_contents_body .cke_accessibility_legend:active{outline:0;border:2px solid #139ff7;margin:0 5px 0 0}.cke_dialog_contents_body input[type=file]:focus,.cke_dialog_contents_body input[type=file]:active{border:2px solid #139ff7}.cke_dialog_find_fieldset{margin-top:10px!important}.cke_dialog_image_ratiolock{margin-top:52px!important}.cke_dialog_forms_select_order label.cke_dialog_ui_labeled_label{margin-left:0}.cke_dialog_forms_select_order div.cke_dialog_ui_input_select{width:100%}.cke_dialog_forms_select_order_txtsize .cke_dialog_ui_hbox_last{padding-top:4px}.cke_dialog_image_url .cke_dialog_ui_hbox_last{vertical-align:bottom}a.cke_dialog_ui_button.cke_dialog_image_browse{margin-top:10px}.cke_dialog_contents_body .cke_tpl_list{border:#bcbcbc 1px solid;margin:1px}.cke_dialog_contents_body .cke_tpl_list:focus,.cke_dialog_contents_body .cke_tpl_list:active{outline:0;margin:0;border:2px solid #139ff7}.cke_dialog_contents_body .cke_tpl_list a:focus,.cke_dialog_contents_body .cke_tpl_list a:active{outline:0}.cke_dialog_contents_body .cke_tpl_list a:focus .cke_tpl_item,.cke_dialog_contents_body .cke_tpl_list a:active .cke_tpl_item{border:2px solid #139ff7;padding:6px}.cke_rtl input.cke_dialog_ui_input_text,.cke_rtl input.cke_dialog_ui_input_password,.cke_rtl input.cke_dialog_ui_input_tel{padding-right:2px}.cke_rtl div.cke_dialog_ui_input_text,.cke_rtl div.cke_dialog_ui_input_password,.cke_rtl div.cke_dialog_ui_input_tel{padding-left:2px}.cke_rtl div.cke_dialog_ui_input_text{padding-right:1px}.cke_rtl .cke_dialog_ui_vbox_child,.cke_rtl .cke_dialog_ui_hbox_child,.cke_rtl .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_ui_hbox_last{padding-right:2px!important}.cke_hc .cke_dialog_title,.cke_hc .cke_dialog_footer,.cke_hc a.cke_dialog_tab,.cke_hc a.cke_dialog_ui_button,.cke_hc a.cke_dialog_ui_button:hover,.cke_hc a.cke_dialog_ui_button_ok,.cke_hc a.cke_dialog_ui_button_ok:hover{filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.cke_hc div.cke_dialog_ui_input_text,.cke_hc div.cke_dialog_ui_input_password,.cke_hc div.cke_dialog_ui_input_tel,.cke_hc div.cke_dialog_ui_input_textarea,.cke_hc div.cke_dialog_ui_input_select,.cke_hc div.cke_dialog_ui_input_file{border:0}
\ No newline at end of file
diff --git a/web/modules/ckeditor/vendor/skins/moono-lisa/dialog_ie8.css b/web/modules/ckeditor/vendor/skins/moono-lisa/dialog_ie8.css
deleted file mode 100644
index 8627bc8b458c13f608d4d95b8482fd130de3e3a6..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/skins/moono-lisa/dialog_ie8.css
+++ /dev/null
@@ -1,5 +0,0 @@
-/*
-Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
-For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
-*/
-.cke_dialog{visibility:visible}.cke_dialog_body{z-index:1;background:#fff}.cke_dialog strong{font-weight:bold}.cke_dialog_title{font-weight:bold;font-size:12px;cursor:move;position:relative;color:#484848;border-bottom:1px solid #d1d1d1;padding:12px 19px 12px 12px;background:#f8f8f8;letter-spacing:.3px}.cke_dialog_spinner{border-radius:50%;width:12px;height:12px;overflow:hidden;text-indent:-9999em;border:2px solid rgba(102,102,102,0.2);border-left-color:rgba(102,102,102,1);-webkit-animation:dialog_spinner 1s infinite linear;animation:dialog_spinner 1s infinite linear}.cke_browser_ie8 .cke_dialog_spinner,.cke_browser_ie9 .cke_dialog_spinner{background:url(images/spinner.gif) center top no-repeat;width:16px;height:16px;border:0}@-webkit-keyframes dialog_spinner{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes dialog_spinner{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.cke_dialog_contents{background-color:#fff;overflow:auto;padding:15px 10px 5px 10px;margin-top:43px;border-top:1px solid #d1d1d1}.cke_dialog_contents_body{overflow:auto;padding:9px 10px 5px 10px;margin-top:22px}.cke_dialog_footer{text-align:right;position:relative;border-top:1px solid #d1d1d1;background:#f8f8f8}.cke_rtl .cke_dialog_footer{text-align:left}.cke_hc .cke_dialog_footer{outline:0;border-top:1px solid #fff}.cke_dialog .cke_resizer{margin-top:22px}.cke_dialog .cke_resizer_rtl{margin-left:5px}.cke_dialog .cke_resizer_ltr{margin-right:5px}.cke_dialog_tabs{height:33px;display:inline-block;margin:9px 0 0;position:absolute;z-index:2;left:11px}.cke_rtl .cke_dialog_tabs{left:auto;right:11px}a.cke_dialog_tab{height:25px;padding:4px 8px;display:inline-block;cursor:pointer;line-height:26px;outline:0;color:#484848;border:1px solid #d1d1d1;border-radius:3px 3px 0 0;background:#f8f8f8;min-width:90px;text-align:center;margin-left:-1px;letter-spacing:.3px}a.cke_dialog_tab:hover{background-color:#fff}a.cke_dialog_tab:focus{border:2px solid #139ff7;border-bottom-color:#d1d1d1;padding:3px 7px;position:relative;z-index:1}a.cke_dialog_tab_selected{background:#fff;border-bottom-color:#fff;cursor:default;filter:none}a.cke_dialog_tab_selected:hover,a.cke_dialog_tab_selected:focus{border-bottom-color:#fff}.cke_hc a.cke_dialog_tab:hover,.cke_hc a.cke_dialog_tab:focus,.cke_hc a.cke_dialog_tab_selected{border:3px solid;padding:2px 6px}.cke_hc a.cke_dialog_tab:focus{text-decoration:underline}a.cke_dialog_tab_disabled{color:#bababa;cursor:default}.cke_single_page .cke_dialog_tabs{display:none}.cke_single_page .cke_dialog_contents{padding-top:5px;margin-top:0;border-top:0}a.cke_dialog_close_button{background-image:url(images/close.png);background-repeat:no-repeat;background-position:50%;position:absolute;cursor:pointer;text-align:center;height:16px;width:16px;top:11px;z-index:5;opacity:.7;filter:alpha(opacity = 70)}.cke_rtl .cke_dialog_close_button{left:12px}.cke_ltr .cke_dialog_close_button{right:12px}.cke_hc a.cke_dialog_close_button{background-image:none}.cke_hidpi a.cke_dialog_close_button{background-image:url(images/hidpi/close.png);background-size:16px}a.cke_dialog_close_button:hover{opacity:1;filter:alpha(opacity = 100)}a.cke_dialog_close_button span{display:none}.cke_hc a.cke_dialog_close_button span{display:inline;cursor:pointer;font-weight:bold;position:relative;top:3px}div.cke_disabled .cke_dialog_ui_labeled_content div *{background-color:#ddd;cursor:default}.cke_dialog_ui_vbox table,.cke_dialog_ui_hbox table{margin:auto}.cke_dialog_ui_vbox_child{padding:5px 0}.cke_dialog_ui_hbox{width:100%;margin-top:12px}.cke_dialog_ui_hbox_first,.cke_dialog_ui_hbox_child,.cke_dialog_ui_hbox_last{vertical-align:top}.cke_ltr .cke_dialog_ui_hbox_first,.cke_ltr .cke_dialog_ui_hbox_child{padding-right:10px}.cke_rtl .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_ui_hbox_child{padding-left:10px}.cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first,.cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child{padding-right:5px}.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child{padding-left:5px;padding-right:0}.cke_hc div.cke_dialog_ui_input_text,.cke_hc div.cke_dialog_ui_input_password,.cke_hc div.cke_dialog_ui_input_tel,.cke_hc div.cke_dialog_ui_input_textarea,.cke_hc div.cke_dialog_ui_input_select,.cke_hc div.cke_dialog_ui_input_file{border:1px solid}textarea.cke_dialog_ui_input_textarea{overflow:auto;resize:none}input.cke_dialog_ui_input_text,input.cke_dialog_ui_input_password,input.cke_dialog_ui_input_tel,textarea.cke_dialog_ui_input_textarea{background-color:#fff;border:1px solid #bcbcbc;padding:4px 6px;outline:0;width:100%;*width:95%;box-sizing:border-box;border-radius:2px;min-height:28px;margin-left:1px}input.cke_dialog_ui_input_text:hover,input.cke_dialog_ui_input_password:hover,input.cke_dialog_ui_input_tel:hover,textarea.cke_dialog_ui_input_textarea:hover{border:1px solid #aeb3b9}input.cke_dialog_ui_input_text:focus,input.cke_dialog_ui_input_password:focus,input.cke_dialog_ui_input_tel:focus,textarea.cke_dialog_ui_input_textarea:focus,select.cke_dialog_ui_input_select:focus{outline:0;border:2px solid #139ff7}input.cke_dialog_ui_input_text:focus{padding-left:5px}textarea.cke_dialog_ui_input_textarea:focus{padding:3px 5px}select.cke_dialog_ui_input_select:focus{margin:0;width:100%!important}input.cke_dialog_ui_checkbox_input,input.cke_dialog_ui_radio_input{margin-left:1px;margin-right:2px}input.cke_dialog_ui_checkbox_input:focus,input.cke_dialog_ui_checkbox_input:active,input.cke_dialog_ui_radio_input:focus,input.cke_dialog_ui_radio_input:active{border:0;outline:2px solid #139ff7}a.cke_dialog_ui_button{display:inline-block;*display:inline;*zoom:1;padding:4px 1px;margin:0;text-align:center;color:#484848;vertical-align:middle;cursor:pointer;border:1px solid #bcbcbc;border-radius:2px;background:#f8f8f8;letter-spacing:.3px;line-height:18px;box-sizing:border-box}.cke_hc a.cke_dialog_ui_button{border-width:3px}span.cke_dialog_ui_button{padding:0 10px;cursor:pointer}a.cke_dialog_ui_button:hover{background:#fff}a.cke_dialog_ui_button:focus,a.cke_dialog_ui_button:active{border:2px solid #139ff7;outline:0;padding:3px 0}.cke_hc a.cke_dialog_ui_button:hover,.cke_hc a.cke_dialog_ui_button:focus,.cke_hc a.cke_dialog_ui_button:active{border:3px solid}.cke_dialog_footer_buttons a.cke_dialog_ui_button span{color:inherit;font-size:12px;font-weight:bold;padding:0 12px}a.cke_dialog_ui_button_ok{color:#fff;background:#09863e;border:1px solid #09863e}.cke_hc a.cke_dialog_ui_button{border:1px solid #bcbcbc}a.cke_dialog_ui_button_ok:hover{background:#53aa78;border-color:#53aa78}a.cke_dialog_ui_button_ok:focus{box-shadow:inset 0 0 0 2px #FFF}a.cke_dialog_ui_button_ok:focus,a.cke_dialog_ui_button_ok:active{border-color:#139ff7}.cke_hc a.cke_dialog_ui_button_ok:hover,.cke_hc a.cke_dialog_ui_button_ok:focus,.cke_hc a.cke_dialog_ui_button_ok:active{border-color:#484848}a.cke_dialog_ui_button_ok.cke_disabled{background:#d1d1d1;border-color:#d1d1d1;cursor:default}a.cke_dialog_ui_button_ok.cke_disabled span{cursor:default}.cke_dialog_footer_buttons{display:inline-table;margin:5px;width:auto;position:relative;vertical-align:middle}div.cke_dialog_ui_input_select{display:table}select.cke_dialog_ui_input_select{height:28px;line-height:28px;background-color:#fff;border:1px solid #bcbcbc;padding:3px 3px 3px 6px;outline:0;border-radius:2px;margin:0 1px;box-sizing:border-box;width:calc(100% - 2px)!important}.cke_dialog_ui_input_file{width:100%;height:25px}.cke_hc .cke_dialog_ui_labeled_content input:focus,.cke_hc .cke_dialog_ui_labeled_content select:focus,.cke_hc .cke_dialog_ui_labeled_content textarea:focus{outline:1px dotted}.cke_dialog_ui_labeled_label{margin-left:1px}.cke_dialog_ui_labeled_required{font-weight:bold;font-size:1.2em}.cke_dialog .cke_dark_background{background-color:transparent}.cke_dialog .cke_light_background{background-color:#ebebeb}.cke_dialog .cke_centered{text-align:center}.cke_dialog a.cke_btn_reset{float:right;background:url(images/refresh.png) top left no-repeat;width:16px;height:16px;border:1px none;font-size:1px}.cke_hidpi .cke_dialog a.cke_btn_reset{background-size:16px;background-image:url(images/hidpi/refresh.png)}.cke_rtl .cke_dialog a.cke_btn_reset{float:left}.cke_dialog a.cke_btn_locked,.cke_dialog a.cke_btn_unlocked{float:left;width:16px;height:16px;background-repeat:no-repeat;border:none 1px;font-size:1px}.cke_dialog a.cke_btn_locked,.cke_dialog a.cke_btn_unlocked,.cke_dialog a.cke_btn_reset{margin:2px}.cke_dialog a.cke_btn_locked{background-image:url(images/lock.png)}.cke_dialog a.cke_btn_unlocked{background-image:url(images/lock-open.png)}.cke_rtl .cke_dialog a.cke_btn_locked,.cke_rtl .cke_dialog a.cke_btn_unlocked{float:right}.cke_hidpi .cke_dialog a.cke_btn_unlocked,.cke_hidpi .cke_dialog a.cke_btn_locked{background-size:16px}.cke_hidpi .cke_dialog a.cke_btn_locked{background-image:url(images/hidpi/lock.png)}.cke_hidpi .cke_dialog a.cke_btn_unlocked{background-image:url(images/hidpi/lock-open.png)}.cke_dialog a.cke_btn_locked .cke_icon{display:none}.cke_dialog a.cke_btn_over,.cke_dialog a.cke_btn_locked:hover,.cke_dialog a.cke_btn_locked:focus,.cke_dialog a.cke_btn_locked:active,.cke_dialog a.cke_btn_unlocked:hover,.cke_dialog a.cke_btn_unlocked:focus,.cke_dialog a.cke_btn_unlocked:active,.cke_dialog a.cke_btn_reset:hover,.cke_dialog a.cke_btn_reset:focus,.cke_dialog a.cke_btn_reset:active{cursor:pointer;outline:0;margin:0;border:2px solid #139ff7}.cke_dialog fieldset{border:1px solid #bcbcbc}.cke_dialog fieldset legend{padding:0 6px}.cke_dialog_ui_checkbox,.cke_dialog fieldset .cke_dialog_ui_vbox .cke_dialog_ui_checkbox{display:inline-block}.cke_dialog fieldset .cke_dialog_ui_vbox .cke_dialog_ui_checkbox{padding-top:5px}.cke_dialog_ui_checkbox .cke_dialog_ui_checkbox_input,.cke_dialog_ui_checkbox .cke_dialog_ui_checkbox_input+label,.cke_dialog fieldset .cke_dialog_ui_vbox .cke_dialog_ui_checkbox .cke_dialog_ui_checkbox_input,.cke_dialog fieldset .cke_dialog_ui_vbox .cke_dialog_ui_checkbox .cke_dialog_ui_checkbox_input+label{vertical-align:middle}.cke_dialog .ImagePreviewBox{border:1px ridge #bcbcbc;overflow:scroll;height:200px;width:300px;padding:2px;background-color:white}.cke_dialog .ImagePreviewBox table td{white-space:normal}.cke_dialog .ImagePreviewLoader{position:absolute;white-space:normal;overflow:hidden;height:160px;width:230px;margin:2px;padding:2px;opacity:.9;filter:alpha(opacity = 90);background-color:#e4e4e4}.cke_dialog .cke_pastetext{width:346px;height:170px}.cke_dialog .cke_pastetext textarea{width:340px;height:170px;resize:none}.cke_dialog iframe.cke_pasteframe{width:346px;height:130px;background-color:white;border:1px solid #aeb3b9;border-radius:3px}.cke_dialog .cke_hand{cursor:pointer}.cke_disabled{color:#a0a0a0}.cke_dialog_body .cke_label{display:none}.cke_dialog_body label{display:inline;cursor:default;letter-spacing:.3px}.cke_dialog_body label+.cke_dialog_ui_labeled_content{margin-top:2px}.cke_dialog_contents_body .cke_dialog_ui_text,.cke_dialog_contents_body .cke_dialog_ui_select,.cke_dialog_contents_body .cke_dialog_ui_hbox_last>a.cke_dialog_ui_button{margin-top:4px}a.cke_smile{overflow:hidden;display:block;text-align:center;padding:.3em 0}a.cke_smile img{vertical-align:middle}a.cke_specialchar{cursor:inherit;display:block;height:1.25em;padding:.2em .3em;text-align:center}a.cke_smile,a.cke_specialchar{border:2px solid transparent}a.cke_smile:hover,a.cke_smile:focus,a.cke_smile:active,a.cke_specialchar:hover,a.cke_specialchar:focus,a.cke_specialchar:active{background:#fff;outline:0}a.cke_smile:hover,a.cke_specialchar:hover{border-color:#888}a.cke_smile:focus,a.cke_smile:active,a.cke_specialchar:focus,a.cke_specialchar:active{border-color:#139ff7}.cke_dialog_contents a.colorChooser{display:block;margin-top:6px;margin-left:10px;width:80px}.cke_rtl .cke_dialog_contents a.colorChooser{margin-right:10px}.cke_iframe_shim{display:block;position:absolute;top:0;left:0;z-index:-1;filter:alpha(opacity = 0);width:100%;height:100%}.cke_dialog_contents_body .cke_accessibility_legend{margin:2px 7px 2px 2px}.cke_dialog_contents_body .cke_accessibility_legend:focus,.cke_dialog_contents_body .cke_accessibility_legend:active{outline:0;border:2px solid #139ff7;margin:0 5px 0 0}.cke_dialog_contents_body input[type=file]:focus,.cke_dialog_contents_body input[type=file]:active{border:2px solid #139ff7}.cke_dialog_find_fieldset{margin-top:10px!important}.cke_dialog_image_ratiolock{margin-top:52px!important}.cke_dialog_forms_select_order label.cke_dialog_ui_labeled_label{margin-left:0}.cke_dialog_forms_select_order div.cke_dialog_ui_input_select{width:100%}.cke_dialog_forms_select_order_txtsize .cke_dialog_ui_hbox_last{padding-top:4px}.cke_dialog_image_url .cke_dialog_ui_hbox_last{vertical-align:bottom}a.cke_dialog_ui_button.cke_dialog_image_browse{margin-top:10px}.cke_dialog_contents_body .cke_tpl_list{border:#bcbcbc 1px solid;margin:1px}.cke_dialog_contents_body .cke_tpl_list:focus,.cke_dialog_contents_body .cke_tpl_list:active{outline:0;margin:0;border:2px solid #139ff7}.cke_dialog_contents_body .cke_tpl_list a:focus,.cke_dialog_contents_body .cke_tpl_list a:active{outline:0}.cke_dialog_contents_body .cke_tpl_list a:focus .cke_tpl_item,.cke_dialog_contents_body .cke_tpl_list a:active .cke_tpl_item{border:2px solid #139ff7;padding:6px}.cke_rtl input.cke_dialog_ui_input_text,.cke_rtl input.cke_dialog_ui_input_password,.cke_rtl input.cke_dialog_ui_input_tel{padding-right:2px}.cke_rtl div.cke_dialog_ui_input_text,.cke_rtl div.cke_dialog_ui_input_password,.cke_rtl div.cke_dialog_ui_input_tel{padding-left:2px}.cke_rtl div.cke_dialog_ui_input_text{padding-right:1px}.cke_rtl .cke_dialog_ui_vbox_child,.cke_rtl .cke_dialog_ui_hbox_child,.cke_rtl .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_ui_hbox_last{padding-right:2px!important}.cke_hc .cke_dialog_title,.cke_hc .cke_dialog_footer,.cke_hc a.cke_dialog_tab,.cke_hc a.cke_dialog_ui_button,.cke_hc a.cke_dialog_ui_button:hover,.cke_hc a.cke_dialog_ui_button_ok,.cke_hc a.cke_dialog_ui_button_ok:hover{filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.cke_hc div.cke_dialog_ui_input_text,.cke_hc div.cke_dialog_ui_input_password,.cke_hc div.cke_dialog_ui_input_tel,.cke_hc div.cke_dialog_ui_input_textarea,.cke_hc div.cke_dialog_ui_input_select,.cke_hc div.cke_dialog_ui_input_file{border:0}a.cke_dialog_ui_button{min-height:18px}input.cke_dialog_ui_input_text,input.cke_dialog_ui_input_password,input.cke_dialog_ui_input_tel,textarea.cke_dialog_ui_input_textarea{min-height:18px}input.cke_dialog_ui_input_text:focus,input.cke_dialog_ui_input_password:focus,input.cke_dialog_ui_input_tel:focus,textarea.cke_dialog_ui_input_textarea:focus{padding-top:4px;padding-bottom:2px}select.cke_dialog_ui_input_select{width:100%!important}select.cke_dialog_ui_input_select:focus{margin-left:1px;width:100%!important;padding-top:2px;padding-bottom:2px}
\ No newline at end of file
diff --git a/web/modules/ckeditor/vendor/skins/moono-lisa/dialog_iequirks.css b/web/modules/ckeditor/vendor/skins/moono-lisa/dialog_iequirks.css
deleted file mode 100644
index a9a450db99a542ed1d2272673696259cd445365e..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/skins/moono-lisa/dialog_iequirks.css
+++ /dev/null
@@ -1,5 +0,0 @@
-/*
-Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
-For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
-*/
-.cke_dialog{visibility:visible}.cke_dialog_body{z-index:1;background:#fff}.cke_dialog strong{font-weight:bold}.cke_dialog_title{font-weight:bold;font-size:12px;cursor:move;position:relative;color:#484848;border-bottom:1px solid #d1d1d1;padding:12px 19px 12px 12px;background:#f8f8f8;letter-spacing:.3px}.cke_dialog_spinner{border-radius:50%;width:12px;height:12px;overflow:hidden;text-indent:-9999em;border:2px solid rgba(102,102,102,0.2);border-left-color:rgba(102,102,102,1);-webkit-animation:dialog_spinner 1s infinite linear;animation:dialog_spinner 1s infinite linear}.cke_browser_ie8 .cke_dialog_spinner,.cke_browser_ie9 .cke_dialog_spinner{background:url(images/spinner.gif) center top no-repeat;width:16px;height:16px;border:0}@-webkit-keyframes dialog_spinner{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes dialog_spinner{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.cke_dialog_contents{background-color:#fff;overflow:auto;padding:15px 10px 5px 10px;margin-top:43px;border-top:1px solid #d1d1d1}.cke_dialog_contents_body{overflow:auto;padding:9px 10px 5px 10px;margin-top:22px}.cke_dialog_footer{text-align:right;position:relative;border-top:1px solid #d1d1d1;background:#f8f8f8}.cke_rtl .cke_dialog_footer{text-align:left}.cke_hc .cke_dialog_footer{outline:0;border-top:1px solid #fff}.cke_dialog .cke_resizer{margin-top:22px}.cke_dialog .cke_resizer_rtl{margin-left:5px}.cke_dialog .cke_resizer_ltr{margin-right:5px}.cke_dialog_tabs{height:33px;display:inline-block;margin:9px 0 0;position:absolute;z-index:2;left:11px}.cke_rtl .cke_dialog_tabs{left:auto;right:11px}a.cke_dialog_tab{height:25px;padding:4px 8px;display:inline-block;cursor:pointer;line-height:26px;outline:0;color:#484848;border:1px solid #d1d1d1;border-radius:3px 3px 0 0;background:#f8f8f8;min-width:90px;text-align:center;margin-left:-1px;letter-spacing:.3px}a.cke_dialog_tab:hover{background-color:#fff}a.cke_dialog_tab:focus{border:2px solid #139ff7;border-bottom-color:#d1d1d1;padding:3px 7px;position:relative;z-index:1}a.cke_dialog_tab_selected{background:#fff;border-bottom-color:#fff;cursor:default;filter:none}a.cke_dialog_tab_selected:hover,a.cke_dialog_tab_selected:focus{border-bottom-color:#fff}.cke_hc a.cke_dialog_tab:hover,.cke_hc a.cke_dialog_tab:focus,.cke_hc a.cke_dialog_tab_selected{border:3px solid;padding:2px 6px}.cke_hc a.cke_dialog_tab:focus{text-decoration:underline}a.cke_dialog_tab_disabled{color:#bababa;cursor:default}.cke_single_page .cke_dialog_tabs{display:none}.cke_single_page .cke_dialog_contents{padding-top:5px;margin-top:0;border-top:0}a.cke_dialog_close_button{background-image:url(images/close.png);background-repeat:no-repeat;background-position:50%;position:absolute;cursor:pointer;text-align:center;height:16px;width:16px;top:11px;z-index:5;opacity:.7;filter:alpha(opacity = 70)}.cke_rtl .cke_dialog_close_button{left:12px}.cke_ltr .cke_dialog_close_button{right:12px}.cke_hc a.cke_dialog_close_button{background-image:none}.cke_hidpi a.cke_dialog_close_button{background-image:url(images/hidpi/close.png);background-size:16px}a.cke_dialog_close_button:hover{opacity:1;filter:alpha(opacity = 100)}a.cke_dialog_close_button span{display:none}.cke_hc a.cke_dialog_close_button span{display:inline;cursor:pointer;font-weight:bold;position:relative;top:3px}div.cke_disabled .cke_dialog_ui_labeled_content div *{background-color:#ddd;cursor:default}.cke_dialog_ui_vbox table,.cke_dialog_ui_hbox table{margin:auto}.cke_dialog_ui_vbox_child{padding:5px 0}.cke_dialog_ui_hbox{width:100%;margin-top:12px}.cke_dialog_ui_hbox_first,.cke_dialog_ui_hbox_child,.cke_dialog_ui_hbox_last{vertical-align:top}.cke_ltr .cke_dialog_ui_hbox_first,.cke_ltr .cke_dialog_ui_hbox_child{padding-right:10px}.cke_rtl .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_ui_hbox_child{padding-left:10px}.cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first,.cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child{padding-right:5px}.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child{padding-left:5px;padding-right:0}.cke_hc div.cke_dialog_ui_input_text,.cke_hc div.cke_dialog_ui_input_password,.cke_hc div.cke_dialog_ui_input_tel,.cke_hc div.cke_dialog_ui_input_textarea,.cke_hc div.cke_dialog_ui_input_select,.cke_hc div.cke_dialog_ui_input_file{border:1px solid}textarea.cke_dialog_ui_input_textarea{overflow:auto;resize:none}input.cke_dialog_ui_input_text,input.cke_dialog_ui_input_password,input.cke_dialog_ui_input_tel,textarea.cke_dialog_ui_input_textarea{background-color:#fff;border:1px solid #bcbcbc;padding:4px 6px;outline:0;width:100%;*width:95%;box-sizing:border-box;border-radius:2px;min-height:28px;margin-left:1px}input.cke_dialog_ui_input_text:hover,input.cke_dialog_ui_input_password:hover,input.cke_dialog_ui_input_tel:hover,textarea.cke_dialog_ui_input_textarea:hover{border:1px solid #aeb3b9}input.cke_dialog_ui_input_text:focus,input.cke_dialog_ui_input_password:focus,input.cke_dialog_ui_input_tel:focus,textarea.cke_dialog_ui_input_textarea:focus,select.cke_dialog_ui_input_select:focus{outline:0;border:2px solid #139ff7}input.cke_dialog_ui_input_text:focus{padding-left:5px}textarea.cke_dialog_ui_input_textarea:focus{padding:3px 5px}select.cke_dialog_ui_input_select:focus{margin:0;width:100%!important}input.cke_dialog_ui_checkbox_input,input.cke_dialog_ui_radio_input{margin-left:1px;margin-right:2px}input.cke_dialog_ui_checkbox_input:focus,input.cke_dialog_ui_checkbox_input:active,input.cke_dialog_ui_radio_input:focus,input.cke_dialog_ui_radio_input:active{border:0;outline:2px solid #139ff7}a.cke_dialog_ui_button{display:inline-block;*display:inline;*zoom:1;padding:4px 1px;margin:0;text-align:center;color:#484848;vertical-align:middle;cursor:pointer;border:1px solid #bcbcbc;border-radius:2px;background:#f8f8f8;letter-spacing:.3px;line-height:18px;box-sizing:border-box}.cke_hc a.cke_dialog_ui_button{border-width:3px}span.cke_dialog_ui_button{padding:0 10px;cursor:pointer}a.cke_dialog_ui_button:hover{background:#fff}a.cke_dialog_ui_button:focus,a.cke_dialog_ui_button:active{border:2px solid #139ff7;outline:0;padding:3px 0}.cke_hc a.cke_dialog_ui_button:hover,.cke_hc a.cke_dialog_ui_button:focus,.cke_hc a.cke_dialog_ui_button:active{border:3px solid}.cke_dialog_footer_buttons a.cke_dialog_ui_button span{color:inherit;font-size:12px;font-weight:bold;padding:0 12px}a.cke_dialog_ui_button_ok{color:#fff;background:#09863e;border:1px solid #09863e}.cke_hc a.cke_dialog_ui_button{border:1px solid #bcbcbc}a.cke_dialog_ui_button_ok:hover{background:#53aa78;border-color:#53aa78}a.cke_dialog_ui_button_ok:focus{box-shadow:inset 0 0 0 2px #FFF}a.cke_dialog_ui_button_ok:focus,a.cke_dialog_ui_button_ok:active{border-color:#139ff7}.cke_hc a.cke_dialog_ui_button_ok:hover,.cke_hc a.cke_dialog_ui_button_ok:focus,.cke_hc a.cke_dialog_ui_button_ok:active{border-color:#484848}a.cke_dialog_ui_button_ok.cke_disabled{background:#d1d1d1;border-color:#d1d1d1;cursor:default}a.cke_dialog_ui_button_ok.cke_disabled span{cursor:default}.cke_dialog_footer_buttons{display:inline-table;margin:5px;width:auto;position:relative;vertical-align:middle}div.cke_dialog_ui_input_select{display:table}select.cke_dialog_ui_input_select{height:28px;line-height:28px;background-color:#fff;border:1px solid #bcbcbc;padding:3px 3px 3px 6px;outline:0;border-radius:2px;margin:0 1px;box-sizing:border-box;width:calc(100% - 2px)!important}.cke_dialog_ui_input_file{width:100%;height:25px}.cke_hc .cke_dialog_ui_labeled_content input:focus,.cke_hc .cke_dialog_ui_labeled_content select:focus,.cke_hc .cke_dialog_ui_labeled_content textarea:focus{outline:1px dotted}.cke_dialog_ui_labeled_label{margin-left:1px}.cke_dialog_ui_labeled_required{font-weight:bold;font-size:1.2em}.cke_dialog .cke_dark_background{background-color:transparent}.cke_dialog .cke_light_background{background-color:#ebebeb}.cke_dialog .cke_centered{text-align:center}.cke_dialog a.cke_btn_reset{float:right;background:url(images/refresh.png) top left no-repeat;width:16px;height:16px;border:1px none;font-size:1px}.cke_hidpi .cke_dialog a.cke_btn_reset{background-size:16px;background-image:url(images/hidpi/refresh.png)}.cke_rtl .cke_dialog a.cke_btn_reset{float:left}.cke_dialog a.cke_btn_locked,.cke_dialog a.cke_btn_unlocked{float:left;width:16px;height:16px;background-repeat:no-repeat;border:none 1px;font-size:1px}.cke_dialog a.cke_btn_locked,.cke_dialog a.cke_btn_unlocked,.cke_dialog a.cke_btn_reset{margin:2px}.cke_dialog a.cke_btn_locked{background-image:url(images/lock.png)}.cke_dialog a.cke_btn_unlocked{background-image:url(images/lock-open.png)}.cke_rtl .cke_dialog a.cke_btn_locked,.cke_rtl .cke_dialog a.cke_btn_unlocked{float:right}.cke_hidpi .cke_dialog a.cke_btn_unlocked,.cke_hidpi .cke_dialog a.cke_btn_locked{background-size:16px}.cke_hidpi .cke_dialog a.cke_btn_locked{background-image:url(images/hidpi/lock.png)}.cke_hidpi .cke_dialog a.cke_btn_unlocked{background-image:url(images/hidpi/lock-open.png)}.cke_dialog a.cke_btn_locked .cke_icon{display:none}.cke_dialog a.cke_btn_over,.cke_dialog a.cke_btn_locked:hover,.cke_dialog a.cke_btn_locked:focus,.cke_dialog a.cke_btn_locked:active,.cke_dialog a.cke_btn_unlocked:hover,.cke_dialog a.cke_btn_unlocked:focus,.cke_dialog a.cke_btn_unlocked:active,.cke_dialog a.cke_btn_reset:hover,.cke_dialog a.cke_btn_reset:focus,.cke_dialog a.cke_btn_reset:active{cursor:pointer;outline:0;margin:0;border:2px solid #139ff7}.cke_dialog fieldset{border:1px solid #bcbcbc}.cke_dialog fieldset legend{padding:0 6px}.cke_dialog_ui_checkbox,.cke_dialog fieldset .cke_dialog_ui_vbox .cke_dialog_ui_checkbox{display:inline-block}.cke_dialog fieldset .cke_dialog_ui_vbox .cke_dialog_ui_checkbox{padding-top:5px}.cke_dialog_ui_checkbox .cke_dialog_ui_checkbox_input,.cke_dialog_ui_checkbox .cke_dialog_ui_checkbox_input+label,.cke_dialog fieldset .cke_dialog_ui_vbox .cke_dialog_ui_checkbox .cke_dialog_ui_checkbox_input,.cke_dialog fieldset .cke_dialog_ui_vbox .cke_dialog_ui_checkbox .cke_dialog_ui_checkbox_input+label{vertical-align:middle}.cke_dialog .ImagePreviewBox{border:1px ridge #bcbcbc;overflow:scroll;height:200px;width:300px;padding:2px;background-color:white}.cke_dialog .ImagePreviewBox table td{white-space:normal}.cke_dialog .ImagePreviewLoader{position:absolute;white-space:normal;overflow:hidden;height:160px;width:230px;margin:2px;padding:2px;opacity:.9;filter:alpha(opacity = 90);background-color:#e4e4e4}.cke_dialog .cke_pastetext{width:346px;height:170px}.cke_dialog .cke_pastetext textarea{width:340px;height:170px;resize:none}.cke_dialog iframe.cke_pasteframe{width:346px;height:130px;background-color:white;border:1px solid #aeb3b9;border-radius:3px}.cke_dialog .cke_hand{cursor:pointer}.cke_disabled{color:#a0a0a0}.cke_dialog_body .cke_label{display:none}.cke_dialog_body label{display:inline;cursor:default;letter-spacing:.3px}.cke_dialog_body label+.cke_dialog_ui_labeled_content{margin-top:2px}.cke_dialog_contents_body .cke_dialog_ui_text,.cke_dialog_contents_body .cke_dialog_ui_select,.cke_dialog_contents_body .cke_dialog_ui_hbox_last>a.cke_dialog_ui_button{margin-top:4px}a.cke_smile{overflow:hidden;display:block;text-align:center;padding:.3em 0}a.cke_smile img{vertical-align:middle}a.cke_specialchar{cursor:inherit;display:block;height:1.25em;padding:.2em .3em;text-align:center}a.cke_smile,a.cke_specialchar{border:2px solid transparent}a.cke_smile:hover,a.cke_smile:focus,a.cke_smile:active,a.cke_specialchar:hover,a.cke_specialchar:focus,a.cke_specialchar:active{background:#fff;outline:0}a.cke_smile:hover,a.cke_specialchar:hover{border-color:#888}a.cke_smile:focus,a.cke_smile:active,a.cke_specialchar:focus,a.cke_specialchar:active{border-color:#139ff7}.cke_dialog_contents a.colorChooser{display:block;margin-top:6px;margin-left:10px;width:80px}.cke_rtl .cke_dialog_contents a.colorChooser{margin-right:10px}.cke_iframe_shim{display:block;position:absolute;top:0;left:0;z-index:-1;filter:alpha(opacity = 0);width:100%;height:100%}.cke_dialog_contents_body .cke_accessibility_legend{margin:2px 7px 2px 2px}.cke_dialog_contents_body .cke_accessibility_legend:focus,.cke_dialog_contents_body .cke_accessibility_legend:active{outline:0;border:2px solid #139ff7;margin:0 5px 0 0}.cke_dialog_contents_body input[type=file]:focus,.cke_dialog_contents_body input[type=file]:active{border:2px solid #139ff7}.cke_dialog_find_fieldset{margin-top:10px!important}.cke_dialog_image_ratiolock{margin-top:52px!important}.cke_dialog_forms_select_order label.cke_dialog_ui_labeled_label{margin-left:0}.cke_dialog_forms_select_order div.cke_dialog_ui_input_select{width:100%}.cke_dialog_forms_select_order_txtsize .cke_dialog_ui_hbox_last{padding-top:4px}.cke_dialog_image_url .cke_dialog_ui_hbox_last{vertical-align:bottom}a.cke_dialog_ui_button.cke_dialog_image_browse{margin-top:10px}.cke_dialog_contents_body .cke_tpl_list{border:#bcbcbc 1px solid;margin:1px}.cke_dialog_contents_body .cke_tpl_list:focus,.cke_dialog_contents_body .cke_tpl_list:active{outline:0;margin:0;border:2px solid #139ff7}.cke_dialog_contents_body .cke_tpl_list a:focus,.cke_dialog_contents_body .cke_tpl_list a:active{outline:0}.cke_dialog_contents_body .cke_tpl_list a:focus .cke_tpl_item,.cke_dialog_contents_body .cke_tpl_list a:active .cke_tpl_item{border:2px solid #139ff7;padding:6px}.cke_rtl input.cke_dialog_ui_input_text,.cke_rtl input.cke_dialog_ui_input_password,.cke_rtl input.cke_dialog_ui_input_tel{padding-right:2px}.cke_rtl div.cke_dialog_ui_input_text,.cke_rtl div.cke_dialog_ui_input_password,.cke_rtl div.cke_dialog_ui_input_tel{padding-left:2px}.cke_rtl div.cke_dialog_ui_input_text{padding-right:1px}.cke_rtl .cke_dialog_ui_vbox_child,.cke_rtl .cke_dialog_ui_hbox_child,.cke_rtl .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_ui_hbox_last{padding-right:2px!important}.cke_hc .cke_dialog_title,.cke_hc .cke_dialog_footer,.cke_hc a.cke_dialog_tab,.cke_hc a.cke_dialog_ui_button,.cke_hc a.cke_dialog_ui_button:hover,.cke_hc a.cke_dialog_ui_button_ok,.cke_hc a.cke_dialog_ui_button_ok:hover{filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.cke_hc div.cke_dialog_ui_input_text,.cke_hc div.cke_dialog_ui_input_password,.cke_hc div.cke_dialog_ui_input_tel,.cke_hc div.cke_dialog_ui_input_textarea,.cke_hc div.cke_dialog_ui_input_select,.cke_hc div.cke_dialog_ui_input_file{border:0}.cke_dialog_footer{filter:""}
\ No newline at end of file
diff --git a/web/modules/ckeditor/vendor/skins/moono-lisa/editor.css b/web/modules/ckeditor/vendor/skins/moono-lisa/editor.css
deleted file mode 100644
index 3af3ce2777576ab87e22c58d765022bcf3f17a34..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/skins/moono-lisa/editor.css
+++ /dev/null
@@ -1,5 +0,0 @@
-/*
-Copyright (c) 2003-2022, CKSource Holding sp. z o.o. 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 select[multiple] option:checked{background-color:#cecece}.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}@media screen and (hover:none){a.cke_button_off:hover{background:transparent;border:0;padding:4px 6px}a.cke_button_expandable.cke_button_off:hover{padding:4px 5px}a.cke_button_off:active{background:#e5e5e5;border:1px #bcbcbc solid;padding:3px 5px}a.cke_button_expandable.cke_button_off:active{padding:3px 4px}}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}@media screen and (hover:none){.cke_combo_off a.cke_combo_button:hover{background:transparent;border-color:transparent}.cke_combo_off a.cke_combo_button:active{background:#fff;border:1px solid #bcbcbc}}.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=M2GD) no-repeat 0 -0px!important}.cke_button__bold_icon{background:url(icons.png?t=M2GD) no-repeat 0 -24px!important}.cke_button__italic_icon{background:url(icons.png?t=M2GD) no-repeat 0 -48px!important}.cke_button__strike_icon{background:url(icons.png?t=M2GD) no-repeat 0 -72px!important}.cke_button__subscript_icon{background:url(icons.png?t=M2GD) no-repeat 0 -96px!important}.cke_button__superscript_icon{background:url(icons.png?t=M2GD) no-repeat 0 -120px!important}.cke_button__underline_icon{background:url(icons.png?t=M2GD) no-repeat 0 -144px!important}.cke_button__blockquote_icon{background:url(icons.png?t=M2GD) 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=M2GD) no-repeat 0 -192px!important}.cke_ltr .cke_button__copy_icon{background:url(icons.png?t=M2GD) 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=M2GD) no-repeat 0 -240px!important}.cke_ltr .cke_button__cut_icon{background:url(icons.png?t=M2GD) 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=M2GD) no-repeat 0 -288px!important}.cke_ltr .cke_button__paste_icon{background:url(icons.png?t=M2GD) no-repeat 0 -312px!important}.cke_button__horizontalrule_icon{background:url(icons.png?t=M2GD) no-repeat 0 -336px!important}.cke_button__image_icon{background:url(icons.png?t=M2GD) 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=M2GD) no-repeat 0 -384px!important}.cke_ltr .cke_button__indent_icon{background:url(icons.png?t=M2GD) 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=M2GD) no-repeat 0 -432px!important}.cke_ltr .cke_button__outdent_icon{background:url(icons.png?t=M2GD) no-repeat 0 -456px!important}.cke_button__justifyblock_icon{background:url(icons.png?t=M2GD) no-repeat 0 -480px!important}.cke_button__justifycenter_icon{background:url(icons.png?t=M2GD) no-repeat 0 -504px!important}.cke_button__justifyleft_icon{background:url(icons.png?t=M2GD) no-repeat 0 -528px!important}.cke_button__justifyright_icon{background:url(icons.png?t=M2GD) no-repeat 0 -552px!important}.cke_button__language_icon{background:url(icons.png?t=M2GD) 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=M2GD) no-repeat 0 -600px!important}.cke_ltr .cke_button__bulletedlist_icon{background:url(icons.png?t=M2GD) 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=M2GD) no-repeat 0 -648px!important}.cke_ltr .cke_button__numberedlist_icon{background:url(icons.png?t=M2GD) no-repeat 0 -672px!important}.cke_button__maximize_icon{background:url(icons.png?t=M2GD) 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=M2GD) no-repeat 0 -720px!important}.cke_ltr .cke_button__pastefromword_icon{background:url(icons.png?t=M2GD) 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=M2GD) no-repeat 0 -768px!important}.cke_ltr .cke_button__pastetext_icon{background:url(icons.png?t=M2GD) no-repeat 0 -792px!important}.cke_button__removeformat_icon{background:url(icons.png?t=M2GD) 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=M2GD) no-repeat 0 -840px!important}.cke_ltr .cke_button__showblocks_icon{background:url(icons.png?t=M2GD) 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=M2GD) no-repeat 0 -888px!important}.cke_ltr .cke_button__source_icon{background:url(icons.png?t=M2GD) 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=M2GD) no-repeat 0 -936px!important}.cke_ltr .cke_button__sourcedialog_icon{background:url(icons.png?t=M2GD) no-repeat 0 -960px!important}.cke_button__specialchar_icon{background:url(icons.png?t=M2GD) no-repeat 0 -984px!important}.cke_button__table_icon{background:url(icons.png?t=M2GD) 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=M2GD) no-repeat 0 -1032px!important}.cke_ltr .cke_button__redo_icon{background:url(icons.png?t=M2GD) 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=M2GD) no-repeat 0 -1080px!important}.cke_ltr .cke_button__undo_icon{background:url(icons.png?t=M2GD) no-repeat 0 -1104px!important}.cke_button__simplebox_icon{background:url(icons.png?t=M2GD) no-repeat 0 -1128px!important}.cke_hidpi .cke_button__about_icon{background:url(icons_hidpi.png?t=M2GD) no-repeat 0 -0px!important;background-size:16px!important}.cke_hidpi .cke_button__bold_icon{background:url(icons_hidpi.png?t=M2GD) no-repeat 0 -24px!important;background-size:16px!important}.cke_hidpi .cke_button__italic_icon{background:url(icons_hidpi.png?t=M2GD) no-repeat 0 -48px!important;background-size:16px!important}.cke_hidpi .cke_button__strike_icon{background:url(icons_hidpi.png?t=M2GD) no-repeat 0 -72px!important;background-size:16px!important}.cke_hidpi .cke_button__subscript_icon{background:url(icons_hidpi.png?t=M2GD) no-repeat 0 -96px!important;background-size:16px!important}.cke_hidpi .cke_button__superscript_icon{background:url(icons_hidpi.png?t=M2GD) no-repeat 0 -120px!important;background-size:16px!important}.cke_hidpi .cke_button__underline_icon{background:url(icons_hidpi.png?t=M2GD) no-repeat 0 -144px!important;background-size:16px!important}.cke_hidpi .cke_button__blockquote_icon{background:url(icons_hidpi.png?t=M2GD) 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=M2GD) 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=M2GD) 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=M2GD) 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=M2GD) 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=M2GD) 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=M2GD) no-repeat 0 -312px!important;background-size:16px!important}.cke_hidpi .cke_button__horizontalrule_icon{background:url(icons_hidpi.png?t=M2GD) no-repeat 0 -336px!important;background-size:16px!important}.cke_hidpi .cke_button__image_icon{background:url(icons_hidpi.png?t=M2GD) 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=M2GD) 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=M2GD) 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=M2GD) 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=M2GD) no-repeat 0 -456px!important;background-size:16px!important}.cke_hidpi .cke_button__justifyblock_icon{background:url(icons_hidpi.png?t=M2GD) no-repeat 0 -480px!important;background-size:16px!important}.cke_hidpi .cke_button__justifycenter_icon{background:url(icons_hidpi.png?t=M2GD) no-repeat 0 -504px!important;background-size:16px!important}.cke_hidpi .cke_button__justifyleft_icon{background:url(icons_hidpi.png?t=M2GD) no-repeat 0 -528px!important;background-size:16px!important}.cke_hidpi .cke_button__justifyright_icon{background:url(icons_hidpi.png?t=M2GD) no-repeat 0 -552px!important;background-size:16px!important}.cke_hidpi .cke_button__language_icon{background:url(icons_hidpi.png?t=M2GD) 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=M2GD) 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=M2GD) 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=M2GD) 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=M2GD) no-repeat 0 -672px!important;background-size:16px!important}.cke_hidpi .cke_button__maximize_icon{background:url(icons_hidpi.png?t=M2GD) 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=M2GD) 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=M2GD) 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=M2GD) 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=M2GD) no-repeat 0 -792px!important;background-size:16px!important}.cke_hidpi .cke_button__removeformat_icon{background:url(icons_hidpi.png?t=M2GD) 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=M2GD) 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=M2GD) 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=M2GD) 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=M2GD) 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=M2GD) 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=M2GD) no-repeat 0 -960px!important;background-size:16px!important}.cke_hidpi .cke_button__specialchar_icon{background:url(icons_hidpi.png?t=M2GD) no-repeat 0 -984px!important;background-size:16px!important}.cke_hidpi .cke_button__table_icon{background:url(icons_hidpi.png?t=M2GD) 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=M2GD) 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=M2GD) 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=M2GD) 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=M2GD) no-repeat 0 -1104px!important;background-size:16px!important}.cke_hidpi .cke_button__simplebox_icon{background:url(icons_hidpi.png?t=M2GD) no-repeat 0 -2256px!important}
\ No newline at end of file
diff --git a/web/modules/ckeditor/vendor/skins/moono-lisa/editor_gecko.css b/web/modules/ckeditor/vendor/skins/moono-lisa/editor_gecko.css
deleted file mode 100644
index c4d39606f33552eb22b2157e24be0f2fdaee800c..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/skins/moono-lisa/editor_gecko.css
+++ /dev/null
@@ -1,5 +0,0 @@
-/*
-Copyright (c) 2003-2022, CKSource Holding sp. z o.o. 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 select[multiple] option:checked{background-color:#cecece}.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}@media screen and (hover:none){a.cke_button_off:hover{background:transparent;border:0;padding:4px 6px}a.cke_button_expandable.cke_button_off:hover{padding:4px 5px}a.cke_button_off:active{background:#e5e5e5;border:1px #bcbcbc solid;padding:3px 5px}a.cke_button_expandable.cke_button_off:active{padding:3px 4px}}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}@media screen and (hover:none){.cke_combo_off a.cke_combo_button:hover{background:transparent;border-color:transparent}.cke_combo_off a.cke_combo_button:active{background:#fff;border:1px solid #bcbcbc}}.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=M2GD) no-repeat 0 -0px!important}.cke_button__bold_icon{background:url(icons.png?t=M2GD) no-repeat 0 -24px!important}.cke_button__italic_icon{background:url(icons.png?t=M2GD) no-repeat 0 -48px!important}.cke_button__strike_icon{background:url(icons.png?t=M2GD) no-repeat 0 -72px!important}.cke_button__subscript_icon{background:url(icons.png?t=M2GD) no-repeat 0 -96px!important}.cke_button__superscript_icon{background:url(icons.png?t=M2GD) no-repeat 0 -120px!important}.cke_button__underline_icon{background:url(icons.png?t=M2GD) no-repeat 0 -144px!important}.cke_button__blockquote_icon{background:url(icons.png?t=M2GD) 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=M2GD) no-repeat 0 -192px!important}.cke_ltr .cke_button__copy_icon{background:url(icons.png?t=M2GD) 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=M2GD) no-repeat 0 -240px!important}.cke_ltr .cke_button__cut_icon{background:url(icons.png?t=M2GD) 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=M2GD) no-repeat 0 -288px!important}.cke_ltr .cke_button__paste_icon{background:url(icons.png?t=M2GD) no-repeat 0 -312px!important}.cke_button__horizontalrule_icon{background:url(icons.png?t=M2GD) no-repeat 0 -336px!important}.cke_button__image_icon{background:url(icons.png?t=M2GD) 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=M2GD) no-repeat 0 -384px!important}.cke_ltr .cke_button__indent_icon{background:url(icons.png?t=M2GD) 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=M2GD) no-repeat 0 -432px!important}.cke_ltr .cke_button__outdent_icon{background:url(icons.png?t=M2GD) no-repeat 0 -456px!important}.cke_button__justifyblock_icon{background:url(icons.png?t=M2GD) no-repeat 0 -480px!important}.cke_button__justifycenter_icon{background:url(icons.png?t=M2GD) no-repeat 0 -504px!important}.cke_button__justifyleft_icon{background:url(icons.png?t=M2GD) no-repeat 0 -528px!important}.cke_button__justifyright_icon{background:url(icons.png?t=M2GD) no-repeat 0 -552px!important}.cke_button__language_icon{background:url(icons.png?t=M2GD) 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=M2GD) no-repeat 0 -600px!important}.cke_ltr .cke_button__bulletedlist_icon{background:url(icons.png?t=M2GD) 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=M2GD) no-repeat 0 -648px!important}.cke_ltr .cke_button__numberedlist_icon{background:url(icons.png?t=M2GD) no-repeat 0 -672px!important}.cke_button__maximize_icon{background:url(icons.png?t=M2GD) 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=M2GD) no-repeat 0 -720px!important}.cke_ltr .cke_button__pastefromword_icon{background:url(icons.png?t=M2GD) 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=M2GD) no-repeat 0 -768px!important}.cke_ltr .cke_button__pastetext_icon{background:url(icons.png?t=M2GD) no-repeat 0 -792px!important}.cke_button__removeformat_icon{background:url(icons.png?t=M2GD) 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=M2GD) no-repeat 0 -840px!important}.cke_ltr .cke_button__showblocks_icon{background:url(icons.png?t=M2GD) 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=M2GD) no-repeat 0 -888px!important}.cke_ltr .cke_button__source_icon{background:url(icons.png?t=M2GD) 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=M2GD) no-repeat 0 -936px!important}.cke_ltr .cke_button__sourcedialog_icon{background:url(icons.png?t=M2GD) no-repeat 0 -960px!important}.cke_button__specialchar_icon{background:url(icons.png?t=M2GD) no-repeat 0 -984px!important}.cke_button__table_icon{background:url(icons.png?t=M2GD) 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=M2GD) no-repeat 0 -1032px!important}.cke_ltr .cke_button__redo_icon{background:url(icons.png?t=M2GD) 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=M2GD) no-repeat 0 -1080px!important}.cke_ltr .cke_button__undo_icon{background:url(icons.png?t=M2GD) no-repeat 0 -1104px!important}.cke_button__simplebox_icon{background:url(icons.png?t=M2GD) no-repeat 0 -1128px!important}.cke_hidpi .cke_button__about_icon{background:url(icons_hidpi.png?t=M2GD) no-repeat 0 -0px!important;background-size:16px!important}.cke_hidpi .cke_button__bold_icon{background:url(icons_hidpi.png?t=M2GD) no-repeat 0 -24px!important;background-size:16px!important}.cke_hidpi .cke_button__italic_icon{background:url(icons_hidpi.png?t=M2GD) no-repeat 0 -48px!important;background-size:16px!important}.cke_hidpi .cke_button__strike_icon{background:url(icons_hidpi.png?t=M2GD) no-repeat 0 -72px!important;background-size:16px!important}.cke_hidpi .cke_button__subscript_icon{background:url(icons_hidpi.png?t=M2GD) no-repeat 0 -96px!important;background-size:16px!important}.cke_hidpi .cke_button__superscript_icon{background:url(icons_hidpi.png?t=M2GD) no-repeat 0 -120px!important;background-size:16px!important}.cke_hidpi .cke_button__underline_icon{background:url(icons_hidpi.png?t=M2GD) no-repeat 0 -144px!important;background-size:16px!important}.cke_hidpi .cke_button__blockquote_icon{background:url(icons_hidpi.png?t=M2GD) 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=M2GD) 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=M2GD) 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=M2GD) 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=M2GD) 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=M2GD) 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=M2GD) no-repeat 0 -312px!important;background-size:16px!important}.cke_hidpi .cke_button__horizontalrule_icon{background:url(icons_hidpi.png?t=M2GD) no-repeat 0 -336px!important;background-size:16px!important}.cke_hidpi .cke_button__image_icon{background:url(icons_hidpi.png?t=M2GD) 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=M2GD) 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=M2GD) 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=M2GD) 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=M2GD) no-repeat 0 -456px!important;background-size:16px!important}.cke_hidpi .cke_button__justifyblock_icon{background:url(icons_hidpi.png?t=M2GD) no-repeat 0 -480px!important;background-size:16px!important}.cke_hidpi .cke_button__justifycenter_icon{background:url(icons_hidpi.png?t=M2GD) no-repeat 0 -504px!important;background-size:16px!important}.cke_hidpi .cke_button__justifyleft_icon{background:url(icons_hidpi.png?t=M2GD) no-repeat 0 -528px!important;background-size:16px!important}.cke_hidpi .cke_button__justifyright_icon{background:url(icons_hidpi.png?t=M2GD) no-repeat 0 -552px!important;background-size:16px!important}.cke_hidpi .cke_button__language_icon{background:url(icons_hidpi.png?t=M2GD) 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=M2GD) 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=M2GD) 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=M2GD) 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=M2GD) no-repeat 0 -672px!important;background-size:16px!important}.cke_hidpi .cke_button__maximize_icon{background:url(icons_hidpi.png?t=M2GD) 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=M2GD) 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=M2GD) 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=M2GD) 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=M2GD) no-repeat 0 -792px!important;background-size:16px!important}.cke_hidpi .cke_button__removeformat_icon{background:url(icons_hidpi.png?t=M2GD) 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=M2GD) 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=M2GD) 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=M2GD) 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=M2GD) 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=M2GD) 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=M2GD) no-repeat 0 -960px!important;background-size:16px!important}.cke_hidpi .cke_button__specialchar_icon{background:url(icons_hidpi.png?t=M2GD) no-repeat 0 -984px!important;background-size:16px!important}.cke_hidpi .cke_button__table_icon{background:url(icons_hidpi.png?t=M2GD) 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=M2GD) 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=M2GD) 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=M2GD) 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=M2GD) no-repeat 0 -1104px!important;background-size:16px!important}.cke_hidpi .cke_button__simplebox_icon{background:url(icons_hidpi.png?t=M2GD) 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/modules/ckeditor/vendor/skins/moono-lisa/editor_ie.css b/web/modules/ckeditor/vendor/skins/moono-lisa/editor_ie.css
deleted file mode 100644
index 8cb79c27bd92c8f8aef8349116db46b624cc2833..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/skins/moono-lisa/editor_ie.css
+++ /dev/null
@@ -1,5 +0,0 @@
-/*
-Copyright (c) 2003-2022, CKSource Holding sp. z o.o. 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 select[multiple] option:checked{background-color:#cecece}.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}@media screen and (hover:none){a.cke_button_off:hover{background:transparent;border:0;padding:4px 6px}a.cke_button_expandable.cke_button_off:hover{padding:4px 5px}a.cke_button_off:active{background:#e5e5e5;border:1px #bcbcbc solid;padding:3px 5px}a.cke_button_expandable.cke_button_off:active{padding:3px 4px}}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}@media screen and (hover:none){.cke_combo_off a.cke_combo_button:hover{background:transparent;border-color:transparent}.cke_combo_off a.cke_combo_button:active{background:#fff;border:1px solid #bcbcbc}}.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=M2GD) no-repeat 0 -0px!important}.cke_button__bold_icon{background:url(icons.png?t=M2GD) no-repeat 0 -24px!important}.cke_button__italic_icon{background:url(icons.png?t=M2GD) no-repeat 0 -48px!important}.cke_button__strike_icon{background:url(icons.png?t=M2GD) no-repeat 0 -72px!important}.cke_button__subscript_icon{background:url(icons.png?t=M2GD) no-repeat 0 -96px!important}.cke_button__superscript_icon{background:url(icons.png?t=M2GD) no-repeat 0 -120px!important}.cke_button__underline_icon{background:url(icons.png?t=M2GD) no-repeat 0 -144px!important}.cke_button__blockquote_icon{background:url(icons.png?t=M2GD) 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=M2GD) no-repeat 0 -192px!important}.cke_ltr .cke_button__copy_icon{background:url(icons.png?t=M2GD) 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=M2GD) no-repeat 0 -240px!important}.cke_ltr .cke_button__cut_icon{background:url(icons.png?t=M2GD) 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=M2GD) no-repeat 0 -288px!important}.cke_ltr .cke_button__paste_icon{background:url(icons.png?t=M2GD) no-repeat 0 -312px!important}.cke_button__horizontalrule_icon{background:url(icons.png?t=M2GD) no-repeat 0 -336px!important}.cke_button__image_icon{background:url(icons.png?t=M2GD) 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=M2GD) no-repeat 0 -384px!important}.cke_ltr .cke_button__indent_icon{background:url(icons.png?t=M2GD) 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=M2GD) no-repeat 0 -432px!important}.cke_ltr .cke_button__outdent_icon{background:url(icons.png?t=M2GD) no-repeat 0 -456px!important}.cke_button__justifyblock_icon{background:url(icons.png?t=M2GD) no-repeat 0 -480px!important}.cke_button__justifycenter_icon{background:url(icons.png?t=M2GD) no-repeat 0 -504px!important}.cke_button__justifyleft_icon{background:url(icons.png?t=M2GD) no-repeat 0 -528px!important}.cke_button__justifyright_icon{background:url(icons.png?t=M2GD) no-repeat 0 -552px!important}.cke_button__language_icon{background:url(icons.png?t=M2GD) 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=M2GD) no-repeat 0 -600px!important}.cke_ltr .cke_button__bulletedlist_icon{background:url(icons.png?t=M2GD) 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=M2GD) no-repeat 0 -648px!important}.cke_ltr .cke_button__numberedlist_icon{background:url(icons.png?t=M2GD) no-repeat 0 -672px!important}.cke_button__maximize_icon{background:url(icons.png?t=M2GD) 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=M2GD) no-repeat 0 -720px!important}.cke_ltr .cke_button__pastefromword_icon{background:url(icons.png?t=M2GD) 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=M2GD) no-repeat 0 -768px!important}.cke_ltr .cke_button__pastetext_icon{background:url(icons.png?t=M2GD) no-repeat 0 -792px!important}.cke_button__removeformat_icon{background:url(icons.png?t=M2GD) 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=M2GD) no-repeat 0 -840px!important}.cke_ltr .cke_button__showblocks_icon{background:url(icons.png?t=M2GD) 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=M2GD) no-repeat 0 -888px!important}.cke_ltr .cke_button__source_icon{background:url(icons.png?t=M2GD) 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=M2GD) no-repeat 0 -936px!important}.cke_ltr .cke_button__sourcedialog_icon{background:url(icons.png?t=M2GD) no-repeat 0 -960px!important}.cke_button__specialchar_icon{background:url(icons.png?t=M2GD) no-repeat 0 -984px!important}.cke_button__table_icon{background:url(icons.png?t=M2GD) 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=M2GD) no-repeat 0 -1032px!important}.cke_ltr .cke_button__redo_icon{background:url(icons.png?t=M2GD) 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=M2GD) no-repeat 0 -1080px!important}.cke_ltr .cke_button__undo_icon{background:url(icons.png?t=M2GD) no-repeat 0 -1104px!important}.cke_button__simplebox_icon{background:url(icons.png?t=M2GD) no-repeat 0 -1128px!important}.cke_hidpi .cke_button__about_icon{background:url(icons_hidpi.png?t=M2GD) no-repeat 0 -0px!important;background-size:16px!important}.cke_hidpi .cke_button__bold_icon{background:url(icons_hidpi.png?t=M2GD) no-repeat 0 -24px!important;background-size:16px!important}.cke_hidpi .cke_button__italic_icon{background:url(icons_hidpi.png?t=M2GD) no-repeat 0 -48px!important;background-size:16px!important}.cke_hidpi .cke_button__strike_icon{background:url(icons_hidpi.png?t=M2GD) no-repeat 0 -72px!important;background-size:16px!important}.cke_hidpi .cke_button__subscript_icon{background:url(icons_hidpi.png?t=M2GD) no-repeat 0 -96px!important;background-size:16px!important}.cke_hidpi .cke_button__superscript_icon{background:url(icons_hidpi.png?t=M2GD) no-repeat 0 -120px!important;background-size:16px!important}.cke_hidpi .cke_button__underline_icon{background:url(icons_hidpi.png?t=M2GD) no-repeat 0 -144px!important;background-size:16px!important}.cke_hidpi .cke_button__blockquote_icon{background:url(icons_hidpi.png?t=M2GD) 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=M2GD) 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=M2GD) 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=M2GD) 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=M2GD) 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=M2GD) 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=M2GD) no-repeat 0 -312px!important;background-size:16px!important}.cke_hidpi .cke_button__horizontalrule_icon{background:url(icons_hidpi.png?t=M2GD) no-repeat 0 -336px!important;background-size:16px!important}.cke_hidpi .cke_button__image_icon{background:url(icons_hidpi.png?t=M2GD) 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=M2GD) 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=M2GD) 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=M2GD) 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=M2GD) no-repeat 0 -456px!important;background-size:16px!important}.cke_hidpi .cke_button__justifyblock_icon{background:url(icons_hidpi.png?t=M2GD) no-repeat 0 -480px!important;background-size:16px!important}.cke_hidpi .cke_button__justifycenter_icon{background:url(icons_hidpi.png?t=M2GD) no-repeat 0 -504px!important;background-size:16px!important}.cke_hidpi .cke_button__justifyleft_icon{background:url(icons_hidpi.png?t=M2GD) no-repeat 0 -528px!important;background-size:16px!important}.cke_hidpi .cke_button__justifyright_icon{background:url(icons_hidpi.png?t=M2GD) no-repeat 0 -552px!important;background-size:16px!important}.cke_hidpi .cke_button__language_icon{background:url(icons_hidpi.png?t=M2GD) 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=M2GD) 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=M2GD) 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=M2GD) 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=M2GD) no-repeat 0 -672px!important;background-size:16px!important}.cke_hidpi .cke_button__maximize_icon{background:url(icons_hidpi.png?t=M2GD) 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=M2GD) 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=M2GD) 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=M2GD) 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=M2GD) no-repeat 0 -792px!important;background-size:16px!important}.cke_hidpi .cke_button__removeformat_icon{background:url(icons_hidpi.png?t=M2GD) 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=M2GD) 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=M2GD) 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=M2GD) 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=M2GD) 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=M2GD) 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=M2GD) no-repeat 0 -960px!important;background-size:16px!important}.cke_hidpi .cke_button__specialchar_icon{background:url(icons_hidpi.png?t=M2GD) no-repeat 0 -984px!important;background-size:16px!important}.cke_hidpi .cke_button__table_icon{background:url(icons_hidpi.png?t=M2GD) 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=M2GD) 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=M2GD) 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=M2GD) 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=M2GD) no-repeat 0 -1104px!important;background-size:16px!important}.cke_hidpi .cke_button__simplebox_icon{background:url(icons_hidpi.png?t=M2GD) 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/modules/ckeditor/vendor/skins/moono-lisa/editor_ie8.css b/web/modules/ckeditor/vendor/skins/moono-lisa/editor_ie8.css
deleted file mode 100644
index 85103c8ec7b1a00e4ac1479851dbf0a91a433dec..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/skins/moono-lisa/editor_ie8.css
+++ /dev/null
@@ -1,5 +0,0 @@
-/*
-Copyright (c) 2003-2022, CKSource Holding sp. z o.o. 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 select[multiple] option:checked{background-color:#cecece}.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}@media screen and (hover:none){a.cke_button_off:hover{background:transparent;border:0;padding:4px 6px}a.cke_button_expandable.cke_button_off:hover{padding:4px 5px}a.cke_button_off:active{background:#e5e5e5;border:1px #bcbcbc solid;padding:3px 5px}a.cke_button_expandable.cke_button_off:active{padding:3px 4px}}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}@media screen and (hover:none){.cke_combo_off a.cke_combo_button:hover{background:transparent;border-color:transparent}.cke_combo_off a.cke_combo_button:active{background:#fff;border:1px solid #bcbcbc}}.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=M2GD) no-repeat 0 -0px!important}.cke_button__bold_icon{background:url(icons.png?t=M2GD) no-repeat 0 -24px!important}.cke_button__italic_icon{background:url(icons.png?t=M2GD) no-repeat 0 -48px!important}.cke_button__strike_icon{background:url(icons.png?t=M2GD) no-repeat 0 -72px!important}.cke_button__subscript_icon{background:url(icons.png?t=M2GD) no-repeat 0 -96px!important}.cke_button__superscript_icon{background:url(icons.png?t=M2GD) no-repeat 0 -120px!important}.cke_button__underline_icon{background:url(icons.png?t=M2GD) no-repeat 0 -144px!important}.cke_button__blockquote_icon{background:url(icons.png?t=M2GD) 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=M2GD) no-repeat 0 -192px!important}.cke_ltr .cke_button__copy_icon{background:url(icons.png?t=M2GD) 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=M2GD) no-repeat 0 -240px!important}.cke_ltr .cke_button__cut_icon{background:url(icons.png?t=M2GD) 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=M2GD) no-repeat 0 -288px!important}.cke_ltr .cke_button__paste_icon{background:url(icons.png?t=M2GD) no-repeat 0 -312px!important}.cke_button__horizontalrule_icon{background:url(icons.png?t=M2GD) no-repeat 0 -336px!important}.cke_button__image_icon{background:url(icons.png?t=M2GD) 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=M2GD) no-repeat 0 -384px!important}.cke_ltr .cke_button__indent_icon{background:url(icons.png?t=M2GD) 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=M2GD) no-repeat 0 -432px!important}.cke_ltr .cke_button__outdent_icon{background:url(icons.png?t=M2GD) no-repeat 0 -456px!important}.cke_button__justifyblock_icon{background:url(icons.png?t=M2GD) no-repeat 0 -480px!important}.cke_button__justifycenter_icon{background:url(icons.png?t=M2GD) no-repeat 0 -504px!important}.cke_button__justifyleft_icon{background:url(icons.png?t=M2GD) no-repeat 0 -528px!important}.cke_button__justifyright_icon{background:url(icons.png?t=M2GD) no-repeat 0 -552px!important}.cke_button__language_icon{background:url(icons.png?t=M2GD) 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=M2GD) no-repeat 0 -600px!important}.cke_ltr .cke_button__bulletedlist_icon{background:url(icons.png?t=M2GD) 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=M2GD) no-repeat 0 -648px!important}.cke_ltr .cke_button__numberedlist_icon{background:url(icons.png?t=M2GD) no-repeat 0 -672px!important}.cke_button__maximize_icon{background:url(icons.png?t=M2GD) 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=M2GD) no-repeat 0 -720px!important}.cke_ltr .cke_button__pastefromword_icon{background:url(icons.png?t=M2GD) 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=M2GD) no-repeat 0 -768px!important}.cke_ltr .cke_button__pastetext_icon{background:url(icons.png?t=M2GD) no-repeat 0 -792px!important}.cke_button__removeformat_icon{background:url(icons.png?t=M2GD) 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=M2GD) no-repeat 0 -840px!important}.cke_ltr .cke_button__showblocks_icon{background:url(icons.png?t=M2GD) 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=M2GD) no-repeat 0 -888px!important}.cke_ltr .cke_button__source_icon{background:url(icons.png?t=M2GD) 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=M2GD) no-repeat 0 -936px!important}.cke_ltr .cke_button__sourcedialog_icon{background:url(icons.png?t=M2GD) no-repeat 0 -960px!important}.cke_button__specialchar_icon{background:url(icons.png?t=M2GD) no-repeat 0 -984px!important}.cke_button__table_icon{background:url(icons.png?t=M2GD) 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=M2GD) no-repeat 0 -1032px!important}.cke_ltr .cke_button__redo_icon{background:url(icons.png?t=M2GD) 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=M2GD) no-repeat 0 -1080px!important}.cke_ltr .cke_button__undo_icon{background:url(icons.png?t=M2GD) no-repeat 0 -1104px!important}.cke_button__simplebox_icon{background:url(icons.png?t=M2GD) no-repeat 0 -1128px!important}.cke_hidpi .cke_button__about_icon{background:url(icons_hidpi.png?t=M2GD) no-repeat 0 -0px!important;background-size:16px!important}.cke_hidpi .cke_button__bold_icon{background:url(icons_hidpi.png?t=M2GD) no-repeat 0 -24px!important;background-size:16px!important}.cke_hidpi .cke_button__italic_icon{background:url(icons_hidpi.png?t=M2GD) no-repeat 0 -48px!important;background-size:16px!important}.cke_hidpi .cke_button__strike_icon{background:url(icons_hidpi.png?t=M2GD) no-repeat 0 -72px!important;background-size:16px!important}.cke_hidpi .cke_button__subscript_icon{background:url(icons_hidpi.png?t=M2GD) no-repeat 0 -96px!important;background-size:16px!important}.cke_hidpi .cke_button__superscript_icon{background:url(icons_hidpi.png?t=M2GD) no-repeat 0 -120px!important;background-size:16px!important}.cke_hidpi .cke_button__underline_icon{background:url(icons_hidpi.png?t=M2GD) no-repeat 0 -144px!important;background-size:16px!important}.cke_hidpi .cke_button__blockquote_icon{background:url(icons_hidpi.png?t=M2GD) 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=M2GD) 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=M2GD) 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=M2GD) 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=M2GD) 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=M2GD) 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=M2GD) no-repeat 0 -312px!important;background-size:16px!important}.cke_hidpi .cke_button__horizontalrule_icon{background:url(icons_hidpi.png?t=M2GD) no-repeat 0 -336px!important;background-size:16px!important}.cke_hidpi .cke_button__image_icon{background:url(icons_hidpi.png?t=M2GD) 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=M2GD) 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=M2GD) 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=M2GD) 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=M2GD) no-repeat 0 -456px!important;background-size:16px!important}.cke_hidpi .cke_button__justifyblock_icon{background:url(icons_hidpi.png?t=M2GD) no-repeat 0 -480px!important;background-size:16px!important}.cke_hidpi .cke_button__justifycenter_icon{background:url(icons_hidpi.png?t=M2GD) no-repeat 0 -504px!important;background-size:16px!important}.cke_hidpi .cke_button__justifyleft_icon{background:url(icons_hidpi.png?t=M2GD) no-repeat 0 -528px!important;background-size:16px!important}.cke_hidpi .cke_button__justifyright_icon{background:url(icons_hidpi.png?t=M2GD) no-repeat 0 -552px!important;background-size:16px!important}.cke_hidpi .cke_button__language_icon{background:url(icons_hidpi.png?t=M2GD) 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=M2GD) 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=M2GD) 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=M2GD) 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=M2GD) no-repeat 0 -672px!important;background-size:16px!important}.cke_hidpi .cke_button__maximize_icon{background:url(icons_hidpi.png?t=M2GD) 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=M2GD) 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=M2GD) 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=M2GD) 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=M2GD) no-repeat 0 -792px!important;background-size:16px!important}.cke_hidpi .cke_button__removeformat_icon{background:url(icons_hidpi.png?t=M2GD) 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=M2GD) 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=M2GD) 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=M2GD) 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=M2GD) 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=M2GD) 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=M2GD) no-repeat 0 -960px!important;background-size:16px!important}.cke_hidpi .cke_button__specialchar_icon{background:url(icons_hidpi.png?t=M2GD) no-repeat 0 -984px!important;background-size:16px!important}.cke_hidpi .cke_button__table_icon{background:url(icons_hidpi.png?t=M2GD) 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=M2GD) 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=M2GD) 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=M2GD) 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=M2GD) no-repeat 0 -1104px!important;background-size:16px!important}.cke_hidpi .cke_button__simplebox_icon{background:url(icons_hidpi.png?t=M2GD) 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/modules/ckeditor/vendor/skins/moono-lisa/editor_iequirks.css b/web/modules/ckeditor/vendor/skins/moono-lisa/editor_iequirks.css
deleted file mode 100644
index 72bcb117e586ec4cf27c6d5c1243a647001296b0..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/skins/moono-lisa/editor_iequirks.css
+++ /dev/null
@@ -1,5 +0,0 @@
-/*
-Copyright (c) 2003-2022, CKSource Holding sp. z o.o. 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 select[multiple] option:checked{background-color:#cecece}.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}@media screen and (hover:none){a.cke_button_off:hover{background:transparent;border:0;padding:4px 6px}a.cke_button_expandable.cke_button_off:hover{padding:4px 5px}a.cke_button_off:active{background:#e5e5e5;border:1px #bcbcbc solid;padding:3px 5px}a.cke_button_expandable.cke_button_off:active{padding:3px 4px}}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}@media screen and (hover:none){.cke_combo_off a.cke_combo_button:hover{background:transparent;border-color:transparent}.cke_combo_off a.cke_combo_button:active{background:#fff;border:1px solid #bcbcbc}}.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=M2GD) no-repeat 0 -0px!important}.cke_button__bold_icon{background:url(icons.png?t=M2GD) no-repeat 0 -24px!important}.cke_button__italic_icon{background:url(icons.png?t=M2GD) no-repeat 0 -48px!important}.cke_button__strike_icon{background:url(icons.png?t=M2GD) no-repeat 0 -72px!important}.cke_button__subscript_icon{background:url(icons.png?t=M2GD) no-repeat 0 -96px!important}.cke_button__superscript_icon{background:url(icons.png?t=M2GD) no-repeat 0 -120px!important}.cke_button__underline_icon{background:url(icons.png?t=M2GD) no-repeat 0 -144px!important}.cke_button__blockquote_icon{background:url(icons.png?t=M2GD) 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=M2GD) no-repeat 0 -192px!important}.cke_ltr .cke_button__copy_icon{background:url(icons.png?t=M2GD) 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=M2GD) no-repeat 0 -240px!important}.cke_ltr .cke_button__cut_icon{background:url(icons.png?t=M2GD) 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=M2GD) no-repeat 0 -288px!important}.cke_ltr .cke_button__paste_icon{background:url(icons.png?t=M2GD) no-repeat 0 -312px!important}.cke_button__horizontalrule_icon{background:url(icons.png?t=M2GD) no-repeat 0 -336px!important}.cke_button__image_icon{background:url(icons.png?t=M2GD) 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=M2GD) no-repeat 0 -384px!important}.cke_ltr .cke_button__indent_icon{background:url(icons.png?t=M2GD) 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=M2GD) no-repeat 0 -432px!important}.cke_ltr .cke_button__outdent_icon{background:url(icons.png?t=M2GD) no-repeat 0 -456px!important}.cke_button__justifyblock_icon{background:url(icons.png?t=M2GD) no-repeat 0 -480px!important}.cke_button__justifycenter_icon{background:url(icons.png?t=M2GD) no-repeat 0 -504px!important}.cke_button__justifyleft_icon{background:url(icons.png?t=M2GD) no-repeat 0 -528px!important}.cke_button__justifyright_icon{background:url(icons.png?t=M2GD) no-repeat 0 -552px!important}.cke_button__language_icon{background:url(icons.png?t=M2GD) 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=M2GD) no-repeat 0 -600px!important}.cke_ltr .cke_button__bulletedlist_icon{background:url(icons.png?t=M2GD) 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=M2GD) no-repeat 0 -648px!important}.cke_ltr .cke_button__numberedlist_icon{background:url(icons.png?t=M2GD) no-repeat 0 -672px!important}.cke_button__maximize_icon{background:url(icons.png?t=M2GD) 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=M2GD) no-repeat 0 -720px!important}.cke_ltr .cke_button__pastefromword_icon{background:url(icons.png?t=M2GD) 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=M2GD) no-repeat 0 -768px!important}.cke_ltr .cke_button__pastetext_icon{background:url(icons.png?t=M2GD) no-repeat 0 -792px!important}.cke_button__removeformat_icon{background:url(icons.png?t=M2GD) 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=M2GD) no-repeat 0 -840px!important}.cke_ltr .cke_button__showblocks_icon{background:url(icons.png?t=M2GD) 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=M2GD) no-repeat 0 -888px!important}.cke_ltr .cke_button__source_icon{background:url(icons.png?t=M2GD) 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=M2GD) no-repeat 0 -936px!important}.cke_ltr .cke_button__sourcedialog_icon{background:url(icons.png?t=M2GD) no-repeat 0 -960px!important}.cke_button__specialchar_icon{background:url(icons.png?t=M2GD) no-repeat 0 -984px!important}.cke_button__table_icon{background:url(icons.png?t=M2GD) 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=M2GD) no-repeat 0 -1032px!important}.cke_ltr .cke_button__redo_icon{background:url(icons.png?t=M2GD) 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=M2GD) no-repeat 0 -1080px!important}.cke_ltr .cke_button__undo_icon{background:url(icons.png?t=M2GD) no-repeat 0 -1104px!important}.cke_button__simplebox_icon{background:url(icons.png?t=M2GD) no-repeat 0 -1128px!important}.cke_hidpi .cke_button__about_icon{background:url(icons_hidpi.png?t=M2GD) no-repeat 0 -0px!important;background-size:16px!important}.cke_hidpi .cke_button__bold_icon{background:url(icons_hidpi.png?t=M2GD) no-repeat 0 -24px!important;background-size:16px!important}.cke_hidpi .cke_button__italic_icon{background:url(icons_hidpi.png?t=M2GD) no-repeat 0 -48px!important;background-size:16px!important}.cke_hidpi .cke_button__strike_icon{background:url(icons_hidpi.png?t=M2GD) no-repeat 0 -72px!important;background-size:16px!important}.cke_hidpi .cke_button__subscript_icon{background:url(icons_hidpi.png?t=M2GD) no-repeat 0 -96px!important;background-size:16px!important}.cke_hidpi .cke_button__superscript_icon{background:url(icons_hidpi.png?t=M2GD) no-repeat 0 -120px!important;background-size:16px!important}.cke_hidpi .cke_button__underline_icon{background:url(icons_hidpi.png?t=M2GD) no-repeat 0 -144px!important;background-size:16px!important}.cke_hidpi .cke_button__blockquote_icon{background:url(icons_hidpi.png?t=M2GD) 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=M2GD) 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=M2GD) 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=M2GD) 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=M2GD) 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=M2GD) 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=M2GD) no-repeat 0 -312px!important;background-size:16px!important}.cke_hidpi .cke_button__horizontalrule_icon{background:url(icons_hidpi.png?t=M2GD) no-repeat 0 -336px!important;background-size:16px!important}.cke_hidpi .cke_button__image_icon{background:url(icons_hidpi.png?t=M2GD) 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=M2GD) 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=M2GD) 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=M2GD) 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=M2GD) no-repeat 0 -456px!important;background-size:16px!important}.cke_hidpi .cke_button__justifyblock_icon{background:url(icons_hidpi.png?t=M2GD) no-repeat 0 -480px!important;background-size:16px!important}.cke_hidpi .cke_button__justifycenter_icon{background:url(icons_hidpi.png?t=M2GD) no-repeat 0 -504px!important;background-size:16px!important}.cke_hidpi .cke_button__justifyleft_icon{background:url(icons_hidpi.png?t=M2GD) no-repeat 0 -528px!important;background-size:16px!important}.cke_hidpi .cke_button__justifyright_icon{background:url(icons_hidpi.png?t=M2GD) no-repeat 0 -552px!important;background-size:16px!important}.cke_hidpi .cke_button__language_icon{background:url(icons_hidpi.png?t=M2GD) 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=M2GD) 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=M2GD) 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=M2GD) 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=M2GD) no-repeat 0 -672px!important;background-size:16px!important}.cke_hidpi .cke_button__maximize_icon{background:url(icons_hidpi.png?t=M2GD) 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=M2GD) 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=M2GD) 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=M2GD) 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=M2GD) no-repeat 0 -792px!important;background-size:16px!important}.cke_hidpi .cke_button__removeformat_icon{background:url(icons_hidpi.png?t=M2GD) 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=M2GD) 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=M2GD) 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=M2GD) 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=M2GD) 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=M2GD) 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=M2GD) no-repeat 0 -960px!important;background-size:16px!important}.cke_hidpi .cke_button__specialchar_icon{background:url(icons_hidpi.png?t=M2GD) no-repeat 0 -984px!important;background-size:16px!important}.cke_hidpi .cke_button__table_icon{background:url(icons_hidpi.png?t=M2GD) 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=M2GD) 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=M2GD) 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=M2GD) 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=M2GD) no-repeat 0 -1104px!important;background-size:16px!important}.cke_hidpi .cke_button__simplebox_icon{background:url(icons_hidpi.png?t=M2GD) 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/modules/ckeditor/vendor/skins/moono-lisa/icons.png b/web/modules/ckeditor/vendor/skins/moono-lisa/icons.png
deleted file mode 100644
index 331a155f7e77d608bcecc95060556417af6da4b2..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/skins/moono-lisa/icons.png
+++ /dev/null
@@ -1,30 +0,0 @@
-�PNG
-
-���
IHDR������������1��cIDATx^��U�$������
-%> 
-������vw�i���55[l1����"1!*���`�`���J
-A$�0(>@0�!�@�(����a�����;��7��G{~�a��=s���~��[����E�׻b|||��ݫW�ކ>Q8���[r?�PO;ٙ�LLL\D��L�ר$[1��8RМ�S�kK��Z@����&�S�iRڲ���8����2�G!�U`!���[�&��I(覲��h�7Pw�7�%hK2;;{��@/��Ľhˆ*y>��Y�����+�̇���	9�^'@ٵk�!S��~%΢;IU�\	9�%���H@�W�>��t>�ο#	��0��$�djj�X����$y@'��g0�^�@�W%�����LI@[�k��F�xJX�R��'n$z/Ę�V.R�ҽ��i`ӦMG�,,'�g�ׄ/�����}QIND[��+W+��-Z�.��і���v5ڲ��Jށ�$�lw�~
-����S��e�����R�H�*$����8N&�l0J�I=#�j����qJkA�����Ǖ�c�|kVU�uh�B*(����mi�A�(T�$^���������^+gff^BWfNOO�u���(����H�{����{1���]^+
-m{oŘ����+�)��./���8ΰ@�u7O[��G�N�����5�V��h_���>�E��\.&�C�(:Ir���
-��7R,]�ik;�t���Rp��D�<��s�=�0��wh_&H���}��k��}���q�׃���q=h�XH��� 
�����z�z��I�^r�
-��ic�E�.�R�6�_k_�q�2�iv^o�ij?������Z�k�<��7j}�b&��ߨ�	�oKՈ]�Z`wj}�8��@�%1ɕZ@������֍�?"\�15��ƎRUԄ��o���Oη��Pe�G��'V:J��8΁
-M�9zS�G��f͚SiZoF������6�Ї���v�hUe��Z�Ǖ}�kS{/�o>M��QE�	��qrrr�rx�;�_��ի�F=}]hE>��z��|��>��l۶��^f�]A��:�m\�e�G��ٴi�ae�/�6�nݺז��..����+�4[�&P�$O���棲�Y��:���w�!C/ZhQ���6;���G����%`�$נ�FS&eO;��8�"�oY	t[(��*���p���6��u�@ʞtHٓ){�!eO:��A�	�8Nw�.�}���S$X�+�n�/�!eO:��I��=鐲�5&�8Cݦ�NMM��z�V�ShUڍ���#�轞�sg�s	�l��Sf9�F����9R�'���=m)�C��ު�]���}���X�A����0��U��@�F�w�7BAO���D�@{��(��2�G�'ݏK��:����({������l��������%�a~~�`>'�O꒩}#Ƀ���I�����%|)b��ϕ	�Kx�Y����xˁt�`R���q�����X&�}�\�$������3l��*-���^-�Gc>g�zti���v>oJ@�e�Q
S��5�L_S�L`��5&���H`G���g�����H`G��T@r�n+}�Z�{�@���>p����͘���
��kL*0����
-ic�Z��������������l߾}��`|w���`|w���`���E�,^���_��`|w���`|w���`�����J-�ʗ����X.��q��03�Y^3�\V����L�����%.>�fZ'�w��^��܎&����q��-c��+ݐ���(�%X%y�L@��ѹIj	(�萒Z�A�J�8N����Y��zRǥ�ٴ
-Е`������"g��?˞$�a��A��1�c6����v�����u���Z/��y�
-�X�W���V�����{�썕TA�X��u�]��
-�+i]�9���Gt�����kDVBM��]	V00V�q�M��d�:Y�l���
-�M��${�g?��Dj�@f��X�cM����U�~��ҙXk"�c������
-�/J+gfx��qZ�S5%�=Ag���`|���R���t{H	�wO�8�"277��uZ��٩I�qذa��XnJ7�������X���A��2,5%�`�^�9����z�aP���^�cЩI0vq�^,���l	�,.�[J0�{�q�"8[�Fj��5�K�`l:5	�..؛%S�-���`)���	���0}bbbϯ��D�	CΏ�����ǫ)(�����Y�����n�&��{ս����a�X���س��uh�T
�Y6f�X�dT
���8�7
-��_:?C>&ۙ:>ܙ�Ɔ
-L}6�/a���nc��*dV`��|	��d�3Lf�<��L��10�K�]A�$bc�=��W!�X��
-b��8ξ&wڊ�ֵ�L�[c&hC�VUC@� �O�K01�K�
-��6t��qp�ϙ��2e�|i*h�>�Xk��D+{�
-�Yh��8���r3���*#���j�-'At2E��199y�iT>"⫍?��*&�p6�b�dltD6t}+�,D����Vn=�g���e�kY���!�e|ޔ��ǜ�2��k*#��5	X�l]�$�ڱ])А�
-4��"u�]sD��]K@��<���J@�G��
-�7|jm���w,;��VO`��5&���H`G��s��"��
-t�+P�Q,q4�-�W��9�)K�/���M	�y���@;�+����TѶ(ڶE�v�hj��y�9�X�}���	�q�Ƥ`	쨐6����?P�m���@Ѷ-�</��y�q�����wB�Ÿ
-�TN�I����LLJդ��t}�w��ξ�Ld&4����^�z�Iha�X%�ړp�����H�'�t��\-[��=	��C�˺A����p�j߼|��C�]�z�p�$:>X�T[@zl�-�ѦE$�ﲪ˂=΁��%��������;I��y��q����G������{>u,�����I,M$�%�f���J���!u,���J�f�~���"r�F�Q~�	�Xn�,��I$Гijjj���ek	>�r��G��MG���ne�IW����Z�\�	��p���	r�&�w�%�G`P-7bK8�
�<Pk�ne�/Xb�M&���Эz5��Zп����UM�\c�T0M�e���h�������?�#UU�c���:�M�|�˫�������>����� :�����Ы�/���m<�e�76&�#%��$+��p��ij�_�6p�zg��x���p��(��֣_E��D�ؐ+�8CުZx�E������3/���є�I&I%`8I�rr0Q?4�^�/��*����i���m�_
1��_m�6/���B��A�|Y��#X/{��U����r)~����%ܪ������'��~5�@{�Dy��C�UD
@ԏ
����3���B3Q?4��y�����3$୪%�[�t�tn|��4%`�IR	N���L�
���y��"���3�LOO�A���t�+
-�a�&���:�����%�S�(�Ü�\�ߣm��[��Pe������kF2\�3]����:������H%��f��2�_Z;�|GQ��}�?��ΏUp�i�(��L������
-z�ίK6o�|��j}���֔��If�mtt��L�m+����(��̎�K-��D��T��[A����?���P������9��H�.�9�@�
-�PU��(k׮=�J�8KޞmeI`�K�.j��E
���!W���"�̹��!W5�ꢆ\���`R�q���2���x�Q�E�-���z՟���{��HΣ����9�c�ѴD�{(����K�G�@~Z9���@D~#N�{�$;��F�e���NP�t#��R�9�3�4M�,da�EmY�u���݄���xOЋ)/��_�k>X���VP�c$�57�xO�`����2�^��M��{��U���z�3���elZ�;�H����sւ҄^���/b^�����u�ʩ ���H�%��H�s�p���/t���7.�رc �ؑ�����+W��AZ8����+;�nݺ�.2233�^�"��P	�o߾�F8���r�
-�XYy���pLK������WPĮX�b�
-�XI�=�$H0U�a�ҥsg���/�6�u�Do����IEND�B`�
\ No newline at end of file
diff --git a/web/modules/ckeditor/vendor/skins/moono-lisa/icons_hidpi.png b/web/modules/ckeditor/vendor/skins/moono-lisa/icons_hidpi.png
deleted file mode 100644
index 1979dd167ea54095b328ad3ca96850e7546b56fe..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/skins/moono-lisa/icons_hidpi.png
+++ /dev/null
@@ -1,53 +0,0 @@
-�PNG
-
-���
IHDR��� ��	�����N:��5�IDATx^�	�vWY�Ѷjűu	֊V]b�e��x��~�&_���Ơ����C��|jpI.m��8���.�D�8���$�X!*���Z��$}���x���}�>�����zr�������}sﳿ����_0��ju������{vvvւ���޳�;�i�?��_����9�^�誏���FfKbkkk����ӝ�&�Y����j��Z�
�����2յ�g0&�����'�n5�}W��:�����x��Uq�W|�x1��W=EW����N�`_�>F��{�$ݻj�\xᅟu�=�|���3u<�-�����,
-��:uj�
-��-��x��j�
-�[��/���x�h��5�;�\|�=���`/r3n���\mf#P�C�v�`�� 'O�\����3g�Y�f�fvO��+�.���ͬX�k|��i�]�CH���,ʹs�>���ީ:����,���Ա��Jx
�����߫��׿ۊ�W�E�����W�-�
���o��[�_�!��8qb-�������AA?�9s�G�VLay�ZQ�h�5=I}L�|OBlww��HJL����(�ѷ��Z���	������8�?S���+@�HH���&4K�8��G��d׃��/T�j��X��BX7>{��ת^5CP]���'�_����N���Uo><���hs�x��7���q��V�$�_V�	Ir���V_��	��'h�W_�0��	�4��s�� |�	���Z�GY������U�b�ȳ�o5H�g��p����
-�z��[l��OD�<��$�xի¯��nJ����U12��v���W����z�|���.T�*���d�T��G��l����Շ�~5\̚/1u��zM�S�o5x'�@C��]�9��Ǐ_�ɮk���6�:�<W�����'�T�%����#����
�'� � �`P)Ay�W��շ������X�V�S	�pL�'cN_�YVȋ�~2� Y�d/V�Y� o`0�pU�Ea鶩�bƯR������*�IX�cUo1N�<�4_!G[u���g����y�����!X�k��J��>MP�E����7����ds�����`���Kp���	�΢Xw���u�����:�q���/�r�'Uo1l�8%[/;kŪ3;��Ή�N����$'���-�34g	�Bl{~I�'C�5�5�p*� � ������'دjo��	���/˿��5����s�c&s���<��~�3
-s�|�����/��Dg�h��x=�7��{�C����m�hoo����a��_mן3�7rf�zgnA~U��;[��V‘�Ͷ�k�fA��R��b43n# x&l���<Q�D`M­�-������ς������[w�~?I��O3����wCJ�W�j���&_�e��T��Q��R��Jy���_i3x��[�c_�~f_�g�����5�?�n,�0(�������+0>3�E����s��E�����{����?�q��}��5_��/'^mo_e	���?�d�|���w���%�l������!��8�SAR�s�p�4˿R��0'?e����g	R�3hd��r;v���slV���;Ŀ�Z��L~y{�Ƀ � � ���ժ=�0�MǕ���w�8�����:>TJY�l�w���h�Tu�*ǚ�?�wWBoz��7P��3^!�M���:��Z{PE-�x���y�=#o�Y7����)�ğ0	&�kB~O�g�ޖ�2�������[�_Q�ٱ��π
-8u������i/�_��,���r�n���9�;{��v}��7�^�3
-s��s�y��v�Ǭ��$�ԍۏx��G|�܋��I�x����oP=$J���۾�x_G����u�C,ٷ��A���r����wI��M�~�رO�q���\X�;]՜[ٮ��ώ�	��{炁�c�+��l7�yw���X��C��C��F� � � X�M��-����[��^Tc�w�-�S�}�[� �71 �M�5��Ą����y'����=����u�pY2����ӧ?�u}@��Fh�sbb��˜/�i�KH�>`���OLT��M��?�
-pڝ���	z�^��@	���u���3����Ĝ�������_��Ĝ�ƺ�*3_�����>��o�t;W!!˞�X�%��,sbb��B�>th��'d�sx7K�n/�W&��sbb�ެ�������x#ӿ�Q���91I%
-[����kys�=1����R,Du��f��z/��XЗ"0�kNL� � � ���R�?��o������z���z��UCG�v��xL�M��%�Hի�A�����N�-�oQ�jP�T�j��ת�j�z��UL�%Y��X�ת��TT��`M{|�����+P��V6�N�u�Yh*⬌����z��=-��0<|ԟ�F��K	���T�����k�j�����د�~/)}�C?C������c!�V��U��˿�����T�0I�@Tg����%p��[��/�Җ9s��?����j��������Ē�֯������$�V˹s�>I�
�f�����rX�G�y�\��F����	^sb/�m�1��!๶�aI��$r��_�����&�?��<?%^'%^G�d�K@�
-��pj� � � �{'�������7��OE�����y�[�������j�Z��p��W�?������G��r����Q������M����_�¿�v�Q��YcK����s�A�%��FTǠ�۴o����&��t�+Em���}�V�j{�K��@��������V[d�UΉ�N�F������ 
-	TdW��-���G����_r�
�Q3U)�~��{�hJ0�}%���TL�VŇ,�P;�Q�ƶ��w\�-�c�ׇ�,�㟪^��'O�p�yU���z�Tn��>��OWPli��:%��v?{K�{T'�>f�����x��X:5K�p�)a6/��/��/V�,4Bpۊkt����gо�q��d�}{7
�ɋu�o�?��Ylٞ����a�����M��ߏ��c�5Ίt�K���G�ON���<e���^��@NJ�;w.�Os� � �`#���ꅿ�����'��I�1�U����O���Щ�������������0�ki3Kp4�zq��o�O��,IБ��@`&�Z�~Zǫ�{��b��u<��e��tS��'����Ş����^�H��䋎�Dx�����YJ�A�?��z�����%Q
-�Yi�]�;cH�J�$�7����((����3\���4����=Q��~�ҭ��R�� ����K	�(���>	�6C�j?��T���ڷ_����L���`���/ßj?��T���ڷ@�k�j�������������j|@
�����7� � hɝ��㼀�L���!	��8/h��2�~������xJP�Ӿ8/��8/�N��4���pI��R��xx&���dN���1�$(>�R�%��>�OBǽ���Ov0�~�������S�';�j?��=�~�����L��\�j�AA�}������;w��8[���h���O����B������G4��#/a6�or=	Svww��:9L�=U����M��'��z��<\�7�����W˜�W:���K?[u	>���jI=Cu���j��mS�ի�2+�^�i���>�k���B�;��:��8����`���p�:�l���W�ՙDP�?W���^FoP�x����9��o>}0 �Ϛ����,��������_��>	�٫�j3+�yح�-�?+���C<h��  ��m��,������ �d5m��J<F�'��%�1���x 9�������Ds�:f �����q�x�1�7�9�e�%���	}$����ς=�!�^�]�!���KQm(x[W�����t�9�~�ϭ�#�zbU�L�q�y/t�D��A�����_m:0[�ɏ�ƚ���t��{���I�k�����/+۳���S��د�1s�uL��gv�Nǎ@E[�kt�����1��;_�1���/�L�m���O���������!�$����>�����/���v=�f_~��d�U�㞓#��?Z��X�/b�b��̫^˦��Ɔr����,� � ��9��&��eؔ>D������
��okB���,������ň��@(��p:�⼠I ��$� �� � ��~��%W~��d���e�?;�T0���1�o���Vδ$���ovvH�M���/+�4HI�>���vS�_�n��N��8�:��ͫ���شU�,)��n�R�x[�~=���L����X(Ve:�j�Պ���'�֦PJ��Nվ�8����A�O��X��w�k�w�K	��K�K
-��E��j<~��%Q}�w�`_K� L�����:���PJ��J+T�俨��/���CI��F�k��x}��}5P�
-����Y�'����J3�P�$ԯI����V)�&�$}���>�w�z?�j{��g���h����:��t?E�o5��#�ɸ�*9~�x�� � ���v�TH���8/�N����?�j�Պ���{�KSJ�t��K�K
-��E��
-W~��%Q}�w�`_!Q� L�uB/��	t()���V�D�QA�y_��}���)�%����J5P�
-��k�����J3�P�$ԯI ��`%�}�(q^AA�8�{���YR4^5�[4^�A�ln�x�`n�xA]��E�uP��E�A�B�O@ƈ�o�j�D�}�1m�trc]��R;�騶_�Sz?Y�[R4~���<���A
��t�%�[4^5�[4^�A�ln�x�`n�xAAAТ��r�}5�%IVɴ��@�����
-�l���� F�N����e���Sq֠ӯ���f3�<o3�sd�g�-��i�4���p� (���X�~t`�-H֊Y��}'O�|�����2(��|�v�fd㰤��c�,�z��e�db>n��f�|Et6N� a�f�S�3�T�l�����c߅�i���Z��%�OJL��z����X���#tP''6�B�e���Q���n}�WuRb���a���Ig�]�N(Xf[�/���u�vW���[�<3�"�M��4�N��@������$X���;�C|�5~��V�!��M@�	�̟��
-��W�{t��{p�������j��?�+���ˉ�� � � 
*������M�>X�����z��o����i�Y!O	����-��,޹O"����>��x?;LL�7�b	�-P�%OV>�� ,2�hU�R0)���_k�����?9����Ft| ����+��T�>�p/�u��Q�W�i�	��A|ߨ-������?�~�T���~6|~ui��m7
-����#	��V��0���ЇR�h�^S�πO��
-�����q�H�@4�����$� � ����>��,��H�����tl#X�P-;s��tl#X��V����,�������=���Y�<�ۯ�/��/��	�d1��yEkw�8�����l^��m�
������m���I�ܣ$������6�O�m��ƌۖ�ӵ[��o��S����}���ά	�%ˉ�|�������|4r�*�D@�O����}ZG,b
-#{��݂x�����Ch�7����+�-�v�LZ�ZlK:	��*j?lAS�=?[�0�K.�d�,�u�m����xb���|dq��+���%��������4ؤJ���3p�رe~$+a�oB'N�8??��
-�ڬ����ܞ�'β�AAAL���|��GZN�5'�����{�x�>�\Bj��TB����01���%�@E�|�:`�VL����`RگX��}�P��t�Z~��?I��p/kD��'P��<G�ߢ�}'��׊�f��FQ��?G��0��+�;<<Lo�Xtr�ΰ���S�g�����=�jV`1f+>��}}4,���A��>���>�z�E�}|B|Vx_��X���o�{E��� � � �o���{~�s�E��"��Y<��ϼG0���:&T+�ˢ�H���O=^}ۏ�n4t���^����%<��:ے+�{��>	��|�)h�$�evBg������Xп��>��&ꟁ�]˘��uF������x������{M���	�������|
-�U�o;pz^K��͌�9���
-p<%�%�e�k��O%���v�ф6�F��o���=� � � >~�A�/^}�v<%�������^''���-���-/����R��:�6�F�vpeA�m����a�C�DJ0Ƥ%P+>��x��:������ۺCD�u�4>T���x4���%���-/���R�j4�h�P�F�,9%�?�ܧ�x��n��KII��~ � � ��c����ߗ�:(�+�c���`��1�������h�yn�xP�T#
-�L���ɶ�����0ġO"%c҃��DJ�E�E�l,4��[�'�o0>>Tt�ʉ�L)@I��`��PQA-@�)U[�Fs�����8/� � � �o������ߧ~F��n/}��g4�V��h�q���`4Zp�K4N&՘�"�����z)�8YjB|)�:'�:� %^G�Y���շu+R�~��4�g߸�[�`С�~�QGcE��hzN��5�[4^(�yAAAAP������)�c�����Ѩ�ZQ?�Qǵ�~�,Zx�K4N5��Ȅ+�l�^�h�,j��DJ0Ƥ'��R�H�סh���%��ױ�~�I%��jE�V��Ɗ��F��t���R�j4�h�P�� � � ���x��ǔ]W�՗���=���o��x����~����&϶�gZ�������j}w��OF�푗�ϙ��dl��hο�fv�ص%�U�PBA���'�S�::J%��U�zڿ1J+�8\1����T�K�.eS�oaT
�շ������{���X����g�%*��+�z-�9�����5�����6��\!�eu݆���t��|�59��x;u^#>�Gگ��ޗ��g���s�Q�t�8R,F{�>Ծ�֑��&NԾ3P+c�Ծ�}���N�T_E�[������}��>O:��DvFAAAC�?�O������:��M�A[�;�R{���A)�����=E����n"啘
-W+%}[��_��c^}ۮ�-�@&@R8�rhc�-@���\{�-���ѧz�•��̃�c�n���U�NC�����L�n
Pب�J�/�Y�l58�j%��@Z�`L�[l�n5(	l~:zX~\���oI�$5#�I����[�R�I%�(ǎkF�u<� � � (�ʶ+�g��_��:�/�6����yDT�̀�}}b:�_�[0[5p�ٕ���`L�gA��VGR	`9}E��>�݂mW�fP��>�O"���S?G�N�3�[���A�8[M��yOȾS���K�)�9�9��`�Td���޾��
��S�[�Y�3V�XB�����{����z_�9IM�P��5Te47\	�zAA�F��s�ﯨc��:��dW!="��������;	`r�v���R�@�����=���ڿ1���o�H�a��P��z��N�:9?��^�5PN\��[qΏ�m��@u�۔ڥ����U`�~�M�N��M��o��R�U��z��Klcl|Ɗ.}�"�ge1,؝��|�QAA�aP�Gy�)������T��ok9ߕ��11��|aZ���
-(���N�?jϑK`c��X��~,�/���.��-H�xSK	��ɭ���l�c�+�*��\��rz�Q}��>�O��:?�4�&��S$����x�Ne�;Ut>��\��Q{H�x^T�;����T���q�I@���wsq�ĉu�_E�� � �`vR�V-����?������ݑ��F����&���ޯ������d������~	���cE�{����?_�K�F�@q�
-�
���z��䀮/ѦDmڒl*	\�>��.��o&ъ��*�����Rm	�J�l�m[�5��MnPCo��F���u=o{�j����j�-x%�}�:��m��{�/�!F�n�>S��NP�`;UnC_J>T7+�=P?�g�@���lUo6��샧V@�a�:A0<Pxi���Uu���M�y�����)�$��4z�/CS�9��������d:oD�Xk���oTgch�hߊ��ʔ}[|6��}���b+����X��$�oh|��վ�����ڌe�wlo�W���l-�g�j�G� ���I�l�]�H�
��H�H�S�d.��Ja�~�����Y�/ArR�;����}&��>*I�:	�&쏴�f��WJ���tr���vAAA5(�i�����2՟_OU�U4��Mޡ��� ,Ŧ��M����=���M���ό}�$j���Ŕo���u��w�4zɶ����w�
-���X���g!�m�}6۷%�~;Љ�O%7����O�:�%W��o��@��[ͽ"�L�������T����}��ώ��~	���E���%կvꗔ��(ٗ��
-J����+C�ߗ��Ɠ���.���w꽢�z���d�����R�(�{�	���mO�+������+��x�6���G�WJ�8g��{��{�����R*�5�=D�	���28�C�q=����^Q��&������s	X������}jP{�{���0�����oV1?sBW�?":�%xM`0�p=B�h"�goR�H� � ���v�(����F��	�TUBk��9/(�������>
R��O��b�77���y���Vȫ��{^��P\���:!�3�Jnb�X��@��V+$V��+8.N)k��U�R�<8�P�-4�~�i�Z���R��E��Bi�DѾ��-�񒾎�}�Ձ�+����>��B�a)a���?�a����}�����{{���
-h�x�CIu��Ý���������j��_%��*޾����8W�b?�~����M@
���׸�k�?4���[u�6N��
-:!�O�3W�J�=Vٳ"�~�������������
-=/���Ǐ� 	� � Jl�����G�T[l�=/�����N|� AuK�@��jŁ,巚{E���|A1�%��xY�@ɾ4�Q�
-
-W����WJ�*8�0�V}�+���u���b_�p�����E��Nj
-(H��O�/�pK��W9�:~�8�/�9�D3O���}��x�*������ � 6�vs^����l伀5__�OU�'�:/��ܹ����H����t^�����(�����8�j�ʿ�����w;���ڿZ����X:����&ց3���T��VH�@5�Wp\�R���P��lSt����OC�'� >P����XJ�4^�h_R(��(ڗtm��OѾ�}k?ђ,�?\�������Ce�}1åNj
-K��/*�0�7>վStVJ�گgPr��8��e��*y�1�?�j{�G��z?������LOg�ʶ���1�[�?W��}}^�\!� � ���r�j�jφ���y͌o��*�h��~TQ�[�%�\���sp���[�f��+��:M��&دomm�Ʈ����Z�o��I���]�	4�����`3|����h_v�eT�E��f
-�P�E�e~�ov8K��^��Z�q��:s��-���R6���B�7��_R�E��~�r�b䷨�"��z�`o�������.���S��%�Qx�p3o���ș�}xx����Z�c�G�g�K�ϳ���mڗł�h�&��T]��|ў�����	6�/u,	ip<���V]�_�7��E[���~��`�	��~�����>��ې��cA	���xpb+��7���|��u���ZQ?@u,��P��� I%����>]ugG�~ض��%����l���+q߼�@���f�����q{�rod�O�g�رc����Ol�;-���?� � �`�R�����e���Y�=��^�K�G�o�^TY�&T�o�l�����[���J�g\�?;�*>jX��^-�-��
-��Y��_�^g���̸�._�?;�@گ�C���W����| �W��k�9�f<7��r���zN�?�R�������P�������韝\�K�]f'�����M�o����s0���/�T�����gARe�\����gm�"��e���i�S���'�JHǽ�*����ݿ�q���X�������D.;�ׄ��Z�59�j�ӫE��`Yti�n�^ӧW�%��4�;�z�O��V;�꫿# ;.s6�����))�� � �N�]�D['8��:ޢJ����ܳLQ���N�?�
-��$�_���+~��'���/o.P���`(�o��_*P�v$������������ޗ����){�{���d�pn�H��N�"��d9�Ztis��q����ޗ�g'(�?;���?Y��������@�/���f�럝\ Mt1r	��[l�fd���1���	'(׿& �#�R}}�m��޽�a�8�E�ub^��??P	l��"珫��Y�Ztis�T�[�d7x`�8nFl��K���S-ϳ����w>�4J9�}����~GV�W/� � q�̙��$��,K���}�������>�g�\۪���Q08�Y�I:����jd���x�I	 8K�h�x
Zʭ��|lp��T����`�
-؃�t�-��=W'��z�sП�gA�c�A�E�v��R7�1�����*�{Fn�{ڼJ^�u<%��@��2������ ���Kʗks}��9YRp���~���a>1�{۔�^�@�c�;_��Z�N�&�B�O��r�ئX�W}b��.�@�A+�T��'O�|�Q�jߥ����]�?x|��c�DLj����l��ly��K�j������y۔�^���o}�Cg~�'p�W|����ڟ�d��g�^ф��,�wX�[�9BiF�9�����(1����?��	PR��\ۗ�uL�dQ��q_.!^5NAAt������^�V�|
(�O@���=����N������'�nrc�fs�,I��/.
a��:�Ǭ�����-�LJB�{c�}٫��%:W�g
�����,��?�.|f�������|�HѶ=���xJ�:�ʩ����^����'�G9gK���/Q�LbI���9YR���(�q�[��3�sܯH��E
�:>H����8;�z>	�
���bA�6g^�>|�
-��<�3T��ޢ��.��j��@���1�+Aǩ�І��~��y�^R��s&:��|���C����r���3���h��s����,%VAs�JnBYj�LW��)�	u(��*�
xI`��
.���%U~ϵ�\��4Nu�����U�AA�$��p�*����d�����k>)g�lp�����_��|lp�{-�apN	��N|����2{�E؎����m��>*����0	֓U?�/ٞ��4�������M�H͒y�5�%�#�f��*�!,�@������N��*���Z��c'�:���s	�q� � ��C���׏v|��v����؎�4LNb�x&%��������v��C��$�����[����|�߁3�K>h|�v'>_��/�
-��Wr�R�d�~L)M�CiF�T�l��HC�opY���(��{���z?�q��C︯?��'� � >��_D��~�I�뷷��l�n������V�Ǩ�llmm=�9A�4庶�e�A�}���9z�8�o���c�^����9y{��ߢ0�����M�{{{�[Č?��3��B�hlW�����-0b��q�B���g���/�R��L�E�J�n���^*{�U8�z5�|���êײ���mj�Q�Z��;T_��,�Uٞ��Uox�������t�[�Z2�\���W�`1Ӷ�2�[C%����������%�>MS�&��V�!�
-�~���i�S�5~�(��
-���k�1�[C�vpŃs�ĉg��4x3�m�[c���/�&�z��={����^T��ܹs���|�����
���������fl����ՠ~ �f�%��A����cǾR���������7U/�-�7�1�P���gI�=�׋�:V?�����h�dR�v�a"��U/����]�k�	�mA~���0��t�w���~��?
-��H��U��&/��čC�iܧ�q�������8���p3�e��z����%:��
-��ߚ����y���.��`��?��Y�/�����Un��Dp�J�v��C��R=������ڮ1/�9�y ����_���W�����6� � ���˪��ׯ:9�\�o)�z�uꈞ���?���7��W�����6!��+7;|�Or6C��,5�>���הn��ϾS�W%����>�h����r���ܘ�C�P���?(��a�j
����b	̭�Nh����kE��`������bz�
-֫5h
-�E=�@W�<��׾~�����}�HU�+���>���T��KQ`1����?(��R똅L�WZ�!����+P�@���������	
q���ת�@�گ�N��*��ھ��c5�����;���9T�\?�te� � � ���s��m�����:mz�?��E�����Y�����>(�l[����W�PM��/�?{{{��:jQ�ꪫ>�zZ�'a���AP��շ5��D��&OT�՘��X���K�*N��ۚ�`O�C�?�l{_�N��3%�1�ߧ1���0@����o^���ls\�c��\���>�X):N%�q���XY�2�K�b��*۾k���oY߻TNj%u���Ŝ��(��3��{�پE'�{�-b�;��d]�xU����}���ȏ�!��2	��䰠W��0�W�x5��W`Hd��e�$,��X	{�=bL�Il&�~$;~��S�/� � � Fs���
�+��mT=X��Y��/���>�Y��&|D�)����/g�3I$��'�3�hP$����g�&�c5U0^!�*�{@��f]^g�X%��%r���b��㜤�xUiy��;�)}��%�L�(���۾���|��9�c�Z��������8ζ�9� 4V3�A���˜����y�wF�U	�#���/C�F��b���C
(��߈L�$+�0���U'E��&��o�[�-?���_��9\����?#:��~�L��x5X:���a&�@2��j�AAAA�F�4u�8/8"q^�	V*�؎��g��z�&�|�l�yAAR	bfg��<�����Ɖ���v*�� � � �`Ӝ����>"/���}D}�G���G��V|Qs�XY���<��c9}e�W�M�G��rY���� � � ��=�A�L�7�K/����������o0_|�ڙ��MѠ^`��c��u�
-l��`��G�3E��`.����N�ض��<�9Ϲg�x�I���v2Ŷ��:Òx�I�n�}�L�ma�DgXo;�1u2Ŷ�Nt�%񶓘�d�m����je�� � � � ����8���:5�����IEND�B`�
\ No newline at end of file
diff --git a/web/modules/ckeditor/vendor/skins/moono-lisa/images/arrow.png b/web/modules/ckeditor/vendor/skins/moono-lisa/images/arrow.png
deleted file mode 100644
index d72b5f3b8808bd89996ef62f845164d459957a1b..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/skins/moono-lisa/images/arrow.png
+++ /dev/null
@@ -1,4 +0,0 @@
-�PNG
-
-���
IHDR����������gr����*PLTE���999���999999999999999999999999999999999�}U����
tRNS���	*-cf�����G����7IDAT�c�4b��
-�w����Aw������ vL2`���}���� f�b��JUW��Q�����IEND�B`�
\ No newline at end of file
diff --git a/web/modules/ckeditor/vendor/skins/moono-lisa/images/close.png b/web/modules/ckeditor/vendor/skins/moono-lisa/images/close.png
deleted file mode 100644
index 40caa6ddfd01c2a26947761de218e4ce8f5e361e..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/skins/moono-lisa/images/close.png
+++ /dev/null
@@ -1,3 +0,0 @@
-�PNG
-
-���
IHDR�����������a���gAMA�����a��� cHRM��z%��������������u0���`��:���o�_�F���bKGD�������������	pHYs����������tIME�
*->���VIDAT8ˍSAj�@i��|%/$�ŇB��C��zl 9�B�=��$�ȵ��^,{�إ:٫i�٥���afW���럈���ǂ�@S�J"�.0E6af���Sջ�]T���8�W�R��-���B��"!�U}53��2��+�eY������|��1ƹ�|fJ˲��EUE[f�c�n�����4�)#�� ";W����E�r�狢X�dϏ�"�������{����<��u]��Gm�1�xwraBXd{xo1��GH)ADٶ7"r�#3o2wn#���v68�䭪��١�{f޶��ۨ�����mRJ^�*<�X"B>��lv��=��6��T~4����%tEXtdate:create�2016-07-19T13:30:42+02:00�wx���%tEXtdate:modify�2016-07-19T13:30:42+02:00i�������IEND�B`�
\ No newline at end of file
diff --git a/web/modules/ckeditor/vendor/skins/moono-lisa/images/hidpi/close.png b/web/modules/ckeditor/vendor/skins/moono-lisa/images/hidpi/close.png
deleted file mode 100644
index fa00f4fce646958807479472de68a95c5ac44eb2..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/skins/moono-lisa/images/hidpi/close.png
+++ /dev/null
@@ -1,6 +0,0 @@
-�PNG
-
-���
IHDR��� ��� ���szz����gAMA�����a��� cHRM��z&��������������u0���`��:���p��Q<���bKGD�������������tIME�
!������IDATX��W�NI��z<���!�9'h�
�q��"�/��A��Q���d���3չУ�q�A��eK�=��UuW�?��D�Ƙו���G7�wrr�!"03� �3CD����䜜������s��J%�M�$ӵ����_��i
-��=����Q.h��q��-CI�p8D��@\>��(sTL���-���nnn���h��r��*��][yW���%�����k�x
-���0�Z��k*_`�z�	���>��㜬���1���@�*=??ω��.c�`�VEs'�F��7���Wp��q��x��=3�C	moo�)"�>T��^��ul+�
-�@Dr�/���tZ�ZFQԺ�����b��a��l��S0ƀ�s�4�N��n�D��}���qo��D��&���tߴ�_�R�������x<&f�����O���$���7��+�\RJ}������Ě4M���
!M�\cYG"�Y)uU챜�]�'�b�/7�u$"PJ�%�+������|�)����w]~�	���2��kvs��`0X�]�^ߎ��	"B�Z�Y.�Sw6���"[E뢞��S;�l'۵��4M�>d��(RV��`Pz^�Զ���:b����Z�v��.:w��H�:����nw�h�C�=��3��f"�Y7Es���Uj6�;��l�sh�/��ӭ���2��'���7�������/c�h4�F����1x||������g{���V��:���G�/l��0�-���b��a�:��ئ���?j�Z�����9Lj�h���J
�I���8��wZ�I�^����^�DQM]��q�:�7O]���A0)�(�h�{e׳�r��j��ݳ"�Q)5)�XRJMD�/�j��=9WƱ� �pk�"�^vC��D�])��
�ڲ2�q\@k��lM�$YA�l��i�����^����`"^9��A��-_P�������Z�e��u�ʥ���<o%k��0�0�J��B���H|C�!����%tEXtdate:create�2016-11-02T13:33:00+01:00������%tEXtdate:modify�2016-11-02T13:33:00+01:00�\Q����IEND�B`�
\ No newline at end of file
diff --git a/web/modules/ckeditor/vendor/skins/moono-lisa/images/hidpi/lock-open.png b/web/modules/ckeditor/vendor/skins/moono-lisa/images/hidpi/lock-open.png
deleted file mode 100644
index c89978907d0827713ef3332d20e4ac7ddcf5c458..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/skins/moono-lisa/images/hidpi/lock-open.png
+++ /dev/null
@@ -1,6 +0,0 @@
-�PNG
-
-���
IHDR��� ��� ���szz����gAMA�����a��� cHRM��z&��������������u0���`��:���p��Q<���bKGD�������������tIME�
!�����3IDATXíVKn�F}�m~�����n�`2�l�,l�ǰ�f3�	��U��"^$G�)�-Rͮ�ETD��l��)��,v�z�����-,�K�����:�D� " ��>e�Z�u��l���3,��O���)ڶ��̼@ eDc��0��9���k<==�������>�Z��X��sfF۶���f3�1�
�s����k��r	f�������0�s�."���9���7�V+\^^@i���9����|.D�1�	c�]Q""�M���h�M�bd%�i.��?f�9�����u}�^��u]g��2[�u�џ����TU�}(_
-�^�a0k-�|Z�VDDcλ�#""k�;�-`����e�ѽ�4x�KD��f��|-����6MCGGG`fD'''_�[
31&���1��WcL8����Л����R��p���l�5Q��0���ݽ]��O��W������
j q@�'-ߓЫ�����1���5"��`�����g�G0���m��9�B��T
�k
-����������e���Ә�����t-��v=|>��He��
-�u]�w�/$wH�a��k$��)6���.�+����,o����������l(���I	��6�[�����D�u��g���$ș��1d#\�bYƊHi}Bو(�%1�iv�f"��(n�/��(n��6{�H�a�m�}0�`��<@UU7���x�,
�ԛ���	S��`;绋0ga��c:�l
��͊����P��U\��o=gј�?R��+Du]��$��s��+F�+�1#"�m;Hƌ9�HK�����o5�qW���%tEXtdate:create�2016-11-02T13:33:00+01:00������%tEXtdate:modify�2016-11-02T13:33:00+01:00�\Q����IEND�B`�
\ No newline at end of file
diff --git a/web/modules/ckeditor/vendor/skins/moono-lisa/images/hidpi/lock.png b/web/modules/ckeditor/vendor/skins/moono-lisa/images/hidpi/lock.png
deleted file mode 100644
index 25ad0f4a31906d0d7f13f55e2ed4e174aa365a48..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/skins/moono-lisa/images/hidpi/lock.png
+++ /dev/null
@@ -1,5 +0,0 @@
-�PNG
-
-���
IHDR��� ��� ���szz����gAMA�����a��� cHRM��z&��������������u0���`��:���p��Q<���bKGD�������������tIME�
!�����*IDATXíWAR�0��Ĝ�8�o����\�?��3�RE��_�kN�9�Ċ���\�,;�S�-�G���#��|��j��fk-T$�KD��$��'I�,�0�Nquu��|��1}������CMD " 	k-��u��+�j��������u,Č$T�Z��~��@��(���UU���#oooPՅ��PD�����?���UUa�ݢ(
-�y>,eY�Z�� ��n��<�)"3?-$a���iJ���,��XkQ����u��e�_��a*"6˲��n���eYo�t2�W;IL&��k4�ׇw��:E�3LD`�� �$I��a��6�Mo�N|�N�/NR��*_H~8U�(�RF�Q�C���/�J���1�Nr�cn�N�����"rk��%������CCQ$W��׿[��XU%��w��T�����d8(�hZr�w�U�`�nc��șS�`���}
��a>��0}T��]'�U=:�����'F{�@��1�=��,BO�'-<-ݳ����4��r��NN͎�X4��q�˷ۭ�Q،�1���m��
QGo't�$,����F�Nc#
- T��b�t�w<?�����i��$IÆ{?��s찻����I���>??���׾�JA��u�����α^���������}*Ā�a.M���K'M�G.I�΢�2:��u��1��~	���䱮�װ�,��t7���-���v�p�]�}�K/lӡ��@��W�>�q+����b��ǿ΂6������RIdY�3\'z�DUU\�B�}�e"kmk3���Z���4T�z����%tEXtdate:create�2016-11-02T13:33:00+01:00������%tEXtdate:modify�2016-11-02T13:33:00+01:00�\Q����IEND�B`�
\ No newline at end of file
diff --git a/web/modules/ckeditor/vendor/skins/moono-lisa/images/hidpi/refresh.png b/web/modules/ckeditor/vendor/skins/moono-lisa/images/hidpi/refresh.png
deleted file mode 100644
index 117a2d4a4715551e735a14ac0a79d40c9affab8a..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/skins/moono-lisa/images/hidpi/refresh.png
+++ /dev/null
@@ -1,10 +0,0 @@
-�PNG
-
-���
IHDR��� ��� ���szz����gAMA�����a��� cHRM��z&��������������u0���`��:���p��Q<���bKGD�������������tIME�
!�����[IDATXÝWM�E�ޫ����D"arH�\��O�xT��
l�r�ѣx0����x��� ^�i	�@��S�M D����5L�����.3�[]�B
-�������ӄgkkk�3w����<�R
-�N��,~f
�T!T_J)677���5�G<͡���X^^���<��y��<�_f��4��̥�z]��H�KKK���=@�iaB@�<�!�,�f~^J�P�p8�<�Fvvv�8{���z��NC�G�^w�(J�:"�WJݛ%��!���ye�9sR�B�	�I({���,����L��ڣ)X__/	�ڤ�B�$����8�8����
-!�W	�3�]����,�*�"̲�[!�9!s-�3s1�y�KI��a�?77�F�1F@/4 ,�~�f�1˲>���/-\1��8�]񝔲�>77� ����S�Շ���΅a���o���"ד椔�n���Z
��;SȩS��ƍ#<��oϭ��G�)������,�cܼyS��$s�f����	���V�@��v�ÇOq���8z��<�[)f�Eы�Z�da�$_{��,%�WJ�����!��Z�����;�|4�^���SE��ŋ��?m��M.���8cmm�N�����Yz�ϲ�뺥l�G����Ǧ۷o�ɓ'1K�=G�v�A�
-M
-	1s��\�	��H)p�d��F�tV96�Q[(���L0J�1y�P��ݻ��Q�
-۰ʹ��V�(�j�q�M��B ���u����I:��g�u���7����	s��=%"B�р�Y�!�c$I��hT�%�x[)�.= �R�:�f�����N����y�ּ����}4�M4�M����*�e�)e[J�%�|+���w����!@���|�/�ED�*��U�V�a4!˲G���̈㘂 ����u�(��TNWJ�\�m�d�R���!I�����w�����X���f�39����i�>�RV�ʮ�q��������ٴ�i:.�v�GQ������h�ǹnCmqRJ��������v���R�c�����:����!��/T�T�+̬��UY�/�p��l�%���u�kZ3��8���?��"Z�8�O56��$�c_��슮^�:��p]<�V�����6Lŭo�k|���}���u�7G��B�$d�|w��3PJu
1�!\�=P�����X�}�ᐈ��	�[����Dti8�B�x���<���eL��J�a��GQDB��Dfé�������v>	ðP�D1�sAp O?�h*�c���J),//��n��a�w����ϸv�ڴ��n��k�����h�ws��x
-!��i�����Bz���	����%tEXtdate:create�2016-11-02T13:33:00+01:00������%tEXtdate:modify�2016-11-02T13:33:00+01:00�\Q����IEND�B`�
\ No newline at end of file
diff --git a/web/modules/ckeditor/vendor/skins/moono-lisa/images/lock-open.png b/web/modules/ckeditor/vendor/skins/moono-lisa/images/lock-open.png
deleted file mode 100644
index 42df5f411136270482f7af50e8553832e36b7769..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/skins/moono-lisa/images/lock-open.png
+++ /dev/null
@@ -1,7 +0,0 @@
-�PNG
-
-���
IHDR�����������a���gAMA�����a��� cHRM��z%��������������u0���`��:���o�_�F���bKGD�������������	pHYs����������tIME�
*->�����IDAT8˝�MN�0��s�5H�e���7��Fs��s�mܼY@Q�T��E����sB�h���r-�j6� �
-X��Ɓ�����R�%��u=��7w&ɔ���^ǐ!�J)w
-"�$#bX_����$�Ԥ������f3��5���/����m$����p�&��#$=-��Hl̬���f��/�� ��FRJ�
-|PJ9WUuڿ
-H~�1n|�ǟC���������O-*E���%tEXtdate:create�2016-07-19T13:30:42+02:00�wx���%tEXtdate:modify�2016-07-19T13:30:42+02:00i�������IEND�B`�
\ No newline at end of file
diff --git a/web/modules/ckeditor/vendor/skins/moono-lisa/images/lock.png b/web/modules/ckeditor/vendor/skins/moono-lisa/images/lock.png
deleted file mode 100644
index bde67727d775326b472106b5e0a82f7744de2fc9..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/skins/moono-lisa/images/lock.png
+++ /dev/null
@@ -1,3 +0,0 @@
-�PNG
-
-���
IHDR�����������a���gAMA�����a��� cHRM��z%��������������u0���`��:���o�_�F���bKGD�������������	pHYs����������tIME�
*->�����IDAT8˝Sɍ�0#�#�H/������t�n%����X%�#�I�D���Cr�3��NИ�xo/{���7�+X���	$�Q�"rW�!�@UD�^�h+j�����RZTu�1��x�����������{��xO	�I�=�Է�|���.���G��K�NL͓3��94�9�D�?2!�T!��Gι9���n=2�9_�����u@��Lq5O��af_g�7��@b{�ؗ���%tEXtdate:create�2016-07-19T13:30:42+02:00�wx���%tEXtdate:modify�2016-07-19T13:30:42+02:00i�������IEND�B`�
\ No newline at end of file
diff --git a/web/modules/ckeditor/vendor/skins/moono-lisa/images/refresh.png b/web/modules/ckeditor/vendor/skins/moono-lisa/images/refresh.png
deleted file mode 100644
index e363764e3d0886333a3b03b04f5502d4cd79d133..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/skins/moono-lisa/images/refresh.png
+++ /dev/null
@@ -1,4 +0,0 @@
-�PNG
-
-���
IHDR�����������a���gAMA�����a��� cHRM��z%��������������u0���`��:���o�_�F���bKGD�������������	pHYs����������tIME�
*->����IDAT8�mS=�A}U=�;;�%,肗l���-�`l�o�~��f��#�c�n1��
泧�L��f�+h��{U]��V�꺆1�9��D����}�1�HD��z���|��:��?n��9\"��b���v��>Xk"i�^����Yk��#�����q|��8���B���<���K5MsFD�|���F?��������M��{�G"r��>��z����-�p�m���n��N.�C۶��w��Ko�f��q��l6Vz;��P�eP�����TJa>���n13�
-�_$���1c:������OD��8 ��y�'n�	N�e	����w�A�$PJ}�r'y�6��k$I���n�*��/��ȓ�,�o�(���z���<��r2�LBǴ\.C5��k�����^|����x<���Z{^�Y?OD�Zdf�R�b=!�2�X4M�'�3TJ!�"�	�����b���%tEXtdate:create�2016-07-19T13:30:42+02:00�wx���%tEXtdate:modify�2016-07-19T13:30:42+02:00i�������IEND�B`�
\ No newline at end of file
diff --git a/web/modules/ckeditor/vendor/skins/moono-lisa/images/spinner.gif b/web/modules/ckeditor/vendor/skins/moono-lisa/images/spinner.gif
deleted file mode 100644
index d898d41fa7e0d56b5c0da930750e108e50c14d72..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/skins/moono-lisa/images/spinner.gif
+++ /dev/null
@@ -1,7 +0,0 @@
-GIF89a�����gggoooxxx���������������qqq���������fff������rrr���eeeiiippp������nnnvvv���kkkyyymmmhhh���jjjwww���lll������������ttt��ڠ�����������������������������������������������������������������������!�NETSCAPE2.0���!�ImageMagick
gamma=0.45455�!�ImageMagick
gamma=0.45455�!�ImageMagick
gamma=0.45455�!�ImageMagick
gamma=0.45455�!�ImageMagick
gamma=0.45455�!�ImageMagick
gamma=0.45455�!�ImageMagick
gamma=0.45455�!�ImageMagick
gamma=0.45455�!�ImageMagick
gamma=0.45455�!�ImageMagick
gamma=0.45455�!�ImageMagick
gamma=0.45455�!�ImageMagick
gamma=0.45455�!�ImageMagick
gamma=0.45455�!�ImageMagick
gamma=0.45455�!�ImageMagick
gamma=0.45455�!�ImageMagick
gamma=0.45455�!�ImageMagick
gamma=0.45455�!�ImageMagick
gamma=0.45455�!�ImageMagick
gamma=0.45455�!�ImageMagick
gamma=0.45455�!�ImageMagick
gamma=0.45455�!�ImageMagick
gamma=0.45455�!�ImageMagick
gamma=0.45455�!���,������@>Iy�)bң�RyZ�liMV*f(����hl�{�!��y�����^��s��]�ⲗ�D��!���,������@:PHy����=��WvJK����������^)�
7ŕL@R�p΍"�S�P�M�!����,������@;Hy����=Y��L��M�g�4��y��+h����'��p=��Hژ:�g�^��&�!����,������@@  �Gi�䁮#�%�BC�ʁ;��}�2���^>���9{0`���BY��U�-�^RcG9�)o�!����,������@B  �Gi�䁮�$%��0ͺoj��.��pMF&��J:UH_T5�)+"Ѯ\5b1ǃ�&̦� X���!���,������@A` �Gi�䁮�u%��0�Z�5��~ֲ���R%��<Ά�'Q��Ac�Zt]V����Yɋ�
-�!���,������@=` �Gi�䁮c�l��0��rM�z����Ff�n��ej�r��3����V�B��R��1f� ���!���,������@>` �Gi�䁮c�l��0��\���բv��7�f�29O��	*u�P�k��M(d
-�(��-��Q�!����,������@>  �Gi�䁮c	�l��N�3��÷T�6�dȌ23a��C�nu�:�Aߔ�ƀ�%jic)bT�!���,������@@` �Gi�䁮c�l���/�����C���8�$`0\���u">��_�I`u�5�h��x�!����,������@@  �Gi�䁮c	�l����/������
�َ����3�d3��	te�5�]u�g����f�!����,������@@  �Gi��u��Xo�"g�p��;��҅��F6�c��Ч�u:M��t��/�Q��x#��!���,������@F��Px(�B��Ϧ� �(��hV�� ,�����C��b<2�p/�;~Vr�Q8ϯ~O�XZ|�]RmLA�!����,������@G@�Px(��P�#H�(��#Q���Sf�
s���\���j��`<��/�y��OeYlI"T\�jLA�!���,������@?` �Gi�b���Xj����5rp��C�� 7;�Vĝ�����L�
-';�K#[l�ط��9��&+�!���,������@J��PH*���0�Q:�����I�q���խ�I
g��2�0b�Y%B�+����n�}DS�Q
-}lvPbNuqBA�!����,������@F@�P��������P:�G���TF�*�*�R�YiS������F+�J�-?�p���? zBQ\U\lVj��JA�!���,������@C@�P�*��PX�,�ä ��.���ҪR���j
��g�������-���I��e��|Xx��[Ok�BA�!���,������@N@�P(>���tR:�LA��TF�f�D�JEkVX T�Y�yytߧn{8��1|�kXY^k��ln�OqPq���BrzCA�!����,������@G@�Ph�D����DR:�L�"�TF�f5;D&���Z�f�e8�����8X(��'�]^��Xmh}Qm�dgV��JA�!���,������@D��P�������pP:��@�	mJ�O�5�@*���*֒�U�z,� ��Dyp������>��Tz�t[j�X�{CA�!����,������@@  �Sf��xi;���	�����Д�_l7{�3��xt9�H&*ͤ�3�[t4�Kd�K��rX�!����,������@L@�Ph�D<ȡ�tR:�L@�9LJIM�	ef���e��
-)�m���b�L��;8z���zh�N�Hf~[�]~�p$Jp{�pNA�!����,������@A  ��Q]�5���U��ʨ3]�-������oyt-O�P�sEUMb�R%^�=dn��-W�3,
-�;
\ No newline at end of file
diff --git a/web/modules/ckeditor/vendor/vendor/promise.js b/web/modules/ckeditor/vendor/vendor/promise.js
deleted file mode 100644
index c4d99120dce5191d0e969c6f7911ba968989e525..0000000000000000000000000000000000000000
--- a/web/modules/ckeditor/vendor/vendor/promise.js
+++ /dev/null
@@ -1,13 +0,0 @@
-(function(v,w){"object"===typeof exports&&"undefined"!==typeof module?module.exports=w():"function"===typeof define&&define.amd?define(w):v.ES6Promise=w()})(this,function(){function v(a){return"function"===typeof a}function w(){return function(){return process.nextTick(n)}}function R(){return"undefined"!==typeof B?function(){B(n)}:C()}function S(){var a=0,b=new J(n),c=document.createTextNode("");b.observe(c,{characterData:!0});return function(){c.data=a=++a%2}}function T(){var a=new MessageChannel;
-a.port1.onmessage=n;return function(){return a.port2.postMessage(0)}}function C(){var a=setTimeout;return function(){return a(n,1)}}function n(){for(var a=0;a<k;a+=2)(0,q[a])(q[a+1]),q[a]=void 0,q[a+1]=void 0;k=0}function U(){try{var a=Function("return this")().require("vertx");B=a.runOnLoop||a.runOnContext;return R()}catch(b){return C()}}function D(a,b){var c=this,d=new this.constructor(r);void 0===d[z]&&K(d);var e=c._state;if(e){var f=arguments[e-1];l(function(){return L(e,d,f,c._result)})}else E(c,
-d,a,b);return d}function F(a){if(a&&"object"===typeof a&&a.constructor===this)return a;var b=new this(r);x(b,a);return b}function r(){}function M(a){try{return a.then}catch(b){return p.error=b,p}}function V(a,b,c,d){try{a.call(b,c,d)}catch(e){return e}}function W(a,b,c){l(function(a){var e=!1,f=V(c,b,function(c){e||(e=!0,b!==c?x(a,c):m(a,c))},function(b){e||(e=!0,g(a,b))},"Settle: "+(a._label||" unknown promise"));!e&&f&&(e=!0,g(a,f))},a)}function X(a,b){b._state===y?m(a,b._result):b._state===t?g(a,
-b._result):E(b,void 0,function(b){return x(a,b)},function(b){return g(a,b)})}function N(a,b,c){b.constructor===a.constructor&&c===D&&b.constructor.resolve===F?X(a,b):c===p?(g(a,p.error),p.error=null):void 0===c?m(a,b):v(c)?W(a,b,c):m(a,b)}function x(a,b){if(a===b)g(a,new TypeError("You cannot resolve a promise with itself"));else{var c=typeof b;null===b||"object"!==c&&"function"!==c?m(a,b):N(a,b,M(b))}}function Y(a){a._onerror&&a._onerror(a._result);G(a)}function m(a,b){a._state===u&&(a._result=b,
-a._state=y,0!==a._subscribers.length&&l(G,a))}function g(a,b){a._state===u&&(a._state=t,a._result=b,l(Y,a))}function E(a,b,c,d){var e=a._subscribers,f=e.length;a._onerror=null;e[f]=b;e[f+y]=c;e[f+t]=d;0===f&&a._state&&l(G,a)}function G(a){var b=a._subscribers,c=a._state;if(0!==b.length){for(var d=void 0,e=void 0,f=a._result,g=0;g<b.length;g+=3)d=b[g],e=b[g+c],d?L(c,d,e,f):e(f);a._subscribers.length=0}}function L(a,b,c,d){var e=v(c),f=void 0,h=void 0,k=void 0,l=void 0;if(e){try{f=c(d)}catch(n){p.error=
-n,f=p}f===p?(l=!0,h=f.error,f.error=null):k=!0;if(b===f){g(b,new TypeError("A promises callback cannot return that same promise."));return}}else f=d,k=!0;b._state===u&&(e&&k?x(b,f):l?g(b,h):a===y?m(b,f):a===t&&g(b,f))}function Z(a,b){try{b(function(b){x(a,b)},function(b){g(a,b)})}catch(c){g(a,c)}}function K(a){a[z]=O++;a._state=void 0;a._result=void 0;a._subscribers=[]}var H=void 0,P=H=Array.isArray?Array.isArray:function(a){return"[object Array]"===Object.prototype.toString.call(a)},k=0,B=void 0,
-I=void 0,l=function(a,b){q[k]=a;q[k+1]=b;k+=2;2===k&&(I?I(n):Q())},A=(H="undefined"!==typeof window?window:void 0)||{},J=A.MutationObserver||A.WebKitMutationObserver,A="undefined"===typeof self&&"undefined"!==typeof process&&"[object process]"==={}.toString.call(process),aa="undefined"!==typeof Uint8ClampedArray&&"undefined"!==typeof importScripts&&"undefined"!==typeof MessageChannel,q=Array(1E3),Q=void 0,Q=A?w():J?S():aa?T():void 0===H&&"function"===typeof require?U():C(),z=Math.random().toString(36).substring(2),
-u=void 0,y=1,t=2,p={error:null},O=0,ba=function(){function a(a,c){this._instanceConstructor=a;this.promise=new a(r);this.promise[z]||K(this.promise);P(c)?(this._remaining=this.length=c.length,this._result=Array(this.length),0===this.length?m(this.promise,this._result):(this.length=this.length||0,this._enumerate(c),0===this._remaining&&m(this.promise,this._result))):g(this.promise,Error("Array Methods must be provided an Array"))}a.prototype._enumerate=function(a){for(var c=0;this._state===u&&c<a.length;c++)this._eachEntry(a[c],
-c)};a.prototype._eachEntry=function(a,c){var d=this._instanceConstructor,e=d.resolve;e===F?(e=M(a),e===D&&a._state!==u?this._settledAt(a._state,c,a._result):"function"!==typeof e?(this._remaining--,this._result[c]=a):d===h?(d=new d(r),N(d,a,e),this._willSettleAt(d,c)):this._willSettleAt(new d(function(c){return c(a)}),c)):this._willSettleAt(e(a),c)};a.prototype._settledAt=function(a,c,d){var e=this.promise;e._state===u&&(this._remaining--,a===t?g(e,d):this._result[c]=d);0===this._remaining&&m(e,this._result)};
-a.prototype._willSettleAt=function(a,c){var d=this;E(a,void 0,function(a){return d._settledAt(y,c,a)},function(a){return d._settledAt(t,c,a)})};return a}(),h=function(){function a(b){this[z]=O++;this._result=this._state=void 0;this._subscribers=[];if(r!==b){if("function"!==typeof b)throw new TypeError("You must pass a resolver function as the first argument to the promise constructor");if(this instanceof a)Z(this,b);else throw new TypeError("Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.");
-}}a.prototype["catch"]=function(a){return this.then(null,a)};a.prototype["finally"]=function(a){var c=this.constructor;return v(a)?this.then(function(d){return c.resolve(a()).then(function(){return d})},function(d){return c.resolve(a()).then(function(){throw d;})}):this.then(a,a)};return a}();h.prototype.then=D;h.all=function(a){return(new ba(this,a)).promise};h.race=function(a){var b=this;return P(a)?new b(function(c,d){for(var e=a.length,f=0;f<e;f++)b.resolve(a[f]).then(c,d)}):new b(function(a,
-b){return b(new TypeError("You must pass an array to race."))})};h.resolve=F;h.reject=function(a){var b=new this(r);g(b,a);return b};h._setScheduler=function(a){I=a};h._setAsap=function(a){l=a};h._asap=l;h.polyfill=function(){var a=void 0;if("undefined"!==typeof global)a=global;else if("undefined"!==typeof self)a=self;else try{a=Function("return this")()}catch(b){throw Error("polyfill failed because global object is unavailable in this environment");}var c=a.Promise;if(c){var d=null;try{d=Object.prototype.toString.call(c.resolve())}catch(e){}if("[object Promise]"===
-d&&!c.cast)return}a.Promise=h};return h.Promise=h});
\ No newline at end of file
diff --git a/web/modules/convert_entity_media_embed/LICENSE.txt b/web/modules/convert_entity_media_embed/LICENSE.txt
deleted file mode 100644
index d159169d1050894d3ea3b98e1c965c4058208fe1..0000000000000000000000000000000000000000
--- a/web/modules/convert_entity_media_embed/LICENSE.txt
+++ /dev/null
@@ -1,339 +0,0 @@
-                    GNU GENERAL PUBLIC LICENSE
-                       Version 2, June 1991
-
- Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
- 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
-                            Preamble
-
-  The licenses for most software are designed to take away your
-freedom to share and change it.  By contrast, the GNU General Public
-License is intended to guarantee your freedom to share and change free
-software--to make sure the software is free for all its users.  This
-General Public License applies to most of the Free Software
-Foundation's software and to any other program whose authors commit to
-using it.  (Some other Free Software Foundation software is covered by
-the GNU Lesser General Public License instead.)  You can apply it to
-your programs, too.
-
-  When we speak of free software, we are referring to freedom, not
-price.  Our General Public Licenses are designed to make sure that you
-have the freedom to distribute copies of free software (and charge for
-this service if you wish), that you receive source code or can get it
-if you want it, that you can change the software or use pieces of it
-in new free programs; and that you know you can do these things.
-
-  To protect your rights, we need to make restrictions that forbid
-anyone to deny you these rights or to ask you to surrender the rights.
-These restrictions translate to certain responsibilities for you if you
-distribute copies of the software, or if you modify it.
-
-  For example, if you distribute copies of such a program, whether
-gratis or for a fee, you must give the recipients all the rights that
-you have.  You must make sure that they, too, receive or can get the
-source code.  And you must show them these terms so they know their
-rights.
-
-  We protect your rights with two steps: (1) copyright the software, and
-(2) offer you this license which gives you legal permission to copy,
-distribute and/or modify the software.
-
-  Also, for each author's protection and ours, we want to make certain
-that everyone understands that there is no warranty for this free
-software.  If the software is modified by someone else and passed on, we
-want its recipients to know that what they have is not the original, so
-that any problems introduced by others will not reflect on the original
-authors' reputations.
-
-  Finally, any free program is threatened constantly by software
-patents.  We wish to avoid the danger that redistributors of a free
-program will individually obtain patent licenses, in effect making the
-program proprietary.  To prevent this, we have made it clear that any
-patent must be licensed for everyone's free use or not licensed at all.
-
-  The precise terms and conditions for copying, distribution and
-modification follow.
-
-                    GNU GENERAL PUBLIC LICENSE
-   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
-  0. This License applies to any program or other work which contains
-a notice placed by the copyright holder saying it may be distributed
-under the terms of this General Public License.  The "Program", below,
-refers to any such program or work, and a "work based on the Program"
-means either the Program or any derivative work under copyright law:
-that is to say, a work containing the Program or a portion of it,
-either verbatim or with modifications and/or translated into another
-language.  (Hereinafter, translation is included without limitation in
-the term "modification".)  Each licensee is addressed as "you".
-
-Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope.  The act of
-running the Program is not restricted, and the output from the Program
-is covered only if its contents constitute a work based on the
-Program (independent of having been made by running the Program).
-Whether that is true depends on what the Program does.
-
-  1. You may copy and distribute verbatim copies of the Program's
-source code as you receive it, in any medium, provided that you
-conspicuously and appropriately publish on each copy an appropriate
-copyright notice and disclaimer of warranty; keep intact all the
-notices that refer to this License and to the absence of any warranty;
-and give any other recipients of the Program a copy of this License
-along with the Program.
-
-You may charge a fee for the physical act of transferring a copy, and
-you may at your option offer warranty protection in exchange for a fee.
-
-  2. You may modify your copy or copies of the Program or any portion
-of it, thus forming a work based on the Program, and copy and
-distribute such modifications or work under the terms of Section 1
-above, provided that you also meet all of these conditions:
-
-    a) You must cause the modified files to carry prominent notices
-    stating that you changed the files and the date of any change.
-
-    b) You must cause any work that you distribute or publish, that in
-    whole or in part contains or is derived from the Program or any
-    part thereof, to be licensed as a whole at no charge to all third
-    parties under the terms of this License.
-
-    c) If the modified program normally reads commands interactively
-    when run, you must cause it, when started running for such
-    interactive use in the most ordinary way, to print or display an
-    announcement including an appropriate copyright notice and a
-    notice that there is no warranty (or else, saying that you provide
-    a warranty) and that users may redistribute the program under
-    these conditions, and telling the user how to view a copy of this
-    License.  (Exception: if the Program itself is interactive but
-    does not normally print such an announcement, your work based on
-    the Program is not required to print an announcement.)
-
-These requirements apply to the modified work as a whole.  If
-identifiable sections of that work are not derived from the Program,
-and can be reasonably considered independent and separate works in
-themselves, then this License, and its terms, do not apply to those
-sections when you distribute them as separate works.  But when you
-distribute the same sections as part of a whole which is a work based
-on the Program, the distribution of the whole must be on the terms of
-this License, whose permissions for other licensees extend to the
-entire whole, and thus to each and every part regardless of who wrote it.
-
-Thus, it is not the intent of this section to claim rights or contest
-your rights to work written entirely by you; rather, the intent is to
-exercise the right to control the distribution of derivative or
-collective works based on the Program.
-
-In addition, mere aggregation of another work not based on the Program
-with the Program (or with a work based on the Program) on a volume of
-a storage or distribution medium does not bring the other work under
-the scope of this License.
-
-  3. You may copy and distribute the Program (or a work based on it,
-under Section 2) in object code or executable form under the terms of
-Sections 1 and 2 above provided that you also do one of the following:
-
-    a) Accompany it with the complete corresponding machine-readable
-    source code, which must be distributed under the terms of Sections
-    1 and 2 above on a medium customarily used for software interchange; or,
-
-    b) Accompany it with a written offer, valid for at least three
-    years, to give any third party, for a charge no more than your
-    cost of physically performing source distribution, a complete
-    machine-readable copy of the corresponding source code, to be
-    distributed under the terms of Sections 1 and 2 above on a medium
-    customarily used for software interchange; or,
-
-    c) Accompany it with the information you received as to the offer
-    to distribute corresponding source code.  (This alternative is
-    allowed only for noncommercial distribution and only if you
-    received the program in object code or executable form with such
-    an offer, in accord with Subsection b above.)
-
-The source code for a work means the preferred form of the work for
-making modifications to it.  For an executable work, complete source
-code means all the source code for all modules it contains, plus any
-associated interface definition files, plus the scripts used to
-control compilation and installation of the executable.  However, as a
-special exception, the source code distributed need not include
-anything that is normally distributed (in either source or binary
-form) with the major components (compiler, kernel, and so on) of the
-operating system on which the executable runs, unless that component
-itself accompanies the executable.
-
-If distribution of executable or object code is made by offering
-access to copy from a designated place, then offering equivalent
-access to copy the source code from the same place counts as
-distribution of the source code, even though third parties are not
-compelled to copy the source along with the object code.
-
-  4. You may not copy, modify, sublicense, or distribute the Program
-except as expressly provided under this License.  Any attempt
-otherwise to copy, modify, sublicense or distribute the Program is
-void, and will automatically terminate your rights under this License.
-However, parties who have received copies, or rights, from you under
-this License will not have their licenses terminated so long as such
-parties remain in full compliance.
-
-  5. You are not required to accept this License, since you have not
-signed it.  However, nothing else grants you permission to modify or
-distribute the Program or its derivative works.  These actions are
-prohibited by law if you do not accept this License.  Therefore, by
-modifying or distributing the Program (or any work based on the
-Program), you indicate your acceptance of this License to do so, and
-all its terms and conditions for copying, distributing or modifying
-the Program or works based on it.
-
-  6. Each time you redistribute the Program (or any work based on the
-Program), the recipient automatically receives a license from the
-original licensor to copy, distribute or modify the Program subject to
-these terms and conditions.  You may not impose any further
-restrictions on the recipients' exercise of the rights granted herein.
-You are not responsible for enforcing compliance by third parties to
-this License.
-
-  7. If, as a consequence of a court judgment or allegation of patent
-infringement or for any other reason (not limited to patent issues),
-conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License.  If you cannot
-distribute so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you
-may not distribute the Program at all.  For example, if a patent
-license would not permit royalty-free redistribution of the Program by
-all those who receive copies directly or indirectly through you, then
-the only way you could satisfy both it and this License would be to
-refrain entirely from distribution of the Program.
-
-If any portion of this section is held invalid or unenforceable under
-any particular circumstance, the balance of the section is intended to
-apply and the section as a whole is intended to apply in other
-circumstances.
-
-It is not the purpose of this section to induce you to infringe any
-patents or other property right claims or to contest validity of any
-such claims; this section has the sole purpose of protecting the
-integrity of the free software distribution system, which is
-implemented by public license practices.  Many people have made
-generous contributions to the wide range of software distributed
-through that system in reliance on consistent application of that
-system; it is up to the author/donor to decide if he or she is willing
-to distribute software through any other system and a licensee cannot
-impose that choice.
-
-This section is intended to make thoroughly clear what is believed to
-be a consequence of the rest of this License.
-
-  8. If the distribution and/or use of the Program is restricted in
-certain countries either by patents or by copyrighted interfaces, the
-original copyright holder who places the Program under this License
-may add an explicit geographical distribution limitation excluding
-those countries, so that distribution is permitted only in or among
-countries not thus excluded.  In such case, this License incorporates
-the limitation as if written in the body of this License.
-
-  9. The Free Software Foundation may publish revised and/or new versions
-of the General Public License from time to time.  Such new versions will
-be similar in spirit to the present version, but may differ in detail to
-address new problems or concerns.
-
-Each version is given a distinguishing version number.  If the Program
-specifies a version number of this License which applies to it and "any
-later version", you have the option of following the terms and conditions
-either of that version or of any later version published by the Free
-Software Foundation.  If the Program does not specify a version number of
-this License, you may choose any version ever published by the Free Software
-Foundation.
-
-  10. If you wish to incorporate parts of the Program into other free
-programs whose distribution conditions are different, write to the author
-to ask for permission.  For software which is copyrighted by the Free
-Software Foundation, write to the Free Software Foundation; we sometimes
-make exceptions for this.  Our decision will be guided by the two goals
-of preserving the free status of all derivatives of our free software and
-of promoting the sharing and reuse of software generally.
-
-                            NO WARRANTY
-
-  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
-FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
-OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
-PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
-OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
-TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
-PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
-REPAIR OR CORRECTION.
-
-  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
-WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
-REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
-INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
-OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
-TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
-YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
-PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGES.
-
-                     END OF TERMS AND CONDITIONS
-
-            How to Apply These Terms to Your New Programs
-
-  If you develop a new program, and you want it to be of the greatest
-possible use to the public, the best way to achieve this is to make it
-free software which everyone can redistribute and change under these terms.
-
-  To do so, attach the following notices to the program.  It is safest
-to attach them to the start of each source file to most effectively
-convey the exclusion of warranty; and each file should have at least
-the "copyright" line and a pointer to where the full notice is found.
-
-    <one line to give the program's name and a brief idea of what it does.>
-    Copyright (C) <year>  <name of author>
-
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-    the Free Software Foundation; either version 2 of the License, or
-    (at your option) any later version.
-
-    This program is distributed in the hope that it will be useful,
-    but WITHOUT ANY WARRANTY; without even the implied warranty of
-    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-    GNU General Public License for more details.
-
-    You should have received a copy of the GNU General Public License along
-    with this program; if not, write to the Free Software Foundation, Inc.,
-    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
-Also add information on how to contact you by electronic and paper mail.
-
-If the program is interactive, make it output a short notice like this
-when it starts in an interactive mode:
-
-    Gnomovision version 69, Copyright (C) year name of author
-    Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
-    This is free software, and you are welcome to redistribute it
-    under certain conditions; type `show c' for details.
-
-The hypothetical commands `show w' and `show c' should show the appropriate
-parts of the General Public License.  Of course, the commands you use may
-be called something other than `show w' and `show c'; they could even be
-mouse-clicks or menu items--whatever suits your program.
-
-You should also get your employer (if you work as a programmer) or your
-school, if any, to sign a "copyright disclaimer" for the program, if
-necessary.  Here is a sample; alter the names:
-
-  Yoyodyne, Inc., hereby disclaims all copyright interest in the program
-  `Gnomovision' (which makes passes at compilers) written by James Hacker.
-
-  <signature of Ty Coon>, 1 April 1989
-  Ty Coon, President of Vice
-
-This General Public License does not permit incorporating your program into
-proprietary programs.  If your program is a subroutine library, you may
-consider it more useful to permit linking proprietary applications with the
-library.  If this is what you want to do, use the GNU Lesser General
-Public License instead of this License.
diff --git a/web/modules/convert_entity_media_embed/README.md b/web/modules/convert_entity_media_embed/README.md
deleted file mode 100644
index 8e3cdbde83a71d7c0a40128e018393a83985e4b1..0000000000000000000000000000000000000000
--- a/web/modules/convert_entity_media_embed/README.md
+++ /dev/null
@@ -1,86 +0,0 @@
-Convert Entity Embed to Media Embed
-===================================
-This module converts [entity embed](https://drupal.org/project/entity_embed) codes
-to core media embed codes (and nothing else).
-
-Since Drupal 8.8, [it has been possible](https://www.drupal.org/node/3087775)
-to embed core media items in rich text fields using the *Media embed* input
-filter. Before that, the entity embed module was the go-to solution for this
-use-case. While the entity embed module still has its uses (the core use-case is
-limited to media entities, while entity embed can handle any entity), many sites
-can now fill their needs with the core solution.
-
-Since it is always a good idea to reduce the number of moving parts in
-any system, if your needs are addressed by the core mechanism, and if you don't
-foresee actually needing the power of entity embed module any time soon, it
-could be a good idea to remove it. However, in order to be able to do that, it
-is necessary to convert the old embed tags from the entity embed module to drupal
-core tags. This is where this module comes in.
-
-How it works
-------------
-Upon installation, this module will look for text fields and scan for eligible
-entity embed tags (only those used to embed media items) and replace them with
-media embed tags. It will do the actual processing in a cron queue, so that the
-potentially time-consuming process of saving all content in a large site will
-not cause excessive downtime.
-
-This principle means that site builders can enable the module in their
-configuration and trust that their content will be updated without human
-intervention. The module can be disabled again once it has done its work.
-
-Progress is reported in the site's Status Report (Admin > Reports > Status
-Report). When the process has not completed, it will be shown in the "Warning"
-section. When it is complete, this will be reported in the "Checked" section.
-
-**Important**: as said, the module uses a cron queue to do the heavy lifting.
-This means that running cron is required to complete the conversion (multiple
-cron runs may be required to complete the process). Especially on development
-systems, it is common that cron does not run automatically (your production
-system really should be running cron at regular intervals, at the very least
-through the Automated Cron module that comes with Drupal core). Conveniently,
-there is a link to run cron at the top of the Status Report to run cron, or you
-could use [drush](https://www.drush.org).
-
-What it doesn't do
-------------------
-The module doesn't change any of your site's configuration. It is up to you to
-manage the transition from entity embed to media embed, by changing editor and
-input format configuration. There are roughly two options:
-
-1. Make all required changes at once.
-2. Continue to support entity embed while not all content has been converted.
-
-In both cases, it is recommended to remove the option to create new content
-using entity embed in the same release as the conversion offered by this module
-is applied. Also, note that, regardless of whether you choose to uninstall the
-entity embed module in the same release as the one you use to trigger the
-conversion, in general you will not be able to *remove* the entity embed module
-in that same release. This is because Drupal needs a module present to be able to
-uninstall it.
-
-The choice that is left is whether to keep support for entity embed in your
-input format while the conversion is taking place. Note that this means you will
-need an extra release in order to uninstall entity embed (see above). In all
-likelihood, this choice will depend on the amount of content that needs to be
-converted and thus how long unconverted content would go without showing its
-embedded media.
-
-Should you consider making uninstalling the entity embed module a manual action,
-bear in mind that you would also first need to make sure your input formats do
-not depend on it before uninstalling. If your regular release process involves
-Drupal configuration management, it is highly recommended to use that, since
-this is not a trivial change.
-
-Before you begin
-----------------
-*   **Have a backup of your database** before enabling the module.
-*   Make sure you test thoroughly on a dev or test environment before running
-    the module on a production system (again, make sure cron runs).
-*   Make sure it is not possible to embed media entities using the old entity
-    embed filter after enabling the module (e.g. by disabling the relevant
-    editor button); the module will *only* convert the entities it finds upon
-    installation. (Note that it is perfectly OK to uninstall and then
-    re-enable the module to collect any "strays", if this does go wrong. The
-    module will only update and save entities where entity embed tags are
-    found).
diff --git a/web/modules/convert_entity_media_embed/convert_entity_media_embed.info.yml b/web/modules/convert_entity_media_embed/convert_entity_media_embed.info.yml
deleted file mode 100644
index 08a50fc417372c605ded6149da58c2bf038d17e7..0000000000000000000000000000000000000000
--- a/web/modules/convert_entity_media_embed/convert_entity_media_embed.info.yml
+++ /dev/null
@@ -1,10 +0,0 @@
-name: Convert Entity Embed to Media Embed
-type: module
-description: Convert contrib entity embed tags to core media embed tags.
-package: Media
-core_version_requirement: ^8.9 || ^9 || ^10
-
-# Information added by Drupal.org packaging script on 2023-11-07
-version: '1.0.0-alpha5'
-project: 'convert_entity_media_embed'
-datestamp: 1699363465
diff --git a/web/modules/convert_entity_media_embed/convert_entity_media_embed.install b/web/modules/convert_entity_media_embed/convert_entity_media_embed.install
deleted file mode 100644
index fd86ccecf81fd24cfc2e8874f57ce8f75a191b22..0000000000000000000000000000000000000000
--- a/web/modules/convert_entity_media_embed/convert_entity_media_embed.install
+++ /dev/null
@@ -1,129 +0,0 @@
-<?php
-
-use Drupal\Core\Url;
-use Drupal\convert_entity_media_embed\FieldTypes;
-
-/**
- * @file
- * Install, update and uninstall functions for the Convert Entity Embed to
- *   Media Embed module.
- */
-
-/**
- * Implements hook_install().
- */
-function convert_entity_media_embed_install() {
-  // Collect bundles that have any of these fields for all entity types. Build
-  // an array keyed by entity type and with values of associative arrays where
-  // both the key and the value are bundles names containing text and
-  // text_with_summary fields.
-  $bundlesPerEntityType = [];
-
-  /** @var \Drupal\Core\Entity\EntityFieldManagerInterface $fieldManager */
-  $fieldManager = \Drupal::service('entity_field.manager');
-  $fieldMap = $fieldManager->getFieldMap();
-
-  /** @var \Drupal\field\Entity\FieldStorageConfig $field */
-  foreach ($fieldMap as $entityType => $entityTypeFieldMap) {
-    $bundlesPerEntityType[$entityType] = [];
-    foreach ($entityTypeFieldMap as $fieldName => $fieldInfo) {
-      if (!in_array($fieldInfo['type'], FieldTypes::TYPES)) {
-        continue;
-      }
-
-      $bundlesPerEntityType[$entityType] += $fieldInfo['bundles'];
-    }
-  }
-
-  // Build a queue of entities we need to convert. Keep track of a total number
-  // of entities so we can report a percentage in the status overview.
-  $totalEntities = 0;
-  /** @var \Drupal\Core\Queue\QueueFactory $queueFactory */
-  $queueFactory = \Drupal::service('queue');
-  $queue = $queueFactory->get('convert_entity_media_embed_entities');
-
-  $entityTypeManager = \Drupal::entityTypeManager();
-  foreach ($bundlesPerEntityType as $entityTypeId => $bundles) {
-    if (empty($bundles) || empty($entityTypeId)) {
-      continue;
-    }
-    $entityType = $entityTypeManager->getDefinition($entityTypeId);
-    $bundleKey = $entityType->getKey('bundle');
-    $storage = $entityTypeManager->getStorage($entityTypeId);
-
-    $query = $storage->getQuery()->accessCheck(FALSE);
-    if ($bundleKey) {
-      $query->condition($bundleKey, $bundles, 'IN');
-    }
-
-    $result = $query->execute();
-    $totalEntities += count($result);
-    foreach ($result as $entityId) {
-      $queue->createItem(['entity_type' => $entityTypeId, 'id' => $entityId]);
-    }
-  }
-
-  /** @var \Drupal\Core\State\StateInterface $state */
-  $state = \Drupal::service('state');
-  $state->set('convert_entity_media_embed_total', $totalEntities);
-
-  \Drupal::messenger()->addStatus(t(
-    'For a progress report of the conversion of entity embed tags to media embed tags, check the <a href=":status">status overview</a>.',
-    [':status' => Url::fromRoute('system.status')->toString()]));
-}
-
-/**
- * Implements hook_uninstall().
- */
-function convert_entity_media_embed_uninstall() {
-  /** @var \Drupal\Core\Queue\QueueFactory $queueFactory */
-  $queueFactory = \Drupal::service('queue');
-  $entityQueue = $queueFactory->get('convert_entity_media_embed_entities');
-  $entityQueue->deleteQueue();
-
-  $state = \Drupal::service('state');
-  $state->delete('convert_entity_media_embed_total');
-}
-
-/**
- * Implements hook_requirements().
- */
-function convert_entity_media_embed_requirements($phase) {
-  $requirements = [];
-
-  if ($phase != 'runtime') {
-    // Nothing to see here.
-    return [];
-  }
-
-  $total = \Drupal::state()->get('convert_entity_media_embed_total');
-  $queue = \Drupal::queue('convert_entity_media_embed_entities');
-  $entitiesLeft = $queue->numberOfItems();
-
-  $progress = $total - $entitiesLeft;
-  $requirement = [
-    'title' => t('Convert Entity Embed to Media Embed progress'),
-  ];
-
-  if ($progress < $total) {
-    $requirement['value'] = t(
-      '@progress of @total (@percentage %) of eligible entities converted.',
-      [
-        '@progress' => $progress,
-        '@total' => $total,
-        '@percentage' => intval($progress/$total * 100),
-      ]);
-    $requirement['severity'] = REQUIREMENT_WARNING;
-  }
-  else {
-    $requirement['value'] = t(
-      'All eligible entities converted. Please <a href=":uninstall">uninstall</a> the module.',
-      [':uninstall' => Url::fromRoute('system.modules_uninstall')->toString()]
-    );
-    $requirement['severity'] = REQUIREMENT_INFO;
-  }
-
-  $requirements['convert_entity_media_embed_status'] = $requirement;
-
-  return $requirements;
-}
diff --git a/web/modules/convert_entity_media_embed/src/FieldTypes.php b/web/modules/convert_entity_media_embed/src/FieldTypes.php
deleted file mode 100644
index 0d9e40b83b4b894407863e431f0e605bf3252a71..0000000000000000000000000000000000000000
--- a/web/modules/convert_entity_media_embed/src/FieldTypes.php
+++ /dev/null
@@ -1,20 +0,0 @@
-<?php
-
-namespace Drupal\convert_entity_media_embed;
-
-/**
- * Class FieldTypes.
- *
- * Define which field types the module handles.
- *
- * @package Drupal\convert_entity_media_embed
- */
-class FieldTypes {
-
-  const TYPES = [
-    'text',
-    'text_with_summary',
-    'text_long',
-  ];
-
-}
diff --git a/web/modules/convert_entity_media_embed/src/Plugin/QueueWorker/EntityQueueWorker.php b/web/modules/convert_entity_media_embed/src/Plugin/QueueWorker/EntityQueueWorker.php
deleted file mode 100644
index ae7b5650585fa3dbc046d3433f7fbabe57f1a51e..0000000000000000000000000000000000000000
--- a/web/modules/convert_entity_media_embed/src/Plugin/QueueWorker/EntityQueueWorker.php
+++ /dev/null
@@ -1,198 +0,0 @@
-<?php
-
-namespace Drupal\convert_entity_media_embed\Plugin\QueueWorker;
-
-use Drupal\convert_entity_media_embed\FieldTypes;
-use Drupal\Core\Entity\EntityFieldManagerInterface;
-use Drupal\Core\Entity\EntityTypeManagerInterface;
-use Drupal\Core\Plugin\ContainerFactoryPluginInterface;
-use Drupal\Core\Queue\QueueFactory;
-use Drupal\Core\Queue\QueueWorkerBase;
-use Symfony\Component\DependencyInjection\ContainerInterface;
-
-/**
- * Finds entities with values for a field and builds a queue for them.
- *
- * @QueueWorker(
- *   id = "convert_entity_media_embed_entities",
- *   title = @Translation("Find entities for fields."),
- *   cron = {"time" = 60}
- * )
- *
- */
-class EntityQueueWorker extends QueueWorkerBase implements ContainerFactoryPluginInterface {
-
-  /**
-   * The queue factory.
-   *
-   * @var \Drupal\Core\Queue\QueueFactory
-   */
-  protected $queueFactory;
-
-  /**
-   * The entity type manager.
-   *
-   * @var \Drupal\Core\Entity\EntityTypeManagerInterface
-   */
-  protected $entityTypeManager;
-
-  /**
-   * The entity field manager.
-   *
-   * @var \Drupal\Core\Entity\EntityFieldManagerInterface
-   */
-  protected $fieldManager;
-
-  /**
-   * {@inheritdoc}
-   */
-  public function processItem($data) {
-    $entityTypeId = $data['entity_type'];
-    $entityId = $data['id'];
-    $replacementPerformed = FALSE;
-
-    $entityStorage = $this->entityTypeManager->getStorage($entityTypeId);
-
-    /** @var \Drupal\Core\Entity\ContentEntityInterface $entity */
-    $entity = $entityStorage->load($entityId);
-
-    if (empty($entity)) {
-      return;
-    }
-
-    $fieldDefinitions = $entity->getFieldDefinitions();
-
-    foreach ($entity->getTranslationLanguages() as $langcode => $language) {
-      $translation = $entity->getTranslation($langcode);
-
-      foreach ($fieldDefinitions as $fieldDefinition) {
-        if (!in_array($fieldDefinition->getType(), FieldTypes::TYPES)) {
-          continue;
-        }
-
-        $fieldItemList = $translation->get($fieldDefinition->getName());
-        if ($fieldItemList->isEmpty()) {
-          continue;
-        }
-
-        for ($i = 0; $i < $fieldItemList->count(); $i++) {
-          $item = $fieldItemList->get($i);
-          $value = $item->getValue();
-          $originalValue = $value['value'];
-          $value['value'] = preg_replace_callback(
-            '/<drupal-entity(.*)data-entity-type="media"(.*)><\/drupal-entity>/',
-            [static::class, 'getDrupalMediaTag'],
-            $originalValue
-          );
-
-          if ($value['value'] != $originalValue) {
-            $item->setValue($value);
-            $fieldItemList->set($i, $item);
-            $replacementPerformed = TRUE;
-          }
-        }
-      }
-    }
-
-    if ($replacementPerformed) {
-      $entity->save();
-    }
-  }
-
-  /**
-   * Callback to get new drupal-media tag based on matched values.
-   *
-   * @param array $matches
-   *   A list of matched values found by preg_replace_callback.
-   *
-   * @return string
-   *   A string of drupal-media tag.
-   */
-  public static function getDrupalMediaTag(array $matches) {
-    $match1 = self::convertDataAttributes($matches[1]);
-    $match2 = self::convertDataAttributes($matches[2]);
-    return "<drupal-media${match1} data-entity-type=\"media\"${match2}></drupal-media>";
-  }
-
-  /**
-   * Cleans up all unused data attributes.
-   *
-   * @param string $value
-   *   A substring of drupal-entity tag.
-   *
-   * @return string
-   *   A substring without unused data attributes.
-   */
-  public static function convertDataAttributes(string $value) : string {
-    $pattern = [
-      '/ data-embed-button="[^"]+"/',
-      '/ data-entity-embed-display-settings="[^"]+"/',
-      // @todo The pattern below covers empty and could probably be included in
-      //   the pattern above.
-      '/ data-entity-embed-display-settings="*"/',
-      '/ title="[^"]+"/',
-    ];
-    $cleaned = preg_replace($pattern, '', $value);
-    return static::convertViewMode($cleaned);
-  }
-
-  /**
-   * Converts view mode attributes of drupal-entity to drupal-media.
-   *
-   * @param string $value
-   *   A substring of drupal-entity tag.
-   *
-   * @return string
-   *   A substring with converted view mode attribute.
-   */
-  public static function convertViewMode(string $value) : string {
-    $replaced = preg_replace('/data-entity-embed-display="/', 'data-view-mode="', $value);
-    $replaced = preg_replace('/view_mode:media\./', '', $replaced);
-    return $replaced;
-  }
-
-  /**
-   * FieldQueueWorker constructor.
-   *
-   * @param array $configuration
-   *   Plugin configuration.
-   * @param string $plugin_id
-   *   Plugin ID.
-   * @param mixed $plugin_definition
-   *   Plugin definition.
-   * @param \Drupal\Core\Queue\QueueFactory $queueFactory
-   *   The queue factory.
-   * @param \Drupal\Core\Entity\EntityTypeManagerInterface $entityTypeManager
-   *   The entity type manager.
-   */
-  public function __construct(
-    array $configuration,
-    string $plugin_id,
-    $plugin_definition,
-    QueueFactory $queueFactory,
-    EntityTypeManagerInterface $entityTypeManager
-  ) {
-    parent::__construct($configuration, $plugin_id, $plugin_definition);
-    $this->queueFactory = $queueFactory;
-    $this->entityTypeManager = $entityTypeManager;
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  public static function create(
-    ContainerInterface $container,
-    array $configuration,
-    $plugin_id,
-    $plugin_definition
-  ) {
-    return new static(
-      $configuration,
-      $plugin_id,
-      $plugin_definition,
-      $container->get('queue'),
-      $container->get('entity_type.manager')
-    );
-  }
-
-}